]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] cpqfc.o v2.5.8
authorJes Sorensen <jes@wildopensource.com>
Sun, 14 Apr 2002 04:24:40 +0000 (21:24 -0700)
committerLinus Torvalds <torvalds@penguin.transmeta.com>
Sun, 14 Apr 2002 04:24:40 +0000 (21:24 -0700)
This makes the cpqfc driver recognize the HP Tachyon.  I moved the
device list to an __initdata structure so the driver doesn't build it at
runtime and changed it to use the proper PCI_DEVICE_ID_* names.

With this patch applied, the driver happily detects the disks attached
to my HP Tachyon.

drivers/scsi/cpqfcTSinit.c
drivers/scsi/cpqfcTSstructs.h
include/linux/pci_ids.h

index 8dc265c072432904d10644d17649ed4127762b95..76a4db60a6df2cd70519060e189fb8d3df50d394 100644 (file)
@@ -261,10 +261,22 @@ static void launch_FCworker_thread(struct Scsi_Host *HostAdapter)
 /* "Entry" point to discover if any supported PCI 
    bus adapter can be found
 */
-// We're supporting:
-// Compaq 64-bit, 66MHz HBA with Tachyon TS
-// Agilent XL2 
-#define HBA_TYPES 2
+/* We're supporting:
+ * Compaq 64-bit, 66MHz HBA with Tachyon TS
+ * Agilent XL2 
+ * HP Tachyon
+ */
+#define HBA_TYPES 3
+
+#ifndef PCI_DEVICE_ID_COMPAQ_
+#define PCI_DEVICE_ID_COMPAQ_TACHYON   0xa0fc
+#endif
+
+static struct SupportedPCIcards cpqfc_boards[] __initdata = {
+       {PCI_VENDOR_ID_COMPAQ, PCI_DEVICE_ID_COMPAQ_TACHYON},
+       {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_TACHLITE},
+       {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_TACHYON},
+};
 
 
 int cpqfcTS_detect(Scsi_Host_Template *ScsiHostTemplate)
@@ -274,35 +286,28 @@ int cpqfcTS_detect(Scsi_Host_Template *ScsiHostTemplate)
   struct Scsi_Host *HostAdapter = NULL;
   CPQFCHBA *cpqfcHBAdata = NULL; 
   struct timer_list *cpqfcTStimer = NULL;
-  SupportedPCIcards PCIids[HBA_TYPES];
   int i;
-  
+
   ENTER("cpqfcTS_detect");
-  
+
 #if LINUX_VERSION_CODE < LinuxVersionCode(2,3,27)
   ScsiHostTemplate->proc_dir = &proc_scsi_cpqfcTS;
 #else
   ScsiHostTemplate->proc_name = "cpqfcTS";
 #endif
-  
+
   if( pci_present() == 0) // no PCI busses?
   {
     printk( "  no PCI bus?@#!\n");
     return NumberOfAdapters;
   }
 
-  // what HBA adapters are we supporting?
-  PCIids[0].vendor_id = PCI_VENDOR_ID_COMPAQ;
-  PCIids[0].device_id = CPQ_DEVICE_ID;
-  PCIids[1].vendor_id = PCI_VENDOR_ID_HP; // i.e. 103Ch (Agilent == HP for now)
-  PCIids[1].device_id = AGILENT_XL2_ID;   // i.e. 1029h
-
   for( i=0; i < HBA_TYPES; i++)
   {
     // look for all HBAs of each type
 
-    while( (PciDev =
-      pci_find_device( PCIids[i].vendor_id, PCIids[i].device_id, PciDev) ))
+    while((PciDev = pci_find_device(cpqfc_boards[i].vendor_id,
+                                   cpqfc_boards[i].device_id, PciDev)))
     {
 
       if (pci_set_dma_mask(PciDev, CPQFCTS_DMA_MASK) != 0) {
index 29a0fe819a1c25bfde0a7854a1a52cbd9b57c3e6..a60603a4e978e3148dc43f8a5c0824a9840edf94 100644 (file)
 
 #define DEV_NAME "cpqfcTS"
 
-#define CPQ_DEVICE_ID     0xA0FC
-#define AGILENT_XL2_ID    0x1029
-
-typedef struct
+struct SupportedPCIcards
 {
   __u16 vendor_id;
   __u16 device_id;
-} SupportedPCIcards;
+};
                         
 // nn:nn denotes bit field
                             // TachyonHeader struct def.
index 13ab68e4c0d55218fd601a6bffa77dda561ef631..1872896adcafd855bad2fbee062159ce9d7629db 100644 (file)
 #define PCI_DEVICE_ID_COMPAQ_1280      0x3033
 #define PCI_DEVICE_ID_COMPAQ_TRIFLEX   0x4000
 #define PCI_DEVICE_ID_COMPAQ_6010      0x6010
+#define PCI_DEVICE_ID_COMPAQ_TACHYON   0xa0fc
 #define PCI_DEVICE_ID_COMPAQ_SMART2P   0xae10
 #define PCI_DEVICE_ID_COMPAQ_NETEL100  0xae32
 #define PCI_DEVICE_ID_COMPAQ_NETEL10   0xae34