Commit 654c433b authored by Sowjanya Komatineni's avatar Sowjanya Komatineni Committed by Mauro Carvalho Chehab
Browse files

media: tegra-video: Separate CSI stream enable and disable implementations



This patch separates implementation of CSI stream enable and disable
into separate functions for readability.

Reviewed-by: default avatarDmitry Osipenko <digetx@gmail.com>
Signed-off-by: default avatarSowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent b73be499
Loading
Loading
Loading
Loading
+35 −16
Original line number Diff line number Diff line
@@ -232,34 +232,53 @@ static int tegra_csi_g_frame_interval(struct v4l2_subdev *subdev,
	return 0;
}

static int tegra_csi_s_stream(struct v4l2_subdev *subdev, int enable)
static int tegra_csi_enable_stream(struct v4l2_subdev *subdev)
{
	struct tegra_vi_channel *chan = v4l2_get_subdev_hostdata(subdev);
	struct tegra_csi_channel *csi_chan = to_csi_chan(subdev);
	struct tegra_csi *csi = csi_chan->csi;
	int ret = 0;
	int ret;

	csi_chan->pg_mode = chan->pg_mode;
	if (enable) {
	ret = pm_runtime_get_sync(csi->dev);
	if (ret < 0) {
			dev_err(csi->dev,
				"failed to get runtime PM: %d\n", ret);
		dev_err(csi->dev, "failed to get runtime PM: %d\n", ret);
		pm_runtime_put_noidle(csi->dev);
		return ret;
	}

	csi_chan->pg_mode = chan->pg_mode;
	ret = csi->ops->csi_start_streaming(csi_chan);
	if (ret < 0)
		goto rpm_put;

	return 0;

rpm_put:
	pm_runtime_put(csi->dev);
	return ret;
}

static int tegra_csi_disable_stream(struct v4l2_subdev *subdev)
{
	struct tegra_csi_channel *csi_chan = to_csi_chan(subdev);
	struct tegra_csi *csi = csi_chan->csi;

	csi->ops->csi_stop_streaming(csi_chan);

rpm_put:
	pm_runtime_put(csi->dev);

	return 0;
}

static int tegra_csi_s_stream(struct v4l2_subdev *subdev, int enable)
{
	int ret;

	if (enable)
		ret = tegra_csi_enable_stream(subdev);
	else
		ret = tegra_csi_disable_stream(subdev);

	return ret;
}