diff options
Diffstat (limited to 'drivers/pcmcia')
-rw-r--r-- | drivers/pcmcia/pxa2xx_base.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c index a87e2728b2c3..64d433ec4fc6 100644 --- a/drivers/pcmcia/pxa2xx_base.c +++ b/drivers/pcmcia/pxa2xx_base.c | |||
@@ -328,21 +328,15 @@ static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev) | |||
328 | goto err1; | 328 | goto err1; |
329 | } | 329 | } |
330 | 330 | ||
331 | if (ret) { | 331 | pxa2xx_configure_sockets(&dev->dev); |
332 | while (--i >= 0) | 332 | dev_set_drvdata(&dev->dev, sinfo); |
333 | soc_pcmcia_remove_one(&sinfo->skt[i]); | ||
334 | kfree(sinfo); | ||
335 | clk_put(clk); | ||
336 | } else { | ||
337 | pxa2xx_configure_sockets(&dev->dev); | ||
338 | dev_set_drvdata(&dev->dev, sinfo); | ||
339 | } | ||
340 | 333 | ||
341 | return 0; | 334 | return 0; |
342 | 335 | ||
343 | err1: | 336 | err1: |
344 | while (--i >= 0) | 337 | while (--i >= 0) |
345 | soc_pcmcia_remove_one(&sinfo->skt[i]); | 338 | soc_pcmcia_remove_one(&sinfo->skt[i]); |
339 | clk_put(clk); | ||
346 | kfree(sinfo); | 340 | kfree(sinfo); |
347 | err0: | 341 | err0: |
348 | return ret; | 342 | return ret; |