/kernel/linux/linux-5.10/include/linux/ |
H A D | hwspinlock.h | 16 /* hwspinlock mode argument */ 24 struct hwspinlock; 29 * struct hwspinlock_pdata - platform data for hwspinlock drivers 30 * @base_id: base id for this hwspinlock device 32 * hwspinlock devices provide system-wide hardware locks that are used 39 * Usually boards have a single hwspinlock device, which provides several 44 * should be used for each hwspinlock device (they can't all use 0 as 48 * for each device (which is trivially 0 when only a single hwspinlock 61 struct hwspinlock *hwspin_lock_request(void); 62 struct hwspinlock *hwspin_lock_request_specifi [all...] |
/kernel/linux/linux-6.6/include/linux/ |
H A D | hwspinlock.h | 16 /* hwspinlock mode argument */ 24 struct hwspinlock; 29 * struct hwspinlock_pdata - platform data for hwspinlock drivers 30 * @base_id: base id for this hwspinlock device 32 * hwspinlock devices provide system-wide hardware locks that are used 39 * Usually boards have a single hwspinlock device, which provides several 44 * should be used for each hwspinlock device (they can't all use 0 as 48 * for each device (which is trivially 0 when only a single hwspinlock 61 struct hwspinlock *hwspin_lock_request(void); 62 struct hwspinlock *hwspin_lock_request_specifi [all...] |
/kernel/linux/linux-5.10/drivers/hwspinlock/ |
H A D | hwspinlock_core.c | 20 #include <linux/hwspinlock.h> 31 #define HWSPINLOCK_UNUSED (0) /* tags an hwspinlock as unused */ 34 * A radix tree is used to maintain the available hwspinlock instances. 35 * The tree associates hwspinlock pointers with their integer key id, 36 * and provides easy-to-use API which makes the hwspinlock core code simple 42 * used as the ID's of the hwspinlock instances). 45 * framework uses to mark unused hwspinlock instances (see the 47 * tree, looking for an unused hwspinlock instance, is now reduced to a 61 * __hwspin_trylock() - attempt to lock a specific hwspinlock 62 * @hwlock: an hwspinlock whic [all...] |
H A D | hwspinlock_internal.h | 19 * struct hwspinlock_ops - platform-specific hwspinlock handlers 24 * @relax: optional, platform-specific relax handler, called by hwspinlock 29 int (*trylock)(struct hwspinlock *lock); 30 void (*unlock)(struct hwspinlock *lock); 31 void (*relax)(struct hwspinlock *lock); 35 * struct hwspinlock - this struct represents a single hwspinlock instance 37 * @lock: initialized and used by hwspinlock core 38 * @priv: private data, owned by the underlying platform-specific hwspinlock drv 40 struct hwspinlock { struct [all...] |
H A D | omap_hwspinlock.c | 21 #include <linux/hwspinlock.h> 37 static int omap_hwspinlock_trylock(struct hwspinlock *lock) in omap_hwspinlock_trylock() 45 static void omap_hwspinlock_unlock(struct hwspinlock *lock) in omap_hwspinlock_unlock() 63 static void omap_hwspinlock_relax(struct hwspinlock *lock) in omap_hwspinlock_relax() 78 struct hwspinlock *hwlock; in omap_hwspinlock_probe() 81 /* Only a single hwspinlock block device is supported */ in omap_hwspinlock_probe() 166 { .compatible = "ti,omap4-hwspinlock", }, 167 { .compatible = "ti,am654-hwspinlock", },
|
H A D | sprd_hwspinlock.c | 11 #include <linux/hwspinlock.h> 22 /* hwspinlock registers definition */ 32 /* hwspinlock number */ 42 static int sprd_hwspinlock_trylock(struct hwspinlock *lock) in sprd_hwspinlock_trylock() 56 "hwspinlock [%d] lock failed and master/user id = %d!\n", in sprd_hwspinlock_trylock() 62 static void sprd_hwspinlock_unlock(struct hwspinlock *lock) in sprd_hwspinlock_unlock() 70 static void sprd_hwspinlock_relax(struct hwspinlock *lock) in sprd_hwspinlock_relax() 91 struct hwspinlock *lock; in sprd_hwspinlock_probe() 110 dev_err(&pdev->dev, "get hwspinlock clock failed!\n"); in sprd_hwspinlock_probe() 122 "Failed to add hwspinlock disabl in sprd_hwspinlock_probe() [all...] |
H A D | stm32_hwspinlock.c | 9 #include <linux/hwspinlock.h> 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() 68 array_size = STM32_MUTEX_NUM_LOCKS * sizeof(struct hwspinlock); in stm32_hwspinlock_probe() 131 { .compatible = "st,stm32-hwspinlock", },
|
H A D | u8500_hsem.c | 21 #include <linux/hwspinlock.h> 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 | sirf_hwspinlock.c | 14 #include <linux/hwspinlock.h> 33 static int sirf_hwspinlock_trylock(struct hwspinlock *lock) in sirf_hwspinlock_trylock() 41 static void sirf_hwspinlock_unlock(struct hwspinlock *lock) in sirf_hwspinlock_unlock() 57 struct hwspinlock *hwlock; in sirf_hwspinlock_probe() 88 { .compatible = "sirf,hwspinlock", },
|
H A D | qcom_hwspinlock.c | 7 #include <linux/hwspinlock.h> 22 static int qcom_hwspinlock_trylock(struct hwspinlock *lock) in qcom_hwspinlock_trylock() 39 static void qcom_hwspinlock_unlock(struct hwspinlock *lock) in qcom_hwspinlock_unlock() 146 array_size = QCOM_MUTEX_NUM_LOCKS * sizeof(struct hwspinlock); in qcom_hwspinlock_probe()
|
/kernel/linux/linux-6.6/drivers/hwspinlock/ |
H A D | hwspinlock_core.c | 20 #include <linux/hwspinlock.h> 31 #define HWSPINLOCK_UNUSED (0) /* tags an hwspinlock as unused */ 34 * A radix tree is used to maintain the available hwspinlock instances. 35 * The tree associates hwspinlock pointers with their integer key id, 36 * and provides easy-to-use API which makes the hwspinlock core code simple 42 * used as the ID's of the hwspinlock instances). 45 * framework uses to mark unused hwspinlock instances (see the 47 * tree, looking for an unused hwspinlock instance, is now reduced to a 61 * __hwspin_trylock() - attempt to lock a specific hwspinlock 62 * @hwlock: an hwspinlock whic [all...] |
H A D | hwspinlock_internal.h | 19 * struct hwspinlock_ops - platform-specific hwspinlock handlers 24 * @relax: optional, platform-specific relax handler, called by hwspinlock 29 int (*trylock)(struct hwspinlock *lock); 30 void (*unlock)(struct hwspinlock *lock); 31 void (*relax)(struct hwspinlock *lock); 35 * struct hwspinlock - this struct represents a single hwspinlock instance 37 * @lock: initialized and used by hwspinlock core 38 * @priv: private data, owned by the underlying platform-specific hwspinlock drv 40 struct hwspinlock { struct [all...] |
H A D | omap_hwspinlock.c | 22 #include <linux/hwspinlock.h> 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() 82 /* Only a single hwspinlock block device is supported */ in omap_hwspinlock_probe() 163 { .compatible = "ti,omap4-hwspinlock", }, 164 { .compatible = "ti,am64-hwspinlock", }, 165 { .compatible = "ti,am654-hwspinlock", },
|
H A D | sprd_hwspinlock.c | 10 #include <linux/hwspinlock.h> 20 /* hwspinlock registers definition */ 30 /* hwspinlock number */ 40 static int sprd_hwspinlock_trylock(struct hwspinlock *lock) in sprd_hwspinlock_trylock() 54 "hwspinlock [%d] lock failed and master/user id = %d!\n", 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() 107 dev_err(&pdev->dev, "get hwspinlock clock failed!\n"); in sprd_hwspinlock_probe() 119 "Failed to add hwspinlock disabl in sprd_hwspinlock_probe() [all...] |
H A D | u8500_hsem.c | 21 #include <linux/hwspinlock.h> 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 | stm32_hwspinlock.c | 9 #include <linux/hwspinlock.h> 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() 116 dev_err(dev, "Failed to register hwspinlock\n"); in stm32_hwspinlock_probe() 146 { .compatible = "st,stm32-hwspinlock", },
|
H A D | sun6i_hwspinlock.c | 10 #include <linux/hwspinlock.h> 24 #define SPINLOCK_BASE_ID 0 /* there is only one hwspinlock device per SoC */ 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() 132 * bit 28 and 29 represents the hwspinlock setup in sun6i_hwspinlock_probe() 153 dev_err(&pdev->dev, "unsupported hwspinlock setup (%d)\n", num_banks); in sun6i_hwspinlock_probe() 176 dev_err(&pdev->dev, "failed to add hwspinlock disable action\n"); in sun6i_hwspinlock_probe() 194 { .compatible = "allwinner,sun6i-a31-hwspinlock", },
|
H A D | qcom_hwspinlock.c | 7 #include <linux/hwspinlock.h> 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()
|
/kernel/linux/linux-5.10/drivers/nvmem/ |
H A D | sc27xx-efuse.c | 4 #include <linux/hwspinlock.h> 65 struct hwspinlock *hwlock; 93 dev_err(efuse->dev, "timeout to get the hwspinlock\n"); in sc27xx_efuse_lock() 229 dev_err(&pdev->dev, "failed to get hwspinlock id\n"); in sc27xx_efuse_probe() 235 dev_err(&pdev->dev, "failed to request hwspinlock\n"); in sc27xx_efuse_probe()
|
H A D | sprd-efuse.c | 6 #include <linux/hwspinlock.h> 66 struct hwspinlock *hwlock; 92 dev_err(efuse->dev, "timeout get the hwspinlock\n"); in sprd_efuse_lock()
|
/kernel/linux/linux-6.6/drivers/nvmem/ |
H A D | sc27xx-efuse.c | 4 #include <linux/hwspinlock.h> 64 struct hwspinlock *hwlock; 92 dev_err(efuse->dev, "timeout to get the hwspinlock\n"); in sc27xx_efuse_lock() 228 dev_err(&pdev->dev, "failed to get hwspinlock id\n"); in sc27xx_efuse_probe() 234 dev_err(&pdev->dev, "failed to request hwspinlock\n"); in sc27xx_efuse_probe()
|
H A D | sprd-efuse.c | 6 #include <linux/hwspinlock.h> 66 struct hwspinlock *hwlock; 92 dev_err(efuse->dev, "timeout get the hwspinlock\n"); in sprd_efuse_lock()
|
/kernel/linux/linux-5.10/drivers/irqchip/ |
H A D | irq-stm32-exti.c | 10 #include <linux/hwspinlock.h> 68 struct hwspinlock *hwlock; 304 struct hwspinlock *hwlock = chip_data->host_data->hwlock; in stm32_irq_set_type() 313 pr_err("%s can't get hwspinlock (%d)\n", __func__, err); in stm32_irq_set_type() 507 struct hwspinlock *hwlock = chip_data->host_data->hwlock; in stm32_exti_h_set_type() 517 pr_err("%s can't get hwspinlock (%d)\n", __func__, err); in stm32_exti_h_set_type() 855 /* check for optional hwspinlock which may be not available yet */ in stm32_exti_probe() 858 /* hwspinlock framework not yet ready */ in stm32_exti_probe() 864 dev_err(dev, "Failed to request hwspinlock\n"); in stm32_exti_probe() 868 /* note: ENOENT is a valid case (means 'no hwspinlock') */ in stm32_exti_probe() [all...] |
/kernel/linux/linux-6.6/drivers/irqchip/ |
H A D | irq-stm32-exti.c | 10 #include <linux/hwspinlock.h> 63 struct hwspinlock *hwlock; 361 struct hwspinlock *hwlock = chip_data->host_data->hwlock; in stm32_irq_set_type() 370 pr_err("%s can't get hwspinlock (%d)\n", __func__, err); in stm32_irq_set_type() 564 struct hwspinlock *hwlock = chip_data->host_data->hwlock; in stm32_exti_h_set_type() 574 pr_err("%s can't get hwspinlock (%d)\n", __func__, err); in stm32_exti_h_set_type() 920 /* check for optional hwspinlock which may be not available yet */ in stm32_exti_probe() 923 /* hwspinlock framework not yet ready */ in stm32_exti_probe() 929 dev_err(dev, "Failed to request hwspinlock\n"); in stm32_exti_probe() 933 /* note: ENOENT is a valid case (means 'no hwspinlock') */ in stm32_exti_probe() [all...] |
/kernel/linux/linux-5.10/drivers/iio/adc/ |
H A D | sc27xx_adc.c | 4 #include <linux/hwspinlock.h> 77 struct hwspinlock *hwlock; 196 dev_err(data->dev, "timeout to get the hwspinlock\n"); in sc27xx_adc_read() 512 dev_err(dev, "failed to get hwspinlock id\n"); in sc27xx_adc_probe() 518 dev_err(dev, "failed to request hwspinlock\n"); in sc27xx_adc_probe()
|