From: Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org>
To: Sakari Ailus <sakari.ailus-X3B1VOXEql0@public.gmane.org>
Cc: Ivaylo Dimitrov
<ivo.g.dimitrov.75-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
pali.rohar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
kernel list
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
linux-arm-kernel
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org,
khilman-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
aaro.koskinen-X3B1VOXEql0@public.gmane.org,
patrikbachan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org,
linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
mchehab-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
pawel.moll-5wv7dgnIgG8@public.gmane.org,
mark.rutland-5wv7dgnIgG8@public.gmane.org,
ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org,
galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] userspace API definitions for auto-focus coil
Date: Mon, 13 Jun 2016 21:17:53 +0200 [thread overview]
Message-ID: <20160613191753.GA17459@amd> (raw)
In-Reply-To: <20160612112253.GD26360-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
On Sun 2016-06-12 14:22:53, Sakari Ailus wrote:
> Hi Pavel,
>
> On Sun, Jun 12, 2016 at 10:48:11AM +0200, Pavel Machek wrote:
> > Hi!
> >
> > > > >Add userspace API definitions.
> > > > >
> > > > >Signed-off-by: Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org>
> > > > >
> > > > >diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
> > > > >index b6a357a..23011cc 100644
> > > > >--- a/include/uapi/linux/v4l2-controls.h
> > > > >+++ b/include/uapi/linux/v4l2-controls.h
> > > > >@@ -974,4 +975,9 @@ enum v4l2_detect_md_mode {
> > > > > #define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3)
> > > > > #define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4)
> > > > >
> > > > >+/* Control IDs specific to the AD5820 driver as defined by V4L2 */
> > > > >+#define V4L2_CID_FOCUS_AD5820_BASE (V4L2_CTRL_CLASS_CAMERA | 0x10af)
> > >
> > > Please check V4L2_CID_USER_*_BASE. That's how custom controls are handled
> > > nowadays.
> >
> > So something like this?
> >
> > Thanks,
> > Pavel
> >
> > diff --git a/drivers/media/i2c/ad5820.c b/drivers/media/i2c/ad5820.c
> > index 2efa5dc1..b04b471 100644
> > --- a/drivers/media/i2c/ad5820.c
> > +++ b/drivers/media/i2c/ad5820.c
> > @@ -40,6 +40,11 @@
> > #define AD5820_RAMP_MODE_LINEAR (0 << 3)
> > #define AD5820_RAMP_MODE_64_16 (1 << 3)
> >
> > +/* Control IDs specific to the AD5820 driver as defined by V4L2 */
> > +#define V4L2_CID_FOCUS_AD5820_RAMP_TIME (V4L2_CID_USER_AD5820_BASE+0)
> > +#define V4L2_CID_FOCUS_AD5820_RAMP_MODE (V4L2_CID_FOCUS_AD5820_BASE+1)
> > +
> > +
>
> We could still define these in a header file that can be included by the
> user space. Please use V4L2_CID_AD5820 prefix.
Not V4L2_CID_USER_AD5820...?
> A separate header file should be used,
> e.g. include/uapi/linux/ad5820.h.
Ok, separate header file for 2 lines seemed like a bit of overkill,
but why not.
Something like this?
commit 8dd701d2580e41b06bb2285e6bd59a4f1702b4d8
Author: Pavel <pavel-+ZI9xUNit7I@public.gmane.org>
Date: Mon Jun 13 21:17:15 2016 +0200
Userspace api, as Sakari asked.
diff --git a/drivers/media/i2c/ad5820.c b/drivers/media/i2c/ad5820.c
index 2efa5dc1..ed3facc 100644
--- a/drivers/media/i2c/ad5820.c
+++ b/drivers/media/i2c/ad5820.c
@@ -32,6 +32,8 @@
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
+#include <uapi/linux/ad5820.h>
+
#define AD5820_NAME "ad5820"
/* Register definitions */
@@ -40,6 +42,8 @@
#define AD5820_RAMP_MODE_LINEAR (0 << 3)
#define AD5820_RAMP_MODE_64_16 (1 << 3)
+
+
#define CODE_TO_RAMP_US(s) ((s) == 0 ? 0 : (1 << ((s) - 1)) * 50)
#define RAMP_US_TO_CODE(c) fls(((c) + ((c)>>1)) / 50)
@@ -165,13 +169,13 @@ static int ad5820_set_ctrl(struct v4l2_ctrl *ctrl)
coil->focus_absolute = ctrl->val;
return ad5820_update_hw(coil);
- case V4L2_CID_FOCUS_AD5820_RAMP_TIME:
+ case V4L2_CID_AD5820_RAMP_TIME:
code = RAMP_US_TO_CODE(ctrl->val);
ctrl->val = CODE_TO_RAMP_US(code);
coil->focus_ramp_time = ctrl->val;
break;
- case V4L2_CID_FOCUS_AD5820_RAMP_MODE:
+ case V4L2_CID_AD5820_RAMP_MODE:
coil->focus_ramp_mode = ctrl->val;
break;
}
@@ -191,7 +195,7 @@ static const char * const ad5820_focus_menu[] = {
static const struct v4l2_ctrl_config ad5820_ctrls[] = {
{
.ops = &ad5820_ctrl_ops,
- .id = V4L2_CID_FOCUS_AD5820_RAMP_TIME,
+ .id = V4L2_CID_AD5820_RAMP_TIME,
.type = V4L2_CTRL_TYPE_INTEGER,
.name = "Focus ramping time [us]",
.min = 0,
@@ -202,7 +206,7 @@ static const struct v4l2_ctrl_config ad5820_ctrls[] = {
},
{
.ops = &ad5820_ctrl_ops,
- .id = V4L2_CID_FOCUS_AD5820_RAMP_MODE,
+ .id = V4L2_CID_AD5820_RAMP_MODE,
.type = V4L2_CTRL_TYPE_MENU,
.name = "Focus ramping mode",
.min = 0,
diff --git a/include/uapi/linux/ad5820.h b/include/uapi/linux/ad5820.h
new file mode 100644
index 0000000..d44ba9c
--- /dev/null
+++ b/include/uapi/linux/ad5820.h
@@ -0,0 +1,18 @@
+/*
+ * AD5820 DAC driver for camera voice coil focus.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ */
+
+#ifndef __LINUX_AD5820_H
+#define __LINUX_AD5820_H
+
+#include <linux/v4l2-controls.h>
+
+/* Control IDs specific to the AD5820 driver as defined by V4L2 */
+#define V4L2_CID_AD5820_RAMP_TIME (V4L2_CID_AD5820_BASE+0)
+#define V4L2_CID_AD5820_RAMP_MODE (V4L2_CID_AD5820_BASE+1)
+
+#endif
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index 23011cc..015e90b 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -181,6 +181,10 @@ enum v4l2_colorfx {
* We reserve 16 controls for this driver. */
#define V4L2_CID_USER_TC358743_BASE (V4L2_CID_USER_BASE + 0x1080)
+/* The base for the ad5820 driver controls.
+ * We reserve 16 controls for this driver. */
+#define V4L2_CID_AD5820_BASE (V4L2_CID_USER_BASE + 0x1090)
+
/* MPEG-class control IDs */
/* The MPEG controls are applicable to all codec controls
* and the 'MPEG' part of the define is historical */
@@ -986,9 +990,4 @@ enum v4l2_detect_md_mode {
#define V4L2_CID_MODE_SENSITIVITY (V4L2_CID_MODE_CLASS_BASE+6)
#define V4L2_CID_MODE_OPSYSCLOCK (V4L2_CID_MODE_CLASS_BASE+7)
-/* Control IDs specific to the AD5820 driver as defined by V4L2 */
-#define V4L2_CID_FOCUS_AD5820_BASE (V4L2_CTRL_CLASS_CAMERA | 0x10af)
-#define V4L2_CID_FOCUS_AD5820_RAMP_TIME (V4L2_CID_FOCUS_AD5820_BASE+0)
-#define V4L2_CID_FOCUS_AD5820_RAMP_MODE (V4L2_CID_FOCUS_AD5820_BASE+1)
-
#endif
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-06-13 19:17 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <574049EF.2090208@gmail.com>
[not found] ` <20160524090433.GA1277@amd>
[not found] ` <20160524091746.GA14536@amd>
[not found] ` <20160525212659.GK26360@valkosipuli.retiisi.org.uk>
[not found] ` <20160527205140.GA26767@amd>
[not found] ` <20160531212222.GP26360@valkosipuli.retiisi.org.uk>
[not found] ` <20160531213437.GA28397@amd>
[not found] ` <20160601152439.GQ26360@valkosipuli.retiisi.org.uk>
[not found] ` <20160601220840.GA21946@amd>
[not found] ` <20160602074544.GR26360@valkosipuli.retiisi.org.uk>
[not found] ` <20160602074544.GR26360-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2016-06-02 19:30 ` [PATCH] device tree description for AD5820 camera auto-focus coil Pavel Machek
2016-06-02 21:27 ` Sakari Ailus
2016-06-03 6:19 ` Pavel Machek
[not found] ` <20160602212746.GT26360-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2016-06-05 19:07 ` [PATCH] userspace API definitions for " Pavel Machek
2016-06-06 6:06 ` Ivaylo Dimitrov
2016-06-06 7:21 ` Pavel Machek
[not found] ` <575512E5.5030000-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-06-11 22:06 ` Sakari Ailus
2016-06-12 7:54 ` Pavel Machek
2016-06-17 21:28 ` Sakari Ailus
2016-06-12 8:48 ` Pavel Machek
2016-06-12 11:22 ` Sakari Ailus
[not found] ` <20160612112253.GD26360-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2016-06-13 19:17 ` Pavel Machek [this message]
2016-06-17 21:35 ` Sakari Ailus
2016-06-18 15:37 ` [PATCHv4] support for AD5820 camera " Pavel Machek
2016-06-18 15:38 ` [PATCH] userspace API definitions for " Pavel Machek
2016-07-12 23:32 ` Mauro Carvalho Chehab
2016-07-13 6:57 ` Pavel Machek
2016-07-13 7:26 ` Pavel Machek
2016-06-06 13:29 ` [PATCH] device tree description for AD5820 camera " Rob Herring
2016-06-07 7:10 ` [PATCHv2] " Pavel Machek
2016-06-09 22:37 ` Sakari Ailus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160613191753.GA17459@amd \
--to=pavel-+zi9xunit7i@public.gmane.org \
--cc=aaro.koskinen-X3B1VOXEql0@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
--cc=ivo.g.dimitrov.75-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=khilman-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=mchehab-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org \
--cc=pali.rohar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=patrikbachan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=sakari.ailus-X3B1VOXEql0@public.gmane.org \
--cc=serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org \
--cc=sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).