[alsa-devel] [PATCH 3/4] soundwire: bus: check if pm runtime is enabled before calling
Pierre-Louis Bossart
pierre-louis.bossart at linux.intel.com
Thu Mar 28 14:55:55 CET 2019
On 3/28/19 9:41 AM, Srinivas Kandagatla wrote:
> Check the device has pm runtime enabled before returning error.
>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla at linaro.org>
> ---
> drivers/soundwire/bus.c | 16 ++++++++++------
> 1 file changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/soundwire/bus.c b/drivers/soundwire/bus.c
> index 1cbfedfc20ef..101562a6fb0d 100644
> --- a/drivers/soundwire/bus.c
> +++ b/drivers/soundwire/bus.c
> @@ -327,9 +327,11 @@ int sdw_nread(struct sdw_slave *slave, u32 addr, size_t count, u8 *val)
> if (ret < 0)
> return ret;
>
> - ret = pm_runtime_get_sync(slave->bus->dev);
> - if (ret < 0)
> - return ret;
> + if (pm_runtime_enabled(slave->bus->dev)) {
> + ret = pm_runtime_get_sync(slave->bus->dev);
Is this an recommended/accepted sequence in kernel circles? I did a
quick git grep and don't see anyone using this sort of tests.
> + if (ret < 0)
> + return ret;
> + }
>
> ret = sdw_transfer(slave->bus, &msg);
> pm_runtime_put(slave->bus->dev);
and the weird thing is that you don't test for the put() case?
> @@ -355,9 +357,11 @@ int sdw_nwrite(struct sdw_slave *slave, u32 addr, size_t count, u8 *val)
> if (ret < 0)
> return ret;
>
> - ret = pm_runtime_get_sync(slave->bus->dev);
> - if (ret < 0)
> - return ret;
> + if (pm_runtime_enabled(slave->bus->dev)) {
> + ret = pm_runtime_get_sync(slave->bus->dev);
> + if (ret < 0)
> + return ret;
> + }
>
> ret = sdw_transfer(slave->bus, &msg);
> pm_runtime_put(slave->bus->dev);
>
More information about the Alsa-devel
mailing list