On 08/06/2012 11:21 PM, Malcolm Priestley wrote:
Conversion of lmedm04 to dvb-usb-v2
Functional changes m88rs2000 tuner now uses all callbacks.
TODO migrate other tuners to the callbacks.
This patch is applied on top of [BUG] Re: dvb_usb_lmedm04 crash Kernel (rs2000)
http://patchwork.linuxtv.org/patch/13584/
Signed-off-by: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Could you try to make this driver more generic?
You use some internals of dvb-usb directly and most likely those are
without a reason. For example data streaming, lme2510_kill_urb() kills
directly urbs allocated and submitted by dvb-usb. Guess that driver is
broken just after someone changes dvb-usb streaming code.
lme2510_usb_talk() could be replaced by generic dvb_usbv2_generic_rw().
What is function of lme2510_int_read() ? I see you use own low level URB
routines for here too. It starts "polling", reads remote, tuner, demod,
etc, and updates state. You would better to implement I2C-adapter
correctly and then start Kernel work-queue, which reads same information
using I2C-adapter. Or you could even abuse remote controller polling
function provided by dvb-usb.
lme2510_get_stream_config() enables pid-filter again over the dvb-usb,
but I can live with it because there is no dynamic configuration for
that. Anyhow, is that really needed?
I can live with the pid-filter "abuse", but killing stream URBs on
behalf of DVB-USB is something I don't like to see. If you have very
good explanation and I cannot fix DVB USB to meet it I could consider
that kind of hack. And it should be documented clearly adding necessary
comments to code.
Re-implementing that driver to use 100% DVB-USB services will reduce
around 50% of code or more.
regards
Antti
--
http://palosaari.fi/
--
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