mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-27 11:55:53 +00:00
V4L/DVB (6157): Removed the need to manually define .bridge for each card
Moved the field from cx23885_board to cx23885_dev and added code to iautomatically set the bridge type based on the pci device id. Signed-off-by: Steven Toth <stoth@hauppauge.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
0fc0739ba9
commit
e133be0f58
@ -32,7 +32,6 @@
|
||||
struct cx23885_board cx23885_boards[] = {
|
||||
[CX23885_BOARD_UNKNOWN] = {
|
||||
.name = "UNKNOWN/GENERIC",
|
||||
.bridge = CX23885_BRIDGE_UNDEFINED,
|
||||
.input = {{
|
||||
.type = CX23885_VMUX_COMPOSITE1,
|
||||
.vmux = 0,
|
||||
@ -49,7 +48,6 @@ struct cx23885_board cx23885_boards[] = {
|
||||
},
|
||||
[CX23885_BOARD_HAUPPAUGE_HVR1800lp] = {
|
||||
.name = "Hauppauge WinTV-HVR1800lp",
|
||||
.bridge = CX23885_BRIDGE_885,
|
||||
.portc = CX23885_MPEG_DVB,
|
||||
.input = {{
|
||||
.type = CX23885_VMUX_TELEVISION,
|
||||
@ -71,7 +69,6 @@ struct cx23885_board cx23885_boards[] = {
|
||||
},
|
||||
[CX23885_BOARD_HAUPPAUGE_HVR1800] = {
|
||||
.name = "Hauppauge WinTV-HVR1800",
|
||||
.bridge = CX23885_BRIDGE_887,
|
||||
.portc = CX23885_MPEG_DVB,
|
||||
.input = {{
|
||||
.type = CX23885_VMUX_TELEVISION,
|
||||
|
@ -452,8 +452,8 @@ int cx23885_sram_channel_setup(struct cx23885_dev *dev,
|
||||
cx_write(ch->cnt2_reg, (lines*16) >> 3);
|
||||
cx_write(ch->cnt1_reg, (bpl >> 3) -1);
|
||||
|
||||
dprintk(2,"[bridged %d] sram setup %s: bpl=%d lines=%d\n",
|
||||
cx23885_boards[dev->board].bridge,
|
||||
dprintk(2,"[bridge %d] sram setup %s: bpl=%d lines=%d\n",
|
||||
dev->bridge,
|
||||
ch->name,
|
||||
bpl,
|
||||
lines);
|
||||
@ -770,18 +770,16 @@ static int cx23885_dev_setup(struct cx23885_dev *dev)
|
||||
dev->board, card[dev->nr] == dev->board ?
|
||||
"insmod option" : "autodetected");
|
||||
|
||||
/* Configure the hardware internal memory for fifos */
|
||||
switch(cx23885_boards[dev->board].bridge) {
|
||||
case CX23885_BRIDGE_UNDEFINED:
|
||||
case CX23885_BRIDGE_885:
|
||||
dev->sram_channels = cx23885_sram_channels;
|
||||
break;
|
||||
case CX23885_BRIDGE_887:
|
||||
/* Configure the internal memory */
|
||||
if(dev->pci->device == 0x8880) {
|
||||
dev->bridge = CX23885_BRIDGE_887;
|
||||
dev->sram_channels = cx23887_sram_channels;
|
||||
break;
|
||||
default:
|
||||
printk(KERN_ERR "%s() error, default case", __FUNCTION__ );
|
||||
} else
|
||||
if(dev->pci->device == 0x8852) {
|
||||
dev->bridge = CX23885_BRIDGE_885;
|
||||
dev->sram_channels = cx23885_sram_channels;
|
||||
}
|
||||
dprintk(1, "%s() Memory configured for PCIe bridge type %d\n", __FUNCTION__, dev->bridge);
|
||||
|
||||
/* init hardware */
|
||||
cx23885_reset(dev);
|
||||
@ -1037,7 +1035,7 @@ static int cx23885_start_dma(struct cx23885_tsport *port,
|
||||
* starting or stopping interrupts or dma. Avoid the bug for the time being,
|
||||
* enabling the developer to work on the demod/tuner locking work.
|
||||
*/
|
||||
switch(cx23885_boards[dev->board].bridge) {
|
||||
switch(dev->bridge) {
|
||||
case CX23885_BRIDGE_885:
|
||||
case CX23885_BRIDGE_887:
|
||||
/* enable irqs */
|
||||
|
@ -101,11 +101,6 @@ struct cx23885_board {
|
||||
CX23885_MPEG_UNDEFINED = 0,
|
||||
CX23885_MPEG_DVB
|
||||
} portc;
|
||||
enum {
|
||||
CX23885_BRIDGE_UNDEFINED = 0,
|
||||
CX23885_BRIDGE_885 = 885,
|
||||
CX23885_BRIDGE_887 = 887,
|
||||
} bridge;
|
||||
struct cx23885_input input[MAX_CX23885_INPUT];
|
||||
};
|
||||
|
||||
@ -210,6 +205,12 @@ struct cx23885_dev {
|
||||
|
||||
/* sram configuration */
|
||||
struct sram_channel *sram_channels;
|
||||
|
||||
enum {
|
||||
CX23885_BRIDGE_UNDEFINED = 0,
|
||||
CX23885_BRIDGE_885 = 885,
|
||||
CX23885_BRIDGE_887 = 887,
|
||||
} bridge;
|
||||
};
|
||||
|
||||
#define SRAM_CH01 0 /* Video A */
|
||||
|
Loading…
Reference in New Issue
Block a user