Re: Status of RTL283xU support? [NOXON DAB Stick Supported][PATCH for 3.2 included]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux