diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-05-13 18:50:01 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-05-13 18:54:11 -0400 |
commit | f43f2db7c6eddacb218a2524e1a8463b6397d80f (patch) | |
tree | ba9d80d5d7f2dafc24f6ac07501dbb6902f32089 | |
parent | a91b778219e687b0a71a2388b6468ad54751bce0 (diff) |
ASoC: wm8350: Don't use irq_base
In preparation for irq_domain support change the code to the not switch
based on the irq number. This actually makes things simpler, if slightly
repetitive.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r-- | sound/soc/codecs/wm8350.c | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/sound/soc/codecs/wm8350.c b/sound/soc/codecs/wm8350.c index f610518a8887..f40999c0e3c6 100644 --- a/sound/soc/codecs/wm8350.c +++ b/sound/soc/codecs/wm8350.c | |||
@@ -1300,35 +1300,36 @@ static void wm8350_hpr_work(struct work_struct *work) | |||
1300 | wm8350_hp_work(priv, &priv->hpr, WM8350_JACK_R_LVL); | 1300 | wm8350_hp_work(priv, &priv->hpr, WM8350_JACK_R_LVL); |
1301 | } | 1301 | } |
1302 | 1302 | ||
1303 | static irqreturn_t wm8350_hp_jack_handler(int irq, void *data) | 1303 | static irqreturn_t wm8350_hpl_jack_handler(int irq, void *data) |
1304 | { | 1304 | { |
1305 | struct wm8350_data *priv = data; | 1305 | struct wm8350_data *priv = data; |
1306 | struct wm8350 *wm8350 = priv->wm8350; | 1306 | struct wm8350 *wm8350 = priv->wm8350; |
1307 | struct wm8350_jack_data *jack = NULL; | ||
1308 | 1307 | ||
1309 | switch (irq - wm8350->irq_base) { | ||
1310 | case WM8350_IRQ_CODEC_JCK_DET_L: | ||
1311 | #ifndef CONFIG_SND_SOC_WM8350_MODULE | 1308 | #ifndef CONFIG_SND_SOC_WM8350_MODULE |
1312 | trace_snd_soc_jack_irq("WM8350 HPL"); | 1309 | trace_snd_soc_jack_irq("WM8350 HPL"); |
1313 | #endif | 1310 | #endif |
1314 | jack = &priv->hpl; | ||
1315 | break; | ||
1316 | 1311 | ||
1317 | case WM8350_IRQ_CODEC_JCK_DET_R: | 1312 | if (device_may_wakeup(wm8350->dev)) |
1313 | pm_wakeup_event(wm8350->dev, 250); | ||
1314 | |||
1315 | schedule_delayed_work(&priv->hpl.work, 200); | ||
1316 | |||
1317 | return IRQ_HANDLED; | ||
1318 | } | ||
1319 | |||
1320 | static irqreturn_t wm8350_hpr_jack_handler(int irq, void *data) | ||
1321 | { | ||
1322 | struct wm8350_data *priv = data; | ||
1323 | struct wm8350 *wm8350 = priv->wm8350; | ||
1324 | |||
1318 | #ifndef CONFIG_SND_SOC_WM8350_MODULE | 1325 | #ifndef CONFIG_SND_SOC_WM8350_MODULE |
1319 | trace_snd_soc_jack_irq("WM8350 HPR"); | 1326 | trace_snd_soc_jack_irq("WM8350 HPR"); |
1320 | #endif | 1327 | #endif |
1321 | jack = &priv->hpr; | ||
1322 | break; | ||
1323 | |||
1324 | default: | ||
1325 | BUG(); | ||
1326 | } | ||
1327 | 1328 | ||
1328 | if (device_may_wakeup(wm8350->dev)) | 1329 | if (device_may_wakeup(wm8350->dev)) |
1329 | pm_wakeup_event(wm8350->dev, 250); | 1330 | pm_wakeup_event(wm8350->dev, 250); |
1330 | 1331 | ||
1331 | schedule_delayed_work(&jack->work, 200); | 1332 | schedule_delayed_work(&priv->hpr.work, 200); |
1332 | 1333 | ||
1333 | return IRQ_HANDLED; | 1334 | return IRQ_HANDLED; |
1334 | } | 1335 | } |
@@ -1379,7 +1380,14 @@ int wm8350_hp_jack_detect(struct snd_soc_codec *codec, enum wm8350_jack which, | |||
1379 | } | 1380 | } |
1380 | 1381 | ||
1381 | /* Sync status */ | 1382 | /* Sync status */ |
1382 | wm8350_hp_jack_handler(irq + wm8350->irq_base, priv); | 1383 | switch (which) { |
1384 | case WM8350_JDL: | ||
1385 | wm8350_hpl_jack_handler(0, priv); | ||
1386 | break; | ||
1387 | case WM8350_JDR: | ||
1388 | wm8350_hpr_jack_handler(0, priv); | ||
1389 | break; | ||
1390 | } | ||
1383 | 1391 | ||
1384 | return 0; | 1392 | return 0; |
1385 | } | 1393 | } |
@@ -1561,10 +1569,10 @@ static int wm8350_codec_probe(struct snd_soc_codec *codec) | |||
1561 | WM8350_JDL_ENA | WM8350_JDR_ENA); | 1569 | WM8350_JDL_ENA | WM8350_JDR_ENA); |
1562 | 1570 | ||
1563 | wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L, | 1571 | wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_L, |
1564 | wm8350_hp_jack_handler, 0, "Left jack detect", | 1572 | wm8350_hpl_jack_handler, 0, "Left jack detect", |
1565 | priv); | 1573 | priv); |
1566 | wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R, | 1574 | wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_JCK_DET_R, |
1567 | wm8350_hp_jack_handler, 0, "Right jack detect", | 1575 | wm8350_hpr_jack_handler, 0, "Right jack detect", |
1568 | priv); | 1576 | priv); |
1569 | wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_MICSCD, | 1577 | wm8350_register_irq(wm8350, WM8350_IRQ_CODEC_MICSCD, |
1570 | wm8350_mic_handler, 0, "Microphone short", priv); | 1578 | wm8350_mic_handler, 0, "Microphone short", priv); |