aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>2021-12-22 00:37:51 +0000
committerHans Verkuil <hverkuil-cisco@xs4all.nl>2021-12-22 15:01:03 +0100
commita21e8883618c96e196982dd6359d84abd6f1a23d (patch)
tree52adbdb2f82dac4b1f6ce8ebb4080ece55b0898c
parent9000f87044f7bc607e3d69997aba35a922cf29b9 (diff)
media: camss: Apply vfe_get/vfe_put fix to SDM845br-v5.17j
Similar to the SM8250 the CSID relies on the VFE to be clocked prior to taking the CSID out of reset. Apply the same fixup to SDM845 as SM8250. Suggested-by: Robert Foss <robert.foss@linaro.org> Tested-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Reviewed-by: Robert Foss <robert.foss@linaro.org> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
-rw-r--r--drivers/media/platform/qcom/camss/camss-csid.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/media/platform/qcom/camss/camss-csid.c b/drivers/media/platform/qcom/camss/camss-csid.c
index e6835b92695b..32f82e471bae 100644
--- a/drivers/media/platform/qcom/camss/camss-csid.c
+++ b/drivers/media/platform/qcom/camss/camss-csid.c
@@ -159,10 +159,11 @@ static int csid_set_power(struct v4l2_subdev *sd, int on)
struct camss *camss = csid->camss;
struct device *dev = camss->dev;
struct vfe_device *vfe = &camss->vfe[csid->id];
+ u32 version = camss->version;
int ret;
if (on) {
- if (camss->version == CAMSS_8250) {
+ if (version == CAMSS_8250 || version == CAMSS_845) {
ret = vfe_get(vfe);
if (ret < 0)
return ret;
@@ -212,7 +213,7 @@ static int csid_set_power(struct v4l2_subdev *sd, int on)
camss_disable_clocks(csid->nclocks, csid->clock);
ret = csid->vdda ? regulator_disable(csid->vdda) : 0;
pm_runtime_put_sync(dev);
- if (camss->version == CAMSS_8250)
+ if (version == CAMSS_8250 || version == CAMSS_845)
vfe_put(vfe);
}