1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2005 Silicon Graphics, Inc. All Rights Reserved.
- */
- /*
- * This file contains a shim driver for the IOC4 IDE and serial drivers.
- */
- #include <linux/errno.h>
- #include <linux/module.h>
- #include <linux/pci.h>
- #include <linux/ioc4_common.h>
- #include <linux/ide.h>
- static int __devinit
- ioc4_probe_one(struct pci_dev *pdev, const struct pci_device_id *pci_id)
- {
- int ret;
- if ((ret = pci_enable_device(pdev))) {
- printk(KERN_WARNING
- "%s: Failed to enable device with "
- "pci_dev 0x%p... returning\n",
- __FUNCTION__, (void *)pdev);
- return ret;
- }
- pci_set_master(pdev);
- /* attach each sub-device */
- ret = ioc4_ide_attach_one(pdev, pci_id);
- if (ret)
- return ret;
- return ioc4_serial_attach_one(pdev, pci_id);
- }
- /* pci device struct */
- static struct pci_device_id ioc4_s_id_table[] = {
- {PCI_VENDOR_ID_SGI, PCI_DEVICE_ID_SGI_IOC4, PCI_ANY_ID,
- PCI_ANY_ID, 0x0b4000, 0xFFFFFF},
- {0}
- };
- MODULE_DEVICE_TABLE(pci, ioc4_s_id_table);
- static struct pci_driver __devinitdata ioc4_s_driver = {
- .name = "IOC4",
- .id_table = ioc4_s_id_table,
- .probe = ioc4_probe_one,
- };
- static int __devinit ioc4_detect(void)
- {
- ioc4_serial_init();
- return pci_register_driver(&ioc4_s_driver);
- }
- module_init(ioc4_detect);
- MODULE_AUTHOR("Pat Gefre - Silicon Graphics Inc. (SGI) <pfg@sgi.com>");
- MODULE_DESCRIPTION("PCI driver module for SGI IOC4 Base-IO Card");
- MODULE_LICENSE("GPL");
|