diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/hwspinlock/hwspinlock_core.c | 2 | ||||
-rw-r--r-- | drivers/hwspinlock/omap_hwspinlock.c | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/hwspinlock/hwspinlock_core.c b/drivers/hwspinlock/hwspinlock_core.c index af5175c5d5f4..4eb85b4a320e 100644 --- a/drivers/hwspinlock/hwspinlock_core.c +++ b/drivers/hwspinlock/hwspinlock_core.c | |||
@@ -282,6 +282,8 @@ int hwspin_lock_register(struct hwspinlock *hwlock) | |||
282 | spin_lock(&hwspinlock_tree_lock); | 282 | spin_lock(&hwspinlock_tree_lock); |
283 | 283 | ||
284 | ret = radix_tree_insert(&hwspinlock_tree, hwlock->id, hwlock); | 284 | ret = radix_tree_insert(&hwspinlock_tree, hwlock->id, hwlock); |
285 | if (ret == -EEXIST) | ||
286 | pr_err("hwspinlock id %d already exists!\n", hwlock->id); | ||
285 | if (ret) | 287 | if (ret) |
286 | goto out; | 288 | goto out; |
287 | 289 | ||
diff --git a/drivers/hwspinlock/omap_hwspinlock.c b/drivers/hwspinlock/omap_hwspinlock.c index d0583480fe33..2044d181e49d 100644 --- a/drivers/hwspinlock/omap_hwspinlock.c +++ b/drivers/hwspinlock/omap_hwspinlock.c | |||
@@ -94,12 +94,16 @@ static const struct hwspinlock_ops omap_hwspinlock_ops = { | |||
94 | 94 | ||
95 | static int __devinit omap_hwspinlock_probe(struct platform_device *pdev) | 95 | static int __devinit omap_hwspinlock_probe(struct platform_device *pdev) |
96 | { | 96 | { |
97 | struct hwspinlock_pdata *pdata = pdev->dev.platform_data; | ||
97 | struct omap_hwspinlock *omap_lock; | 98 | struct omap_hwspinlock *omap_lock; |
98 | struct omap_hwspinlock_state *state; | 99 | struct omap_hwspinlock_state *state; |
99 | struct resource *res; | 100 | struct resource *res; |
100 | void __iomem *io_base; | 101 | void __iomem *io_base; |
101 | int i, ret; | 102 | int i, ret; |
102 | 103 | ||
104 | if (!pdata) | ||
105 | return -ENODEV; | ||
106 | |||
103 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 107 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
104 | if (!res) | 108 | if (!res) |
105 | return -ENODEV; | 109 | return -ENODEV; |
@@ -141,7 +145,7 @@ static int __devinit omap_hwspinlock_probe(struct platform_device *pdev) | |||
141 | omap_lock = &state->lock[i]; | 145 | omap_lock = &state->lock[i]; |
142 | 146 | ||
143 | omap_lock->lock.dev = &pdev->dev; | 147 | omap_lock->lock.dev = &pdev->dev; |
144 | omap_lock->lock.id = i; | 148 | omap_lock->lock.id = pdata->base_id + i; |
145 | omap_lock->lock.ops = &omap_hwspinlock_ops; | 149 | omap_lock->lock.ops = &omap_hwspinlock_ops; |
146 | omap_lock->addr = io_base + LOCK_BASE_OFFSET + sizeof(u32) * i; | 150 | omap_lock->addr = io_base + LOCK_BASE_OFFSET + sizeof(u32) * i; |
147 | 151 | ||