From: Thomas Pantzer <Thomas.Pantzer@gmx.de>
To: linux-media@vger.kernel.org
Subject: Support for Terratech Grabster MX150/250 and ADStech XPress USBAV-192
Date: Mon, 28 Oct 2019 00:19:37 +0100 [thread overview]
Message-ID: <5DB62609.3050404@gmx.de> (raw)
[-- Attachment #1: Type: text/plain, Size: 500 bytes --]
- Adds support for USB analog video/audio capture devices
- Terratec Grabster AV 150/250 MX USB-ID (0ccd:0079)
- ADS Tech Instant Video XPress USBAV-192 USB-ID (06e1:a192)
- Bugfix: constant TM6000_MAXBOARDS off by one,
Grabster was never enumerated
Signed-off-by: Thomas Pantzer <kernel-org@pantzer.net>
---
drivers/media/usb/tm6000/tm6000-cards.c | 79
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------
1 file changed, 58 insertions(+), 21 deletions(-)
[-- Attachment #2: tm6000-cards.diff --]
[-- Type: text/plain, Size: 4363 bytes --]
diff -bBduwp linux-3.18.16/drivers/media/usb/tm6000/tm6000-cards.c-vanilla linux/drivers/media/usb/tm6000/tm6000-cards.c
--- linux-3.18.16/drivers/media/usb/tm6000/tm6000-cards.c-vanilla 2015-06-19 18:42:40.000000000 +0200
+++ linux/drivers/media/usb/tm6000/tm6000-cards.c 2019-10-28 00:01:45.000000000 +0100
@@ -52,13 +52,16 @@
#define TM6010_BOARD_BEHOLD_WANDER_LITE 14
#define TM6010_BOARD_BEHOLD_VOYAGER_LITE 15
#define TM5600_BOARD_TERRATEC_GRABSTER 16
+#define TM5600_BOARD_ADSTECH_XPRESS_USBAV_192 17
+
#define is_generic(model) ((model == TM6000_BOARD_UNKNOWN) || \
(model == TM5600_BOARD_GENERIC) || \
(model == TM6000_BOARD_GENERIC) || \
(model == TM6010_BOARD_GENERIC))
-#define TM6000_MAXBOARDS 16
+#define TM6000_MAXBOARDS 18
+
static unsigned int card[] = {[0 ... (TM6000_MAXBOARDS - 1)] = UNSET };
module_param_array(card, int, NULL, 0444);
@@ -500,25 +503,6 @@ static struct tm6000_board tm6000_boards
.amux = TM6000_AMUX_SIF1,
},
},
- [TM5600_BOARD_TERRATEC_GRABSTER] = {
- .name = "Terratec Grabster AV 150/250 MX",
- .type = TM5600,
- .tuner_type = TUNER_ABSENT,
- .vinput = { {
- .type = TM6000_INPUT_TV,
- .vmux = TM6000_VMUX_VIDEO_B,
- .amux = TM6000_AMUX_ADC1,
- }, {
- .type = TM6000_INPUT_COMPOSITE1,
- .vmux = TM6000_VMUX_VIDEO_A,
- .amux = TM6000_AMUX_ADC2,
- }, {
- .type = TM6000_INPUT_SVIDEO,
- .vmux = TM6000_VMUX_VIDEO_AB,
- .amux = TM6000_AMUX_ADC2,
- },
- },
- },
[TM6010_BOARD_TWINHAN_TU501] = {
.name = "Twinhan TU501(704D1)",
.tuner_type = TUNER_XC2028, /* has a XC3028 */
@@ -614,6 +598,58 @@ static struct tm6000_board tm6000_boards
.amux = TM6000_AMUX_ADC1,
},
},
+ [TM5600_BOARD_TERRATEC_GRABSTER] = {
+ .name = "Terratec Grabster AV 150/250 MX",
+ .type = TM5600,
+ .tuner_type = TUNER_ABSENT,
+ .gpio = {
+ .tuner_reset = TM6000_GPIO_1,
+ /* this GPIO configuration needs to be here due to a
+ bug elsewhere, if it is missing the driver fails to
+ load, if TUNER_ABSENT or has_tuner==0 is stated, the
+ tuner-reset configuration should be ignored */
+ },
+ .caps = {
+ .has_tuner = 0,
+ .has_eeprom = 0,
+ },
+ .vinput = { {
+ .type = TM6000_INPUT_SVIDEO,
+ .vmux = TM6000_VMUX_VIDEO_A,
+ .amux = TM6000_AMUX_ADC1,
+ }, {
+ .type = TM6000_INPUT_COMPOSITE1,
+ .vmux = TM6000_VMUX_VIDEO_B,
+ .amux = TM6000_AMUX_ADC2,
+ },
+ },
+ },
+ [TM5600_BOARD_ADSTECH_XPRESS_USBAV_192] = {
+ .name = "ADStech XPress USBAV-192",
+ .type = TM5600,
+ .tuner_type = TUNER_ABSENT,
+ .caps = {
+ .has_eeprom = 1,
+ .has_tuner = 0,
+ },
+ .gpio = {
+ .tuner_reset = TM6000_GPIO_1,
+ /* this GPIO configuration needs to be here due to a
+ bug elsewhere, if it is missing the driver fails to
+ load, if TUNER_ABSENT or has_tuner==0 is stated, the
+ tuner-reset configuration should be ignored */
+ },
+ .vinput = { {
+ .type = TM6000_INPUT_SVIDEO,
+ .vmux = TM6000_VMUX_VIDEO_A,
+ .amux = TM6000_AMUX_ADC1,
+ }, {
+ .type = TM6000_INPUT_COMPOSITE1,
+ .vmux = TM6000_VMUX_VIDEO_B,
+ .amux = TM6000_AMUX_ADC2,
+ },
+ },
+ },
};
/* table of devices that work with this driver */
@@ -631,13 +667,14 @@ static struct usb_device_id tm6000_id_ta
{ USB_DEVICE(0x6000, 0xdec1), .driver_info = TM6010_BOARD_BEHOLD_VOYAGER },
{ USB_DEVICE(0x0ccd, 0x0086), .driver_info = TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE },
{ USB_DEVICE(0x0ccd, 0x00A5), .driver_info = TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE },
- { USB_DEVICE(0x0ccd, 0x0079), .driver_info = TM5600_BOARD_TERRATEC_GRABSTER },
{ USB_DEVICE(0x13d3, 0x3240), .driver_info = TM6010_BOARD_TWINHAN_TU501 },
{ USB_DEVICE(0x13d3, 0x3241), .driver_info = TM6010_BOARD_TWINHAN_TU501 },
{ USB_DEVICE(0x13d3, 0x3243), .driver_info = TM6010_BOARD_TWINHAN_TU501 },
{ USB_DEVICE(0x13d3, 0x3264), .driver_info = TM6010_BOARD_TWINHAN_TU501 },
{ USB_DEVICE(0x6000, 0xdec2), .driver_info = TM6010_BOARD_BEHOLD_WANDER_LITE },
{ USB_DEVICE(0x6000, 0xdec3), .driver_info = TM6010_BOARD_BEHOLD_VOYAGER_LITE },
+ { USB_DEVICE(0x0ccd, 0x0079), .driver_info = TM5600_BOARD_TERRATEC_GRABSTER },
+ { USB_DEVICE(0x06e1, 0xa192), .driver_info = TM5600_BOARD_ADSTECH_XPRESS_USBAV_192 },
{ }
};
MODULE_DEVICE_TABLE(usb, tm6000_id_table);
next reply other threads:[~2019-10-27 23:19 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-27 23:19 Thomas Pantzer [this message]
2020-01-15 17:45 ` Support for Terratech Grabster MX150/250 and ADStech XPress USBAV-192 Sean Young
-- strict thread matches above, loose matches on Subject: below --
2019-10-27 17:39 Thomas Pantzer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5DB62609.3050404@gmx.de \
--to=thomas.pantzer@gmx.de \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.