static unsigned int __init
pci_init_sgiioc4(struct pci_dev *dev, const char *name)
{

	if (pci_enable_device(dev)) {
		printk(KERN_INFO "Failed to enable device %s at slot %s \n",name,dev->slot_name);
		return 1;
	}
	pci_set_master(dev);

	/* Enable Byte Swapping in the PIC... */
	if (snia_pciio_endian_set) {
		/* ... if the symbol exists (hack to get this to build
		 * for SuSE before we merge the SN2 code */
		snia_pciio_endian_set(dev, PCIDMA_ENDIAN_LITTLE, PCIDMA_ENDIAN_BIG);
	} else {
		printk(KERN_INFO "Failed to set endianness for device %s at slot %s \n", name, dev->slot_name);
		return 1;
	}

#ifdef CONFIG_PROC_FS
	sgiioc4_devs[n_sgiioc4_devs++] = dev;
	if (!sgiioc4_proc) {
		sgiioc4_proc = 1;
		ide_pci_register_host_proc(&sgiioc4_procs[0]);
	}
#endif
	sgiioc4_ide_setup_pci_device(dev, name);
	return 0;
}
Example #2
0
static unsigned int __devinit
pci_init_sgiioc4(struct pci_dev *dev, ide_pci_device_t * d)
{
	unsigned int class_rev;

	if (pci_enable_device(dev)) {
		printk(KERN_ERR
		       "Failed to enable device %s at slot %s\n",
		       d->name, dev->slot_name);
		return -ENODEV;
	}
	pci_set_master(dev);

	pci_read_config_dword(dev, PCI_CLASS_REVISION, &class_rev);
	class_rev &= 0xff;
	printk(KERN_INFO "%s: IDE controller at PCI slot %s, revision %d\n",
			d->name, dev->slot_name, class_rev);
	if (class_rev < IOC4_SUPPORTED_FIRMWARE_REV) {
		printk(KERN_ERR "Skipping %s IDE controller in slot %s: "
			"firmware is obsolete - please upgrade to revision"
			"46 or higher\n", d->name, dev->slot_name);
		return -ENODEV;
	}
	return sgiioc4_ide_setup_pci_device(dev, d);
}
Example #3
0
static unsigned int __devinit pci_init_sgiioc4(struct pci_dev *dev)
{
	int ret;

	printk(KERN_INFO "%s: IDE controller at PCI slot %s, revision %d\n",
			 DRV_NAME, pci_name(dev), dev->revision);

	if (dev->revision < IOC4_SUPPORTED_FIRMWARE_REV) {
		printk(KERN_ERR "Skipping %s IDE controller in slot %s: "
				"firmware is obsolete - please upgrade to "
				"revision46 or higher\n",
				DRV_NAME, pci_name(dev));
		ret = -EAGAIN;
		goto out;
	}
	ret = sgiioc4_ide_setup_pci_device(dev);
out:
	return ret;
}
Example #4
0
static unsigned int __devinit
pci_init_sgiioc4(struct pci_dev *dev, ide_pci_device_t * d)
{
	unsigned int class_rev;
	int ret;

	pci_read_config_dword(dev, PCI_CLASS_REVISION, &class_rev);
	class_rev &= 0xff;
	printk(KERN_INFO "%s: IDE controller at PCI slot %s, revision %d\n",
			d->name, pci_name(dev), class_rev);
	if (class_rev < IOC4_SUPPORTED_FIRMWARE_REV) {
		printk(KERN_ERR "Skipping %s IDE controller in slot %s: "
			"firmware is obsolete - please upgrade to revision"
			"46 or higher\n", d->name, pci_name(dev));
		ret = -EAGAIN;
		goto out;
	}
	ret = sgiioc4_ide_setup_pci_device(dev, d);
out:
	return ret;
}