Hi Sylwester and Heungjun, On Sunday 04 December 2011 16:16:13 Sylwester Nawrocki wrote: > From: Heungjun Kim <riverful.kim@xxxxxxxxxxx> > > The V4L2_CID_FOCUS_AUTO control has been converted from boolean type, > where control's value 0 and 1 were corresponding to manual and automatic > focus respectively, to menu type with following menu items: > 0 - V4L2_FOCUS_MANUAL, > 1 - V4L2_FOCUS_AUTO, > 2 - V4L2_FOCUS_AUTO_MACRO, > 3 - V4L2_FOCUS_AUTO_CONTINUOUS. > > According to this change the uvc control mappings are modified to retain > original sematics, where 0 corresponds to manual and 1 to auto focus. UVC auto-focus works in continuous mode, not single-shot mode. As the existing V4L2_CID_FOCUS_AUTO uses 0 to mean manual focus and 1 to mean continuous auto- focus, shouldn't this patch set define the following values instead ? 0 - V4L2_FOCUS_MANUAL 1 - V4L2_FOCUS_AUTO 2 - V4L2_FOCUS_AUTO_MACRO 3 - V4L2_FOCUS_AUTO_SINGLE_SHOT V4L2_FOCUS_AUTO_SINGLE_SHOT could also be named V4L2_FOCUS_SINGLE_SHOT. > Signed-off-by: Heungjun Kim <riverful.kim@xxxxxxxxxxx> > Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> > Signed-off-by: Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx> > > --- > The V4L2_CID_FOCUS_AUTO control in V4L2_FOCUS_AUTO mode does only > a one-shot auto focus, when switched from V4L2_FOCUS_MANUAL. > It might be worth to implement also the V4L2_CID_DO_AUTO_FOCUS button > control in uvc, however I didn't take time yet to better understand > the driver and add this. I also don't have any uvc hardware to test > this patch so it's just compile tested. > --- > drivers/media/video/uvc/uvc_ctrl.c | 9 ++++++++- > 1 files changed, 8 insertions(+), 1 deletions(-) > > diff --git a/drivers/media/video/uvc/uvc_ctrl.c > b/drivers/media/video/uvc/uvc_ctrl.c index 254d326..6860ca1 100644 > --- a/drivers/media/video/uvc/uvc_ctrl.c > +++ b/drivers/media/video/uvc/uvc_ctrl.c > @@ -365,6 +365,11 @@ static struct uvc_menu_info exposure_auto_controls[] = > { { 8, "Aperture Priority Mode" }, > }; > > +static struct uvc_menu_info focus_auto_controls[] = { > + { 0, "Manual Mode" }, > + { 1, "Auto Mode" }, > +}; > + > static __s32 uvc_ctrl_get_zoom(struct uvc_control_mapping *mapping, > __u8 query, const __u8 *data) > { > @@ -592,8 +597,10 @@ static struct uvc_control_mapping uvc_ctrl_mappings[] > = { .selector = UVC_CT_FOCUS_AUTO_CONTROL, > .size = 1, > .offset = 0, > - .v4l2_type = V4L2_CTRL_TYPE_BOOLEAN, > + .v4l2_type = V4L2_CTRL_TYPE_MENU, > .data_type = UVC_CTRL_DATA_TYPE_BOOLEAN, > + .menu_info = focus_auto_controls, > + .menu_count = ARRAY_SIZE(focus_auto_controls), > }, > { > .id = V4L2_CID_IRIS_ABSOLUTE, -- 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