Skip to content

Commit

Permalink
[PATCH] bttv update
Browse files Browse the repository at this point in the history
This patch synchronizes current bttv support on V4L with linux kernel and
adds support to Adlink RTV24 card.

It is asked that *every* patch to V4L stuff to be first submitted to
video4linux-list@redhat.com.

From: "J.A. Magallon" <jamagallon@able.es>

	struct bttv defined after usage.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Peter Skipworth <pskipworth@clarityvi.com>
Signed-off-by: Nickolay V Shmyrev <nshmyrev@yandex.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Mauro Carvalho Chehab authored and Linus Torvalds committed Jun 24, 2005
1 parent 3c1d018 commit 2d03e28
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 52 deletions.
99 changes: 55 additions & 44 deletions drivers/media/video/bttv-cards.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
$Id: bttv-cards.c,v 1.47 2005/02/22 14:06:32 kraxel Exp $
$Id: bttv-cards.c,v 1.49 2005/06/10 17:20:24 mchehab Exp $
bttv-cards.c
Expand Down Expand Up @@ -2254,17 +2254,18 @@ struct tvcard bttv_tvcards[] = {
.muxsel_hook = kodicom4400r_muxsel,
},
{
/* ---- card 0x86---------------------------------- */
/* Michael Henson <mhenson@clarityvi.com> */
/* Adlink RTV24 with special unlock codes */
.name = "Adlink RTV24",
.video_inputs = 4,
.audio_inputs = 1,
.tuner = 0,
.svhs = 2,
.muxsel = { 2, 3, 1, 0},
.tuner_type = -1,
.pll = PLL_28,
/* ---- card 0x85---------------------------------- */
/* Michael Henson <mhenson@clarityvi.com> */
/* Adlink RTV24 with special unlock codes */
.name = "Adlink RTV24",
.video_inputs = 4,
.audio_inputs = 1,
.tuner = 0,
.svhs = 2,
.muxsel = { 2, 3, 1, 0},
.tuner_type = -1,
.pll = PLL_28,

}};

static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards);
Expand Down Expand Up @@ -2650,6 +2651,10 @@ void __devinit bttv_init_card1(struct bttv *btv)
case BTTV_AVDVBT_771:
btv->use_i2c_hw = 1;
break;
case BTTV_ADLINK_RTV24:
init_RTV24( btv );
break;

}
if (!bttv_tvcards[btv->c.type].has_dvb)
bttv_reset_audio(btv);
Expand Down Expand Up @@ -2762,9 +2767,6 @@ void __devinit bttv_init_card2(struct bttv *btv)
case BTTV_KODICOM_4400R:
kodicom4400r_init(btv);
break;
case BTTV_ADLINK_RTV24:
init_RTV24(btv);
break;
}

/* pll configuration */
Expand Down Expand Up @@ -2801,6 +2803,8 @@ void __devinit bttv_init_card2(struct bttv *btv)
}
btv->pll.pll_current = -1;

bttv_reset_audio(btv);

/* tuner configuration (from card list / autodetect / insmod option) */
if (UNSET != bttv_tvcards[btv->c.type].tuner_type)
if(UNSET == btv->tuner_type)
Expand Down Expand Up @@ -3320,6 +3324,8 @@ static void __devinit init_PXC200(struct bttv *btv)
printk(KERN_INFO "PXC200 Initialised.\n");
}



/* ----------------------------------------------------------------------- */
/*
* The Adlink RTV-24 (aka Angelo) has some special initialisation to unlock
Expand Down Expand Up @@ -3348,49 +3354,54 @@ static void __devinit init_PXC200(struct bttv *btv)
* error. ERROR_CPLD_Check_Failed.
*/
/* ----------------------------------------------------------------------- */
void init_RTV24(struct bttv *btv)
void
init_RTV24 (struct bttv *btv)
{
u32 dataread;
const long watchdog_value = 0x0E;
uint32_t dataRead = 0;
long watchdog_value = 0x0E;

printk(KERN_INFO "bttv%d: Adlink RTV-24 initialisation in progress\n",
printk (KERN_INFO
"bttv%d: Adlink RTV-24 initialisation in progress ...\n",
btv->c.nr);

btwrite(0x00c3feff, BT848_GPIO_OUT_EN);
btwrite (0x00c3feff, BT848_GPIO_OUT_EN);

btwrite(0 + watchdog_value, BT848_GPIO_DATA);
msleep(1);
btwrite(0x10 + watchdog_value, BT848_GPIO_DATA);
msleep( 10 );
btwrite(0 + watchdog_value, BT848_GPIO_DATA);
btwrite (0 + watchdog_value, BT848_GPIO_DATA);
msleep (1);
btwrite (0x10 + watchdog_value, BT848_GPIO_DATA);
msleep (10);
btwrite (0 + watchdog_value, BT848_GPIO_DATA);

dataread = btread(BT848_GPIO_DATA);
dataRead = btread (BT848_GPIO_DATA);

if (((dataread >> 18) & 0x01) != 0 || ((dataread >> 19) & 0x01) != 1) {
printk(KERN_INFO "bttv%d: Adlink RTV-24 initialisation(1) "
"ERROR_CPLD_Check_Failed (read %d)\n",
btv->c.nr, dataread);
if ((((dataRead >> 18) & 0x01) != 0) || (((dataRead >> 19) & 0x01) != 1)) {
printk (KERN_INFO
"bttv%d: Adlink RTV-24 initialisation(1) ERROR_CPLD_Check_Failed (read %d)\n",
btv->c.nr, dataRead);
}

btwrite(0x4400 + watchdog_value, BT848_GPIO_DATA);
msleep(10);
btwrite(0x4410 + watchdog_value, BT848_GPIO_DATA);
msleep(1);
btwrite(watchdog_value, BT848_GPIO_DATA);
msleep(1);
dataread = btread(BT848_GPIO_DATA);

if (((dataread >> 18) & 0x01) != 0 || ((dataread >> 19) & 0x01) != 0) {
printk(KERN_INFO "bttv%d: Adlink RTV-24 initialisation(2) "
"ERROR_CPLD_Check_Failed (read %d)\n",
btv->c.nr, dataread);
btwrite (0x4400 + watchdog_value, BT848_GPIO_DATA);
msleep (10);
btwrite (0x4410 + watchdog_value, BT848_GPIO_DATA);
msleep (1);
btwrite (watchdog_value, BT848_GPIO_DATA);
msleep (1);
dataRead = btread (BT848_GPIO_DATA);

if ((((dataRead >> 18) & 0x01) != 0) || (((dataRead >> 19) & 0x01) != 0)) {
printk (KERN_INFO
"bttv%d: Adlink RTV-24 initialisation(2) ERROR_CPLD_Check_Failed (read %d)\n",
btv->c.nr, dataRead);

return;
}

printk(KERN_INFO "bttv%d: Adlink RTV-24 initialisation complete.\n",
btv->c.nr);
printk (KERN_INFO
"bttv%d: Adlink RTV-24 initialisation complete.\n", btv->c.nr);
}



/* ----------------------------------------------------------------------- */
/* Miro Pro radio stuff -- the tea5757 is connected to some GPIO ports */
/*
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/bttv-driver.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
$Id: bttv-driver.c,v 1.37 2005/02/21 13:57:59 kraxel Exp $
$Id: bttv-driver.c,v 1.38 2005/06/10 17:20:24 mchehab Exp $
bttv - Bt848 frame grabber driver
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/bttv-i2c.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
$Id: bttv-i2c.c,v 1.18 2005/02/16 12:14:10 kraxel Exp $
$Id: bttv-i2c.c,v 1.21 2005/06/10 17:20:24 mchehab Exp $
bttv-i2c.c -- all the i2c code is here
Expand Down
4 changes: 2 additions & 2 deletions drivers/media/video/bttv.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* $Id: bttv.h,v 1.17 2005/02/22 14:06:32 kraxel Exp $
* $Id: bttv.h,v 1.18 2005/05/24 23:41:42 nsh Exp $
*
* bttv - Bt848 frame grabber driver
*
Expand Down Expand Up @@ -135,7 +135,7 @@
#define BTTV_DVICO_DVBT_LITE 0x80
#define BTTV_TIBET_CS16 0x83
#define BTTV_KODICOM_4400R 0x84
#define BTTV_ADLINK_RTV24 0x86
#define BTTV_ADLINK_RTV24 0x85

/* i2c address list */
#define I2C_TSA5522 0xc2
Expand Down
8 changes: 4 additions & 4 deletions drivers/media/video/bttvp.h
Original file line number Diff line number Diff line change
Expand Up @@ -226,10 +226,6 @@ extern int fini_bttv_i2c(struct bttv *btv);
#define dprintk if (bttv_debug >= 1) printk
#define d2printk if (bttv_debug >= 2) printk

/* our devices */
#define BTTV_MAX 16
extern unsigned int bttv_num;

#define BTTV_MAX_FBUF 0x208000
#define VBIBUF_SIZE (2048*VBI_MAXLINES*2)
#define BTTV_TIMEOUT (HZ/2) /* 0.5 seconds */
Expand Down Expand Up @@ -375,6 +371,10 @@ struct bttv {
unsigned int users;
struct bttv_fh init;
};

/* our devices */
#define BTTV_MAX 16
extern unsigned int bttv_num;
extern struct bttv bttvs[BTTV_MAX];

/* private ioctls */
Expand Down

0 comments on commit 2d03e28

Please sign in to comment.