From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans Verkuil Subject: Re: [PATCH v2 2/8] [media] Add signed 16-bit pixel format Date: Fri, 27 May 2016 14:38:41 +0200 Message-ID: <57483FD1.9080704@xs4all.nl> References: <1462381638-7818-1-git-send-email-nick.dyer@itdev.co.uk> <1462381638-7818-3-git-send-email-nick.dyer@itdev.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1462381638-7818-3-git-send-email-nick.dyer@itdev.co.uk> Sender: linux-kernel-owner@vger.kernel.org To: Nick Dyer , Dmitry Torokhov Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Benjamin Tissoires , Benson Leung , Alan Bowens , Javier Martinez Canillas , Chris Healy , Henrik Rydberg , Andrew Duggan , James Chen , Dudley Du , Andrew de los Reyes , sheckylin@chromium.org, Peter Hutterer , Florian Echtler , mchehab@osg.samsung.com List-Id: linux-input@vger.kernel.org On 05/04/2016 07:07 PM, Nick Dyer wrote: > This will be used for output of raw touch data. > > Signed-off-by: Nick Dyer > --- > Documentation/DocBook/media/v4l/pixfmt-ys16.xml | 79 +++++++++++++++++++++++++ > Documentation/DocBook/media/v4l/pixfmt.xml | 1 + > drivers/media/v4l2-core/v4l2-ioctl.c | 1 + > include/uapi/linux/videodev2.h | 1 + > 4 files changed, 82 insertions(+) > create mode 100644 Documentation/DocBook/media/v4l/pixfmt-ys16.xml > > diff --git a/Documentation/DocBook/media/v4l/pixfmt-ys16.xml b/Documentation/DocBook/media/v4l/pixfmt-ys16.xml > new file mode 100644 > index 0000000..f92d65e > --- /dev/null > +++ b/Documentation/DocBook/media/v4l/pixfmt-ys16.xml > @@ -0,0 +1,79 @@ > + > + > + V4L2_PIX_FMT_YS16 ('YS16') > + &manvol; > + > + > + V4L2_PIX_FMT_YS16 > + Grey-scale image > + > + > + Description > + > + This is a signed grey-scale image with a depth of 16 bits per > +pixel. The most significant byte is stored at higher memory addresses > +(little-endian). I'm not sure this should be described in terms of grey-scale, since negative values make no sense for that. How are these values supposed to be interpreted if you want to display them? -32768 == black and 32767 is white? Regards, Hans > + > + > + <constant>V4L2_PIX_FMT_YS16</constant> 4 × 4 > +pixel image > + > + > + Byte Order. > + Each cell is one byte. > + > + > + > + > + > + start + 0: > + Y'00low > + Y'00high > + Y'01low > + Y'01high > + Y'02low > + Y'02high > + Y'03low > + Y'03high > + > + > + start + 8: > + Y'10low > + Y'10high > + Y'11low > + Y'11high > + Y'12low > + Y'12high > + Y'13low > + Y'13high > + > + > + start + 16: > + Y'20low > + Y'20high > + Y'21low > + Y'21high > + Y'22low > + Y'22high > + Y'23low > + Y'23high > + > + > + start + 24: > + Y'30low > + Y'30high > + Y'31low > + Y'31high > + Y'32low > + Y'32high > + Y'33low > + Y'33high > + > + > + > + > + > + > + > + > + > diff --git a/Documentation/DocBook/media/v4l/pixfmt.xml b/Documentation/DocBook/media/v4l/pixfmt.xml > index d871245..6f7aa0e 100644 > --- a/Documentation/DocBook/media/v4l/pixfmt.xml > +++ b/Documentation/DocBook/media/v4l/pixfmt.xml > @@ -1619,6 +1619,7 @@ information. > &sub-y12; > &sub-y10b; > &sub-y16; > + &sub-ys16; > &sub-y16-be; > &sub-uv8; > &sub-yuyv; > diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c > index 8a018c6..c7dabaa 100644 > --- a/drivers/media/v4l2-core/v4l2-ioctl.c > +++ b/drivers/media/v4l2-core/v4l2-ioctl.c > @@ -1154,6 +1154,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) > case V4L2_PIX_FMT_Y10: descr = "10-bit Greyscale"; break; > case V4L2_PIX_FMT_Y12: descr = "12-bit Greyscale"; break; > case V4L2_PIX_FMT_Y16: descr = "16-bit Greyscale"; break; > + case V4L2_PIX_FMT_YS16: descr = "16-bit Greyscale (Signed)"; break; > case V4L2_PIX_FMT_Y16_BE: descr = "16-bit Greyscale BE"; break; > case V4L2_PIX_FMT_Y10BPACK: descr = "10-bit Greyscale (Packed)"; break; > case V4L2_PIX_FMT_PAL8: descr = "8-bit Palette"; break; > diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h > index 14cd5eb..ab577dd 100644 > --- a/include/uapi/linux/videodev2.h > +++ b/include/uapi/linux/videodev2.h > @@ -496,6 +496,7 @@ struct v4l2_pix_format { > #define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */ > #define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ > #define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ') /* 16 Greyscale BE */ > +#define V4L2_PIX_FMT_YS16 v4l2_fourcc('Y', 'S', '1', '6') /* signed 16-bit Greyscale */ > > /* Grey bit-packed formats */ > #define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */ >