soundwire: stream: restore cumulative bus bandwidth when compute_params callback...
authorShuming Fan <shumingf@realtek.com>
Thu, 16 Mar 2023 01:30:41 +0000 (09:30 +0800)
committerVinod Koul <vkoul@kernel.org>
Wed, 12 Apr 2023 10:00:35 +0000 (15:30 +0530)
The _sdw_prepare_stream function just returns the error code when
compute_params callback failed.
The cumulative bus bandwidth will keep the value and won't be decreased
by sdw_deprepare_stream function.
We should restore the value of cumulative bus bandwidth when
compute_params callback failed.

Signed-off-by: Shuming Fan <shumingf@realtek.com>
Reviewed-by: Paul Olaru <paul.olaru@oss.nxp.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20230316013041.1008003-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/stream.c

index 8c6da1739e3d17454274ddf46cc3d493ae7250cc..136b6850a3f062f8f373f0372ec11ce6ea69c533 100644 (file)
@@ -1369,7 +1369,7 @@ static int _sdw_prepare_stream(struct sdw_stream_runtime *stream,
                        if (ret < 0) {
                                dev_err(bus->dev, "Compute params failed: %d\n",
                                        ret);
-                               return ret;
+                               goto restore_params;
                        }
                }