Commit 510b3188 authored by Hugues Fruchet's avatar Hugues Fruchet Committed by Mauro Carvalho Chehab

media: stm32-dcmi: improve sensor subdev naming

Rename "subdev" entity struct field to "source"
to prepare for several subdev support.
Move asd field on top of entity struct.
Acked-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarHugues Fruchet <hugues.fruchet@st.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 6b338c72
...@@ -100,10 +100,10 @@ enum state { ...@@ -100,10 +100,10 @@ enum state {
#define OVERRUN_ERROR_THRESHOLD 3 #define OVERRUN_ERROR_THRESHOLD 3
struct dcmi_graph_entity { struct dcmi_graph_entity {
struct device_node *node;
struct v4l2_async_subdev asd; struct v4l2_async_subdev asd;
struct v4l2_subdev *subdev;
struct device_node *remote_node;
struct v4l2_subdev *source;
}; };
struct dcmi_format { struct dcmi_format {
...@@ -595,7 +595,7 @@ static int dcmi_start_streaming(struct vb2_queue *vq, unsigned int count) ...@@ -595,7 +595,7 @@ static int dcmi_start_streaming(struct vb2_queue *vq, unsigned int count)
} }
/* Enable stream on the sub device */ /* Enable stream on the sub device */
ret = v4l2_subdev_call(dcmi->entity.subdev, video, s_stream, 1); ret = v4l2_subdev_call(dcmi->entity.source, video, s_stream, 1);
if (ret && ret != -ENOIOCTLCMD) { if (ret && ret != -ENOIOCTLCMD) {
dev_err(dcmi->dev, "%s: Failed to start streaming, subdev streamon error", dev_err(dcmi->dev, "%s: Failed to start streaming, subdev streamon error",
__func__); __func__);
...@@ -685,7 +685,7 @@ static int dcmi_start_streaming(struct vb2_queue *vq, unsigned int count) ...@@ -685,7 +685,7 @@ static int dcmi_start_streaming(struct vb2_queue *vq, unsigned int count)
return 0; return 0;
err_subdev_streamoff: err_subdev_streamoff:
v4l2_subdev_call(dcmi->entity.subdev, video, s_stream, 0); v4l2_subdev_call(dcmi->entity.source, video, s_stream, 0);
err_pm_put: err_pm_put:
pm_runtime_put(dcmi->dev); pm_runtime_put(dcmi->dev);
...@@ -713,7 +713,7 @@ static void dcmi_stop_streaming(struct vb2_queue *vq) ...@@ -713,7 +713,7 @@ static void dcmi_stop_streaming(struct vb2_queue *vq)
int ret; int ret;
/* Disable stream on the sub device */ /* Disable stream on the sub device */
ret = v4l2_subdev_call(dcmi->entity.subdev, video, s_stream, 0); ret = v4l2_subdev_call(dcmi->entity.source, video, s_stream, 0);
if (ret && ret != -ENOIOCTLCMD) if (ret && ret != -ENOIOCTLCMD)
dev_err(dcmi->dev, "%s: Failed to stop streaming, subdev streamoff error (%d)\n", dev_err(dcmi->dev, "%s: Failed to stop streaming, subdev streamoff error (%d)\n",
__func__, ret); __func__, ret);
...@@ -857,7 +857,7 @@ static int dcmi_try_fmt(struct stm32_dcmi *dcmi, struct v4l2_format *f, ...@@ -857,7 +857,7 @@ static int dcmi_try_fmt(struct stm32_dcmi *dcmi, struct v4l2_format *f,
} }
v4l2_fill_mbus_format(&format.format, pix, sd_fmt->mbus_code); v4l2_fill_mbus_format(&format.format, pix, sd_fmt->mbus_code);
ret = v4l2_subdev_call(dcmi->entity.subdev, pad, set_fmt, ret = v4l2_subdev_call(dcmi->entity.source, pad, set_fmt,
&pad_cfg, &format); &pad_cfg, &format);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -934,7 +934,7 @@ static int dcmi_set_fmt(struct stm32_dcmi *dcmi, struct v4l2_format *f) ...@@ -934,7 +934,7 @@ static int dcmi_set_fmt(struct stm32_dcmi *dcmi, struct v4l2_format *f)
mf->width = sd_framesize.width; mf->width = sd_framesize.width;
mf->height = sd_framesize.height; mf->height = sd_framesize.height;
ret = v4l2_subdev_call(dcmi->entity.subdev, pad, ret = v4l2_subdev_call(dcmi->entity.source, pad,
set_fmt, NULL, &format); set_fmt, NULL, &format);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -991,7 +991,7 @@ static int dcmi_get_sensor_format(struct stm32_dcmi *dcmi, ...@@ -991,7 +991,7 @@ static int dcmi_get_sensor_format(struct stm32_dcmi *dcmi,
}; };
int ret; int ret;
ret = v4l2_subdev_call(dcmi->entity.subdev, pad, get_fmt, NULL, &fmt); ret = v4l2_subdev_call(dcmi->entity.source, pad, get_fmt, NULL, &fmt);
if (ret) if (ret)
return ret; return ret;
...@@ -1020,7 +1020,7 @@ static int dcmi_set_sensor_format(struct stm32_dcmi *dcmi, ...@@ -1020,7 +1020,7 @@ static int dcmi_set_sensor_format(struct stm32_dcmi *dcmi,
} }
v4l2_fill_mbus_format(&format.format, pix, sd_fmt->mbus_code); v4l2_fill_mbus_format(&format.format, pix, sd_fmt->mbus_code);
ret = v4l2_subdev_call(dcmi->entity.subdev, pad, set_fmt, ret = v4l2_subdev_call(dcmi->entity.source, pad, set_fmt,
&pad_cfg, &format); &pad_cfg, &format);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -1043,7 +1043,7 @@ static int dcmi_get_sensor_bounds(struct stm32_dcmi *dcmi, ...@@ -1043,7 +1043,7 @@ static int dcmi_get_sensor_bounds(struct stm32_dcmi *dcmi,
/* /*
* Get sensor bounds first * Get sensor bounds first
*/ */
ret = v4l2_subdev_call(dcmi->entity.subdev, pad, get_selection, ret = v4l2_subdev_call(dcmi->entity.source, pad, get_selection,
NULL, &bounds); NULL, &bounds);
if (!ret) if (!ret)
*r = bounds.r; *r = bounds.r;
...@@ -1224,7 +1224,7 @@ static int dcmi_enum_framesizes(struct file *file, void *fh, ...@@ -1224,7 +1224,7 @@ static int dcmi_enum_framesizes(struct file *file, void *fh,
fse.code = sd_fmt->mbus_code; fse.code = sd_fmt->mbus_code;
ret = v4l2_subdev_call(dcmi->entity.subdev, pad, enum_frame_size, ret = v4l2_subdev_call(dcmi->entity.source, pad, enum_frame_size,
NULL, &fse); NULL, &fse);
if (ret) if (ret)
return ret; return ret;
...@@ -1241,7 +1241,7 @@ static int dcmi_g_parm(struct file *file, void *priv, ...@@ -1241,7 +1241,7 @@ static int dcmi_g_parm(struct file *file, void *priv,
{ {
struct stm32_dcmi *dcmi = video_drvdata(file); struct stm32_dcmi *dcmi = video_drvdata(file);
return v4l2_g_parm_cap(video_devdata(file), dcmi->entity.subdev, p); return v4l2_g_parm_cap(video_devdata(file), dcmi->entity.source, p);
} }
static int dcmi_s_parm(struct file *file, void *priv, static int dcmi_s_parm(struct file *file, void *priv,
...@@ -1249,7 +1249,7 @@ static int dcmi_s_parm(struct file *file, void *priv, ...@@ -1249,7 +1249,7 @@ static int dcmi_s_parm(struct file *file, void *priv,
{ {
struct stm32_dcmi *dcmi = video_drvdata(file); struct stm32_dcmi *dcmi = video_drvdata(file);
return v4l2_s_parm_cap(video_devdata(file), dcmi->entity.subdev, p); return v4l2_s_parm_cap(video_devdata(file), dcmi->entity.source, p);
} }
static int dcmi_enum_frameintervals(struct file *file, void *fh, static int dcmi_enum_frameintervals(struct file *file, void *fh,
...@@ -1271,7 +1271,7 @@ static int dcmi_enum_frameintervals(struct file *file, void *fh, ...@@ -1271,7 +1271,7 @@ static int dcmi_enum_frameintervals(struct file *file, void *fh,
fie.code = sd_fmt->mbus_code; fie.code = sd_fmt->mbus_code;
ret = v4l2_subdev_call(dcmi->entity.subdev, pad, ret = v4l2_subdev_call(dcmi->entity.source, pad,
enum_frame_interval, NULL, &fie); enum_frame_interval, NULL, &fie);
if (ret) if (ret)
return ret; return ret;
...@@ -1291,7 +1291,7 @@ MODULE_DEVICE_TABLE(of, stm32_dcmi_of_match); ...@@ -1291,7 +1291,7 @@ MODULE_DEVICE_TABLE(of, stm32_dcmi_of_match);
static int dcmi_open(struct file *file) static int dcmi_open(struct file *file)
{ {
struct stm32_dcmi *dcmi = video_drvdata(file); struct stm32_dcmi *dcmi = video_drvdata(file);
struct v4l2_subdev *sd = dcmi->entity.subdev; struct v4l2_subdev *sd = dcmi->entity.source;
int ret; int ret;
if (mutex_lock_interruptible(&dcmi->lock)) if (mutex_lock_interruptible(&dcmi->lock))
...@@ -1322,7 +1322,7 @@ static int dcmi_open(struct file *file) ...@@ -1322,7 +1322,7 @@ static int dcmi_open(struct file *file)
static int dcmi_release(struct file *file) static int dcmi_release(struct file *file)
{ {
struct stm32_dcmi *dcmi = video_drvdata(file); struct stm32_dcmi *dcmi = video_drvdata(file);
struct v4l2_subdev *sd = dcmi->entity.subdev; struct v4l2_subdev *sd = dcmi->entity.source;
bool fh_singular; bool fh_singular;
int ret; int ret;
...@@ -1433,7 +1433,7 @@ static int dcmi_formats_init(struct stm32_dcmi *dcmi) ...@@ -1433,7 +1433,7 @@ static int dcmi_formats_init(struct stm32_dcmi *dcmi)
{ {
const struct dcmi_format *sd_fmts[ARRAY_SIZE(dcmi_formats)]; const struct dcmi_format *sd_fmts[ARRAY_SIZE(dcmi_formats)];
unsigned int num_fmts = 0, i, j; unsigned int num_fmts = 0, i, j;
struct v4l2_subdev *subdev = dcmi->entity.subdev; struct v4l2_subdev *subdev = dcmi->entity.source;
struct v4l2_subdev_mbus_code_enum mbus_code = { struct v4l2_subdev_mbus_code_enum mbus_code = {
.which = V4L2_SUBDEV_FORMAT_ACTIVE, .which = V4L2_SUBDEV_FORMAT_ACTIVE,
}; };
...@@ -1479,7 +1479,7 @@ static int dcmi_formats_init(struct stm32_dcmi *dcmi) ...@@ -1479,7 +1479,7 @@ static int dcmi_formats_init(struct stm32_dcmi *dcmi)
static int dcmi_framesizes_init(struct stm32_dcmi *dcmi) static int dcmi_framesizes_init(struct stm32_dcmi *dcmi)
{ {
unsigned int num_fsize = 0; unsigned int num_fsize = 0;
struct v4l2_subdev *subdev = dcmi->entity.subdev; struct v4l2_subdev *subdev = dcmi->entity.source;
struct v4l2_subdev_frame_size_enum fse = { struct v4l2_subdev_frame_size_enum fse = {
.which = V4L2_SUBDEV_FORMAT_ACTIVE, .which = V4L2_SUBDEV_FORMAT_ACTIVE,
.code = dcmi->sd_format->mbus_code, .code = dcmi->sd_format->mbus_code,
...@@ -1526,7 +1526,7 @@ static int dcmi_graph_notify_complete(struct v4l2_async_notifier *notifier) ...@@ -1526,7 +1526,7 @@ static int dcmi_graph_notify_complete(struct v4l2_async_notifier *notifier)
struct stm32_dcmi *dcmi = notifier_to_dcmi(notifier); struct stm32_dcmi *dcmi = notifier_to_dcmi(notifier);
int ret; int ret;
dcmi->vdev->ctrl_handler = dcmi->entity.subdev->ctrl_handler; dcmi->vdev->ctrl_handler = dcmi->entity.source->ctrl_handler;
ret = dcmi_formats_init(dcmi); ret = dcmi_formats_init(dcmi);
if (ret) { if (ret) {
dev_err(dcmi->dev, "No supported mediabus format found\n"); dev_err(dcmi->dev, "No supported mediabus format found\n");
...@@ -1582,7 +1582,7 @@ static int dcmi_graph_notify_bound(struct v4l2_async_notifier *notifier, ...@@ -1582,7 +1582,7 @@ static int dcmi_graph_notify_bound(struct v4l2_async_notifier *notifier,
dev_dbg(dcmi->dev, "Subdev %s bound\n", subdev->name); dev_dbg(dcmi->dev, "Subdev %s bound\n", subdev->name);
dcmi->entity.subdev = subdev; dcmi->entity.source = subdev;
return 0; return 0;
} }
...@@ -1608,7 +1608,7 @@ static int dcmi_graph_parse(struct stm32_dcmi *dcmi, struct device_node *node) ...@@ -1608,7 +1608,7 @@ static int dcmi_graph_parse(struct stm32_dcmi *dcmi, struct device_node *node)
return -EINVAL; return -EINVAL;
/* Remote node to connect */ /* Remote node to connect */
dcmi->entity.node = remote; dcmi->entity.remote_node = remote;
dcmi->entity.asd.match_type = V4L2_ASYNC_MATCH_FWNODE; dcmi->entity.asd.match_type = V4L2_ASYNC_MATCH_FWNODE;
dcmi->entity.asd.match.fwnode = of_fwnode_handle(remote); dcmi->entity.asd.match.fwnode = of_fwnode_handle(remote);
return 0; return 0;
...@@ -1631,7 +1631,7 @@ static int dcmi_graph_init(struct stm32_dcmi *dcmi) ...@@ -1631,7 +1631,7 @@ static int dcmi_graph_init(struct stm32_dcmi *dcmi)
&dcmi->entity.asd); &dcmi->entity.asd);
if (ret) { if (ret) {
dev_err(dcmi->dev, "Failed to add subdev notifier\n"); dev_err(dcmi->dev, "Failed to add subdev notifier\n");
of_node_put(dcmi->entity.node); of_node_put(dcmi->entity.remote_node);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment