summaryrefslogtreecommitdiff
path: root/firmware/sound.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/sound.c')
-rw-r--r--firmware/sound.c29
1 files changed, 11 insertions, 18 deletions
diff --git a/firmware/sound.c b/firmware/sound.c
index 7b29e1f13f..d3f4435058 100644
--- a/firmware/sound.c
+++ b/firmware/sound.c
@@ -77,9 +77,8 @@ static const struct sound_settings_info sound_settings_table[] = {
77 [SOUND_VOLUME] = {"dB", 0, 1, -74, 6, -25, sound_set_volume}, 77 [SOUND_VOLUME] = {"dB", 0, 1, -74, 6, -25, sound_set_volume},
78#elif (CONFIG_CPU == PNX0101) 78#elif (CONFIG_CPU == PNX0101)
79 [SOUND_VOLUME] = {"dB", 0, 1, -48, 15, 0, sound_set_volume}, 79 [SOUND_VOLUME] = {"dB", 0, 1, -48, 15, 0, sound_set_volume},
80#elif defined(HAVE_PP5024_CODEC) 80#elif defined(HAVE_AS3514)
81/* TODO: Make this correct */ 81 [SOUND_VOLUME] = {"dB", 0, 1, -45, 1, -25, sound_set_volume},
82 [SOUND_VOLUME] = {"dB", 0, 1, -74, 6, -25, sound_set_volume},
83#else /* MAS3507D */ 82#else /* MAS3507D */
84 [SOUND_VOLUME] = {"dB", 0, 1, -78, 18, -18, sound_set_volume}, 83 [SOUND_VOLUME] = {"dB", 0, 1, -78, 18, -18, sound_set_volume},
85 [SOUND_BASS] = {"dB", 0, 1, -15, 15, 7, sound_set_bass}, 84 [SOUND_BASS] = {"dB", 0, 1, -15, 15, 7, sound_set_bass},
@@ -292,17 +291,10 @@ static int tenthdb2reg(int db)
292} 291}
293#endif 292#endif
294 293
295#if defined(HAVE_PP5024_CODEC)
296/* TODO: Work out volume/balance/treble/bass interdependency */
297#define VOLUME_MIN 0
298#define VOLUME_MAX 1
299
300#endif
301
302#if (CONFIG_CODEC == MAS3507D) || defined HAVE_UDA1380 \ 294#if (CONFIG_CODEC == MAS3507D) || defined HAVE_UDA1380 \
303 || defined HAVE_WM8975 || defined HAVE_WM8758 || defined(HAVE_WM8731) \ 295 || defined HAVE_WM8975 || defined HAVE_WM8758 || defined(HAVE_WM8731) \
304 || defined(HAVE_WM8721) || defined(HAVE_TLV320) || defined(HAVE_WM8751) \ 296 || defined(HAVE_WM8721) || defined(HAVE_TLV320) || defined(HAVE_WM8751) \
305 || defined(HAVE_PP5024_CODEC) 297 || defined(HAVE_AS3514)
306 /* volume/balance/treble/bass interdependency main part */ 298 /* volume/balance/treble/bass interdependency main part */
307#define VOLUME_RANGE (VOLUME_MAX - VOLUME_MIN) 299#define VOLUME_RANGE (VOLUME_MAX - VOLUME_MIN)
308 300
@@ -363,7 +355,8 @@ static void set_prescaled_volume(void)
363#if CONFIG_CODEC == MAS3507D 355#if CONFIG_CODEC == MAS3507D
364 dac_volume(tenthdb2reg(l), tenthdb2reg(r), false); 356 dac_volume(tenthdb2reg(l), tenthdb2reg(r), false);
365#elif defined(HAVE_UDA1380) || defined(HAVE_WM8975) || defined(HAVE_WM8758) \ 357#elif defined(HAVE_UDA1380) || defined(HAVE_WM8975) || defined(HAVE_WM8758) \
366 || defined(HAVE_WM8731) || defined(HAVE_WM8721) || defined(HAVE_WM8751) 358 || defined(HAVE_WM8731) || defined(HAVE_WM8721) || defined(HAVE_WM8751) \
359 || defined(HAVE_AS3514)
367 audiohw_set_master_vol(tenthdb2master(l), tenthdb2master(r)); 360 audiohw_set_master_vol(tenthdb2master(l), tenthdb2master(r));
368#if defined(HAVE_WM8975) || defined(HAVE_WM8758) || defined(HAVE_WM8751) 361#if defined(HAVE_WM8975) || defined(HAVE_WM8758) || defined(HAVE_WM8751)
369 audiohw_set_lineout_vol(tenthdb2master(0), tenthdb2master(0)); 362 audiohw_set_lineout_vol(tenthdb2master(0), tenthdb2master(0));
@@ -479,7 +472,7 @@ void sound_set_volume(int value)
479#elif (CONFIG_CODEC == MAS3507D) || defined HAVE_UDA1380 \ 472#elif (CONFIG_CODEC == MAS3507D) || defined HAVE_UDA1380 \
480 || defined HAVE_WM8975 || defined HAVE_WM8758 || defined HAVE_WM8731 \ 473 || defined HAVE_WM8975 || defined HAVE_WM8758 || defined HAVE_WM8731 \
481 || defined(HAVE_WM8721) || defined(HAVE_TLV320) || defined(HAVE_WM8751) \ 474 || defined(HAVE_WM8721) || defined(HAVE_TLV320) || defined(HAVE_WM8751) \
482 || defined(HAVE_PP5024_CODEC) 475 || defined(HAVE_AS3514)
483 current_volume = value * 10; /* tenth of dB */ 476 current_volume = value * 10; /* tenth of dB */
484 set_prescaled_volume(); 477 set_prescaled_volume();
485#elif CONFIG_CPU == PNX0101 478#elif CONFIG_CPU == PNX0101
@@ -500,7 +493,7 @@ void sound_set_balance(int value)
500 || defined(HAVE_WM8721) || defined(HAVE_TLV320) || defined(HAVE_WM8751) 493 || defined(HAVE_WM8721) || defined(HAVE_TLV320) || defined(HAVE_WM8751)
501 current_balance = value * VOLUME_RANGE / 100; /* tenth of dB */ 494 current_balance = value * VOLUME_RANGE / 100; /* tenth of dB */
502 set_prescaled_volume(); 495 set_prescaled_volume();
503#elif CONFIG_CPU == PNX0101 || defined(HAVE_PP5024_CODEC) 496#elif CONFIG_CPU == PNX0101 || defined(HAVE_AS3514)
504 /* TODO: implement for iFP and Sansa */ 497 /* TODO: implement for iFP and Sansa */
505 (void)value; 498 (void)value;
506#endif 499#endif
@@ -530,8 +523,8 @@ void sound_set_bass(int value)
530 current_bass = value * 10; 523 current_bass = value * 10;
531 audiohw_set_bass(value); 524 audiohw_set_bass(value);
532 set_prescaled_volume(); 525 set_prescaled_volume();
533#elif CONFIG_CPU == PNX0101 || defined(HAVE_PP5024_CODEC) 526#elif CONFIG_CPU == PNX0101
534 /* TODO: implement for iFP and Sansa */ 527 /* TODO: implement for iFP */
535 (void)value; 528 (void)value;
536#endif 529#endif
537} 530}
@@ -560,8 +553,8 @@ void sound_set_treble(int value)
560 audiohw_set_treble(value); 553 audiohw_set_treble(value);
561 current_treble = value * 10; 554 current_treble = value * 10;
562 set_prescaled_volume(); 555 set_prescaled_volume();
563#elif CONFIG_CPU == PNX0101 || defined(HAVE_PP5024_CODEC) 556#elif CONFIG_CPU == PNX0101
564 /* TODO: implement for iFP and Sansa */ 557 /* TODO: implement for iFP */
565 (void)value; 558 (void)value;
566#endif 559#endif
567} 560}