aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libata-core.c
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2006-03-27 18:46:37 +0100
committerJeff Garzik <jeff@garzik.org>2006-03-29 19:30:27 -0500
commite35a9e01f2a504871e70576a9e11dbe4d8dee456 (patch)
tree4761c2d8b9d827d95cc531376e5c02666734ecf6 /drivers/scsi/libata-core.c
parent[PATCH] libata: BMDMA handling updates (diff)
downloadlinux-dev-e35a9e01f2a504871e70576a9e11dbe4d8dee456.tar.xz
linux-dev-e35a9e01f2a504871e70576a9e11dbe4d8dee456.zip
[PATCH] libata: Add ->set_mode hook for odd drivers
Some hardware doesn't want the usual mode setup logic running. This allows the hardware driver to replace it for special cases in the least invasive way possible. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to '')
-rw-r--r--drivers/scsi/libata-core.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index 86310562da8b..10933cb722e6 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -1409,7 +1409,11 @@ static int ata_bus_probe(struct ata_port *ap)
if (!found)
goto err_out_disable;
- ata_set_mode(ap);
+ if (ap->ops->set_mode)
+ ap->ops->set_mode(ap);
+ else
+ ata_set_mode(ap);
+
if (ap->flags & ATA_FLAG_PORT_DISABLED)
goto err_out_disable;