Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 099b1f42 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

pdc202xx_new: remove ->init_setup



* Split off pdc20270_get_dev2() helper from init_setup_pdc20270().

* Merge init_setup_{pdcnew,pdc20270,pdc20276}() into pdc202new_init_one().

While at it:

* Change KERN_ level of interrupt fixup message from KERN_WARNING to KERN_INFO.

Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent fbf47840
Loading
Loading
Loading
Loading
+49 −59
Original line number Original line Diff line number Diff line
@@ -482,66 +482,31 @@ static void __devinit init_hwif_pdc202new(ide_hwif_t *hwif)
		hwif->cbl = pdcnew_cable_detect(hwif);
		hwif->cbl = pdcnew_cable_detect(hwif);
}
}


static int __devinit init_setup_pdcnew(struct pci_dev *dev, ide_pci_device_t *d)
static struct pci_dev * __devinit pdc20270_get_dev2(struct pci_dev *dev)
{
{
	return ide_setup_pci_device(dev, d);
}

static int __devinit init_setup_pdc20270(struct pci_dev *dev, ide_pci_device_t *d)
{
	struct pci_dev *bridge = dev->bus->self;

	if (bridge != NULL &&
	    bridge->vendor == PCI_VENDOR_ID_DEC &&
	    bridge->device == PCI_DEVICE_ID_DEC_21150) {
	struct pci_dev *dev2;
	struct pci_dev *dev2;


		if (PCI_SLOT(dev->devfn) & 2)
			return -ENODEV;

	dev2 = pci_get_slot(dev->bus, PCI_DEVFN(PCI_SLOT(dev->devfn) + 2,
	dev2 = pci_get_slot(dev->bus, PCI_DEVFN(PCI_SLOT(dev->devfn) + 2,
						PCI_FUNC(dev->devfn)));
						PCI_FUNC(dev->devfn)));
		if (dev2 != NULL &&
	if (dev2 &&
	    dev2->vendor == dev->vendor &&
	    dev2->vendor == dev->vendor &&
	    dev2->device == dev->device) {
	    dev2->device == dev->device) {
			int ret;


		if (dev2->irq != dev->irq) {
		if (dev2->irq != dev->irq) {
			dev2->irq = dev->irq;
			dev2->irq = dev->irq;

			printk(KERN_INFO "PDC20270: PCI config space "
				printk(KERN_WARNING "%s: PCI config space "
					 "interrupt fixed\n");
				       "interrupt fixed.\n", d->name);
		}
		}


			ret = ide_setup_pci_devices(dev, dev2, d);
		return dev2;
			if (ret < 0)
				pci_dev_put(dev2);
			return ret;
		}
	}
	return ide_setup_pci_device(dev, d);
	}
	}


static int __devinit init_setup_pdc20276(struct pci_dev *dev, ide_pci_device_t *d)
	return NULL;
{
	struct pci_dev *bridge = dev->bus->self;

	if (bridge != NULL &&
	    bridge->vendor == PCI_VENDOR_ID_INTEL &&
	   (bridge->device == PCI_DEVICE_ID_INTEL_I960 ||
	    bridge->device == PCI_DEVICE_ID_INTEL_I960RM)) {

		printk(KERN_INFO "%s: attached to I2O RAID controller, "
				 "skipping.\n", d->name);
		return -ENODEV;
	}
	return ide_setup_pci_device(dev, d);
}
}


static ide_pci_device_t pdcnew_chipsets[] __devinitdata = {
static ide_pci_device_t pdcnew_chipsets[] __devinitdata = {
	{	/* 0 */
	{	/* 0 */
		.name		= "PDC20268",
		.name		= "PDC20268",
		.init_setup	= init_setup_pdcnew,
		.init_chipset	= init_chipset_pdcnew,
		.init_chipset	= init_chipset_pdcnew,
		.init_hwif	= init_hwif_pdc202new,
		.init_hwif	= init_hwif_pdc202new,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
@@ -550,7 +515,6 @@ static ide_pci_device_t pdcnew_chipsets[] __devinitdata = {
		.udma_mask	= ATA_UDMA5,
		.udma_mask	= ATA_UDMA5,
	},{	/* 1 */
	},{	/* 1 */
		.name		= "PDC20269",
		.name		= "PDC20269",
		.init_setup	= init_setup_pdcnew,
		.init_chipset	= init_chipset_pdcnew,
		.init_chipset	= init_chipset_pdcnew,
		.init_hwif	= init_hwif_pdc202new,
		.init_hwif	= init_hwif_pdc202new,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
@@ -559,7 +523,6 @@ static ide_pci_device_t pdcnew_chipsets[] __devinitdata = {
		.udma_mask	= ATA_UDMA6,
		.udma_mask	= ATA_UDMA6,
	},{	/* 2 */
	},{	/* 2 */
		.name		= "PDC20270",
		.name		= "PDC20270",
		.init_setup	= init_setup_pdc20270,
		.init_chipset	= init_chipset_pdcnew,
		.init_chipset	= init_chipset_pdcnew,
		.init_hwif	= init_hwif_pdc202new,
		.init_hwif	= init_hwif_pdc202new,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
@@ -568,7 +531,6 @@ static ide_pci_device_t pdcnew_chipsets[] __devinitdata = {
		.udma_mask	= ATA_UDMA5,
		.udma_mask	= ATA_UDMA5,
	},{	/* 3 */
	},{	/* 3 */
		.name		= "PDC20271",
		.name		= "PDC20271",
		.init_setup	= init_setup_pdcnew,
		.init_chipset	= init_chipset_pdcnew,
		.init_chipset	= init_chipset_pdcnew,
		.init_hwif	= init_hwif_pdc202new,
		.init_hwif	= init_hwif_pdc202new,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
@@ -577,7 +539,6 @@ static ide_pci_device_t pdcnew_chipsets[] __devinitdata = {
		.udma_mask	= ATA_UDMA6,
		.udma_mask	= ATA_UDMA6,
	},{	/* 4 */
	},{	/* 4 */
		.name		= "PDC20275",
		.name		= "PDC20275",
		.init_setup	= init_setup_pdcnew,
		.init_chipset	= init_chipset_pdcnew,
		.init_chipset	= init_chipset_pdcnew,
		.init_hwif	= init_hwif_pdc202new,
		.init_hwif	= init_hwif_pdc202new,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
@@ -586,7 +547,6 @@ static ide_pci_device_t pdcnew_chipsets[] __devinitdata = {
		.udma_mask	= ATA_UDMA6,
		.udma_mask	= ATA_UDMA6,
	},{	/* 5 */
	},{	/* 5 */
		.name		= "PDC20276",
		.name		= "PDC20276",
		.init_setup	= init_setup_pdc20276,
		.init_chipset	= init_chipset_pdcnew,
		.init_chipset	= init_chipset_pdcnew,
		.init_hwif	= init_hwif_pdc202new,
		.init_hwif	= init_hwif_pdc202new,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
@@ -595,7 +555,6 @@ static ide_pci_device_t pdcnew_chipsets[] __devinitdata = {
		.udma_mask	= ATA_UDMA6,
		.udma_mask	= ATA_UDMA6,
	},{	/* 6 */
	},{	/* 6 */
		.name		= "PDC20277",
		.name		= "PDC20277",
		.init_setup	= init_setup_pdcnew,
		.init_chipset	= init_chipset_pdcnew,
		.init_chipset	= init_chipset_pdcnew,
		.init_hwif	= init_hwif_pdc202new,
		.init_hwif	= init_hwif_pdc202new,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
		.host_flags	= IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_OFF_BOARD,
@@ -616,9 +575,40 @@ static ide_pci_device_t pdcnew_chipsets[] __devinitdata = {
 
 
static int __devinit pdc202new_init_one(struct pci_dev *dev, const struct pci_device_id *id)
static int __devinit pdc202new_init_one(struct pci_dev *dev, const struct pci_device_id *id)
{
{
	ide_pci_device_t *d = &pdcnew_chipsets[id->driver_data];
	ide_pci_device_t *d;
	struct pci_dev *bridge = dev->bus->self;
	u8 idx = id->driver_data;

	d = &pdcnew_chipsets[idx];


	return d->init_setup(dev, d);
	if (idx == 2 && bridge &&
	    bridge->vendor == PCI_VENDOR_ID_DEC &&
	    bridge->device == PCI_DEVICE_ID_DEC_21150) {
		struct pci_dev *dev2;

		if (PCI_SLOT(dev->devfn) & 2)
			return -ENODEV;

		dev2 = pdc20270_get_dev2(dev);

		if (dev2) {
			int ret = ide_setup_pci_devices(dev, dev2, d);
			if (ret < 0)
				pci_dev_put(dev2);
			return ret;
		}
	}

	if (idx == 5 && bridge &&
	    bridge->vendor == PCI_VENDOR_ID_INTEL &&
	    (bridge->device == PCI_DEVICE_ID_INTEL_I960 ||
	     bridge->device == PCI_DEVICE_ID_INTEL_I960RM)) {
		printk(KERN_INFO "PDC20276: attached to I2O RAID controller, "
				 "skipping\n");
		return -ENODEV;
	}

	return ide_setup_pci_device(dev, d);
}
}


static const struct pci_device_id pdc202new_pci_tbl[] = {
static const struct pci_device_id pdc202new_pci_tbl[] = {