[media] tm6000: fix s-video input
Add compatibility for composite and s-video inputs. Some TV cards hasn't it. Fix S-Video input, the s-video cable has only video signals no audio. Call the function of audio configure kill chroma in signal. only b/w video. Known bugs: - after s-video the audio for radio didn't work, TV crashed hardly - after composite TV crashed hardly too. P.S. After this patch I'll want to rework the procedure of configure video. Now it has a lot of junk and dubles. With my best regards, Dmitry. Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Родитель
812738e111
Коммит
2aefbc1acb
|
@ -235,11 +235,13 @@ struct tm6000_board tm6000_boards[] = {
|
|||
.avideo = TM6000_AIP_SIF1,
|
||||
.aradio = TM6000_AIP_LINE1,
|
||||
.caps = {
|
||||
.has_tuner = 1,
|
||||
.has_dvb = 1,
|
||||
.has_zl10353 = 1,
|
||||
.has_eeprom = 1,
|
||||
.has_remote = 1,
|
||||
.has_tuner = 1,
|
||||
.has_dvb = 1,
|
||||
.has_zl10353 = 1,
|
||||
.has_eeprom = 1,
|
||||
.has_remote = 1,
|
||||
.has_input_comp = 1,
|
||||
.has_input_svid = 1,
|
||||
},
|
||||
.gpio = {
|
||||
.tuner_reset = TM6010_GPIO_0,
|
||||
|
@ -255,11 +257,13 @@ struct tm6000_board tm6000_boards[] = {
|
|||
.avideo = TM6000_AIP_SIF1,
|
||||
.aradio = TM6000_AIP_LINE1,
|
||||
.caps = {
|
||||
.has_tuner = 1,
|
||||
.has_dvb = 0,
|
||||
.has_zl10353 = 0,
|
||||
.has_eeprom = 1,
|
||||
.has_remote = 1,
|
||||
.has_tuner = 1,
|
||||
.has_dvb = 0,
|
||||
.has_zl10353 = 0,
|
||||
.has_eeprom = 1,
|
||||
.has_remote = 1,
|
||||
.has_input_comp = 1,
|
||||
.has_input_svid = 1,
|
||||
},
|
||||
.gpio = {
|
||||
.tuner_reset = TM6010_GPIO_0,
|
||||
|
@ -327,10 +331,13 @@ struct tm6000_board tm6000_boards[] = {
|
|||
.avideo = TM6000_AIP_SIF1,
|
||||
.aradio = TM6000_AIP_LINE1,
|
||||
.caps = {
|
||||
.has_tuner = 1,
|
||||
.has_dvb = 1,
|
||||
.has_zl10353 = 1,
|
||||
.has_eeprom = 1,
|
||||
.has_tuner = 1,
|
||||
.has_dvb = 1,
|
||||
.has_zl10353 = 1,
|
||||
.has_eeprom = 1,
|
||||
.has_remote = 0,
|
||||
.has_input_comp = 0,
|
||||
.has_input_svid = 0,
|
||||
},
|
||||
.gpio = {
|
||||
.tuner_reset = TM6010_GPIO_0,
|
||||
|
@ -346,10 +353,13 @@ struct tm6000_board tm6000_boards[] = {
|
|||
.avideo = TM6000_AIP_SIF1,
|
||||
.aradio = TM6000_AIP_LINE1,
|
||||
.caps = {
|
||||
.has_tuner = 1,
|
||||
.has_dvb = 0,
|
||||
.has_zl10353 = 0,
|
||||
.has_eeprom = 1,
|
||||
.has_tuner = 1,
|
||||
.has_dvb = 0,
|
||||
.has_zl10353 = 0,
|
||||
.has_eeprom = 1,
|
||||
.has_remote = 0,
|
||||
.has_input_comp = 0,
|
||||
.has_input_svid = 0,
|
||||
},
|
||||
.gpio = {
|
||||
.tuner_reset = TM6010_GPIO_0,
|
||||
|
|
|
@ -1161,8 +1161,6 @@ int tm6000_set_standard(struct tm6000_core *dev, v4l2_std_id * norm)
|
|||
rc = tm6000_load_std(dev, svideo_stds[i].common,
|
||||
sizeof(svideo_stds[i].
|
||||
common));
|
||||
tm6000_set_audio_std(dev, svideo_stds[i].audio_default_std);
|
||||
|
||||
goto ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1080,18 +1080,27 @@ static int vidioc_s_std (struct file *file, void *priv, v4l2_std_id *norm)
|
|||
static int vidioc_enum_input(struct file *file, void *priv,
|
||||
struct v4l2_input *inp)
|
||||
{
|
||||
struct tm6000_fh *fh = priv;
|
||||
struct tm6000_core *dev = fh->dev;
|
||||
|
||||
switch (inp->index) {
|
||||
case TM6000_INPUT_TV:
|
||||
inp->type = V4L2_INPUT_TYPE_TUNER;
|
||||
strcpy(inp->name, "Television");
|
||||
break;
|
||||
case TM6000_INPUT_COMPOSITE:
|
||||
inp->type = V4L2_INPUT_TYPE_CAMERA;
|
||||
strcpy(inp->name, "Composite");
|
||||
if (dev->caps.has_input_comp) {
|
||||
inp->type = V4L2_INPUT_TYPE_CAMERA;
|
||||
strcpy(inp->name, "Composite");
|
||||
} else
|
||||
return -EINVAL;
|
||||
break;
|
||||
case TM6000_INPUT_SVIDEO:
|
||||
inp->type = V4L2_INPUT_TYPE_CAMERA;
|
||||
strcpy(inp->name, "S-Video");
|
||||
if (dev->caps.has_input_svid) {
|
||||
inp->type = V4L2_INPUT_TYPE_CAMERA;
|
||||
strcpy(inp->name, "S-Video");
|
||||
} else
|
||||
return -EINVAL;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
|
|
|
@ -129,6 +129,8 @@ struct tm6000_capabilities {
|
|||
unsigned int has_zl10353:1;
|
||||
unsigned int has_eeprom:1;
|
||||
unsigned int has_remote:1;
|
||||
unsigned int has_input_comp:1;
|
||||
unsigned int has_input_svid:1;
|
||||
};
|
||||
|
||||
struct tm6000_dvb {
|
||||
|
|
Загрузка…
Ссылка в новой задаче