[linux-dvb] [RFC / TESTERS WANTED] tuner callback refactoring

Michael Krufky mkrufky at linuxtv.org
Fri Sep 12 19:56:05 CEST 2008


This creates a standardized mechanism for callback functions within
the tuner / frontend drivers that can be used by all components
withing a "frontend" object to call back to the bridge / adapter
driver.

I have removed the duplicated tuner_callback function pointers from
all of the tuner driver configuration and private state structures,
replacing them with a general-purpose callback pointer within struct
dvb_frontend.

A new parameter is added to the callback function, called "component".
This allows us to use this callback pointer by frontend components
other than the tuner, if need be. So far, this is only used by tuner
drivers, but if other drivers need this functionality in the future,
this leaves room for it.

Please test my changes to ensure proper operation. Users should not
expect any change in functionality -- this should behave exactly the
same as the master v4l-dvb branch.

I have already tested various devices that use xc3028 and xc5000.  I
don't have access to DVB-T signals today to test the tda8275 /
tda8275a, so I'm especially interested in hearing feedback from users
testing devices that use those tuners.

Please reply to this thread with any comments, or details of bugs that
this change may have caused.  If you find a bug, please ensure that
you do not experience the same issue in today's master v4l-dvb branch
before posting.

I will be leaving for a short vacation in a few minutes, so I will
respond when I get back on Monday.

Users of devices that use Xceive and Philips silicon tuners, please
test the following changes in my mercurial tree:

http://linuxtv.org/hg/~mkrufky/fe-callback

- add a general-purpose callback pointer to struct dvb_frontend
- convert tuner drivers to use dvb_frontend->callback

 drivers/media/common/tuners/tda827x.c       |   12 +-
 drivers/media/common/tuners/tda827x.h       |    1
 drivers/media/common/tuners/tda8290.c       |    4
 drivers/media/common/tuners/tda8290.h       |    1
 drivers/media/common/tuners/tuner-xc2028.c  |   41 +++++-----
 drivers/media/common/tuners/tuner-xc2028.h  |    2
 drivers/media/common/tuners/xc5000.c        |    8 -
 drivers/media/common/tuners/xc5000.h        |    2
 drivers/media/dvb/dvb-core/dvb_frontend.h   |    2
 drivers/media/dvb/dvb-usb/cxusb.c           |    7 +
 drivers/media/dvb/dvb-usb/dib0700_devices.c |    8 +
 drivers/media/video/au0828/au0828-cards.c   |    2
 drivers/media/video/au0828/au0828-dvb.c     |    3
 drivers/media/video/au0828/au0828.h         |    3
 drivers/media/video/cx18/cx18-gpio.c        |    2
 drivers/media/video/cx18/cx18-gpio.h        |    2
 drivers/media/video/cx23885/cx23885-cards.c |    2
 drivers/media/video/cx23885/cx23885-dvb.c   |   12 --
 drivers/media/video/cx23885/cx23885.h       |    2
 drivers/media/video/cx88/cx88-cards.c       |   24 ++++-
 drivers/media/video/cx88/cx88-dvb.c         |   40 ---------
 drivers/media/video/cx88/cx88.h             |    2
 drivers/media/video/em28xx/em28xx-cards.c   |    2
 drivers/media/video/em28xx/em28xx-dvb.c     |    3
 drivers/media/video/em28xx/em28xx.h         |    2
 drivers/media/video/ivtv/ivtv-gpio.c        |    2
 drivers/media/video/ivtv/ivtv-gpio.h        |    2
 drivers/media/video/saa7134/saa7134-cards.c |    2
 drivers/media/video/saa7134/saa7134-dvb.c   |    7 -
 drivers/media/video/saa7134/saa7134.h       |    2
 drivers/media/video/tuner-core.c            |   10 --
 include/media/tuner.h                       |    2
 32 files changed, 92 insertions(+), 124 deletions(-)

Thanks,

Mike Krufky



More information about the linux-dvb mailing list