ide: fix ->init_chipset method to return 'int' value
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Tue, 24 Mar 2009 22:22:53 +0000 (23:22 +0100)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Tue, 24 Mar 2009 22:22:53 +0000 (23:22 +0100)
* Return 0 instead of dev->irq in ->init_chipset implementations.

* Fix ->init_chipset method to return 'int' value instead of
  'unsigned int' one.

This fixes ->init_chipset handling for host drivers (cs5530, hpt366
and pdc202xx_new) for which it is possible for this method to fail.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
18 files changed:
drivers/ide/aec62xx.c
drivers/ide/alim15x3.c
drivers/ide/amd74xx.c
drivers/ide/cmd64x.c
drivers/ide/cs5530.c
drivers/ide/delkin_cb.c
drivers/ide/hpt366.c
drivers/ide/it821x.c
drivers/ide/pdc202xx_new.c
drivers/ide/pdc202xx_old.c
drivers/ide/piix.c
drivers/ide/serverworks.c
drivers/ide/setup-pci.c
drivers/ide/siimage.c
drivers/ide/sis5513.c
drivers/ide/sl82c105.c
drivers/ide/via82cxxx.c
include/linux/ide.h

index 4485b9c6f0e68bc8c5b28f26652d133f54b7b1df..878f8ec6dbe1147b182fdedca240b86041f37710 100644 (file)
@@ -139,7 +139,7 @@ static void aec_set_pio_mode(ide_drive_t *drive, const u8 pio)
        drive->hwif->port_ops->set_dma_mode(drive, pio + XFER_PIO_0);
 }
 
-static unsigned int init_chipset_aec62xx(struct pci_dev *dev)
+static int init_chipset_aec62xx(struct pci_dev *dev)
 {
        /* These are necessary to get AEC6280 Macintosh cards to work */
        if ((dev->device == PCI_DEVICE_ID_ARTOP_ATP865) ||
@@ -156,7 +156,7 @@ static unsigned int init_chipset_aec62xx(struct pci_dev *dev)
                pci_write_config_byte(dev, 0x4a, reg4ah | 0x80);
        }
 
-       return dev->irq;
+       return 0;
 }
 
 static u8 atp86x_cable_detect(ide_hwif_t *hwif)
index 66f43083408b4762c940525b2348bde4a67c4fd3..d3513b6b8530aaa0b82497e0c4ec485c809853e8 100644 (file)
@@ -212,7 +212,7 @@ static int ali15x3_dma_setup(ide_drive_t *drive)
  *     appropriate also sets up the 1533 southbridge.
  */
 
-static unsigned int init_chipset_ali15x3(struct pci_dev *dev)
+static int init_chipset_ali15x3(struct pci_dev *dev)
 {
        unsigned long flags;
        u8 tmpbyte;
index 0b51921e63e636cc5dd8188ed155141ccc9328f6..628cd2e5fed83de28aab0b423f02adc15944e90d 100644 (file)
@@ -140,7 +140,7 @@ static void amd7411_cable_detect(struct pci_dev *dev)
  * The initialization callback.  Initialize drive independent registers.
  */
 
-static unsigned int init_chipset_amd74xx(struct pci_dev *dev)
+static int init_chipset_amd74xx(struct pci_dev *dev)
 {
        u8 t = 0, offset = amd_offset(dev);
 
@@ -172,7 +172,7 @@ static unsigned int init_chipset_amd74xx(struct pci_dev *dev)
                t |= 0xf0;
        pci_write_config_byte(dev, AMD_IDE_CONFIG + offset, t);
 
-       return dev->irq;
+       return 0;
 }
 
 static u8 amd_cable_detect(ide_hwif_t *hwif)
index 2f9688d87ecdc5eb192c67588bbcd51ea8094a41..aeee036b15035594432ff8de3bc5e0c5c9ab4946 100644 (file)
@@ -333,7 +333,7 @@ static int cmd646_1_dma_end(ide_drive_t *drive)
        return (dma_stat & 7) != 4;
 }
 
-static unsigned int init_chipset_cmd64x(struct pci_dev *dev)
+static int init_chipset_cmd64x(struct pci_dev *dev)
 {
        u8 mrdmode = 0;
 
index d8ede85fe17f4428be6713394e678af59c1457b2..8e8b35a899012961aa6967cb5e8dd7115cf0afb4 100644 (file)
@@ -135,7 +135,7 @@ static void cs5530_set_dma_mode(ide_drive_t *drive, const u8 mode)
  *     Initialize the cs5530 bridge for reliable IDE DMA operation.
  */
 
-static unsigned int init_chipset_cs5530(struct pci_dev *dev)
+static int init_chipset_cs5530(struct pci_dev *dev)
 {
        struct pci_dev *master_0 = NULL, *cs5530_0 = NULL;
 
index 8f1b2d9f05138631c541d71c2cb195987de726a5..bacb1194c9c9e5eb9ed4290fd625a457b60c903f 100644 (file)
@@ -46,7 +46,7 @@ static const struct ide_port_ops delkin_cb_port_ops = {
        .quirkproc              = ide_undecoded_slave,
 };
 
-static unsigned int delkin_cb_init_chipset(struct pci_dev *dev)
+static int delkin_cb_init_chipset(struct pci_dev *dev)
 {
        unsigned long base = pci_resource_start(dev, 0);
        int i;
index 3eb9b5c63a0f4a3a4c67facb6e7687a465f69936..d3b3e824f445e53bae0270152b6bb185d5fb889e 100644 (file)
@@ -995,7 +995,7 @@ static void hpt3xx_disable_fast_irq(struct pci_dev *dev, u8 mcr_addr)
                pci_write_config_byte(dev, mcr_addr + 1, new_mcr);
 }
 
-static unsigned int init_chipset_hpt366(struct pci_dev *dev)
+static int init_chipset_hpt366(struct pci_dev *dev)
 {
        unsigned long io_base   = pci_resource_start(dev, 4);
        struct hpt_info *info   = hpt3xx_get_info(&dev->dev);
@@ -1237,7 +1237,7 @@ static unsigned int init_chipset_hpt366(struct pci_dev *dev)
        hpt3xx_disable_fast_irq(dev, 0x50);
        hpt3xx_disable_fast_irq(dev, 0x54);
 
-       return dev->irq;
+       return 0;
 }
 
 static u8 hpt3xx_cable_detect(ide_hwif_t *hwif)
index 13b8153112edf3394235f3009aaefd18e1197bc4..6b9fc950b4af7af786e36e2858a3246979ee48a4 100644 (file)
@@ -603,7 +603,7 @@ static void it8212_disable_raid(struct pci_dev *dev)
        pci_write_config_byte(dev, PCI_LATENCY_TIMER, 0x20);
 }
 
-static unsigned int init_chipset_it821x(struct pci_dev *dev)
+static int init_chipset_it821x(struct pci_dev *dev)
 {
        u8 conf;
        static char *mode[2] = { "pass through", "smart" };
index f21290c4b44761855760b5dcdc17a59dad5509b7..b68906c3c17e49f4223a1c84c2b68f1a17d6f47e 100644 (file)
@@ -325,7 +325,7 @@ static void apple_kiwi_init(struct pci_dev *pdev)
 }
 #endif /* CONFIG_PPC_PMAC */
 
-static unsigned int init_chipset_pdcnew(struct pci_dev *dev)
+static int init_chipset_pdcnew(struct pci_dev *dev)
 {
        const char *name = DRV_NAME;
        unsigned long dma_base = pci_resource_start(dev, 4);
@@ -444,7 +444,7 @@ static unsigned int init_chipset_pdcnew(struct pci_dev *dev)
 #endif
 
  out:
-       return dev->irq;
+       return 0;
 }
 
 static struct pci_dev * __devinit pdc20270_get_dev2(struct pci_dev *dev)
index 97193323aebfb5e8cbafbf33849cc9fb066f2313..cba66ebce4e341c977baff6b8d311c56c2074382 100644 (file)
@@ -264,7 +264,7 @@ static void pdc202xx_dma_timeout(ide_drive_t *drive)
        ide_dma_timeout(drive);
 }
 
-static unsigned int init_chipset_pdc202xx(struct pci_dev *dev)
+static int init_chipset_pdc202xx(struct pci_dev *dev)
 {
        unsigned long dmabase = pci_resource_start(dev, 4);
        u8 udma_speed_flag = 0, primary_mode = 0, secondary_mode = 0;
@@ -290,7 +290,7 @@ static unsigned int init_chipset_pdc202xx(struct pci_dev *dev)
                printk("%sACTIVE\n", (inb(dmabase | 0x1f) & 1) ? "" : "IN");
        }
 out:
-       return dev->irq;
+       return 0;
 }
 
 static void __devinit pdc202ata4_fixup_irq(struct pci_dev *dev,
index 42c2e3522d7444af861691861ce32a337c0f3275..2aa69993306458f0bd2d26b1eada58fdff1af01e 100644 (file)
@@ -204,7 +204,7 @@ static void piix_set_dma_mode(ide_drive_t *drive, const u8 speed)
  *     out to be nice and simple.
  */
 
-static unsigned int init_chipset_ich(struct pci_dev *dev)
+static int init_chipset_ich(struct pci_dev *dev)
 {
        u32 extra = 0;
 
index 14718e73991ee5e4db4723ced754b846eb0368e1..b6554ef92716003567333482982458dd32a0db9b 100644 (file)
@@ -175,7 +175,7 @@ static void svwks_set_dma_mode(ide_drive_t *drive, const u8 speed)
        pci_write_config_byte(dev, 0x54, ultra_enable);
 }
 
-static unsigned int init_chipset_svwks(struct pci_dev *dev)
+static int init_chipset_svwks(struct pci_dev *dev)
 {
        unsigned int reg;
        u8 btr;
@@ -270,7 +270,7 @@ static unsigned int init_chipset_svwks(struct pci_dev *dev)
                pci_write_config_byte(dev, 0x5A, btr);
        }
 
-       return dev->irq;
+       return 0;
 }
 
 static u8 ata66_svwks_svwks(ide_hwif_t *hwif)
index 79e3244691ecaf15f97e0c947132daa09d19fda8..75e3beca86f0c45f943eea9be4b93a6b84b06eaf 100644 (file)
@@ -524,7 +524,7 @@ static int do_ide_setup_pci_device(struct pci_dev *dev,
                if (noisy)
                        printk(KERN_INFO "%s %s: not 100%% native mode: will "
                                "probe irqs later\n", d->name, pci_name(dev));
-               pciirq = ret;
+               pciirq = 0;
        } else if (!pciirq && noisy) {
                printk(KERN_WARNING "%s %s: bad irq (%d): will probe later\n",
                        d->name, pci_name(dev), pciirq);
index cb2b352b876b042277e8ee7a5dcb73b1a40acb3b..1811ae9cd8430a60367a93e281f9c7d3c34157f9 100644 (file)
@@ -464,7 +464,7 @@ static void sil_sata_pre_reset(ide_drive_t *drive)
  *     to 133 MHz clocking if the system isn't already set up to do it.
  */
 
-static unsigned int init_chipset_siimage(struct pci_dev *dev)
+static int init_chipset_siimage(struct pci_dev *dev)
 {
        struct ide_host *host = pci_get_drvdata(dev);
        void __iomem *ioaddr = host->host_priv;
index d2d54aaea13adbe7871eb8e1b6761c1febb4718b..afca22beaadfc3c279ed53693d31e0a98c48779c 100644 (file)
@@ -447,7 +447,7 @@ static int __devinit sis_find_family(struct pci_dev *dev)
        return chipset_family;
 }
 
-static unsigned int init_chipset_sis5513(struct pci_dev *dev)
+static int init_chipset_sis5513(struct pci_dev *dev)
 {
        /* Make general config ops here
           1/ tell IDE channels to operate in Compatibility mode only
index 6297956507c00fb7e3222070989f25cce9ba2000..dba213c51baa98f293e007a6b69b3a87ccd1607a 100644 (file)
@@ -271,7 +271,7 @@ static u8 sl82c105_bridge_revision(struct pci_dev *dev)
  * channel 0 here at least, but channel 1 has to be enabled by
  * firmware or arch code. We still set both to 16 bits mode.
  */
-static unsigned int init_chipset_sl82c105(struct pci_dev *dev)
+static int init_chipset_sl82c105(struct pci_dev *dev)
 {
        u32 val;
 
@@ -281,7 +281,7 @@ static unsigned int init_chipset_sl82c105(struct pci_dev *dev)
        val |= CTRL_P0EN | CTRL_P0F16 | CTRL_P1F16;
        pci_write_config_dword(dev, 0x40, val);
 
-       return dev->irq;
+       return 0;
 }
 
 static const struct ide_port_ops sl82c105_port_ops = {
index a41eab5cb5dfdef6235ef2689cd787bde31b680f..3ff7231e48582187a0d254069439a2f0737894ec 100644 (file)
@@ -267,7 +267,7 @@ static void via_cable_detect(struct via82cxxx_dev *vdev, u32 u)
  *     and initialize its drive independent registers.
  */
 
-static unsigned int init_chipset_via82cxxx(struct pci_dev *dev)
+static int init_chipset_via82cxxx(struct pci_dev *dev)
 {
        struct ide_host *host = pci_get_drvdata(dev);
        struct via82cxxx_dev *vdev = host->host_priv;
index 31e492c7bdef5b4f1728e30ba3c0322f65ec4187..117dd171e70b10ee41d207d8b2d864d8ee61a3be 100644 (file)
@@ -851,7 +851,7 @@ struct ide_host {
        ide_hwif_t      *ports[MAX_HOST_PORTS + 1];
        unsigned int    n_ports;
        struct device   *dev[2];
-       unsigned int    (*init_chipset)(struct pci_dev *);
+       int             (*init_chipset)(struct pci_dev *);
        irq_handler_t   irq_handler;
        unsigned long   host_flags;
        void            *host_priv;
@@ -1361,7 +1361,7 @@ enum {
 
 struct ide_port_info {
        char                    *name;
-       unsigned int            (*init_chipset)(struct pci_dev *);
+       int                     (*init_chipset)(struct pci_dev *);
        void                    (*init_iops)(ide_hwif_t *);
        void                    (*init_hwif)(ide_hwif_t *);
        int                     (*init_dma)(ide_hwif_t *,