[PATCH] libata: move ->set_mode() handling into ata_set_mode()
authorTejun Heo <htejun@gmail.com>
Mon, 15 May 2006 11:57:37 +0000 (20:57 +0900)
committerTejun Heo <htejun@gmail.com>
Mon, 15 May 2006 11:57:37 +0000 (20:57 +0900)
Move ->set_mode() handlng into ata_set_mode().

Signed-off-by: Tejun Heo <htejun@gmail.com>
drivers/scsi/libata-core.c

index af55861a96e23d39077663c1e6463a900f6f0f6b..1efe8a1ba81d7a392be947f4143eea4d5494d57c 100644 (file)
@@ -1426,20 +1426,7 @@ static int ata_bus_probe(struct ata_port *ap)
        }
 
        /* configure transfer mode */
-       if (ap->ops->set_mode) {
-               /* FIXME: make ->set_mode handle no device case and
-                * return error code and failing device on failure as
-                * ata_set_mode() does.
-                */
-               for (i = 0; i < ATA_MAX_DEVICES; i++)
-                       if (ata_dev_enabled(&ap->device[i])) {
-                               ap->ops->set_mode(ap);
-                               break;
-                       }
-               rc = 0;
-       } else
-               rc = ata_set_mode(ap, &dev);
-
+       rc = ata_set_mode(ap, &dev);
        if (rc) {
                down_xfermask = 1;
                goto fail;
@@ -1997,6 +1984,20 @@ int ata_set_mode(struct ata_port *ap, struct ata_device **r_failed_dev)
        struct ata_device *dev;
        int i, rc = 0, used_dma = 0, found = 0;
 
+       /* has private set_mode? */
+       if (ap->ops->set_mode) {
+               /* FIXME: make ->set_mode handle no device case and
+                * return error code and failing device on failure.
+                */
+               for (i = 0; i < ATA_MAX_DEVICES; i++) {
+                       if (ata_dev_enabled(&ap->device[i])) {
+                               ap->ops->set_mode(ap);
+                               break;
+                       }
+               }
+               return 0;
+       }
+
        /* step 1: calculate xfer_mask */
        for (i = 0; i < ATA_MAX_DEVICES; i++) {
                unsigned int pio_mask, dma_mask;