Re: [PATCH] em28xx TerraTec Cinergy Hybrid T USB XS with demodulator MT352 is not detect by em28xx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[ CCing Philippe in case he still has the other device variant and can
  test any proposed fix]

juvann@xxxxxxxxxxx writes:

> I tried to sent this patch many times in past to linux-media, but I was ignored, I hope someone on linux-usb can submit this patch for resolve an issue on usb device.

That's too bad. Your patch has a few formatting errors (wrong base for
the diff, additional comments in the body) which prevents it from being
applied as-is, but you should of course get some feedback.

Please see the part about "additional comments" in section 14 of
https://www.kernel.org/doc/Documentation/process/submitting-patches.rst


> TerraTec Cinergy Hybrid T USB XS with demodulator MT352 stop working with kernel 3.xx and newer.
>
> --- /usr/src/linux-3.14.3/drivers/media/usb/em28xx/em28xx-cards.c.orig   2014-05-06 16:59:58.000000000 +0200
> +++ /usr/src/linux-3.14.3/drivers/media/usb/em28xx/em28xx-cards.c   2014-05-07 15:18:31.719524453 +0200
> @@ -2233,7 +2233,7 @@
>         { USB_DEVICE(0x0ccd, 0x005e),
>                         .driver_info = EM2882_BOARD_TERRATEC_HYBRID_XS },
>         { USB_DEVICE(0x0ccd, 0x0042),
> -                       .driver_info = EM2882_BOARD_TERRATEC_HYBRID_XS },
> +                       .driver_info = EM2880_BOARD_TERRATEC_HYBRID_XS },
>         { USB_DEVICE(0x0ccd, 0x0043),
>                         .driver_info = EM2870_BOARD_TERRATEC_XS },
>         { USB_DEVICE(0x0ccd, 0x008e),   /* Cinergy HTC USB XS Rev. 1 */
>
> This patch is working also on kernel 4.xx I have tested kernel on 4.3 and 4.9


This is effectively a revert of 9124544320bd ("[media] Terratec Cinergy
Hybrid T USB XS"), introduce in v2.6.38. It is included in full below
for context. That patch claimed to solve a similar problem.  Which I
guess means that there are at least two different versions using the
same USB device ID. Stupid, but not uncommon unfortunately.

I don't know how to do this, but a real fix needs to somehow detect the
differences and make both versions work.  Otherwise you'll just end up
switching this back and forth forever.

No, the patch that made your device fail should not have been accepted
either. But it was a very long time ago, so a revert is not appropriate
anymore. You need to fix your issues without breaking Philippe's.

Looking at the diff between the two board sections, there are only two
real differences: .mts_firmware = 0 or 1, and gpio (reset sequences?)  =
'default' or 'hauppauge_wintv_hvr_900':

-       [EM2880_BOARD_TERRATEC_HYBRID_XS] = {
-               .name           = "Terratec Hybrid XS",
+       [EM2882_BOARD_TERRATEC_HYBRID_XS] = {
+               .name         = "Terratec Cinnergy Hybrid T USB XS (em2882)",
                .tuner_type     = TUNER_XC2028,
                .tuner_gpio     = default_tuner_gpio,
+               .mts_firmware = 1,
                .decoder        = EM28XX_TVP5150,
                .has_dvb        = 1,
-               .dvb_gpio       = default_digital,
+               .dvb_gpio     = hauppauge_wintv_hvr_900_digital,
                .ir_codes       = RC_MAP_TERRATEC_CINERGY_XS,
-               .xclk           = EM28XX_XCLK_FREQUENCY_12MHZ, /* NEC IR */
+               .xclk         = EM28XX_XCLK_FREQUENCY_12MHZ,
                .input          = { {
                        .type     = EM28XX_VMUX_TELEVISION,
                        .vmux     = TVP5150_COMPOSITE0,
                        .amux     = EM28XX_AMUX_VIDEO,
-                       .gpio     = default_analog,
+                       .gpio     = hauppauge_wintv_hvr_900_analog,
                }, {
                        .type     = EM28XX_VMUX_COMPOSITE,
                        .vmux     = TVP5150_COMPOSITE1,
                        .amux     = EM28XX_AMUX_LINE_IN,
-                       .gpio     = default_analog,
+                       .gpio     = hauppauge_wintv_hvr_900_analog,
                }, {
                        .type     = EM28XX_VMUX_SVIDEO,
                        .vmux     = TVP5150_SVIDEO,
                        .amux     = EM28XX_AMUX_LINE_IN,
-                       .gpio     = default_analog,
+                       .gpio     = hauppauge_wintv_hvr_900_analog,
                } },
        },
 


Original patch:

commit 9124544320bd36d5aa21769d17a5781ba729aebf
Author: Philippe Bourdin <richel@xxxxxxxxxxxxxx>
Date:   Sun Oct 31 09:57:58 2010 -0300

    [media] Terratec Cinergy Hybrid T USB XS
    
    I found that the problems people have reported with the USB-TV-stick
    "Terratec Cinergy Hybrid T USB XS" (USB-ID: 0ccd:0042)
    are coming from a wrong header file in the v4l-sources.
    
    Attached is a diff, which fixes the problem (tested successfully here).
    Obviously the USB-ID has been associated with a wrong chip: EM2880
    instead of EM2882, which would be correct.
    
    Reported-by: Philippe Bourdin <richel@xxxxxxxxxxxxxx>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>

diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index ed25c5579c33..5d79d0eb64ab 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -1496,7 +1496,7 @@ struct em28xx_board em28xx_boards[] = {
                } },
        },
        [EM2882_BOARD_TERRATEC_HYBRID_XS] = {
-               .name         = "Terratec Hybrid XS (em2882)",
+               .name         = "Terratec Cinnergy Hybrid T USB XS (em2882)",
                .tuner_type   = TUNER_XC2028,
                .tuner_gpio   = default_tuner_gpio,
                .mts_firmware = 1,
@@ -1820,7 +1820,7 @@ struct usb_device_id em28xx_id_table[] = {
        { USB_DEVICE(0x0ccd, 0x005e),
                        .driver_info = EM2882_BOARD_TERRATEC_HYBRID_XS },
        { USB_DEVICE(0x0ccd, 0x0042),
-                       .driver_info = EM2880_BOARD_TERRATEC_HYBRID_XS },
+                       .driver_info = EM2882_BOARD_TERRATEC_HYBRID_XS },
        { USB_DEVICE(0x0ccd, 0x0043),
                        .driver_info = EM2870_BOARD_TERRATEC_XS },
        { USB_DEVICE(0x0ccd, 0x0047),




Bjørn
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux