diff options
author | Mark Brown <broonie@linaro.org> | 2013-11-03 22:04:05 -0800 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-11-03 22:04:05 -0800 |
commit | ca89bc248e2fac44d6374a48b8d38b068c7a1bdf (patch) | |
tree | 0c10af2a5f22a1ad0283023d403022ce6b84ebc4 /drivers/ata/libahci.c | |
parent | 9645083ca5ef365b7b750cf219bb20b61bb925f8 (diff) | |
parent | 7b5bfb82882b9b1c8423ce0ed6852ca3762d967a (diff) |
Merge remote-tracking branch 'asoc/fix/ak4642' into asoc-linus
Diffstat (limited to 'drivers/ata/libahci.c')
-rw-r--r-- | drivers/ata/libahci.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c index acfd0f711069..aaac4fb0d564 100644 --- a/drivers/ata/libahci.c +++ b/drivers/ata/libahci.c @@ -778,8 +778,16 @@ static void ahci_start_port(struct ata_port *ap) rc = ap->ops->transmit_led_message(ap, emp->led_state, 4); + /* + * If busy, give a breather but do not + * release EH ownership by using msleep() + * instead of ata_msleep(). EM Transmit + * bit is busy for the whole host and + * releasing ownership will cause other + * ports to fail the same way. + */ if (rc == -EBUSY) - ata_msleep(ap, 1); + msleep(1); else break; } |