Home
last modified time | relevance | path

Searched refs:hwspinlock (Results 1 – 25 of 38) sorted by relevance

12

/linux/include/linux/
H A Dhwspinlock.h24 struct hwspinlock;
61 struct hwspinlock *hwspin_lock_request(void);
62 struct hwspinlock *hwspin_lock_request_specific(unsigned int id);
63 int hwspin_lock_free(struct hwspinlock *hwlock);
65 int hwspin_lock_get_id(struct hwspinlock *hwlock);
66 int __hwspin_lock_timeout(struct hwspinlock *, unsigned int, int,
68 int __hwspin_trylock(struct hwspinlock *, int, unsigned long *);
69 void __hwspin_unlock(struct hwspinlock *, int, unsigned long *);
71 int hwspin_lock_bust(struct hwspinlock *hwlock, unsigned int id);
72 int devm_hwspin_lock_free(struct device *dev, struct hwspinlock *hwlock);
[all …]
/linux/Documentation/locking/
H A Dhwspinlock.rst17 A generic hwspinlock framework allows platform-independent drivers to use
18 the hwspinlock device in order to access data structures that are shared
31 the remote processors, and access to it is synchronized using the hwspinlock
35 A common hwspinlock interface makes it possible to have generic, platform-
43 struct hwspinlock *hwspin_lock_request(void);
45 Dynamically assign an hwspinlock and return its address, or NULL
46 in case an unused hwspinlock isn't available. Users of this
54 struct hwspinlock *hwspin_lock_request_specific(unsigned int id);
56 Assign a specific hwspinlock id and return its address, or NULL
57 if that hwspinlock is already in use. Usually board code will
[all …]
H A Dindex.rst23 hwspinlock
/linux/drivers/hwspinlock/
H A Dhwspinlock_core.c92 int __hwspin_trylock(struct hwspinlock *hwlock, int mode, unsigned long *flags) in __hwspin_trylock()
209 int __hwspin_lock_timeout(struct hwspinlock *hwlock, unsigned int to, in __hwspin_lock_timeout()
268 void __hwspin_unlock(struct hwspinlock *hwlock, int mode, unsigned long *flags) in __hwspin_unlock()
322 int hwspin_lock_bust(struct hwspinlock *hwlock, unsigned int id) in hwspin_lock_bust()
373 struct hwspinlock *hwlock; in of_hwspin_lock_get_id()
453 static int hwspin_lock_register_single(struct hwspinlock *hwlock, int id) in hwspin_lock_register_single()
455 struct hwspinlock *tmp; in hwspin_lock_register_single()
478 static struct hwspinlock *hwspin_lock_unregister_single(unsigned int id) in hwspin_lock_unregister_single()
480 struct hwspinlock *hwlock = NULL; in hwspin_lock_unregister_single()
521 struct hwspinlock *hwlock; in hwspin_lock_register()
[all …]
H A Dhwspinlock_internal.h31 int (*trylock)(struct hwspinlock *lock);
32 void (*unlock)(struct hwspinlock *lock);
33 int (*bust)(struct hwspinlock *lock, unsigned int id);
34 void (*relax)(struct hwspinlock *lock);
43 struct hwspinlock { struct
62 struct hwspinlock lock[];
65 static inline int hwlock_to_id(struct hwspinlock *hwlock) in hwlock_to_id()
H A Du8500_hsem.c50 static int u8500_hsem_trylock(struct hwspinlock *lock) in u8500_hsem_trylock()
63 static void u8500_hsem_unlock(struct hwspinlock *lock) in u8500_hsem_unlock()
74 static void u8500_hsem_relax(struct hwspinlock *lock) in u8500_hsem_relax()
89 struct hwspinlock *hwlock; in u8500_hsem_probe()
H A Dsprd_hwspinlock.c40 static int sprd_hwspinlock_trylock(struct hwspinlock *lock) in sprd_hwspinlock_trylock()
60 static void sprd_hwspinlock_unlock(struct hwspinlock *lock) in sprd_hwspinlock_unlock()
68 static void sprd_hwspinlock_relax(struct hwspinlock *lock) in sprd_hwspinlock_relax()
89 struct hwspinlock *lock; in sprd_hwspinlock_probe()
H A Domap_hwspinlock.c38 static int omap_hwspinlock_trylock(struct hwspinlock *lock) in omap_hwspinlock_trylock()
46 static void omap_hwspinlock_unlock(struct hwspinlock *lock) in omap_hwspinlock_unlock()
64 static void omap_hwspinlock_relax(struct hwspinlock *lock) in omap_hwspinlock_relax()
H A Dqcom_hwspinlock.c28 static int qcom_hwspinlock_trylock(struct hwspinlock *lock) in qcom_hwspinlock_trylock()
45 static void qcom_hwspinlock_unlock(struct hwspinlock *lock) in qcom_hwspinlock_unlock()
67 static int qcom_hwspinlock_bust(struct hwspinlock *lock, unsigned int id) in qcom_hwspinlock_bust()
219 array_size = QCOM_MUTEX_NUM_LOCKS * sizeof(struct hwspinlock); in qcom_hwspinlock_probe()
H A Dstm32_hwspinlock.c28 static int stm32_hwspinlock_trylock(struct hwspinlock *lock) in stm32_hwspinlock_trylock()
39 static void stm32_hwspinlock_unlock(struct hwspinlock *lock) in stm32_hwspinlock_unlock()
46 static void stm32_hwspinlock_relax(struct hwspinlock *lock) in stm32_hwspinlock_relax()
H A Dsun6i_hwspinlock.c63 static int sun6i_hwspinlock_trylock(struct hwspinlock *lock) in sun6i_hwspinlock_trylock()
70 static void sun6i_hwspinlock_unlock(struct hwspinlock *lock) in sun6i_hwspinlock_unlock()
94 struct hwspinlock *hwlock; in sun6i_hwspinlock_probe()
/linux/Documentation/translations/zh_CN/locking/
H A Dindex.rst33 * hwspinlock
/linux/arch/arm64/boot/dts/sprd/
H A Dwhale2.dtsi196 hwlock: hwspinlock@40500000 {
197 compatible = "sprd,hwspinlock-r3p0";
/linux/drivers/irqchip/
H A Dirq-stm32mp-exti.c74 struct hwspinlock *hwlock;
372 struct hwspinlock *hwlock = chip_data->host_data->hwlock; in stm32mp_exti_set_type()
/linux/drivers/
H A DMakefile156 obj-$(CONFIG_HWSPINLOCK) += hwspinlock/
H A DKconfig160 source "drivers/hwspinlock/Kconfig"
/linux/drivers/base/regmap/
H A Dinternal.h177 struct hwspinlock *hwlock;
/linux/drivers/spi/
H A Dspi-sprd-adi.c149 struct hwspinlock *hwlock;
/linux/drivers/iio/adc/
H A Dsc27xx_adc.c92 struct hwspinlock *hwlock;
/linux/arch/arm64/boot/dts/ti/
H A Dk3-am62-main.dtsi800 hwspinlock: spinlock@2a000000 { label
801 compatible = "ti,am64-hwspinlock";
H A Dk3-am62p-j722s-common-main.dtsi758 hwspinlock: spinlock@2a000000 { label
759 compatible = "ti,am64-hwspinlock";
H A Dk3-am62a-main.dtsi784 hwspinlock: spinlock@2a000000 { label
785 compatible = "ti,am64-hwspinlock";
H A Dk3-j7200-main.dtsi141 hwspinlock: spinlock@30e00000 { label
142 compatible = "ti,am654-hwspinlock";
/linux/arch/arm/boot/dts/ti/omap/
H A Ddm816x.dtsi353 compatible = "ti,omap4-hwspinlock";
/linux/drivers/soc/qcom/
H A Dsmem.c279 struct hwspinlock *hwlock;

12