diff options
| -rw-r--r-- | drivers/scsi/libata-core.c | 28 | ||||
| -rw-r--r-- | drivers/scsi/libata-eh.c | 28 | ||||
| -rw-r--r-- | drivers/scsi/libata.h | 2 |
3 files changed, 28 insertions, 30 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index 30a6020c5121..40d16124cc9f 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c | |||
| @@ -2783,34 +2783,6 @@ void ata_std_postreset(struct ata_port *ap, unsigned int *classes) | |||
| 2783 | DPRINTK("EXIT\n"); | 2783 | DPRINTK("EXIT\n"); |
| 2784 | } | 2784 | } |
| 2785 | 2785 | ||
| 2786 | int ata_do_reset(struct ata_port *ap, ata_reset_fn_t reset, | ||
| 2787 | unsigned int *classes) | ||
| 2788 | { | ||
| 2789 | int i, rc; | ||
| 2790 | |||
| 2791 | for (i = 0; i < ATA_MAX_DEVICES; i++) | ||
| 2792 | classes[i] = ATA_DEV_UNKNOWN; | ||
| 2793 | |||
| 2794 | rc = reset(ap, classes); | ||
| 2795 | if (rc) | ||
| 2796 | return rc; | ||
| 2797 | |||
| 2798 | /* If any class isn't ATA_DEV_UNKNOWN, consider classification | ||
| 2799 | * is complete and convert all ATA_DEV_UNKNOWN to | ||
| 2800 | * ATA_DEV_NONE. | ||
| 2801 | */ | ||
| 2802 | for (i = 0; i < ATA_MAX_DEVICES; i++) | ||
| 2803 | if (classes[i] != ATA_DEV_UNKNOWN) | ||
| 2804 | break; | ||
| 2805 | |||
| 2806 | if (i < ATA_MAX_DEVICES) | ||
| 2807 | for (i = 0; i < ATA_MAX_DEVICES; i++) | ||
| 2808 | if (classes[i] == ATA_DEV_UNKNOWN) | ||
| 2809 | classes[i] = ATA_DEV_NONE; | ||
| 2810 | |||
| 2811 | return 0; | ||
| 2812 | } | ||
| 2813 | |||
| 2814 | /** | 2786 | /** |
| 2815 | * ata_dev_same_device - Determine whether new ID matches configured device | 2787 | * ata_dev_same_device - Determine whether new ID matches configured device |
| 2816 | * @dev: device to compare against | 2788 | * @dev: device to compare against |
diff --git a/drivers/scsi/libata-eh.c b/drivers/scsi/libata-eh.c index 30a83a57a12f..d4b80b64342c 100644 --- a/drivers/scsi/libata-eh.c +++ b/drivers/scsi/libata-eh.c | |||
| @@ -1355,6 +1355,34 @@ static void ata_eh_report(struct ata_port *ap) | |||
| 1355 | } | 1355 | } |
| 1356 | } | 1356 | } |
| 1357 | 1357 | ||
| 1358 | static int ata_do_reset(struct ata_port *ap, ata_reset_fn_t reset, | ||
| 1359 | unsigned int *classes) | ||
| 1360 | { | ||
| 1361 | int i, rc; | ||
| 1362 | |||
| 1363 | for (i = 0; i < ATA_MAX_DEVICES; i++) | ||
| 1364 | classes[i] = ATA_DEV_UNKNOWN; | ||
| 1365 | |||
| 1366 | rc = reset(ap, classes); | ||
| 1367 | if (rc) | ||
| 1368 | return rc; | ||
| 1369 | |||
| 1370 | /* If any class isn't ATA_DEV_UNKNOWN, consider classification | ||
| 1371 | * is complete and convert all ATA_DEV_UNKNOWN to | ||
| 1372 | * ATA_DEV_NONE. | ||
| 1373 | */ | ||
| 1374 | for (i = 0; i < ATA_MAX_DEVICES; i++) | ||
| 1375 | if (classes[i] != ATA_DEV_UNKNOWN) | ||
| 1376 | break; | ||
| 1377 | |||
| 1378 | if (i < ATA_MAX_DEVICES) | ||
| 1379 | for (i = 0; i < ATA_MAX_DEVICES; i++) | ||
| 1380 | if (classes[i] == ATA_DEV_UNKNOWN) | ||
| 1381 | classes[i] = ATA_DEV_NONE; | ||
| 1382 | |||
| 1383 | return 0; | ||
| 1384 | } | ||
| 1385 | |||
| 1358 | static int ata_eh_followup_srst_needed(int rc, int classify, | 1386 | static int ata_eh_followup_srst_needed(int rc, int classify, |
| 1359 | const unsigned int *classes) | 1387 | const unsigned int *classes) |
| 1360 | { | 1388 | { |
diff --git a/drivers/scsi/libata.h b/drivers/scsi/libata.h index 0586b0cd73fd..1dd496f1f7ac 100644 --- a/drivers/scsi/libata.h +++ b/drivers/scsi/libata.h | |||
| @@ -57,8 +57,6 @@ extern int sata_down_spd_limit(struct ata_port *ap); | |||
| 57 | extern int sata_set_spd_needed(struct ata_port *ap); | 57 | extern int sata_set_spd_needed(struct ata_port *ap); |
| 58 | extern int ata_down_xfermask_limit(struct ata_device *dev, int force_pio0); | 58 | extern int ata_down_xfermask_limit(struct ata_device *dev, int force_pio0); |
| 59 | extern int ata_set_mode(struct ata_port *ap, struct ata_device **r_failed_dev); | 59 | extern int ata_set_mode(struct ata_port *ap, struct ata_device **r_failed_dev); |
| 60 | extern int ata_do_reset(struct ata_port *ap, ata_reset_fn_t reset, | ||
| 61 | unsigned int *classes); | ||
| 62 | extern void ata_qc_free(struct ata_queued_cmd *qc); | 60 | extern void ata_qc_free(struct ata_queued_cmd *qc); |
| 63 | extern void ata_qc_issue(struct ata_queued_cmd *qc); | 61 | extern void ata_qc_issue(struct ata_queued_cmd *qc); |
| 64 | extern void __ata_qc_complete(struct ata_queued_cmd *qc); | 62 | extern void __ata_qc_complete(struct ata_queued_cmd *qc); |
