linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] media: v4l2-ctrls: add control for test pattern
@ 2012-09-03  9:16 Prabhakar Lad
  2012-09-03  9:22 ` Hans Verkuil
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Prabhakar Lad @ 2012-09-03  9:16 UTC (permalink / raw)
  To: LMML
  Cc: dlos, linux-kernel, Manjunath Hadli, Laurent Pinchart, linux-doc,
	Lad, Prabhakar, Sakari Ailus, Hans Verkuil,
	Mauro Carvalho Chehab, Sylwester Nawrocki, Hans de Goede,
	Kyungmin Park, Rob Landley, HeungJun Kim

From: Lad, Prabhakar <prabhakar.lad@ti.com>

add V4L2_CID_TEST_PATTERN of type menu, which determines
the internal test pattern selected by the device.

Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
Cc: Sakari Ailus <sakari.ailus@iki.fi>
Cc: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Rob Landley <rob@landley.net>
Cc: HeungJun Kim <riverful.kim@samsung.com>
Cc: Rob Landley <rob@landley.net>
---
 This patches has one checkpatch warning for line over
 80 characters altough it can be avoided I have kept it
 for consistency.

 Documentation/DocBook/media/v4l/controls.xml |   52 ++++++++++++++++++++++++++
 drivers/media/v4l2-core/v4l2-ctrls.c         |   16 ++++++++
 include/linux/videodev2.h                    |   12 ++++++
 3 files changed, 80 insertions(+), 0 deletions(-)

diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
index f704218..06f16e7 100644
--- a/Documentation/DocBook/media/v4l/controls.xml
+++ b/Documentation/DocBook/media/v4l/controls.xml
@@ -4313,6 +4313,58 @@ interface and may change in the future.</para>
 	      </tbody>
 	    </entrytbl>
 	  </row>
+	  <row>
+	    <entry spanname="id"><constant>V4L2_CID_TEST_PATTERN</constant></entry>
+	    <entry>menu</entry>
+	  </row>
+	  <row id="v4l2-test-pattern">
+	    <entry spanname="descr"> The capture devices/sensors have the capability to
+	    generate internal test patterns. This test patterns are used to test a device
+	    is properly working and can generate the desired waveforms that it supports.
+	    </entry>
+	  </row>
+	  <row>
+	    <entrytbl spanname="descr" cols="2">
+	      <tbody valign="top">
+	        <row>
+	         <entry><constant>V4L2_TEST_PATTERN_DISABLED</constant></entry>
+	          <entry>Test pattern generation is disabled</entry>
+	        </row>
+	        <row>
+	          <entry><constant>V4L2_TEST_PATTERN_VERTICAL_LINES</constant></entry>
+	          <entry>Generate vertical lines as test pattern</entry>
+	        </row>
+	        <row>
+	          <entry><constant>V4L2_TEST_PATTERN_HORIZONTAL_LINES</constant></entry>
+	          <entry>Generate horizontal lines as test pattern</entry>
+	        </row>
+	        <row>
+	          <entry><constant>V4L2_TEST_PATTERN_DIAGONAL_LINES</constant></entry>
+	          <entry>Generate diagonal lines as test pattern</entry>
+	        </row>
+	        <row>
+	          <entry><constant>V4L2_TEST_PATTERN_SOLID_BLACK</constant></entry>
+	          <entry>Generate solid black color as test pattern</entry>
+	        </row>
+	        <row>
+	          <entry><constant>V4L2_TEST_PATTERN_SOLID_WHITE</constant></entry>
+	          <entry>Generate solid white color as test pattern</entry>
+	        </row>
+	        <row>
+	          <entry><constant>V4L2_TEST_PATTERN_SOLID_BLUE</constant></entry>
+	          <entry>Generate solid blue color as test pattern</entry>
+	        </row>
+	        <row>
+	          <entry><constant>V4L2_TEST_PATTERN_SOLID_RED</constant></entry>
+	          <entry>Generate solid red color as test pattern</entry>
+	        </row>
+	        <row>
+	          <entry><constant>V4L2_TEST_PATTERN_CHECKER_BOARD</constant></entry>
+	          <entry>Generate a checker board as test pattern</entry>
+	        </row>
+	      </tbody>
+	    </entrytbl>
+	  </row>
 	<row><entry></entry></row>
 	</tbody>
       </tgroup>
diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c
index 2d7bc15..ae709d1 100644
--- a/drivers/media/v4l2-core/v4l2-ctrls.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls.c
@@ -430,6 +430,18 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
 		"Advanced Predictor",
 		NULL,
 	};
+	static const char * const test_pattern[] = {
+		"Test Pattern Disabled",
+		"Vertical Lines",
+		"Horizontal Lines",
+		"Diagonal Lines",
+		"Solid Black",
+		"Solid White",
+		"Solid Blue",
+		"Solid Red",
+		"Checker Board",
+		NULL,
+	};
 
 	switch (id) {
 	case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
@@ -509,6 +521,8 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
 		return jpeg_chroma_subsampling;
 	case V4L2_CID_DPCM_PREDICTOR:
 		return dpcm_predictor;
+	case V4L2_CID_TEST_PATTERN:
+		return test_pattern;
 
 	default:
 		return NULL;
@@ -740,6 +754,7 @@ const char *v4l2_ctrl_get_name(u32 id)
 	case V4L2_CID_LINK_FREQ:		return "Link Frequency";
 	case V4L2_CID_PIXEL_RATE:		return "Pixel Rate";
 	case V4L2_CID_DPCM_PREDICTOR:		return "DPCM Predictor";
+	case V4L2_CID_TEST_PATTERN:		return "Test Pattern";
 
 	default:
 		return NULL;
@@ -841,6 +856,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
 	case V4L2_CID_EXPOSURE_METERING:
 	case V4L2_CID_SCENE_MODE:
 	case V4L2_CID_DPCM_PREDICTOR:
+	case V4L2_CID_TEST_PATTERN:
 		*type = V4L2_CTRL_TYPE_MENU;
 		break;
 	case V4L2_CID_LINK_FREQ:
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index ca9fb78..1796079 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -2005,6 +2005,18 @@ enum v4l2_dpcm_predictor {
 	V4L2_DPCM_PREDICTOR_SIMPLE	= 0,
 	V4L2_DPCM_PREDICTOR_ADVANCED	= 1,
 };
+#define V4L2_CID_TEST_PATTERN			(V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)
+enum v4l2_test_pattern {
+	V4L2_TEST_PATTERN_DISABLED		= 0,
+	V4L2_TEST_PATTERN_VERTICAL_LINES	= 1,
+	V4L2_TEST_PATTERN_HORIZONTAL_LINES	= 2,
+	V4L2_TEST_PATTERN_DIAGONAL_LINES	= 3,
+	V4L2_TEST_PATTERN_SOLID_BLACK		= 4,
+	V4L2_TEST_PATTERN_SOLID_WHITE		= 5,
+	V4L2_TEST_PATTERN_SOLID_BLUE		= 6,
+	V4L2_TEST_PATTERN_SOLID_RED		= 7,
+	V4L2_TEST_PATTERN_CHECKER_BOARD		= 8,
+};
 
 /*
  *	T U N I N G
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] media: v4l2-ctrls: add control for test pattern
  2012-09-03  9:16 [PATCH] media: v4l2-ctrls: add control for test pattern Prabhakar Lad
@ 2012-09-03  9:22 ` Hans Verkuil
  2012-09-03  9:46   ` Prabhakar Lad
  2012-09-03  9:25 ` Sylwester Nawrocki
  2012-09-03 19:39 ` Sakari Ailus
  2 siblings, 1 reply; 7+ messages in thread
From: Hans Verkuil @ 2012-09-03  9:22 UTC (permalink / raw)
  To: Prabhakar Lad
  Cc: LMML, dlos, linux-kernel, Manjunath Hadli, Laurent Pinchart,
	linux-doc, Sakari Ailus, Hans Verkuil, Mauro Carvalho Chehab,
	Sylwester Nawrocki, Hans de Goede, Kyungmin Park, Rob Landley,
	HeungJun Kim

On Mon September 3 2012 11:16:17 Prabhakar Lad wrote:
> From: Lad, Prabhakar <prabhakar.lad@ti.com>
> 
> add V4L2_CID_TEST_PATTERN of type menu, which determines
> the internal test pattern selected by the device.
> 
> Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
> Cc: Sakari Ailus <sakari.ailus@iki.fi>
> Cc: Hans Verkuil <hans.verkuil@cisco.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
> Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Rob Landley <rob@landley.net>
> Cc: HeungJun Kim <riverful.kim@samsung.com>
> Cc: Rob Landley <rob@landley.net>
> ---
>  This patches has one checkpatch warning for line over
>  80 characters altough it can be avoided I have kept it
>  for consistency.
> 
>  Documentation/DocBook/media/v4l/controls.xml |   52 ++++++++++++++++++++++++++
>  drivers/media/v4l2-core/v4l2-ctrls.c         |   16 ++++++++
>  include/linux/videodev2.h                    |   12 ++++++
>  3 files changed, 80 insertions(+), 0 deletions(-)
> 
> diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
> index f704218..06f16e7 100644
> --- a/Documentation/DocBook/media/v4l/controls.xml
> +++ b/Documentation/DocBook/media/v4l/controls.xml
> @@ -4313,6 +4313,58 @@ interface and may change in the future.</para>
>  	      </tbody>
>  	    </entrytbl>
>  	  </row>
> +	  <row>
> +	    <entry spanname="id"><constant>V4L2_CID_TEST_PATTERN</constant></entry>
> +	    <entry>menu</entry>
> +	  </row>
> +	  <row id="v4l2-test-pattern">
> +	    <entry spanname="descr"> The capture devices/sensors have the capability to

Test patterns are also applicable to output devices, not just capture and sensor devices.

> +	    generate internal test patterns. This test patterns are used to test a device
> +	    is properly working and can generate the desired waveforms that it supports.
> +	    </entry>
> +	  </row>
> +	  <row>
> +	    <entrytbl spanname="descr" cols="2">
> +	      <tbody valign="top">
> +	        <row>
> +	         <entry><constant>V4L2_TEST_PATTERN_DISABLED</constant></entry>
> +	          <entry>Test pattern generation is disabled</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_VERTICAL_LINES</constant></entry>
> +	          <entry>Generate vertical lines as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_HORIZONTAL_LINES</constant></entry>
> +	          <entry>Generate horizontal lines as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_DIAGONAL_LINES</constant></entry>
> +	          <entry>Generate diagonal lines as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_BLACK</constant></entry>
> +	          <entry>Generate solid black color as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_WHITE</constant></entry>
> +	          <entry>Generate solid white color as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_BLUE</constant></entry>
> +	          <entry>Generate solid blue color as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_RED</constant></entry>
> +	          <entry>Generate solid red color as test pattern</entry>
> +	        </row>

Just wondering: is there no SOLID_GREEN available with this sensor?

Regards,

	Hans

> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_CHECKER_BOARD</constant></entry>
> +	          <entry>Generate a checker board as test pattern</entry>
> +	        </row>
> +	      </tbody>
> +	    </entrytbl>
> +	  </row>
>  	<row><entry></entry></row>
>  	</tbody>
>        </tgroup>
> diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c
> index 2d7bc15..ae709d1 100644
> --- a/drivers/media/v4l2-core/v4l2-ctrls.c
> +++ b/drivers/media/v4l2-core/v4l2-ctrls.c
> @@ -430,6 +430,18 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
>  		"Advanced Predictor",
>  		NULL,
>  	};
> +	static const char * const test_pattern[] = {
> +		"Test Pattern Disabled",
> +		"Vertical Lines",
> +		"Horizontal Lines",
> +		"Diagonal Lines",
> +		"Solid Black",
> +		"Solid White",
> +		"Solid Blue",
> +		"Solid Red",
> +		"Checker Board",
> +		NULL,
> +	};
>  
>  	switch (id) {
>  	case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
> @@ -509,6 +521,8 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
>  		return jpeg_chroma_subsampling;
>  	case V4L2_CID_DPCM_PREDICTOR:
>  		return dpcm_predictor;
> +	case V4L2_CID_TEST_PATTERN:
> +		return test_pattern;
>  
>  	default:
>  		return NULL;
> @@ -740,6 +754,7 @@ const char *v4l2_ctrl_get_name(u32 id)
>  	case V4L2_CID_LINK_FREQ:		return "Link Frequency";
>  	case V4L2_CID_PIXEL_RATE:		return "Pixel Rate";
>  	case V4L2_CID_DPCM_PREDICTOR:		return "DPCM Predictor";
> +	case V4L2_CID_TEST_PATTERN:		return "Test Pattern";
>  
>  	default:
>  		return NULL;
> @@ -841,6 +856,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
>  	case V4L2_CID_EXPOSURE_METERING:
>  	case V4L2_CID_SCENE_MODE:
>  	case V4L2_CID_DPCM_PREDICTOR:
> +	case V4L2_CID_TEST_PATTERN:
>  		*type = V4L2_CTRL_TYPE_MENU;
>  		break;
>  	case V4L2_CID_LINK_FREQ:
> diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
> index ca9fb78..1796079 100644
> --- a/include/linux/videodev2.h
> +++ b/include/linux/videodev2.h
> @@ -2005,6 +2005,18 @@ enum v4l2_dpcm_predictor {
>  	V4L2_DPCM_PREDICTOR_SIMPLE	= 0,
>  	V4L2_DPCM_PREDICTOR_ADVANCED	= 1,
>  };
> +#define V4L2_CID_TEST_PATTERN			(V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)
> +enum v4l2_test_pattern {
> +	V4L2_TEST_PATTERN_DISABLED		= 0,
> +	V4L2_TEST_PATTERN_VERTICAL_LINES	= 1,
> +	V4L2_TEST_PATTERN_HORIZONTAL_LINES	= 2,
> +	V4L2_TEST_PATTERN_DIAGONAL_LINES	= 3,
> +	V4L2_TEST_PATTERN_SOLID_BLACK		= 4,
> +	V4L2_TEST_PATTERN_SOLID_WHITE		= 5,
> +	V4L2_TEST_PATTERN_SOLID_BLUE		= 6,
> +	V4L2_TEST_PATTERN_SOLID_RED		= 7,
> +	V4L2_TEST_PATTERN_CHECKER_BOARD		= 8,
> +};
>  
>  /*
>   *	T U N I N G
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] media: v4l2-ctrls: add control for test pattern
  2012-09-03  9:16 [PATCH] media: v4l2-ctrls: add control for test pattern Prabhakar Lad
  2012-09-03  9:22 ` Hans Verkuil
@ 2012-09-03  9:25 ` Sylwester Nawrocki
  2012-09-03  9:51   ` Prabhakar Lad
  2012-09-03 19:39 ` Sakari Ailus
  2 siblings, 1 reply; 7+ messages in thread
From: Sylwester Nawrocki @ 2012-09-03  9:25 UTC (permalink / raw)
  To: Prabhakar Lad
  Cc: LMML, dlos, linux-kernel, Manjunath Hadli, Laurent Pinchart,
	linux-doc, Sakari Ailus, Hans Verkuil, Mauro Carvalho Chehab,
	Hans de Goede, Kyungmin Park, Rob Landley

On 09/03/2012 11:16 AM, Prabhakar Lad wrote:
> diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c
> index 2d7bc15..ae709d1 100644
> --- a/drivers/media/v4l2-core/v4l2-ctrls.c
> +++ b/drivers/media/v4l2-core/v4l2-ctrls.c
> @@ -430,6 +430,18 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
>  		"Advanced Predictor",
>  		NULL,
>  	};
> +	static const char * const test_pattern[] = {
> +		"Test Pattern Disabled",

How about just "Disabled" ?

> +		"Vertical Lines",
> +		"Horizontal Lines",
> +		"Diagonal Lines",
> +		"Solid Black",
> +		"Solid White",
> +		"Solid Blue",
> +		"Solid Red",
> +		"Checker Board",
> +		NULL,
> +	};

--

Regards,
Sylwester

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] media: v4l2-ctrls: add control for test pattern
  2012-09-03  9:22 ` Hans Verkuil
@ 2012-09-03  9:46   ` Prabhakar Lad
  0 siblings, 0 replies; 7+ messages in thread
From: Prabhakar Lad @ 2012-09-03  9:46 UTC (permalink / raw)
  To: Hans Verkuil
  Cc: LMML, dlos, linux-kernel, Manjunath Hadli, Laurent Pinchart,
	linux-doc, Sakari Ailus, Hans Verkuil, Mauro Carvalho Chehab,
	Sylwester Nawrocki, Hans de Goede, Kyungmin Park, Rob Landley,
	HeungJun Kim

Hi Hans,

Thanks for the review.

On Monday 03 September 2012 02:52 PM, Hans Verkuil wrote:
> On Mon September 3 2012 11:16:17 Prabhakar Lad wrote:
>> From: Lad, Prabhakar <prabhakar.lad@ti.com>
>>
>> add V4L2_CID_TEST_PATTERN of type menu, which determines
>> the internal test pattern selected by the device.
>>
>> Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
>> Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
>> Cc: Sakari Ailus <sakari.ailus@iki.fi>
>> Cc: Hans Verkuil <hans.verkuil@cisco.com>
>> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>> Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
>> Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
>> Cc: Hans de Goede <hdegoede@redhat.com>
>> Cc: Kyungmin Park <kyungmin.park@samsung.com>
>> Cc: Rob Landley <rob@landley.net>
>> Cc: HeungJun Kim <riverful.kim@samsung.com>
>> Cc: Rob Landley <rob@landley.net>
>> ---
>>  This patches has one checkpatch warning for line over
>>  80 characters altough it can be avoided I have kept it
>>  for consistency.
>>
>>  Documentation/DocBook/media/v4l/controls.xml |   52 ++++++++++++++++++++++++++
>>  drivers/media/v4l2-core/v4l2-ctrls.c         |   16 ++++++++
>>  include/linux/videodev2.h                    |   12 ++++++
>>  3 files changed, 80 insertions(+), 0 deletions(-)
>>
>> diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
>> index f704218..06f16e7 100644
>> --- a/Documentation/DocBook/media/v4l/controls.xml
>> +++ b/Documentation/DocBook/media/v4l/controls.xml
>> @@ -4313,6 +4313,58 @@ interface and may change in the future.</para>
>>  	      </tbody>
>>  	    </entrytbl>
>>  	  </row>
>> +	  <row>
>> +	    <entry spanname="id"><constant>V4L2_CID_TEST_PATTERN</constant></entry>
>> +	    <entry>menu</entry>
>> +	  </row>
>> +	  <row id="v4l2-test-pattern">
>> +	    <entry spanname="descr"> The capture devices/sensors have the capability to
> 
> Test patterns are also applicable to output devices, not just capture and sensor devices.
> 
Agreed. I'll make it 'capture/display/sensors'.

>> +	    generate internal test patterns. This test patterns are used to test a device
>> +	    is properly working and can generate the desired waveforms that it supports.
>> +	    </entry>
>> +	  </row>
>> +	  <row>
>> +	    <entrytbl spanname="descr" cols="2">
>> +	      <tbody valign="top">
>> +	        <row>
>> +	         <entry><constant>V4L2_TEST_PATTERN_DISABLED</constant></entry>
>> +	          <entry>Test pattern generation is disabled</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_VERTICAL_LINES</constant></entry>
>> +	          <entry>Generate vertical lines as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_HORIZONTAL_LINES</constant></entry>
>> +	          <entry>Generate horizontal lines as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_DIAGONAL_LINES</constant></entry>
>> +	          <entry>Generate diagonal lines as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_BLACK</constant></entry>
>> +	          <entry>Generate solid black color as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_WHITE</constant></entry>
>> +	          <entry>Generate solid white color as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_BLUE</constant></entry>
>> +	          <entry>Generate solid blue color as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_RED</constant></entry>
>> +	          <entry>Generate solid red color as test pattern</entry>
>> +	        </row>
> 
> Just wondering: is there no SOLID_GREEN available with this sensor?
> 
Not sure I guess it should be.

Thanks and Regards,
--Prabhakar Lad

> Regards,
> 
> 	Hans
> 
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_CHECKER_BOARD</constant></entry>
>> +	          <entry>Generate a checker board as test pattern</entry>
>> +	        </row>
>> +	      </tbody>
>> +	    </entrytbl>
>> +	  </row>
>>  	<row><entry></entry></row>
>>  	</tbody>
>>        </tgroup>
>> diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c
>> index 2d7bc15..ae709d1 100644
>> --- a/drivers/media/v4l2-core/v4l2-ctrls.c
>> +++ b/drivers/media/v4l2-core/v4l2-ctrls.c
>> @@ -430,6 +430,18 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
>>  		"Advanced Predictor",
>>  		NULL,
>>  	};
>> +	static const char * const test_pattern[] = {
>> +		"Test Pattern Disabled",
>> +		"Vertical Lines",
>> +		"Horizontal Lines",
>> +		"Diagonal Lines",
>> +		"Solid Black",
>> +		"Solid White",
>> +		"Solid Blue",
>> +		"Solid Red",
>> +		"Checker Board",
>> +		NULL,
>> +	};
>>  
>>  	switch (id) {
>>  	case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
>> @@ -509,6 +521,8 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
>>  		return jpeg_chroma_subsampling;
>>  	case V4L2_CID_DPCM_PREDICTOR:
>>  		return dpcm_predictor;
>> +	case V4L2_CID_TEST_PATTERN:
>> +		return test_pattern;
>>  
>>  	default:
>>  		return NULL;
>> @@ -740,6 +754,7 @@ const char *v4l2_ctrl_get_name(u32 id)
>>  	case V4L2_CID_LINK_FREQ:		return "Link Frequency";
>>  	case V4L2_CID_PIXEL_RATE:		return "Pixel Rate";
>>  	case V4L2_CID_DPCM_PREDICTOR:		return "DPCM Predictor";
>> +	case V4L2_CID_TEST_PATTERN:		return "Test Pattern";
>>  
>>  	default:
>>  		return NULL;
>> @@ -841,6 +856,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
>>  	case V4L2_CID_EXPOSURE_METERING:
>>  	case V4L2_CID_SCENE_MODE:
>>  	case V4L2_CID_DPCM_PREDICTOR:
>> +	case V4L2_CID_TEST_PATTERN:
>>  		*type = V4L2_CTRL_TYPE_MENU;
>>  		break;
>>  	case V4L2_CID_LINK_FREQ:
>> diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
>> index ca9fb78..1796079 100644
>> --- a/include/linux/videodev2.h
>> +++ b/include/linux/videodev2.h
>> @@ -2005,6 +2005,18 @@ enum v4l2_dpcm_predictor {
>>  	V4L2_DPCM_PREDICTOR_SIMPLE	= 0,
>>  	V4L2_DPCM_PREDICTOR_ADVANCED	= 1,
>>  };
>> +#define V4L2_CID_TEST_PATTERN			(V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)
>> +enum v4l2_test_pattern {
>> +	V4L2_TEST_PATTERN_DISABLED		= 0,
>> +	V4L2_TEST_PATTERN_VERTICAL_LINES	= 1,
>> +	V4L2_TEST_PATTERN_HORIZONTAL_LINES	= 2,
>> +	V4L2_TEST_PATTERN_DIAGONAL_LINES	= 3,
>> +	V4L2_TEST_PATTERN_SOLID_BLACK		= 4,
>> +	V4L2_TEST_PATTERN_SOLID_WHITE		= 5,
>> +	V4L2_TEST_PATTERN_SOLID_BLUE		= 6,
>> +	V4L2_TEST_PATTERN_SOLID_RED		= 7,
>> +	V4L2_TEST_PATTERN_CHECKER_BOARD		= 8,
>> +};
>>  
>>  /*
>>   *	T U N I N G
>>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] media: v4l2-ctrls: add control for test pattern
  2012-09-03  9:25 ` Sylwester Nawrocki
@ 2012-09-03  9:51   ` Prabhakar Lad
  0 siblings, 0 replies; 7+ messages in thread
From: Prabhakar Lad @ 2012-09-03  9:51 UTC (permalink / raw)
  To: Sylwester Nawrocki
  Cc: LMML, dlos, linux-kernel, Manjunath Hadli, Laurent Pinchart,
	linux-doc, Sakari Ailus, Hans Verkuil, Mauro Carvalho Chehab,
	Hans de Goede, Kyungmin Park, Rob Landley

Hi Sylwester,

Thanks for the review.

On Monday 03 September 2012 02:55 PM, Sylwester Nawrocki wrote:
> On 09/03/2012 11:16 AM, Prabhakar Lad wrote:
>> diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c
>> index 2d7bc15..ae709d1 100644
>> --- a/drivers/media/v4l2-core/v4l2-ctrls.c
>> +++ b/drivers/media/v4l2-core/v4l2-ctrls.c
>> @@ -430,6 +430,18 @@ const char * const *v4l2_ctrl_get_menu(u32 id)
>>  		"Advanced Predictor",
>>  		NULL,
>>  	};
>> +	static const char * const test_pattern[] = {
>> +		"Test Pattern Disabled",
> 
> How about just "Disabled" ?
> 
Ok.

Thanks and Regards,
--Prabhakar Lad

>> +		"Vertical Lines",
>> +		"Horizontal Lines",
>> +		"Diagonal Lines",
>> +		"Solid Black",
>> +		"Solid White",
>> +		"Solid Blue",
>> +		"Solid Red",
>> +		"Checker Board",
>> +		NULL,
>> +	};
> 
> --
> 
> Regards,
> Sylwester
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] media: v4l2-ctrls: add control for test pattern
  2012-09-03  9:16 [PATCH] media: v4l2-ctrls: add control for test pattern Prabhakar Lad
  2012-09-03  9:22 ` Hans Verkuil
  2012-09-03  9:25 ` Sylwester Nawrocki
@ 2012-09-03 19:39 ` Sakari Ailus
  2012-09-04  5:05   ` Prabhakar Lad
  2 siblings, 1 reply; 7+ messages in thread
From: Sakari Ailus @ 2012-09-03 19:39 UTC (permalink / raw)
  To: Prabhakar Lad
  Cc: LMML, dlos, linux-kernel, Manjunath Hadli, Laurent Pinchart,
	linux-doc, Hans Verkuil, Mauro Carvalho Chehab,
	Sylwester Nawrocki, Hans de Goede, Kyungmin Park, Rob Landley,
	HeungJun Kim

Hi Prabhakar,

Thanks for the patch.

On Mon, Sep 03, 2012 at 02:46:17PM +0530, Prabhakar Lad wrote:
> From: Lad, Prabhakar <prabhakar.lad@ti.com>
> 
> add V4L2_CID_TEST_PATTERN of type menu, which determines
> the internal test pattern selected by the device.
> 
> Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
> Cc: Sakari Ailus <sakari.ailus@iki.fi>
> Cc: Hans Verkuil <hans.verkuil@cisco.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
> Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Cc: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Rob Landley <rob@landley.net>
> Cc: HeungJun Kim <riverful.kim@samsung.com>
> Cc: Rob Landley <rob@landley.net>
> ---
>  This patches has one checkpatch warning for line over
>  80 characters altough it can be avoided I have kept it
>  for consistency.
> 
>  Documentation/DocBook/media/v4l/controls.xml |   52 ++++++++++++++++++++++++++
>  drivers/media/v4l2-core/v4l2-ctrls.c         |   16 ++++++++
>  include/linux/videodev2.h                    |   12 ++++++
>  3 files changed, 80 insertions(+), 0 deletions(-)
> 
> diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
> index f704218..06f16e7 100644
> --- a/Documentation/DocBook/media/v4l/controls.xml
> +++ b/Documentation/DocBook/media/v4l/controls.xml
> @@ -4313,6 +4313,58 @@ interface and may change in the future.</para>
>  	      </tbody>
>  	    </entrytbl>
>  	  </row>
> +	  <row>
> +	    <entry spanname="id"><constant>V4L2_CID_TEST_PATTERN</constant></entry>
> +	    <entry>menu</entry>
> +	  </row>
> +	  <row id="v4l2-test-pattern">
> +	    <entry spanname="descr"> The capture devices/sensors have the capability to
> +	    generate internal test patterns. This test patterns are used to test a device
> +	    is properly working and can generate the desired waveforms that it supports.
> +	    </entry>
> +	  </row>
> +	  <row>
> +	    <entrytbl spanname="descr" cols="2">
> +	      <tbody valign="top">
> +	        <row>
> +	         <entry><constant>V4L2_TEST_PATTERN_DISABLED</constant></entry>
> +	          <entry>Test pattern generation is disabled</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_VERTICAL_LINES</constant></entry>
> +	          <entry>Generate vertical lines as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_HORIZONTAL_LINES</constant></entry>
> +	          <entry>Generate horizontal lines as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_DIAGONAL_LINES</constant></entry>
> +	          <entry>Generate diagonal lines as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_BLACK</constant></entry>
> +	          <entry>Generate solid black color as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_WHITE</constant></entry>
> +	          <entry>Generate solid white color as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_BLUE</constant></entry>
> +	          <entry>Generate solid blue color as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_RED</constant></entry>
> +	          <entry>Generate solid red color as test pattern</entry>
> +	        </row>
> +	        <row>
> +	          <entry><constant>V4L2_TEST_PATTERN_CHECKER_BOARD</constant></entry>
> +	          <entry>Generate a checker board as test pattern</entry>
> +	        </row>

You're defining 8 different test patterns based on a single device, I guess? 

As the test patterns are not standardised, I'd suppose that if another
driver implements the same control, it would require another n menu items
added to the same standard menu. That way we'd run quickly out of menu items
as the maximum is 32.

For this reason I'd leave the items in the menu up to the driver that
implements the control, until we have more information on the test patterns
different devices implement --- as discussed earlier.

Kind regards,

-- 
Sakari Ailus
e-mail: sakari.ailus@iki.fi	XMPP: sailus@retiisi.org.uk

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] media: v4l2-ctrls: add control for test pattern
  2012-09-03 19:39 ` Sakari Ailus
@ 2012-09-04  5:05   ` Prabhakar Lad
  0 siblings, 0 replies; 7+ messages in thread
From: Prabhakar Lad @ 2012-09-04  5:05 UTC (permalink / raw)
  To: Sakari Ailus
  Cc: LMML, dlos, linux-kernel, Manjunath Hadli, Laurent Pinchart,
	linux-doc, Hans Verkuil, Mauro Carvalho Chehab,
	Sylwester Nawrocki, Hans de Goede, Kyungmin Park, Rob Landley,
	HeungJun Kim

Hi Sakari,

Thanks for the review.

On Tuesday 04 September 2012 01:09 AM, Sakari Ailus wrote:
> Hi Prabhakar,
> 
> Thanks for the patch.
> 
> On Mon, Sep 03, 2012 at 02:46:17PM +0530, Prabhakar Lad wrote:
>> From: Lad, Prabhakar <prabhakar.lad@ti.com>
>>
>> add V4L2_CID_TEST_PATTERN of type menu, which determines
>> the internal test pattern selected by the device.
>>
>> Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
>> Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
>> Cc: Sakari Ailus <sakari.ailus@iki.fi>
>> Cc: Hans Verkuil <hans.verkuil@cisco.com>
>> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>> Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
>> Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
>> Cc: Hans de Goede <hdegoede@redhat.com>
>> Cc: Kyungmin Park <kyungmin.park@samsung.com>
>> Cc: Rob Landley <rob@landley.net>
>> Cc: HeungJun Kim <riverful.kim@samsung.com>
>> Cc: Rob Landley <rob@landley.net>
>> ---
>>  This patches has one checkpatch warning for line over
>>  80 characters altough it can be avoided I have kept it
>>  for consistency.
>>
>>  Documentation/DocBook/media/v4l/controls.xml |   52 ++++++++++++++++++++++++++
>>  drivers/media/v4l2-core/v4l2-ctrls.c         |   16 ++++++++
>>  include/linux/videodev2.h                    |   12 ++++++
>>  3 files changed, 80 insertions(+), 0 deletions(-)
>>
>> diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
>> index f704218..06f16e7 100644
>> --- a/Documentation/DocBook/media/v4l/controls.xml
>> +++ b/Documentation/DocBook/media/v4l/controls.xml
>> @@ -4313,6 +4313,58 @@ interface and may change in the future.</para>
>>  	      </tbody>
>>  	    </entrytbl>
>>  	  </row>
>> +	  <row>
>> +	    <entry spanname="id"><constant>V4L2_CID_TEST_PATTERN</constant></entry>
>> +	    <entry>menu</entry>
>> +	  </row>
>> +	  <row id="v4l2-test-pattern">
>> +	    <entry spanname="descr"> The capture devices/sensors have the capability to
>> +	    generate internal test patterns. This test patterns are used to test a device
>> +	    is properly working and can generate the desired waveforms that it supports.
>> +	    </entry>
>> +	  </row>
>> +	  <row>
>> +	    <entrytbl spanname="descr" cols="2">
>> +	      <tbody valign="top">
>> +	        <row>
>> +	         <entry><constant>V4L2_TEST_PATTERN_DISABLED</constant></entry>
>> +	          <entry>Test pattern generation is disabled</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_VERTICAL_LINES</constant></entry>
>> +	          <entry>Generate vertical lines as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_HORIZONTAL_LINES</constant></entry>
>> +	          <entry>Generate horizontal lines as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_DIAGONAL_LINES</constant></entry>
>> +	          <entry>Generate diagonal lines as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_BLACK</constant></entry>
>> +	          <entry>Generate solid black color as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_WHITE</constant></entry>
>> +	          <entry>Generate solid white color as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_BLUE</constant></entry>
>> +	          <entry>Generate solid blue color as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_SOLID_RED</constant></entry>
>> +	          <entry>Generate solid red color as test pattern</entry>
>> +	        </row>
>> +	        <row>
>> +	          <entry><constant>V4L2_TEST_PATTERN_CHECKER_BOARD</constant></entry>
>> +	          <entry>Generate a checker board as test pattern</entry>
>> +	        </row>
> 
> You're defining 8 different test patterns based on a single device, I guess? 
> 
No.

> As the test patterns are not standardised, I'd suppose that if another
> driver implements the same control, it would require another n menu items
> added to the same standard menu. That way we'd run quickly out of menu items
> as the maximum is 32.
> 
Agreed the test patterns are not standardized and are hardware
dependent, but this entries which have been added are generally common
across capture/display/sensors.

> For this reason I'd leave the items in the menu up to the driver that
> implements the control, until we have more information on the test patterns
> different devices implement --- as discussed earlier.
> 
Assuming that I only added disable test pattern and if a driver wants to
implement this control and wants add  an item to this menu, on what
basis an entry to this menu will be qualified then ?

Thanks and Regards,
--Prabhakar Lad

> Kind regards,
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-09-04  5:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-03  9:16 [PATCH] media: v4l2-ctrls: add control for test pattern Prabhakar Lad
2012-09-03  9:22 ` Hans Verkuil
2012-09-03  9:46   ` Prabhakar Lad
2012-09-03  9:25 ` Sylwester Nawrocki
2012-09-03  9:51   ` Prabhakar Lad
2012-09-03 19:39 ` Sakari Ailus
2012-09-04  5:05   ` Prabhakar Lad

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).