[media] media: Add new SDR formats PC16, PC18 & PC20
authorRamesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
Mon, 12 Jun 2017 13:26:16 +0000 (10:26 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Tue, 20 Jun 2017 10:03:58 +0000 (07:03 -0300)
This patch adds support for the three new SDR formats. These formats
were prefixed with "planar" indicating I & Q data are not interleaved
as in other formats. Here, I & Q data constitutes the top half and bottom
half of the received buffer respectively.

V4L2_SDR_FMT_PCU16BE - 14-bit complex (I & Q) unsigned big-endian sample
inside 16-bit. V4L2 FourCC: PC16

V4L2_SDR_FMT_PCU18BE - 16-bit complex (I & Q) unsigned big-endian sample
inside 18-bit. V4L2 FourCC: PC18

V4L2_SDR_FMT_PCU20BE - 18-bit complex (I & Q) unsigned big-endian sample
inside 20-bit. V4L2 FourCC: PC20

Signed-off-by: Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
Signed-off-by: Hans Verkuil <hansverk@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/v4l2-core/v4l2-ioctl.c
include/uapi/linux/videodev2.h

index 4f27cfa..ce40183 100644 (file)
@@ -1229,6 +1229,9 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
        case V4L2_SDR_FMT_CS8:          descr = "Complex S8"; break;
        case V4L2_SDR_FMT_CS14LE:       descr = "Complex S14LE"; break;
        case V4L2_SDR_FMT_RU12LE:       descr = "Real U12LE"; break;
+       case V4L2_SDR_FMT_PCU16BE:      descr = "Planar Complex U16BE"; break;
+       case V4L2_SDR_FMT_PCU18BE:      descr = "Planar Complex U18BE"; break;
+       case V4L2_SDR_FMT_PCU20BE:      descr = "Planar Complex U20BE"; break;
        case V4L2_TCH_FMT_DELTA_TD16:   descr = "16-bit signed deltas"; break;
        case V4L2_TCH_FMT_DELTA_TD08:   descr = "8-bit signed deltas"; break;
        case V4L2_TCH_FMT_TU16:         descr = "16-bit unsigned touch data"; break;
index 2b8feb8..45cf735 100644 (file)
@@ -669,6 +669,9 @@ struct v4l2_pix_format {
 #define V4L2_SDR_FMT_CS8          v4l2_fourcc('C', 'S', '0', '8') /* complex s8 */
 #define V4L2_SDR_FMT_CS14LE       v4l2_fourcc('C', 'S', '1', '4') /* complex s14le */
 #define V4L2_SDR_FMT_RU12LE       v4l2_fourcc('R', 'U', '1', '2') /* real u12le */
+#define V4L2_SDR_FMT_PCU16BE     v4l2_fourcc('P', 'C', '1', '6') /* planar complex u16be */
+#define V4L2_SDR_FMT_PCU18BE     v4l2_fourcc('P', 'C', '1', '8') /* planar complex u18be */
+#define V4L2_SDR_FMT_PCU20BE     v4l2_fourcc('P', 'C', '2', '0') /* planar complex u20be */
 
 /* Touch formats - used for Touch devices */
 #define V4L2_TCH_FMT_DELTA_TD16        v4l2_fourcc('T', 'D', '1', '6') /* 16-bit signed deltas */