Skip to contentSkip to conversation

can we get asane ic7xxx/79xx probing _please_

rant Christoph Hellwig 4 participants 9 messages Sep 6, 2004 – Sep 14, 2004

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Sorry to complain to you for Justins mess, but could you please fixup the damn pci probing? Andi sent you a patch to add proper pci tables, and not ignoring the pci_module_init retval would be trivial if the module initialization wasn't split over three routines.

Curretly hotplug loads the adaptec drivers for every PCI scsi adapter in the system, see

	http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=270102

for details

#1 lore raw

Hi Christoph,

Thanks for bringing this up. I do have Andi's patch in the pending list, and would like to apply it to the newer version of the driver.

I should mention that while the newer drivers do not quite have the PCI tables as presented in Andi's patch, they do check the return value of pci_module_init() and return the appropriate result.

Thanks again,
Luben

Quoted 12 lines · Christoph Hellwig

Sorry to complain to you for Justins mess, but could you please fixup the damn pci probing? Andi sent you a patch to add proper pci tables, and not ignoring the pci_module_init retval would be trivial if the module initialization wasn't split over three routines.

Curretly hotplug loads the adaptec drivers for every PCI scsi adapter in the system, see

        http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=270102

for details

#2 lore raw
Quoted 8 lines · Luben Tuikov

Hi Christoph,

Thanks for bringing this up. I do have Andi's patch in the pending list, and would like to apply it to the newer version of the driver.

I should mention that while the newer drivers do not quite have the PCI tables as presented in Andi's patch, they do check the return value of pci_module_init() and return the appropriate result.

Luben, please stop that new version of the driver stuff. Your job as a maintainer is to keep the driver in the kernel working, and your the steering point for getting right fixes in fast in a controlled way, the last thing we need is driver "releases" that batch up unrelated changes and are delayed forever.

So is Andi's (and my later fix okay) and can James apply them or not?

#3 lore raw
Quoted 12 lines · Christoph Hellwig
Quoted 8 lines · Luben Tuikov

Hi Christoph,

Thanks for bringing this up. I do have Andi's patch in the pending list, and would like to apply it to the newer version of the driver.

I should mention that while the newer drivers do not quite have the PCI tables as presented in Andi's patch, they do check the return value of pci_module_init() and return the appropriate result.

Quoted 7 lines

Luben, please stop that new version of the driver stuff. Your job as a maintainer is to keep the driver in the kernel working, and your the steering point for getting right fixes in fast in a controlled way, the last thing we need is driver "releases" that batch up unrelated changes and are delayed forever.

So is Andi's (and my later fix okay) and can James apply them or not?

Yes they are okay and James can apply them.

Luben

#4 lore raw
Quoted 1 line · Luben Tuikov

Yes they are okay and James can apply them.

OK, could someone do a resend with changelog that applies to the current tree, please.

James

#5 lore raw
Quoted 5 lines · James Bottomley
Quoted 1 line · Luben Tuikov

Yes they are okay and James can apply them.

OK, could someone do a resend with changelog that applies to the current tree, please.

----
[PATCH] add proper pci id table to aic7xxx

(trivial respin of an earlier patch by Andi Kleen)

drivers/scsi/aic7xxx/aic7xxx_osm_pci.c +71 -9
@@ -40,6 +40,7 @@
  */
 
 #include "aic7xxx_osm.h"
+#include "aic7xxx_pci.h"
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0)
 struct pci_device_id
@@ -57,16 +58,77 @@
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
 static void	ahc_linux_pci_dev_remove(struct pci_dev *pdev);
 
-/* We do our own ID filtering.  So, grab all SCSI storage class devices. */
 static struct pci_device_id ahc_linux_pci_id_table[] = {
-	{
-		0x9004, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
-		PCI_CLASS_STORAGE_SCSI << 8, 0xFFFF00, 0
-	},
-	{
-		0x9005, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
-		PCI_CLASS_STORAGE_SCSI << 8, 0xFFFF00, 0
-	},
+#define LINUXID(x,s) (unsigned)((((x) >> s) & 0xffff) ?: PCI_ANY_ID)
+#define ID(x) \
+	{ \
+		LINUXID(x,32), LINUXID(x,48), LINUXID(x,0), LINUXID(x,16), \
+		PCI_CLASS_STORAGE_SCSI << 8, 0xFFFF00, 0 \
+	}
+#define ID4(x,y) \
+	ID(x | ((y+0)<<48)), ID(x | ((y+1)<<48)), ID(x | ((y+2)<<48)), \
+	ID(x | ((y+3)<<48))
+#define ID16(x) ID4(x,0ULL), ID4(x,4ULL), ID4(x,8ULL), ID4(x,12ULL)
+	ID(ID_AHA_2902_04_10_15_20C_30C),
+	ID(ID_AHA_2930CU),
+	ID(ID_AHA_1480A & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_2940AU_0 & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_2940AU_CN & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_2930C_VAR & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_2940),
+	ID(ID_AHA_3940),
+	ID(ID_AHA_398X),
+	ID(ID_AHA_2944),
+	ID(ID_AHA_3944),
+	ID(ID_AHA_4944),
+	ID(ID_AHA_2940U & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_3940U & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_2944U & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_3944U & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_398XU & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_4944U & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_2930U & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_2940U_PRO & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_2940U_CN & ID_DEV_VENDOR_MASK),
+	ID(ID_AHA_2930U2),
+	ID(ID_AHA_2940U2B),
+	ID(ID_AHA_2940U2_OEM),
+	ID(ID_AHA_2940U2),
+	ID(ID_AHA_2950U2B),
+	ID(ID_AIC7890_ARO),
+	ID(ID_AAA_131U2),
+	ID(ID_AHA_29160),
+	ID(ID_AHA_29160_CPQ),
+	ID(ID_AHA_29160N),
+	ID(ID_AHA_29160C),
+	ID(ID_AHA_29160B),
+	ID(ID_AHA_19160B),
+	ID(ID_AIC7892_ARO),
+	ID(ID_AHA_2940U_DUAL),
+	ID(ID_AHA_3940AU),
+	ID(ID_AHA_3944AU),
+	ID(ID_AIC7895_ARO),
+	ID(ID_AHA_3950U2B_0),
+	ID(ID_AHA_3950U2B_1),
+	ID(ID_AHA_3950U2D_0),
+	ID(ID_AHA_3950U2D_1),
+	ID(ID_AIC7896_ARO),
+	ID(ID_AHA_3960D),
+	ID(ID_AHA_3960D_CPQ),
+	ID(ID_AIC7899_ARO),
+	ID(ID_AIC7850 & ID_DEV_VENDOR_MASK),
+	ID(ID_AIC7855 & ID_DEV_VENDOR_MASK),
+	ID(ID_AIC7859 & ID_DEV_VENDOR_MASK),
+	ID(ID_AIC7860 & ID_DEV_VENDOR_MASK),
+	ID(ID_AIC7870 & ID_DEV_VENDOR_MASK),
+	ID(ID_AIC7880 & ID_DEV_VENDOR_MASK),
+	ID16(ID_AIC7890),
+	ID16(ID_AIC7892),
+	ID(ID_AIC7895 & ID_DEV_VENDOR_MASK),
+	ID(ID_AIC7896),
+	ID(ID_AIC7899),
+	ID(ID_AIC7810 & ID_DEV_VENDOR_MASK),
+	ID(ID_AIC7815 & ID_DEV_VENDOR_MASK),
 	{ 0 }
 };
 

===== drivers/scsi/aic7xxx/aic7xxx_pci.c 1.19 vs edited =====

drivers/scsi/aic7xxx/aic7xxx_pci.c +2 -92

102 lines not on this page · raw message

#6 lore raw
Quoted 11 lines · Christoph Hellwig
Quoted 5 lines · James Bottomley
Quoted 1 line · Luben Tuikov

Yes they are okay and James can apply them.

OK, could someone do a resend with changelog that applies to the current tree, please.

----
[PATCH] add proper pci id table to aic7xxx

(trivial respin of an earlier patch by Andi Kleen)

This doesn't actually compile: aic7xxx_pci.h is missing, I think.

James

#7 lore raw
In reply to Luben Tuikov
Quoted 8 lines · Luben Tuikov

Hi Christoph,

Thanks for bringing this up. I do have Andi's patch in the pending list, and would like to apply it to the newer version of the driver.

I should mention that while the newer drivers do not quite have the PCI tables as presented in Andi's patch, they do check the return value of pci_module_init() and return the appropriate result.

please please please provide linux compliant MODULE_DEVICE_TABLE's. Operating system hardware probing apps *require* those for device probing; right now there are very ugly hacks especially for aic7xxx that should go away.

#8 lore raw
Quoted 12 lines · Arjan van de Ven
Quoted 8 lines · Luben Tuikov

Hi Christoph,

Thanks for bringing this up. I do have Andi's patch in the pending list, and would like to apply it to the newer version of the driver.

I should mention that while the newer drivers do not quite have the PCI tables as presented in Andi's patch, they do check the return value of pci_module_init() and return the appropriate result.

Quoted 5 lines

please please please provide linux compliant MODULE_DEVICE_TABLE's. Operating system hardware probing apps *require* those for device probing; right now there are very ugly hacks especially for aic7xxx that should go away.

Yes Arjan, I agree.

Luben