Commit 52264295 authored by Bryan O'Donoghue's avatar Bryan O'Donoghue Committed by Mauro Carvalho Chehab
Browse files

media: camss: Apply vfe_get/vfe_put fix to SDM845



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: default avatarRobert Foss <robert.foss@linaro.org>
Tested-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: default avatarRobert Foss <robert.foss@linaro.org>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent c5af8db8
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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);
	}