NEC VR5701 support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Source: MontaVista Software, Inc.
MR: 14884
Type: Defect Fix
Disposition: needs submitting to linuxmips-embedded mailing list
Signed-off-by: Aleskey Makarov <makarov@xxxxxxxxxxxxx>
Description:
    The address of IDE control register on this platform
    is not standard. Also, an unnecessary check for pci
    vendor/device/class was removed and
    an unnamed constant assignment was fixed.

Index: linux-2.6.10/arch/mips/vr5701/tcube/setup.c
===================================================================
--- linux-2.6.10.orig/arch/mips/vr5701/tcube/setup.c
+++ linux-2.6.10/arch/mips/vr5701/tcube/setup.c
@@ -123,7 +123,7 @@ static void __init tcube_board_init(void
 	 * IO_BASE in CPU physical address space.
 	 */
 	ddb_set_pmr(EPCI_INIT0, DDB_PCICMD_MEM, 0x10000000, DDB_PCI_ACCESS_32);
-	ddb_set_pmr(EPCI_INIT1, DDB_PCICMD_IO, 0x00001000, DDB_PCI_ACCESS_32);
+	ddb_set_pmr(EPCI_INIT1, DDB_PCICMD_IO, 0x00000000, DDB_PCI_ACCESS_32);
 	ddb_set_pmr(IPCI_INIT0, DDB_PCICMD_MEM, 0x18800000, DDB_PCI_ACCESS_32);
 	ddb_set_pmr(IPCI_INIT1, DDB_PCICMD_IO, 0x01000000, DDB_PCI_ACCESS_32);
 
Index: linux-2.6.10/drivers/ide/pci/nec_vr5701_sg2.c
===================================================================
--- linux-2.6.10.orig/drivers/ide/pci/nec_vr5701_sg2.c
+++ linux-2.6.10/drivers/ide/pci/nec_vr5701_sg2.c
@@ -44,6 +44,13 @@ static void __init init_hwif_nec_vr5701(
 	hwif->mwdma_mask = 0x07;
 	hwif->swdma_mask = 0x07;
 
+	{
+		struct pci_dev * pci_dev = hwif->pci_dev;
+		hwif->io_ports[IDE_CONTROL_OFFSET]
+			= hwif->hw.io_ports[IDE_CONTROL_OFFSET]
+			= pci_resource_start(pci_dev, 1) + 0x06;
+	}
+
 	if (!noautodma)
 		hwif->autodma = 1;
 	hwif->drives[0].autodma = hwif->autodma;
@@ -65,15 +72,9 @@ static int __devinit nec_vr5701_init_one
 	ide_pci_device_t *d = &nec_vr5701_chipset;
 	u16 command;
 
-	if (dev->vendor == PCI_VENDOR_ID_NEC &&
-	    dev->device == PCI_DEVICE_ID_NEC_USB_AND_IDE &&
-	    dev->class == 0x0c0310)
-		return 1;
-	udelay(100);
 	pci_enable_device(dev);
-	*(volatile unsigned char *)0xb9001010 = 6;
-	asm("sync");
-	udelay(100);
+
+	outb(6, pci_resource_start(dev, 5));
 
 	pci_read_config_word(dev, PCI_COMMAND, &command);
 	if (!(command & PCI_COMMAND_IO)) {
Index: linux-2.6.10/include/linux/lsppatchlevel.h
===================================================================
--- linux-2.6.10.orig/include/linux/lsppatchlevel.h
+++ linux-2.6.10/include/linux/lsppatchlevel.h
@@ -6,4 +6,4 @@
  * is licensed "as is" without any warranty of any kind, whether express
  * or implied.
  */
-#define LSP_PATCH_LEVEL "6"
+#define LSP_PATCH_LEVEL "7"
Index: linux-2.6.10/mvl_patches/pro-0007.c
===================================================================
--- /dev/null
+++ linux-2.6.10/mvl_patches/pro-0007.c
@@ -0,0 +1,16 @@
+/*
+ * Author: MontaVista Software, Inc. <source@xxxxxxxxxx>
+ *
+ * 2005 (c) MontaVista Software, Inc. This file is licensed under
+ * the terms of the GNU General Public License version 2. This program
+ * is licensed "as is" without any warranty of any kind, whether express
+ * or implied.
+ */
+#include <linux/init.h>
+#include <linux/mvl_patch.h>
+
+static __init int regpatch(void)
+{
+        return mvl_register_patch(7);
+}
+module_init(regpatch);

[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux