Discussion:
[PATCH] Support for Sundtek SkyTV Ultimate (USB DVB-S/S2)
Alessandro Miceli
2011-11-27 19:53:01 UTC
Permalink
Here is the patch to support the Sundtek SkyTV Ultimate device.
It's a USB DVB-S/S2 device based on Empia chipset 28174 + NXP TDA 10071.
Device tested with success on Intel Core i5, Ubuntu 11.10, Kernel
3.0.0, Kaffeine and latest media_build env.
The hardware profile of Sundtek device seems a clone of PCTV 460e
already supported by LinuxTV.

Signed-off-by: Alessandro Miceli <***@gmail.com>

diff -uprN orig/drivers/media/video/em28xx//em28xx-cards.c
linux/drivers/media/video/em28xx//em28xx-cards.c
--- orig/drivers/media/video/em28xx//em28xx-cards.c 2011-11-25
05:45:29.000000000 +0100
+++ linux/drivers/media/video/em28xx//em28xx-cards.c 2011-11-27
20:36:24.626783803 +0100
@@ -1888,6 +1888,14 @@ struct em28xx_board em28xx_boards[] = {
.has_dvb = 1,
.ir_codes = RC_MAP_PINNACLE_PCTV_HD,
},
+ [EM2884_BOARD_SUNDTEK_DVBS2] = {
+ .i2c_speed = EM2874_I2C_SECONDARY_BUS_SELECT |
+ EM28XX_I2C_CLK_WAIT_ENABLE | EM28XX_I2C_FREQ_400_KHZ,
+ .name = "Sundtek SkyTV Ultimate",
+ .tuner_type = TUNER_ABSENT,
+ .tuner_gpio = pctv_460e,
+ .has_dvb = 1,
+ },
};
const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards);

@@ -2027,6 +2035,8 @@ struct usb_device_id em28xx_id_table[] =
.driver_info = EM28174_BOARD_PCTV_460E },
{ USB_DEVICE(0x2040, 0x1605),
.driver_info = EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C },
+ { USB_DEVICE(0xeb1a, 0x51be),
+ .driver_info = EM2884_BOARD_SUNDTEK_DVBS2 },
{ },
};
MODULE_DEVICE_TABLE(usb, em28xx_id_table);
diff -uprN orig/drivers/media/video/em28xx//em28xx-dvb.c
linux/drivers/media/video/em28xx//em28xx-dvb.c
--- orig/drivers/media/video/em28xx//em28xx-dvb.c 2011-11-25
05:45:29.000000000 +0100
+++ linux/drivers/media/video/em28xx//em28xx-dvb.c 2011-11-27
20:45:08.738805535 +0100
@@ -936,6 +936,11 @@ static int em28xx_dvb_init(struct em28xx
sizeof(dvb->fe[0]->ops.tuner_ops));

break;
+ case EM2884_BOARD_SUNDTEK_DVBS2:
+ /* attach demod */
+ dvb->fe[0] = dvb_attach(tda10071_attach,
+ &em28xx_tda10071_config, &dev->i2c_adap);
+ break;
case EM28174_BOARD_PCTV_460E:
/* attach demod */
dvb->fe[0] = dvb_attach(tda10071_attach,
diff -uprN orig/drivers/media/video/em28xx//em28xx.h
linux/drivers/media/video/em28xx//em28xx.h
--- orig/drivers/media/video/em28xx//em28xx.h 2011-11-25
05:45:29.000000000 +0100
+++ linux/drivers/media/video/em28xx//em28xx.h 2011-11-27
20:35:34.286781718 +0100
@@ -124,6 +124,7 @@
#define EM28174_BOARD_PCTV_460E 80
#define EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C 81
#define EM2884_BOARD_CINERGY_HTC_STICK 82
+#define EM2884_BOARD_SUNDTEK_DVBS2 84

/* Limits minimum and default number of buffers */
#define EM28XX_MIN_BUF 4
Markus Rechberger
2011-11-28 01:35:05 UTC
Permalink
On Mon, Nov 28, 2011 at 3:53 AM, Alessandro Miceli
Post by Alessandro Miceli
Here is the patch to support the Sundtek SkyTV Ultimate device.
It's a USB DVB-S/S2 device based on Empia chipset 28174 + NXP TDA 100=
71.
Post by Alessandro Miceli
Device tested with success on Intel Core i5, Ubuntu 11.10, Kernel
3.0.0, Kaffeine and latest media_build env.
The hardware profile of Sundtek device seems a clone of PCTV 460e
already supported by LinuxTV.
diff -uprN orig/drivers/media/video/em28xx//em28xx-cards.c
linux/drivers/media/video/em28xx//em28xx-cards.c
--- orig/drivers/media/video/em28xx//em28xx-cards.c =A0 =A02011-11-25
05:45:29.000000000 +0100
+++ linux/drivers/media/video/em28xx//em28xx-cards.c =A0 =A02011-11-2=
7
Post by Alessandro Miceli
20:36:24.626783803 +0100
@@ -1888,6 +1888,14 @@ struct em28xx_board em28xx_boards[] =3D {
=A0 =A0 =A0 =A0 .has_dvb =A0 =A0 =A0 =3D 1,
=A0 =A0 =A0 =A0 .ir_codes =A0 =A0 =A0=3D RC_MAP_PINNACLE_PCTV_HD,
=A0 =A0 },
+ =A0 =A0[EM2884_BOARD_SUNDTEK_DVBS2] =3D {
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0.i2c_speed =A0 =A0 =3D EM2874_I2C_SE=
CONDARY_BUS_SELECT |
Post by Alessandro Miceli
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0EM28XX_I2C_CLK_WAIT_=
ENABLE | EM28XX_I2C_FREQ_400_KHZ,
Post by Alessandro Miceli
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0.name =A0 =A0 =A0 =A0 =A0=3D "Sundte=
k SkyTV Ultimate",
Post by Alessandro Miceli
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0.tuner_type =A0 =A0=3D TUNER_ABSENT,
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0.tuner_gpio =A0 =A0=3D pctv_460e,
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0.has_dvb =A0 =A0 =A0 =3D 1,
+ =A0 =A0 =A0 =A0},
=A0};
=A0const unsigned int em28xx_bcount =3D ARRAY_SIZE(em28xx_boards);
@@ -2027,6 +2035,8 @@ struct usb_device_id em28xx_id_table[] =3D
=A0 =A0 =A0 =A0 =A0 =A0 .driver_info =3D EM28174_BOARD_PCTV_460E },
=A0 =A0 { USB_DEVICE(0x2040, 0x1605),
=A0 =A0 =A0 =A0 =A0 =A0 .driver_info =3D EM2884_BOARD_HAUPPAUGE_WINTV=
_HVR_930C },
Post by Alessandro Miceli
+ =A0 =A0 =A0 =A0{ USB_DEVICE(0xeb1a, 0x51be),
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0.driver_info =3D EM2=
884_BOARD_SUNDTEK_DVBS2 },
Post by Alessandro Miceli
=A0 =A0 { },
=A0};
=A0MODULE_DEVICE_TABLE(usb, em28xx_id_table);
diff -uprN orig/drivers/media/video/em28xx//em28xx-dvb.c
linux/drivers/media/video/em28xx//em28xx-dvb.c
--- orig/drivers/media/video/em28xx//em28xx-dvb.c =A0 =A02011-11-25
05:45:29.000000000 +0100
+++ linux/drivers/media/video/em28xx//em28xx-dvb.c =A0 =A02011-11-27
20:45:08.738805535 +0100
@@ -936,6 +936,11 @@ static int em28xx_dvb_init(struct em28xx
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0sizeof(dvb->fe[0]->ops.tuner_ops));
=A0 =A0 =A0 =A0 break;
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/* attach demod */
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0dvb->fe[0] =3D dvb_attach(tda10071_a=
ttach,
Post by Alessandro Miceli
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0&em28xx_tda10071_con=
fig, &dev->i2c_adap);
Post by Alessandro Miceli
+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break;
=A0 =A0 =A0 =A0 /* attach demod */
=A0 =A0 =A0 =A0 dvb->fe[0] =3D dvb_attach(tda10071_attach,
diff -uprN orig/drivers/media/video/em28xx//em28xx.h
linux/drivers/media/video/em28xx//em28xx.h
--- orig/drivers/media/video/em28xx//em28xx.h =A0 =A02011-11-25
05:45:29.000000000 +0100
+++ linux/drivers/media/video/em28xx//em28xx.h =A0 =A02011-11-27
20:35:34.286781718 +0100
@@ -124,6 +124,7 @@
=A0#define EM28174_BOARD_PCTV_460E =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
80
Post by Alessandro Miceli
=A0#define EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C =A0 =A0 =A081
=A0#define EM2884_BOARD_CINERGY_HTC_STICK =A0 =A0 =A0 =A0 =A082
+#define EM2884_BOARD_SUNDTEK_DVBS2 =A0 =A0 =A0 =A0 =A084
=A0/* Limits minimum and default number of buffers */
=A0#define EM28XX_MIN_BUF 4
This might only work with Rev 1 of the device Rev 2 - 4 definitely
won't work with that.
Revision 5 uses a completely different demodulator and will only cause
errors with this.
And by far it's no clone of the other device the circuits are totally d=
ifferent.
If you insist on supporting our devices don't load it as default only
people who have the
first rev. with bad sensitivity should use it.

Not accepted because of that.

Best Regards,
Markus
Post by Alessandro Miceli
--
To unsubscribe from this list: send the line "unsubscribe linux-media=
" in
Post by Alessandro Miceli
More majordomo info at =A0http://vger.kernel.org/majordomo-info.html
Loading...