Merge "mmc: bus: Handle error in case bus_ops suspend fails"
This commit is contained in:
commit
0b7d42a677
1 changed files with 13 additions and 0 deletions
|
@ -167,6 +167,19 @@ static int mmc_bus_suspend(struct device *dev)
|
|||
if (mmc_bus_needs_resume(host))
|
||||
return 0;
|
||||
ret = host->bus_ops->suspend(host);
|
||||
|
||||
/*
|
||||
* bus_ops->suspend may fail due to some reason
|
||||
* In such cases if we return error to PM framework
|
||||
* from here without calling pm_generic_resume then mmc
|
||||
* request may get stuck since PM framework will assume
|
||||
* that mmc bus is not suspended (because of error) and
|
||||
* it won't call resume again.
|
||||
*
|
||||
* So in case of error call pm_generic_resume().
|
||||
*/
|
||||
if (ret)
|
||||
pm_generic_resume(dev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue