[linux-dvb] [RFC/PATCH] moving commonly used frontend configs to separate drivers

Andreas Oberritter obi at linuxtv.org
Sat Jul 23 10:30:08 CEST 2005


Hi,

how about moving some of the board dependent stuff of the frontend
functions out of the adapter drivers?

Making the PLL functions independent of the adapter driver works by
passing the i2c adapter pointer to the PLL callback instead of getting
it from private data pointers (which only works for a single bus per
adapter). So this change is needed anyway, because there can be adapters
with multiple frontends on multiple i2c buses.

I've created a patch which moves most of the code for frontends with
known manufacturer and model into small, well maintainable files.

Frontends I left out for now include those who need a request_firmware
callback, because I am not yet sure how to get that out of the config
structs. Maybe passing the required dev pointer to the attach function
will be sufficient.

The files have been run through Lindent and i2c error code checking has
been improved, thus making the old functions larger. Anyway, now there
are fewer lines of code than before, after removing all the duplicates.

It even fixes a bug by accident which would not allow a ttusb device !=
rev 2.2 be plugged in after a ttusb device with revision 2.2.

Because the patch's size is 111 kilobytes I've put it on my web server:
http://www.saftware.de/frontend.diff

It's not finished yet, but I hope to get some comments from you.


Here's the diffstat:

 build-2.6/Makefile                                      |    2 
 linux/drivers/media/dvb/b2c2/flexcop-fe-tuner.c         |  194 --------
 linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c               |   38 -
 linux/drivers/media/dvb/bt8xx/dvb-bt8xx.h               |    2 
 linux/drivers/media/dvb/frontends/Makefile              |    2 
 linux/drivers/media/dvb/frontends/at76c651.c            |    4 
 linux/drivers/media/dvb/frontends/at76c651.h            |    5 
 linux/drivers/media/dvb/frontends/bsbe1.c               |  137 +++++
 linux/drivers/media/dvb/frontends/bsbe1.h               |    9 
 linux/drivers/media/dvb/frontends/bsru6.c               |  139 ++++++
 linux/drivers/media/dvb/frontends/bsru6.h               |    9 
 linux/drivers/media/dvb/frontends/bsrv2.c               |   70 +++
 linux/drivers/media/dvb/frontends/bsrv2.h               |    9 
 linux/drivers/media/dvb/frontends/cd1516.c              |   61 ++
 linux/drivers/media/dvb/frontends/cd1516.h              |    9 
 linux/drivers/media/dvb/frontends/cu1216.c              |   54 ++
 linux/drivers/media/dvb/frontends/cu1216.h              |    9 
 linux/drivers/media/dvb/frontends/cx22700.c             |    4 
 linux/drivers/media/dvb/frontends/cx22700.h             |    5 
 linux/drivers/media/dvb/frontends/g29504-401.c          |   68 ++
 linux/drivers/media/dvb/frontends/g29504-401.h          |    9 
 linux/drivers/media/dvb/frontends/g29504-451.c          |   51 ++
 linux/drivers/media/dvb/frontends/g29504-451.h          |    9 
 linux/drivers/media/dvb/frontends/l64781.c              |    5 
 linux/drivers/media/dvb/frontends/l64781.h              |    5 
 linux/drivers/media/dvb/frontends/mt312.c               |    4 
 linux/drivers/media/dvb/frontends/mt312.h               |    5 
 linux/drivers/media/dvb/frontends/nxt6000.c             |    4 
 linux/drivers/media/dvb/frontends/nxt6000.h             |    5 
 linux/drivers/media/dvb/frontends/stv0299.h             |    2 
 linux/drivers/media/dvb/frontends/tbdu18132.c           |   55 ++
 linux/drivers/media/dvb/frontends/tbdu18132.h           |    9 
 linux/drivers/media/dvb/frontends/tbmu24112.c           |  144 ++++++
 linux/drivers/media/dvb/frontends/tbmu24112.h           |    9 
 linux/drivers/media/dvb/frontends/tda10021.c            |    4 
 linux/drivers/media/dvb/frontends/tda10021.h            |    5 
 linux/drivers/media/dvb/frontends/tda8083.c             |    5 
 linux/drivers/media/dvb/frontends/tda8083.h             |    5 
 linux/drivers/media/dvb/frontends/tda80xx.c             |    6 
 linux/drivers/media/dvb/frontends/tda80xx.h             |    5 
 linux/drivers/media/dvb/frontends/tdbe2.c               |   61 ++
 linux/drivers/media/dvb/frontends/tdbe2.h               |    9 
 linux/drivers/media/dvb/frontends/tded4.c               |   60 ++
 linux/drivers/media/dvb/frontends/tded4.h               |    9 
 linux/drivers/media/dvb/frontends/tdmb7.c               |   49 ++
 linux/drivers/media/dvb/frontends/tdmb7.h               |    9 
 linux/drivers/media/dvb/frontends/tdtc9251dh0.c         |   68 ++
 linux/drivers/media/dvb/frontends/tdtc9251dh0.h         |    9 
 linux/drivers/media/dvb/frontends/ves1820.c             |    5 
 linux/drivers/media/dvb/frontends/ves1820.h             |    5 
 linux/drivers/media/dvb/frontends/ves1x93.c             |    4 
 linux/drivers/media/dvb/frontends/ves1x93.h             |    5 
 linux/drivers/media/dvb/ttpci/av7110.c                  |  366 ----------------
 linux/drivers/media/dvb/ttpci/av7110.h                  |   14 
 linux/drivers/media/dvb/ttpci/budget-av.c               |   44 -
 linux/drivers/media/dvb/ttpci/budget-ci.c               |  123 -----
 linux/drivers/media/dvb/ttpci/budget-patch.c            |  164 -------
 linux/drivers/media/dvb/ttpci/budget.c                  |  243 ----------
 linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c |  277 ------------
 59 files changed, 1265 insertions(+), 1435 deletions(-)

Regards,
Andreas





More information about the linux-dvb mailing list