From a1bf9e7b7282eca1a559270b1e3d39df743c52b3 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Tue, 23 Oct 2007 16:24:06 -0200 Subject: Convert tuner-xc2028 driver to the newer hybrid approach From: Mauro Carvalho Chehab This changeset converts tuner-xc2028 to the newer hybrid approach. It also prevents creating twice the xc3028 private struct by both DVB and V4L parts. Signed-off-by: Mauro Carvalho Chehab --- linux/drivers/media/Kconfig | 8 linux/drivers/media/video/Kconfig | 12 linux/drivers/media/video/Makefile | 5 linux/drivers/media/video/tuner-core.c | 12 linux/drivers/media/video/tuner-driver.h | 2 linux/drivers/media/video/tuner-xc2028.c | 424 ++++++++++++++----------------- linux/drivers/media/video/tuner-xc2028.h | 24 + 7 files changed, 248 insertions(+), 239 deletions(-) --- linux/drivers/media/video/tuner-xc2028.h | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'linux/drivers/media/video/tuner-xc2028.h') diff --git a/linux/drivers/media/video/tuner-xc2028.h b/linux/drivers/media/video/tuner-xc2028.h index 34ff4cba1..d5a18a37d 100644 --- a/linux/drivers/media/video/tuner-xc2028.h +++ b/linux/drivers/media/video/tuner-xc2028.h @@ -4,6 +4,11 @@ * This code is placed under the terms of the GNU General Public License v2 */ +#ifndef __TUNER_XC2028_H__ +#define __TUNER_XC2028_H__ + +#include "dvb_frontend.h" + /* xc2028 commands for callback */ #define XC2028_TUNER_RESET 0 #define XC2028_RESET_CLK 1 @@ -11,4 +16,21 @@ struct dvb_frontend; struct i2c_client; -int xc2028_attach(struct i2c_client *c, struct dvb_frontend *fe); +#if defined(CONFIG_TUNER_XC2028) || (defined(CONFIG_TUNER_XC2028_MODULE) && defined(MODULE)) +int xc2028_attach(struct dvb_frontend *fe, struct i2c_adapter* i2c_adap, + u8 i2c_addr, struct device *dev, void *video_dev, + int (*tuner_callback) (void *dev, int command,int arg)); + +#else +static inline int xc2028_attach(struct dvb_frontend *fe, + struct i2c_adapter* i2c_adap, + u8 i2c_addr, struct device *dev, void *video_dev, + int (*tuner_callback) (void *dev, int command,int arg)) +{ + printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n", + __FUNCTION__); + return -EINVAL; +} +#endif + +#endif /* __TUNER_XC2028_H__ */ -- cgit v1.2.3