Based on the Gentoo patch of Terratec Cinergy XS[1] I inspected the source files in question:
/usr/src/linux/drivers/media/video/em28xx/em28xx-cards.c
/usr/src/linux/drivers/media/video/em28xx/em28xx-dvb.c
In em28xx-cards.c I've noted in sections for cards, (line 747 and after) that the regular HVR-900 has these lines but the R2 model does not:
case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900:
ctl->demod = XC3028_FE_ZARLINK456;
vs. lines 2061, 2062, 2063:
case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2:
/* djh - Not sure which demod we need here */
ctl->demod = XC3028_FE_DEFAULT;
I assume "demod" stands for demodulator so I Googled around a bit and found that the demodulator for HVR-900 (R2) is the Micronas drx397x[2] which was had no support until a driver for it was written and included in a new branch called em28xx-new by Markus Rechberger.[3]
In em28xx-dvb.c lines 495-499:
case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900:
case EM2880_BOARD_EMPIRE_DUAL_TV:
dvb->frontend = dvb_attach(zl10353_attach,
&em28xx_zl10353_xc3028_no_i2c_gate,
&dev->i2c_adap);
vs. lines 545-551:
case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2:
#ifdef EM28XX_DRX397XD_SUPPORT
/* We don't have the config structure properly populated, so this is commented out for now */
dvb->frontend = dvb_attach(drx397xD_attach,
&em28xx_drx397xD_with_xc3028,
&dev->i2c_adap);
jbourdon's link in comment #2 contains instructions for building em28xx-new and replacing the default modules with it. However em28xx-new has been discontinued and apparently there has been some difficulty in migrating functional code over from em28xx-new[4] because support is still lacking.
I've hunted for and attached the em28xx-new package in case it can be used to fix the problem. According to the README it contains drx3973d driver (this has been tested to work by those who've used em28xx-new before, including myself). Under the ubuntu folder no less.
The only thing is, I have no idea what the status of this thing is upstream. Maybe they've already got work in progress for a new driver.
Based on the Gentoo patch of Terratec Cinergy XS[1] I inspected the source files in question: linux/drivers/ media/video/ em28xx/ em28xx- cards.c linux/drivers/ media/video/ em28xx/ em28xx- dvb.c
/usr/src/
/usr/src/
In em28xx-cards.c I've noted in sections for cards, (line 747 and after) that the regular HVR-900 has these lines but the R2 model does not:
.has_dvb = 1, wintv_hvr_ 900_digital,
.dvb_gpio = hauppauge_
More differences, same file lines 2054, 2055:
case EM2880_ BOARD_HAUPPAUGE _WINTV_ HVR_900: FE_ZARLINK456;
ctl->demod = XC3028_
vs. lines 2061, 2062, 2063:
case EM2880_ BOARD_HAUPPAUGE _WINTV_ HVR_900_ R2:
/* djh - Not sure which demod we need here */
ctl->demod = XC3028_FE_DEFAULT;
I assume "demod" stands for demodulator so I Googled around a bit and found that the demodulator for HVR-900 (R2) is the Micronas drx397x[2] which was had no support until a driver for it was written and included in a new branch called em28xx-new by Markus Rechberger.[3]
In em28xx-dvb.c lines 495-499:
case EM2880_ BOARD_HAUPPAUGE _WINTV_ HVR_900: BOARD_EMPIRE_ DUAL_TV: zl10353_ attach, zl10353_ xc3028_ no_i2c_ gate,
case EM2880_
dvb->frontend = dvb_attach(
&em28xx_
&dev->i2c_adap);
vs. lines 545-551:
case EM2880_ BOARD_HAUPPAUGE _WINTV_ HVR_900_ R2: DRX397XD_ SUPPORT drx397xD_ attach, drx397xD_ with_xc3028,
#ifdef EM28XX_
/* We don't have the config structure properly populated, so this is commented out for now */
dvb->frontend = dvb_attach(
&em28xx_
&dev->i2c_adap);
jbourdon's link in comment #2 contains instructions for building em28xx-new and replacing the default modules with it. However em28xx-new has been discontinued and apparently there has been some difficulty in migrating functional code over from em28xx-new[4] because support is still lacking.
Sources: forums. gentoo. org/viewtopic- t-815022- start-0. html www.linuxtv. org/wiki/ index.php/ Hauppauge_ WinTV-HVR- 900 mcentral. de/hg/~ mrec/em28xx- new osdir.com/ ml/linux. drivers. em28xx/ 2008-01/ msg00035. html
[1] http://
[2] http://
[3] http://
[4] http://
I've hunted for and attached the em28xx-new package in case it can be used to fix the problem. According to the README it contains drx3973d driver (this has been tested to work by those who've used em28xx-new before, including myself). Under the ubuntu folder no less.
The only thing is, I have no idea what the status of this thing is upstream. Maybe they've already got work in progress for a new driver.