summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2005-12-22 09:33:39 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2005-12-22 09:33:39 +0000
commit9d67765cae62e873c3d004bf9bcb68947f1568f6 (patch)
tree48cbefd4bb90a72927ca4a5bb4cf9f0821cc1b0a
parentbd544b6c20819d12d9262890ec498492ca171444 (diff)
downloadrockbox-9d67765cae62e873c3d004bf9bcb68947f1568f6.zip
rockbox-9d67765cae62e873c3d004bf9bcb68947f1568f6.tar.gz
rockbox-9d67765cae62e873c3d004bf9bcb68947f1568f6.tar.bz2
rockbox-9d67765cae62e873c3d004bf9bcb68947f1568f6.tar.xz
Reverted the H300 LCD DMA patch, since it iterfered with the recording DMA
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8279 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/lcd-h300.c21
1 files changed, 5 insertions, 16 deletions
diff --git a/firmware/drivers/lcd-h300.c b/firmware/drivers/lcd-h300.c
index 149062b..bb2f9ec 100644
--- a/firmware/drivers/lcd-h300.c
+++ b/firmware/drivers/lcd-h300.c
@@ -89,20 +89,12 @@ inline void lcd_begin_write_gram(void)
*(volatile unsigned short *)0xf0000000 = R_WRITE_DATA_2_GRAM;
}
-void lcd_write_data(const unsigned short* p_bytes, int count) ICODE_ATTR;
-void lcd_write_data(const unsigned short* p_bytes, int count)
+/* called very frequently - inline! */
+inline void lcd_write_data(const unsigned short* p_bytes, int count) ICODE_ATTR;
+inline void lcd_write_data(const unsigned short* p_bytes, int count)
{
- SAR1 = (unsigned long)p_bytes; /* Destination address */
- while(count)
- {
- int cnt = MIN(count, 256);
- DAR1 = (unsigned long)0xf0000002; /* Destination address */
- BCR1 = cnt*2; /* Bytes to transfer */
- DCR1 = 0x02000000 | DMA_SINC | (2 << 20) | (2 << 17) | DMA_START;
- while(!(DSR1 & 1)) {};
- DSR1 = 1;
- count -= cnt;
- }
+ while(count--)
+ *(volatile unsigned short *)0xf0000002 = *p_bytes++;
}
/*** hardware configuration ***/
@@ -139,9 +131,6 @@ void lcd_roll(int lines)
/* LCD init */
void lcd_init_device(void)
{
- MPARK = 0x81; /* PARK[1,0]=10 + BCR24BIT */
- DSR1 = 1;
-
/* GPO46 is LCD RESET */
or_l(0x00004000, &GPIO1_OUT);
or_l(0x00004000, &GPIO1_ENABLE);