Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: iris: Call correct power off callback in cleanup path

Driver implements different callbacks for the power off controller
(.power_off_controller):

- iris_vpu_power_off_controller,
- iris_vpu33_power_off_controller,

The generic wrapper for handling power off - iris_vpu_power_off() -
calls them via 'iris_platform_data->vpu_ops', so shall the cleanup code
in iris_vpu_power_on().

This makes also sense if looking at caller of iris_vpu_power_on(), which
unwinds also with the wrapper calling respective platfortm code (unwinds
with iris_vpu_power_off()).

Otherwise power off sequence on the newer VPU3.3 in error path is not
complete.

Fixes: c69df5de4ac3 ("media: platform: qcom/iris: add power_off_controller to vpu_ops")
Cc: stable@vger.kernel.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Vikash Garodia <quic_vgarodia@quicinc.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Bryan O'Donoghue <bod@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>

authored by

Krzysztof Kozlowski and committed by
Mauro Carvalho Chehab
2fbb823a 93fad55a

+1 -1
+1 -1
drivers/media/platform/qcom/iris/iris_vpu_common.c
··· 359 359 return 0; 360 360 361 361 err_power_off_ctrl: 362 - iris_vpu_power_off_controller(core); 362 + core->iris_platform_data->vpu_ops->power_off_controller(core); 363 363 err_unvote_icc: 364 364 iris_unset_icc_bw(core); 365 365 err: