lkml.org 
[lkml]   [2006]   [Oct]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC PATCH] move aic7xxx to pci_request_irq
    Hi,

    This proof-of-concept patch converts the aic7xxx driver to use the
    pci_request_irq() function.

    Please note that I'm not submitting the driver changes, they're there
    only for illustration purposes. I'll CC the appropriate maintainers
    when/if an API is agreed upon.

    Regards,
    Frederik


    diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.h b/drivers/scsi/aic7xxx/aic7xxx_osm.h
    index 86ea7ac..24f70bc 100644
    Index: 2.6.18-mm3/drivers/scsi/aic7xxx/aic7xxx_osm.h
    ===================================================================
    --- 2.6.18-mm3.orig/drivers/scsi/aic7xxx/aic7xxx_osm.h
    +++ 2.6.18-mm3/drivers/scsi/aic7xxx/aic7xxx_osm.h
    @@ -561,7 +561,6 @@ static inline void ahc_linux_eisa_exit(v
    int ahc_linux_pci_init(void);
    void ahc_linux_pci_exit(void);
    int ahc_pci_map_registers(struct ahc_softc *ahc);
    -int ahc_pci_map_int(struct ahc_softc *ahc);

    static __inline uint32_t ahc_pci_read_config(ahc_dev_softc_t pci,
    int reg, int width);
    Index: 2.6.18-mm3/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c
    ===================================================================
    --- 2.6.18-mm3.orig/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c
    +++ 2.6.18-mm3/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c
    @@ -368,16 +368,3 @@ ahc_pci_map_registers(struct ahc_softc *
    return (error);
    }

    -int
    -ahc_pci_map_int(struct ahc_softc *ahc)
    -{
    - int error;
    -
    - error = request_irq(ahc->dev_softc->irq, ahc_linux_isr,
    - IRQF_SHARED, "aic7xxx", ahc);
    - if (error == 0)
    - ahc->platform_data->irq = ahc->dev_softc->irq;
    -
    - return (-error);
    -}
    -
    Index: 2.6.18-mm3/drivers/scsi/aic7xxx/aic7xxx_pci.c
    ===================================================================
    --- 2.6.18-mm3.orig/drivers/scsi/aic7xxx/aic7xxx_pci.c
    +++ 2.6.18-mm3/drivers/scsi/aic7xxx/aic7xxx_pci.c
    @@ -968,13 +968,19 @@ ahc_pci_config(struct ahc_softc *ahc, st

    /*
    * Allow interrupts now that we are completely setup.
    - */
    - error = ahc_pci_map_int(ahc);
    - if (error != 0)
    - return (error);
    + *
    + * Note: pci_request_irq return value is negated due to aic7xxx
    + * error handling style
    + */
    + error = -pci_request_irq(ahc->dev_softc, ahc_linux_isr,
    + IRQF_SHARED, "aic7xxx");
    +
    + if (!error) {
    + ahc->platform_data->irq = ahc->dev_softc->irq;
    + ahc->init_level++;
    + }

    - ahc->init_level++;
    - return (0);
    + return error;
    }

    /*
    -
    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: 2006-10-04 00:17    [W:0.023 / U:2.476 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site