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