lkml.org 
[lkml]   [2005]   [Aug]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2.6.13-rc6] MODULE_DEVICE_TABLE for cpqfcTS driver
    Date
    cpqfcTSinit has a static array of PCI device and vendor ids supported by the 
    driver. Sounds familiar, doesn't it? Use pci_device_id as type for the
    entries of this array and declare the array as MODULE_DEVICE_TABLE. Also use
    pci_get_device() instead of pci_find_device() and remove some superfluos
    defines for device scanning.

    Signed-off-by: Rolf Eike Beer <eike-kernel@sf-tec.de>

    --- a/drivers/scsi/cpqfcTSstructs.h 2005-08-14 10:56:41.000000000 +0200
    +++ b/drivers/scsi/cpqfcTSstructs.h 2005-08-14 10:57:32.000000000 +0200
    @@ -95,12 +95,6 @@

    #define DEV_NAME "cpqfcTS"

    -struct SupportedPCIcards
    -{
    - __u16 vendor_id;
    - __u16 device_id;
    -};
    -
    // nn:nn denotes bit field
    // TachyonHeader struct def.
    // the fields shared with ODB
    --- a/drivers/scsi/cpqfcTSinit.c 2005-08-14 14:20:40.000000000 +0200
    +++ b/drivers/scsi/cpqfcTSinit.c 2005-08-14 14:25:33.000000000 +0200
    @@ -264,18 +264,14 @@ static void launch_FCworker_thread(struc
    * 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},
    +static struct pci_device_id cpqfc_boards[] __initdata = {
    + {PCI_VENDOR_ID_COMPAQ, PCI_DEVICE_ID_COMPAQ_TACHYON, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
    + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_TACHLITE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
    + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_TACHYON, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
    + {0, }
    };

    +MODULE_DEVICE_TABLE(pci, cpqfc_boards);

    int cpqfcTS_detect(Scsi_Host_Template *ScsiHostTemplate)
    {
    @@ -294,14 +290,9 @@ int cpqfcTS_detect(Scsi_Host_Template *S
    ScsiHostTemplate->proc_name = "cpqfcTS";
    #endif

    - for( i=0; i < HBA_TYPES; i++)
    - {
    - // look for all HBAs of each type
    -
    - while((PciDev = pci_find_device(cpqfc_boards[i].vendor_id,
    - cpqfc_boards[i].device_id, PciDev)))
    - {
    -
    + for(i = 0; cpqfc_boards[i]; i++) {
    + while((PciDev = pci_get_device(cpqfc_boards[i].vendor,
    + cpqfc_boards[i].device, PciDev))) {
    if (pci_enable_device(PciDev)) {
    printk(KERN_ERR
    "cpqfc: can't enable PCI device at %s\n", pci_name(PciDev));
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2005-08-16 11:16    [W:0.043 / U:1.092 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site