libata used to claim only cmd ports for legacy SFF ports.  Claim ctl
ports too.

Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
---
This has been this way as long as I can remember.  It's almost
pleasant to see that it survived through all the devres/init rework.
I guess it's time for a change.

 drivers/ata/libata-sff.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index e35d134..99a9f98 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -712,6 +712,7 @@ int ata_pci_prepare_native_host(struct pci_dev *pdev,
 struct ata_legacy_devres {
        unsigned int    mask;
        unsigned long   cmd_port[2];
+       unsigned long   ctl_port[2];
        void __iomem *  cmd_addr[2];
        void __iomem *  ctl_addr[2];
        unsigned int    irq[2];
@@ -764,12 +765,16 @@ static int ata_init_legacy_port(struct ata_port *ap,
                ctl_port = ATA_SECONDARY_CTL;
        }
 
-       /* request cmd_port */
+       /* request cmd and ctl port */
        if (request_region(cmd_port, 8, "libata"))
                legacy_dr->cmd_port[port_no] = cmd_port;
-       else {
+
+       if (request_region(ctl_port, 8, "libata"))
+               legacy_dr->ctl_port[port_no] = ctl_port;
+
+       if (!legacy_dr->cmd_port[port_no] || !legacy_dr->ctl_port[port_no]) {
                dev_printk(KERN_WARNING, host->dev,
-                          "0x%0lX IDE port busy\n", cmd_port);
+                          "0x%0lX/0x%0lX IDE port busy\n", cmd_port, ctl_port);
                return -EBUSY;
        }
 
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to