dslinux/linux-2.6.x/drivers/ide/arm ide_arm.c
amadeus
dslinux_amadeus at user.in-berlin.de
Sun Sep 17 13:28:24 CEST 2006
Update of /cvsroot/dslinux/dslinux/linux-2.6.x/drivers/ide/arm
In directory antilope:/tmp/cvs-serv17613/linux-2.6.x/drivers/ide/arm
Modified Files:
ide_arm.c
Log Message:
Fix M3CF non-RAM driver (unlock sequence reactivated)
Index: ide_arm.c
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/drivers/ide/arm/ide_arm.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- ide_arm.c 17 Sep 2006 08:43:44 -0000 1.12
+++ ide_arm.c 17 Sep 2006 11:28:22 -0000 1.13
@@ -71,6 +71,23 @@
extern void m3cf_ide_outsw(unsigned long port, u16 *src, u32 count);
#endif
+#if defined(CONFIG_IDE_NDS_M3) && !defined(CONFIG_NDS_ROM8BIT)
+static void M3_Unlock( void )
+{
+ volatile u16 tmp ;
+ tmp = *(volatile u16 *)0x08000000 ;
+ tmp = *(volatile u16 *)0x08E00002 ;
+ tmp = *(volatile u16 *)0x0800000E ;
+ tmp = *(volatile u16 *)0x08801FFC ;
+ tmp = *(volatile u16 *)0x0800104A ;
+ tmp = *(volatile u16 *)0x08800612 ;
+ tmp = *(volatile u16 *)0x08000000 ;
+ tmp = *(volatile u16 *)0x08801B66 ;
+ tmp = *(volatile u16 *)0x08800006 ;
+ tmp = *(volatile u16 *)0x08000000 ;
+}
+#endif
+
/*****************************************************************************/
#ifdef CONFIG_NDS_ROM8BIT
static void nds_ide_insw(unsigned long port, void *dest, u32 count)
@@ -198,6 +215,7 @@
#ifndef CONFIG_NDS_ROM8BIT
#ifdef CONFIG_IDE_NDS_M3
+ M3_Unlock();
for (i=0; i<8; i++)
hw.io_ports[i] = 0x08800000 + 0x20000*i;
hw.io_ports[8] = 0x080C0000; // control
More information about the dslinux-commit
mailing list