aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/usbvision
diff options
context:
space:
mode:
authorThierry MERLE <thierry.merle@free.fr>2008-01-09 15:34:53 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-25 16:04:46 -0500
commitc6243d9c3de82e46467c88898db45ca14b6843a0 (patch)
treed9871d38afaae51521f3d3676d9e3b4a7326b57c /drivers/media/video/usbvision
parenteeec4b3853a8af0cd2b42af24b9e8fd0e0ef1f8a (diff)
V4L/DVB (6995): ubvision: add adjust_X_Offset/adjust_Y_Offset parms
Add adjust_X_Offset/adjust_Y_Offset module parameters to allow users to tune X and Y picture offsets for their almost-working tuners without repetitive recompilation. Signed-off-by: Thierry MERLE <thierry.merle@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/usbvision')
-rw-r--r--drivers/media/video/usbvision/usbvision-core.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/media/video/usbvision/usbvision-core.c b/drivers/media/video/usbvision/usbvision-core.c
index 9e404b87d000..1e52a0387aa5 100644
--- a/drivers/media/video/usbvision/usbvision-core.c
+++ b/drivers/media/video/usbvision/usbvision-core.c
@@ -69,6 +69,15 @@ static int SwitchSVideoInput = 0; // To help people with Black and White outpu
69module_param(SwitchSVideoInput, int, 0444); 69module_param(SwitchSVideoInput, int, 0444);
70MODULE_PARM_DESC(SwitchSVideoInput, " Set the S-Video input. Some cables and input device are wired differently. Default: 0 (Off)"); 70MODULE_PARM_DESC(SwitchSVideoInput, " Set the S-Video input. Some cables and input device are wired differently. Default: 0 (Off)");
71 71
72static unsigned int adjust_X_Offset = -1;
73module_param(adjust_X_Offset, int, 0644);
74MODULE_PARM_DESC(adjust_X_Offset, "adjust X offset display [core]");
75
76static unsigned int adjust_Y_Offset = -1;
77module_param(adjust_Y_Offset, int, 0644);
78MODULE_PARM_DESC(adjust_Y_Offset, "adjust Y offset display [core]");
79
80
72#define ENABLE_HEXDUMP 0 /* Enable if you need it */ 81#define ENABLE_HEXDUMP 0 /* Enable if you need it */
73 82
74 83
@@ -2097,11 +2106,21 @@ int usbvision_set_input(struct usb_usbvision *usbvision)
2097 value[5]=(usbvision_device_data[usbvision->DevModel].X_Offset & 0x0300) >> 8; 2106 value[5]=(usbvision_device_data[usbvision->DevModel].X_Offset & 0x0300) >> 8;
2098 } 2107 }
2099 2108
2109 if (adjust_X_Offset != -1) {
2110 value[4] = adjust_X_Offset & 0xff;
2111 value[5] = (adjust_X_Offset & 0x0300) >> 8;
2112 }
2113
2100 if (usbvision_device_data[usbvision->DevModel].Y_Offset >= 0) { 2114 if (usbvision_device_data[usbvision->DevModel].Y_Offset >= 0) {
2101 value[6]=usbvision_device_data[usbvision->DevModel].Y_Offset & 0xff; 2115 value[6]=usbvision_device_data[usbvision->DevModel].Y_Offset & 0xff;
2102 value[7]=(usbvision_device_data[usbvision->DevModel].Y_Offset & 0x0300) >> 8; 2116 value[7]=(usbvision_device_data[usbvision->DevModel].Y_Offset & 0x0300) >> 8;
2103 } 2117 }
2104 2118
2119 if (adjust_Y_Offset != -1) {
2120 value[6] = adjust_Y_Offset & 0xff;
2121 value[7] = (adjust_Y_Offset & 0x0300) >> 8;
2122 }
2123
2105 rc = usb_control_msg(usbvision->dev, usb_sndctrlpipe(usbvision->dev, 1), 2124 rc = usb_control_msg(usbvision->dev, usb_sndctrlpipe(usbvision->dev, 1),
2106 USBVISION_OP_CODE, /* USBVISION specific code */ 2125 USBVISION_OP_CODE, /* USBVISION specific code */
2107 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_ENDPOINT, 0, 2126 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_ENDPOINT, 0,