aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata-sff.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2008-03-24 23:22:49 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-04-17 15:44:17 -0400
commit1bd5b715a305f6f13455e89becbd839010dd14b5 (patch)
tree22e74b38495c51cda92145b7ae31f504f80d9fd3 /drivers/ata/libata-sff.c
parent029cfd6b74fc5c517865fad78cf4a3ea8d9b664a (diff)
libata: make ata_pci_init_one() not use ops->irq_handler and pi->sht
ata_pci_init_one() is the only function which uses ops->irq_handler and pi->sht. Other initialization functions take the same information as arguments. This causes confusion and duplicate unused entries in structures. Make ata_pci_init_one() take sht as an argument and use ata_interrupt implicitly. All current users use ata_interrupt and if different irq handler is necessary open coding ata_pci_init_one() using ata_prepare_sff_host() and ata_activate_sff_host can be done under ten lines including error handling and driver which requires custom interrupt handler is likely to require custom initialization anyway. As ata_pci_init_one() was the last user of ops->irq_handler, this patch also kills the field. Signed-off-by: Tejun Heo <htejun@gmail.com>
Diffstat (limited to 'drivers/ata/libata-sff.c')
-rw-r--r--drivers/ata/libata-sff.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 1cf03d41aa33..a9d5898cbbc4 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -826,6 +826,7 @@ int ata_pci_activate_sff_host(struct ata_host *host,
826 * ata_pci_init_one - Initialize/register PCI IDE host controller 826 * ata_pci_init_one - Initialize/register PCI IDE host controller
827 * @pdev: Controller to be initialized 827 * @pdev: Controller to be initialized
828 * @ppi: array of port_info, must be enough for two ports 828 * @ppi: array of port_info, must be enough for two ports
829 * @sht: scsi_host_template to use when registering the host
829 * 830 *
830 * This is a helper function which can be called from a driver's 831 * This is a helper function which can be called from a driver's
831 * xxx_init_one() probe function if the hardware uses traditional 832 * xxx_init_one() probe function if the hardware uses traditional
@@ -846,7 +847,8 @@ int ata_pci_activate_sff_host(struct ata_host *host,
846 * Zero on success, negative on errno-based value on error. 847 * Zero on success, negative on errno-based value on error.
847 */ 848 */
848int ata_pci_init_one(struct pci_dev *pdev, 849int ata_pci_init_one(struct pci_dev *pdev,
849 const struct ata_port_info * const * ppi) 850 const struct ata_port_info * const * ppi,
851 struct scsi_host_template *sht)
850{ 852{
851 struct device *dev = &pdev->dev; 853 struct device *dev = &pdev->dev;
852 const struct ata_port_info *pi = NULL; 854 const struct ata_port_info *pi = NULL;
@@ -882,8 +884,7 @@ int ata_pci_init_one(struct pci_dev *pdev,
882 goto out; 884 goto out;
883 885
884 pci_set_master(pdev); 886 pci_set_master(pdev);
885 rc = ata_pci_activate_sff_host(host, pi->port_ops->irq_handler, 887 rc = ata_pci_activate_sff_host(host, ata_interrupt, sht);
886 pi->sht);
887 out: 888 out:
888 if (rc == 0) 889 if (rc == 0)
889 devres_remove_group(&pdev->dev, NULL); 890 devres_remove_group(&pdev->dev, NULL);