diff -r abd3aac6644e linux/drivers/media/video/hdpvr/hdpvr-control.c --- a/linux/drivers/media/video/hdpvr/hdpvr-control.c Fri Jul 02 00:38:54 2010 -0300 +++ b/linux/drivers/media/video/hdpvr/hdpvr-control.c Wed Oct 19 23:27:41 2011 -0400 @@ -29,8 +29,6 @@ int ret; char request_type = 0x38, snd_request = 0x01; - msleep(10); - mutex_lock(&dev->usbc_mutex); dev->usbc_buf[0] = valbuf; ret = usb_control_msg(dev->udev, diff -r abd3aac6644e linux/drivers/media/video/hdpvr/hdpvr-core.c --- a/linux/drivers/media/video/hdpvr/hdpvr-core.c Fri Jul 02 00:38:54 2010 -0300 +++ b/linux/drivers/media/video/hdpvr/hdpvr-core.c Wed Oct 19 23:27:41 2011 -0400 @@ -60,6 +60,7 @@ { USB_DEVICE(HD_PVR_VENDOR_ID, HD_PVR_PRODUCT_ID1) }, { USB_DEVICE(HD_PVR_VENDOR_ID, HD_PVR_PRODUCT_ID2) }, { USB_DEVICE(HD_PVR_VENDOR_ID, HD_PVR_PRODUCT_ID3) }, + { USB_DEVICE(HD_PVR_VENDOR_ID, HD_PVR_PRODUCT_ID4) }, { } /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, hdpvr_table); @@ -262,10 +263,10 @@ .bitrate_mode = HDPVR_CONSTANT, .gop_mode = HDPVR_SIMPLE_IDR_GOP, .audio_codec = V4L2_MPEG_AUDIO_ENCODING_AAC, - .brightness = 0x86, - .contrast = 0x80, - .hue = 0x80, - .saturation = 0x80, + .brightness = 0x80, + .contrast = 0x40, + .hue = 0xf, + .saturation = 0x40, .sharpness = 0x80, }; diff -r abd3aac6644e linux/drivers/media/video/hdpvr/hdpvr-video.c --- a/linux/drivers/media/video/hdpvr/hdpvr-video.c Fri Jul 02 00:38:54 2010 -0300 +++ b/linux/drivers/media/video/hdpvr/hdpvr-video.c Wed Oct 19 23:27:41 2011 -0400 @@ -26,7 +26,7 @@ #include #include "hdpvr.h" -#define BULK_URB_TIMEOUT 1250 /* 1.25 seconds */ +#define BULK_URB_TIMEOUT 90 /* 0.09 seconds */ #define print_buffer_status() { \ v4l2_dbg(MSG_BUFFER, hdpvr_debug, &dev->v4l2_dev, \ @@ -337,8 +337,6 @@ dev->bulk_in_endpointAddr), buf, dev->bulk_in_size, &actual_length, BULK_URB_TIMEOUT)) { - /* wait */ - msleep(5); v4l2_dbg(MSG_BUFFER, hdpvr_debug, &dev->v4l2_dev, "%2d: got %d bytes\n", c, actual_length); } @@ -731,13 +729,13 @@ switch (qc->id) { case V4L2_CID_BRIGHTNESS: - return v4l2_ctrl_query_fill(qc, 0x0, 0xff, 1, 0x86); + return v4l2_ctrl_query_fill(qc, 0x0, 0xff, 1, 0x80); case V4L2_CID_CONTRAST: - return v4l2_ctrl_query_fill(qc, 0x0, 0xff, 1, 0x80); + return v4l2_ctrl_query_fill(qc, 0x0, 0xff, 1, 0x40); case V4L2_CID_SATURATION: - return v4l2_ctrl_query_fill(qc, 0x0, 0xff, 1, 0x80); + return v4l2_ctrl_query_fill(qc, 0x0, 0xff, 1, 0x40); case V4L2_CID_HUE: - return v4l2_ctrl_query_fill(qc, 0x0, 0xff, 1, 0x80); + return v4l2_ctrl_query_fill(qc, 0x0, 0x1e, 1, 0xF); case V4L2_CID_SHARPNESS: return v4l2_ctrl_query_fill(qc, 0x0, 0xff, 1, 0x80); case V4L2_CID_MPEG_AUDIO_ENCODING: diff -r abd3aac6644e linux/drivers/media/video/hdpvr/hdpvr.h --- a/linux/drivers/media/video/hdpvr/hdpvr.h Fri Jul 02 00:38:54 2010 -0300 +++ b/linux/drivers/media/video/hdpvr/hdpvr.h Wed Oct 19 23:27:41 2011 -0400 @@ -31,6 +31,7 @@ #define HD_PVR_PRODUCT_ID1 0x4901 #define HD_PVR_PRODUCT_ID2 0x4902 #define HD_PVR_PRODUCT_ID3 0x4982 +#define HD_PVR_PRODUCT_ID4 0x4903 #define UNSET (-1U)