diff options
| -rw-r--r-- | arch/arm/mach-integrator/impd1.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/arm/mach-integrator/impd1.c b/arch/arm/mach-integrator/impd1.c index c3c2f17d030e..a1b153d1626c 100644 --- a/arch/arm/mach-integrator/impd1.c +++ b/arch/arm/mach-integrator/impd1.c | |||
| @@ -67,7 +67,7 @@ static void impd1_setvco(struct clk *clk, struct icst525_vco vco) | |||
| 67 | } | 67 | } |
| 68 | writel(0, impd1->base + IMPD1_LOCK); | 68 | writel(0, impd1->base + IMPD1_LOCK); |
| 69 | 69 | ||
| 70 | #if DEBUG | 70 | #ifdef DEBUG |
| 71 | vco.v = val & 0x1ff; | 71 | vco.v = val & 0x1ff; |
| 72 | vco.r = (val >> 9) & 0x7f; | 72 | vco.r = (val >> 9) & 0x7f; |
| 73 | vco.s = (val >> 16) & 7; | 73 | vco.s = (val >> 16) & 7; |
| @@ -427,17 +427,18 @@ static int impd1_probe(struct lm_device *dev) | |||
| 427 | return ret; | 427 | return ret; |
| 428 | } | 428 | } |
| 429 | 429 | ||
| 430 | static int impd1_remove_one(struct device *dev, void *data) | ||
| 431 | { | ||
| 432 | device_unregister(dev); | ||
| 433 | return 0; | ||
| 434 | } | ||
| 435 | |||
| 430 | static void impd1_remove(struct lm_device *dev) | 436 | static void impd1_remove(struct lm_device *dev) |
| 431 | { | 437 | { |
| 432 | struct impd1_module *impd1 = lm_get_drvdata(dev); | 438 | struct impd1_module *impd1 = lm_get_drvdata(dev); |
| 433 | struct list_head *l, *n; | ||
| 434 | int i; | 439 | int i; |
| 435 | 440 | ||
| 436 | list_for_each_safe(l, n, &dev->dev.children) { | 441 | device_for_each_child(&dev->dev, NULL, impd1_remove_one); |
| 437 | struct device *d = list_to_dev(l); | ||
| 438 | |||
| 439 | device_unregister(d); | ||
| 440 | } | ||
| 441 | 442 | ||
| 442 | for (i = 0; i < ARRAY_SIZE(impd1->vcos); i++) | 443 | for (i = 0; i < ARRAY_SIZE(impd1->vcos); i++) |
| 443 | clk_unregister(&impd1->vcos[i]); | 444 | clk_unregister(&impd1->vcos[i]); |
