MPIO HD300: vastly improve sound quality. This unfortunately means reverting r28797 which introduced poping noise
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30904 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
9310fc0b4c
commit
f4b74b269a
2 changed files with 17 additions and 30 deletions
|
@ -219,20 +219,22 @@ static void audiohw_mute(bool mute)
|
|||
/* Reset and power up the WM8751 */
|
||||
void audiohw_preinit(void)
|
||||
{
|
||||
#ifdef MROBE_100
|
||||
#if defined(MROBE_100)
|
||||
/* controls headphone ouput */
|
||||
GPIOL_ENABLE |= 0x10;
|
||||
GPIOL_OUTPUT_EN |= 0x10;
|
||||
GPIOL_OUTPUT_VAL |= 0x10; /* disable */
|
||||
#endif
|
||||
|
||||
#ifdef MPIO_HD200
|
||||
#elif defined(MPIO_HD200)
|
||||
/* control headphone output
|
||||
* disabled on startup
|
||||
*/
|
||||
and_l(~(1<<25), &GPIO1_OUT);
|
||||
or_l((1<<25), &GPIO1_ENABLE);
|
||||
or_l((1<<25), &GPIO1_FUNCTION);
|
||||
#elif defined(MPIO_HD300)
|
||||
and_l(~(1<<5), &GPIO1_OUT);
|
||||
or_l((1<<5), &GPIO1_ENABLE);
|
||||
or_l((1<<5), &GPIO1_FUNCTION);
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -322,15 +324,15 @@ void audiohw_postinit(void)
|
|||
|
||||
audiohw_mute(false);
|
||||
|
||||
#ifdef MROBE_100
|
||||
#if defined(MROBE_100)
|
||||
/* enable headphone output */
|
||||
GPIOL_OUTPUT_VAL &= ~0x10;
|
||||
GPIOL_OUTPUT_EN |= 0x10;
|
||||
#endif
|
||||
|
||||
#ifdef MPIO_HD200
|
||||
#elif defined(MPIO_HD200)
|
||||
/* enable headphone output */
|
||||
or_l((1<<25), &GPIO1_OUT);
|
||||
#elif defined(MPIO_HD300)
|
||||
or_l((1<<5), &GPIO1_OUT);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -394,9 +396,11 @@ void audiohw_close(void)
|
|||
/* 1. Set DACMU = 1 to soft-mute the audio DACs. */
|
||||
audiohw_mute(true);
|
||||
|
||||
#ifdef MPIO_HD200
|
||||
#if defined(MPIO_HD200)
|
||||
/* disable headphone out */
|
||||
and_l(~(1<<25), &GPIO1_OUT);
|
||||
#elif defined(MPIO_HD300)
|
||||
and_l(~(1<<5), &GPIO1_OUT);
|
||||
#endif
|
||||
|
||||
/* 2. Disable all output buffers. */
|
||||
|
|
|
@ -210,27 +210,10 @@ void lcd_update(void)
|
|||
lcd_write_command_ex(LCD_CNTL_COLUMN, 0, -1);
|
||||
lcd_write_command(LCD_CNTL_DATA_WRITE);
|
||||
|
||||
/* lcd can't handle the speed of DMA transfer when boosted
|
||||
* 11 MHz in bootloader hangs for unknown reason
|
||||
*/
|
||||
if ( cpu_frequency == CPUFREQ_NORMAL )
|
||||
{
|
||||
/* Copy display bitmap to hardware using DMA */
|
||||
DSR3 = 1;
|
||||
DAR3 = 0xf0000002;
|
||||
SAR3 = (unsigned long)lcd_framebuffer;
|
||||
BCR3 = LCD_WIDTH*LCD_FBHEIGHT;
|
||||
DCR3 = DMA_BWC(1) | DMA_SINC | DMA_SSIZE(DMA_SIZE_BYTE) |
|
||||
DMA_DSIZE(DMA_SIZE_BYTE) | DMA_START;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Copy display bitmap to hardware */
|
||||
lcd_write_data (&lcd_framebuffer[0][0], LCD_WIDTH*LCD_FBHEIGHT);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Update a fraction of the display. */
|
||||
void lcd_update_rect(int, int, int, int) ICODE_ATTR;
|
||||
void lcd_update_rect(int x, int y, int width, int height)
|
||||
|
|
Loading…
Reference in a new issue