Commit 5461e079 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'media/v6.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

Pull media fixes from Mauro Carvalho Chehab:

 - A regression at V4L2 core breaking string controls

 - Build warning fixes on sun6i drivers when building with clang

* tag 'media/v6.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
  media: sun6i-isp: params: Unregister pending buffer on cleanup
  media: sun6i-isp: params: Fix incorrect indentation
  media: sun6i-isp: capture: Fix uninitialized variable use
  media: sun6i-isp: proc: Declare subdev ops as static
  media: sun6i-isp: proc: Error out on invalid port to fix warning
  media: sun6i-isp: proc: Fix return code handling in stream off path
  media: sun8i-a83t-mipi-csi2: Clarify return code handling in stream off path
  media: sun6i-mipi-csi2: Clarify return code handling in stream off path
  media: sun6i-csi: capture: Remove useless ret initialization
  media: sun6i-csi: bridge: Error out on invalid port to fix warning
  media: v4l2-ctrls-api.c: add back dropped ctrl->is_new = 1
parents 7a693ea7 542d3c03
...@@ -663,7 +663,7 @@ sun6i_csi_bridge_notifier_bound(struct v4l2_async_notifier *notifier, ...@@ -663,7 +663,7 @@ sun6i_csi_bridge_notifier_bound(struct v4l2_async_notifier *notifier,
enabled = !bridge->source_parallel.expected; enabled = !bridge->source_parallel.expected;
break; break;
default: default:
break; return -EINVAL;
} }
source->subdev = remote_subdev; source->subdev = remote_subdev;
......
...@@ -832,7 +832,7 @@ static int sun6i_csi_capture_open(struct file *file) ...@@ -832,7 +832,7 @@ static int sun6i_csi_capture_open(struct file *file)
{ {
struct sun6i_csi_device *csi_dev = video_drvdata(file); struct sun6i_csi_device *csi_dev = video_drvdata(file);
struct sun6i_csi_capture *capture = &csi_dev->capture; struct sun6i_csi_capture *capture = &csi_dev->capture;
int ret = 0; int ret;
if (mutex_lock_interruptible(&capture->lock)) if (mutex_lock_interruptible(&capture->lock))
return -ERESTARTSYS; return -ERESTARTSYS;
......
...@@ -188,7 +188,8 @@ static int sun6i_mipi_csi2_s_stream(struct v4l2_subdev *subdev, int on) ...@@ -188,7 +188,8 @@ static int sun6i_mipi_csi2_s_stream(struct v4l2_subdev *subdev, int on)
return -ENODEV; return -ENODEV;
if (!on) { if (!on) {
ret = v4l2_subdev_call(source_subdev, video, s_stream, 0); v4l2_subdev_call(source_subdev, video, s_stream, 0);
ret = 0;
goto disable; goto disable;
} }
...@@ -280,8 +281,6 @@ static int sun6i_mipi_csi2_s_stream(struct v4l2_subdev *subdev, int on) ...@@ -280,8 +281,6 @@ static int sun6i_mipi_csi2_s_stream(struct v4l2_subdev *subdev, int on)
return 0; return 0;
disable: disable:
if (!on)
ret = 0;
phy_power_off(dphy); phy_power_off(dphy);
sun6i_mipi_csi2_disable(csi2_dev); sun6i_mipi_csi2_disable(csi2_dev);
......
...@@ -220,7 +220,8 @@ static int sun8i_a83t_mipi_csi2_s_stream(struct v4l2_subdev *subdev, int on) ...@@ -220,7 +220,8 @@ static int sun8i_a83t_mipi_csi2_s_stream(struct v4l2_subdev *subdev, int on)
return -ENODEV; return -ENODEV;
if (!on) { if (!on) {
ret = v4l2_subdev_call(source_subdev, video, s_stream, 0); v4l2_subdev_call(source_subdev, video, s_stream, 0);
ret = 0;
goto disable; goto disable;
} }
...@@ -312,8 +313,6 @@ static int sun8i_a83t_mipi_csi2_s_stream(struct v4l2_subdev *subdev, int on) ...@@ -312,8 +313,6 @@ static int sun8i_a83t_mipi_csi2_s_stream(struct v4l2_subdev *subdev, int on)
return 0; return 0;
disable: disable:
if (!on)
ret = 0;
phy_power_off(dphy); phy_power_off(dphy);
sun8i_a83t_mipi_csi2_disable(csi2_dev); sun8i_a83t_mipi_csi2_disable(csi2_dev);
......
...@@ -150,6 +150,7 @@ static int user_to_new(struct v4l2_ext_control *c, struct v4l2_ctrl *ctrl) ...@@ -150,6 +150,7 @@ static int user_to_new(struct v4l2_ext_control *c, struct v4l2_ctrl *ctrl)
* then return an error. * then return an error.
*/ */
if (strlen(ctrl->p_new.p_char) == ctrl->maximum && last) if (strlen(ctrl->p_new.p_char) == ctrl->maximum && last)
ctrl->is_new = 1;
return -ERANGE; return -ERANGE;
} }
return ret; return ret;
......
...@@ -108,8 +108,8 @@ sun6i_isp_capture_buffer_configure(struct sun6i_isp_device *isp_dev, ...@@ -108,8 +108,8 @@ sun6i_isp_capture_buffer_configure(struct sun6i_isp_device *isp_dev,
void sun6i_isp_capture_configure(struct sun6i_isp_device *isp_dev) void sun6i_isp_capture_configure(struct sun6i_isp_device *isp_dev)
{ {
unsigned int width, height; unsigned int width, height;
unsigned int stride_luma, stride_chroma = 0; unsigned int stride_luma, stride_chroma;
unsigned int stride_luma_div4, stride_chroma_div4; unsigned int stride_luma_div4, stride_chroma_div4 = 0;
const struct sun6i_isp_capture_format *format; const struct sun6i_isp_capture_format *format;
const struct v4l2_format_info *info; const struct v4l2_format_info *info;
u32 pixelformat; u32 pixelformat;
......
...@@ -183,8 +183,8 @@ void sun6i_isp_params_configure(struct sun6i_isp_device *isp_dev) ...@@ -183,8 +183,8 @@ void sun6i_isp_params_configure(struct sun6i_isp_device *isp_dev)
if (state->configured) if (state->configured)
goto complete; goto complete;
sun6i_isp_params_configure_modules(isp_dev, sun6i_isp_params_configure_modules(isp_dev,
&sun6i_isp_params_config_default); &sun6i_isp_params_config_default);
state->configured = true; state->configured = true;
...@@ -208,6 +208,8 @@ static void sun6i_isp_params_state_cleanup(struct sun6i_isp_device *isp_dev, ...@@ -208,6 +208,8 @@ static void sun6i_isp_params_state_cleanup(struct sun6i_isp_device *isp_dev,
vb2_buffer = &state->pending->v4l2_buffer.vb2_buf; vb2_buffer = &state->pending->v4l2_buffer.vb2_buf;
vb2_buffer_done(vb2_buffer, error ? VB2_BUF_STATE_ERROR : vb2_buffer_done(vb2_buffer, error ? VB2_BUF_STATE_ERROR :
VB2_BUF_STATE_QUEUED); VB2_BUF_STATE_QUEUED);
state->pending = NULL;
} }
list_for_each_entry(isp_buffer, &state->queue, list) { list_for_each_entry(isp_buffer, &state->queue, list) {
......
...@@ -173,8 +173,7 @@ static int sun6i_isp_proc_s_stream(struct v4l2_subdev *subdev, int on) ...@@ -173,8 +173,7 @@ static int sun6i_isp_proc_s_stream(struct v4l2_subdev *subdev, int on)
struct sun6i_isp_proc_source *source; struct sun6i_isp_proc_source *source;
struct v4l2_subdev *source_subdev; struct v4l2_subdev *source_subdev;
struct media_pad *remote_pad; struct media_pad *remote_pad;
/* Initialize to 0 to use both in disable label (ret != 0) and off. */ int ret;
int ret = 0;
/* Source */ /* Source */
...@@ -195,6 +194,7 @@ static int sun6i_isp_proc_s_stream(struct v4l2_subdev *subdev, int on) ...@@ -195,6 +194,7 @@ static int sun6i_isp_proc_s_stream(struct v4l2_subdev *subdev, int on)
if (!on) { if (!on) {
sun6i_isp_proc_irq_disable(isp_dev); sun6i_isp_proc_irq_disable(isp_dev);
v4l2_subdev_call(source_subdev, video, s_stream, 0); v4l2_subdev_call(source_subdev, video, s_stream, 0);
ret = 0;
goto disable; goto disable;
} }
...@@ -342,7 +342,7 @@ static const struct v4l2_subdev_pad_ops sun6i_isp_proc_pad_ops = { ...@@ -342,7 +342,7 @@ static const struct v4l2_subdev_pad_ops sun6i_isp_proc_pad_ops = {
.set_fmt = sun6i_isp_proc_set_fmt, .set_fmt = sun6i_isp_proc_set_fmt,
}; };
const struct v4l2_subdev_ops sun6i_isp_proc_subdev_ops = { static const struct v4l2_subdev_ops sun6i_isp_proc_subdev_ops = {
.video = &sun6i_isp_proc_video_ops, .video = &sun6i_isp_proc_video_ops,
.pad = &sun6i_isp_proc_pad_ops, .pad = &sun6i_isp_proc_pad_ops,
}; };
...@@ -416,7 +416,7 @@ static int sun6i_isp_proc_notifier_bound(struct v4l2_async_notifier *notifier, ...@@ -416,7 +416,7 @@ static int sun6i_isp_proc_notifier_bound(struct v4l2_async_notifier *notifier,
enabled = !proc->source_csi0.expected; enabled = !proc->source_csi0.expected;
break; break;
default: default:
break; return -EINVAL;
} }
source->subdev = remote_subdev; source->subdev = remote_subdev;
......
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