[media] stk1160: Add support for S-Video input
In order to fully replace easycap driver with stk1160, it's also necessary to add S-Video support. A similar patch backported for v3.2 kernel has been tested by three different users. Signed-off-by: Ezequiel Garcia <elezegarcia@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Родитель
d6d022e738
Коммит
56a960bf3f
|
@ -100,12 +100,21 @@ int stk1160_write_reg(struct stk1160 *dev, u16 reg, u16 value)
|
|||
|
||||
void stk1160_select_input(struct stk1160 *dev)
|
||||
{
|
||||
int route;
|
||||
static const u8 gctrl[] = {
|
||||
0x98, 0x90, 0x88, 0x80
|
||||
0x98, 0x90, 0x88, 0x80, 0x98
|
||||
};
|
||||
|
||||
if (dev->ctl_input < ARRAY_SIZE(gctrl))
|
||||
if (dev->ctl_input == STK1160_SVIDEO_INPUT)
|
||||
route = SAA7115_SVIDEO3;
|
||||
else
|
||||
route = SAA7115_COMPOSITE0;
|
||||
|
||||
if (dev->ctl_input < ARRAY_SIZE(gctrl)) {
|
||||
v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_routing,
|
||||
route, 0, 0);
|
||||
stk1160_write_reg(dev, STK1160_GCTRL, gctrl[dev->ctl_input]);
|
||||
}
|
||||
}
|
||||
|
||||
/* TODO: We should break this into pieces */
|
||||
|
@ -351,8 +360,6 @@ static int stk1160_probe(struct usb_interface *interface,
|
|||
|
||||
/* i2c reset saa711x */
|
||||
v4l2_device_call_all(&dev->v4l2_dev, 0, core, reset, 0);
|
||||
v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_routing,
|
||||
0, 0, 0);
|
||||
v4l2_device_call_all(&dev->v4l2_dev, 0, video, s_stream, 0);
|
||||
|
||||
/* reset stk1160 to default values */
|
||||
|
|
|
@ -419,7 +419,12 @@ static int vidioc_enum_input(struct file *file, void *priv,
|
|||
if (i->index > STK1160_MAX_INPUT)
|
||||
return -EINVAL;
|
||||
|
||||
/* S-Video special handling */
|
||||
if (i->index == STK1160_SVIDEO_INPUT)
|
||||
sprintf(i->name, "S-Video");
|
||||
else
|
||||
sprintf(i->name, "Composite%d", i->index);
|
||||
|
||||
i->type = V4L2_INPUT_TYPE_CAMERA;
|
||||
i->std = dev->vdev.tvnorms;
|
||||
return 0;
|
||||
|
|
|
@ -46,7 +46,8 @@
|
|||
|
||||
#define STK1160_MIN_PKT_SIZE 3072
|
||||
|
||||
#define STK1160_MAX_INPUT 3
|
||||
#define STK1160_MAX_INPUT 4
|
||||
#define STK1160_SVIDEO_INPUT 4
|
||||
|
||||
#define STK1160_I2C_TIMEOUT 100
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче