Hi Hans, Thanks for the patch. On Sunday 25 March 2012 13:56:50 Hans de Goede wrote: > This allows v4l2 control UI-s to update the inactive state (ie grey-ing > out of controls) for slave controls when the master control changes. > > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > drivers/media/video/uvc/uvc_ctrl.c | 55 +++++++++++++++++++++++++++++++-- > 1 file changed, 52 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/video/uvc/uvc_ctrl.c > b/drivers/media/video/uvc/uvc_ctrl.c index 91d9007..2d06fd8 100644 > --- a/drivers/media/video/uvc/uvc_ctrl.c > +++ b/drivers/media/video/uvc/uvc_ctrl.c [snip] > +static void uvc_ctrl_send_events(struct uvc_fh *handle, > + struct v4l2_ext_control *xctrls, int xctrls_count) > +{ > + struct uvc_control_mapping *mapping; > + struct uvc_control *ctrl; > + u32 changes = V4L2_EVENT_CTRL_CH_VALUE; > + int i, j; > + > for (i = 0; i < xctrls_count; ++i) { > ctrl = uvc_find_control(handle->chain, xctrls[i].id, &mapping); > + > + for (j = 0; j < ARRAY_SIZE(mapping->slave_ids); ++j) { > + if (!mapping->slave_ids[j]) > + break; > + uvc_ctrl_send_slave_event(handle, > + mapping->slave_ids[j], > + xctrls, xctrls_count); > + } > + > + /* > + * If the master is being modified in the same transaction > + * flags may change too. > + */ > + if (mapping->master_id) > + for (j = 0; j < xctrls_count; j++) > + if (xctrls[j].id == mapping->master_id) { > + changes |= V4L2_EVENT_CTRL_CH_FLAGS; Should you verify that the modification to the master control actually caused a slave control flags change, or would that be overkill ? > + break; > + } Could you please put brackets around the for and the if ? > + > uvc_ctrl_send_event(handle, ctrl, mapping, xctrls[i].value, > - V4L2_EVENT_CTRL_CH_VALUE); > + changes); > } > } -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html