Skip to contentSkip to conversation

Support for Elgato Video Capture

PATCH In review Adrian Taylor 2 participants 2 messages Oct 20, 2010 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Support for Elgato Video Capture

This patch allows this device successfully to show video, at least from its composite input.

I have no information about the true hardware contents of this device and so this patch is based solely on fiddling with things until it worked. The chip appears to be em2860, and the closest device with equivalent inputs is the Typhoon DVD Maker. Copying the settings for that device appears to do the trick. That's what this patch does.

---
 drivers/media/video/em28xx/em28xx-cards.c |   16 ++++++++++++++++
 drivers/media/video/em28xx/em28xx.h       |    1 +
 2 files changed, 17 insertions(+), 0 deletions(-)
drivers/media/video/em28xx/em28xx-cards.c +16 -0
index 3a4fd85..5806f62 100644
@@ -1667,6 +1667,20 @@ struct em28xx_board em28xx_boards[] = {
        .tuner_gpio    = reddo_dvb_c_usb_box,
        .has_dvb       = 1,
    },
+   [EM2860_BOARD_ELGATO_VIDEO_CAPTURE] = {
+       .name         = "Elgato Video Capture",
+       .decoder      = EM28XX_SAA711X,
+       .tuner_type   = TUNER_ABSENT,   /* Capture only device */
+       .input        = { {
+           .type  = EM28XX_VMUX_COMPOSITE1,
+           .vmux  = SAA7115_COMPOSITE0,
+           .amux  = EM28XX_AMUX_LINE_IN,
+       }, {
+           .type  = EM28XX_VMUX_SVIDEO,
+           .vmux  = SAA7115_SVIDEO3,
+           .amux  = EM28XX_AMUX_LINE_IN,
+       } },
+   },
 };
 const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards);
 
@@ -1788,6 +1802,8 @@ struct usb_device_id em28xx_id_table[] = {
            .driver_info = EM2820_BOARD_IODATA_GVMVP_SZ },
    { USB_DEVICE(0xeb1a, 0x50a6),
            .driver_info = EM2860_BOARD_GADMEI_UTV330 },
+   { USB_DEVICE(0x0fd9, 0x0033),
+           .driver_info = EM2860_BOARD_ELGATO_VIDEO_CAPTURE},
    { },
 };
 MODULE_DEVICE_TABLE(usb, em28xx_id_table);
drivers/media/video/em28xx/em28xx.h +1 -0
index b252d1b..23733b8 100644
@@ -113,6 +113,7 @@
 #define EM2870_BOARD_REDDO_DVB_C_USB_BOX          73
 #define EM2800_BOARD_VC211A              74
 #define EM2882_BOARD_DIKOM_DK300         75
+#define EM2860_BOARD_ELGATO_VIDEO_CAPTURE         76
 
 /* Limits minimum and default number of buffers */
 #define EM28XX_MIN_BUF 4
Signature · 1 line
1.7.0.4
#1 lore raw
Quoted 10 lines · Adrian Taylor

This patch allows this device successfully to show video, at least from its composite input.

I have no information about the true hardware contents of this device and so this patch is based solely on fiddling with things until it worked. The chip appears to be em2860, and the closest device with equivalent inputs is the Typhoon DVD Maker. Copying the settings for that device appears to do the trick. That's what this patch does.

Patch probably needs to be redone against the staging/v2.6.37 branch of the v4l/dvb media_tree, since there's already a device 76 there (I know, because I added it. ;). Simple update though. Otherwise, looks sane.

For reference:
http://git.linuxtv.org/media_tree.git?a=shortlog;h=refs/heads/staging/v2.6.37
http://git.linuxtv.org/media_tree.git?a=commitdiff;h=7e48b30af033076c85ab48a8306b5588faf5fb4b

Quoted 53 lines

---
drivers/media/video/em28xx/em28xx-cards.c | 16 ++++++++++++++++
drivers/media/video/em28xx/em28xx.h | 1 +

2 files changed, 17 insertions(+), 0 deletions(-)
drivers/media/video/em28xx/em28xx-cards.c +16 -0
index 3a4fd85..5806f62 100644
@@ -1667,6 +1667,20 @@ struct em28xx_board em28xx_boards[] = {
       .tuner_gpio    = reddo_dvb_c_usb_box,
       .has_dvb       = 1,
   },
+   [EM2860_BOARD_ELGATO_VIDEO_CAPTURE] = {
+       .name         = "Elgato Video Capture",
+       .decoder      = EM28XX_SAA711X,
+       .tuner_type   = TUNER_ABSENT,   /* Capture only device */
+       .input        = { {
+           .type  = EM28XX_VMUX_COMPOSITE1,
+           .vmux  = SAA7115_COMPOSITE0,
+           .amux  = EM28XX_AMUX_LINE_IN,
+       }, {
+           .type  = EM28XX_VMUX_SVIDEO,
+           .vmux  = SAA7115_SVIDEO3,
+           .amux  = EM28XX_AMUX_LINE_IN,
+       } },
+   },
 };
 const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards);
 
@@ -1788,6 +1802,8 @@ struct usb_device_id em28xx_id_table[] = {
           .driver_info = EM2820_BOARD_IODATA_GVMVP_SZ },
   { USB_DEVICE(0xeb1a, 0x50a6),
           .driver_info = EM2860_BOARD_GADMEI_UTV330 },
+   { USB_DEVICE(0x0fd9, 0x0033),
+           .driver_info = EM2860_BOARD_ELGATO_VIDEO_CAPTURE},
   { },
 };
 MODULE_DEVICE_TABLE(usb, em28xx_id_table);
drivers/media/video/em28xx/em28xx.h +1 -0
index b252d1b..23733b8 100644
@@ -113,6 +113,7 @@
 #define EM2870_BOARD_REDDO_DVB_C_USB_BOX          73
 #define EM2800_BOARD_VC211A              74
 #define EM2882_BOARD_DIKOM_DK300         75
+#define EM2860_BOARD_ELGATO_VIDEO_CAPTURE         76
 
 /* Limits minimum and default number of buffers */
 #define EM28XX_MIN_BUF 4
Signature · 1 line
1.7.0.4
Signature · 2 lines
Jarod Wilson
[email protected]