diff options
| author | Suman Anna <s-anna@ti.com> | 2015-03-04 21:01:14 -0500 |
|---|---|---|
| committer | Ohad Ben-Cohen <ohad@wizery.com> | 2015-05-02 02:54:30 -0400 |
| commit | fb7737e949e31d8a71acee6bbb670f32dbd2a2c0 (patch) | |
| tree | 57ba40cfa05ca8a34211f3cbd97f77625beeed0a /include/linux | |
| parent | 0ce8cf2f31d661a27b7656e791acacb86eb58739 (diff) | |
hwspinlock/core: add device tree support
This patch adds a new OF-friendly API of_hwspin_lock_get_id()
for hwspinlock clients to use/request locks from a hwspinlock
device instantiated through a device-tree blob. This new API
can be used by hwspinlock clients to get the id for a specific
lock using the phandle + args specifier, so that it can be
requested using the available hwspin_lock_request_specific()
API.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
[small comment clarification]
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/hwspinlock.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/hwspinlock.h b/include/linux/hwspinlock.h index 3343298e40e8..859d673d98c8 100644 --- a/include/linux/hwspinlock.h +++ b/include/linux/hwspinlock.h | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | #define HWLOCK_IRQ 0x02 /* Disable interrupts, don't save state */ | 26 | #define HWLOCK_IRQ 0x02 /* Disable interrupts, don't save state */ |
| 27 | 27 | ||
| 28 | struct device; | 28 | struct device; |
| 29 | struct device_node; | ||
| 29 | struct hwspinlock; | 30 | struct hwspinlock; |
| 30 | struct hwspinlock_device; | 31 | struct hwspinlock_device; |
| 31 | struct hwspinlock_ops; | 32 | struct hwspinlock_ops; |
| @@ -66,6 +67,7 @@ int hwspin_lock_unregister(struct hwspinlock_device *bank); | |||
| 66 | struct hwspinlock *hwspin_lock_request(void); | 67 | struct hwspinlock *hwspin_lock_request(void); |
| 67 | struct hwspinlock *hwspin_lock_request_specific(unsigned int id); | 68 | struct hwspinlock *hwspin_lock_request_specific(unsigned int id); |
| 68 | int hwspin_lock_free(struct hwspinlock *hwlock); | 69 | int hwspin_lock_free(struct hwspinlock *hwlock); |
| 70 | int of_hwspin_lock_get_id(struct device_node *np, int index); | ||
| 69 | int hwspin_lock_get_id(struct hwspinlock *hwlock); | 71 | int hwspin_lock_get_id(struct hwspinlock *hwlock); |
| 70 | int __hwspin_lock_timeout(struct hwspinlock *, unsigned int, int, | 72 | int __hwspin_lock_timeout(struct hwspinlock *, unsigned int, int, |
| 71 | unsigned long *); | 73 | unsigned long *); |
| @@ -120,6 +122,11 @@ void __hwspin_unlock(struct hwspinlock *hwlock, int mode, unsigned long *flags) | |||
| 120 | { | 122 | { |
| 121 | } | 123 | } |
| 122 | 124 | ||
| 125 | static inline int of_hwspin_lock_get_id(struct device_node *np, int index) | ||
| 126 | { | ||
| 127 | return 0; | ||
| 128 | } | ||
| 129 | |||
| 123 | static inline int hwspin_lock_get_id(struct hwspinlock *hwlock) | 130 | static inline int hwspin_lock_get_id(struct hwspinlock *hwlock) |
| 124 | { | 131 | { |
| 125 | return 0; | 132 | return 0; |
