You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[PATCH] v4l: 800: whitespace cleanups
- Whitespace Cleanups. Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
a8900fc242
commit
4ac97914c6
@@ -17,9 +17,9 @@ audio
|
||||
- The chip specs for the on-chip TV sound decoder are next
|
||||
to useless :-/
|
||||
- Neverless the builtin TV sound decoder starts working now,
|
||||
at least for PAL-BG. Other TV norms need other code ...
|
||||
FOR ANY REPORTS ON THIS PLEASE MENTION THE TV NORM YOU ARE
|
||||
USING.
|
||||
at least for PAL-BG. Other TV norms need other code ...
|
||||
FOR ANY REPORTS ON THIS PLEASE MENTION THE TV NORM YOU ARE
|
||||
USING.
|
||||
- Most tuner chips do provide mono sound, which may or may not
|
||||
be useable depending on the board design. With the Hauppauge
|
||||
cards it works, so there is mono sound available as fallback.
|
||||
|
||||
@@ -149,11 +149,11 @@ Lifeview Flyvideo Series:
|
||||
2) There is a print on the PCB:
|
||||
LR25 = Flyvideo (Zoran ZR36120, SAA7110A)
|
||||
LR26 Rev.N = Flyvideo II (Bt848)
|
||||
Rev.O = Flyvideo II (Bt878)
|
||||
Rev.O = Flyvideo II (Bt878)
|
||||
LR37 Rev.C = Flyvideo EZ (Capture only, ZR36120 + SAA7110)
|
||||
LR38 Rev.A1= Flyvideo II EZ (Bt848 capture only)
|
||||
LR50 Rev.Q = Flyvideo 98 (w/eeprom and PCI subsystem ID)
|
||||
Rev.W = Flyvideo 98 (no eeprom)
|
||||
Rev.W = Flyvideo 98 (no eeprom)
|
||||
LR51 Rev.E = Flyvideo 98 EZ (capture only)
|
||||
LR90 = Flyvideo 2000 (Bt878)
|
||||
Flyvideo 2000S (Bt878) w/Stereo TV (Package incl. LR91 daughterboard)
|
||||
@@ -163,7 +163,7 @@ Lifeview Flyvideo Series:
|
||||
LR136 = Flyvideo 2100/3100 (Low profile, SAA7130/SAA7134)
|
||||
LR137 = Flyvideo DV2000/DV3000 (SAA7130/SAA7134 + IEEE1394)
|
||||
LR138 Rev.C= Flyvideo 2000 (SAA7130)
|
||||
or Flyvideo 3000 (SAA7134) w/Stereo TV
|
||||
or Flyvideo 3000 (SAA7134) w/Stereo TV
|
||||
These exist in variations w/FM and w/Remote sometimes denoted
|
||||
by suffixes "FM" and "R".
|
||||
3) You have a laptop (miniPCI card):
|
||||
@@ -197,7 +197,7 @@ Typhoon TV card series:
|
||||
50680 "TV Tuner Pal BG" (blue package)= Pixelview PV-BT878P+ (Rev 9B)
|
||||
50681 "TV Tuner PCI Pal I" (variant of 50680)
|
||||
50682 "TView TV/FM Tuner Pal BG" = Flyvideo 98FM (LR50 Rev.Q)
|
||||
Note: The package has a picture of CPH05x (which would be a real TView)
|
||||
Note: The package has a picture of CPH05x (which would be a real TView)
|
||||
50683 "TV Tuner PCI SECAM" (variant of 50680)
|
||||
50684 "TV Tuner Pal BG" = Pixelview 878TV(Rev.3D)
|
||||
50686 "TV Tuner" = KNC1 TV Station
|
||||
@@ -418,9 +418,9 @@ Lifetec/Medion/Tevion/Aldi
|
||||
--------------------------
|
||||
LT9306/MD9306 = CPH061
|
||||
LT9415/MD9415 = LR90 Rev.F or Rev.G
|
||||
MD9592 = Avermedia TVphone98 (PCI_ID=1461:0003), PCB-Rev=M168II-B (w/TDA9873H)
|
||||
MD9717 = KNC One (Rev D4, saa7134, FM1216 MK2 tuner)
|
||||
MD5044 = KNC One (Rev D4, saa7134, FM1216ME MK3 tuner)
|
||||
MD9592 = Avermedia TVphone98 (PCI_ID=1461:0003), PCB-Rev=M168II-B (w/TDA9873H)
|
||||
MD9717 = KNC One (Rev D4, saa7134, FM1216 MK2 tuner)
|
||||
MD5044 = KNC One (Rev D4, saa7134, FM1216ME MK3 tuner)
|
||||
|
||||
Modular Technologies (www.modulartech.com) UK
|
||||
---------------------------------------------
|
||||
@@ -453,10 +453,10 @@ Technisat
|
||||
Discos ADR PC-Karte ISA (no TV!)
|
||||
Discos ADR PC-Karte PCI (probably no TV?)
|
||||
Techni-PC-Sat (Sat. analog)
|
||||
Rev 1.2 (zr36120, vpx3220, stv0030, saa5246, BSJE3-494A)
|
||||
Rev 1.2 (zr36120, vpx3220, stv0030, saa5246, BSJE3-494A)
|
||||
Mediafocus I (zr36120/zr36125, drp3510, Sat. analog + ADR Radio)
|
||||
Mediafocus II (saa7146, Sat. analog)
|
||||
SatADR Rev 2.1 (saa7146a, saa7113h, stv0056a, msp3400c, drp3510a, BSKE3-307A)
|
||||
SatADR Rev 2.1 (saa7146a, saa7113h, stv0056a, msp3400c, drp3510a, BSKE3-307A)
|
||||
SkyStar 1 DVB (AV7110) = Technotrend Premium
|
||||
SkyStar 2 DVB (B2C2) (=Sky2PC)
|
||||
|
||||
|
||||
@@ -42,9 +42,9 @@ bttv uses the PCI Subsystem ID to autodetect the card type. lspci lists
|
||||
the Subsystem ID in the second line, looks like this:
|
||||
|
||||
00:0a.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 02)
|
||||
Subsystem: Hauppauge computer works Inc. WinTV/GO
|
||||
Flags: bus master, medium devsel, latency 32, IRQ 5
|
||||
Memory at e2000000 (32-bit, prefetchable) [size=4K]
|
||||
Subsystem: Hauppauge computer works Inc. WinTV/GO
|
||||
Flags: bus master, medium devsel, latency 32, IRQ 5
|
||||
Memory at e2000000 (32-bit, prefetchable) [size=4K]
|
||||
|
||||
only bt878-based cards can have a subsystem ID (which does not mean
|
||||
that every card really has one). bt848 cards can't have a Subsystem
|
||||
|
||||
@@ -61,8 +61,8 @@ line for your board. The important fields are these two:
|
||||
struct tvcard
|
||||
{
|
||||
[ ... ]
|
||||
u32 gpiomask;
|
||||
u32 audiomux[6]; /* Tuner, Radio, external, internal, mute, stereo */
|
||||
u32 gpiomask;
|
||||
u32 audiomux[6]; /* Tuner, Radio, external, internal, mute, stereo */
|
||||
};
|
||||
|
||||
gpiomask specifies which pins are used to control the audio mux chip.
|
||||
@@ -126,7 +126,7 @@ muxsel - video mux, input->registervalue mapping
|
||||
pll - same as pll= insmod option
|
||||
tuner_type - same as tuner= insmod option
|
||||
*_modulename - hint whenever some card needs this or that audio
|
||||
module loaded to work properly.
|
||||
module loaded to work properly.
|
||||
has_radio - whenever this TV card has a radio tuner.
|
||||
no_msp34xx - "1" disables loading of msp3400.o module
|
||||
no_tda9875 - "1" disables loading of tda9875.o module
|
||||
|
||||
@@ -10,33 +10,33 @@ bt878:
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
saa7134:
|
||||
/* LifeView FlyTV Platinum FM (LR214WF) */
|
||||
/* "Peter Missel <peter.missel@onlinehome.de> */
|
||||
.name = "LifeView FlyTV Platinum FM",
|
||||
/* GP27 MDT2005 PB4 pin 10 */
|
||||
/* GP26 MDT2005 PB3 pin 9 */
|
||||
/* GP25 MDT2005 PB2 pin 8 */
|
||||
/* GP23 MDT2005 PB1 pin 7 */
|
||||
/* GP22 MDT2005 PB0 pin 6 */
|
||||
/* GP21 MDT2005 PB5 pin 11 */
|
||||
/* GP20 MDT2005 PB6 pin 12 */
|
||||
/* GP19 MDT2005 PB7 pin 13 */
|
||||
/* nc MDT2005 PA3 pin 2 */
|
||||
/* Remote MDT2005 PA2 pin 1 */
|
||||
/* GP18 MDT2005 PA1 pin 18 */
|
||||
/* nc MDT2005 PA0 pin 17 strap low */
|
||||
/* LifeView FlyTV Platinum FM (LR214WF) */
|
||||
/* "Peter Missel <peter.missel@onlinehome.de> */
|
||||
.name = "LifeView FlyTV Platinum FM",
|
||||
/* GP27 MDT2005 PB4 pin 10 */
|
||||
/* GP26 MDT2005 PB3 pin 9 */
|
||||
/* GP25 MDT2005 PB2 pin 8 */
|
||||
/* GP23 MDT2005 PB1 pin 7 */
|
||||
/* GP22 MDT2005 PB0 pin 6 */
|
||||
/* GP21 MDT2005 PB5 pin 11 */
|
||||
/* GP20 MDT2005 PB6 pin 12 */
|
||||
/* GP19 MDT2005 PB7 pin 13 */
|
||||
/* nc MDT2005 PA3 pin 2 */
|
||||
/* Remote MDT2005 PA2 pin 1 */
|
||||
/* GP18 MDT2005 PA1 pin 18 */
|
||||
/* nc MDT2005 PA0 pin 17 strap low */
|
||||
|
||||
/* GP17 Strap "GP7"=High */
|
||||
/* GP16 Strap "GP6"=High
|
||||
0=Radio 1=TV
|
||||
Drives SA630D ENCH1 and HEF4052 A1 pins
|
||||
to do FM radio through SIF input */
|
||||
/* GP15 nc */
|
||||
/* GP14 nc */
|
||||
/* GP13 nc */
|
||||
/* GP12 Strap "GP5" = High */
|
||||
/* GP11 Strap "GP4" = High */
|
||||
/* GP10 Strap "GP3" = High */
|
||||
/* GP09 Strap "GP2" = Low */
|
||||
/* GP08 Strap "GP1" = Low */
|
||||
/* GP07.00 nc */
|
||||
/* GP17 Strap "GP7"=High */
|
||||
/* GP16 Strap "GP6"=High
|
||||
0=Radio 1=TV
|
||||
Drives SA630D ENCH1 and HEF4052 A1 pins
|
||||
to do FM radio through SIF input */
|
||||
/* GP15 nc */
|
||||
/* GP14 nc */
|
||||
/* GP13 nc */
|
||||
/* GP12 Strap "GP5" = High */
|
||||
/* GP11 Strap "GP4" = High */
|
||||
/* GP10 Strap "GP3" = High */
|
||||
/* GP09 Strap "GP2" = Low */
|
||||
/* GP08 Strap "GP1" = Low */
|
||||
/* GP07.00 nc */
|
||||
|
||||
@@ -116,7 +116,7 @@ IR_KEYTAB_TYPE ir_codes_winfast[IR_KEYTAB_SIZE] = {
|
||||
[ 46 ] = KEY_BLUE,
|
||||
[ 24 ] = KEY_KPPLUS, /* fine tune + */
|
||||
[ 25 ] = KEY_KPMINUS, /* fine tune - */
|
||||
[ 33 ] = KEY_KPDOT,
|
||||
[ 33 ] = KEY_KPDOT,
|
||||
[ 19 ] = KEY_KPENTER,
|
||||
[ 34 ] = KEY_BACK,
|
||||
[ 35 ] = KEY_PLAYPAUSE,
|
||||
@@ -239,7 +239,7 @@ static void ir_input_key_event(struct input_dev *dev, struct ir_input_state *ir)
|
||||
dprintk(1,"%s: key event code=%d down=%d\n",
|
||||
dev->name,ir->keycode,ir->keypressed);
|
||||
input_report_key(dev,ir->keycode,ir->keypressed);
|
||||
input_sync(dev);
|
||||
input_sync(dev);
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
+44
-44
@@ -54,36 +54,36 @@ static struct i2c_driver driver;
|
||||
static struct i2c_client client_template;
|
||||
|
||||
struct bt832 {
|
||||
struct i2c_client client;
|
||||
struct i2c_client client;
|
||||
};
|
||||
|
||||
int bt832_hexdump(struct i2c_client *i2c_client_s, unsigned char *buf)
|
||||
{
|
||||
int i,rc;
|
||||
buf[0]=0x80; // start at register 0 with auto-increment
|
||||
if (1 != (rc = i2c_master_send(i2c_client_s,buf,1)))
|
||||
printk("bt832: i2c i/o error: rc == %d (should be 1)\n",rc);
|
||||
if (1 != (rc = i2c_master_send(i2c_client_s,buf,1)))
|
||||
printk("bt832: i2c i/o error: rc == %d (should be 1)\n",rc);
|
||||
|
||||
for(i=0;i<65;i++)
|
||||
buf[i]=0;
|
||||
if (65 != (rc=i2c_master_recv(i2c_client_s,buf,65)))
|
||||
printk("bt832: i2c i/o error: rc == %d (should be 65)\n",rc);
|
||||
for(i=0;i<65;i++)
|
||||
buf[i]=0;
|
||||
if (65 != (rc=i2c_master_recv(i2c_client_s,buf,65)))
|
||||
printk("bt832: i2c i/o error: rc == %d (should be 65)\n",rc);
|
||||
|
||||
// Note: On READ the first byte is the current index
|
||||
// (e.g. 0x80, what we just wrote)
|
||||
// Note: On READ the first byte is the current index
|
||||
// (e.g. 0x80, what we just wrote)
|
||||
|
||||
if(1) {
|
||||
int i;
|
||||
printk("BT832 hexdump:\n");
|
||||
for(i=1;i<65;i++) {
|
||||
if(1) {
|
||||
int i;
|
||||
printk("BT832 hexdump:\n");
|
||||
for(i=1;i<65;i++) {
|
||||
if(i!=1) {
|
||||
if(((i-1)%8)==0) printk(" ");
|
||||
if(((i-1)%16)==0) printk("\n");
|
||||
if(((i-1)%16)==0) printk("\n");
|
||||
}
|
||||
printk(" %02x",buf[i]);
|
||||
}
|
||||
printk("\n");
|
||||
}
|
||||
printk(" %02x",buf[i]);
|
||||
}
|
||||
printk("\n");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -102,13 +102,13 @@ int bt832_init(struct i2c_client *i2c_client_s)
|
||||
return 0;
|
||||
}
|
||||
|
||||
printk("Write 0 tp VPSTATUS\n");
|
||||
buf[0]=BT832_VP_STATUS; // Reg.52
|
||||
buf[1]= 0x00;
|
||||
if (2 != (rc = i2c_master_send(i2c_client_s,buf,2)))
|
||||
printk("bt832: i2c i/o error VPS: rc == %d (should be 2)\n",rc);
|
||||
printk("Write 0 tp VPSTATUS\n");
|
||||
buf[0]=BT832_VP_STATUS; // Reg.52
|
||||
buf[1]= 0x00;
|
||||
if (2 != (rc = i2c_master_send(i2c_client_s,buf,2)))
|
||||
printk("bt832: i2c i/o error VPS: rc == %d (should be 2)\n",rc);
|
||||
|
||||
bt832_hexdump(i2c_client_s,buf);
|
||||
bt832_hexdump(i2c_client_s,buf);
|
||||
|
||||
|
||||
// Leave low power mode:
|
||||
@@ -116,17 +116,17 @@ int bt832_init(struct i2c_client *i2c_client_s)
|
||||
buf[0]=BT832_CAM_SETUP0; //0x39 57
|
||||
buf[1]=0x08;
|
||||
if (2 != (rc = i2c_master_send(i2c_client_s,buf,2)))
|
||||
printk("bt832: i2c i/o error LLPM: rc == %d (should be 2)\n",rc);
|
||||
printk("bt832: i2c i/o error LLPM: rc == %d (should be 2)\n",rc);
|
||||
|
||||
bt832_hexdump(i2c_client_s,buf);
|
||||
bt832_hexdump(i2c_client_s,buf);
|
||||
|
||||
printk("Write 0 tp VPSTATUS\n");
|
||||
buf[0]=BT832_VP_STATUS; // Reg.52
|
||||
buf[1]= 0x00;
|
||||
if (2 != (rc = i2c_master_send(i2c_client_s,buf,2)))
|
||||
printk("bt832: i2c i/o error VPS: rc == %d (should be 2)\n",rc);
|
||||
buf[0]=BT832_VP_STATUS; // Reg.52
|
||||
buf[1]= 0x00;
|
||||
if (2 != (rc = i2c_master_send(i2c_client_s,buf,2)))
|
||||
printk("bt832: i2c i/o error VPS: rc == %d (should be 2)\n",rc);
|
||||
|
||||
bt832_hexdump(i2c_client_s,buf);
|
||||
bt832_hexdump(i2c_client_s,buf);
|
||||
|
||||
|
||||
// Enable Output
|
||||
@@ -134,22 +134,22 @@ int bt832_init(struct i2c_client *i2c_client_s)
|
||||
buf[0]=BT832_VP_CONTROL1; // Reg.40
|
||||
buf[1]= 0x27 & (~0x01); // Default | !skip
|
||||
if (2 != (rc = i2c_master_send(i2c_client_s,buf,2)))
|
||||
printk("bt832: i2c i/o error EO: rc == %d (should be 2)\n",rc);
|
||||
printk("bt832: i2c i/o error EO: rc == %d (should be 2)\n",rc);
|
||||
|
||||
bt832_hexdump(i2c_client_s,buf);
|
||||
bt832_hexdump(i2c_client_s,buf);
|
||||
|
||||
|
||||
// for testing (even works when no camera attached)
|
||||
printk("bt832: *** Generate NTSC M Bars *****\n");
|
||||
buf[0]=BT832_VP_TESTCONTROL0; // Reg. 42
|
||||
buf[1]=3; // Generate NTSC System M bars, Generate Frame timing internally
|
||||
if (2 != (rc = i2c_master_send(i2c_client_s,buf,2)))
|
||||
printk("bt832: i2c i/o error MBAR: rc == %d (should be 2)\n",rc);
|
||||
if (2 != (rc = i2c_master_send(i2c_client_s,buf,2)))
|
||||
printk("bt832: i2c i/o error MBAR: rc == %d (should be 2)\n",rc);
|
||||
|
||||
printk("Bt832: Camera Present: %s\n",
|
||||
(buf[1+BT832_CAM_STATUS] & BT832_56_CAMERA_PRESENT) ? "yes":"no");
|
||||
|
||||
bt832_hexdump(i2c_client_s,buf);
|
||||
bt832_hexdump(i2c_client_s,buf);
|
||||
kfree(buf);
|
||||
return 1;
|
||||
}
|
||||
@@ -162,17 +162,17 @@ static int bt832_attach(struct i2c_adapter *adap, int addr, int kind)
|
||||
|
||||
printk("bt832_attach\n");
|
||||
|
||||
client_template.adapter = adap;
|
||||
client_template.addr = addr;
|
||||
client_template.adapter = adap;
|
||||
client_template.addr = addr;
|
||||
|
||||
printk("bt832: chip found @ 0x%x\n", addr<<1);
|
||||
printk("bt832: chip found @ 0x%x\n", addr<<1);
|
||||
|
||||
if (NULL == (t = kmalloc(sizeof(*t), GFP_KERNEL)))
|
||||
return -ENOMEM;
|
||||
if (NULL == (t = kmalloc(sizeof(*t), GFP_KERNEL)))
|
||||
return -ENOMEM;
|
||||
memset(t,0,sizeof(*t));
|
||||
t->client = client_template;
|
||||
i2c_set_clientdata(&t->client, t);
|
||||
i2c_attach_client(&t->client);
|
||||
i2c_set_clientdata(&t->client, t);
|
||||
i2c_attach_client(&t->client);
|
||||
|
||||
if(! bt832_init(&t->client)) {
|
||||
bt832_detach(&t->client);
|
||||
@@ -211,7 +211,7 @@ bt832_command(struct i2c_client *client, unsigned int cmd, void *arg)
|
||||
|
||||
printk("bt832: command %x\n",cmd);
|
||||
|
||||
switch (cmd) {
|
||||
switch (cmd) {
|
||||
case BT832_HEXDUMP: {
|
||||
unsigned char *buf;
|
||||
buf=kmalloc(65,GFP_KERNEL);
|
||||
|
||||
@@ -233,8 +233,8 @@ SetInterlaceMode( spec.interlace );
|
||||
/* from web:
|
||||
Video Sampling
|
||||
Digital video is a sampled form of analog video. The most common sampling schemes in use today are:
|
||||
Pixel Clock Horiz Horiz Vert
|
||||
Rate Total Active
|
||||
Pixel Clock Horiz Horiz Vert
|
||||
Rate Total Active
|
||||
NTSC square pixel 12.27 MHz 780 640 525
|
||||
NTSC CCIR-601 13.5 MHz 858 720 525
|
||||
NTSC 4FSc 14.32 MHz 910 768 525
|
||||
|
||||
+127
-127
File diff suppressed because it is too large
Load Diff
+171
-171
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@
|
||||
|
||||
|
||||
Copyright (C) 1996,97,98 Ralph Metzler (rjkm@thp.uni-koeln.de)
|
||||
& Marcus Metzler (mocm@thp.uni-koeln.de)
|
||||
& Marcus Metzler (mocm@thp.uni-koeln.de)
|
||||
(c) 1999-2003 Gerd Knorr <kraxel@bytesex.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
bttv - Bt848 frame grabber driver
|
||||
|
||||
Copyright (C) 1996,97,98 Ralph Metzler (rjkm@thp.uni-koeln.de)
|
||||
& Marcus Metzler (mocm@thp.uni-koeln.de)
|
||||
& Marcus Metzler (mocm@thp.uni-koeln.de)
|
||||
(c) 1999-2003 Gerd Knorr <kraxel@bytesex.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -237,7 +237,7 @@ bttv_i2c_readbytes(struct bttv *btv, const struct i2c_msg *msg, int last)
|
||||
err:
|
||||
if (i2c_debug)
|
||||
printk(" ERR: %d\n",retval);
|
||||
return retval;
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int bttv_i2c_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg *msgs, int num)
|
||||
@@ -290,7 +290,7 @@ static struct i2c_adapter bttv_i2c_adap_hw_template = {
|
||||
|
||||
static int attach_inform(struct i2c_client *client)
|
||||
{
|
||||
struct bttv *btv = i2c_get_adapdata(client->adapter);
|
||||
struct bttv *btv = i2c_get_adapdata(client->adapter);
|
||||
|
||||
if (bttv_debug)
|
||||
printk(KERN_DEBUG "bttv%d: %s i2c attach [addr=0x%x,client=%s]\n",
|
||||
@@ -300,9 +300,9 @@ static int attach_inform(struct i2c_client *client)
|
||||
return 0;
|
||||
|
||||
if (btv->tuner_type != UNSET) {
|
||||
struct tuner_setup tun_setup;
|
||||
struct tuner_setup tun_setup;
|
||||
|
||||
tun_setup.mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV;
|
||||
tun_setup.mode_mask = T_RADIO | T_ANALOG_TV | T_DIGITAL_TV;
|
||||
tun_setup.type = btv->tuner_type;
|
||||
tun_setup.addr = ADDR_UNSET;
|
||||
|
||||
@@ -312,7 +312,7 @@ static int attach_inform(struct i2c_client *client)
|
||||
if (btv->pinnacle_id != UNSET)
|
||||
client->driver->command(client,AUDC_CONFIG_PINNACLE,
|
||||
&btv->pinnacle_id);
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void bttv_call_i2c_clients(struct bttv *btv, unsigned int cmd, void *arg)
|
||||
@@ -330,43 +330,43 @@ static struct i2c_client bttv_i2c_client_template = {
|
||||
/* read I2C */
|
||||
int bttv_I2CRead(struct bttv *btv, unsigned char addr, char *probe_for)
|
||||
{
|
||||
unsigned char buffer = 0;
|
||||
unsigned char buffer = 0;
|
||||
|
||||
if (0 != btv->i2c_rc)
|
||||
return -1;
|
||||
if (bttv_verbose && NULL != probe_for)
|
||||
printk(KERN_INFO "bttv%d: i2c: checking for %s @ 0x%02x... ",
|
||||
btv->c.nr,probe_for,addr);
|
||||
btv->i2c_client.addr = addr >> 1;
|
||||
if (1 != i2c_master_recv(&btv->i2c_client, &buffer, 1)) {
|
||||
btv->i2c_client.addr = addr >> 1;
|
||||
if (1 != i2c_master_recv(&btv->i2c_client, &buffer, 1)) {
|
||||
if (NULL != probe_for) {
|
||||
if (bttv_verbose)
|
||||
printk("not found\n");
|
||||
} else
|
||||
printk(KERN_WARNING "bttv%d: i2c read 0x%x: error\n",
|
||||
btv->c.nr,addr);
|
||||
return -1;
|
||||
return -1;
|
||||
}
|
||||
if (bttv_verbose && NULL != probe_for)
|
||||
printk("found\n");
|
||||
return buffer;
|
||||
return buffer;
|
||||
}
|
||||
|
||||
/* write I2C */
|
||||
int bttv_I2CWrite(struct bttv *btv, unsigned char addr, unsigned char b1,
|
||||
unsigned char b2, int both)
|
||||
unsigned char b2, int both)
|
||||
{
|
||||
unsigned char buffer[2];
|
||||
int bytes = both ? 2 : 1;
|
||||
unsigned char buffer[2];
|
||||
int bytes = both ? 2 : 1;
|
||||
|
||||
if (0 != btv->i2c_rc)
|
||||
return -1;
|
||||
btv->i2c_client.addr = addr >> 1;
|
||||
buffer[0] = b1;
|
||||
buffer[1] = b2;
|
||||
if (bytes != i2c_master_send(&btv->i2c_client, buffer, bytes))
|
||||
btv->i2c_client.addr = addr >> 1;
|
||||
buffer[0] = b1;
|
||||
buffer[1] = b2;
|
||||
if (bytes != i2c_master_send(&btv->i2c_client, buffer, bytes))
|
||||
return -1;
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* read EEPROM content */
|
||||
@@ -431,8 +431,8 @@ int __devinit init_bttv_i2c(struct bttv *btv)
|
||||
"bt%d #%d [%s]", btv->id, btv->c.nr,
|
||||
btv->use_i2c_hw ? "hw" : "sw");
|
||||
|
||||
i2c_set_adapdata(&btv->c.i2c_adap, btv);
|
||||
btv->i2c_client.adapter = &btv->c.i2c_adap;
|
||||
i2c_set_adapdata(&btv->c.i2c_adap, btv);
|
||||
btv->i2c_client.adapter = &btv->c.i2c_adap;
|
||||
|
||||
#ifdef I2C_CLASS_TV_ANALOG
|
||||
if (bttv_tvcards[btv->c.type].no_video)
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/*
|
||||
|
||||
bttv-if.c -- old gpio interface to other kernel modules
|
||||
don't use in new code, will go away in 2.7
|
||||
don't use in new code, will go away in 2.7
|
||||
have a look at bttv-gpio.c instead.
|
||||
|
||||
bttv - Bt848 frame grabber driver
|
||||
|
||||
Copyright (C) 1996,97,98 Ralph Metzler (rjkm@thp.uni-koeln.de)
|
||||
& Marcus Metzler (mocm@thp.uni-koeln.de)
|
||||
& Marcus Metzler (mocm@thp.uni-koeln.de)
|
||||
(c) 1999-2003 Gerd Knorr <kraxel@bytesex.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
||||
@@ -74,27 +74,27 @@ bttv_risc_packed(struct bttv *btv, struct btcx_riscmem *risc,
|
||||
}
|
||||
if (bpl <= sg_dma_len(sg)-offset) {
|
||||
/* fits into current chunk */
|
||||
*(rp++)=cpu_to_le32(BT848_RISC_WRITE|BT848_RISC_SOL|
|
||||
*(rp++)=cpu_to_le32(BT848_RISC_WRITE|BT848_RISC_SOL|
|
||||
BT848_RISC_EOL|bpl);
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg)+offset);
|
||||
offset+=bpl;
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg)+offset);
|
||||
offset+=bpl;
|
||||
} else {
|
||||
/* scanline needs to be splitted */
|
||||
todo = bpl;
|
||||
*(rp++)=cpu_to_le32(BT848_RISC_WRITE|BT848_RISC_SOL|
|
||||
todo = bpl;
|
||||
*(rp++)=cpu_to_le32(BT848_RISC_WRITE|BT848_RISC_SOL|
|
||||
(sg_dma_len(sg)-offset));
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg)+offset);
|
||||
todo -= (sg_dma_len(sg)-offset);
|
||||
offset = 0;
|
||||
sg++;
|
||||
while (todo > sg_dma_len(sg)) {
|
||||
*(rp++)=cpu_to_le32(BT848_RISC_WRITE|
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg)+offset);
|
||||
todo -= (sg_dma_len(sg)-offset);
|
||||
offset = 0;
|
||||
sg++;
|
||||
while (todo > sg_dma_len(sg)) {
|
||||
*(rp++)=cpu_to_le32(BT848_RISC_WRITE|
|
||||
sg_dma_len(sg));
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg));
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg));
|
||||
todo -= sg_dma_len(sg);
|
||||
sg++;
|
||||
}
|
||||
*(rp++)=cpu_to_le32(BT848_RISC_WRITE|BT848_RISC_EOL|
|
||||
*(rp++)=cpu_to_le32(BT848_RISC_WRITE|BT848_RISC_EOL|
|
||||
todo);
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg));
|
||||
offset += todo;
|
||||
@@ -201,8 +201,8 @@ bttv_risc_planar(struct bttv *btv, struct btcx_riscmem *risc,
|
||||
ri |= BT848_RISC_EOL;
|
||||
|
||||
/* write risc instruction */
|
||||
*(rp++)=cpu_to_le32(ri | ylen);
|
||||
*(rp++)=cpu_to_le32(((ylen >> hshift) << 16) |
|
||||
*(rp++)=cpu_to_le32(ri | ylen);
|
||||
*(rp++)=cpu_to_le32(((ylen >> hshift) << 16) |
|
||||
(ylen >> hshift));
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(ysg)+yoffset);
|
||||
yoffset += ylen;
|
||||
@@ -319,7 +319,7 @@ bttv_calc_geo(struct bttv *btv, struct bttv_geometry *geo,
|
||||
int width, int height, int interleaved, int norm)
|
||||
{
|
||||
const struct bttv_tvnorm *tvnorm = &bttv_tvnorms[norm];
|
||||
u32 xsf, sr;
|
||||
u32 xsf, sr;
|
||||
int vdelay;
|
||||
|
||||
int swidth = tvnorm->swidth;
|
||||
@@ -334,52 +334,52 @@ bttv_calc_geo(struct bttv *btv, struct bttv_geometry *geo,
|
||||
|
||||
vdelay = tvnorm->vdelay;
|
||||
|
||||
xsf = (width*scaledtwidth)/swidth;
|
||||
geo->hscale = ((totalwidth*4096UL)/xsf-4096);
|
||||
geo->hdelay = tvnorm->hdelayx1;
|
||||
geo->hdelay = (geo->hdelay*width)/swidth;
|
||||
geo->hdelay &= 0x3fe;
|
||||
sr = ((tvnorm->sheight >> (interleaved?0:1))*512)/height - 512;
|
||||
geo->vscale = (0x10000UL-sr) & 0x1fff;
|
||||
geo->crop = ((width>>8)&0x03) | ((geo->hdelay>>6)&0x0c) |
|
||||
((tvnorm->sheight>>4)&0x30) | ((vdelay>>2)&0xc0);
|
||||
geo->vscale |= interleaved ? (BT848_VSCALE_INT<<8) : 0;
|
||||
geo->vdelay = vdelay;
|
||||
geo->width = width;
|
||||
geo->sheight = tvnorm->sheight;
|
||||
xsf = (width*scaledtwidth)/swidth;
|
||||
geo->hscale = ((totalwidth*4096UL)/xsf-4096);
|
||||
geo->hdelay = tvnorm->hdelayx1;
|
||||
geo->hdelay = (geo->hdelay*width)/swidth;
|
||||
geo->hdelay &= 0x3fe;
|
||||
sr = ((tvnorm->sheight >> (interleaved?0:1))*512)/height - 512;
|
||||
geo->vscale = (0x10000UL-sr) & 0x1fff;
|
||||
geo->crop = ((width>>8)&0x03) | ((geo->hdelay>>6)&0x0c) |
|
||||
((tvnorm->sheight>>4)&0x30) | ((vdelay>>2)&0xc0);
|
||||
geo->vscale |= interleaved ? (BT848_VSCALE_INT<<8) : 0;
|
||||
geo->vdelay = vdelay;
|
||||
geo->width = width;
|
||||
geo->sheight = tvnorm->sheight;
|
||||
geo->vtotal = tvnorm->vtotal;
|
||||
|
||||
if (btv->opt_combfilter) {
|
||||
geo->vtc = (width < 193) ? 2 : ((width < 385) ? 1 : 0);
|
||||
geo->comb = (width < 769) ? 1 : 0;
|
||||
} else {
|
||||
geo->vtc = 0;
|
||||
geo->comb = 0;
|
||||
}
|
||||
if (btv->opt_combfilter) {
|
||||
geo->vtc = (width < 193) ? 2 : ((width < 385) ? 1 : 0);
|
||||
geo->comb = (width < 769) ? 1 : 0;
|
||||
} else {
|
||||
geo->vtc = 0;
|
||||
geo->comb = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
bttv_apply_geo(struct bttv *btv, struct bttv_geometry *geo, int odd)
|
||||
{
|
||||
int off = odd ? 0x80 : 0x00;
|
||||
int off = odd ? 0x80 : 0x00;
|
||||
|
||||
if (geo->comb)
|
||||
btor(BT848_VSCALE_COMB, BT848_E_VSCALE_HI+off);
|
||||
else
|
||||
btand(~BT848_VSCALE_COMB, BT848_E_VSCALE_HI+off);
|
||||
|
||||
btwrite(geo->vtc, BT848_E_VTC+off);
|
||||
btwrite(geo->hscale >> 8, BT848_E_HSCALE_HI+off);
|
||||
btwrite(geo->hscale & 0xff, BT848_E_HSCALE_LO+off);
|
||||
btaor((geo->vscale>>8), 0xe0, BT848_E_VSCALE_HI+off);
|
||||
btwrite(geo->vscale & 0xff, BT848_E_VSCALE_LO+off);
|
||||
btwrite(geo->width & 0xff, BT848_E_HACTIVE_LO+off);
|
||||
btwrite(geo->hdelay & 0xff, BT848_E_HDELAY_LO+off);
|
||||
btwrite(geo->sheight & 0xff, BT848_E_VACTIVE_LO+off);
|
||||
btwrite(geo->vdelay & 0xff, BT848_E_VDELAY_LO+off);
|
||||
btwrite(geo->crop, BT848_E_CROP+off);
|
||||
btwrite(geo->vtc, BT848_E_VTC+off);
|
||||
btwrite(geo->hscale >> 8, BT848_E_HSCALE_HI+off);
|
||||
btwrite(geo->hscale & 0xff, BT848_E_HSCALE_LO+off);
|
||||
btaor((geo->vscale>>8), 0xe0, BT848_E_VSCALE_HI+off);
|
||||
btwrite(geo->vscale & 0xff, BT848_E_VSCALE_LO+off);
|
||||
btwrite(geo->width & 0xff, BT848_E_HACTIVE_LO+off);
|
||||
btwrite(geo->hdelay & 0xff, BT848_E_HDELAY_LO+off);
|
||||
btwrite(geo->sheight & 0xff, BT848_E_VACTIVE_LO+off);
|
||||
btwrite(geo->vdelay & 0xff, BT848_E_VDELAY_LO+off);
|
||||
btwrite(geo->crop, BT848_E_CROP+off);
|
||||
btwrite(geo->vtotal>>8, BT848_VTOTAL_HI);
|
||||
btwrite(geo->vtotal & 0xff, BT848_VTOTAL_LO);
|
||||
btwrite(geo->vtotal & 0xff, BT848_VTOTAL_LO);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------- */
|
||||
@@ -420,7 +420,7 @@ bttv_set_dma(struct bttv *btv, int override)
|
||||
} else {
|
||||
del_timer(&btv->timeout);
|
||||
}
|
||||
btv->main.cpu[RISC_SLOT_LOOP] = cpu_to_le32(cmd);
|
||||
btv->main.cpu[RISC_SLOT_LOOP] = cpu_to_le32(cmd);
|
||||
|
||||
btaor(capctl, ~0x0f, BT848_CAP_CTL);
|
||||
if (capctl) {
|
||||
@@ -432,7 +432,7 @@ bttv_set_dma(struct bttv *btv, int override)
|
||||
} else {
|
||||
if (!btv->dma_on)
|
||||
return;
|
||||
btand(~3, BT848_GPIO_DMA_CTL);
|
||||
btand(~3, BT848_GPIO_DMA_CTL);
|
||||
btv->dma_on = 0;
|
||||
}
|
||||
return;
|
||||
@@ -460,19 +460,19 @@ bttv_risc_init_main(struct bttv *btv)
|
||||
btv->main.cpu[6] = cpu_to_le32(BT848_RISC_JUMP);
|
||||
btv->main.cpu[7] = cpu_to_le32(btv->main.dma + (8<<2));
|
||||
|
||||
btv->main.cpu[8] = cpu_to_le32(BT848_RISC_SYNC | BT848_RISC_RESYNC |
|
||||
btv->main.cpu[8] = cpu_to_le32(BT848_RISC_SYNC | BT848_RISC_RESYNC |
|
||||
BT848_FIFO_STATUS_VRO);
|
||||
btv->main.cpu[9] = cpu_to_le32(0);
|
||||
btv->main.cpu[9] = cpu_to_le32(0);
|
||||
|
||||
/* bottom field */
|
||||
btv->main.cpu[10] = cpu_to_le32(BT848_RISC_JUMP);
|
||||
btv->main.cpu[10] = cpu_to_le32(BT848_RISC_JUMP);
|
||||
btv->main.cpu[11] = cpu_to_le32(btv->main.dma + (12<<2));
|
||||
btv->main.cpu[12] = cpu_to_le32(BT848_RISC_JUMP);
|
||||
btv->main.cpu[12] = cpu_to_le32(BT848_RISC_JUMP);
|
||||
btv->main.cpu[13] = cpu_to_le32(btv->main.dma + (14<<2));
|
||||
|
||||
/* jump back to top field */
|
||||
btv->main.cpu[14] = cpu_to_le32(BT848_RISC_JUMP);
|
||||
btv->main.cpu[15] = cpu_to_le32(btv->main.dma + (0<<2));
|
||||
btv->main.cpu[15] = cpu_to_le32(btv->main.dma + (0<<2));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
+10
-10
@@ -202,7 +202,7 @@ struct bttv_core {
|
||||
struct list_head subs; /* struct bttv_sub_device */
|
||||
|
||||
/* device config */
|
||||
unsigned int nr; /* dev nr (for printk("bttv%d: ..."); */
|
||||
unsigned int nr; /* dev nr (for printk("bttv%d: ..."); */
|
||||
unsigned int type; /* card type (pointer into tvcards[]) */
|
||||
char name[8]; /* dev name */
|
||||
};
|
||||
@@ -211,16 +211,16 @@ struct bttv;
|
||||
|
||||
struct tvcard
|
||||
{
|
||||
char *name;
|
||||
unsigned int video_inputs;
|
||||
unsigned int audio_inputs;
|
||||
unsigned int tuner;
|
||||
unsigned int svhs;
|
||||
char *name;
|
||||
unsigned int video_inputs;
|
||||
unsigned int audio_inputs;
|
||||
unsigned int tuner;
|
||||
unsigned int svhs;
|
||||
unsigned int digital_mode; // DIGITAL_MODE_CAMERA or DIGITAL_MODE_VIDEO
|
||||
u32 gpiomask;
|
||||
u32 muxsel[16];
|
||||
u32 audiomux[6]; /* Tuner, Radio, external, internal, mute, stereo */
|
||||
u32 gpiomask2; /* GPIO MUX mask */
|
||||
u32 gpiomask;
|
||||
u32 muxsel[16];
|
||||
u32 audiomux[6]; /* Tuner, Radio, external, internal, mute, stereo */
|
||||
u32 gpiomask2; /* GPIO MUX mask */
|
||||
|
||||
/* i2c audio flags */
|
||||
unsigned int no_msp34xx:1;
|
||||
|
||||
@@ -77,14 +77,14 @@
|
||||
struct bttv_tvnorm {
|
||||
int v4l2_id;
|
||||
char *name;
|
||||
u32 Fsc;
|
||||
u16 swidth, sheight; /* scaled standard width, height */
|
||||
u32 Fsc;
|
||||
u16 swidth, sheight; /* scaled standard width, height */
|
||||
u16 totalwidth;
|
||||
u8 adelay, bdelay, iform;
|
||||
u32 scaledtwidth;
|
||||
u16 hdelayx1, hactivex1;
|
||||
u16 vdelay;
|
||||
u8 vbipack;
|
||||
u8 vbipack;
|
||||
u16 vtotal;
|
||||
int sram;
|
||||
};
|
||||
@@ -267,8 +267,8 @@ struct bttv {
|
||||
|
||||
/* card configuration info */
|
||||
unsigned int cardid; /* pci subsystem id (bt878 based ones) */
|
||||
unsigned int tuner_type; /* tuner chip type */
|
||||
unsigned int pinnacle_id;
|
||||
unsigned int tuner_type; /* tuner chip type */
|
||||
unsigned int pinnacle_id;
|
||||
unsigned int svhs;
|
||||
struct bttv_pll_info pll;
|
||||
int triton1;
|
||||
@@ -301,9 +301,9 @@ struct bttv {
|
||||
|
||||
/* locking */
|
||||
spinlock_t s_lock;
|
||||
struct semaphore lock;
|
||||
struct semaphore lock;
|
||||
int resources;
|
||||
struct semaphore reslock;
|
||||
struct semaphore reslock;
|
||||
#ifdef VIDIOC_G_PRIORITY
|
||||
struct v4l2_prio_state prio;
|
||||
#endif
|
||||
|
||||
@@ -436,7 +436,7 @@ static int memory_write(struct cx88_core *core, u32 address, u32 value)
|
||||
|
||||
static int memory_read(struct cx88_core *core, u32 address, u32 *value)
|
||||
{
|
||||
int retval;
|
||||
int retval;
|
||||
u32 val;
|
||||
|
||||
/* Warning: address is dword address (4 bytes) */
|
||||
@@ -605,11 +605,11 @@ static int blackbird_load_firmware(struct cx8802_dev *dev)
|
||||
u32 *dataptr;
|
||||
|
||||
retval = register_write(dev->core, IVTV_REG_VPU, 0xFFFFFFED);
|
||||
retval |= register_write(dev->core, IVTV_REG_HW_BLOCKS, IVTV_CMD_HW_BLOCKS_RST);
|
||||
retval |= register_write(dev->core, IVTV_REG_ENC_SDRAM_REFRESH, 0x80000640);
|
||||
retval |= register_write(dev->core, IVTV_REG_ENC_SDRAM_PRECHARGE, 0x1A);
|
||||
retval |= register_write(dev->core, IVTV_REG_HW_BLOCKS, IVTV_CMD_HW_BLOCKS_RST);
|
||||
retval |= register_write(dev->core, IVTV_REG_ENC_SDRAM_REFRESH, 0x80000640);
|
||||
retval |= register_write(dev->core, IVTV_REG_ENC_SDRAM_PRECHARGE, 0x1A);
|
||||
msleep(1);
|
||||
retval |= register_write(dev->core, IVTV_REG_APU, 0);
|
||||
retval |= register_write(dev->core, IVTV_REG_APU, 0);
|
||||
|
||||
if (retval < 0)
|
||||
dprintk(0, "Error with register_write\n");
|
||||
@@ -657,13 +657,13 @@ static int blackbird_load_firmware(struct cx8802_dev *dev)
|
||||
release_firmware(firmware);
|
||||
dprintk(0, "Firmware upload successful.\n");
|
||||
|
||||
retval |= register_write(dev->core, IVTV_REG_HW_BLOCKS, IVTV_CMD_HW_BLOCKS_RST);
|
||||
retval |= register_read(dev->core, IVTV_REG_SPU, &value);
|
||||
retval |= register_write(dev->core, IVTV_REG_SPU, value & 0xFFFFFFFE);
|
||||
retval |= register_write(dev->core, IVTV_REG_HW_BLOCKS, IVTV_CMD_HW_BLOCKS_RST);
|
||||
retval |= register_read(dev->core, IVTV_REG_SPU, &value);
|
||||
retval |= register_write(dev->core, IVTV_REG_SPU, value & 0xFFFFFFFE);
|
||||
msleep(1);
|
||||
|
||||
retval |= register_read(dev->core, IVTV_REG_VPU, &value);
|
||||
retval |= register_write(dev->core, IVTV_REG_VPU, value & 0xFFFFFFE8);
|
||||
retval |= register_write(dev->core, IVTV_REG_VPU, value & 0xFFFFFFE8);
|
||||
|
||||
if (retval < 0)
|
||||
dprintk(0, "Error with register_write\n");
|
||||
@@ -876,7 +876,7 @@ static void blackbird_set_default_params(struct cx8802_dev *dev)
|
||||
au_params |= 0;
|
||||
}
|
||||
else if( params->au_bitrate.target >=
|
||||
mpeg_audio_bitrates[BITRATES_SIZE-1].layer[layer].rate )
|
||||
mpeg_audio_bitrates[BITRATES_SIZE-1].layer[layer].rate )
|
||||
{
|
||||
/* clamp the bitrate to the max supported by the standard */
|
||||
params->au_bitrate.target = mpeg_audio_bitrates[BITRATES_SIZE-1].layer[layer].rate;
|
||||
@@ -942,7 +942,7 @@ static void blackbird_set_default_params(struct cx8802_dev *dev)
|
||||
/* TODO: implement the stream ID stuff:
|
||||
ts_pid_pmt, ts_pid_audio, ts_pid_video, ts_pid_pcr,
|
||||
ps_size, au_pesid, vi_pesid
|
||||
*/
|
||||
*/
|
||||
}
|
||||
#define CHECK_PARAM( name ) ( dev->params.name != params->name )
|
||||
#define IF_PARAM( name ) if( CHECK_PARAM( name ) )
|
||||
@@ -1068,7 +1068,7 @@ void blackbird_set_params(struct cx8802_dev *dev, struct v4l2_mpeg_compression *
|
||||
au_params |= 0;
|
||||
}
|
||||
else if( params->au_bitrate.target >=
|
||||
mpeg_audio_bitrates[BITRATES_SIZE-1].layer[layer].rate )
|
||||
mpeg_audio_bitrates[BITRATES_SIZE-1].layer[layer].rate )
|
||||
{
|
||||
/* clamp the bitrate to the max supported by the standard */
|
||||
params->au_bitrate.target = mpeg_audio_bitrates[BITRATES_SIZE-1].layer[layer].rate;
|
||||
@@ -1150,7 +1150,7 @@ void blackbird_set_params(struct cx8802_dev *dev, struct v4l2_mpeg_compression *
|
||||
/* TODO: implement the stream ID stuff:
|
||||
ts_pid_pmt, ts_pid_audio, ts_pid_video, ts_pid_pcr,
|
||||
ps_size, au_pesid, vi_pesid
|
||||
*/
|
||||
*/
|
||||
UPDATE_PARAM( ts_pid_pmt );
|
||||
UPDATE_PARAM( ts_pid_audio );
|
||||
UPDATE_PARAM( ts_pid_video );
|
||||
@@ -1712,7 +1712,7 @@ static int __devinit blackbird_probe(struct pci_dev *pci_dev,
|
||||
|
||||
static void __devexit blackbird_remove(struct pci_dev *pci_dev)
|
||||
{
|
||||
struct cx8802_dev *dev = pci_get_drvdata(pci_dev);
|
||||
struct cx8802_dev *dev = pci_get_drvdata(pci_dev);
|
||||
|
||||
/* blackbird */
|
||||
blackbird_unregister_video(dev);
|
||||
@@ -1728,8 +1728,8 @@ static struct pci_device_id cx8802_pci_tbl[] = {
|
||||
{
|
||||
.vendor = 0x14f1,
|
||||
.device = 0x8802,
|
||||
.subvendor = PCI_ANY_ID,
|
||||
.subdevice = PCI_ANY_ID,
|
||||
.subvendor = PCI_ANY_ID,
|
||||
.subdevice = PCI_ANY_ID,
|
||||
},{
|
||||
/* --- end of list --- */
|
||||
}
|
||||
@@ -1737,10 +1737,10 @@ static struct pci_device_id cx8802_pci_tbl[] = {
|
||||
MODULE_DEVICE_TABLE(pci, cx8802_pci_tbl);
|
||||
|
||||
static struct pci_driver blackbird_pci_driver = {
|
||||
.name = "cx88-blackbird",
|
||||
.id_table = cx8802_pci_tbl,
|
||||
.probe = blackbird_probe,
|
||||
.remove = __devexit_p(blackbird_remove),
|
||||
.name = "cx88-blackbird",
|
||||
.id_table = cx8802_pci_tbl,
|
||||
.probe = blackbird_probe,
|
||||
.remove = __devexit_p(blackbird_remove),
|
||||
.suspend = cx8802_suspend_common,
|
||||
.resume = cx8802_resume_common,
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -153,26 +153,26 @@ static u32* cx88_risc_field(u32 *rp, struct scatterlist *sglist,
|
||||
}
|
||||
if (bpl <= sg_dma_len(sg)-offset) {
|
||||
/* fits into current chunk */
|
||||
*(rp++)=cpu_to_le32(RISC_WRITE|RISC_SOL|RISC_EOL|bpl);
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg)+offset);
|
||||
offset+=bpl;
|
||||
*(rp++)=cpu_to_le32(RISC_WRITE|RISC_SOL|RISC_EOL|bpl);
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg)+offset);
|
||||
offset+=bpl;
|
||||
} else {
|
||||
/* scanline needs to be splitted */
|
||||
todo = bpl;
|
||||
*(rp++)=cpu_to_le32(RISC_WRITE|RISC_SOL|
|
||||
todo = bpl;
|
||||
*(rp++)=cpu_to_le32(RISC_WRITE|RISC_SOL|
|
||||
(sg_dma_len(sg)-offset));
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg)+offset);
|
||||
todo -= (sg_dma_len(sg)-offset);
|
||||
offset = 0;
|
||||
sg++;
|
||||
while (todo > sg_dma_len(sg)) {
|
||||
*(rp++)=cpu_to_le32(RISC_WRITE|
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg)+offset);
|
||||
todo -= (sg_dma_len(sg)-offset);
|
||||
offset = 0;
|
||||
sg++;
|
||||
while (todo > sg_dma_len(sg)) {
|
||||
*(rp++)=cpu_to_le32(RISC_WRITE|
|
||||
sg_dma_len(sg));
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg));
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg));
|
||||
todo -= sg_dma_len(sg);
|
||||
sg++;
|
||||
}
|
||||
*(rp++)=cpu_to_le32(RISC_WRITE|RISC_EOL|todo);
|
||||
*(rp++)=cpu_to_le32(RISC_WRITE|RISC_EOL|todo);
|
||||
*(rp++)=cpu_to_le32(sg_dma_address(sg));
|
||||
offset += todo;
|
||||
}
|
||||
@@ -309,7 +309,7 @@ struct sram_channel cx88_sram_channels[] = {
|
||||
.name = "video y / packed",
|
||||
.cmds_start = 0x180040,
|
||||
.ctrl_start = 0x180400,
|
||||
.cdt = 0x180400 + 64,
|
||||
.cdt = 0x180400 + 64,
|
||||
.fifo_start = 0x180c00,
|
||||
.fifo_size = 0x002800,
|
||||
.ptr1_reg = MO_DMA21_PTR1,
|
||||
@@ -321,7 +321,7 @@ struct sram_channel cx88_sram_channels[] = {
|
||||
.name = "video u",
|
||||
.cmds_start = 0x180080,
|
||||
.ctrl_start = 0x1804a0,
|
||||
.cdt = 0x1804a0 + 64,
|
||||
.cdt = 0x1804a0 + 64,
|
||||
.fifo_start = 0x183400,
|
||||
.fifo_size = 0x000800,
|
||||
.ptr1_reg = MO_DMA22_PTR1,
|
||||
@@ -333,7 +333,7 @@ struct sram_channel cx88_sram_channels[] = {
|
||||
.name = "video v",
|
||||
.cmds_start = 0x1800c0,
|
||||
.ctrl_start = 0x180540,
|
||||
.cdt = 0x180540 + 64,
|
||||
.cdt = 0x180540 + 64,
|
||||
.fifo_start = 0x183c00,
|
||||
.fifo_size = 0x000800,
|
||||
.ptr1_reg = MO_DMA23_PTR1,
|
||||
@@ -345,7 +345,7 @@ struct sram_channel cx88_sram_channels[] = {
|
||||
.name = "vbi",
|
||||
.cmds_start = 0x180100,
|
||||
.ctrl_start = 0x1805e0,
|
||||
.cdt = 0x1805e0 + 64,
|
||||
.cdt = 0x1805e0 + 64,
|
||||
.fifo_start = 0x184400,
|
||||
.fifo_size = 0x001000,
|
||||
.ptr1_reg = MO_DMA24_PTR1,
|
||||
@@ -357,7 +357,7 @@ struct sram_channel cx88_sram_channels[] = {
|
||||
.name = "audio from",
|
||||
.cmds_start = 0x180140,
|
||||
.ctrl_start = 0x180680,
|
||||
.cdt = 0x180680 + 64,
|
||||
.cdt = 0x180680 + 64,
|
||||
.fifo_start = 0x185400,
|
||||
.fifo_size = 0x000200,
|
||||
.ptr1_reg = MO_DMA25_PTR1,
|
||||
@@ -369,7 +369,7 @@ struct sram_channel cx88_sram_channels[] = {
|
||||
.name = "audio to",
|
||||
.cmds_start = 0x180180,
|
||||
.ctrl_start = 0x180720,
|
||||
.cdt = 0x180680 + 64, /* same as audio IN */
|
||||
.cdt = 0x180680 + 64, /* same as audio IN */
|
||||
.fifo_start = 0x185400, /* same as audio IN */
|
||||
.fifo_size = 0x000200, /* same as audio IN */
|
||||
.ptr1_reg = MO_DMA26_PTR1,
|
||||
@@ -1137,7 +1137,7 @@ struct cx88_core* cx88_core_get(struct pci_dev *pci)
|
||||
if (!core->radio_addr)
|
||||
core->radio_addr = cx88_boards[core->board].radio_addr;
|
||||
|
||||
printk(KERN_INFO "TV tuner %d at 0x%02x, Radio tuner %d at 0x%02x\n",
|
||||
printk(KERN_INFO "TV tuner %d at 0x%02x, Radio tuner %d at 0x%02x\n",
|
||||
core->tuner_type, core->tuner_addr<<1,
|
||||
core->radio_type, core->radio_addr<<1);
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@ static int dntv_live_dvbt_demod_init(struct dvb_frontend* fe)
|
||||
static u8 reset [] = { 0x50, 0x80 };
|
||||
static u8 adc_ctl_1_cfg [] = { 0x8E, 0x40 };
|
||||
static u8 agc_cfg [] = { 0x67, 0x10, 0x23, 0x00, 0xFF, 0xFF,
|
||||
0x00, 0xFF, 0x00, 0x40, 0x40 };
|
||||
0x00, 0xFF, 0x00, 0x40, 0x40 };
|
||||
static u8 dntv_extra[] = { 0xB5, 0x7A };
|
||||
static u8 capt_range_cfg[] = { 0x75, 0x32 };
|
||||
|
||||
@@ -464,7 +464,7 @@ static int __devinit dvb_probe(struct pci_dev *pci_dev,
|
||||
|
||||
static void __devexit dvb_remove(struct pci_dev *pci_dev)
|
||||
{
|
||||
struct cx8802_dev *dev = pci_get_drvdata(pci_dev);
|
||||
struct cx8802_dev *dev = pci_get_drvdata(pci_dev);
|
||||
|
||||
/* dvb */
|
||||
videobuf_dvb_unregister(&dev->dvb);
|
||||
@@ -479,8 +479,8 @@ static struct pci_device_id cx8802_pci_tbl[] = {
|
||||
{
|
||||
.vendor = 0x14f1,
|
||||
.device = 0x8802,
|
||||
.subvendor = PCI_ANY_ID,
|
||||
.subdevice = PCI_ANY_ID,
|
||||
.subvendor = PCI_ANY_ID,
|
||||
.subdevice = PCI_ANY_ID,
|
||||
},{
|
||||
/* --- end of list --- */
|
||||
}
|
||||
@@ -488,10 +488,10 @@ static struct pci_device_id cx8802_pci_tbl[] = {
|
||||
MODULE_DEVICE_TABLE(pci, cx8802_pci_tbl);
|
||||
|
||||
static struct pci_driver dvb_pci_driver = {
|
||||
.name = "cx88-dvb",
|
||||
.id_table = cx8802_pci_tbl,
|
||||
.probe = dvb_probe,
|
||||
.remove = __devexit_p(dvb_remove),
|
||||
.name = "cx88-dvb",
|
||||
.id_table = cx8802_pci_tbl,
|
||||
.probe = dvb_probe,
|
||||
.remove = __devexit_p(dvb_remove),
|
||||
.suspend = cx8802_suspend_common,
|
||||
.resume = cx8802_resume_common,
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user