Commit c2bf9f44 authored by Jens Axboe's avatar Jens Axboe Committed by Linus Torvalds

[PATCH] ide low level driver updates

All of them in a single patch, would be silly to split. Does two things:

o Inc module usage count to forcefully pin the module

o Make the chipset init data __devinitdata

o Kill ->init_setup() and just make it generic
parent 20ddfc00
...@@ -10,7 +10,7 @@ extern unsigned int init_chipset_pdcadma(struct pci_dev *, const char *); ...@@ -10,7 +10,7 @@ extern unsigned int init_chipset_pdcadma(struct pci_dev *, const char *);
extern void init_hwif_pdcadma(ide_hwif_t *); extern void init_hwif_pdcadma(ide_hwif_t *);
extern void init_dma_pdcadma(ide_hwif_t *, unsigned long); extern void init_dma_pdcadma(ide_hwif_t *, unsigned long);
static ide_pci_device_t pdcadma_chipsets[] __initdata = { static ide_pci_device_t pdcadma_chipsets[] __devinitdata = {
{ {
vendor: PCI_VENDOR_ID_PDC, vendor: PCI_VENDOR_ID_PDC,
device: PCI_DEVICE_ID_PDC_1841, device: PCI_DEVICE_ID_PDC_1841,
......
...@@ -530,6 +530,7 @@ static int __devinit aec62xx_init_one(struct pci_dev *dev, const struct pci_devi ...@@ -530,6 +530,7 @@ static int __devinit aec62xx_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
d->init_setup(dev, d); d->init_setup(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -98,7 +98,7 @@ static unsigned int init_chipset_aec62xx(struct pci_dev *, const char *); ...@@ -98,7 +98,7 @@ static unsigned int init_chipset_aec62xx(struct pci_dev *, const char *);
static void init_hwif_aec62xx(ide_hwif_t *); static void init_hwif_aec62xx(ide_hwif_t *);
static void init_dma_aec62xx(ide_hwif_t *, unsigned long); static void init_dma_aec62xx(ide_hwif_t *, unsigned long);
static ide_pci_device_t aec62xx_chipsets[] __initdata = { static ide_pci_device_t aec62xx_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_ARTOP, vendor: PCI_VENDOR_ID_ARTOP,
device: PCI_DEVICE_ID_ARTOP_ATP850UF, device: PCI_DEVICE_ID_ARTOP_ATP850UF,
......
...@@ -858,6 +858,7 @@ static int __devinit alim15x3_init_one(struct pci_dev *dev, const struct pci_dev ...@@ -858,6 +858,7 @@ static int __devinit alim15x3_init_one(struct pci_dev *dev, const struct pci_dev
d->init_hwif = init_hwif_common_ali15x3; d->init_hwif = init_hwif_common_ali15x3;
#endif /* CONFIG_SPARC64 */ #endif /* CONFIG_SPARC64 */
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -30,7 +30,7 @@ static void init_hwif_common_ali15x3(ide_hwif_t *); ...@@ -30,7 +30,7 @@ static void init_hwif_common_ali15x3(ide_hwif_t *);
static void init_hwif_ali15x3(ide_hwif_t *); static void init_hwif_ali15x3(ide_hwif_t *);
static void init_dma_ali15x3(ide_hwif_t *, unsigned long); static void init_dma_ali15x3(ide_hwif_t *, unsigned long);
static ide_pci_device_t ali15x3_chipsets[] __initdata = { static ide_pci_device_t ali15x3_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_AL, vendor: PCI_VENDOR_ID_AL,
device: PCI_DEVICE_ID_AL_M5229, device: PCI_DEVICE_ID_AL_M5229,
......
...@@ -400,6 +400,7 @@ static int __devinit amd74xx_init_one(struct pci_dev *dev, const struct pci_devi ...@@ -400,6 +400,7 @@ static int __devinit amd74xx_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -29,7 +29,7 @@ static unsigned int init_chipset_amd74xx(struct pci_dev *, const char *); ...@@ -29,7 +29,7 @@ static unsigned int init_chipset_amd74xx(struct pci_dev *, const char *);
static void init_hwif_amd74xx(ide_hwif_t *); static void init_hwif_amd74xx(ide_hwif_t *);
static void init_dma_amd74xx(ide_hwif_t *, unsigned long); static void init_dma_amd74xx(ide_hwif_t *, unsigned long);
static ide_pci_device_t amd74xx_chipsets[] __initdata = { static ide_pci_device_t amd74xx_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_AMD, vendor: PCI_VENDOR_ID_AMD,
device: PCI_DEVICE_ID_AMD_COBRA_7401, device: PCI_DEVICE_ID_AMD_COBRA_7401,
......
...@@ -728,12 +728,9 @@ static void __init init_hwif_cmd64x (ide_hwif_t *hwif) ...@@ -728,12 +728,9 @@ static void __init init_hwif_cmd64x (ide_hwif_t *hwif)
if (dev->device == PCI_DEVICE_ID_CMD_643) if (dev->device == PCI_DEVICE_ID_CMD_643)
hwif->ultra_mask = 0x80; hwif->ultra_mask = 0x80;
if (dev->device == PCI_DEVICE_ID_CMD_646) if (dev->device == PCI_DEVICE_ID_CMD_646)
{ hwif->ultra_mask = (class_rev > 0x04) ? 0x07 : 0x80;
if (class_rev > 0x04) if (dev->device == PCI_DEVICE_ID_CMD_648)
hwif->ultra_mask = 0x07; hwif->ultra_mask = 0x1f;
else
hwif->ultra_mask = 0x80;
}
#ifdef CONFIG_BLK_DEV_IDEDMA #ifdef CONFIG_BLK_DEV_IDEDMA
hwif->ide_dma_check = &cmd64x_config_drive_for_dma; hwif->ide_dma_check = &cmd64x_config_drive_for_dma;
...@@ -774,6 +771,7 @@ static int __devinit cmd64x_init_one(struct pci_dev *dev, const struct pci_devic ...@@ -774,6 +771,7 @@ static int __devinit cmd64x_init_one(struct pci_dev *dev, const struct pci_devic
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -83,7 +83,7 @@ static unsigned int init_chipset_cmd64x(struct pci_dev *, const char *); ...@@ -83,7 +83,7 @@ static unsigned int init_chipset_cmd64x(struct pci_dev *, const char *);
static void init_hwif_cmd64x(ide_hwif_t *); static void init_hwif_cmd64x(ide_hwif_t *);
static void init_dma_cmd64x(ide_hwif_t *, unsigned long); static void init_dma_cmd64x(ide_hwif_t *, unsigned long);
static ide_pci_device_t cmd64x_chipsets[] __initdata = { static ide_pci_device_t cmd64x_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_CMD, vendor: PCI_VENDOR_ID_CMD,
device: PCI_DEVICE_ID_CMD_643, device: PCI_DEVICE_ID_CMD_643,
......
...@@ -427,6 +427,7 @@ static int __devinit cs5530_init_one(struct pci_dev *dev, const struct pci_devic ...@@ -427,6 +427,7 @@ static int __devinit cs5530_init_one(struct pci_dev *dev, const struct pci_devic
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -29,7 +29,7 @@ static unsigned int init_chipset_cs5530(struct pci_dev *, const char *); ...@@ -29,7 +29,7 @@ static unsigned int init_chipset_cs5530(struct pci_dev *, const char *);
static void init_hwif_cs5530(ide_hwif_t *); static void init_hwif_cs5530(ide_hwif_t *);
static void init_dma_cs5530(ide_hwif_t *, unsigned long); static void init_dma_cs5530(ide_hwif_t *, unsigned long);
static ide_pci_device_t cs5530_chipsets[] __initdata = { static ide_pci_device_t cs5530_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_CYRIX, vendor: PCI_VENDOR_ID_CYRIX,
device: PCI_DEVICE_ID_CYRIX_5530_IDE, device: PCI_DEVICE_ID_CYRIX_5530_IDE,
......
...@@ -438,6 +438,7 @@ static int __devinit cy82c693_init_one(struct pci_dev *dev, const struct pci_dev ...@@ -438,6 +438,7 @@ static int __devinit cy82c693_init_one(struct pci_dev *dev, const struct pci_dev
dev2 = pci_find_slot(dev->bus->number, dev->devfn + 1); dev2 = pci_find_slot(dev->bus->number, dev->devfn + 1);
ide_setup_pci_devices(dev, dev2, d); ide_setup_pci_devices(dev, dev2, d);
} }
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -68,7 +68,7 @@ extern unsigned int init_chipset_cy82c693(struct pci_dev *, const char *); ...@@ -68,7 +68,7 @@ extern unsigned int init_chipset_cy82c693(struct pci_dev *, const char *);
extern void init_hwif_cy82c693(ide_hwif_t *); extern void init_hwif_cy82c693(ide_hwif_t *);
extern void init_iops_cy82c693(ide_hwif_t *); extern void init_iops_cy82c693(ide_hwif_t *);
static ide_pci_device_t cy82c693_chipsets[] __initdata = { static ide_pci_device_t cy82c693_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_CONTAQ, vendor: PCI_VENDOR_ID_CONTAQ,
device: PCI_DEVICE_ID_CONTAQ_82C693, device: PCI_DEVICE_ID_CONTAQ_82C693,
......
...@@ -65,26 +65,6 @@ static void init_dma_generic (ide_hwif_t *hwif, unsigned long dmabase) ...@@ -65,26 +65,6 @@ static void init_dma_generic (ide_hwif_t *hwif, unsigned long dmabase)
extern void ide_setup_pci_device(struct pci_dev *, ide_pci_device_t *); extern void ide_setup_pci_device(struct pci_dev *, ide_pci_device_t *);
static void __init init_setup_generic (struct pci_dev *dev, ide_pci_device_t *d)
{
if ((d->vendor == PCI_VENDOR_ID_UMC) &&
(d->device == PCI_DEVICE_ID_UMC_UM8886A) &&
(!(PCI_FUNC(dev->devfn) & 1)))
return; /* UM8886A/BF pair */
if ((d->vendor == PCI_VENDOR_ID_OPTI) &&
(d->device == PCI_DEVICE_ID_OPTI_82C558) &&
(!(PCI_FUNC(dev->devfn) & 1)))
return;
ide_setup_pci_device(dev, d);
}
static void __init init_setup_unknown (struct pci_dev *dev, ide_pci_device_t *d)
{
ide_setup_pci_device(dev, d);
}
#if 0 #if 0
/* Logic to add back later on */ /* Logic to add back later on */
...@@ -114,7 +94,18 @@ static int __devinit generic_init_one(struct pci_dev *dev, const struct pci_devi ...@@ -114,7 +94,18 @@ static int __devinit generic_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
d->init_setup(dev, d); if ((d->vendor == PCI_VENDOR_ID_UMC) &&
(d->device == PCI_DEVICE_ID_UMC_UM8886A) &&
(!(PCI_FUNC(dev->devfn) & 1)))
return 1; /* UM8886A/BF pair */
if ((d->vendor == PCI_VENDOR_ID_OPTI) &&
(d->device == PCI_DEVICE_ID_OPTI_82C558) &&
(!(PCI_FUNC(dev->devfn) & 1)))
return 1;
ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -5,17 +5,15 @@ ...@@ -5,17 +5,15 @@
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/ide.h> #include <linux/ide.h>
static void init_setup_generic(struct pci_dev *, ide_pci_device_t *);
static unsigned int init_chipset_generic(struct pci_dev *, const char *); static unsigned int init_chipset_generic(struct pci_dev *, const char *);
static void init_hwif_generic(ide_hwif_t *); static void init_hwif_generic(ide_hwif_t *);
static void init_dma_generic(ide_hwif_t *, unsigned long); static void init_dma_generic(ide_hwif_t *, unsigned long);
static ide_pci_device_t generic_chipsets[] __initdata = { static ide_pci_device_t generic_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_NS, vendor: PCI_VENDOR_ID_NS,
device: PCI_DEVICE_ID_NS_87410, device: PCI_DEVICE_ID_NS_87410,
name: "NS87410", name: "NS87410",
init_setup: init_setup_generic,
init_chipset: init_chipset_generic, init_chipset: init_chipset_generic,
init_iops: NULL, init_iops: NULL,
init_hwif: init_hwif_generic, init_hwif: init_hwif_generic,
...@@ -29,7 +27,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = { ...@@ -29,7 +27,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = {
vendor: PCI_VENDOR_ID_PCTECH, vendor: PCI_VENDOR_ID_PCTECH,
device: PCI_DEVICE_ID_PCTECH_SAMURAI_IDE, device: PCI_DEVICE_ID_PCTECH_SAMURAI_IDE,
name: "SAMURAI", name: "SAMURAI",
init_setup: init_setup_generic,
init_chipset: init_chipset_generic, init_chipset: init_chipset_generic,
init_iops: NULL, init_iops: NULL,
init_hwif: init_hwif_generic, init_hwif: init_hwif_generic,
...@@ -43,7 +40,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = { ...@@ -43,7 +40,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = {
vendor: PCI_VENDOR_ID_HOLTEK, vendor: PCI_VENDOR_ID_HOLTEK,
device: PCI_DEVICE_ID_HOLTEK_6565, device: PCI_DEVICE_ID_HOLTEK_6565,
name: "HT6565", name: "HT6565",
init_setup: init_setup_generic,
init_chipset: init_chipset_generic, init_chipset: init_chipset_generic,
init_iops: NULL, init_iops: NULL,
init_hwif: init_hwif_generic, init_hwif: init_hwif_generic,
...@@ -57,7 +53,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = { ...@@ -57,7 +53,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = {
vendor: PCI_VENDOR_ID_UMC, vendor: PCI_VENDOR_ID_UMC,
device: PCI_DEVICE_ID_UMC_UM8673F, device: PCI_DEVICE_ID_UMC_UM8673F,
name: "UM8673F", name: "UM8673F",
init_setup: init_setup_generic,
init_chipset: init_chipset_generic, init_chipset: init_chipset_generic,
init_iops: NULL, init_iops: NULL,
init_hwif: init_hwif_generic, init_hwif: init_hwif_generic,
...@@ -71,7 +66,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = { ...@@ -71,7 +66,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = {
vendor: PCI_VENDOR_ID_UMC, vendor: PCI_VENDOR_ID_UMC,
device: PCI_DEVICE_ID_UMC_UM8886A, device: PCI_DEVICE_ID_UMC_UM8886A,
name: "UM8886A", name: "UM8886A",
init_setup: init_setup_generic,
init_chipset: init_chipset_generic, init_chipset: init_chipset_generic,
init_iops: NULL, init_iops: NULL,
init_hwif: init_hwif_generic, init_hwif: init_hwif_generic,
...@@ -85,7 +79,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = { ...@@ -85,7 +79,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = {
vendor: PCI_VENDOR_ID_UMC, vendor: PCI_VENDOR_ID_UMC,
device: PCI_DEVICE_ID_UMC_UM8886BF, device: PCI_DEVICE_ID_UMC_UM8886BF,
name: "UM8886BF", name: "UM8886BF",
init_setup: init_setup_generic,
init_chipset: init_chipset_generic, init_chipset: init_chipset_generic,
init_iops: NULL, init_iops: NULL,
init_hwif: init_hwif_generic, init_hwif: init_hwif_generic,
...@@ -99,7 +92,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = { ...@@ -99,7 +92,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = {
vendor: PCI_VENDOR_ID_HINT, vendor: PCI_VENDOR_ID_HINT,
device: PCI_DEVICE_ID_HINT_VXPROII_IDE, device: PCI_DEVICE_ID_HINT_VXPROII_IDE,
name: "HINT_IDE", name: "HINT_IDE",
init_setup: init_setup_generic,
init_chipset: init_chipset_generic, init_chipset: init_chipset_generic,
init_iops: NULL, init_iops: NULL,
init_hwif: init_hwif_generic, init_hwif: init_hwif_generic,
...@@ -113,7 +105,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = { ...@@ -113,7 +105,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = {
vendor: PCI_VENDOR_ID_VIA, vendor: PCI_VENDOR_ID_VIA,
device: PCI_DEVICE_ID_VIA_82C561, device: PCI_DEVICE_ID_VIA_82C561,
name: "VIA_IDE", name: "VIA_IDE",
init_setup: init_setup_generic,
init_chipset: init_chipset_generic, init_chipset: init_chipset_generic,
init_iops: NULL, init_iops: NULL,
init_hwif: init_hwif_generic, init_hwif: init_hwif_generic,
...@@ -127,7 +118,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = { ...@@ -127,7 +118,6 @@ static ide_pci_device_t generic_chipsets[] __initdata = {
vendor: PCI_VENDOR_ID_OPTI, vendor: PCI_VENDOR_ID_OPTI,
device: PCI_DEVICE_ID_OPTI_82C558, device: PCI_DEVICE_ID_OPTI_82C558,
name: "OPTI621V", name: "OPTI621V",
init_setup: init_setup_generic,
init_chipset: init_chipset_generic, init_chipset: init_chipset_generic,
init_iops: NULL, init_iops: NULL,
init_hwif: init_hwif_generic, init_hwif: init_hwif_generic,
...@@ -145,12 +135,11 @@ static ide_pci_device_t generic_chipsets[] __initdata = { ...@@ -145,12 +135,11 @@ static ide_pci_device_t generic_chipsets[] __initdata = {
} }
}; };
static ide_pci_device_t unknown_chipset[] __initdata = { static ide_pci_device_t unknown_chipset[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: 0, vendor: 0,
device: 0, device: 0,
name: "PCI_IDE", name: "PCI_IDE",
init_setup: init_setup_generic,
init_chipset: init_chipset_generic, init_chipset: init_chipset_generic,
init_iops: NULL, init_iops: NULL,
init_hwif: init_hwif_generic, init_hwif: init_hwif_generic,
......
...@@ -334,6 +334,7 @@ static int __devinit hpt34x_init_one(struct pci_dev *dev, const struct pci_devic ...@@ -334,6 +334,7 @@ static int __devinit hpt34x_init_one(struct pci_dev *dev, const struct pci_devic
d->bootable = (pcicmd & PCI_COMMAND_MEMORY) ? OFF_BOARD : NEVER_BOARD; d->bootable = (pcicmd & PCI_COMMAND_MEMORY) ? OFF_BOARD : NEVER_BOARD;
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -35,7 +35,7 @@ static unsigned int init_chipset_hpt34x(struct pci_dev *, const char *); ...@@ -35,7 +35,7 @@ static unsigned int init_chipset_hpt34x(struct pci_dev *, const char *);
static void init_hwif_hpt34x(ide_hwif_t *); static void init_hwif_hpt34x(ide_hwif_t *);
static void init_dma_hpt34x(ide_hwif_t *, unsigned long); static void init_dma_hpt34x(ide_hwif_t *, unsigned long);
static ide_pci_device_t hpt34x_chipsets[] __initdata = { static ide_pci_device_t hpt34x_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_TTI, vendor: PCI_VENDOR_ID_TTI,
device: PCI_DEVICE_ID_TTI_HPT343, device: PCI_DEVICE_ID_TTI_HPT343,
......
/* /*
* linux/drivers/ide/hpt366.c Version 0.33 April 17, 2002 * linux/drivers/ide/hpt366.c Version 0.34 Sept 17, 2002
* *
* Copyright (C) 1999-2002 Andre Hedrick <andre@linux-ide.org> * Copyright (C) 1999-2002 Andre Hedrick <andre@linux-ide.org>
* Portions Copyright (C) 2001 Sun Microsystems, Inc. * Portions Copyright (C) 2001 Sun Microsystems, Inc.
...@@ -1185,6 +1185,7 @@ static int __devinit hpt366_init_one(struct pci_dev *dev, const struct pci_devic ...@@ -1185,6 +1185,7 @@ static int __devinit hpt366_init_one(struct pci_dev *dev, const struct pci_devic
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
d->init_setup(dev, d); d->init_setup(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -441,7 +441,7 @@ static unsigned int init_chipset_hpt366(struct pci_dev *, const char *); ...@@ -441,7 +441,7 @@ static unsigned int init_chipset_hpt366(struct pci_dev *, const char *);
static void init_hwif_hpt366(ide_hwif_t *); static void init_hwif_hpt366(ide_hwif_t *);
static void init_dma_hpt366(ide_hwif_t *, unsigned long); static void init_dma_hpt366(ide_hwif_t *, unsigned long);
static ide_pci_device_t hpt366_chipsets[] __initdata = { static ide_pci_device_t hpt366_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_TTI, vendor: PCI_VENDOR_ID_TTI,
device: PCI_DEVICE_ID_TTI_HPT366, device: PCI_DEVICE_ID_TTI_HPT366,
......
...@@ -303,8 +303,9 @@ static int __devinit it8172_init_one(struct pci_dev *dev, const struct pci_devic ...@@ -303,8 +303,9 @@ static int __devinit it8172_init_one(struct pci_dev *dev, const struct pci_devic
ide_pci_device_t *d = &it8172_chipsets[id->driver_data]; ide_pci_device_t *d = &it8172_chipsets[id->driver_data];
if ((!(PCI_FUNC(dev->devfn) & 1) || if ((!(PCI_FUNC(dev->devfn) & 1) ||
(!((dev->class >> 8) == PCI_CLASS_STORAGE_IDE)))) (!((dev->class >> 8) == PCI_CLASS_STORAGE_IDE))))
return 0; /* IT8172 is more than only a IDE controller */ return 1; /* IT8172 is more than only a IDE controller */
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -19,7 +19,7 @@ static unsigned int init_chipset_it8172(struct pci_dev *, const char *); ...@@ -19,7 +19,7 @@ static unsigned int init_chipset_it8172(struct pci_dev *, const char *);
static void init_hwif_it8172(ide_hwif_t *); static void init_hwif_it8172(ide_hwif_t *);
static void init_dma_it8172(ide_hwif_t *, unsigned long); static void init_dma_it8172(ide_hwif_t *, unsigned long);
static ide_pci_device_t it8172_chipsets[] __initdata = { static ide_pci_device_t it8172_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_ITE, vendor: PCI_VENDOR_ID_ITE,
device: PCI_DEVICE_ID_ITE_IT8172G, device: PCI_DEVICE_ID_ITE_IT8172G,
......
...@@ -236,6 +236,7 @@ static int __devinit ns87415_init_one(struct pci_dev *dev, const struct pci_devi ...@@ -236,6 +236,7 @@ static int __devinit ns87415_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
static void init_hwif_ns87415(ide_hwif_t *); static void init_hwif_ns87415(ide_hwif_t *);
static void init_dma_ns87415(ide_hwif_t *, unsigned long); static void init_dma_ns87415(ide_hwif_t *, unsigned long);
static ide_pci_device_t ns87415_chipsets[] __initdata = { static ide_pci_device_t ns87415_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_NS, vendor: PCI_VENDOR_ID_NS,
device: PCI_DEVICE_ID_NS_87415, device: PCI_DEVICE_ID_NS_87415,
......
...@@ -343,6 +343,7 @@ static int __devinit nforce_init_one(struct pci_dev *dev, const struct pci_devic ...@@ -343,6 +343,7 @@ static int __devinit nforce_init_one(struct pci_dev *dev, const struct pci_devic
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -29,7 +29,7 @@ static unsigned int init_chipset_nforce(struct pci_dev *, const char *); ...@@ -29,7 +29,7 @@ static unsigned int init_chipset_nforce(struct pci_dev *, const char *);
static void init_hwif_nforce(ide_hwif_t *); static void init_hwif_nforce(ide_hwif_t *);
static void init_dma_nforce(ide_hwif_t *, unsigned long); static void init_dma_nforce(ide_hwif_t *, unsigned long);
static ide_pci_device_t nvidia_chipsets[] __initdata = { static ide_pci_device_t nvidia_chipsets[] __devinitdata = {
{ {
vendor: PCI_VENDOR_ID_NVIDIA, vendor: PCI_VENDOR_ID_NVIDIA,
device: PCI_DEVICE_ID_NVIDIA_NFORCE_IDE, device: PCI_DEVICE_ID_NVIDIA_NFORCE_IDE,
......
...@@ -370,6 +370,7 @@ static int __devinit opti621_init_one(struct pci_dev *dev, const struct pci_devi ...@@ -370,6 +370,7 @@ static int __devinit opti621_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -9,7 +9,7 @@ static void init_setup_opti621(struct pci_dev *, ide_pci_device_t *); ...@@ -9,7 +9,7 @@ static void init_setup_opti621(struct pci_dev *, ide_pci_device_t *);
static void init_hwif_opti621(ide_hwif_t *); static void init_hwif_opti621(ide_hwif_t *);
static void init_dma_opti621(ide_hwif_t *, unsigned long); static void init_dma_opti621(ide_hwif_t *, unsigned long);
static ide_pci_device_t opti621_chipsets[] __initdata = { static ide_pci_device_t opti621_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_OPTI, vendor: PCI_VENDOR_ID_OPTI,
device: PCI_DEVICE_ID_OPTI_82C621, device: PCI_DEVICE_ID_OPTI_82C621,
......
...@@ -663,6 +663,7 @@ static int __devinit pdc202new_init_one(struct pci_dev *dev, const struct pci_de ...@@ -663,6 +663,7 @@ static int __devinit pdc202new_init_one(struct pci_dev *dev, const struct pci_de
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
d->init_setup(dev, d); d->init_setup(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -225,7 +225,7 @@ static unsigned int init_chipset_pdcnew(struct pci_dev *, const char *); ...@@ -225,7 +225,7 @@ static unsigned int init_chipset_pdcnew(struct pci_dev *, const char *);
static void init_hwif_pdc202new(ide_hwif_t *); static void init_hwif_pdc202new(ide_hwif_t *);
static void init_dma_pdc202new(ide_hwif_t *, unsigned long); static void init_dma_pdc202new(ide_hwif_t *, unsigned long);
static ide_pci_device_t pdcnew_chipsets[] __initdata = { static ide_pci_device_t pdcnew_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_PROMISE, vendor: PCI_VENDOR_ID_PROMISE,
device: PCI_DEVICE_ID_PROMISE_20268, device: PCI_DEVICE_ID_PROMISE_20268,
......
...@@ -397,6 +397,9 @@ static int config_chipset_for_dma (ide_drive_t *drive) ...@@ -397,6 +397,9 @@ static int config_chipset_for_dma (ide_drive_t *drive)
cable ? "40" : "80", cable); cable ? "40" : "80", cable);
#endif /* PDC202_DEBUG_CABLE */ #endif /* PDC202_DEBUG_CABLE */
break; break;
case PCI_DEVICE_ID_PROMISE_20246:
ultra_66 = 0;
break;
default: default:
BUG(); BUG();
} }
...@@ -544,15 +547,17 @@ static int pdc202xx_old_ide_dma_begin(ide_drive_t *drive) ...@@ -544,15 +547,17 @@ static int pdc202xx_old_ide_dma_begin(ide_drive_t *drive)
if (drive->addressing == 1) { if (drive->addressing == 1) {
struct request *rq = HWGROUP(drive)->rq; struct request *rq = HWGROUP(drive)->rq;
ide_hwif_t *hwif = HWIF(drive); ide_hwif_t *hwif = HWIF(drive);
struct pci_dev *dev = hwif->pci_dev; // struct pci_dev *dev = hwif->pci_dev;
u32 high_16 = pci_resource_start(dev, 4); // u32 high_16 = pci_resource_start(dev, 4);
u32 high_16 = hwif->dma_master;
u32 atapi_reg = high_16 + (hwif->channel ? 0x24 : 0x20); u32 atapi_reg = high_16 + (hwif->channel ? 0x24 : 0x20);
u32 word_count = 0; u32 word_count = 0;
u8 clock = hwif->INB(high_16 + 0x11); u8 clock = hwif->INB(high_16 + 0x11);
hwif->OUTB(clock|(hwif->channel ? 0x08 : 0x02), high_16+0x11); hwif->OUTB(clock|(hwif->channel ? 0x08 : 0x02), high_16+0x11);
word_count = (rq->nr_sectors << 8); word_count = (rq->nr_sectors << 8);
word_count = (rq->cmd == READ) ? word_count | 0x05000000 : word_count = (rq_data_dir(rq) == READ) ?
word_count | 0x05000000 :
word_count | 0x06000000; word_count | 0x06000000;
hwif->OUTL(word_count, atapi_reg); hwif->OUTL(word_count, atapi_reg);
} }
...@@ -563,7 +568,8 @@ static int pdc202xx_old_ide_dma_end(ide_drive_t *drive) ...@@ -563,7 +568,8 @@ static int pdc202xx_old_ide_dma_end(ide_drive_t *drive)
{ {
if (drive->addressing == 1) { if (drive->addressing == 1) {
ide_hwif_t *hwif = HWIF(drive); ide_hwif_t *hwif = HWIF(drive);
u32 high_16 = pci_resource_start(hwif->pci_dev, 4); // u32 high_16 = pci_resource_start(hwif->pci_dev, 4);
u32 high_16 = hwif->dma_master;
u32 atapi_reg = high_16 + (hwif->channel ? 0x24 : 0x20); u32 atapi_reg = high_16 + (hwif->channel ? 0x24 : 0x20);
u8 clock = 0; u8 clock = 0;
...@@ -577,8 +583,9 @@ static int pdc202xx_old_ide_dma_end(ide_drive_t *drive) ...@@ -577,8 +583,9 @@ static int pdc202xx_old_ide_dma_end(ide_drive_t *drive)
static int pdc202xx_old_ide_dma_test_irq(ide_drive_t *drive) static int pdc202xx_old_ide_dma_test_irq(ide_drive_t *drive)
{ {
ide_hwif_t *hwif = HWIF(drive); ide_hwif_t *hwif = HWIF(drive);
struct pci_dev *dev = hwif->pci_dev; // struct pci_dev *dev = hwif->pci_dev;
unsigned long high_16 = pci_resource_start(dev, 4); // unsigned long high_16 = pci_resource_start(dev, 4);
u32 high_16 = hwif->dma_master;
u8 dma_stat = hwif->INB(hwif->dma_status); u8 dma_stat = hwif->INB(hwif->dma_status);
u8 sc1d = hwif->INB((high_16 + 0x001d)); u8 sc1d = hwif->INB((high_16 + 0x001d));
...@@ -935,6 +942,7 @@ static int __devinit pdc202xx_init_one(struct pci_dev *dev, const struct pci_dev ...@@ -935,6 +942,7 @@ static int __devinit pdc202xx_init_one(struct pci_dev *dev, const struct pci_dev
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
d->init_setup(dev, d); d->init_setup(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -225,7 +225,7 @@ static unsigned int init_chipset_pdc202xx(struct pci_dev *, const char *); ...@@ -225,7 +225,7 @@ static unsigned int init_chipset_pdc202xx(struct pci_dev *, const char *);
static void init_hwif_pdc202xx(ide_hwif_t *); static void init_hwif_pdc202xx(ide_hwif_t *);
static void init_dma_pdc202xx(ide_hwif_t *, unsigned long); static void init_dma_pdc202xx(ide_hwif_t *, unsigned long);
static ide_pci_device_t pdc202xx_chipsets[] __initdata = { static ide_pci_device_t pdc202xx_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_PROMISE, vendor: PCI_VENDOR_ID_PROMISE,
device: PCI_DEVICE_ID_PROMISE_20246, device: PCI_DEVICE_ID_PROMISE_20246,
......
...@@ -133,6 +133,7 @@ static int __devinit pdcadma_init_one(struct pci_dev *dev, const struct pci_devi ...@@ -133,6 +133,7 @@ static int __devinit pdcadma_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 1; return 1;
} }
......
...@@ -30,7 +30,7 @@ static unsigned int init_chipset_pdcadma(struct pci_dev *, const char *); ...@@ -30,7 +30,7 @@ static unsigned int init_chipset_pdcadma(struct pci_dev *, const char *);
static void init_hwif_pdcadma(ide_hwif_t *); static void init_hwif_pdcadma(ide_hwif_t *);
static void init_dma_pdcadma(ide_hwif_t *, unsigned long); static void init_dma_pdcadma(ide_hwif_t *, unsigned long);
static ide_pci_device_t pdcadma_chipsets[] __initdata = { static ide_pci_device_t pdcadma_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_PDC, vendor: PCI_VENDOR_ID_PDC,
device: PCI_DEVICE_ID_PDC_1841, device: PCI_DEVICE_ID_PDC_1841,
......
...@@ -529,7 +529,7 @@ static int piix_config_drive_xfer_rate (ide_drive_t *drive) ...@@ -529,7 +529,7 @@ static int piix_config_drive_xfer_rate (ide_drive_t *drive)
* out to be nice and simple * out to be nice and simple
*/ */
static unsigned int __init init_chipset_piix (struct pci_dev *dev, const char *name) static unsigned int __devinit init_chipset_piix (struct pci_dev *dev, const char *name)
{ {
switch(dev->device) { switch(dev->device) {
case PCI_DEVICE_ID_INTEL_82801AA_1: case PCI_DEVICE_ID_INTEL_82801AA_1:
...@@ -680,6 +680,7 @@ static int __devinit piix_init_one(struct pci_dev *dev, const struct pci_device_ ...@@ -680,6 +680,7 @@ static int __devinit piix_init_one(struct pci_dev *dev, const struct pci_device_
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
d->init_setup(dev, d); d->init_setup(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -17,7 +17,7 @@ static u8 piix_proc; ...@@ -17,7 +17,7 @@ static u8 piix_proc;
static int piix_get_info(char *, char **, off_t, int); static int piix_get_info(char *, char **, off_t, int);
static ide_pci_host_proc_t piix_procs[] __initdata = { static ide_pci_host_proc_t piix_procs[] __devinitdata = {
{ {
name: "piix", name: "piix",
set: 1, set: 1,
...@@ -28,7 +28,7 @@ static ide_pci_host_proc_t piix_procs[] __initdata = { ...@@ -28,7 +28,7 @@ static ide_pci_host_proc_t piix_procs[] __initdata = {
#endif /* defined(DISPLAY_PIIX_TIMINGS) && defined(CONFIG_PROC_FS) */ #endif /* defined(DISPLAY_PIIX_TIMINGS) && defined(CONFIG_PROC_FS) */
static void init_setup_piix(struct pci_dev *, ide_pci_device_t *); static void init_setup_piix(struct pci_dev *, ide_pci_device_t *);
static unsigned int __init init_chipset_piix(struct pci_dev *, const char *); static unsigned int __devinit init_chipset_piix(struct pci_dev *, const char *);
static void init_hwif_piix(ide_hwif_t *); static void init_hwif_piix(ide_hwif_t *);
static void init_dma_piix(ide_hwif_t *, unsigned long); static void init_dma_piix(ide_hwif_t *, unsigned long);
...@@ -38,7 +38,7 @@ static void init_dma_piix(ide_hwif_t *, unsigned long); ...@@ -38,7 +38,7 @@ static void init_dma_piix(ide_hwif_t *, unsigned long);
* *
*/ */
static ide_pci_device_t piix_pci_info[] __initdata = { static ide_pci_device_t piix_pci_info[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_INTEL, vendor: PCI_VENDOR_ID_INTEL,
device: PCI_DEVICE_ID_INTEL_82371FB_0, device: PCI_DEVICE_ID_INTEL_82371FB_0,
......
...@@ -62,6 +62,7 @@ static int __devinit rz1000_init_one(struct pci_dev *dev, const struct pci_devic ...@@ -62,6 +62,7 @@ static int __devinit rz1000_init_one(struct pci_dev *dev, const struct pci_devic
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
static void init_hwif_rz1000(ide_hwif_t *); static void init_hwif_rz1000(ide_hwif_t *);
static ide_pci_device_t rz1000_chipsets[] __initdata = { static ide_pci_device_t rz1000_chipsets[] __devinitdata = {
{ {
vendor: PCI_VENDOR_ID_PCTECH, vendor: PCI_VENDOR_ID_PCTECH,
device: PCI_DEVICE_ID_PCTECH_RZ1000, device: PCI_DEVICE_ID_PCTECH_RZ1000,
......
...@@ -784,6 +784,7 @@ static int __devinit svwks_init_one(struct pci_dev *dev, const struct pci_device ...@@ -784,6 +784,7 @@ static int __devinit svwks_init_one(struct pci_dev *dev, const struct pci_device
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
d->init_setup(dev, d); d->init_setup(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -37,7 +37,7 @@ static unsigned int init_chipset_svwks(struct pci_dev *, const char *); ...@@ -37,7 +37,7 @@ static unsigned int init_chipset_svwks(struct pci_dev *, const char *);
static void init_hwif_svwks(ide_hwif_t *); static void init_hwif_svwks(ide_hwif_t *);
static void init_dma_svwks(ide_hwif_t *, unsigned long); static void init_dma_svwks(ide_hwif_t *, unsigned long);
static ide_pci_device_t serverworks_chipsets[] __initdata = { static ide_pci_device_t serverworks_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_SERVERWORKS, vendor: PCI_VENDOR_ID_SERVERWORKS,
device: PCI_DEVICE_ID_SERVERWORKS_OSB4IDE, device: PCI_DEVICE_ID_SERVERWORKS_OSB4IDE,
......
...@@ -844,6 +844,7 @@ static int __devinit siimage_init_one(struct pci_dev *dev, const struct pci_devi ...@@ -844,6 +844,7 @@ static int __devinit siimage_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -112,7 +112,7 @@ static void init_iops_siimage(ide_hwif_t *); ...@@ -112,7 +112,7 @@ static void init_iops_siimage(ide_hwif_t *);
static void init_hwif_siimage(ide_hwif_t *); static void init_hwif_siimage(ide_hwif_t *);
static void init_dma_siimage(ide_hwif_t *, unsigned long); static void init_dma_siimage(ide_hwif_t *, unsigned long);
static ide_pci_device_t siimage_chipsets[] __initdata = { static ide_pci_device_t siimage_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_CMD, vendor: PCI_VENDOR_ID_CMD,
device: PCI_DEVICE_ID_SII_680, device: PCI_DEVICE_ID_SII_680,
......
...@@ -1030,6 +1030,7 @@ static int __devinit sis5513_init_one(struct pci_dev *dev, const struct pci_devi ...@@ -1030,6 +1030,7 @@ static int __devinit sis5513_init_one(struct pci_dev *dev, const struct pci_devi
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -29,7 +29,7 @@ static unsigned int init_chipset_sis5513(struct pci_dev *, const char *); ...@@ -29,7 +29,7 @@ static unsigned int init_chipset_sis5513(struct pci_dev *, const char *);
static void init_hwif_sis5513(ide_hwif_t *); static void init_hwif_sis5513(ide_hwif_t *);
static void init_dma_sis5513(ide_hwif_t *, unsigned long); static void init_dma_sis5513(ide_hwif_t *, unsigned long);
static ide_pci_device_t sis5513_chipsets[] __initdata = { static ide_pci_device_t sis5513_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_SI, vendor: PCI_VENDOR_ID_SI,
device: PCI_DEVICE_ID_SI_5513, device: PCI_DEVICE_ID_SI_5513,
......
...@@ -288,6 +288,7 @@ static int __devinit sl82c105_init_one(struct pci_dev *dev, const struct pci_dev ...@@ -288,6 +288,7 @@ static int __devinit sl82c105_init_one(struct pci_dev *dev, const struct pci_dev
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -9,7 +9,7 @@ static unsigned int init_chipset_sl82c105(struct pci_dev *, const char *); ...@@ -9,7 +9,7 @@ static unsigned int init_chipset_sl82c105(struct pci_dev *, const char *);
static void init_hwif_sl82c105(ide_hwif_t *); static void init_hwif_sl82c105(ide_hwif_t *);
static void init_dma_sl82c105(ide_hwif_t *, unsigned long); static void init_dma_sl82c105(ide_hwif_t *, unsigned long);
static ide_pci_device_t sl82c105_chipsets[] __initdata = { static ide_pci_device_t sl82c105_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_WINBOND, vendor: PCI_VENDOR_ID_WINBOND,
device: PCI_DEVICE_ID_WINBOND_82C105, device: PCI_DEVICE_ID_WINBOND_82C105,
......
...@@ -372,6 +372,7 @@ static int __devinit slc90e66_init_one(struct pci_dev *dev, const struct pci_dev ...@@ -372,6 +372,7 @@ static int __devinit slc90e66_init_one(struct pci_dev *dev, const struct pci_dev
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -31,7 +31,7 @@ static unsigned int init_chipset_slc90e66(struct pci_dev *, const char *); ...@@ -31,7 +31,7 @@ static unsigned int init_chipset_slc90e66(struct pci_dev *, const char *);
static void init_hwif_slc90e66(ide_hwif_t *); static void init_hwif_slc90e66(ide_hwif_t *);
static void init_dma_slc90e66(ide_hwif_t *, unsigned long); static void init_dma_slc90e66(ide_hwif_t *, unsigned long);
static ide_pci_device_t slc90e66_chipsets[] __initdata = { static ide_pci_device_t slc90e66_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_EFAR, vendor: PCI_VENDOR_ID_EFAR,
device: PCI_DEVICE_ID_EFAR_SLC90E66_1, device: PCI_DEVICE_ID_EFAR_SLC90E66_1,
......
...@@ -403,6 +403,7 @@ static int __devinit trm290_init_one(struct pci_dev *dev, const struct pci_devic ...@@ -403,6 +403,7 @@ static int __devinit trm290_init_one(struct pci_dev *dev, const struct pci_devic
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
extern void init_hwif_trm290(ide_hwif_t *); extern void init_hwif_trm290(ide_hwif_t *);
static ide_pci_device_t trm290_chipsets[] __initdata = { static ide_pci_device_t trm290_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_TEKRAM, vendor: PCI_VENDOR_ID_TEKRAM,
device: PCI_DEVICE_ID_TEKRAM_DC290, device: PCI_DEVICE_ID_TEKRAM_DC290,
......
...@@ -641,6 +641,7 @@ static int __devinit via_init_one(struct pci_dev *dev, const struct pci_device_i ...@@ -641,6 +641,7 @@ static int __devinit via_init_one(struct pci_dev *dev, const struct pci_device_i
if (dev->device != d->device) if (dev->device != d->device)
BUG(); BUG();
ide_setup_pci_device(dev, d); ide_setup_pci_device(dev, d);
MOD_INC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -29,7 +29,7 @@ static unsigned int init_chipset_via82cxxx(struct pci_dev *, const char *); ...@@ -29,7 +29,7 @@ static unsigned int init_chipset_via82cxxx(struct pci_dev *, const char *);
static void init_hwif_via82cxxx(ide_hwif_t *); static void init_hwif_via82cxxx(ide_hwif_t *);
static void init_dma_via82cxxx(ide_hwif_t *, unsigned long); static void init_dma_via82cxxx(ide_hwif_t *, unsigned long);
static ide_pci_device_t via82cxxx_chipsets[] __initdata = { static ide_pci_device_t via82cxxx_chipsets[] __devinitdata = {
{ /* 0 */ { /* 0 */
vendor: PCI_VENDOR_ID_VIA, vendor: PCI_VENDOR_ID_VIA,
device: PCI_DEVICE_ID_VIA_82C576_1, device: PCI_DEVICE_ID_VIA_82C576_1,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment