Skip to content

Commit

Permalink
V4L/DVB (6430): Convert tuner-xc2028 driver to the newer hybrid approach
Browse files Browse the repository at this point in the history
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 <mchehab@infradead.org>
  • Loading branch information
Mauro Carvalho Chehab committed Jan 25, 2008
1 parent 3b20532 commit 215b95b
Show file tree
Hide file tree
Showing 7 changed files with 248 additions and 213 deletions.
8 changes: 8 additions & 0 deletions drivers/media/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ source "drivers/media/common/Kconfig"
config VIDEO_TUNER
tristate
depends on I2C
select TUNER_XC2028 if !VIDEO_TUNER_CUSTOMIZE
select TUNER_MT20XX if !VIDEO_TUNER_CUSTOMIZE
select TUNER_TDA8290 if !VIDEO_TUNER_CUSTOMIZE
select TUNER_TEA5761 if !VIDEO_TUNER_CUSTOMIZE
Expand All @@ -89,6 +90,13 @@ menuconfig VIDEO_TUNER_CUSTOMIZE

if VIDEO_TUNER_CUSTOMIZE

config TUNER_XC2028
tristate "XCeive xc2028/xc3028 tuners"
depends on I2C
default m if VIDEO_TUNER_CUSTOMIZE
help
Say Y here to include support for the xc2028/xc3028 tuners.

config TUNER_MT20XX
tristate "Microtune 2032 / 2050 tuners"
depends on I2C
Expand Down
12 changes: 0 additions & 12 deletions drivers/media/video/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -505,18 +505,6 @@ config TUNER_3036
Say Y here to include support for Philips SAB3036 compatible tuners.
If in doubt, say N.

config TUNER_XC2028
tristate "Xceive xc2028 support for tm5600/tm6000 driver"
depends on I2C
select VIDEO_TUNER
help
Say Y here to include support for Xceive xc2028 tuner. This is
required on a few tm5600/tm6000 designs. You should notice
that this module currently works only with the special
firmware versions used on those Trident chips.

If in doubt, say N.

config VIDEO_VINO
tristate "SGI Vino Video For Linux (EXPERIMENTAL)"
depends on I2C && SGI_IP22 && EXPERIMENTAL && VIDEO_V4L2
Expand Down
5 changes: 1 addition & 4 deletions drivers/media/video/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@ zr36067-objs := zoran_procfs.o zoran_device.o \
zoran_driver.o zoran_card.o
tuner-objs := tuner-core.o tuner-types.o tda9887.o

ifneq ($(CONFIG_TUNER_XC2028),)
tuner-objs += tuner-xc2028.o
endif

msp3400-objs := msp3400-driver.o msp3400-kthreads.o

obj-$(CONFIG_VIDEO_DEV) += videodev.o v4l2-common.o compat_ioctl32.o \
Expand Down Expand Up @@ -85,6 +81,7 @@ obj-$(CONFIG_TUNER_3036) += tuner-3036.o

obj-$(CONFIG_VIDEO_TUNER) += tuner.o

obj-$(CONFIG_TUNER_XC2028) += tuner-xc2028.o
obj-$(CONFIG_TUNER_SIMPLE) += tuner-simple.o
obj-$(CONFIG_TUNER_MT20XX) += mt20xx.o
obj-$(CONFIG_TUNER_TDA8290) += tda8290.o
Expand Down
12 changes: 11 additions & 1 deletion drivers/media/video/tuner-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "tda8290.h"
#include "tea5761.h"
#include "tea5767.h"
#include "tuner-xc2028.h"
#include "tuner-simple.h"

#define UNSET (-1U)
Expand Down Expand Up @@ -323,8 +324,17 @@ static void set_type(struct i2c_client *c, unsigned int type,
attach_simple_tuner(t);
break;
case TUNER_XC2028:
xc2028_tuner_init(c);
{
int rc=xc2028_attach(&t->fe, t->i2c.adapter, t->i2c.addr,
&c->dev, c->adapter->algo_data,
t->tuner_callback);
if (rc<0) {
t->type = TUNER_ABSENT;
t->mode_mask = T_UNINITIALIZED;
return;
}
break;
}
case TUNER_TDA9887:
tda9887_tuner_init(t);
break;
Expand Down
2 changes: 0 additions & 2 deletions drivers/media/video/tuner-driver.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,6 @@ struct tuner {
struct tuner_operations ops;
};

extern int xc2028_tuner_init(struct i2c_client *c);

/* ------------------------------------------------------------------------ */

extern int tda9887_tuner_init(struct tuner *t);
Expand Down
Loading

0 comments on commit 215b95b

Please sign in to comment.