mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
scsi: Retry inquiry 3 times to overcome Unit Attention condition
The UFS SCSI device LUNs are observed to return failure the first time a unit ready inquiry is sent and pass on the second try. Send this inquiry 3 times to make sure device is ready. Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
This commit is contained in:
@@ -481,6 +481,7 @@ static int scsi_detect_dev(struct udevice *dev, int target, int lun,
|
||||
lbaint_t capacity;
|
||||
unsigned long blksz;
|
||||
struct scsi_cmd *pccb = (struct scsi_cmd *)&tempccb;
|
||||
int count, err;
|
||||
|
||||
pccb->target = target;
|
||||
pccb->lun = lun;
|
||||
@@ -516,9 +517,14 @@ static int scsi_detect_dev(struct udevice *dev, int target, int lun,
|
||||
dev_desc->target = pccb->target;
|
||||
dev_desc->lun = pccb->lun;
|
||||
|
||||
pccb->datalen = 0;
|
||||
scsi_setup_test_unit_ready(pccb);
|
||||
if (scsi_exec(dev, pccb)) {
|
||||
for (count = 0; count < 3; count++) {
|
||||
pccb->datalen = 0;
|
||||
scsi_setup_test_unit_ready(pccb);
|
||||
err = scsi_exec(dev, pccb);
|
||||
if (!err)
|
||||
break;
|
||||
}
|
||||
if (err) {
|
||||
if (dev_desc->removable) {
|
||||
dev_desc->type = perq;
|
||||
goto removable;
|
||||
|
Reference in New Issue
Block a user