mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-27 23:25:13 -04:00
media: em28xx: Add StarTech SVID2USB232
Add support for the StarTech SVID2USB232 USB analog video grabber
(USB ID eb1a:8286). The device uses the Empia EM28281 bridge, a
member of the em2828X family with an integrated video decoder.
Reuses the EM28XX_BUILTIN decoder path introduced in commit
8e53399c63 ("media: em28xx: Add support for Empia em2828X bridge").
The standard PAL/NTSC switching and composite/S-Video input
switching in em2828X_decoder_set_std() handle this board without
board-specific code.
Inputs:
- Composite video
- S-Video
- Analog stereo audio (line in)
Tested on hardware with a PAL signal on both S-Video and composite
inputs (ffplay -f v4l2 /dev/video0).
This supersedes an earlier RFC posting from before EM28XX_BUILTIN was
available, which proposed a custom EM28XX_I2C_ALGO_EM28281_INTEGRATED
TVP5150-bridge algorithm. That approach is no longer necessary now that
the em2828X bridge support landed.
Link: https://lore.kernel.org/all/20260119185921.575666-1-xeeynamo@hotmail.com/
Signed-off-by: Luciano Ciccariello <xeeynamo@hotmail.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
committed by
Hans Verkuil
parent
1924d0788c
commit
bedd5ea6b7
@@ -446,3 +446,7 @@ EM28xx cards list
|
||||
- MyGica UTV3 Analog USB2.0 TV Box
|
||||
- em2860
|
||||
- eb1a:2860
|
||||
* - 113
|
||||
- StarTech SVID2USB232
|
||||
- em28281
|
||||
- eb1a:8286
|
||||
|
||||
@@ -2677,6 +2677,28 @@ const struct em28xx_board em28xx_boards[] = {
|
||||
.gpio = mygica_utv3_tuner_audio_gpio,
|
||||
} },
|
||||
},
|
||||
/* eb1a:8286 StarTech SVID2USB232
|
||||
* Empia EM28281 with integrated TVP5150-compatible video decoder.
|
||||
* Composite and S-Video inputs, stereo line-in audio.
|
||||
*/
|
||||
[EM28281_BOARD_STARTECH_SVID2USB232] = {
|
||||
.name = "StarTech SVID2USB232",
|
||||
.vchannels = 2,
|
||||
.tuner_type = TUNER_ABSENT,
|
||||
.has_dvb = 0,
|
||||
.decoder = EM28XX_BUILTIN,
|
||||
.i2c_speed = EM28XX_I2C_CLK_WAIT_ENABLE | EM28XX_I2C_FREQ_400_KHZ,
|
||||
.xclk = EM28XX_XCLK_FREQUENCY_12MHZ,
|
||||
.input = { {
|
||||
.type = EM28XX_VMUX_COMPOSITE,
|
||||
.vmux = EM2828X_COMPOSITE,
|
||||
.amux = EM28XX_AMUX_LINE_IN,
|
||||
}, {
|
||||
.type = EM28XX_VMUX_SVIDEO,
|
||||
.vmux = EM2828X_SVIDEO,
|
||||
.amux = EM28XX_AMUX_LINE_IN,
|
||||
} },
|
||||
},
|
||||
[EM2828X_BOARD_HAUPPAUGE_USB_LIVE2] = {
|
||||
.name = "Hauppauge USB Live2",
|
||||
.vchannels = 2,
|
||||
@@ -2946,6 +2968,8 @@ struct usb_device_id em28xx_id_table[] = {
|
||||
.driver_info = EM2874_BOARD_HAUPPAUGE_USB_QUADHD },
|
||||
{ USB_DEVICE(0x2040, 0xc220),
|
||||
.driver_info = EM2828X_BOARD_HAUPPAUGE_USB_LIVE2 },
|
||||
{ USB_DEVICE(0xeb1a, 0x8286),
|
||||
.driver_info = EM28281_BOARD_STARTECH_SVID2USB232 },
|
||||
{ USB_DEVICE(0x2040, 0x0360),
|
||||
.driver_info = EM2828X_BOARD_HAUPPAUGE_935_V2 },
|
||||
{ USB_DEVICE(0x2040, 0x8360),
|
||||
@@ -3859,6 +3883,11 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
|
||||
dev->wait_after_write = 0;
|
||||
dev->eeprom_addrwidth_16bit = 1;
|
||||
break;
|
||||
case CHIP_ID_EM28281:
|
||||
chip_name = "em28281";
|
||||
dev->wait_after_write = 0;
|
||||
dev->eeprom_addrwidth_16bit = 1;
|
||||
break;
|
||||
case CHIP_ID_EM2883:
|
||||
chip_name = "em2882/3";
|
||||
dev->wait_after_write = 0;
|
||||
|
||||
@@ -283,6 +283,7 @@ enum em28xx_chip_id {
|
||||
CHIP_ID_EM2884 = 68,
|
||||
CHIP_ID_EM28174 = 113,
|
||||
CHIP_ID_EM28178 = 114,
|
||||
CHIP_ID_EM28281 = 145,
|
||||
CHIP_ID_EM2828X = 148,
|
||||
};
|
||||
|
||||
|
||||
@@ -149,6 +149,7 @@
|
||||
#define EM2828X_BOARD_HAUPPAUGE_955_V2 110
|
||||
#define EM2828X_BOARD_HAUPPAUGE_975_V2 111
|
||||
#define EM28178_BOARD_PCTV_461E_V3 112
|
||||
#define EM28281_BOARD_STARTECH_SVID2USB232 113
|
||||
|
||||
/* Limits minimum and default number of buffers */
|
||||
#define EM28XX_MIN_BUF 4
|
||||
|
||||
Reference in New Issue
Block a user