On Sat, Nov 26, 2011 at 13:47, Maik Zumstrull <maik@xxxxxxxxxxxxx> wrote:
>
> > it seems I've found myself with an rtl2832u-based DVB-T USB stick. The
> > latest news on that seems to be that you were working on cleaning up
> > the code of the Realtek-provided GPL driver, with the goal of
> > eventually getting it into mainline.
> >
> > Would you mind giving a short status update?
>
> FYI, someone has contacted me off-list to point out that the newest(?)
> Realtek tree for these devices is available online:
>
> Alessandro Ambrosini wrote:
>
> > Dear maik,
> >
> > I've read your post here
> > http://www.mail-archive.com/linux-media@xxxxxxxxxxxxxxx/msg39559.html
> > I have not a subscription to linux-media mailing list. I see your post
> > looking for in archive.
> >
> > Some days ago I've asked to Realtek if there are newer driver (latest on
the
> > net was 2.2.0)
> > They kindly send me latest driver 2.2.2 kernel 2.6.x
> >
> > I've patched it yesterday for kernel 3.0.0 (Ubuntu 11.10) and they looks
to
> > work fine.
> > I'm not an expert C coder, only an hobbyist. So I suppose there are
> > problems.
> >
> > Anyway here you can find:
> >
> > 1) original Realtek 2.2.2 driver "simplified version" (DVB-T only and 4
> > tuners only)
> > https://github.com/ambrosa/DVB-Realtek-RTL2832U-2.2.2-4_tuner
> >
> > 2) original Realtek 2.2.2 driver "full version" (DVB-T/ DTMB and 10
tuners)
> > https://github.com/ambrosa/DVB-Realtek-RTL2832U-2.2.2-10_tuner
> >
> > 3) driver "full" modded by me for kernel 3.0.0
> > https://github.com/ambrosa/DVB-Realtek-RTL2832U-2.2.2-10tuner-
mod_kernel-3.0.0
> > README file explain about all
...
Please note that the DVB part of the Noxon DAB Stick (USB ID 0ccd:00b3) is
also supported by the driver code (not sure how to access DAB+, maybe someone
can give me a hint?)!
For kernel 3.2 the following patch is required (tested with 3.2-rc2 64bit
kernel), relative to the "full" modded kernel 3.0.0 version from Alessandro:
--- a/rtl2832u.c 2011-11-27 11:05:03.587543422 +0100
+++ b/rtl2832u.c 2011-11-27 10:47:19.329713097 +0100
@@ -689,7 +689,11 @@ error:
static int rtl2832u_frontend_attach(struct dvb_usb_adapter *adap)
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ adap->fe_adap[0].fe = rtl2832u_fe_attach(adap->dev);
+#else
adap->fe = rtl2832u_fe_attach(adap->dev);
+#endif
return 0;
}
@@ -835,9 +839,16 @@ static struct dvb_usb_device_properties
.adapter =
{
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ .fe_ioctl_override = rtl2832u_ioctl_override,
+ .num_frontends = 1,
+ .fe = {{
+#endif
.streaming_ctrl = rtl2832u_streaming_ctrl,
.frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
.fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
//parameter for the MPEG2-data transfer
.stream =
{
@@ -852,6 +863,9 @@ static struct dvb_usb_device_properties
}
}
},
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ }},
+#endif
}
},
@@ -917,9 +931,16 @@ static struct dvb_usb_device_properties
.adapter =
{
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ .fe_ioctl_override = rtl2832u_ioctl_override,
+ .num_frontends = 1,
+ .fe = {{
+#endif
.streaming_ctrl = rtl2832u_streaming_ctrl,
.frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
.fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
//parameter for the MPEG2-data transfer
.stream =
{
@@ -934,6 +955,9 @@ static struct dvb_usb_device_properties
}
}
},
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ }},
+#endif
}
},
//remote control
@@ -999,9 +1023,16 @@ static struct dvb_usb_device_properties
.adapter =
{
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ .fe_ioctl_override = rtl2832u_ioctl_override,
+ .num_frontends = 1,
+ .fe = {{
+#endif
.streaming_ctrl = rtl2832u_streaming_ctrl,
.frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
.fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
//parameter for the MPEG2-data transfer
.stream =
{
@@ -1016,6 +1047,9 @@ static struct dvb_usb_device_properties
}
}
},
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ }},
+#endif
}
},
@@ -1087,9 +1121,16 @@ static struct dvb_usb_device_properties
.adapter =
{
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ .fe_ioctl_override = rtl2832u_ioctl_override,
+ .num_frontends = 1,
+ .fe = {{
+#endif
.streaming_ctrl = rtl2832u_streaming_ctrl,
.frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
.fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
//parameter for the MPEG2-data transfer
.stream =
{
@@ -1104,6 +1145,9 @@ static struct dvb_usb_device_properties
}
}
},
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ }},
+#endif
}
},
//remote control
@@ -1176,9 +1220,16 @@ static struct dvb_usb_device_properties
.adapter =
{
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ .fe_ioctl_override = rtl2832u_ioctl_override,
+ .num_frontends = 1,
+ .fe = {{
+#endif
.streaming_ctrl = rtl2832u_streaming_ctrl,
.frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
.fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
//parameter for the MPEG2-data transfer
.stream =
{
@@ -1193,6 +1244,9 @@ static struct dvb_usb_device_properties
}
}
},
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ }},
+#endif
}
},
//remote control
@@ -1265,9 +1319,16 @@ static struct dvb_usb_device_properties
.adapter =
{
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ .fe_ioctl_override = rtl2832u_ioctl_override,
+ .num_frontends = 1,
+ .fe = {{
+#endif
.streaming_ctrl = rtl2832u_streaming_ctrl,
.frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
.fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
//parameter for the MPEG2-data transfer
.stream =
{
@@ -1282,6 +1343,9 @@ static struct dvb_usb_device_properties
}
}
},
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ }},
+#endif
}
},
/*remote control*/
@@ -1353,9 +1417,16 @@ static struct dvb_usb_device_properties
.adapter =
{
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ .fe_ioctl_override = rtl2832u_ioctl_override,
+ .num_frontends = 1,
+ .fe = {{
+#endif
.streaming_ctrl = rtl2832u_streaming_ctrl,
.frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
.fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
//parameter for the MPEG2-data transfer
.stream =
{
@@ -1370,6 +1441,9 @@ static struct dvb_usb_device_properties
}
}
},
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ }},
+#endif
}
},
//remote control
@@ -1436,9 +1510,16 @@ static struct dvb_usb_device_properties
.adapter =
{
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ .fe_ioctl_override = rtl2832u_ioctl_override,
+ .num_frontends = 1,
+ .fe = {{
+#endif
.streaming_ctrl = rtl2832u_streaming_ctrl,
.frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
.fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
//parameter for the MPEG2-data transfer
.stream =
{
@@ -1453,6 +1534,9 @@ static struct dvb_usb_device_properties
}
}
},
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ }},
+#endif
}
},
//remote control
@@ -1519,9 +1603,16 @@ static struct dvb_usb_device_properties
.adapter =
{
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ .fe_ioctl_override = rtl2832u_ioctl_override,
+ .num_frontends = 1,
+ .fe = {{
+#endif
.streaming_ctrl = rtl2832u_streaming_ctrl,
.frontend_attach = rtl2832u_frontend_attach,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
.fe_ioctl_override = rtl2832u_ioctl_override,
+#endif
//parameter for the MPEG2-data transfer
.stream =
{
@@ -1536,6 +1627,9 @@ static struct dvb_usb_device_properties
}
}
},
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
+ }},
+#endif
}
},
//remote control
Alessandro, thanks very much for your effort!
Cheers,
Hans-Frieder Vogt e-mail: hfvogt <at> gmx .dot. net
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html