[Jaunty SRU] LP#276949 Add support for HP 2.0 Megapixel rz406aa

Stefan Bader stefan.bader at canonical.com
Wed Jun 24 15:26:27 BST 2009


Ike Panhc wrote:
>> Description
> SRU justification:
> 
> Impact: No driver for HP Webcam - 15b8:6002
> 
> Fix: Cherry-pick from upstream and have some minor modify for solving the conflicts
> 
> Testcase: See https://bugs.launchpad.net/ubuntu/+source/linux/+bug/276949
> 
> 
>> Request-pull
> The following changes since commit a2a9589ca6f4a181c2abe7e93ac566ee41ec2754:
>   Stefan Bader (1):
>         UBUNTU: Update commit templates to use BugLink instead of Bug
> 
> are available in the git repository at:
> 
>   git://kernel.ubuntu.com/ikepanhc/ike-jaunty.git lp#276949
> 
> Jean-Francois Moine (1):
>       V4L/DVB (9870): gspca - vc032x: Webcam 15b8:6002 and sensor po1200 added.
> 
>  Documentation/video4linux/gspca.txt |    1 +
>  drivers/media/video/gspca/vc032x.c  |  315 ++++++++++++++++++++++++++++++++++-
>  2 files changed, 311 insertions(+), 5 deletions(-)
> 
> 
>> Patch
> From b4e6d063e6555e7470afb015e1fca62be940b45c Mon Sep 17 00:00:00 2001
> From: Jean-Francois Moine <moinejf at free.fr>
> Date: Thu, 7 May 2009 20:33:49 +0800
> Subject: [PATCH] V4L/DVB (9870): gspca - vc032x: Webcam 15b8:6002 and sensor po1200 added.
> 
> Bug: #276949
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/276949
> cherry-pick from commit 8852153548b31abb99c1c0772d03f92054f1f80d
> 
> Add support for HP 2.0 Megapixel rz406aa
> 
> Signed-off-by: Jean-Francois Moine <moinejf at free.fr>
> Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
> Signed-off-by: Ike Panhc <ike.pan at canonical.com>
> ---
>  Documentation/video4linux/gspca.txt |    1 +
>  drivers/media/video/gspca/vc032x.c  |  315 ++++++++++++++++++++++++++++++++++-
>  2 files changed, 311 insertions(+), 5 deletions(-)
> 
> diff --git a/Documentation/video4linux/gspca.txt b/Documentation/video4linux/gspca.txt
> index 9cf57d8..9cb4a02 100644
> --- a/Documentation/video4linux/gspca.txt
> +++ b/Documentation/video4linux/gspca.txt
> @@ -265,6 +265,7 @@ etoms		102c:6251	Qcam xxxxxx VGA
>  zc3xx		10fd:0128	Typhoon Webshot II USB 300k 0x0128
>  spca561		10fd:7e50	FlyCam Usb 100
>  zc3xx		10fd:8050	Typhoon Webshot II USB 300k
> +vc032x		15b8:6002	HP 2.0 Megapixel rz406aa
>  spca501		1776:501c	Arowana 300K CMOS Camera
>  t613		17a1:0128	TASCORP JPEG Webcam, NGS Cyclops
>  vc032x		17ef:4802	Lenovo Vc0323+MI1310_SOC
> diff --git a/drivers/media/video/gspca/vc032x.c b/drivers/media/video/gspca/vc032x.c
> index 17af353..bf5239c 100644
> --- a/drivers/media/video/gspca/vc032x.c
> +++ b/drivers/media/video/gspca/vc032x.c
> @@ -46,6 +46,7 @@ struct sd {
>  #define SENSOR_OV7660 3
>  #define SENSOR_OV7670 4
>  #define SENSOR_PO3130NC 5
> +#define SENSOR_PO1200 6
>  };
>  
>  /* V4L2 controls supported by the driver */
> @@ -111,6 +112,14 @@ static struct v4l2_pix_format vc0323_mode[] = {
>  		.priv = 0},
>  };
>  
> +static struct v4l2_pix_format svga_mode[] = {
> +	{800, 600, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
> +		.bytesperline = 800,
> +		.sizeimage = 800 * 600 * 1 / 4 + 590,
> +		.colorspace = V4L2_COLORSPACE_JPEG,
> +		.priv = 0},
> +};
> +
>  static const __u8 mi1310_socinitVGA_JPG[][4] = {
>  	{0xb0, 0x03, 0x19, 0xcc},
>  	{0xb0, 0x04, 0x02, 0xcc},
> @@ -1204,6 +1213,280 @@ static const __u8 ov7670_initQVGA_JPG[][4] = {
>  	{},
>  };
>  
> +/* PO1200 - values from usbvm326.inf and ms-win trace */
> +static const __u8 po1200_gamma[17] = {
> +	0x00, 0x13, 0x38, 0x59, 0x79, 0x92, 0xa7, 0xb9, 0xc8,
> +	0xd4, 0xdf, 0xe7, 0xee, 0xf4, 0xf9, 0xfc, 0xff
> +};
> +static const __u8 po1200_matrix[9] = {
> +	0x60, 0xf9, 0xe5, 0xe7, 0x50, 0x05, 0xf3, 0xe6, 0x5e
> +};
> +static const __u8 po1200_initVGA_data[][4] = {
> +	{0xb0, 0x03, 0x19, 0xcc},	/* reset? */
> +	{0xb0, 0x03, 0x19, 0xcc},
> +/*	{0x00, 0x00, 0x33, 0xdd}, */
> +	{0xb0, 0x04, 0x02, 0xcc},
> +	{0xb0, 0x02, 0x02, 0xcc},
> +	{0xb3, 0x5d, 0x00, 0xcc},
> +	{0xb3, 0x01, 0x01, 0xcc},
> +	{0xb3, 0x00, 0x64, 0xcc},
> +	{0xb3, 0x00, 0x65, 0xcc},
> +	{0xb3, 0x05, 0x01, 0xcc},
> +	{0xb3, 0x06, 0x01, 0xcc},
> +	{0xb3, 0x5c, 0x01, 0xcc},
> +	{0xb3, 0x08, 0x01, 0xcc},
> +	{0xb3, 0x09, 0x0c, 0xcc},
> +	{0xb3, 0x00, 0x67, 0xcc},
> +	{0xb3, 0x02, 0xb2, 0xcc},
> +	{0xb3, 0x03, 0x18, 0xcc},
> +	{0xb3, 0x04, 0x15, 0xcc},
> +	{0xb3, 0x20, 0x00, 0xcc},
> +	{0xb3, 0x21, 0x00, 0xcc},
> +	{0xb3, 0x22, 0x02, 0xcc},
> +	{0xb3, 0x23, 0x58, 0xcc},
> +	{0xb3, 0x14, 0x00, 0xcc},
> +	{0xb3, 0x15, 0x00, 0xcc},
> +	{0xb3, 0x16, 0x03, 0xcc},
> +	{0xb3, 0x17, 0x1f, 0xcc},
> +	{0xbc, 0x00, 0x71, 0xcc},
> +	{0xbc, 0x01, 0x01, 0xcc},
> +	{0xb0, 0x54, 0x13, 0xcc},
> +	{0xb3, 0x00, 0x67, 0xcc},
> +	{0xb3, 0x34, 0x01, 0xcc},
> +	{0xb3, 0x35, 0xdc, 0xcc},
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0x12, 0x05, 0xaa},
> +	{0x00, 0x13, 0x02, 0xaa},
> +	{0x00, 0x1e, 0xc6, 0xaa},
> +	{0x00, 0x21, 0x00, 0xaa},
> +	{0x00, 0x25, 0x02, 0xaa},
> +	{0x00, 0x3c, 0x4f, 0xaa},
> +	{0x00, 0x3f, 0xe0, 0xaa},
> +	{0x00, 0x42, 0xff, 0xaa},
> +	{0x00, 0x45, 0x34, 0xaa},
> +	{0x00, 0x55, 0xfe, 0xaa},
> +	{0x00, 0x59, 0xd3, 0xaa},
> +	{0x00, 0x5e, 0x04, 0xaa},
> +	{0x00, 0x61, 0xb8, 0xaa},
> +	{0x00, 0x62, 0x02, 0xaa},
> +	{0x00, 0xa7, 0x31, 0xaa},
> +	{0x00, 0xa9, 0x66, 0xaa},
> +	{0x00, 0xb0, 0x00, 0xaa},
> +	{0x00, 0xb1, 0x00, 0xaa},
> +	{0x00, 0xb3, 0x11, 0xaa},
> +	{0x00, 0xb6, 0x26, 0xaa},
> +	{0x00, 0xb7, 0x20, 0xaa},
> +	{0x00, 0xba, 0x04, 0xaa},
> +	{0x00, 0x88, 0x42, 0xaa},
> +	{0x00, 0x89, 0x9a, 0xaa},
> +	{0x00, 0x8a, 0x88, 0xaa},
> +	{0x00, 0x8b, 0x8e, 0xaa},
> +	{0x00, 0x8c, 0x3e, 0xaa},
> +	{0x00, 0x8d, 0x90, 0xaa},
> +	{0x00, 0x8e, 0x87, 0xaa},
> +	{0x00, 0x8f, 0x96, 0xaa},
> +	{0x00, 0x90, 0x3d, 0xaa},
> +	{0x00, 0x64, 0x00, 0xaa},
> +	{0x00, 0x65, 0x10, 0xaa},
> +	{0x00, 0x66, 0x20, 0xaa},
> +	{0x00, 0x67, 0x2b, 0xaa},
> +	{0x00, 0x68, 0x36, 0xaa},
> +	{0x00, 0x69, 0x49, 0xaa},
> +	{0x00, 0x6a, 0x5a, 0xaa},
> +	{0x00, 0x6b, 0x7f, 0xaa},
> +	{0x00, 0x6c, 0x9b, 0xaa},
> +	{0x00, 0x6d, 0xba, 0xaa},
> +	{0x00, 0x6e, 0xd4, 0xaa},
> +	{0x00, 0x6f, 0xea, 0xaa},
> +	{0x00, 0x70, 0x00, 0xaa},
> +	{0x00, 0x71, 0x10, 0xaa},
> +	{0x00, 0x72, 0x20, 0xaa},
> +	{0x00, 0x73, 0x2b, 0xaa},
> +	{0x00, 0x74, 0x36, 0xaa},
> +	{0x00, 0x75, 0x49, 0xaa},
> +	{0x00, 0x76, 0x5a, 0xaa},
> +	{0x00, 0x77, 0x7f, 0xaa},
> +	{0x00, 0x78, 0x9b, 0xaa},
> +	{0x00, 0x79, 0xba, 0xaa},
> +	{0x00, 0x7a, 0xd4, 0xaa},
> +	{0x00, 0x7b, 0xea, 0xaa},
> +	{0x00, 0x7c, 0x00, 0xaa},
> +	{0x00, 0x7d, 0x10, 0xaa},
> +	{0x00, 0x7e, 0x20, 0xaa},
> +	{0x00, 0x7f, 0x2b, 0xaa},
> +	{0x00, 0x80, 0x36, 0xaa},
> +	{0x00, 0x81, 0x49, 0xaa},
> +	{0x00, 0x82, 0x5a, 0xaa},
> +	{0x00, 0x83, 0x7f, 0xaa},
> +	{0x00, 0x84, 0x9b, 0xaa},
> +	{0x00, 0x85, 0xba, 0xaa},
> +	{0x00, 0x86, 0xd4, 0xaa},
> +	{0x00, 0x87, 0xea, 0xaa},
> +	{0x00, 0x57, 0x2a, 0xaa},
> +	{0x00, 0x03, 0x01, 0xaa},
> +	{0x00, 0x04, 0x10, 0xaa},
> +	{0x00, 0x05, 0x10, 0xaa},
> +	{0x00, 0x06, 0x10, 0xaa},
> +	{0x00, 0x07, 0x10, 0xaa},
> +	{0x00, 0x08, 0x13, 0xaa},
> +	{0x00, 0x0a, 0x00, 0xaa},
> +	{0x00, 0x0b, 0x10, 0xaa},
> +	{0x00, 0x0c, 0x20, 0xaa},
> +	{0x00, 0x0d, 0x18, 0xaa},
> +	{0x00, 0x22, 0x01, 0xaa},
> +	{0x00, 0x23, 0x60, 0xaa},
> +	{0x00, 0x25, 0x08, 0xaa},
> +	{0x00, 0x26, 0x82, 0xaa},
> +	{0x00, 0x2e, 0x0f, 0xaa},
> +	{0x00, 0x2f, 0x1e, 0xaa},
> +	{0x00, 0x30, 0x2d, 0xaa},
> +	{0x00, 0x31, 0x3c, 0xaa},
> +	{0x00, 0x32, 0x4b, 0xaa},
> +	{0x00, 0x33, 0x5a, 0xaa},
> +	{0x00, 0x34, 0x69, 0xaa},
> +	{0x00, 0x35, 0x78, 0xaa},
> +	{0x00, 0x36, 0x87, 0xaa},
> +	{0x00, 0x37, 0x96, 0xaa},
> +	{0x00, 0x38, 0xa5, 0xaa},
> +	{0x00, 0x39, 0xb4, 0xaa},
> +	{0x00, 0x3a, 0xc3, 0xaa},
> +	{0x00, 0x3b, 0xd2, 0xaa},
> +	{0x00, 0x3c, 0xe1, 0xaa},
> +	{0x00, 0x3e, 0xff, 0xaa},
> +	{0x00, 0x3f, 0xff, 0xaa},
> +	{0x00, 0x40, 0xff, 0xaa},
> +	{0x00, 0x41, 0xff, 0xaa},
> +	{0x00, 0x42, 0xff, 0xaa},
> +	{0x00, 0x43, 0xff, 0xaa},
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0x20, 0xc4, 0xaa},
> +	{0x00, 0x13, 0x03, 0xaa},
> +	{0x00, 0x3c, 0x50, 0xaa},
> +	{0x00, 0x61, 0x6a, 0xaa},
> +	{0x00, 0x51, 0x5b, 0xaa},
> +	{0x00, 0x52, 0x91, 0xaa},
> +	{0x00, 0x53, 0x4c, 0xaa},
> +	{0x00, 0x54, 0x50, 0xaa},
> +	{0x00, 0x56, 0x02, 0xaa},
> +	{0xb6, 0x00, 0x00, 0xcc},
> +	{0xb6, 0x03, 0x03, 0xcc},
> +	{0xb6, 0x02, 0x20, 0xcc},
> +	{0xb6, 0x05, 0x02, 0xcc},
> +	{0xb6, 0x04, 0x58, 0xcc},
> +	{0xb6, 0x12, 0xf8, 0xcc},
> +	{0xb6, 0x13, 0x21, 0xcc},
> +	{0xb6, 0x18, 0x03, 0xcc},
> +	{0xb6, 0x17, 0xa9, 0xcc},
> +	{0xb6, 0x16, 0x80, 0xcc},
> +	{0xb6, 0x22, 0x12, 0xcc},
> +	{0xb6, 0x23, 0x0b, 0xcc},
> +	{0xbf, 0xc0, 0x39, 0xcc},
> +	{0xbf, 0xc1, 0x04, 0xcc},
> +	{0xbf, 0xcc, 0x00, 0xcc},
> +	{0xb8, 0x06, 0x20, 0xcc},
> +	{0xb8, 0x07, 0x03, 0xcc},
> +	{0xb8, 0x08, 0x58, 0xcc},
> +	{0xb8, 0x09, 0x02, 0xcc},
> +	{0xb3, 0x01, 0x41, 0xcc},
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0xd9, 0x0f, 0xaa},
> +	{0x00, 0xda, 0xaa, 0xaa},
> +	{0x00, 0xd9, 0x10, 0xaa},
> +	{0x00, 0xda, 0xaa, 0xaa},
> +	{0x00, 0xd9, 0x11, 0xaa},
> +	{0x00, 0xda, 0x00, 0xaa},
> +	{0x00, 0xd9, 0x12, 0xaa},
> +	{0x00, 0xda, 0xff, 0xaa},
> +	{0x00, 0xd9, 0x13, 0xaa},
> +	{0x00, 0xda, 0xff, 0xaa},
> +	{0x00, 0xe8, 0x11, 0xaa},
> +	{0x00, 0xe9, 0x12, 0xaa},
> +	{0x00, 0xea, 0x5c, 0xaa},
> +	{0x00, 0xeb, 0xff, 0xaa},
> +	{0x00, 0xd8, 0x80, 0xaa},
> +	{0x00, 0xe6, 0x02, 0xaa},
> +	{0x00, 0xd6, 0x40, 0xaa},
> +	{0x00, 0xe3, 0x05, 0xaa},
> +	{0x00, 0xe0, 0x40, 0xaa},
> +	{0x00, 0xde, 0x03, 0xaa},
> +	{0x00, 0xdf, 0x03, 0xaa},
> +	{0x00, 0xdb, 0x02, 0xaa},
> +	{0x00, 0xdc, 0x00, 0xaa},
> +	{0x00, 0xdd, 0x03, 0xaa},
> +	{0x00, 0xe1, 0x08, 0xaa},
> +	{0x00, 0xe2, 0x01, 0xaa},
> +	{0x00, 0xd6, 0x40, 0xaa},
> +	{0x00, 0xe4, 0x40, 0xaa},
> +	{0x00, 0xa8, 0x9f, 0xaa},
> +	{0x00, 0xb4, 0x16, 0xaa},
> +	{0xb0, 0x02, 0x06, 0xcc},
> +	{0xb0, 0x18, 0x06, 0xcc},
> +	{0xb0, 0x19, 0x06, 0xcc},
> +	{0xb3, 0x5d, 0x18, 0xcc},
> +	{0xb3, 0x05, 0x00, 0xcc},
> +	{0xb3, 0x06, 0x00, 0xcc},
> +	{0x00, 0xb4, 0x0e, 0xaa},
> +	{0x00, 0xb5, 0x49, 0xaa},
> +	{0x00, 0xb6, 0x1c, 0xaa},
> +	{0x00, 0xb7, 0x96, 0xaa},
> +/* end of usbvm326.inf - start of ms-win trace */
> +	{0xb6, 0x12, 0xf8, 0xcc},
> +	{0xb6, 0x13, 0x3d, 0xcc},
> +/*read b306*/
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0x1a, 0x09, 0xaa},
> +	{0x00, 0x1b, 0x8a, 0xaa},
> +/*read b827*/
> +	{0xb8, 0x27, 0x00, 0xcc},
> +	{0xb8, 0x26, 0x60, 0xcc},
> +	{0xb8, 0x26, 0x60, 0xcc},
> +/*gamma - to do?*/
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0xae, 0x84, 0xaa},
> +/*gamma again*/
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0x96, 0xa0, 0xaa},
> +/*matrix*/
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0x91, 0x35, 0xaa},
> +	{0x00, 0x92, 0x22, 0xaa},
> +/*gamma*/
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0x95, 0x85, 0xaa},
> +/*matrix*/
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0x61, 0xb8, 0xaa},
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0x4d, 0x20, 0xaa},
> +	{0xb8, 0x22, 0x40, 0xcc},
> +	{0xb8, 0x23, 0x40, 0xcc},
> +	{0xb8, 0x24, 0x40, 0xcc},
> +	{0xb8, 0x81, 0x09, 0xcc},
> +	{0x00, 0x00, 0x64, 0xdd},
> +	{0x00, 0x03, 0x01, 0xaa},
> +/*read 46*/
> +	{0x00, 0x46, 0x3c, 0xaa},
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0x16, 0x40, 0xaa},
> +	{0x00, 0x17, 0x40, 0xaa},
> +	{0x00, 0x18, 0x40, 0xaa},
> +	{0x00, 0x19, 0x41, 0xaa},
> +	{0x00, 0x03, 0x01, 0xaa},
> +	{0x00, 0x46, 0x3c, 0xaa},
> +	{0x00, 0x00, 0x18, 0xdd},
> +/*read bfff*/
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0x1e, 0x46, 0xaa},
> +	{0x00, 0xa8, 0x8f, 0xaa},
> +	{0x00, 0x03, 0x00, 0xaa},
> +	{0x00, 0xb4, 0x1c, 0xaa},
> +	{0x00, 0xb5, 0x92, 0xaa},
> +	{0x00, 0xb6, 0x39, 0xaa},
> +	{0x00, 0xb7, 0x24, 0xaa},
> +/*write 89 0400 1415*/
> +};
> +
>  struct sensor_info {
>  	int sensorId;
>  	__u8 I2cAdd;
> @@ -1222,6 +1505,7 @@ static const struct sensor_info sensor_info_data[] = {
>  	{SENSOR_MI1320,     0x80 | 0xc8, 0x00, 0x148c, 0x64, 0x65, 0x01},
>  	{SENSOR_OV7670,     0x80 | 0x21, 0x0a, 0x7673, 0x66, 0x67, 0x05},
>  	{SENSOR_MI1310_SOC, 0x80 | 0x5d, 0x00, 0x143a, 0x24, 0x25, 0x01},
> +	{SENSOR_PO1200,     0x80 | 0x5c, 0x00, 0x1200, 0x67, 0x67, 0x01},
>  };
>  
>  /* read 'len' bytes in gspca_dev->usb_buf */
> @@ -1454,12 +1738,23 @@ static int sd_config(struct gspca_dev *gspca_dev,
>  		PDEBUG(D_PROBE, "Find Sensor OV7670");
>  		sd->sensor = SENSOR_OV7670;
>  		break;
> +	case SENSOR_PO1200:
> +		PDEBUG(D_PROBE, "Find Sensor PO1200");
> +		sd->sensor = SENSOR_PO1200;
> +		break;
>  	case SENSOR_PO3130NC:
>  		PDEBUG(D_PROBE, "Find Sensor PO3130NC");
>  		sd->sensor = SENSOR_PO3130NC;
>  		break;
>  	}
>  
> +	if (sd->bridge != BRIDGE_VC0321) {
> +		if (sensor == SENSOR_PO1200) {
> +			cam->cam_mode = svga_mode;
> +			cam->nmodes = ARRAY_SIZE(svga_mode);
> +		}
> +	}
> +
>  	sd->qindex = 7;
>  	sd->autogain = AUTOGAIN_DEF;
>  	sd->lightfreq = FREQ_DEF;
> @@ -1583,6 +1878,11 @@ static int sd_start(struct gspca_dev *gspca_dev)
>  		}
>  		usb_exchange(gspca_dev, po3130_rundata);
>  		break;
> +	case SENSOR_PO1200:
> +		GammaT = po1200_gamma;
> +		MatrixT = po1200_matrix;
> +		usb_exchange(gspca_dev, po1200_initVGA_data);
> +		break;
>  	default:
>  		PDEBUG(D_PROBE, "Damned !! no sensor found Bye");
>  		return -EMEDIUMTYPE;
> @@ -1615,11 +1915,15 @@ static int sd_start(struct gspca_dev *gspca_dev)
>  		reg_w(gspca_dev->dev, 0xa0, 0x23, 0xb800); * ISP CTRL_BAS
>  		*/
>  		/* set the led on 0x0892 0x0896 */
> -		reg_w(gspca_dev->dev, 0x89, 0xffff, 0xfdff);
> -		msleep(100);
> -		setquality(gspca_dev);
> -		setautogain(gspca_dev);
> -		setlightfreq(gspca_dev);
> +		if (sd->sensor != SENSOR_PO1200) {
> +			reg_w(gspca_dev->dev, 0x89, 0xffff, 0xfdff);
> +			msleep(100);
> +			setquality(gspca_dev);
> +			setautogain(gspca_dev);
> +			setlightfreq(gspca_dev);
> +		} else {
> +			reg_w(gspca_dev->dev, 0x89, 0x0400, 0x1415);
> +		}
>  	}
>  	return 0;
>  }
> @@ -1748,6 +2052,7 @@ static const __devinitdata struct usb_device_id device_table[] = {
>  	{USB_DEVICE(0x0ac8, 0x0328), .driver_info = BRIDGE_VC0321},
>  	{USB_DEVICE(0x0ac8, 0xc001), .driver_info = BRIDGE_VC0321},
>  	{USB_DEVICE(0x0ac8, 0xc002), .driver_info = BRIDGE_VC0321},
> +	{USB_DEVICE(0x15b8, 0x6002), .driver_info = BRIDGE_VC0323},
>  	{USB_DEVICE(0x17ef, 0x4802), .driver_info = BRIDGE_VC0323},
>  	{}
>  };

For this I would rather NAK as (though the added code seems distinct enough to 
avoid regressions) the changes are more than a simple addition of IDs

-- 

When all other means of communication fail, try words!





More information about the kernel-team mailing list