/openbmc/linux/include/linux/ |
H A D | hwspinlock.h | 24 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 …]
|
/openbmc/linux/Documentation/locking/ |
H A D | hwspinlock.rst | 17 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 D | index.rst | 23 hwspinlock
|
/openbmc/linux/drivers/hwspinlock/ |
H A D | hwspinlock_core.c | 91 int __hwspin_trylock(struct hwspinlock *hwlock, int mode, unsigned long *flags) in __hwspin_trylock() 206 int __hwspin_lock_timeout(struct hwspinlock *hwlock, unsigned int to, in __hwspin_lock_timeout() 265 void __hwspin_unlock(struct hwspinlock *hwlock, int mode, unsigned long *flags) in __hwspin_unlock() 319 int hwspin_lock_bust(struct hwspinlock *hwlock, unsigned int id) in hwspin_lock_bust() 370 struct hwspinlock *hwlock; in of_hwspin_lock_get_id() 449 static int hwspin_lock_register_single(struct hwspinlock *hwlock, int id) in hwspin_lock_register_single() 451 struct hwspinlock *tmp; in hwspin_lock_register_single() 474 static struct hwspinlock *hwspin_lock_unregister_single(unsigned int id) in hwspin_lock_unregister_single() 476 struct hwspinlock *hwlock = NULL; in hwspin_lock_unregister_single() 517 struct hwspinlock *hwlock; in hwspin_lock_register() [all …]
|
H A D | hwspinlock_internal.h | 31 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 D | u8500_hsem.c | 50 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 D | omap_hwspinlock.c | 38 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() 79 struct hwspinlock *hwlock; in omap_hwspinlock_probe()
|
H A D | sprd_hwspinlock.c | 40 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 D | stm32_hwspinlock.c | 28 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 D | sun6i_hwspinlock.c | 63 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()
|
H A D | qcom_hwspinlock.c | 28 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() 195 array_size = QCOM_MUTEX_NUM_LOCKS * sizeof(struct hwspinlock); in qcom_hwspinlock_probe()
|
/openbmc/u-boot/include/ |
H A D | hwspinlock.h | 24 struct hwspinlock { struct 45 int index, struct hwspinlock *hws); argument 55 int hwspinlock_lock_timeout(struct hwspinlock *hws, unsigned int timeout); 64 int hwspinlock_unlock(struct hwspinlock *hws); 70 struct hwspinlock *hws) in hwspinlock_get_by_index() 75 static inline int hwspinlock_lock_timeout(struct hwspinlock *hws, in hwspinlock_lock_timeout() 81 static inline int hwspinlock_unlock(struct hwspinlock *hws) in hwspinlock_unlock() 108 int (*of_xlate)(struct hwspinlock *hws,
|
/openbmc/u-boot/drivers/hwspinlock/ |
H A D | sandbox_hwspinlock.c | 18 if (state->hwspinlock) in sandbox_lock() 21 state->hwspinlock = true; in sandbox_lock() 33 if (!state->hwspinlock) in sandbox_unlock() 36 state->hwspinlock = false; in sandbox_unlock()
|
H A D | hwspinlock-uclass.c | 18 static int hwspinlock_of_xlate_default(struct hwspinlock *hws, in hwspinlock_of_xlate_default() 35 struct hwspinlock *hws) in hwspinlock_get_by_index() 76 int hwspinlock_lock_timeout(struct hwspinlock *hws, unsigned int timeout) in hwspinlock_lock_timeout() 104 int hwspinlock_unlock(struct hwspinlock *hws) in hwspinlock_unlock() 140 UCLASS_DRIVER(hwspinlock) = {
|
H A D | Makefile | 5 obj-$(CONFIG_DM_HWSPINLOCK) += hwspinlock-uclass.o
|
/openbmc/u-boot/test/dm/ |
H A D | hwspinlock.c | 18 struct hwspinlock hws; in dm_test_hwspinlock_base() 22 ut_asserteq(false, state->hwspinlock); in dm_test_hwspinlock_base() 26 ut_asserteq(true, state->hwspinlock); in dm_test_hwspinlock_base() 29 ut_asserteq(false, state->hwspinlock); in dm_test_hwspinlock_base()
|
H A D | Makefile | 24 obj-$(CONFIG_DM_HWSPINLOCK) += hwspinlock.o
|
/openbmc/linux/Documentation/devicetree/bindings/hwlock/ |
H A D | sprd-hwspinlock.txt | 5 - compatible : should be "sprd,hwspinlock-r3p0". 6 - reg : the register address of hwspinlock. 17 hwspinlock@40500000 { 18 compatible = "sprd,hwspinlock-r3p0";
|
/openbmc/linux/Documentation/translations/zh_CN/locking/ |
H A D | index.rst | 33 * hwspinlock
|
/openbmc/u-boot/arch/sandbox/include/asm/ |
H A D | state.h | 104 bool hwspinlock; /* Hardware Spinlock status */ member
|
/openbmc/linux/arch/arm64/boot/dts/sprd/ |
H A D | whale2.dtsi | 193 hwlock: hwspinlock@40500000 { 194 compatible = "sprd,hwspinlock-r3p0";
|
/openbmc/u-boot/arch/arm/dts/ |
H A D | stm32mp157c-ed1.dts | 368 &hwspinlock { 373 hwlocks = <&hwspinlock 0>;
|
H A D | stm32mp157c.dtsi | 693 hwspinlock: hwspinlock@4c000000 { label 694 compatible = "st,stm32-hwspinlock"; 698 clock-names = "hwspinlock";
|
/openbmc/u-boot/drivers/ |
H A D | Kconfig | 43 source "drivers/hwspinlock/Kconfig"
|
/openbmc/linux/drivers/irqchip/ |
H A D | irq-stm32-exti.c | 63 struct hwspinlock *hwlock; 361 struct hwspinlock *hwlock = chip_data->host_data->hwlock; in stm32_irq_set_type() 564 struct hwspinlock *hwlock = chip_data->host_data->hwlock; in stm32_exti_h_set_type()
|