Skip to contentSkip to conversation

Add support for Terratec H6 version 2

PATCH In review Mauro Carvalho Chehab 2 participants 5 messages May 3, 2017 – May 7, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

v3 cover Add support for Terratec H6 version 2

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(-)
Signature · 1 line
2.9.3
#1 lore raw

PATCH v3 1/2 em28xx: Ignore errors while reading from eeprom

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.

---
 drivers/media/usb/em28xx/em28xx-i2c.c | 2 --
 1 file changed, 2 deletions(-)
drivers/media/usb/em28xx/em28xx-i2c.c +0 -2
index 8c472d5adb50..60b195c157b8 100644
@@ -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;
 		}
 	}
 
Signature · 1 line
2.9.3
Acked-by on v3 1/2
#2 lore raw

Re: [PATCH v3 1/2] em28xx: Ignore errors while reading from eeprom

Am 03.05.2017 um 04:12 schrieb Mauro Carvalho Chehab:

Quoted 20 lines

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.

---
 drivers/media/usb/em28xx/em28xx-i2c.c | 2 --
 1 file changed, 2 deletions(-)
drivers/media/usb/em28xx/em28xx-i2c.c +0 -0
index 8c472d5adb50..60b195c157b8 100644

drivers/media/usb/em28xx/em28xx-i2c.c int em28xx_i2c_register(struct em28xx *dev, unsigned bus, · line 987

Quoted 8 lines
drivers/media/usb/em28xx/em28xx-i2c.c +0 -2
@@ -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.

#3 lore raw

PATCH v3 2/2 em28xx: add support for new of Terratec H6

In reply to 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
---
 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(+)
drivers/media/usb/em28xx/em28xx-cards.c +18 -0
index a12b599a1fa2..25e952b176ae 100644
@@ -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),
drivers/media/usb/em28xx/em28xx-dvb.c +1 -0
index 82edd37f0d73..4a7db623fe29 100644
@@ -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 */
drivers/media/usb/em28xx/em28xx.h +1 -0
index e8d97d5ec161..88084f24f033 100644
@@ -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
Signature · 1 line
2.9.3
#4 lore raw

Re: [PATCH v3 2/2] em28xx: add support for new of Terratec H6

Am 03.05.2017 um 04:12 schrieb Mauro Carvalho Chehab:

Quoted 4 lines

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).

Quoted 20 lines

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.).`...
Quoted 8 lines
    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.

Quoted 17 lines
    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
Quoted 8 lines
    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...

Quoted 32 lines

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

---
 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(+)
drivers/media/usb/em28xx/em28xx-cards.c +2 -0
index a12b599a1fa2..25e952b176ae 100644
@@ -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",

drivers/media/usb/em28xx/em28xx-cards.c struct em28xx_board em28xx_boards[] = { · line 1207

Quoted 10 lines
drivers/media/usb/em28xx/em28xx-cards.c +10 -0
+		.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.

drivers/media/usb/em28xx/em28xx-cards.c struct em28xx_board em28xx_boards[] = { · line 1210

Quoted 3 lines
drivers/media/usb/em28xx/em28xx-cards.c +3 -0
+		.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

Quoted 37 lines
drivers/media/usb/em28xx/em28xx-cards.c +3 -0
+	},
 	[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),
drivers/media/usb/em28xx/em28xx-dvb.c +1 -0
index 82edd37f0d73..4a7db623fe29 100644
@@ -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 */
drivers/media/usb/em28xx/em28xx.h +1 -0
index e8d97d5ec161..88084f24f033 100644
@@ -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