[PATCH] libata: claim ctl port for legacy SFF ports

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
---
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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux