aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>2021-11-20 10:32:04 -0800
committerBryan O'Donoghue <bryan.odonoghue@linaro.org>2021-12-02 13:14:28 +0000
commit3ae53fb083ac2506cff82b1df91fa765c5cfc2b9 (patch)
tree524e447400a3e97791e847923494bc862347ea5d
parenta9469dba234f72990a61e2ac4f5f08e2556a7124 (diff)
media: camss: Apply vfe_get/vfe_put fix to SDM845v5.16-rc3-sm8250-camss-imx577-only-patch0
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>
-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);
}