summaryrefslogtreecommitdiffstats
path: root/target/linux/ixp4xx/patches/160-nas100d_artop_temp_fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ixp4xx/patches/160-nas100d_artop_temp_fix.patch')
-rw-r--r--target/linux/ixp4xx/patches/160-nas100d_artop_temp_fix.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/target/linux/ixp4xx/patches/160-nas100d_artop_temp_fix.patch b/target/linux/ixp4xx/patches/160-nas100d_artop_temp_fix.patch
new file mode 100644
index 000000000..b7ac4d94c
--- /dev/null
+++ b/target/linux/ixp4xx/patches/160-nas100d_artop_temp_fix.patch
@@ -0,0 +1,49 @@
+From: Alan Cox <alan@redhat.com>
+To: Alessandro Zummo <alessandro.zummo@towertech.it>
+Cc: Jeff Garzik <jgarzik@redhat.com>, Alan Cox <alan@redhat.com>
+Subject: Re: drivers/ata/pata_artop.c
+Date: Sun, 15 Oct 2006 14:25:16 -0400
+User-Agent: Mutt/1.4.1i
+
+On Sun, Oct 15, 2006 at 07:18:31PM +0200, Alessandro Zummo wrote:
+> In the discovery phase there's a lot of time spent in the detection
+> of the second port.
+
+The error recovery is a bit determined right now - Tejun's been doing some
+work on SRST behaviour and also for the worst cases polled detect so it
+should come out ok
+
+> What's the correct way to inform the driver
+> to avoid checking the second port?
+
+Set the number of ports to 1 in your own tree for now. The real fix is
+not to go poking at pata ports if the ret is 0xFF
+
+---
+ drivers/ata/pata_artop.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: linux-2.6.19/drivers/ata/pata_artop.c
+===================================================================
+--- linux-2.6.19.orig/drivers/ata/pata_artop.c
++++ linux-2.6.19/drivers/ata/pata_artop.c
+@@ -26,6 +26,7 @@
+ #include <scsi/scsi_host.h>
+ #include <linux/libata.h>
+ #include <linux/ata.h>
++#include <asm/mach-types.h>
+
+ #define DRV_NAME "pata_artop"
+ #define DRV_VERSION "0.4.2"
+@@ -469,6 +470,11 @@ static int artop_init_one (struct pci_de
+ pci_read_config_byte(pdev, 0x4a, &reg);
+ pci_write_config_byte(pdev, 0x4a, (reg & ~0x01) | 0x80);
+
++ /* NAS100D workaround */
++#ifdef CONFIG_MACH_NAS100D
++ if (machine_is_nas100d())
++ ports = 1;
++#endif
+ }
+
+ BUG_ON(info == NULL);