static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_device_id *id) { const struct ide_port_info *d = &cyrix_chipset; hw_regs_t hw[4], *hws[] = { NULL, NULL, NULL, NULL }; ide_setup_pci_noise(dev, d); /* We must not grab the entire device, it has 'ISA' space in its * BARS too and we will freak out other bits of the kernel */ if (pci_enable_device_io(dev)) { printk(KERN_WARNING "%s: Unable to enable 55x0.\n", d->name); return -ENODEV; } pci_set_master(dev); if (pci_set_dma_mask(dev, DMA_32BIT_MASK)) { printk(KERN_WARNING "%s: No suitable DMA available.\n", d->name); return -ENODEV; } /* * Now the chipset is configured we can let the core * do all the device setup for us */ ide_pci_setup_ports(dev, d, 14, &hw[0], &hws[0]); return ide_host_add(d, hws, NULL); }
static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_device_id *id) { ata_index_t index; ide_pci_device_t *d = &cyrix_chipsets[id->driver_data]; ide_setup_pci_noise(dev, d); /* We must not grab the entire device, it has 'ISA' space in its BARS too and we will freak out other bits of the kernel */ if (pci_enable_device_bars(dev, 1<<2)) { printk(KERN_WARNING "%s: Unable to enable 55x0.\n", d->name); return -ENODEV; } pci_set_master(dev); if (pci_set_dma_mask(dev, DMA_32BIT_MASK)) { printk(KERN_WARNING "cs5520: No suitable DMA available.\n"); return -ENODEV; } index.all = 0xf0f0; /* * Now the chipset is configured we can let the core * do all the device setup for us */ ide_pci_setup_ports(dev, d, 14, &index); if((index.b.low & 0xf0) != 0xf0) probe_hwif_init(&ide_hwifs[index.b.low]); if((index.b.high & 0xf0) != 0xf0) probe_hwif_init(&ide_hwifs[index.b.high]); return 0; }