Lines Matching +full:sleep +full:- +full:hardware +full:- +full:state

2 Hardware Spinlock Framework
8 Hardware spinlock modules provide hardware assistance for synchronization
12 For example, OMAP4 has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP,
17 A generic hwspinlock framework allows platform-independent drivers to use
22 This is necessary, for example, for Inter-processor communications:
23 on OMAP4, cpu-intensive multimedia tasks are offloaded by the host to the
26 To achieve fast message-based communications, a minimal kernel support
35 A common hwspinlock interface makes it possible to have generic, platform-
50 Should be called from a process context (might sleep).
61 Should be called from a process context (might sleep).
67 Retrieve the global lock id for an OF phandle-based specific lock.
72 The function returns a lock id number on success, -EPROBE_DEFER if
76 Should be called from a process context (might sleep).
82 Free a previously-assigned hwspinlock; returns 0 on success, or an
83 appropriate error code on failure (e.g. -EINVAL if the hwspinlock
86 Should be called from a process context (might sleep).
92 Lock a previously-assigned hwspinlock with a timeout limit (specified in
96 the caller must not sleep, and is advised to release the hwspinlock as
98 hardware interconnect.
101 notably -ETIMEDOUT if the hwspinlock is still busy after timeout msecs).
102 The function will never sleep.
108 Lock a previously-assigned hwspinlock with a timeout limit (specified in
112 interrupts are disabled, so the caller must not sleep, and is advised to
116 notably -ETIMEDOUT if the hwspinlock is still busy after timeout msecs).
117 The function will never sleep.
124 Lock a previously-assigned hwspinlock with a timeout limit (specified in
128 local interrupts are disabled and their previous state is saved at the
129 given flags placeholder. The caller must not sleep, and is advised to
133 notably -ETIMEDOUT if the hwspinlock is still busy after timeout msecs).
135 The function will never sleep.
141 Lock a previously-assigned hwspinlock with a timeout limit (specified in
145 Caution: User must protect the routine of getting hardware lock with mutex
146 or spinlock to avoid dead-lock, that will let user can do some time-consuming
147 or sleepable operations under the hardware lock.
150 notably -ETIMEDOUT if the hwspinlock is still busy after timeout msecs).
152 The function will never sleep.
158 Lock a previously-assigned hwspinlock with a timeout limit (specified in
166 notably -ETIMEDOUT if the hwspinlock is still busy after timeout msecs).
168 The function will never sleep.
175 Attempt to lock a previously-assigned hwspinlock, but immediately fail if
179 caller must not sleep, and is advised to release the hwspinlock as soon as
180 possible, in order to minimize remote cores polling on the hardware
184 notably -EBUSY if the hwspinlock was already taken).
185 The function will never sleep.
192 Attempt to lock a previously-assigned hwspinlock, but immediately fail if
196 interrupts are disabled so caller must not sleep, and is advised to
200 notably -EBUSY if the hwspinlock was already taken).
202 The function will never sleep.
208 Attempt to lock a previously-assigned hwspinlock, but immediately fail if
212 the local interrupts are disabled and their previous state is saved
213 at the given flags placeholder. The caller must not sleep, and is advised
217 notably -EBUSY if the hwspinlock was already taken).
218 The function will never sleep.
224 Attempt to lock a previously-assigned hwspinlock, but immediately fail if
227 Caution: User must protect the routine of getting hardware lock with mutex
228 or spinlock to avoid dead-lock, that will let user can do some time-consuming
229 or sleepable operations under the hardware lock.
232 notably -EBUSY if the hwspinlock was already taken).
233 The function will never sleep.
239 Attempt to lock a previously-assigned hwspinlock, but immediately fail if
245 notably -EBUSY if the hwspinlock was already taken).
246 The function will never sleep.
252 Unlock a previously-locked hwspinlock. Always succeed, and can be called
264 Unlock a previously-locked hwspinlock and enable local interrupts.
269 interrupts are enabled. This function will never sleep.
276 Unlock a previously-locked hwspinlock.
281 and the state of the local interrupts is restored to the state saved at
282 the given flags. This function will never sleep.
288 Unlock a previously-locked hwspinlock.
292 This function will never sleep.
298 Unlock a previously-locked hwspinlock.
302 This function will never sleep.
313 Returns the hwspinlock id number, or -EINVAL if hwlock is null.
342 * we took the lock, do our thing now, but do NOT sleep
362 * assign a specific hwspinlock id - this should be called early
373 return -EBUSY;
377 * we took the lock, do our thing now, but do NOT sleep
400 To be called from the underlying platform-specific implementation, in
403 might sleep).
411 To be called from the underlying vendor-specific implementation, in order
415 Should be called from a process context (this function might sleep).
424 of hardware locks. It is registered by the underlying hwspinlock
430 * struct hwspinlock_device - a device which usually spans numerous hwspinlocks
432 * @ops: platform-specific hwspinlock handlers
446 of which represents a single hardware lock::
449 * struct hwspinlock - this struct represents a single hwspinlock instance
452 * @priv: private data, owned by the underlying platform-specific hwspinlock drv
477 The ->trylock() callback should make a single attempt to take the lock, and
478 return 0 on failure and 1 on success. This callback may **not** sleep.
480 The ->unlock() callback releases the lock. It always succeed, and it, too,
481 may **not** sleep.
483 The ->relax() callback is optional. It is called by hwspinlock core while
485 a delay between two successive invocations of ->trylock(). It may **not** sleep.