V4L/DVB (7045): xc5000: Small amount of cleanup and commenting
xc5000: Small amount of cleanup and commenting, just for clarification. Signed-off-by: Steven Toth <stoth@hauppauge.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
8c70017f57
commit
73c993a829
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/moduleparam.h>
|
#include <linux/moduleparam.h>
|
||||||
#include <linux/videodev2.h>
|
#include <linux/videodev.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/dvb/frontend.h>
|
#include <linux/dvb/frontend.h>
|
||||||
#include <linux/i2c.h>
|
#include <linux/i2c.h>
|
||||||
|
@ -212,7 +212,7 @@ static void xc5000_TunerReset(struct dvb_frontend *fe)
|
||||||
dprintk(1, "%s()\n", __FUNCTION__);
|
dprintk(1, "%s()\n", __FUNCTION__);
|
||||||
|
|
||||||
if (priv->cfg->tuner_callback) {
|
if (priv->cfg->tuner_callback) {
|
||||||
ret = priv->cfg->tuner_callback(priv->cfg->video_dev,
|
ret = priv->cfg->tuner_callback(priv->cfg->priv,
|
||||||
XC5000_TUNER_RESET, 0);
|
XC5000_TUNER_RESET, 0);
|
||||||
if (ret)
|
if (ret)
|
||||||
printk(KERN_ERR "xc5000: reset failed\n");
|
printk(KERN_ERR "xc5000: reset failed\n");
|
||||||
|
|
|
@ -30,8 +30,16 @@ struct i2c_adapter;
|
||||||
struct xc5000_config {
|
struct xc5000_config {
|
||||||
u8 i2c_address;
|
u8 i2c_address;
|
||||||
u32 if_khz;
|
u32 if_khz;
|
||||||
void *video_dev;
|
|
||||||
int (*tuner_callback) (void *dev, int command, int arg);
|
/* For each bridge framework, when it attaches either analog or digital,
|
||||||
|
* it has to store a reference back to its _core equivalent structure,
|
||||||
|
* so that it can service the hardware by steering gpio's etc.
|
||||||
|
* Each bridge implementation is different so cast priv accordingly.
|
||||||
|
* The xc5000 driver cares not for this value, other than ensuring
|
||||||
|
* it's passed back to a bridge during tuner_callback().
|
||||||
|
*/
|
||||||
|
void *priv;
|
||||||
|
int (*tuner_callback) (void *priv, int command, int arg);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* xc5000 callback command */
|
/* xc5000 callback command */
|
||||||
|
|
|
@ -247,9 +247,9 @@ static void hauppauge_eeprom(struct cx23885_dev *dev, u8 *eeprom_data)
|
||||||
/* Tuner callback function for cx23885 boards. Currently only needed
|
/* Tuner callback function for cx23885 boards. Currently only needed
|
||||||
* for HVR1500Q, which has an xc5000 tuner.
|
* for HVR1500Q, which has an xc5000 tuner.
|
||||||
*/
|
*/
|
||||||
int cx23885_tuner_callback(void *i2c_bus, int command, int arg)
|
int cx23885_tuner_callback(void *priv, int command, int arg)
|
||||||
{
|
{
|
||||||
struct cx23885_i2c *bus = i2c_bus;
|
struct cx23885_i2c *bus = priv;
|
||||||
struct cx23885_dev *dev = bus->dev;
|
struct cx23885_dev *dev = bus->dev;
|
||||||
|
|
||||||
switch(dev->board) {
|
switch(dev->board) {
|
||||||
|
@ -271,7 +271,7 @@ int cx23885_tuner_callback(void *i2c_bus, int command, int arg)
|
||||||
|
|
||||||
return 0; /* Should never be here */
|
return 0; /* Should never be here */
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(cx23885_tuner_callback);
|
|
||||||
void cx23885_gpio_setup(struct cx23885_dev *dev)
|
void cx23885_gpio_setup(struct cx23885_dev *dev)
|
||||||
{
|
{
|
||||||
switch(dev->board) {
|
switch(dev->board) {
|
||||||
|
|
|
@ -156,7 +156,6 @@ static struct s5h1409_config hauppauge_hvr1500q_config = {
|
||||||
static struct xc5000_config hauppauge_hvr1500q_tunerconfig = {
|
static struct xc5000_config hauppauge_hvr1500q_tunerconfig = {
|
||||||
.i2c_address = 0x61,
|
.i2c_address = 0x61,
|
||||||
.if_khz = 5380,
|
.if_khz = 5380,
|
||||||
/* cannot set .video_dev here, do it before attach. */
|
|
||||||
.tuner_callback = cx23885_tuner_callback
|
.tuner_callback = cx23885_tuner_callback
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -282,11 +281,7 @@ static int dvb_register(struct cx23885_tsport *port)
|
||||||
&hauppauge_hvr1500q_config,
|
&hauppauge_hvr1500q_config,
|
||||||
&dev->i2c_bus[0].i2c_adap);
|
&dev->i2c_bus[0].i2c_adap);
|
||||||
if (port->dvb.frontend != NULL) {
|
if (port->dvb.frontend != NULL) {
|
||||||
/* tunerconfig.video_dev must point to
|
hauppauge_hvr1500q_tunerconfig.priv = i2c_bus;
|
||||||
* i2c_adap.algo_data
|
|
||||||
*/
|
|
||||||
hauppauge_hvr1500q_tunerconfig.video_dev =
|
|
||||||
i2c_bus->i2c_adap.algo_data;
|
|
||||||
dvb_attach(xc5000_attach, port->dvb.frontend,
|
dvb_attach(xc5000_attach, port->dvb.frontend,
|
||||||
&i2c_bus->i2c_adap,
|
&i2c_bus->i2c_adap,
|
||||||
&hauppauge_hvr1500q_tunerconfig);
|
&hauppauge_hvr1500q_tunerconfig);
|
||||||
|
|
|
@ -393,7 +393,7 @@ extern const unsigned int cx23885_bcount;
|
||||||
extern struct cx23885_subid cx23885_subids[];
|
extern struct cx23885_subid cx23885_subids[];
|
||||||
extern const unsigned int cx23885_idcount;
|
extern const unsigned int cx23885_idcount;
|
||||||
|
|
||||||
extern int cx23885_tuner_callback(void *i2c_bus, int command, int arg);
|
extern int cx23885_tuner_callback(void *priv, int command, int arg);
|
||||||
extern void cx23885_card_list(struct cx23885_dev *dev);
|
extern void cx23885_card_list(struct cx23885_dev *dev);
|
||||||
extern int cx23885_ir_init(struct cx23885_dev *dev);
|
extern int cx23885_ir_init(struct cx23885_dev *dev);
|
||||||
extern void cx23885_gpio_setup(struct cx23885_dev *dev);
|
extern void cx23885_gpio_setup(struct cx23885_dev *dev);
|
||||||
|
|
|
@ -1885,10 +1885,10 @@ static void dvico_fusionhdtv_hybrid_init(struct cx88_core *core)
|
||||||
* PCTV HD 800i with an xc5000 sillicon tuner. This is used for both *
|
* PCTV HD 800i with an xc5000 sillicon tuner. This is used for both *
|
||||||
* analog tuner attach (tuner-core.c) and dvb tuner attach (cx88-dvb.c) */
|
* analog tuner attach (tuner-core.c) and dvb tuner attach (cx88-dvb.c) */
|
||||||
|
|
||||||
int cx88_tuner_callback(void *i2c_algo, int command, int arg)
|
int cx88_tuner_callback(void *priv, int command, int arg)
|
||||||
{
|
{
|
||||||
struct i2c_algo_bit_data *algo = i2c_algo;
|
struct i2c_algo_bit_data *i2c_algo = priv;
|
||||||
struct cx88_core *core = algo->data;
|
struct cx88_core *core = i2c_algo->data;
|
||||||
|
|
||||||
switch(core->boardnr) {
|
switch(core->boardnr) {
|
||||||
case CX88_BOARD_PINNACLE_PCTV_HD_800i:
|
case CX88_BOARD_PINNACLE_PCTV_HD_800i:
|
||||||
|
@ -1898,7 +1898,6 @@ int cx88_tuner_callback(void *i2c_algo, int command, int arg)
|
||||||
cx_clear(MO_GP0_IO, 0x00000004);
|
cx_clear(MO_GP0_IO, 0x00000004);
|
||||||
mdelay(200);
|
mdelay(200);
|
||||||
cx_set(MO_GP0_IO, 0x00000004);
|
cx_set(MO_GP0_IO, 0x00000004);
|
||||||
printk(KERN_ERR "xc5000: in reset for xc5000\n");
|
|
||||||
mdelay(200);
|
mdelay(200);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -385,7 +385,6 @@ static struct s5h1409_config pinnacle_pctv_hd_800i_config = {
|
||||||
static struct xc5000_config pinnacle_pctv_hd_800i_tuner_config = {
|
static struct xc5000_config pinnacle_pctv_hd_800i_tuner_config = {
|
||||||
.i2c_address = 0x64,
|
.i2c_address = 0x64,
|
||||||
.if_khz = 5380,
|
.if_khz = 5380,
|
||||||
/* cannot set .video_dev here, do it right before attach */
|
|
||||||
.tuner_callback = cx88_tuner_callback,
|
.tuner_callback = cx88_tuner_callback,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -654,7 +653,7 @@ static int dvb_register(struct cx8802_dev *dev)
|
||||||
/* tuner_config.video_dev must point to
|
/* tuner_config.video_dev must point to
|
||||||
* i2c_adap.algo_data
|
* i2c_adap.algo_data
|
||||||
*/
|
*/
|
||||||
pinnacle_pctv_hd_800i_tuner_config.video_dev =
|
pinnacle_pctv_hd_800i_tuner_config.priv =
|
||||||
dev->core->i2c_adap.algo_data;
|
dev->core->i2c_adap.algo_data;
|
||||||
dvb_attach(xc5000_attach, dev->dvb.frontend,
|
dvb_attach(xc5000_attach, dev->dvb.frontend,
|
||||||
&dev->core->i2c_adap,
|
&dev->core->i2c_adap,
|
||||||
|
|
|
@ -434,7 +434,7 @@ static void set_type(struct i2c_client *c, unsigned int type,
|
||||||
case TUNER_XC5000:
|
case TUNER_XC5000:
|
||||||
xc5000_cfg.i2c_address = t->i2c->addr;
|
xc5000_cfg.i2c_address = t->i2c->addr;
|
||||||
xc5000_cfg.if_khz = 5380;
|
xc5000_cfg.if_khz = 5380;
|
||||||
xc5000_cfg.video_dev = c->adapter->algo_data;
|
xc5000_cfg.priv = c->adapter->algo_data;
|
||||||
xc5000_cfg.tuner_callback = t->tuner_callback;
|
xc5000_cfg.tuner_callback = t->tuner_callback;
|
||||||
if (!xc5000_attach(&t->fe, t->i2c->adapter, &xc5000_cfg)) {
|
if (!xc5000_attach(&t->fe, t->i2c->adapter, &xc5000_cfg)) {
|
||||||
t->type = TUNER_ABSENT;
|
t->type = TUNER_ABSENT;
|
||||||
|
|
Loading…
Reference in New Issue