linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/2] Add support for Terratec H6 version 2
@ 2017-05-03  2:12 Mauro Carvalho Chehab
  2017-05-03  2:12 ` [PATCH v3 1/2] em28xx: Ignore errors while reading from eeprom Mauro Carvalho Chehab
  2017-05-03  2:12 ` [PATCH v3 2/2] em28xx: add support for new of Terratec H6 Mauro Carvalho Chehab
  0 siblings, 2 replies; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2017-05-03  2:12 UTC (permalink / raw)
  To: Linux Media Mailing List, Linux Doc Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab

That's the third version of this patch series. It adds support
for Terratec H6 version 2.

As on the past version, this board is identified as "H5 MKII".
There's a typo on the manufacturer's name, though:

[ 2970.196999] usb 1-1.5: Product: TERRATCE H5 MKII
[ 2970.197011] usb 1-1.5: Manufacturer: TERRATEC

While I wrote the patches, I don't have this verson of
this device. The tests were run by an IRC user. Thanks!

The first patch is actually not needed for this device to work,
but it fixes an issue: if something goes bad while reading
the eeprom, the device probe aborts. As we don't really need
to read the eeprom contents, we safely ignore any errors there.

While not certain why eeprom reading was failing with this
device, I suspect that this particular device require some
GPIO setting before being able to read its eeprom content.

The second patch in this series add support for the board.

-

v3: Improve patch documentation
v2: Ignore eeprom errors
v1: was assuming that eeprom would be at bus 1. such hipotesys
    didn't confirm on the tests done today.

Mauro Carvalho Chehab (2):
  em28xx: Ignore errors while reading from eeprom
  em28xx: add support for new of Terratec H6

 drivers/media/usb/em28xx/em28xx-cards.c | 18 ++++++++++++++++++
 drivers/media/usb/em28xx/em28xx-dvb.c   |  1 +
 drivers/media/usb/em28xx/em28xx-i2c.c   |  2 --
 drivers/media/usb/em28xx/em28xx.h       |  1 +
 4 files changed, 20 insertions(+), 2 deletions(-)

-- 
2.9.3

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v3 1/2] em28xx: Ignore errors while reading from eeprom
  2017-05-03  2:12 [PATCH v3 0/2] Add support for Terratec H6 version 2 Mauro Carvalho Chehab
@ 2017-05-03  2:12 ` Mauro Carvalho Chehab
  2017-05-07 17:55   ` Frank Schäfer
  2017-05-03  2:12 ` [PATCH v3 2/2] em28xx: add support for new of Terratec H6 Mauro Carvalho Chehab
  1 sibling, 1 reply; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2017-05-03  2:12 UTC (permalink / raw)
  To: Linux Media Mailing List, Linux Doc Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab

While testing support for Terratec H6 rev. 2, it was noticed
that reading from eeprom there causes a timeout error.

Apparently, this is due to the need of properly setting GPIOs.

In any case, the driver doesn't really require eeprom reading
to succeed, as this is currently used only for debug.

So, Ignore such errors.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 drivers/media/usb/em28xx/em28xx-i2c.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/media/usb/em28xx/em28xx-i2c.c b/drivers/media/usb/em28xx/em28xx-i2c.c
index 8c472d5adb50..60b195c157b8 100644
--- a/drivers/media/usb/em28xx/em28xx-i2c.c
+++ b/drivers/media/usb/em28xx/em28xx-i2c.c
@@ -982,8 +982,6 @@ int em28xx_i2c_register(struct em28xx *dev, unsigned bus,
 			dev_err(&dev->intf->dev,
 				"%s: em28xx_i2_eeprom failed! retval [%d]\n",
 				__func__, retval);
-
-			return retval;
 		}
 	}
 
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v3 2/2] em28xx: add support for new of Terratec H6
  2017-05-03  2:12 [PATCH v3 0/2] Add support for Terratec H6 version 2 Mauro Carvalho Chehab
  2017-05-03  2:12 ` [PATCH v3 1/2] em28xx: Ignore errors while reading from eeprom Mauro Carvalho Chehab
@ 2017-05-03  2:12 ` Mauro Carvalho Chehab
  2017-05-07 18:02   ` Frank Schäfer
  1 sibling, 1 reply; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2017-05-03  2:12 UTC (permalink / raw)
  To: Linux Media Mailing List, Linux Doc Mailing List
  Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab

There's a new version of Terratec H6 with uses USB ID
0ccd:10b2. This version is similar to the old one (with is
supported via the HTC entry), except that this one has the
eeprom on the second bus.

On this board, one side of this board is labeled with:
	dvbc v2.0
The other side with:
	94V-0, MO2, RK-4221 with huge digits: 1107

With those patches, the board is properly detected:

    em28xx 1-1.5:1.0: New device TERRATEC TERRATCE H5 MKII @ 480 Mbps (0ccd:10b2, interface 0, class 0)
    em28xx 1-1.5:1.0: Audio interface 0 found (Vendor Class)
    em28xx 1-1.5:1.0: Video interface 0 found: isoc
    em28xx 1-1.5:1.0: DVB interface 0 found: isoc
    em28xx 1-1.5:1.0: chip ID is em2884
    em28xx eeprom 00000000: 26 00 00 00 02 0b 0f e5 f5 64 01 60 09 e5 f5 64  &........d.`...d
    em28xx eeprom 00000010: 09 60 03 c2 c6 22 e5 f7 b4 03 13 e5 f6 b4 87 03  .`..."..........
    em28xx eeprom 00000020: 02 0a b9 e5 f6 b4 93 03 02 09 46 c2 c6 22 c2 c6  ..........F.."..
    em28xx eeprom 00000030: 22 00 60 00 ef 70 08 85 3d 82 85 3c 83 93 ff ef  ".`..p..=..<....
    em28xx eeprom 00000040: 60 19 85 3d 82 85 3c 83 e4 93 12 07 a3 12 0a fe  `..=..<.........
    em28xx eeprom 00000050: 05 3d e5 3d 70 02 05 3c 1f 80 e4 22 12 0b 06 02  .=.=p..<..."....
    em28xx eeprom 00000060: 07 e2 01 00 1a eb 67 95 cd 0c b2 10 f0 13 6b 03  ......g.......k.
    em28xx eeprom 00000070: 98 22 6a 1c 86 12 27 57 4e 16 29 00 60 00 00 00  ."j...'WN.).`...
    em28xx eeprom 00000080: 02 00 00 00 5e 00 13 00 f0 10 44 82 82 00 00 00  ....^.....D.....
    em28xx eeprom 00000090: 5b 81 c0 00 00 00 20 40 20 80 02 20 10 01 00 00  [..... @ .. ....
    em28xx eeprom 000000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    em28xx eeprom 000000b0: c6 40 00 00 81 00 00 00 00 00 00 00 00 c4 00 00  .@..............
    em28xx eeprom 000000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 03  ................
    em28xx eeprom 000000d0: 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00  1.2.3.4.5.6.7.8.
    em28xx eeprom 000000e0: 39 00 41 00 42 00 43 00 44 00 12 03 54 00 45 00  9.A.B.C.D...T.E.
    em28xx eeprom 000000f0: 52 00 52 00 41 00 54 00 45 00 43 00 22 03 54 00  R.R.A.T.E.C.".T.
    em28xx 1-1.5:1.0: eeprom 000100: ... (skipped)
    em28xx 1-1.5:1.0: EEPROM ID = 26 00 00 00, EEPROM hash = 0xbcd5a8cf
    em28xx 1-1.5:1.0: EEPROM info:
    em28xx 1-1.5:1.0:	microcode start address = 0x0004, boot configuration = 0x00
    em28xx 1-1.5:1.0:	I2S audio, 5 sample rates
    em28xx 1-1.5:1.0:	500mA max power
    em28xx 1-1.5:1.0:	Table at offset 0x27, strings=0x2298, 0x1c6a, 0x1286
    em28xx 1-1.5:1.0: Identified as Terratec Cinergy H6 rev. 2 (card=101)
    em28xx 1-1.5:1.0: Currently, V4L2 is not supported on this model
    em28xx 1-1.5:1.0: dvb set to isoc mode.
    usbcore: registered new interface driver em28xx
    em28xx 1-1.5:1.0: Binding audio extension
    em28xx 1-1.5:1.0: em28xx-audio.c: Copyright (C) 2006 Markus Rechberger
    em28xx 1-1.5:1.0: em28xx-audio.c: Copyright (C) 2007-2016 Mauro Carvalho Chehab
    em28xx 1-1.5:1.0: Endpoint 0x83 high-speed on intf 0 alt 7 interval = 8, size 196
    em28xx 1-1.5:1.0: Number of URBs: 1, with 64 packets and 192 size
    em28xx 1-1.5:1.0: Audio extension successfully initialized
    em28xx: Registered (Em28xx Audio Extension) extension
    em28xx 1-1.5:1.0: Binding DVB extension
    drxk: status = 0x639260d9
    drxk: detected a drx-3926k, spin A3, xtal 20.250 MHz
    drxk: DRXK driver version 0.9.4300
    drxk: frontend initialized.
    tda18271 4-0060: creating new instance
    tda18271: TDA18271HD/C2 detected @ 4-0060
    dvbdev: DVB: registering new adapter (1-1.5:1.0)
    em28xx 1-1.5:1.0: DVB: registering adapter 0 frontend 0 (DRXK DVB-C DVB-T)...
    dvbdev: dvb_create_media_entity: media entity 'DRXK DVB-C DVB-T' registered.
    dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
    em28xx 1-1.5:1.0: DVB extension successfully initialized
    em28xx: Registered (Em28xx dvb Extension) extension
    em28xx 1-1.5:1.0: Registering input extension
    rc rc0: 1-1.5:1.0 IR as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/rc/rc0
    Registered IR keymap rc-nec-terratec-cinergy-xs
    input: 1-1.5:1.0 IR as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/rc/rc0/input0
    em28xx 1-1.5:1.0: Input extension successfully initalized
    em28xx: Registered (Em28xx Input Extension) extension
    tda18271: performing RF tracking filter calibration
    tda18271: RF tracking filter calibration complete

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 drivers/media/usb/em28xx/em28xx-cards.c | 18 ++++++++++++++++++
 drivers/media/usb/em28xx/em28xx-dvb.c   |  1 +
 drivers/media/usb/em28xx/em28xx.h       |  1 +
 3 files changed, 20 insertions(+)

diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
index a12b599a1fa2..25e952b176ae 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -1193,6 +1193,22 @@ struct em28xx_board em28xx_boards[] = {
 		.i2c_speed    = EM28XX_I2C_CLK_WAIT_ENABLE |
 				EM28XX_I2C_FREQ_400_KHZ,
 	},
+	[EM2884_BOARD_TERRATEC_H6] = {
+		.name         = "Terratec Cinergy H6 rev. 2",
+		.has_dvb      = 1,
+		.ir_codes     = RC_MAP_NEC_TERRATEC_CINERGY_XS,
+#if 0
+		.tuner_type   = TUNER_PHILIPS_TDA8290,
+		.tuner_addr   = 0x41,
+		.dvb_gpio     = terratec_h5_digital, /* FIXME: probably wrong */
+		.tuner_gpio   = terratec_h5_gpio,
+#else
+		.tuner_type   = TUNER_ABSENT,
+#endif
+		.def_i2c_bus  = 1,
+		.i2c_speed    = EM28XX_I2C_CLK_WAIT_ENABLE |
+				EM28XX_I2C_FREQ_400_KHZ,
+	},
 	[EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C] = {
 		.name         = "Hauppauge WinTV HVR 930C",
 		.has_dvb      = 1,
@@ -2496,6 +2512,8 @@ struct usb_device_id em28xx_id_table[] = {
 			.driver_info = EM2884_BOARD_TERRATEC_H5 },
 	{ USB_DEVICE(0x0ccd, 0x10b6),	/* H5 Rev. 3 */
 			.driver_info = EM2884_BOARD_TERRATEC_H5 },
+	{ USB_DEVICE(0x0ccd, 0x10b2),	/* H6 */
+			.driver_info = EM2884_BOARD_TERRATEC_H6 },
 	{ USB_DEVICE(0x0ccd, 0x0084),
 			.driver_info = EM2860_BOARD_TERRATEC_AV350 },
 	{ USB_DEVICE(0x0ccd, 0x0096),
diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c
index 82edd37f0d73..4a7db623fe29 100644
--- a/drivers/media/usb/em28xx/em28xx-dvb.c
+++ b/drivers/media/usb/em28xx/em28xx-dvb.c
@@ -1522,6 +1522,7 @@ static int em28xx_dvb_init(struct em28xx *dev)
 		break;
 	case EM2884_BOARD_ELGATO_EYETV_HYBRID_2008:
 	case EM2884_BOARD_CINERGY_HTC_STICK:
+	case EM2884_BOARD_TERRATEC_H6:
 		terratec_htc_stick_init(dev);
 
 		/* attach demodulator */
diff --git a/drivers/media/usb/em28xx/em28xx.h b/drivers/media/usb/em28xx/em28xx.h
index e8d97d5ec161..88084f24f033 100644
--- a/drivers/media/usb/em28xx/em28xx.h
+++ b/drivers/media/usb/em28xx/em28xx.h
@@ -148,6 +148,7 @@
 #define EM28178_BOARD_PLEX_PX_BCUD                98
 #define EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_DVB  99
 #define EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_01595 100
+#define EM2884_BOARD_TERRATEC_H6		  101
 
 /* Limits minimum and default number of buffers */
 #define EM28XX_MIN_BUF 4
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v3 1/2] em28xx: Ignore errors while reading from eeprom
  2017-05-03  2:12 ` [PATCH v3 1/2] em28xx: Ignore errors while reading from eeprom Mauro Carvalho Chehab
@ 2017-05-07 17:55   ` Frank Schäfer
  0 siblings, 0 replies; 5+ messages in thread
From: Frank Schäfer @ 2017-05-07 17:55 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Linux Media Mailing List,
	Linux Doc Mailing List
  Cc: Mauro Carvalho Chehab


Am 03.05.2017 um 04:12 schrieb Mauro Carvalho Chehab:
> While testing support for Terratec H6 rev. 2, it was noticed
> that reading from eeprom there causes a timeout error.
>
> Apparently, this is due to the need of properly setting GPIOs.
>
> In any case, the driver doesn't really require eeprom reading
> to succeed, as this is currently used only for debug.
>
> So, Ignore such errors.
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> ---
>  drivers/media/usb/em28xx/em28xx-i2c.c | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/drivers/media/usb/em28xx/em28xx-i2c.c b/drivers/media/usb/em28xx/em28xx-i2c.c
> index 8c472d5adb50..60b195c157b8 100644
> --- a/drivers/media/usb/em28xx/em28xx-i2c.c
> +++ b/drivers/media/usb/em28xx/em28xx-i2c.c
> @@ -982,8 +982,6 @@ int em28xx_i2c_register(struct em28xx *dev, unsigned bus,
>  			dev_err(&dev->intf->dev,
>  				"%s: em28xx_i2_eeprom failed! retval [%d]\n",
>  				__func__, retval);
> -
> -			return retval;
>  		}
>  	}
>  
Makes sense.

Acked-by: Frank Schäfer <fschaefer.oss@googlemail.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3 2/2] em28xx: add support for new of Terratec H6
  2017-05-03  2:12 ` [PATCH v3 2/2] em28xx: add support for new of Terratec H6 Mauro Carvalho Chehab
@ 2017-05-07 18:02   ` Frank Schäfer
  0 siblings, 0 replies; 5+ messages in thread
From: Frank Schäfer @ 2017-05-07 18:02 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Linux Media Mailing List,
	Linux Doc Mailing List
  Cc: Mauro Carvalho Chehab


Am 03.05.2017 um 04:12 schrieb Mauro Carvalho Chehab:
> There's a new version of Terratec H6 with uses USB ID
> 0ccd:10b2. This version is similar to the old one (with is
> supported via the HTC entry), except that this one has the
> eeprom on the second bus.
Last half of the sentence isn't true (leftover from v1).

> On this board, one side of this board is labeled with:
> 	dvbc v2.0
> The other side with:
> 	94V-0, MO2, RK-4221 with huge digits: 1107
>
> With those patches, the board is properly detected:
>
>     em28xx 1-1.5:1.0: New device TERRATEC TERRATCE H5 MKII @ 480 Mbps (0ccd:10b2, interface 0, class 0)
>     em28xx 1-1.5:1.0: Audio interface 0 found (Vendor Class)
>     em28xx 1-1.5:1.0: Video interface 0 found: isoc
>     em28xx 1-1.5:1.0: DVB interface 0 found: isoc
>     em28xx 1-1.5:1.0: chip ID is em2884
>     em28xx eeprom 00000000: 26 00 00 00 02 0b 0f e5 f5 64 01 60 09 e5 f5 64  &........d.`...d
>     em28xx eeprom 00000010: 09 60 03 c2 c6 22 e5 f7 b4 03 13 e5 f6 b4 87 03  .`..."..........
>     em28xx eeprom 00000020: 02 0a b9 e5 f6 b4 93 03 02 09 46 c2 c6 22 c2 c6  ..........F.."..
>     em28xx eeprom 00000030: 22 00 60 00 ef 70 08 85 3d 82 85 3c 83 93 ff ef  ".`..p..=..<....
>     em28xx eeprom 00000040: 60 19 85 3d 82 85 3c 83 e4 93 12 07 a3 12 0a fe  `..=..<.........
>     em28xx eeprom 00000050: 05 3d e5 3d 70 02 05 3c 1f 80 e4 22 12 0b 06 02  .=.=p..<..."....
>     em28xx eeprom 00000060: 07 e2 01 00 1a eb 67 95 cd 0c b2 10 f0 13 6b 03  ......g.......k.
>     em28xx eeprom 00000070: 98 22 6a 1c 86 12 27 57 4e 16 29 00 60 00 00 00  ."j...'WN.).`...
>     em28xx eeprom 00000080: 02 00 00 00 5e 00 13 00 f0 10 44 82 82 00 00 00  ....^.....D.....
>     em28xx eeprom 00000090: 5b 81 c0 00 00 00 20 40 20 80 02 20 10 01 00 00  [..... @ .. ....
>     em28xx eeprom 000000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>     em28xx eeprom 000000b0: c6 40 00 00 81 00 00 00 00 00 00 00 00 c4 00 00  .@..............
>     em28xx eeprom 000000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 03  ................
>     em28xx eeprom 000000d0: 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00  1.2.3.4.5.6.7.8.
>     em28xx eeprom 000000e0: 39 00 41 00 42 00 43 00 44 00 12 03 54 00 45 00  9.A.B.C.D...T.E.
>     em28xx eeprom 000000f0: 52 00 52 00 41 00 54 00 45 00 43 00 22 03 54 00  R.R.A.T.E.C.".T.
Ok, so the eeprom issue seems to be gone.

>     em28xx 1-1.5:1.0: eeprom 000100: ... (skipped)
>     em28xx 1-1.5:1.0: EEPROM ID = 26 00 00 00, EEPROM hash = 0xbcd5a8cf
>     em28xx 1-1.5:1.0: EEPROM info:
>     em28xx 1-1.5:1.0:	microcode start address = 0x0004, boot configuration = 0x00
>     em28xx 1-1.5:1.0:	I2S audio, 5 sample rates
>     em28xx 1-1.5:1.0:	500mA max power
>     em28xx 1-1.5:1.0:	Table at offset 0x27, strings=0x2298, 0x1c6a, 0x1286
>     em28xx 1-1.5:1.0: Identified as Terratec Cinergy H6 rev. 2 (card=101)
>     em28xx 1-1.5:1.0: Currently, V4L2 is not supported on this model
>     em28xx 1-1.5:1.0: dvb set to isoc mode.
>     usbcore: registered new interface driver em28xx
>     em28xx 1-1.5:1.0: Binding audio extension
>     em28xx 1-1.5:1.0: em28xx-audio.c: Copyright (C) 2006 Markus Rechberger
>     em28xx 1-1.5:1.0: em28xx-audio.c: Copyright (C) 2007-2016 Mauro Carvalho Chehab
>     em28xx 1-1.5:1.0: Endpoint 0x83 high-speed on intf 0 alt 7 interval = 8, size 196
>     em28xx 1-1.5:1.0: Number of URBs: 1, with 64 packets and 192 size
>     em28xx 1-1.5:1.0: Audio extension successfully initialized
>     em28xx: Registered (Em28xx Audio Extension) extension
>     em28xx 1-1.5:1.0: Binding DVB extension
>     drxk: status = 0x639260d9
>     drxk: detected a drx-3926k, spin A3, xtal 20.250 MHz
>     drxk: DRXK driver version 0.9.4300
>     drxk: frontend initialized.
>     tda18271 4-0060: creating new instance
>     tda18271: TDA18271HD/C2 detected @ 4-0060
This confirms that the tuner is a tda18271, hence...

>     dvbdev: DVB: registering new adapter (1-1.5:1.0)
>     em28xx 1-1.5:1.0: DVB: registering adapter 0 frontend 0 (DRXK DVB-C DVB-T)...
>     dvbdev: dvb_create_media_entity: media entity 'DRXK DVB-C DVB-T' registered.
>     dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
>     em28xx 1-1.5:1.0: DVB extension successfully initialized
>     em28xx: Registered (Em28xx dvb Extension) extension
>     em28xx 1-1.5:1.0: Registering input extension
>     rc rc0: 1-1.5:1.0 IR as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/rc/rc0
>     Registered IR keymap rc-nec-terratec-cinergy-xs
>     input: 1-1.5:1.0 IR as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/rc/rc0/input0
>     em28xx 1-1.5:1.0: Input extension successfully initalized
>     em28xx: Registered (Em28xx Input Extension) extension
>     tda18271: performing RF tracking filter calibration
>     tda18271: RF tracking filter calibration complete
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> ---
>  drivers/media/usb/em28xx/em28xx-cards.c | 18 ++++++++++++++++++
>  drivers/media/usb/em28xx/em28xx-dvb.c   |  1 +
>  drivers/media/usb/em28xx/em28xx.h       |  1 +
>  3 files changed, 20 insertions(+)
>
> diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
> index a12b599a1fa2..25e952b176ae 100644
> --- a/drivers/media/usb/em28xx/em28xx-cards.c
> +++ b/drivers/media/usb/em28xx/em28xx-cards.c
> @@ -1193,6 +1193,22 @@ struct em28xx_board em28xx_boards[] = {
>  		.i2c_speed    = EM28XX_I2C_CLK_WAIT_ENABLE |
>  				EM28XX_I2C_FREQ_400_KHZ,
>  	},
> +	[EM2884_BOARD_TERRATEC_H6] = {
> +		.name         = "Terratec Cinergy H6 rev. 2",
> +		.has_dvb      = 1,
> +		.ir_codes     = RC_MAP_NEC_TERRATEC_CINERGY_XS,
> +#if 0
> +		.tuner_type   = TUNER_PHILIPS_TDA8290,
> +		.tuner_addr   = 0x41,
> +		.dvb_gpio     = terratec_h5_digital, /* FIXME: probably wrong */
> +		.tuner_gpio   = terratec_h5_gpio,
> +#else
> +		.tuner_type   = TUNER_ABSENT,
> +#endif
...this can be simplified at least to

#if 0
        .dvb_gpio     = terratec_h5_digital, /* FIXME: probably wrong */
        .tuner_gpio   = terratec_h5_gpio,
#endif
        .tuner_type   = TUNER_ABSENT,    /* Digital-only TDA18271HD */

Getting the device tested completely would of course be preferable.

> +		.def_i2c_bus  = 1,
> +		.i2c_speed    = EM28XX_I2C_CLK_WAIT_ENABLE |
> +				EM28XX_I2C_FREQ_400_KHZ,
Hmm... that might explain why eeprom reading works now:
The initial test was made without any board data.
In that case the em28xx driver uses the default i2c speed of 100kHz.
The current timeout value EM28XX_I2C_XFER_TIMEOUT = 36ms might be enough
when running at 400kHz, but not when running at 100kHz.


Regards,
Frank

> +	},
>  	[EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C] = {
>  		.name         = "Hauppauge WinTV HVR 930C",
>  		.has_dvb      = 1,
> @@ -2496,6 +2512,8 @@ struct usb_device_id em28xx_id_table[] = {
>  			.driver_info = EM2884_BOARD_TERRATEC_H5 },
>  	{ USB_DEVICE(0x0ccd, 0x10b6),	/* H5 Rev. 3 */
>  			.driver_info = EM2884_BOARD_TERRATEC_H5 },
> +	{ USB_DEVICE(0x0ccd, 0x10b2),	/* H6 */
> +			.driver_info = EM2884_BOARD_TERRATEC_H6 },
>  	{ USB_DEVICE(0x0ccd, 0x0084),
>  			.driver_info = EM2860_BOARD_TERRATEC_AV350 },
>  	{ USB_DEVICE(0x0ccd, 0x0096),
> diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c
> index 82edd37f0d73..4a7db623fe29 100644
> --- a/drivers/media/usb/em28xx/em28xx-dvb.c
> +++ b/drivers/media/usb/em28xx/em28xx-dvb.c
> @@ -1522,6 +1522,7 @@ static int em28xx_dvb_init(struct em28xx *dev)
>  		break;
>  	case EM2884_BOARD_ELGATO_EYETV_HYBRID_2008:
>  	case EM2884_BOARD_CINERGY_HTC_STICK:
> +	case EM2884_BOARD_TERRATEC_H6:
>  		terratec_htc_stick_init(dev);
>  
>  		/* attach demodulator */
> diff --git a/drivers/media/usb/em28xx/em28xx.h b/drivers/media/usb/em28xx/em28xx.h
> index e8d97d5ec161..88084f24f033 100644
> --- a/drivers/media/usb/em28xx/em28xx.h
> +++ b/drivers/media/usb/em28xx/em28xx.h
> @@ -148,6 +148,7 @@
>  #define EM28178_BOARD_PLEX_PX_BCUD                98
>  #define EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_DVB  99
>  #define EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_01595 100
> +#define EM2884_BOARD_TERRATEC_H6		  101
>  
>  /* Limits minimum and default number of buffers */
>  #define EM28XX_MIN_BUF 4

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-05-07 22:10 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-03  2:12 [PATCH v3 0/2] Add support for Terratec H6 version 2 Mauro Carvalho Chehab
2017-05-03  2:12 ` [PATCH v3 1/2] em28xx: Ignore errors while reading from eeprom Mauro Carvalho Chehab
2017-05-07 17:55   ` Frank Schäfer
2017-05-03  2:12 ` [PATCH v3 2/2] em28xx: add support for new of Terratec H6 Mauro Carvalho Chehab
2017-05-07 18:02   ` Frank Schäfer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).