aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2009-02-04 14:49:52 -0500
committerSamuel Ortiz <samuel@sortiz.org>2009-02-17 03:00:11 -0500
commit62571c29a8343839e85e741db6a489f30686697c (patch)
treea9f379a222bff7158a54ed7a07ce083f9afe6650 /drivers/mfd
parent720fd66dfad1b0286721dbb2ed4d6076c0aa953b (diff)
mfd: Initialise WM8350 interrupts earlier
Ensure that the interrupt handling is configured before we do platform specific init. This allows the platform specific initialisation to configure things which use interrupts safely. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@openedhand.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/wm8350-core.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/mfd/wm8350-core.c b/drivers/mfd/wm8350-core.c
index f92595c8f165..70f5e7739546 100644
--- a/drivers/mfd/wm8350-core.c
+++ b/drivers/mfd/wm8350-core.c
@@ -1404,15 +1404,6 @@ int wm8350_device_init(struct wm8350 *wm8350, int irq,
1404 return ret; 1404 return ret;
1405 } 1405 }
1406 1406
1407 if (pdata && pdata->init) {
1408 ret = pdata->init(wm8350);
1409 if (ret != 0) {
1410 dev_err(wm8350->dev, "Platform init() failed: %d\n",
1411 ret);
1412 goto err;
1413 }
1414 }
1415
1416 mutex_init(&wm8350->auxadc_mutex); 1407 mutex_init(&wm8350->auxadc_mutex);
1417 mutex_init(&wm8350->irq_mutex); 1408 mutex_init(&wm8350->irq_mutex);
1418 INIT_WORK(&wm8350->irq_work, wm8350_irq_worker); 1409 INIT_WORK(&wm8350->irq_work, wm8350_irq_worker);
@@ -1430,6 +1421,15 @@ int wm8350_device_init(struct wm8350 *wm8350, int irq,
1430 } 1421 }
1431 wm8350->chip_irq = irq; 1422 wm8350->chip_irq = irq;
1432 1423
1424 if (pdata && pdata->init) {
1425 ret = pdata->init(wm8350);
1426 if (ret != 0) {
1427 dev_err(wm8350->dev, "Platform init() failed: %d\n",
1428 ret);
1429 goto err;
1430 }
1431 }
1432
1433 wm8350_reg_write(wm8350, WM8350_SYSTEM_INTERRUPTS_MASK, 0x0); 1433 wm8350_reg_write(wm8350, WM8350_SYSTEM_INTERRUPTS_MASK, 0x0);
1434 1434
1435 wm8350_client_dev_register(wm8350, "wm8350-codec", 1435 wm8350_client_dev_register(wm8350, "wm8350-codec",