mirror of
https://github.com/S3NEO/android_kernel_samsung_msm8226.git
synced 2024-11-07 03:47:13 +00:00
ide: fix ->init_chipset method to return 'int' value
* 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>
This commit is contained in:
parent
a182807a89
commit
2ed0ef543a
18 changed files with 26 additions and 26 deletions
|
@ -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);
|
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 */
|
/* These are necessary to get AEC6280 Macintosh cards to work */
|
||||||
if ((dev->device == PCI_DEVICE_ID_ARTOP_ATP865) ||
|
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);
|
pci_write_config_byte(dev, 0x4a, reg4ah | 0x80);
|
||||||
}
|
}
|
||||||
|
|
||||||
return dev->irq;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 atp86x_cable_detect(ide_hwif_t *hwif)
|
static u8 atp86x_cable_detect(ide_hwif_t *hwif)
|
||||||
|
|
|
@ -212,7 +212,7 @@ static int ali15x3_dma_setup(ide_drive_t *drive)
|
||||||
* appropriate also sets up the 1533 southbridge.
|
* 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;
|
unsigned long flags;
|
||||||
u8 tmpbyte;
|
u8 tmpbyte;
|
||||||
|
|
|
@ -140,7 +140,7 @@ static void amd7411_cable_detect(struct pci_dev *dev)
|
||||||
* The initialization callback. Initialize drive independent registers.
|
* 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);
|
u8 t = 0, offset = amd_offset(dev);
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ static unsigned int init_chipset_amd74xx(struct pci_dev *dev)
|
||||||
t |= 0xf0;
|
t |= 0xf0;
|
||||||
pci_write_config_byte(dev, AMD_IDE_CONFIG + offset, t);
|
pci_write_config_byte(dev, AMD_IDE_CONFIG + offset, t);
|
||||||
|
|
||||||
return dev->irq;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 amd_cable_detect(ide_hwif_t *hwif)
|
static u8 amd_cable_detect(ide_hwif_t *hwif)
|
||||||
|
|
|
@ -333,7 +333,7 @@ static int cmd646_1_dma_end(ide_drive_t *drive)
|
||||||
return (dma_stat & 7) != 4;
|
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;
|
u8 mrdmode = 0;
|
||||||
|
|
||||||
|
|
|
@ -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.
|
* 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;
|
struct pci_dev *master_0 = NULL, *cs5530_0 = NULL;
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ static const struct ide_port_ops delkin_cb_port_ops = {
|
||||||
.quirkproc = ide_undecoded_slave,
|
.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);
|
unsigned long base = pci_resource_start(dev, 0);
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -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);
|
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);
|
unsigned long io_base = pci_resource_start(dev, 4);
|
||||||
struct hpt_info *info = hpt3xx_get_info(&dev->dev);
|
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, 0x50);
|
||||||
hpt3xx_disable_fast_irq(dev, 0x54);
|
hpt3xx_disable_fast_irq(dev, 0x54);
|
||||||
|
|
||||||
return dev->irq;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 hpt3xx_cable_detect(ide_hwif_t *hwif)
|
static u8 hpt3xx_cable_detect(ide_hwif_t *hwif)
|
||||||
|
|
|
@ -603,7 +603,7 @@ static void it8212_disable_raid(struct pci_dev *dev)
|
||||||
pci_write_config_byte(dev, PCI_LATENCY_TIMER, 0x20);
|
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;
|
u8 conf;
|
||||||
static char *mode[2] = { "pass through", "smart" };
|
static char *mode[2] = { "pass through", "smart" };
|
||||||
|
|
|
@ -325,7 +325,7 @@ static void apple_kiwi_init(struct pci_dev *pdev)
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_PPC_PMAC */
|
#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;
|
const char *name = DRV_NAME;
|
||||||
unsigned long dma_base = pci_resource_start(dev, 4);
|
unsigned long dma_base = pci_resource_start(dev, 4);
|
||||||
|
@ -444,7 +444,7 @@ static unsigned int init_chipset_pdcnew(struct pci_dev *dev)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
out:
|
out:
|
||||||
return dev->irq;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct pci_dev * __devinit pdc20270_get_dev2(struct pci_dev *dev)
|
static struct pci_dev * __devinit pdc20270_get_dev2(struct pci_dev *dev)
|
||||||
|
|
|
@ -264,7 +264,7 @@ static void pdc202xx_dma_timeout(ide_drive_t *drive)
|
||||||
ide_dma_timeout(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);
|
unsigned long dmabase = pci_resource_start(dev, 4);
|
||||||
u8 udma_speed_flag = 0, primary_mode = 0, secondary_mode = 0;
|
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");
|
printk("%sACTIVE\n", (inb(dmabase | 0x1f) & 1) ? "" : "IN");
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
return dev->irq;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __devinit pdc202ata4_fixup_irq(struct pci_dev *dev,
|
static void __devinit pdc202ata4_fixup_irq(struct pci_dev *dev,
|
||||||
|
|
|
@ -204,7 +204,7 @@ static void piix_set_dma_mode(ide_drive_t *drive, const u8 speed)
|
||||||
* out to be nice and simple.
|
* 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;
|
u32 extra = 0;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
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;
|
unsigned int reg;
|
||||||
u8 btr;
|
u8 btr;
|
||||||
|
@ -270,7 +270,7 @@ static unsigned int init_chipset_svwks(struct pci_dev *dev)
|
||||||
pci_write_config_byte(dev, 0x5A, btr);
|
pci_write_config_byte(dev, 0x5A, btr);
|
||||||
}
|
}
|
||||||
|
|
||||||
return dev->irq;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 ata66_svwks_svwks(ide_hwif_t *hwif)
|
static u8 ata66_svwks_svwks(ide_hwif_t *hwif)
|
||||||
|
|
|
@ -524,7 +524,7 @@ static int do_ide_setup_pci_device(struct pci_dev *dev,
|
||||||
if (noisy)
|
if (noisy)
|
||||||
printk(KERN_INFO "%s %s: not 100%% native mode: will "
|
printk(KERN_INFO "%s %s: not 100%% native mode: will "
|
||||||
"probe irqs later\n", d->name, pci_name(dev));
|
"probe irqs later\n", d->name, pci_name(dev));
|
||||||
pciirq = ret;
|
pciirq = 0;
|
||||||
} else if (!pciirq && noisy) {
|
} else if (!pciirq && noisy) {
|
||||||
printk(KERN_WARNING "%s %s: bad irq (%d): will probe later\n",
|
printk(KERN_WARNING "%s %s: bad irq (%d): will probe later\n",
|
||||||
d->name, pci_name(dev), pciirq);
|
d->name, pci_name(dev), pciirq);
|
||||||
|
|
|
@ -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.
|
* 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);
|
struct ide_host *host = pci_get_drvdata(dev);
|
||||||
void __iomem *ioaddr = host->host_priv;
|
void __iomem *ioaddr = host->host_priv;
|
||||||
|
|
|
@ -447,7 +447,7 @@ static int __devinit sis_find_family(struct pci_dev *dev)
|
||||||
return chipset_family;
|
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
|
/* Make general config ops here
|
||||||
1/ tell IDE channels to operate in Compatibility mode only
|
1/ tell IDE channels to operate in Compatibility mode only
|
||||||
|
|
|
@ -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
|
* 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.
|
* 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;
|
u32 val;
|
||||||
|
|
||||||
|
@ -281,7 +281,7 @@ static unsigned int init_chipset_sl82c105(struct pci_dev *dev)
|
||||||
val |= CTRL_P0EN | CTRL_P0F16 | CTRL_P1F16;
|
val |= CTRL_P0EN | CTRL_P0F16 | CTRL_P1F16;
|
||||||
pci_write_config_dword(dev, 0x40, val);
|
pci_write_config_dword(dev, 0x40, val);
|
||||||
|
|
||||||
return dev->irq;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct ide_port_ops sl82c105_port_ops = {
|
static const struct ide_port_ops sl82c105_port_ops = {
|
||||||
|
|
|
@ -267,7 +267,7 @@ static void via_cable_detect(struct via82cxxx_dev *vdev, u32 u)
|
||||||
* and initialize its drive independent registers.
|
* 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 ide_host *host = pci_get_drvdata(dev);
|
||||||
struct via82cxxx_dev *vdev = host->host_priv;
|
struct via82cxxx_dev *vdev = host->host_priv;
|
||||||
|
|
|
@ -851,7 +851,7 @@ struct ide_host {
|
||||||
ide_hwif_t *ports[MAX_HOST_PORTS + 1];
|
ide_hwif_t *ports[MAX_HOST_PORTS + 1];
|
||||||
unsigned int n_ports;
|
unsigned int n_ports;
|
||||||
struct device *dev[2];
|
struct device *dev[2];
|
||||||
unsigned int (*init_chipset)(struct pci_dev *);
|
int (*init_chipset)(struct pci_dev *);
|
||||||
irq_handler_t irq_handler;
|
irq_handler_t irq_handler;
|
||||||
unsigned long host_flags;
|
unsigned long host_flags;
|
||||||
void *host_priv;
|
void *host_priv;
|
||||||
|
@ -1361,7 +1361,7 @@ enum {
|
||||||
|
|
||||||
struct ide_port_info {
|
struct ide_port_info {
|
||||||
char *name;
|
char *name;
|
||||||
unsigned int (*init_chipset)(struct pci_dev *);
|
int (*init_chipset)(struct pci_dev *);
|
||||||
void (*init_iops)(ide_hwif_t *);
|
void (*init_iops)(ide_hwif_t *);
|
||||||
void (*init_hwif)(ide_hwif_t *);
|
void (*init_hwif)(ide_hwif_t *);
|
||||||
int (*init_dma)(ide_hwif_t *,
|
int (*init_dma)(ide_hwif_t *,
|
||||||
|
|
Loading…
Reference in a new issue