aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/tpa6130a2.c
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@nokia.com>2010-11-30 09:00:02 -0500
committerLiam Girdwood <lrg@slimlogic.co.uk>2010-11-30 10:39:39 -0500
commit8cc14e13d15ec558c880ce6eaaddf99c08f85ab6 (patch)
tree6141ca1c3d80d82d4e2cd4129aa48b179055b0bc /sound/soc/codecs/tpa6130a2.c
parentd534bacd918fcf0909039b95db7c090702e739d5 (diff)
ASoC: tpa6130a2: Use one event handler for PGA_E
Reduce the amount of duplicated code by using single event handler for PGA_E to enable the needed channel. Use the w->shift to pass the channel information to the handler function. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'sound/soc/codecs/tpa6130a2.c')
-rw-r--r--sound/soc/codecs/tpa6130a2.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/sound/soc/codecs/tpa6130a2.c b/sound/soc/codecs/tpa6130a2.c
index 42887ae1568b..4c77a82d9780 100644
--- a/sound/soc/codecs/tpa6130a2.c
+++ b/sound/soc/codecs/tpa6130a2.c
@@ -317,29 +317,15 @@ static void tpa6130a2_channel_enable(u8 channel, int enable)
317 } 317 }
318} 318}
319 319
320static int tpa6130a2_left_event(struct snd_soc_dapm_widget *w, 320static int tpa6130a2_pga_event(struct snd_soc_dapm_widget *w,
321 struct snd_kcontrol *kcontrol, int event) 321 struct snd_kcontrol *kcontrol, int event)
322{ 322{
323 switch (event) { 323 switch (event) {
324 case SND_SOC_DAPM_POST_PMU: 324 case SND_SOC_DAPM_POST_PMU:
325 tpa6130a2_channel_enable(TPA6130A2_HP_EN_L, 1); 325 tpa6130a2_channel_enable(w->shift, 1);
326 break; 326 break;
327 case SND_SOC_DAPM_POST_PMD: 327 case SND_SOC_DAPM_POST_PMD:
328 tpa6130a2_channel_enable(TPA6130A2_HP_EN_L, 0); 328 tpa6130a2_channel_enable(w->shift, 0);
329 break;
330 }
331 return 0;
332}
333
334static int tpa6130a2_right_event(struct snd_soc_dapm_widget *w,
335 struct snd_kcontrol *kcontrol, int event)
336{
337 switch (event) {
338 case SND_SOC_DAPM_POST_PMU:
339 tpa6130a2_channel_enable(TPA6130A2_HP_EN_R, 1);
340 break;
341 case SND_SOC_DAPM_POST_PMD:
342 tpa6130a2_channel_enable(TPA6130A2_HP_EN_R, 0);
343 break; 329 break;
344 } 330 }
345 return 0; 331 return 0;
@@ -363,10 +349,10 @@ static int tpa6130a2_supply_event(struct snd_soc_dapm_widget *w,
363 349
364static const struct snd_soc_dapm_widget tpa6130a2_dapm_widgets[] = { 350static const struct snd_soc_dapm_widget tpa6130a2_dapm_widgets[] = {
365 SND_SOC_DAPM_PGA_E("TPA6130A2 Left", SND_SOC_NOPM, 351 SND_SOC_DAPM_PGA_E("TPA6130A2 Left", SND_SOC_NOPM,
366 0, 0, NULL, 0, tpa6130a2_left_event, 352 TPA6130A2_HP_EN_L, 0, NULL, 0, tpa6130a2_pga_event,
367 SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD), 353 SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
368 SND_SOC_DAPM_PGA_E("TPA6130A2 Right", SND_SOC_NOPM, 354 SND_SOC_DAPM_PGA_E("TPA6130A2 Right", SND_SOC_NOPM,
369 0, 0, NULL, 0, tpa6130a2_right_event, 355 TPA6130A2_HP_EN_R, 0, NULL, 0, tpa6130a2_pga_event,
370 SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD), 356 SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
371 SND_SOC_DAPM_SUPPLY("TPA6130A2 Enable", SND_SOC_NOPM, 357 SND_SOC_DAPM_SUPPLY("TPA6130A2 Enable", SND_SOC_NOPM,
372 0, 0, tpa6130a2_supply_event, 358 0, 0, tpa6130a2_supply_event,