aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libata-eh.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2006-05-31 05:28:24 -0400
committerTejun Heo <htejun@gmail.com>2006-05-31 05:28:24 -0400
commitd87fa38e70853a9607dc34a02d15cf5f149f49f2 (patch)
tree6afc6f8b9ff9c2c441efd61829d5d6fa6eb5698d /drivers/scsi/libata-eh.c
parent52783c5dcc8d317bc8c3e2692d366e8a305abada (diff)
[PATCH] libata-hp: move ata_do_reset() to libata-eh.c
With ops->probe_init() gone, no user is left in libata-core.c. Move ata_do_reset() to libata-eh.c and make it static. Signed-off-by: Tejun Heo <htejun@gmail.com>
Diffstat (limited to 'drivers/scsi/libata-eh.c')
-rw-r--r--drivers/scsi/libata-eh.c28
1 files changed, 28 insertions, 0 deletions
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
1358static 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
1358static int ata_eh_followup_srst_needed(int rc, int classify, 1386static int ata_eh_followup_srst_needed(int rc, int classify,
1359 const unsigned int *classes) 1387 const unsigned int *classes)
1360{ 1388{