linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/6] gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK
@ 2012-09-09 18:02 Frank Schäfer
  2012-09-09 18:02 ` [PATCH 2/6] gspca_pac7302: make red balance and blue balance controls work again Frank Schäfer
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Frank Schäfer @ 2012-09-09 18:02 UTC (permalink / raw)
  To: hdegoede; +Cc: linux-media, Frank Schäfer

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Cc: stable@kernel.org
---
 drivers/media/usb/gspca/pac7302.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/media/usb/gspca/pac7302.c b/drivers/media/usb/gspca/pac7302.c
index 4877f7a..e906f56 100644
--- a/drivers/media/usb/gspca/pac7302.c
+++ b/drivers/media/usb/gspca/pac7302.c
@@ -905,6 +905,7 @@ static const struct usb_device_id device_table[] = {
 	{USB_DEVICE(0x093a, 0x262a)},
 	{USB_DEVICE(0x093a, 0x262c)},
 	{USB_DEVICE(0x145f, 0x013c)},
+	{USB_DEVICE(0x1ae7, 0x2001)}, /* SpeedLink Snappy Mic SL-6825-SBK */
 	{}
 };
 MODULE_DEVICE_TABLE(usb, device_table);
-- 
1.7.7


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

* [PATCH 2/6] gspca_pac7302: make red balance and blue balance controls work again
  2012-09-09 18:02 [PATCH 1/6] gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK Frank Schäfer
@ 2012-09-09 18:02 ` Frank Schäfer
  2012-09-09 18:02 ` [PATCH 3/6] gspca_pac7302: add sharpness control Frank Schäfer
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Frank Schäfer @ 2012-09-09 18:02 UTC (permalink / raw)
  To: hdegoede; +Cc: linux-media, Frank Schäfer

Fix a regression from kernel 3.4 which has been introduced with the conversion of the gspca driver to the v4l2 control framework.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Cc: stable@kernel.org
---
 drivers/media/usb/gspca/pac7302.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/media/usb/gspca/pac7302.c b/drivers/media/usb/gspca/pac7302.c
index e906f56..eb3c90e4 100644
--- a/drivers/media/usb/gspca/pac7302.c
+++ b/drivers/media/usb/gspca/pac7302.c
@@ -616,7 +616,7 @@ static int sd_init_controls(struct gspca_dev *gspca_dev)
 	sd->red_balance = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
 					V4L2_CID_RED_BALANCE, 0, 3, 1, 1);
 	sd->blue_balance = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
-					V4L2_CID_RED_BALANCE, 0, 3, 1, 1);
+					V4L2_CID_BLUE_BALANCE, 0, 3, 1, 1);
 
 	gspca_dev->autogain = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
 					V4L2_CID_AUTOGAIN, 0, 1, 1, 1);
-- 
1.7.7


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

* [PATCH 3/6] gspca_pac7302: add sharpness control
  2012-09-09 18:02 [PATCH 1/6] gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK Frank Schäfer
  2012-09-09 18:02 ` [PATCH 2/6] gspca_pac7302: make red balance and blue balance controls work again Frank Schäfer
@ 2012-09-09 18:02 ` Frank Schäfer
  2012-09-09 18:02 ` [PATCH 4/6] gspca_pac7302: increase default value for white balance temperature Frank Schäfer
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Frank Schäfer @ 2012-09-09 18:02 UTC (permalink / raw)
  To: hdegoede; +Cc: linux-media, Frank Schäfer

The Windows driver uses page 0 register 0xb6 for sharpness adjustment.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
---
 drivers/media/usb/gspca/pac7302.c |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/drivers/media/usb/gspca/pac7302.c b/drivers/media/usb/gspca/pac7302.c
index eb3c90e4..8c29613 100644
--- a/drivers/media/usb/gspca/pac7302.c
+++ b/drivers/media/usb/gspca/pac7302.c
@@ -26,6 +26,11 @@
 /*
  * Some documentation about various registers as determined by trial and error.
  *
+ * Register page 0:
+ *
+ * Address	Description
+ * 0xb6		Sharpness control (bits 0-4)
+ *
  * Register page 1:
  *
  * Address	Description
@@ -66,6 +71,7 @@
  * -----+------------+---------------------------------------------------
  *  0   | 0x0f..0x20 | setcolors()
  *  0   | 0xa2..0xab | setbrightcont()
+ *  0   | 0xb6       | setsharpness()
  *  0   | 0xc5       | setredbalance()
  *  0   | 0xc6       | setwhitebalance()
  *  0   | 0xc7       | setbluebalance()
@@ -109,6 +115,7 @@ struct sd {
 		struct v4l2_ctrl *hflip;
 		struct v4l2_ctrl *vflip;
 	};
+	struct v4l2_ctrl *sharpness;
 	u8 flags;
 #define FL_HFLIP 0x01		/* mirrored by default */
 #define FL_VFLIP 0x02		/* vertical flipped by default */
@@ -531,6 +538,16 @@ static void sethvflip(struct gspca_dev *gspca_dev)
 	reg_w(gspca_dev, 0x11, 0x01);
 }
 
+static void setsharpness(struct gspca_dev *gspca_dev)
+{
+	struct sd *sd = (struct sd *) gspca_dev;
+
+	reg_w(gspca_dev, 0xff, 0x00);		/* page 0 */
+	reg_w(gspca_dev, 0xb6, sd->sharpness->val);
+
+	reg_w(gspca_dev, 0xdc, 0x01);
+}
+
 /* this function is called at probe and resume time for pac7302 */
 static int sd_init(struct gspca_dev *gspca_dev)
 {
@@ -584,6 +601,9 @@ static int sd_s_ctrl(struct v4l2_ctrl *ctrl)
 	case V4L2_CID_HFLIP:
 		sethvflip(gspca_dev);
 		break;
+	case V4L2_CID_SHARPNESS:
+		setsharpness(gspca_dev);
+		break;
 	default:
 		return -EINVAL;
 	}
@@ -601,7 +621,7 @@ static int sd_init_controls(struct gspca_dev *gspca_dev)
 	struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler;
 
 	gspca_dev->vdev.ctrl_handler = hdl;
-	v4l2_ctrl_handler_init(hdl, 11);
+	v4l2_ctrl_handler_init(hdl, 12);
 
 	sd->brightness = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
 					V4L2_CID_BRIGHTNESS, 0, 32, 1, 16);
@@ -632,6 +652,9 @@ static int sd_init_controls(struct gspca_dev *gspca_dev)
 	sd->vflip = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
 		V4L2_CID_VFLIP, 0, 1, 1, 0);
 
+	sd->sharpness = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
+					V4L2_CID_SHARPNESS, 0, 15, 1, 8);
+
 	if (hdl->error) {
 		pr_err("Could not initialize controls\n");
 		return hdl->error;
-- 
1.7.7


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

* [PATCH 4/6] gspca_pac7302: increase default value for white balance temperature
  2012-09-09 18:02 [PATCH 1/6] gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK Frank Schäfer
  2012-09-09 18:02 ` [PATCH 2/6] gspca_pac7302: make red balance and blue balance controls work again Frank Schäfer
  2012-09-09 18:02 ` [PATCH 3/6] gspca_pac7302: add sharpness control Frank Schäfer
@ 2012-09-09 18:02 ` Frank Schäfer
  2012-09-09 18:02 ` [PATCH 5/6] gspca_pac7302: avoid duplicate calls of the image quality adjustment functions on capturing start Frank Schäfer
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Frank Schäfer @ 2012-09-09 18:02 UTC (permalink / raw)
  To: hdegoede; +Cc: linux-media, Frank Schäfer

The current white balance temperature default value is 4, which is much too small (possible values are 0-255).
Improve the picture quality by increasing the default value to 55, which is the default value used by the Windows driver.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
---
 drivers/media/usb/gspca/pac7302.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/media/usb/gspca/pac7302.c b/drivers/media/usb/gspca/pac7302.c
index 8c29613..bed34df 100644
--- a/drivers/media/usb/gspca/pac7302.c
+++ b/drivers/media/usb/gspca/pac7302.c
@@ -632,7 +632,7 @@ static int sd_init_controls(struct gspca_dev *gspca_dev)
 					V4L2_CID_SATURATION, 0, 255, 1, 127);
 	sd->white_balance = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
 					V4L2_CID_WHITE_BALANCE_TEMPERATURE,
-					0, 255, 1, 4);
+					0, 255, 1, 55);
 	sd->red_balance = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
 					V4L2_CID_RED_BALANCE, 0, 3, 1, 1);
 	sd->blue_balance = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
-- 
1.7.7


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

* [PATCH 5/6] gspca_pac7302: avoid duplicate calls of the image quality adjustment functions on capturing start
  2012-09-09 18:02 [PATCH 1/6] gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK Frank Schäfer
                   ` (2 preceding siblings ...)
  2012-09-09 18:02 ` [PATCH 4/6] gspca_pac7302: increase default value for white balance temperature Frank Schäfer
@ 2012-09-09 18:02 ` Frank Schäfer
  2012-09-09 18:02 ` [PATCH 6/6] gspca_pac7302: extend register documentation Frank Schäfer
  2012-09-09 21:56 ` [PATCH 1/6] gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK Hans de Goede
  5 siblings, 0 replies; 7+ messages in thread
From: Frank Schäfer @ 2012-09-09 18:02 UTC (permalink / raw)
  To: hdegoede; +Cc: linux-media, Frank Schäfer

There is no need to call the image quality adjustment functions in sd_start.
The gspca main driver calls v4l2_ctrl_handler_setup in gspca_init_transfer,
which already applies all image control values.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
---
 drivers/media/usb/gspca/pac7302.c |    8 --------
 1 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/drivers/media/usb/gspca/pac7302.c b/drivers/media/usb/gspca/pac7302.c
index bed34df..71fa5a4 100644
--- a/drivers/media/usb/gspca/pac7302.c
+++ b/drivers/media/usb/gspca/pac7302.c
@@ -673,14 +673,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
 
 	reg_w_var(gspca_dev, start_7302,
 		page3_7302, sizeof(page3_7302));
-	setbrightcont(gspca_dev);
-	setcolors(gspca_dev);
-	setwhitebalance(gspca_dev);
-	setredbalance(gspca_dev);
-	setbluebalance(gspca_dev);
-	setexposure(gspca_dev);
-	setgain(gspca_dev);
-	sethvflip(gspca_dev);
 
 	sd->sof_read = 0;
 	sd->autogain_ignore_frames = 0;
-- 
1.7.7


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

* [PATCH 6/6] gspca_pac7302: extend register documentation
  2012-09-09 18:02 [PATCH 1/6] gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK Frank Schäfer
                   ` (3 preceding siblings ...)
  2012-09-09 18:02 ` [PATCH 5/6] gspca_pac7302: avoid duplicate calls of the image quality adjustment functions on capturing start Frank Schäfer
@ 2012-09-09 18:02 ` Frank Schäfer
  2012-09-09 21:56 ` [PATCH 1/6] gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK Hans de Goede
  5 siblings, 0 replies; 7+ messages in thread
From: Frank Schäfer @ 2012-09-09 18:02 UTC (permalink / raw)
  To: hdegoede; +Cc: linux-media, Frank Schäfer

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
---
 drivers/media/usb/gspca/pac7302.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/drivers/media/usb/gspca/pac7302.c b/drivers/media/usb/gspca/pac7302.c
index 71fa5a4..2d5c6d83 100644
--- a/drivers/media/usb/gspca/pac7302.c
+++ b/drivers/media/usb/gspca/pac7302.c
@@ -29,6 +29,15 @@
  * Register page 0:
  *
  * Address	Description
+ * 0x02		Red balance control
+ * 0x03		Green balance control
+ * 0x04 	Blue balance control
+ *		     Valus are inverted (0=max, 255=min).
+ *		     The Windows driver uses a quadratic approach to map
+ *		     the settable values (0-200) on register values:
+ *		     min=0x80, default=0x40, max=0x20
+ * 0x0f-0x20	Colors, saturation and exposure control
+ * 0xa2-0xab	Brightness, contrast and gamma control
  * 0xb6		Sharpness control (bits 0-4)
  *
  * Register page 1:
-- 
1.7.7


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

* Re: [PATCH 1/6] gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK
  2012-09-09 18:02 [PATCH 1/6] gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK Frank Schäfer
                   ` (4 preceding siblings ...)
  2012-09-09 18:02 ` [PATCH 6/6] gspca_pac7302: extend register documentation Frank Schäfer
@ 2012-09-09 21:56 ` Hans de Goede
  5 siblings, 0 replies; 7+ messages in thread
From: Hans de Goede @ 2012-09-09 21:56 UTC (permalink / raw)
  To: Frank Schäfer; +Cc: linux-media

Hi,

Entire series applied and included in my pull-req for 3.7 which I just send out.

Thanks,

Hans


On 09/09/2012 08:02 PM, Frank Schäfer wrote:
> Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
> Cc: stable@kernel.org
> ---
>   drivers/media/usb/gspca/pac7302.c |    1 +
>   1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/media/usb/gspca/pac7302.c b/drivers/media/usb/gspca/pac7302.c
> index 4877f7a..e906f56 100644
> --- a/drivers/media/usb/gspca/pac7302.c
> +++ b/drivers/media/usb/gspca/pac7302.c
> @@ -905,6 +905,7 @@ static const struct usb_device_id device_table[] = {
>   	{USB_DEVICE(0x093a, 0x262a)},
>   	{USB_DEVICE(0x093a, 0x262c)},
>   	{USB_DEVICE(0x145f, 0x013c)},
> +	{USB_DEVICE(0x1ae7, 0x2001)}, /* SpeedLink Snappy Mic SL-6825-SBK */
>   	{}
>   };
>   MODULE_DEVICE_TABLE(usb, device_table);
>

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

end of thread, other threads:[~2012-09-09 21:54 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-09 18:02 [PATCH 1/6] gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK Frank Schäfer
2012-09-09 18:02 ` [PATCH 2/6] gspca_pac7302: make red balance and blue balance controls work again Frank Schäfer
2012-09-09 18:02 ` [PATCH 3/6] gspca_pac7302: add sharpness control Frank Schäfer
2012-09-09 18:02 ` [PATCH 4/6] gspca_pac7302: increase default value for white balance temperature Frank Schäfer
2012-09-09 18:02 ` [PATCH 5/6] gspca_pac7302: avoid duplicate calls of the image quality adjustment functions on capturing start Frank Schäfer
2012-09-09 18:02 ` [PATCH 6/6] gspca_pac7302: extend register documentation Frank Schäfer
2012-09-09 21:56 ` [PATCH 1/6] gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK Hans de Goede

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