| /linux-6.15/drivers/gpu/drm/radeon/ |
| H A D | radeon_semaphore.c | 40 if (*semaphore == NULL) { in radeon_semaphore_create() 46 kfree(*semaphore); in radeon_semaphore_create() 47 *semaphore = NULL; in radeon_semaphore_create() 50 (*semaphore)->waiters = 0; in radeon_semaphore_create() 51 (*semaphore)->gpu_addr = radeon_sa_bo_gpu_addr((*semaphore)->sa_bo); in radeon_semaphore_create() 66 --semaphore->waiters; in radeon_semaphore_emit_signal() 83 ++semaphore->waiters; in radeon_semaphore_emit_wait() 96 if (semaphore == NULL || *semaphore == NULL) { in radeon_semaphore_free() 99 if ((*semaphore)->waiters > 0) { in radeon_semaphore_free() 104 kfree(*semaphore); in radeon_semaphore_free() [all …]
|
| H A D | radeon_test.c | 318 struct radeon_semaphore *semaphore = NULL; in radeon_test_ring_sync() local 321 r = radeon_semaphore_create(rdev, &semaphore); in radeon_test_ring_sync() 332 radeon_semaphore_emit_wait(rdev, ringA->idx, semaphore); in radeon_test_ring_sync() 344 radeon_semaphore_emit_wait(rdev, ringA->idx, semaphore); in radeon_test_ring_sync() 363 radeon_semaphore_emit_signal(rdev, ringB->idx, semaphore); in radeon_test_ring_sync() 394 radeon_semaphore_free(rdev, &semaphore, NULL); in radeon_test_ring_sync() 412 struct radeon_semaphore *semaphore = NULL; in radeon_test_ring_sync2() local 416 r = radeon_semaphore_create(rdev, &semaphore); in radeon_test_ring_sync2() 427 radeon_semaphore_emit_wait(rdev, ringA->idx, semaphore); in radeon_test_ring_sync2() 439 radeon_semaphore_emit_wait(rdev, ringB->idx, semaphore); in radeon_test_ring_sync2() [all …]
|
| H A D | radeon_sync.c | 130 struct radeon_semaphore *semaphore; in radeon_sync_rings() local 149 r = radeon_semaphore_create(rdev, &semaphore); in radeon_sync_rings() 153 sync->semaphores[count++] = semaphore; in radeon_sync_rings() 161 if (!radeon_semaphore_emit_signal(rdev, i, semaphore)) { in radeon_sync_rings() 171 if (!radeon_semaphore_emit_wait(rdev, ring, semaphore)) { in radeon_sync_rings()
|
| H A D | uvd_v3_1.c | 41 struct radeon_semaphore *semaphore, in uvd_v3_1_semaphore_emit() argument 44 uint64_t addr = semaphore->gpu_addr; in uvd_v3_1_semaphore_emit()
|
| H A D | uvd_v2_2.c | 74 struct radeon_semaphore *semaphore, in uvd_v2_2_semaphore_emit() argument 77 uint64_t addr = semaphore->gpu_addr; in uvd_v2_2_semaphore_emit()
|
| /linux-6.15/include/linux/ |
| H A D | semaphore.h | 15 struct semaphore { struct 35 struct semaphore _name = __SEMAPHORE_INITIALIZER(_name, _n) argument 37 static inline void sema_init(struct semaphore *sem, int val) in sema_init() 40 *sem = (struct semaphore) __SEMAPHORE_INITIALIZER(*sem, val); in sema_init() 44 extern void down(struct semaphore *sem); 45 extern int __must_check down_interruptible(struct semaphore *sem); 46 extern int __must_check down_killable(struct semaphore *sem); 47 extern int __must_check down_trylock(struct semaphore *sem); 48 extern int __must_check down_timeout(struct semaphore *sem, long jiffies); 49 extern void up(struct semaphore *sem);
|
| H A D | hil_mlc.h | 136 struct semaphore csem; /* Raised when loop idle */ 139 struct semaphore osem; /* Raised when outpacket dispatched */ 143 struct semaphore isem; /* Raised when a packet arrives */
|
| H A D | hp_sdc.h | 71 struct semaphore *semaphore; /* Semaphore to sleep on. */ member
|
| /linux-6.15/kernel/locking/ |
| H A D | semaphore.c | 38 static noinline void __down(struct semaphore *sem); 39 static noinline int __down_interruptible(struct semaphore *sem); 40 static noinline int __down_killable(struct semaphore *sem); 55 void __sched down(struct semaphore *sem) in down() 78 int __sched down_interruptible(struct semaphore *sem) in down_interruptible() 105 int __sched down_killable(struct semaphore *sem) in down_killable() 135 int __sched down_trylock(struct semaphore *sem) in down_trylock() 160 int __sched down_timeout(struct semaphore *sem, long timeout) in down_timeout() 184 void __sched up(struct semaphore *sem) in up() 256 static noinline void __sched __down(struct semaphore *sem) in __down() [all …]
|
| /linux-6.15/include/drm/ |
| H A D | task_barrier.h | 42 struct semaphore enter_turnstile; 43 struct semaphore exit_turnstile; 46 static inline void task_barrier_signal_turnstile(struct semaphore *turnstile, in task_barrier_signal_turnstile()
|
| /linux-6.15/Documentation/userspace-api/ |
| H A D | ntsync.rst | 23 A semaphore holds a single volatile 32-bit counter, and a static 32-bit 28 when the semaphore is created. 108 Create a semaphore object. Takes a pointer to struct 114 - Initial count of the semaphore. 116 - Maximum count of the semaphore. 119 On success, returns a file descriptor the created semaphore. 162 past the semaphore's maximum count, the ioctl fails with 163 ``EOVERFLOW`` and the semaphore is not affected. If raising the 165 waiting on this semaphore will be woken and the semaphore's count 224 - On output, contains the current count of the semaphore. [all …]
|
| /linux-6.15/drivers/input/serio/ |
| H A D | hp_sdc_mlc.c | 193 if (priv->trans.act.semaphore != &mlc->csem) in hp_sdc_mlc_cts() 203 priv->trans.act.semaphore = &mlc->csem; in hp_sdc_mlc_cts() 217 priv->trans.act.semaphore = &mlc->osem; in hp_sdc_mlc_cts() 245 priv->trans.act.semaphore = &mlc->osem; in hp_sdc_mlc_out() 286 priv->trans.act.semaphore = &mlc->osem; in hp_sdc_mlc_out() 316 hp_sdc_mlc_priv.trans.act.semaphore = &mlc->osem; in hp_sdc_mlc_init()
|
| H A D | hp_sdc.c | 201 if (curr->act.semaphore) in hp_sdc_take() 202 up(curr->act.semaphore); in hp_sdc_take() 328 if (curr->act.semaphore) in hp_sdc_tasklet() 329 up(curr->act.semaphore); in hp_sdc_tasklet() 566 up(curr->act.semaphore); in hp_sdc_put() 833 struct semaphore s_sync; in hp_sdc_init() 903 t_sync.act.semaphore = &s_sync; in hp_sdc_init() 998 struct semaphore tq_init_sem; in hp_sdc_register() 1039 tq_init.act.semaphore = &tq_init_sem; in hp_sdc_register()
|
| /linux-6.15/drivers/acpi/acpica/ |
| H A D | exsystem.c | 31 acpi_status acpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout) in acpi_ex_system_wait_semaphore() argument 37 status = acpi_os_wait_semaphore(semaphore, 1, ACPI_DO_NOT_WAIT); in acpi_ex_system_wait_semaphore() 47 status = acpi_os_wait_semaphore(semaphore, 1, timeout); in acpi_ex_system_wait_semaphore()
|
| /linux-6.15/fs/jffs2/ |
| H A D | README.Locking | 141 This read/write semaphore protects against concurrent access to the 154 This read/write semaphore protects against concurrent access to the 156 In read-only path, write-semaphore is too much exclusion. It's enough 157 by read-semaphore. But you must hold write-semaphore when updating, 162 when updating such a object is necessary under holding read semaphore. 163 For example, do_jffs2_getxattr() holds read-semaphore to scan xref and 164 xdatum at first. But it retries this process with holding write-semaphore 165 after release read-semaphore, if it's necessary to load name/value pair
|
| /linux-6.15/drivers/input/misc/ |
| H A D | hp_sdc_rtc.c | 58 static struct semaphore i8042tregs; 68 struct semaphore tsem; in hp_sdc_rtc_do_read_bbrtc() 87 t.act.semaphore = &tsem; in hp_sdc_rtc_do_read_bbrtc() 159 t.act.semaphore = &i8042tregs; in hp_sdc_rtc_read_i8042timer()
|
| /linux-6.15/drivers/staging/vc04_services/interface/vchiq_arm/ |
| H A D | vchiq_arm.h | 48 struct semaphore free_fragments_sema; 49 struct semaphore free_fragments_mutex;
|
| /linux-6.15/drivers/md/dm-vdo/indexer/ |
| H A D | sparse-cache.c | 145 struct semaphore lock; 147 struct semaphore wait; 178 static inline void __down(struct semaphore *semaphore) in __down() argument 184 while (down_interruptible(semaphore) != 0) { in __down()
|
| /linux-6.15/Documentation/locking/ |
| H A D | percpu-rw-semaphore.rst | 5 Percpu rw semaphores is a new read-write semaphore design that is 9 cores take the lock for reading, the cache line containing the semaphore
|
| H A D | index.rst | 24 percpu-rw-semaphore
|
| /linux-6.15/Documentation/driver-api/serial/ |
| H A D | driver.rst | 44 There are two locks. A per-port spinlock, and an overall semaphore. 57 The port_sem semaphore is used to protect against ports being added/ 59 semaphore has been the 'mutex' member of the tty_port struct, and
|
| /linux-6.15/drivers/md/bcache/ |
| H A D | bcache.h | 311 struct semaphore sb_write_mutex; 343 struct semaphore in_flight; 541 struct semaphore sb_write_mutex; 667 struct semaphore moving_in_flight; 684 struct semaphore uuid_write_mutex;
|
| /linux-6.15/drivers/net/ethernet/huawei/hinic/ |
| H A D | hinic_hw_mbox.h | 92 struct semaphore mbox_send_sem; 93 struct semaphore msg_send_sem;
|
| /linux-6.15/Documentation/accel/qaic/ |
| H A D | aic100.rst | 354 semaphore command. 356 * Bit(31) indicates this semaphore command is enabled. 362 * Bits(26:24) are the semaphore command. 0 is NOP. 1 is init with the 364 until the semaphore is equal to the specified value. 5 is wait 365 until the semaphore is greater or equal to the specified value. 366 6 is "P", wait until semaphore is greater than 0, then 370 semaphore operation is done after the DMA transfer. 1 is 374 * Bits(20:16) is the index of the semaphore to operate on. 376 * Bits(11:0) are the semaphore value to use in operations. 380 1. If specified, the presync semaphore condition must be true [all …]
|
| /linux-6.15/drivers/acpi/ |
| H A D | osl.c | 1228 struct semaphore *sem = NULL; in acpi_os_create_semaphore() 1230 sem = acpi_os_allocate_zeroed(sizeof(struct semaphore)); in acpi_os_create_semaphore() 1253 struct semaphore *sem = (struct semaphore *)handle; in acpi_os_delete_semaphore() 1273 struct semaphore *sem = (struct semaphore *)handle; in acpi_os_wait_semaphore() 1317 struct semaphore *sem = (struct semaphore *)handle; in acpi_os_signal_semaphore()
|