Skip to content

Commit

Permalink
V4L/DVB (8643): Switch Hauppauge HVR1400 and HVR1500 to common cx2388…
Browse files Browse the repository at this point in the history
…5 tuner callback

The Hauppauge HVR1400 and HVR1500 can now use the common cx23885 tuner
callback.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Steven Toth authored and Mauro Carvalho Chehab committed Oct 12, 2008
1 parent 0fbbff3 commit 90a71b1
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 33 deletions.
16 changes: 15 additions & 1 deletion drivers/media/video/cx23885/cx23885-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include <media/cx25840.h>

#include "cx23885.h"
#include "tuner-xc2028.h"

/* ------------------------------------------------------------------ */
/* board config info */
Expand Down Expand Up @@ -331,8 +332,10 @@ static int cx23885_tuner_callback(struct cx23885_dev *dev, int port,
}

switch(dev->board) {
case CX23885_BOARD_HAUPPAUGE_HVR1400:
case CX23885_BOARD_HAUPPAUGE_HVR1500:
case CX23885_BOARD_HAUPPAUGE_HVR1500Q:
/* Tuner Reset Command from xc5000 */
/* Tuner Reset Command */
if (command == 0)
bitmask = 0x04;
break;
Expand Down Expand Up @@ -367,6 +370,17 @@ int cx23885_xc5000_tuner_callback(void *priv, int command, int arg)
return cx23885_tuner_callback(dev, bus->nr, command, arg);
}

int cx23885_xc3028_tuner_callback(void *priv, int command, int arg)
{
struct cx23885_tsport *port = priv;
struct cx23885_dev *dev = port->dev;

if (command == XC2028_RESET_CLK)
return 0;

return cx23885_tuner_callback(dev, port->nr, command, arg);
}

void cx23885_gpio_setup(struct cx23885_dev *dev)
{
switch(dev->board) {
Expand Down
34 changes: 2 additions & 32 deletions drivers/media/video/cx23885/cx23885-dvb.c
Original file line number Diff line number Diff line change
Expand Up @@ -303,36 +303,6 @@ static struct dib7000p_config hauppauge_hvr1400_dib7000_config = {
.output_mode = OUTMODE_MPEG2_SERIAL,
};

static int cx23885_hvr1500_xc3028_callback(void *ptr, int command, int arg)
{
struct cx23885_tsport *port = ptr;
struct cx23885_dev *dev = port->dev;

switch (command) {
case XC2028_TUNER_RESET:
/* Send the tuner in then out of reset */
/* GPIO-2 xc3028 tuner */
dprintk(1, "%s: XC2028_TUNER_RESET %d\n", __func__, arg);

cx_set(GP0_IO, 0x00040000);
cx_clear(GP0_IO, 0x00000004);
msleep(5);

cx_set(GP0_IO, 0x00040004);
msleep(5);
break;
case XC2028_RESET_CLK:
dprintk(1, "%s: XC2028_RESET_CLK %d\n", __func__, arg);
break;
default:
dprintk(1, "%s: unknown command %d, arg %d\n", __func__,
command, arg);
return -EINVAL;
}

return 0;
}

static int dvb_register(struct cx23885_tsport *port)
{
struct cx23885_dev *dev = port->dev;
Expand Down Expand Up @@ -426,7 +396,7 @@ static int dvb_register(struct cx23885_tsport *port)
struct xc2028_config cfg = {
.i2c_adap = &i2c_bus->i2c_adap,
.i2c_addr = 0x61,
.callback = cx23885_hvr1500_xc3028_callback,
.callback = cx23885_xc3028_tuner_callback,
};
static struct xc2028_ctrl ctl = {
.fname = "xc3028-v27.fw",
Expand Down Expand Up @@ -465,7 +435,7 @@ static int dvb_register(struct cx23885_tsport *port)
struct xc2028_config cfg = {
.i2c_adap = &dev->i2c_bus[1].i2c_adap,
.i2c_addr = 0x64,
.callback = cx23885_hvr1500_xc3028_callback,
.callback = cx23885_xc3028_tuner_callback,
};
static struct xc2028_ctrl ctl = {
.fname = "xc3028L-v36.fw",
Expand Down
1 change: 1 addition & 0 deletions drivers/media/video/cx23885/cx23885.h
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,7 @@ extern struct cx23885_subid cx23885_subids[];
extern const unsigned int cx23885_idcount;

extern int cx23885_xc5000_tuner_callback(void *priv, int command, int arg);
extern int cx23885_xc3028_tuner_callback(void *priv, int command, int arg);
extern void cx23885_card_list(struct cx23885_dev *dev);
extern int cx23885_ir_init(struct cx23885_dev *dev);
extern void cx23885_gpio_setup(struct cx23885_dev *dev);
Expand Down

0 comments on commit 90a71b1

Please sign in to comment.