summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2008-11-22 14:39:42 +0000
committerMichael Sevakis <jethead71@rockbox.org>2008-11-22 14:39:42 +0000
commit5dfde5c80b7450aa6c1b25257f90ae62d471065f (patch)
tree84988af250d6c6003af62e96f3b89e8ef1deb038
parent5dec3b34aaab53e22ba542b55ef0b19fcf9c743c (diff)
downloadrockbox-5dfde5c80b7450aa6c1b25257f90ae62d471065f.tar.gz
rockbox-5dfde5c80b7450aa6c1b25257f90ae62d471065f.zip
Gigabeat S samplerate control: Fix really dumb mistake made when doing cleanup. Add some more correctness.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19180 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/audio/wm8978.c46
1 files changed, 23 insertions, 23 deletions
diff --git a/firmware/drivers/audio/wm8978.c b/firmware/drivers/audio/wm8978.c
index bdeb5339ce..c2c19ca7be 100644
--- a/firmware/drivers/audio/wm8978.c
+++ b/firmware/drivers/audio/wm8978.c
@@ -361,9 +361,9 @@ void audiohw_set_frequency(int sampling_control)
361 static const struct 361 static const struct
362 { 362 {
363 uint32_t plln : 8; 363 uint32_t plln : 8;
364 uint32_t pllk0 : 6; 364 uint32_t pllk1 : 6;
365 uint32_t pllk1 : 9;
366 uint32_t pllk2 : 9; 365 uint32_t pllk2 : 9;
366 uint32_t pllk3 : 9;
367 unsigned char mclkdiv; 367 unsigned char mclkdiv;
368 unsigned char filter; 368 unsigned char filter;
369 } sctrl_table[HW_NUM_FREQ] = 369 } sctrl_table[HW_NUM_FREQ] =
@@ -371,9 +371,9 @@ void audiohw_set_frequency(int sampling_control)
371 [HW_FREQ_8] = /* PLL = 65.536MHz */ 371 [HW_FREQ_8] = /* PLL = 65.536MHz */
372 { 372 {
373 .plln = WMC_PLLNw(7) | WMC_PLL_PRESCALE, 373 .plln = WMC_PLLNw(7) | WMC_PLL_PRESCALE,
374 .pllk0 = WMC_PLLK_23_18w(12414886 >> 18), 374 .pllk1 = WMC_PLLK_23_18w(12414886ul >> 18),
375 .pllk1 = WMC_PLLK_17_9w(12414886 >> 9), 375 .pllk2 = WMC_PLLK_17_9w(12414886ul >> 9),
376 .pllk2 = WMC_PLLK_8_0w(12414886 >> 0), 376 .pllk3 = WMC_PLLK_8_0w(12414886ul >> 0),
377 .mclkdiv = WMC_MCLKDIV_8, /* 2.0480 MHz */ 377 .mclkdiv = WMC_MCLKDIV_8, /* 2.0480 MHz */
378 .filter = WMC_SR_8KHZ, 378 .filter = WMC_SR_8KHZ,
379 }, 379 },
@@ -385,18 +385,18 @@ void audiohw_set_frequency(int sampling_control)
385 [HW_FREQ_12] = /* PLL = 73.728 MHz */ 385 [HW_FREQ_12] = /* PLL = 73.728 MHz */
386 { 386 {
387 .plln = WMC_PLLNw(8) | WMC_PLL_PRESCALE, 387 .plln = WMC_PLLNw(8) | WMC_PLL_PRESCALE,
388 .pllk0 = WMC_PLLK_23_18w(11869595 >> 18), 388 .pllk1 = WMC_PLLK_23_18w(11869595ul >> 18),
389 .pllk1 = WMC_PLLK_17_9w(11869595 >> 9), 389 .pllk2 = WMC_PLLK_17_9w(11869595ul >> 9),
390 .pllk2 = WMC_PLLK_8_0w(11869595 >> 0), 390 .pllk3 = WMC_PLLK_8_0w(11869595ul >> 0),
391 .mclkdiv = WMC_MCLKDIV_6, /* 3.0720 MHz */ 391 .mclkdiv = WMC_MCLKDIV_6, /* 3.0720 MHz */
392 .filter = WMC_SR_12KHZ, 392 .filter = WMC_SR_12KHZ,
393 }, 393 },
394 [HW_FREQ_16] = /* PLL = 65.536MHz */ 394 [HW_FREQ_16] = /* PLL = 65.536MHz */
395 { 395 {
396 .plln = WMC_PLLNw(7) | WMC_PLL_PRESCALE, 396 .plln = WMC_PLLNw(7) | WMC_PLL_PRESCALE,
397 .pllk0 = WMC_PLLK_23_18w(12414886 >> 18), 397 .pllk1 = WMC_PLLK_23_18w(12414886ul >> 18),
398 .pllk1 = WMC_PLLK_17_9w(12414886 >> 9), 398 .pllk2 = WMC_PLLK_17_9w(12414886ul >> 9),
399 .pllk2 = WMC_PLLK_8_0w(12414886 >> 0), 399 .pllk3 = WMC_PLLK_8_0w(12414886ul >> 0),
400 .mclkdiv = WMC_MCLKDIV_4, /* 4.0960 MHz */ 400 .mclkdiv = WMC_MCLKDIV_4, /* 4.0960 MHz */
401 .filter = WMC_SR_16KHZ, 401 .filter = WMC_SR_16KHZ,
402 }, 402 },
@@ -408,18 +408,18 @@ void audiohw_set_frequency(int sampling_control)
408 [HW_FREQ_24] = /* PLL = 73.728 MHz */ 408 [HW_FREQ_24] = /* PLL = 73.728 MHz */
409 { 409 {
410 .plln = WMC_PLLNw(8) | WMC_PLL_PRESCALE, 410 .plln = WMC_PLLNw(8) | WMC_PLL_PRESCALE,
411 .pllk0 = WMC_PLLK_23_18w(11869595 >> 18), 411 .pllk1 = WMC_PLLK_23_18w(11869595ul >> 18),
412 .pllk1 = WMC_PLLK_17_9w(11869595 >> 9), 412 .pllk2 = WMC_PLLK_17_9w(11869595ul >> 9),
413 .pllk2 = WMC_PLLK_8_0w(11869595 >> 0), 413 .pllk3 = WMC_PLLK_8_0w(11869595ul >> 0),
414 .mclkdiv = WMC_MCLKDIV_3, /* 6.1440 MHz */ 414 .mclkdiv = WMC_MCLKDIV_3, /* 6.1440 MHz */
415 .filter = WMC_SR_24KHZ, 415 .filter = WMC_SR_24KHZ,
416 }, 416 },
417 [HW_FREQ_32] = /* PLL = 65.536MHz */ 417 [HW_FREQ_32] = /* PLL = 65.536MHz */
418 { 418 {
419 .plln = WMC_PLLNw(7) | WMC_PLL_PRESCALE, 419 .plln = WMC_PLLNw(7) | WMC_PLL_PRESCALE,
420 .pllk0 = WMC_PLLK_23_18w(12414886 >> 18), 420 .pllk1 = WMC_PLLK_23_18w(12414886ul >> 18),
421 .pllk1 = WMC_PLLK_17_9w(12414886 >> 9), 421 .pllk2 = WMC_PLLK_17_9w(12414886ul >> 9),
422 .pllk2 = WMC_PLLK_8_0w(12414886 >> 0), 422 .pllk3 = WMC_PLLK_8_0w(12414886ul >> 0),
423 .mclkdiv = WMC_MCLKDIV_2, /* 8.1920 MHz */ 423 .mclkdiv = WMC_MCLKDIV_2, /* 8.1920 MHz */
424 .filter = WMC_SR_32KHZ, 424 .filter = WMC_SR_32KHZ,
425 }, 425 },
@@ -431,9 +431,9 @@ void audiohw_set_frequency(int sampling_control)
431 [HW_FREQ_48] = /* PLL = 73.728 MHz */ 431 [HW_FREQ_48] = /* PLL = 73.728 MHz */
432 { 432 {
433 .plln = WMC_PLLNw(8) | WMC_PLL_PRESCALE, 433 .plln = WMC_PLLNw(8) | WMC_PLL_PRESCALE,
434 .pllk0 = WMC_PLLK_23_18w(11869595 >> 18), 434 .pllk1 = WMC_PLLK_23_18w(11869595ul >> 18),
435 .pllk1 = WMC_PLLK_17_9w(11869595 >> 9), 435 .pllk2 = WMC_PLLK_17_9w(11869595ul >> 9),
436 .pllk2 = WMC_PLLK_8_0w(11869595 >> 0), 436 .pllk3 = WMC_PLLK_8_0w(11869595ul >> 0),
437 .mclkdiv = WMC_MCLKDIV_1_5, /* 12.2880 MHz */ 437 .mclkdiv = WMC_MCLKDIV_1_5, /* 12.2880 MHz */
438 .filter = WMC_SR_48KHZ, 438 .filter = WMC_SR_48KHZ,
439 }, 439 },
@@ -459,9 +459,9 @@ void audiohw_set_frequency(int sampling_control)
459 459
460 /* Program PLL. */ 460 /* Program PLL. */
461 wmc_write(WMC_PLL_N, plln); 461 wmc_write(WMC_PLL_N, plln);
462 wmc_write(WMC_PLLK_23_18, sctrl_table[sampling_control].pllk0); 462 wmc_write(WMC_PLL_K1, sctrl_table[sampling_control].pllk1);
463 wmc_write(WMC_PLLK_17_9, sctrl_table[sampling_control].pllk1); 463 wmc_write(WMC_PLL_K2, sctrl_table[sampling_control].pllk2);
464 wmc_write(WMC_PLLK_8_0, sctrl_table[sampling_control].pllk2); 464 wmc_write(WMC_PLL_K3, sctrl_table[sampling_control].pllk3);
465 465
466 /* Turn on PLL. */ 466 /* Turn on PLL. */
467 wmc_set(WMC_POWER_MANAGEMENT1, WMC_PLLEN); 467 wmc_set(WMC_POWER_MANAGEMENT1, WMC_PLLEN);