Messages in this thread Patch in this message | | | Date | Wed, 25 Nov 2015 12:44:58 +0100 | Subject | Re: [PATCH] V4L: em28xx: add support for Digitus/Plextor PX-AV200U | From | James Bates <> |
| |
Hi all,
Is there any reason why this patch was not merged into the mainline kernel branch? I own a Plextor PX AV200U, and I can confirm that this code does indeed work: I can capture both video and audio from the card, and I would be very grateful if it could be merged.
Of course, it needs a little tweaking to get it to run in 4.xx kernels. For one thing, the assigned id-number (59) has by now been taken by another board, but I simply used the next available id as found in em28xx.h (98 in kernel 4.1.12). Also some constants appear to have changed name, and a few files were moved around since this patch was originally posted.
Below is my tweaked patch, which I applied to kernel 4.1.12.
Is there some way to get this feature merged into the mainline branch?
Kind regards, James Bates
--- Documentation/video4linux/CARDLIST.em28xx.orig 2015-04-13 00:12:50.000000000 +0200 +++ Documentation/video4linux/CARDLIST.em28xx 2015-10-24 20:45:28.000000000 +0200 @@ -94,3 +94,4 @@ 93 -> KWorld USB ATSC TV Stick UB435-Q V3 (em2874) [1b80:e34c] 94 -> PCTV tripleStick (292e) (em28178) 95 -> Leadtek VC100 (em2861) [0413:6f07] + 98 -> Plextor PX-AV200U (em2880) --- drivers/media/usb/em28xx/em28xx-cards.c.orig 2015-04-13 00:12:50.000000000 +0200 +++ drivers/media/usb/em28xx/em28xx-cards.c 2015-10-24 21:12:27.000000000 +0200 @@ -2279,6 +2279,21 @@ .has_dvb = 1, .ir_codes = RC_MAP_TERRATEC_SLIM_2, }, + [EM2820_BOARD_PLEXTOR_PX_AV200U] = { + .name = "Plextor PX-AV200U", + .vchannels = 2, + .tuner_type = TUNER_ABSENT, + .decoder = EM28XX_SAA711X, + .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, + } }, + }, }; EXPORT_SYMBOL_GPL(em28xx_boards);
@@ -2492,6 +2507,7 @@ {0xc51200e3, EM2820_BOARD_GADMEI_TVR200, TUNER_LG_PAL_NEW_TAPC}, {0x4ba50080, EM2861_BOARD_GADMEI_UTV330PLUS, TUNER_TNF_5335MF}, {0x6b800080, EM2874_BOARD_LEADERSHIP_ISDBT, TUNER_ABSENT}, + {0x6ba50080, EM2820_BOARD_PLEXTOR_PX_AV200U, TUNER_ABSENT}, };
/* NOTE: introduce a separate hash table for devices with 16 bit eeproms */ --- drivers/media/usb/em28xx/em28xx.h.orig 2015-04-13 00:12:50.000000000 +0200 +++ drivers/media/usb/em28xx/em28xx.h 2015-10-24 20:43:23.000000000 +0200 @@ -143,6 +143,7 @@ #define EM2861_BOARD_LEADTEK_VC100 95 #define EM28178_BOARD_TERRATEC_T2_STICK_HD 96 #define EM2884_BOARD_ELGATO_EYETV_HYBRID_2008 97 +#define EM2820_BOARD_PLEXTOR_PX_AV200U 98
/* Limits minimum and default number of buffers */ #define EM28XX_MIN_BUF 4
>> >> Did you verify that both video inputs were working as expected? Also, >> did you confirm the audio support works? > > Yes, audio, composite and s-video are functional. > > > From: Misha Zhilin <misha@epiphan.com> > > Adds support for Digitus/Plextor PX-AV200U grabbers > Signed-off-by: Misha Zhilin <misha@epiphan.com> > --- > > diff -urN linux-2.6.27.x86_64.orig/drivers/media/video/em28xx/em28xx-cards.c \ > linux-2.6.27.x86_64.new/drivers/media/video/em28xx/em28xx-cards.c > --- linux-2.6.27.x86_64.orig/drivers/media/video/em28xx/em28xx-cards.c 2008-10-09 \ > 18:13:53.000000000 -0400 > +++ linux-2.6.27.x86_64.new/drivers/media/video/em28xx/em28xx-cards.c 2009-03-23 \ > 12:05:22.000000000 -0400 @@ -1087,6 +1087,21 @@ > .amux = EM28XX_AMUX_LINE_IN, > } }, > }, > + [EM2820_BOARD_PLEXTOR_PX_AV200U] = { > + .name = "Plextor PX-AV200U", > + .vchannels = 2, > + .tuner_type = TUNER_ABSENT, > + .decoder = EM28XX_SAA7113, > + .input = { { > + .type = EM28XX_VMUX_COMPOSITE1, > + .vmux = SAA7115_COMPOSITE0, > + .amux = EM28XX_AMUX_AC97_LINE_IN, > + }, { > + .type = EM28XX_VMUX_SVIDEO, > + .vmux = SAA7115_SVIDEO3, > + .amux = EM28XX_AMUX_AC97_LINE_IN, > + } }, > + }, > }; > const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); > > @@ -1269,6 +1284,7 @@ > {0xb06a32c3, EM2800_BOARD_TERRATEC_CINERGY_200, TUNER_LG_PAL_NEW_TAPC}, > {0xf51200e3, EM2800_BOARD_VGEAR_POCKETTV, TUNER_LG_PAL_NEW_TAPC}, > {0x1ba50080, EM2860_BOARD_POINTNIX_INTRAORAL_CAMERA, TUNER_ABSENT}, > + {0x6ba50080, EM2820_BOARD_PLEXTOR_PX_AV200U, TUNER_ABSENT}, > }; > > int em28xx_tuner_callback(void *ptr, int command, int arg) > diff -urN linux-2.6.27.x86_64.orig/drivers/media/video/em28xx/em28xx.h \ > linux-2.6.27.x86_64.new/drivers/media/video/em28xx/em28xx.h > --- linux-2.6.27.x86_64.orig/drivers/media/video/em28xx/em28xx.h 2008-10-09 \ > 18:13:53.000000000 -0400 > +++ linux-2.6.27.x86_64.new/drivers/media/video/em28xx/em28xx.h 2009-03-23 \ > 11:11:40.000000000 -0400 @@ -97,6 +97,7 @@ > #define EM2882_BOARD_PINNACLE_HYBRID_PRO 56 > #define EM2883_BOARD_KWORLD_HYBRID_A316 57 > #define EM2820_BOARD_COMPRO_VIDEOMATE_FORYOU 58 > +#define EM2820_BOARD_PLEXTOR_PX_AV200U 59 > > /* Limits minimum and default number of buffers */ > #define EM28XX_MIN_BUF 4 > diff -urN linux-2.6.27.x86_64.orig/Documentation/video4linux/CARDLIST.em28xx \ > linux-2.6.27.x86_64.new/Documentation/video4linux/CARDLIST.em28xx > --- linux-2.6.27.x86_64.orig/Documentation/video4linux/CARDLIST.em28xx 2008-10-09 \ > 18:13:53.000000000 -0400 > +++ linux-2.6.27.x86_64.new/Documentation/video4linux/CARDLIST.em28xx 2009-03-18 \ > 11:15:00.000000000 -0400 @@ -57,3 +57,4 @@ > 56 -> Pinnacle Hybrid Pro (2) (em2882) [2304:0226] > 57 -> Kworld PlusTV HD Hybrid 330 (em2883) [eb1a:a316] > 58 -> Compro VideoMate ForYou/Stereo (em2820/em2840) [185b:2041] > + 59 -> Plextor PX-AV200U (em2880)
| |