mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-05 19:31:57 -04:00
UPSTREAM: spi: Fix regression to return zero on success instead of positive value
Commit d948e6ca1899 ("spi: add power control when set_cs") added generic
runtime PM handling, but also changed the return value to be 1 instead
of 0 that we had earlier as pm_runtime_get functions return a positve
value on success.
This causes SPI devices to return errors for cases where they do:
ret = spi_setup(spi);
if (ret)
return ret;
As in many cases the SPI devices do not check for if (ret < 0).
Let's fix this by setting the status to 0 on succeess after the
runtime PM calls. Let's not return 0 at the end of the function
as this might break again later on if the function changes and
starts returning status again.
Fixes: d948e6ca1899 ("spi: add power control when set_cs")
Cc: Luhua Xu <luhua.xu@mediatek.com>
Cc: wsd_upstream@mediatek.com
Signed-off-by: Tony Lindgren <tony@atomide.com>
Link: https://lore.kernel.org/r/20191111195334.44833-1-tony@atomide.com
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 57a9460705f105e1d79d1410c5cfe285beda8986)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I70449c0ef2cbe4c34065adbad577f78ff9928b7b
This commit is contained in:
parent
f49688970b
commit
42e0a0e97f
1 changed files with 9 additions and 0 deletions
|
|
@ -3119,6 +3119,15 @@ int spi_setup(struct spi_device *spi)
|
|||
status);
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
* We do not want to return positive value from pm_runtime_get,
|
||||
* there are many instances of devices calling spi_setup() and
|
||||
* checking for a non-zero return value instead of a negative
|
||||
* return value.
|
||||
*/
|
||||
status = 0;
|
||||
|
||||
spi_set_cs(spi, false);
|
||||
pm_runtime_mark_last_busy(spi->controller->dev.parent);
|
||||
pm_runtime_put_autosuspend(spi->controller->dev.parent);
|
||||
|
|
|
|||
Loading…
Reference in a new issue