summaryrefslogtreecommitdiff
path: root/include/linux/platform_data/serial-sccnxp.h
diff options
context:
space:
mode:
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>2023-08-30 16:16:10 +0100
committerHans Verkuil <hverkuil-cisco@xs4all.nl>2023-09-27 09:39:54 +0200
commit3143ad282fc08bf995ee73e32a9e40c527bf265d (patch)
treed6cbaea4604cc7ad690cbf500f795a3637b81249 /include/linux/platform_data/serial-sccnxp.h
parent26bda3da00c3edef727a6acb00ed2eb4b22f8723 (diff)
media: qcom: camss: Fix VFE-17x vfe_disable_output()
There are two problems with the current vfe_disable_output() routine. Firstly we rightly use a spinlock to protect output->gen2.active_num everywhere except for in the IDLE timeout path of vfe_disable_output(). Even if that is not racy "in practice" somehow it is by happenstance not by design. Secondly we do not get consistent behaviour from this routine. On sc8280xp 50% of the time I get "VFE idle timeout - resetting". In this case the subsequent capture will succeed. The other 50% of the time, we don't hit the idle timeout, never do the VFE reset and subsequent captures stall indefinitely. Rewrite the vfe_disable_output() routine to - Quiesce write masters with vfe_wm_stop() - Set active_num = 0 remembering to hold the spinlock when we do so followed by - Reset the VFE Testing on sc8280xp and sdm845 shows this to be a valid fix. Fixes: 7319cdf189bb ("media: camss: Add support for VFE hardware version Titan 170") Cc: stable@vger.kernel.org Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Diffstat (limited to 'include/linux/platform_data/serial-sccnxp.h')
0 files changed, 0 insertions, 0 deletions