cx23885: Split Hauppauge WinTV Starburst from HVR4400 card entry

Message ID 1419191964-29833-1-git-send-email-zzam@gentoo.org (mailing list archive)
State Superseded, archived
Delegated to: Hans Verkuil
Headers

Commit Message

Matthias Schwarzott Dec. 21, 2014, 7:59 p.m. UTC
  Unconditionally attaching Si2161/Si2165 demod driver
breaks Hauppauge WinTV Starburst.
So create own card entry for this.

Add card name comments to the subsystem ids.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
---
 drivers/media/pci/cx23885/cx23885-cards.c | 23 +++++++++++++++++------
 drivers/media/pci/cx23885/cx23885-dvb.c   | 11 +++++++++++
 drivers/media/pci/cx23885/cx23885.h       |  1 +
 3 files changed, 29 insertions(+), 6 deletions(-)
  

Comments

Matthias Schwarzott Dec. 21, 2014, 8:07 p.m. UTC | #1
Hi!

Should the commit message directly point to the breaking commit
36efec48e2e6016e05364906720a0ec350a5d768?

This commit hopefully reverts the problematic attach for the Starburst
card. I kept the GPIO-part in common, but I can split this also if
necessary.

Regards
Matthias

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Antti Palosaari Dec. 21, 2014, 8:27 p.m. UTC | #2
Works now

media: Linux media interface: v0.10
Linux video capture interface: v2.00
cx23885 driver version 0.0.4 loaded
CORE cx23885[0]: subsystem: 0070:c12a, board: Hauppauge WinTV Starburst 
[card=52,autodetected]
tveeprom 5-0050: Hauppauge model 121200, rev B2C3, serial# 4034388477
tveeprom 5-0050: MAC address is 00:0d:fe:77:e1:fd
tveeprom 5-0050: tuner model is Conexant CX24118A (idx 123, type 4)
tveeprom 5-0050: TV standards ATSC/DVB Digital (eeprom 0x80)
tveeprom 5-0050: audio processor is CX23888 (idx 40)
tveeprom 5-0050: decoder processor is CX23888 (idx 34)
tveeprom 5-0050: has no radio, has IR receiver, has no IR transmitter
cx23885[0]: warning: unknown hauppauge model #121200
cx23885[0]: hauppauge eeprom: model=121200
cx23885_dvb_register() allocating 1 frontend(s)
cx23885[0]: cx23885 based dvb card
i2c i2c-5: a8293: Allegro A8293 SEC attached
DVB: registering new adapter (cx23885[0])
cx23885 0000:02:00.0: DVB: registering adapter 0 frontend 0 (NXP 
TDA10071)...
cx23885_dev_checkrevision() Hardware revision = 0xd0
cx23885[0]/0: found at 0000:02:00.0, rev: 4, irq: 18, latency: 0, mmio: 
0xfe800000


Tested-by: Antti Palosaari <crope@iki.fi>

Antti

On 12/21/2014 09:59 PM, Matthias Schwarzott wrote:
> Unconditionally attaching Si2161/Si2165 demod driver
> breaks Hauppauge WinTV Starburst.
> So create own card entry for this.
>
> Add card name comments to the subsystem ids.
>
> Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
> ---
>   drivers/media/pci/cx23885/cx23885-cards.c | 23 +++++++++++++++++------
>   drivers/media/pci/cx23885/cx23885-dvb.c   | 11 +++++++++++
>   drivers/media/pci/cx23885/cx23885.h       |  1 +
>   3 files changed, 29 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/media/pci/cx23885/cx23885-cards.c b/drivers/media/pci/cx23885/cx23885-cards.c
> index db99ca2..06931f6 100644
> --- a/drivers/media/pci/cx23885/cx23885-cards.c
> +++ b/drivers/media/pci/cx23885/cx23885-cards.c
> @@ -614,7 +614,7 @@ struct cx23885_board cx23885_boards[] = {
>   		.portb		= CX23885_MPEG_DVB,
>   	},
>   	[CX23885_BOARD_HAUPPAUGE_HVR4400] = {
> -		.name		= "Hauppauge WinTV-HVR4400",
> +		.name		= "Hauppauge WinTV-HVR4400/HVR5500",
>   		.porta		= CX23885_ANALOG_VIDEO,
>   		.portb		= CX23885_MPEG_DVB,
>   		.portc		= CX23885_MPEG_DVB,
> @@ -622,6 +622,10 @@ struct cx23885_board cx23885_boards[] = {
>   		.tuner_addr	= 0x60, /* 0xc0 >> 1 */
>   		.tuner_bus	= 1,
>   	},
> +	[CX23885_BOARD_HAUPPAUGE_STARBURST] = {
> +		.name		= "Hauppauge WinTV Starburst",
> +		.portb		= CX23885_MPEG_DVB,
> +	},
>   	[CX23885_BOARD_AVERMEDIA_HC81R] = {
>   		.name		= "AVerTV Hybrid Express Slim HC81R",
>   		.tuner_type	= TUNER_XC2028,
> @@ -936,19 +940,19 @@ struct cx23885_subid cx23885_subids[] = {
>   	}, {
>   		.subvendor = 0x0070,
>   		.subdevice = 0xc108,
> -		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400,
> +		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400, /* Hauppauge WinTV HVR-4400 (Model 121xxx, Hybrid DVB-T/S2, IR) */
>   	}, {
>   		.subvendor = 0x0070,
>   		.subdevice = 0xc138,
> -		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400,
> +		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400, /* Hauppauge WinTV HVR-5500 (Model 121xxx, Hybrid DVB-T/C/S2, IR) */
>   	}, {
>   		.subvendor = 0x0070,
>   		.subdevice = 0xc12a,
> -		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400,
> +		.card      = CX23885_BOARD_HAUPPAUGE_STARBURST, /* Hauppauge WinTV Starburst (Model 121x00, DVB-S2, IR) */
>   	}, {
>   		.subvendor = 0x0070,
>   		.subdevice = 0xc1f8,
> -		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400,
> +		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400, /* Hauppauge WinTV HVR-5500 (Model 121xxx, Hybrid DVB-T/C/S2, IR) */
>   	}, {
>   		.subvendor = 0x1461,
>   		.subdevice = 0xd939,
> @@ -1545,8 +1549,9 @@ void cx23885_gpio_setup(struct cx23885_dev *dev)
>   		cx_write(GPIO_ISM, 0x00000000);/* INTERRUPTS active low*/
>   		break;
>   	case CX23885_BOARD_HAUPPAUGE_HVR4400:
> +	case CX23885_BOARD_HAUPPAUGE_STARBURST:
>   		/* GPIO-8 tda10071 demod reset */
> -		/* GPIO-9 si2165 demod reset */
> +		/* GPIO-9 si2165 demod reset (only HVR4400/HVR5500)*/
>
>   		/* Put the parts into reset and back */
>   		cx23885_gpio_enable(dev, GPIO_8 | GPIO_9, 1);
> @@ -1872,6 +1877,7 @@ void cx23885_card_setup(struct cx23885_dev *dev)
>   	case CX23885_BOARD_HAUPPAUGE_HVR1850:
>   	case CX23885_BOARD_HAUPPAUGE_HVR1290:
>   	case CX23885_BOARD_HAUPPAUGE_HVR4400:
> +	case CX23885_BOARD_HAUPPAUGE_STARBURST:
>   	case CX23885_BOARD_HAUPPAUGE_IMPACTVCBE:
>   		if (dev->i2c_bus[0].i2c_rc == 0)
>   			hauppauge_eeprom(dev, eeprom+0xc0);
> @@ -1980,6 +1986,11 @@ void cx23885_card_setup(struct cx23885_dev *dev)
>   		ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
>   		ts2->src_sel_val   = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
>   		break;
> +	case CX23885_BOARD_HAUPPAUGE_STARBURST:
> +		ts1->gen_ctrl_val  = 0xc; /* Serial bus + punctured clock */
> +		ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
> +		ts1->src_sel_val   = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
> +		break;
>   	case CX23885_BOARD_DVBSKY_T9580:
>   	case CX23885_BOARD_DVBSKY_T982:
>   		ts1->gen_ctrl_val  = 0x5; /* Parallel */
> diff --git a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c
> index c47d182..a9c450d 100644
> --- a/drivers/media/pci/cx23885/cx23885-dvb.c
> +++ b/drivers/media/pci/cx23885/cx23885-dvb.c
> @@ -1710,6 +1710,17 @@ static int dvb_register(struct cx23885_tsport *port)
>   			break;
>   		}
>   		break;
> +	case CX23885_BOARD_HAUPPAUGE_STARBURST:
> +		i2c_bus = &dev->i2c_bus[0];
> +		fe0->dvb.frontend = dvb_attach(tda10071_attach,
> +						&hauppauge_tda10071_config,
> +						&i2c_bus->i2c_adap);
> +		if (fe0->dvb.frontend != NULL) {
> +			dvb_attach(a8293_attach, fe0->dvb.frontend,
> +				   &i2c_bus->i2c_adap,
> +				   &hauppauge_a8293_config);
> +		}
> +		break;
>   	case CX23885_BOARD_DVBSKY_T9580:
>   	case CX23885_BOARD_DVBSKY_S950:
>   		i2c_bus = &dev->i2c_bus[0];
> diff --git a/drivers/media/pci/cx23885/cx23885.h b/drivers/media/pci/cx23885/cx23885.h
> index f55cd12..36f2f96 100644
> --- a/drivers/media/pci/cx23885/cx23885.h
> +++ b/drivers/media/pci/cx23885/cx23885.h
> @@ -99,6 +99,7 @@
>   #define CX23885_BOARD_DVBSKY_S950              49
>   #define CX23885_BOARD_DVBSKY_S952              50
>   #define CX23885_BOARD_DVBSKY_T982              51
> +#define CX23885_BOARD_HAUPPAUGE_STARBURST      52
>
>   #define GPIO_0 0x00000001
>   #define GPIO_1 0x00000002
>
  
Steven Toth Dec. 22, 2014, 12:59 p.m. UTC | #3
On Sun, Dec 21, 2014 at 2:59 PM, Matthias Schwarzott <zzam@gentoo.org> wrote:
> Unconditionally attaching Si2161/Si2165 demod driver
> breaks Hauppauge WinTV Starburst.
> So create own card entry for this.
>
> Add card name comments to the subsystem ids.
>
> Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>

Matthias,

Thank you for your work. However, nobody knows or cares what
'STARBURST' is. When I created the original driver I was careful to
name the card identified to match the actual hardware names that were
sold in retail, this eases future maintenance for people with no
knowledge of the hardware and makes Linux support for the HVR550 much
more obvious in google.

Please change CX23885_BOARD_HAUPPAUGE_STARBURST to
CX23885_BOARD_HAUPPAUGE_HVR5500.

Thanks,
  
Matthias Schwarzott Dec. 22, 2014, 1:06 p.m. UTC | #4
On 22.12.2014 13:59, Steven Toth wrote:
> On Sun, Dec 21, 2014 at 2:59 PM, Matthias Schwarzott <zzam@gentoo.org> wrote:
>> Unconditionally attaching Si2161/Si2165 demod driver
>> breaks Hauppauge WinTV Starburst.
>> So create own card entry for this.
>>
>> Add card name comments to the subsystem ids.
>>
>> Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
> 
> Matthias,
> 
> Thank you for your work. However, nobody knows or cares what
> 'STARBURST' is. When I created the original driver I was careful to
> name the card identified to match the actual hardware names that were
> sold in retail, this eases future maintenance for people with no
> knowledge of the hardware and makes Linux support for the HVR550 much
> more obvious in google.
> 
> Please change CX23885_BOARD_HAUPPAUGE_STARBURST to
> CX23885_BOARD_HAUPPAUGE_HVR5500.
> 
> Thanks,
> 
Hi Steven,

thank you for your feedback.

I rechecked the names and this are the more or less supported devices:
* Starburst supports DVB-S2 only
* HVR-4400 supports DVB-S2 + DVB-T (Si2161)
* HVR-5500 supports DVB-S2 + DVB-C/T (Si2165)

As starburst has only one demod and HVR-4400/HVR-5500 have two, there is
one card entry for HVR-4400/HVR-5500 and a second one with different
name for the Sturburst.

Checking hauppauge homepage I directly get to the WinTV-Starburst:
http://www.hauppauge.de/site/products/data_starburst.html

So I see this is an official product name. Why not show this name?

Regards
Matthias

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Steven Toth Dec. 22, 2014, 1:12 p.m. UTC | #5
>> Please change CX23885_BOARD_HAUPPAUGE_STARBURST to
>> CX23885_BOARD_HAUPPAUGE_HVR5500.
>>
>> Thanks,
>>
> Hi Steven,
>
> thank you for your feedback.
>
> I rechecked the names and this are the more or less supported devices:
> * Starburst supports DVB-S2 only
> * HVR-4400 supports DVB-S2 + DVB-T (Si2161)
> * HVR-5500 supports DVB-S2 + DVB-C/T (Si2165)
>
> As starburst has only one demod and HVR-4400/HVR-5500 have two, there is
> one card entry for HVR-4400/HVR-5500 and a second one with different
> name for the Sturburst.
>
> Checking hauppauge homepage I directly get to the WinTV-Starburst:
> http://www.hauppauge.de/site/products/data_starburst.html
>
> So I see this is an official product name. Why not show this name?

You are correct. I was assuming you were attempting to add HVR5500 support.

Please disregard my previous request, CX23885_BOARD_HAUPPAUGE_STARBURST is fine.

- Steve
  
Mauro Carvalho Chehab Dec. 22, 2014, 1:25 p.m. UTC | #6
Em Sun, 21 Dec 2014 21:07:02 +0100
Matthias Schwarzott <zzam@gentoo.org> escreveu:

> Hi!
> 
> Should the commit message directly point to the breaking commit
> 36efec48e2e6016e05364906720a0ec350a5d768?

Yes, if this fixes an issue that happened on a previous commit, then
you should add the original commit there.

That likely means that this is a regression fix, right? So, you should
c/c the patch to stable, adding a comment msg telling to what Kernel
version it applies (assuming that the patch was merged on 3.18).
Also, please add "PATCH FIX" to the subject, as this patch should be
sent to 3.19 as well.

> 
> This commit hopefully reverts the problematic attach for the Starburst
> card. I kept the GPIO-part in common, but I can split this also if
> necessary.

Keep the GPIO part in common is better, if the GPIOs are the same.
> 
> Regards
> Matthias
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Matthias Schwarzott Dec. 22, 2014, 1:36 p.m. UTC | #7
On 22.12.2014 14:25, Mauro Carvalho Chehab wrote:
> Em Sun, 21 Dec 2014 21:07:02 +0100
> Matthias Schwarzott <zzam@gentoo.org> escreveu:
> 
>> Hi!
>>
>> Should the commit message directly point to the breaking commit
>> 36efec48e2e6016e05364906720a0ec350a5d768?
> 
> Yes, if this fixes an issue that happened on a previous commit, then
> you should add the original commit there.
> 
> That likely means that this is a regression fix, right? So, you should
> c/c the patch to stable, adding a comment msg telling to what Kernel
> version it applies (assuming that the patch was merged on 3.18).
> Also, please add "PATCH FIX" to the subject, as this patch should be
> sent to 3.19 as well.
> 
>>
>> This commit hopefully reverts the problematic attach for the Starburst
>> card. I kept the GPIO-part in common, but I can split this also if
>> necessary.
> 
> Keep the GPIO part in common is better, if the GPIOs are the same.

Hi!

The GPIO-Pins that are used are the same on both cards. And I assume the
ones that control Si2165 on HVR-5500 are just unused on Starburst, so
setting them does not hurt (and Antti confirmed that the patch works).

The cards have more in common, but I could not find a clean way to share
attaching and TS-config of the DVB-S2 frontend.

So I will change the commit message, prefix subject with PATCH fix, and
resend the patch here and c/c to stable.

Regards
Matthias

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Antti Palosaari Dec. 22, 2014, 2:01 p.m. UTC | #8
On 12/22/2014 03:36 PM, Matthias Schwarzott wrote:
> On 22.12.2014 14:25, Mauro Carvalho Chehab wrote:
>> Em Sun, 21 Dec 2014 21:07:02 +0100
>> Matthias Schwarzott <zzam@gentoo.org> escreveu:
>>
>>> Hi!
>>>
>>> Should the commit message directly point to the breaking commit
>>> 36efec48e2e6016e05364906720a0ec350a5d768?
>>
>> Yes, if this fixes an issue that happened on a previous commit, then
>> you should add the original commit there.
>>
>> That likely means that this is a regression fix, right? So, you should
>> c/c the patch to stable, adding a comment msg telling to what Kernel
>> version it applies (assuming that the patch was merged on 3.18).
>> Also, please add "PATCH FIX" to the subject, as this patch should be
>> sent to 3.19 as well.
>>
>>>
>>> This commit hopefully reverts the problematic attach for the Starburst
>>> card. I kept the GPIO-part in common, but I can split this also if
>>> necessary.
>>
>> Keep the GPIO part in common is better, if the GPIOs are the same.
>
> Hi!
>
> The GPIO-Pins that are used are the same on both cards. And I assume the
> ones that control Si2165 on HVR-5500 are just unused on Starburst, so
> setting them does not hurt (and Antti confirmed that the patch works).

It registers all the chips correctly, I didn't test it actually anymore 
:] I don't even have live signal, just generator, satellite finder to 
test voltage/tone and one 4-port DiSEqC switch.

> The cards have more in common, but I could not find a clean way to share
> attaching and TS-config of the DVB-S2 frontend.

In my understanding Starburst is HVR-4400, but only satellite tuner is 
installed to PCB - whilst terrestrial/cable is left out.

I think the root of mistake was done years ago when all these HVR-4400 
revisions were put to same profile. Matthias didn't realized there is 
device missing totally another tuner when he added later support for 
these full-featured models.

> So I will change the commit message, prefix subject with PATCH fix, and
> resend the patch here and c/c to stable.

It is not so simple as there is multiple new devices added to that 
driver after that. You will need to make stable patch against older 
kernel version.

regards
Antti
  
Steven Toth Dec. 22, 2014, 2:12 p.m. UTC | #9
> In my understanding Starburst is HVR-4400, but only satellite tuner is
> installed to PCB - whilst terrestrial/cable is left out.

I went back through my engineering notes from my Hauppauge engineering
days, this statement is correct.
  

Patch

diff --git a/drivers/media/pci/cx23885/cx23885-cards.c b/drivers/media/pci/cx23885/cx23885-cards.c
index db99ca2..06931f6 100644
--- a/drivers/media/pci/cx23885/cx23885-cards.c
+++ b/drivers/media/pci/cx23885/cx23885-cards.c
@@ -614,7 +614,7 @@  struct cx23885_board cx23885_boards[] = {
 		.portb		= CX23885_MPEG_DVB,
 	},
 	[CX23885_BOARD_HAUPPAUGE_HVR4400] = {
-		.name		= "Hauppauge WinTV-HVR4400",
+		.name		= "Hauppauge WinTV-HVR4400/HVR5500",
 		.porta		= CX23885_ANALOG_VIDEO,
 		.portb		= CX23885_MPEG_DVB,
 		.portc		= CX23885_MPEG_DVB,
@@ -622,6 +622,10 @@  struct cx23885_board cx23885_boards[] = {
 		.tuner_addr	= 0x60, /* 0xc0 >> 1 */
 		.tuner_bus	= 1,
 	},
+	[CX23885_BOARD_HAUPPAUGE_STARBURST] = {
+		.name		= "Hauppauge WinTV Starburst",
+		.portb		= CX23885_MPEG_DVB,
+	},
 	[CX23885_BOARD_AVERMEDIA_HC81R] = {
 		.name		= "AVerTV Hybrid Express Slim HC81R",
 		.tuner_type	= TUNER_XC2028,
@@ -936,19 +940,19 @@  struct cx23885_subid cx23885_subids[] = {
 	}, {
 		.subvendor = 0x0070,
 		.subdevice = 0xc108,
-		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400,
+		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400, /* Hauppauge WinTV HVR-4400 (Model 121xxx, Hybrid DVB-T/S2, IR) */
 	}, {
 		.subvendor = 0x0070,
 		.subdevice = 0xc138,
-		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400,
+		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400, /* Hauppauge WinTV HVR-5500 (Model 121xxx, Hybrid DVB-T/C/S2, IR) */
 	}, {
 		.subvendor = 0x0070,
 		.subdevice = 0xc12a,
-		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400,
+		.card      = CX23885_BOARD_HAUPPAUGE_STARBURST, /* Hauppauge WinTV Starburst (Model 121x00, DVB-S2, IR) */
 	}, {
 		.subvendor = 0x0070,
 		.subdevice = 0xc1f8,
-		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400,
+		.card      = CX23885_BOARD_HAUPPAUGE_HVR4400, /* Hauppauge WinTV HVR-5500 (Model 121xxx, Hybrid DVB-T/C/S2, IR) */
 	}, {
 		.subvendor = 0x1461,
 		.subdevice = 0xd939,
@@ -1545,8 +1549,9 @@  void cx23885_gpio_setup(struct cx23885_dev *dev)
 		cx_write(GPIO_ISM, 0x00000000);/* INTERRUPTS active low*/
 		break;
 	case CX23885_BOARD_HAUPPAUGE_HVR4400:
+	case CX23885_BOARD_HAUPPAUGE_STARBURST:
 		/* GPIO-8 tda10071 demod reset */
-		/* GPIO-9 si2165 demod reset */
+		/* GPIO-9 si2165 demod reset (only HVR4400/HVR5500)*/
 
 		/* Put the parts into reset and back */
 		cx23885_gpio_enable(dev, GPIO_8 | GPIO_9, 1);
@@ -1872,6 +1877,7 @@  void cx23885_card_setup(struct cx23885_dev *dev)
 	case CX23885_BOARD_HAUPPAUGE_HVR1850:
 	case CX23885_BOARD_HAUPPAUGE_HVR1290:
 	case CX23885_BOARD_HAUPPAUGE_HVR4400:
+	case CX23885_BOARD_HAUPPAUGE_STARBURST:
 	case CX23885_BOARD_HAUPPAUGE_IMPACTVCBE:
 		if (dev->i2c_bus[0].i2c_rc == 0)
 			hauppauge_eeprom(dev, eeprom+0xc0);
@@ -1980,6 +1986,11 @@  void cx23885_card_setup(struct cx23885_dev *dev)
 		ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
 		ts2->src_sel_val   = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
 		break;
+	case CX23885_BOARD_HAUPPAUGE_STARBURST:
+		ts1->gen_ctrl_val  = 0xc; /* Serial bus + punctured clock */
+		ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
+		ts1->src_sel_val   = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
+		break;
 	case CX23885_BOARD_DVBSKY_T9580:
 	case CX23885_BOARD_DVBSKY_T982:
 		ts1->gen_ctrl_val  = 0x5; /* Parallel */
diff --git a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c
index c47d182..a9c450d 100644
--- a/drivers/media/pci/cx23885/cx23885-dvb.c
+++ b/drivers/media/pci/cx23885/cx23885-dvb.c
@@ -1710,6 +1710,17 @@  static int dvb_register(struct cx23885_tsport *port)
 			break;
 		}
 		break;
+	case CX23885_BOARD_HAUPPAUGE_STARBURST:
+		i2c_bus = &dev->i2c_bus[0];
+		fe0->dvb.frontend = dvb_attach(tda10071_attach,
+						&hauppauge_tda10071_config,
+						&i2c_bus->i2c_adap);
+		if (fe0->dvb.frontend != NULL) {
+			dvb_attach(a8293_attach, fe0->dvb.frontend,
+				   &i2c_bus->i2c_adap,
+				   &hauppauge_a8293_config);
+		}
+		break;
 	case CX23885_BOARD_DVBSKY_T9580:
 	case CX23885_BOARD_DVBSKY_S950:
 		i2c_bus = &dev->i2c_bus[0];
diff --git a/drivers/media/pci/cx23885/cx23885.h b/drivers/media/pci/cx23885/cx23885.h
index f55cd12..36f2f96 100644
--- a/drivers/media/pci/cx23885/cx23885.h
+++ b/drivers/media/pci/cx23885/cx23885.h
@@ -99,6 +99,7 @@ 
 #define CX23885_BOARD_DVBSKY_S950              49
 #define CX23885_BOARD_DVBSKY_S952              50
 #define CX23885_BOARD_DVBSKY_T982              51
+#define CX23885_BOARD_HAUPPAUGE_STARBURST      52
 
 #define GPIO_0 0x00000001
 #define GPIO_1 0x00000002