diff options
author | Tejun Heo <htejun@gmail.com> | 2008-03-24 23:22:49 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-04-17 15:44:17 -0400 |
commit | 1bd5b715a305f6f13455e89becbd839010dd14b5 (patch) | |
tree | 22e74b38495c51cda92145b7ae31f504f80d9fd3 /drivers/ata/libata-sff.c | |
parent | 029cfd6b74fc5c517865fad78cf4a3ea8d9b664a (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.c | 7 |
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 | */ |
848 | int ata_pci_init_one(struct pci_dev *pdev, | 849 | int 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); |