aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwspinlock
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/hwspinlock')
-rw-r--r--drivers/hwspinlock/hwspinlock_core.c2
-rw-r--r--drivers/hwspinlock/omap_hwspinlock.c6
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
95static int __devinit omap_hwspinlock_probe(struct platform_device *pdev) 95static 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