summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
authorAndree Buschmann <AndreeBuschmann@t-online.de>2011-01-21 23:32:57 +0000
committerAndree Buschmann <AndreeBuschmann@t-online.de>2011-01-21 23:32:57 +0000
commit30b29f1866c0f1899698e01708015c6e68dd9014 (patch)
tree4edbc0dcca8a3f649173fc77fe6d77a90b716d92 /firmware/target
parent01586b5ffe7ddce3a4c7e9401187a0a8f7bb594e (diff)
downloadrockbox-30b29f1866c0f1899698e01708015c6e68dd9014.tar.gz
rockbox-30b29f1866c0f1899698e01708015c6e68dd9014.zip
Fix or at least significantly improve FS#11830. With introduction of ATA DMA for PP502x a special treatment of the IDE0_CFG register for the iPod nano (see FS#7510) was lost.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29106 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/ata-pp5020.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/firmware/target/arm/ata-pp5020.c b/firmware/target/arm/ata-pp5020.c
index 44297a5a7e..0eb64351f2 100644
--- a/firmware/target/arm/ata-pp5020.c
+++ b/firmware/target/arm/ata-pp5020.c
@@ -106,7 +106,9 @@ void ata_dma_set_mode(unsigned char mode) {
106 int modeidx; 106 int modeidx;
107 107
108 (*(volatile unsigned long *)(0x600060C4)) = 0xC0000000; /* 80 Mhz */ 108 (*(volatile unsigned long *)(0x600060C4)) = 0xC0000000; /* 80 Mhz */
109#if !defined(IPOD_NANO)
109 IDE0_CFG &= ~0x10000000; 110 IDE0_CFG &= ~0x10000000;
111#endif
110 112
111 modeidx = mode & 7; 113 modeidx = mode & 7;
112 mode &= 0xF8; 114 mode &= 0xF8;
@@ -121,7 +123,9 @@ void ata_dma_set_mode(unsigned char mode) {
121 } else if (mode == 0x20 && modeidx <= ATA_MAX_MWDMA) 123 } else if (mode == 0x20 && modeidx <= ATA_MAX_MWDMA)
122 IDE0_PRI_TIMING1 = tm_mwdma[modeidx]; 124 IDE0_PRI_TIMING1 = tm_mwdma[modeidx];
123 125
126#if !defined(IPOD_NANO)
124 IDE0_CFG |= 0x20000000; /* >= 50 Mhz */ 127 IDE0_CFG |= 0x20000000; /* >= 50 Mhz */
128#endif
125} 129}
126 130
127#define IDE_CFG_INTRQ 8 131#define IDE_CFG_INTRQ 8