Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31c9584c authored by Michael Krufky's avatar Michael Krufky Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (6443): make tda9887 build selectable via Kconfig

parent 5c82f449
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ config VIDEO_TUNER
	select TUNER_TEA5761 if !VIDEO_TUNER_CUSTOMIZE
	select TUNER_TEA5767 if !VIDEO_TUNER_CUSTOMIZE
	select TUNER_SIMPLE if !VIDEO_TUNER_CUSTOMIZE
	select TUNER_TDA9887 if !VIDEO_TUNER_CUSTOMIZE

menuconfig VIDEO_TUNER_CUSTOMIZE
	bool "Customize analog tuner modules to build"
@@ -130,10 +131,19 @@ config TUNER_TEA5767
config TUNER_SIMPLE
	tristate "Simple tuner support"
	depends on I2C
	select TUNER_TDA9887
	default m if VIDEO_TUNER_CUSTOMIZE
	help
	  Say Y here to include support for various simple tuners.

config TUNER_TDA9887
	tristate "TDA 9885/6/7 analog IF demodulator"
	depends on I2C
	default m if VIDEO_TUNER_CUSTOMIZE
	help
	  Say Y here to include support for Philips TDA9885/6/7
	  analog IF demodulator.

endif # VIDEO_TUNER_CUSTOMIZE

config VIDEOBUF_GEN
+2 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@

zr36067-objs	:=	zoran_procfs.o zoran_device.o \
			zoran_driver.o zoran_card.o
tuner-objs	:=	tuner-core.o tuner-types.o tda9887.o
tuner-objs	:=	tuner-core.o tuner-types.o

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

@@ -87,6 +87,7 @@ obj-$(CONFIG_TUNER_MT20XX) += mt20xx.o
obj-$(CONFIG_TUNER_TDA8290) += tda8290.o
obj-$(CONFIG_TUNER_TEA5767) += tea5767.o
obj-$(CONFIG_TUNER_TEA5761) += tea5761.o
obj-$(CONFIG_TUNER_TDA9887) += tda9887.o

obj-$(CONFIG_VIDEOBUF_GEN) += videobuf-core.o
obj-$(CONFIG_VIDEOBUF_DMA_SG) += videobuf-dma-sg.o
+15 −8
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@
#include <linux/videodev.h>
#include <media/v4l2-common.h>
#include <media/tuner.h>
#include "tuner-driver.h"
#include "tda9887.h"


/* Chips:
@@ -20,13 +20,18 @@
   Used as part of several tuners
*/

static int tda9887_debug;
module_param_named(debug, tda9887_debug, int, 0644);

#define tda9887_info(fmt, arg...) do {\
	printk(KERN_INFO "%s %d-%04x: " fmt, priv->t->i2c.name, \
			i2c_adapter_id(priv->t->i2c.adapter), priv->t->i2c.addr , ##arg); } while (0)
			i2c_adapter_id(priv->t->i2c.adapter), \
			priv->t->i2c.addr, ##arg); } while (0)
#define tda9887_dbg(fmt, arg...) do {\
	if (tuner_debug) \
	if (tda9887_debug) \
		printk(KERN_INFO "%s %d-%04x: " fmt, priv->t->i2c.name, \
			i2c_adapter_id(priv->t->i2c.adapter), priv->t->i2c.addr , ##arg); } while (0)
			i2c_adapter_id(priv->t->i2c.adapter), \
			priv->t->i2c.addr, ##arg); } while (0)

struct tda9887_priv {
	struct tuner_i2c_props i2c_props;
@@ -573,13 +578,13 @@ static void tda9887_configure(struct dvb_frontend *fe)

	tda9887_dbg("writing: b=0x%02x c=0x%02x e=0x%02x\n",
		priv->data[1],priv->data[2],priv->data[3]);
	if (tuner_debug > 1)
	if (tda9887_debug > 1)
		dump_write_message(fe, priv->data);

	if (4 != (rc = tuner_i2c_xfer_send(&priv->i2c_props,priv->data,4)))
		tda9887_info("i2c i/o error: rc == %d (should be 4)\n",rc);

	if (tuner_debug > 2) {
	if (tda9887_debug > 2) {
		msleep_interruptible(1000);
		tda9887_status(fe);
	}
@@ -590,7 +595,8 @@ static void tda9887_configure(struct dvb_frontend *fe)
static void tda9887_tuner_status(struct dvb_frontend *fe)
{
	struct tda9887_priv *priv = fe->analog_demod_priv;
	tda9887_info("Data bytes: b=0x%02x c=0x%02x e=0x%02x\n", priv->data[1], priv->data[2], priv->data[3]);
	tda9887_info("Data bytes: b=0x%02x c=0x%02x e=0x%02x\n",
		     priv->data[1], priv->data[2], priv->data[3]);
}

static int tda9887_get_afc(struct dvb_frontend *fe)
@@ -636,7 +642,7 @@ static struct analog_tuner_ops tda9887_tuner_ops = {
	.release        = tda9887_release,
};

int tda9887_tuner_init(struct tuner *t)
int tda9887_attach(struct tuner *t)
{
	struct tda9887_priv *priv = NULL;

@@ -658,6 +664,7 @@ int tda9887_tuner_init(struct tuner *t)

	return 0;
}
EXPORT_SYMBOL_GPL(tda9887_attach);

/*
 * Overrides for Emacs so that we follow Linus's tabbing style.
+33 −0
Original line number Diff line number Diff line
/*
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

#ifndef __TDA9887_H__
#define __TDA9887_H__

#include "tuner-driver.h"

/* ------------------------------------------------------------------------ */
#if defined(CONFIG_TUNER_TDA9887) || (defined(CONFIG_TUNER_TDA9887_MODULE) && defined(MODULE))
extern int tda9887_attach(struct tuner *t);
#else
static inline int tda9887_attach(struct tuner *t)
{
	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
	return -EINVAL;
}
#endif

#endif /* __TDA9887_H__ */
+2 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include "tea5767.h"
#include "tuner-xc2028.h"
#include "tuner-simple.h"
#include "tda9887.h"

#define UNSET (-1U)

@@ -344,7 +345,7 @@ static void set_type(struct i2c_client *c, unsigned int type,
		break;
	}
	case TUNER_TDA9887:
		tda9887_tuner_init(t);
		tda9887_attach(t);
		break;
	default:
		attach_simple_tuner(t);
Loading