Re: [PATCH] [media] 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]

 



Hi Mauro,

this is the output of lsusb -v of my device with demodulator MT352 which works with EM2880.

Bus 002 Device 002: ID 0ccd:0042 TerraTec Electronic GmbH Cinergy Hybrid T XS
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0ccd TerraTec Electronic GmbH
  idProduct          0x0042 Cinergy Hybrid T XS
  bcdDevice            1.00
  iManufacturer           2 TerraTec Electronic GmbH
  iProduct                1 Cinergy Hybrid T USB XS
  iSerial                 0 
  bNumConfigurations      1

Regards,
Giovanni

> Sent: Friday, June 23, 2017 at 12:38 PM
> From: "Mauro Carvalho Chehab" <mchehab@xxxxxxxxxxxxx>
> To: "Hans Verkuil" <hverkuil@xxxxxxxxx>
> Cc: juvann@xxxxxxxxxxx, linux-media@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] [media] em28xx TerraTec Cinergy Hybrid T USB XS with demodulator MT352 is not detect by em28xx
>
> Em Fri, 23 Jun 2017 11:22:50 +0200
> Hans Verkuil <hverkuil@xxxxxxxxx> escreveu:
> 
> > Hi Giovanni,
> > 
> > On 06/10/17 09:13, juvann@xxxxxxxxxxx wrote:
> > > TerraTec Cinergy Hybrid T USB XS with demodulator MT352 stop working with kernel 3.xx and newer.
> > > I have already sent this patch without a success reply, I hope this time you can accept it.
> > > 
> > > --- /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 4.3 and 4.9  
> > 
> > I checked the commit that changed the original EM2880_BOARD_TERRATEC_HYBRID_XS
> > to EM2882_BOARD_TERRATEC_HYBRID_XS and it says this:
> > 
> > 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>
> > 
> > So it looks like there are two variants with the same USB ID: one uses
> > the EM2880, one uses the EM2882. Since nobody else complained I expect
> > that most devices with this USB ID are in fact using the EM2882.
> > 
> > I won't apply this patch, since that would break it for others.
> > 
> > The best solution for you is to explicitly set the card using the
> > 'card=11' em28xx module option.
> > 
> > I've CC-ed Mauro in case he knows a better solution.
> 
> If the newest original driver from the manufacturer supports both
> versions, perhaps the *.INF file there would help to identify what
> version is there, by using the USB revision numbers.
> 
> We have this for USB ID 1554:5010, for example. That specific USB ID
> actually use two different drivers, depending on the review.
> 
> Either cx231xx:
> 
> 	{USB_DEVICE_VER(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD, 0x4000, 0x4001),
> 	 .driver_info = CX231XX_BOARD_PV_PLAYTV_USB_HYBRID},
> 
> or dib0700:
> 
> 	{ USB_DEVICE_VER(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD, 0x000, 0x3f00) },
> 
> Unfortunately, I don't have any contacts at Terratec anymore, so we'll
> need to get it the hard way: people with this hardware should report the
> version of the hardware, by using lsusb -v. It should report something
> like:
> 
> 	Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> 	Couldn't open device, some information will be missing
> 	Device Descriptor:
> 	  bLength                18
> 	  bDescriptorType         1
> 	  bcdUSB               2.00
> 	  bDeviceClass            9 Hub
> 	  bDeviceSubClass         0 
> 	  bDeviceProtocol         1 Single TT
> 	  bMaxPacketSize0        64
> 	  idVendor           0x1d6b Linux Foundation
> 	  idProduct          0x0002 2.0 root hub
> 	  bcdDevice            4.10
> 	  iManufacturer           3 
> 	  iProduct                2 
> 	  iSerial                 1 
> 
> The USB_DEVICE_VER macro is:
> 
> 	#define USB_DEVICE_VER(vend, prod, lo, hi) \
> 		.match_flags = USB_DEVICE_ID_MATCH_DEVICE_AND_VERSION, \
> 		.idVendor = (vend), \
> 		.idProduct = (prod), \
> 		.bcdDevice_lo = (lo), \
> 		.bcdDevice_hi = (hi)
> 
> So, it basically uses the field "bcdDevice" in order to detect for a
> specific hardware version.
> 
> Please notice that, ideally, we need the "bcdDevice" data for both the 
> em2880 and em2882 versions in to fix it and be sure that the
> manufacturer changed it on the newest version. The *.INF file may
> contain such information, with would make our lives a way easier.
> 
> Regards,
> Mauro
> 



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux