I tested this on a WRT54GS and a WRT610N V1. The WRT610N does not boot when the kernel is too big, so I deactivated KALLSYMS Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From: b.sander
 | 
						|
Subject: [PATCH] pci: IDE fix
 | 
						|
 | 
						|
These are standard probing messages when using pdc202xx_old:
 | 
						|
pdc202xx_old 0000:00:01.0: IDE controller (0x105a:0x0d30 rev 0x02)
 | 
						|
PCI: Enabling device 0000:00:01.0 (0004 -> 0007)
 | 
						|
PCI: Fixing up device 0000:00:01.0
 | 
						|
0000:00:01.0: (U)DMA Burst Bit DISABLED Primary PCI Mode Secondary PCI Mode.
 | 
						|
0000:00:01.0: FORCING BURST BIT 0x00->0x01 ACTIVE
 | 
						|
pdc202xx_old 0000:00:01.0: 100% native mode on irq 6
 | 
						|
 | 
						|
With the default MAX_HWIFS value after above we get:
 | 
						|
    ide2: BM-DMA at 0x0400-0x0407
 | 
						|
    ide3: BM-DMA at 0x0408-0x040f
 | 
						|
Probing IDE interface ide2...
 | 
						|
hde: CF500, CFA DISK drive
 | 
						|
 | 
						|
As you can see it's ide2 + ide3 and hde.
 | 
						|
 | 
						|
With this patch applied we get:
 | 
						|
    ide0: BM-DMA at 0x0400-0x0407
 | 
						|
    ide1: BM-DMA at 0x0408-0x040f
 | 
						|
Probing IDE interface ide0...
 | 
						|
hda: CF500, CFA DISK drive
 | 
						|
 | 
						|
This fixes OpenWrt ticket #7061: https://dev.openwrt.org/ticket/7061
 | 
						|
---
 | 
						|
--- a/include/linux/ide.h
 | 
						|
+++ b/include/linux/ide.h
 | 
						|
@@ -204,7 +204,11 @@ static inline void ide_std_init_ports(st
 | 
						|
 	hw->io_ports.ctl_addr = ctl_addr;
 | 
						|
 }
 | 
						|
 
 | 
						|
+#if defined CONFIG_BCM47XX
 | 
						|
+# define MAX_HWIFS	2
 | 
						|
+#else
 | 
						|
 #define MAX_HWIFS	10
 | 
						|
+#endif
 | 
						|
 
 | 
						|
 /*
 | 
						|
  * Now for the data we need to maintain per-drive:  ide_drive_t
 |