diff options
| author | Patrick Mochel <mochel@osdl.org> | 2002-12-01 11:02:53 -0600 |
|---|---|---|
| committer | Patrick Mochel <mochel@osdl.org> | 2002-12-01 11:02:53 -0600 |
| commit | 93186e2388e34c792afb4a09c6d99768d0d0dd94 (patch) | |
| tree | bf24f162bd7ef7441760cececf90420ed92f47d1 | |
| parent | 1bf8b5fda8bd971b91a37f739f826218e1b71725 (diff) | |
| parent | 8d81094b01532c758cc166325997cd3c36a3dbd8 (diff) | |
Merge osdl.org:/home/mochel/src/kernel/devel/linux-2.5-virgin
into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-core
65 files changed, 2171 insertions, 2133 deletions
diff --git a/arch/ia64/sn/kernel/sn1/synergy.c b/arch/ia64/sn/kernel/sn1/synergy.c index 9524e8bef9f0..ddd3e95b0fab 100644 --- a/arch/ia64/sn/kernel/sn1/synergy.c +++ b/arch/ia64/sn/kernel/sn1/synergy.c @@ -449,7 +449,7 @@ synergy_perf_ioctl(struct inode *inode, struct file *file, } struct file_operations synergy_mon_fops = { - ioctl: synergy_perf_ioctl, + .ioctl = synergy_perf_ioctl, }; void diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c index d4a3b0e5ecab..f09a9419796a 100644 --- a/arch/parisc/kernel/irq.c +++ b/arch/parisc/kernel/irq.c @@ -112,27 +112,43 @@ static inline void unmask_cpu_irq(void *unused, int irq) * do_cpu_irq_mask() index into the matching irq_action array. */ struct irqaction cpu_irq_actions[IRQ_PER_REGION] = { - [IRQ_OFFSET(TIMER_IRQ)] { handler: timer_interrupt, name: "timer", }, + [IRQ_OFFSET(TIMER_IRQ)] = { + .handler = timer_interrupt, + .name = "timer", + }, #ifdef CONFIG_SMP - [IRQ_OFFSET(IPI_IRQ)] { handler: ipi_interrupt, name: "IPI", }, + [IRQ_OFFSET(IPI_IRQ)] = { + .handler = ipi_interrupt, + .name = "IPI", + }, #endif }; struct irq_region_ops cpu_irq_ops = { - disable_cpu_irq, enable_cpu_irq, unmask_cpu_irq, unmask_cpu_irq + .disable_irq = disable_cpu_irq, + .enable_irq = enable_cpu_irq, + .mask_irq = unmask_cpu_irq, + .unmask_irq = unmask_cpu_irq }; struct irq_region cpu0_irq_region = { - ops: { disable_cpu_irq, enable_cpu_irq, unmask_cpu_irq, unmask_cpu_irq }, - data: { dev: &cpu_data[0], - name: "PARISC-CPU", - irqbase: IRQ_FROM_REGION(CPU_IRQ_REGION), }, - action: cpu_irq_actions, + .ops = { + .disable_irq = disable_cpu_irq, + .enable_irq = enable_cpu_irq, + .mask_irq = unmask_cpu_irq, + .unmask_irq = unmask_cpu_irq + }, + .data = { + .dev = &cpu_data[0], + .name = "PARISC-CPU", + .irqbase = IRQ_FROM_REGION(CPU_IRQ_REGION), + }, + .action = cpu_irq_actions, }; struct irq_region *irq_region[NR_IRQ_REGS] = { - [ 0 ] NULL, /* reserved for EISA, else causes data page fault (aka code 15) */ - [ CPU_IRQ_REGION ] &cpu0_irq_region, + [ 0 ] = NULL, /* reserved for EISA, else causes data page fault (aka code 15) */ + [ CPU_IRQ_REGION ] = &cpu0_irq_region, }; diff --git a/arch/ppc/amiga/amiints.c b/arch/ppc/amiga/amiints.c index 73b772518e2f..a12e2f8f5e0f 100644 --- a/arch/ppc/amiga/amiints.c +++ b/arch/ppc/amiga/amiints.c @@ -310,14 +310,14 @@ static void ami_int7(int irq, void *dev_id, struct pt_regs *fp) and executes them in a loop. Having ami_badint at the end of the chain is a bad idea. */ struct irqaction amiga_sys_irqaction[AUTO_IRQS] = { - { handler: ami_badint, name: "spurious int" }, - { handler: ami_int1, name: "int1 handler" }, + { .handler = ami_badint, .name = "spurious int" }, + { .handler = ami_int1, .name = "int1 handler" }, { 0, /* CIAA */ }, - { handler: ami_int3, name: "int3 handler" }, - { handler: ami_int4, name: "int4 handler" }, - { handler: ami_int5, name: "int5 handler" }, + { .handler = ami_int3, .name = "int3 handler" }, + { .handler = ami_int4, .name = "int4 handler" }, + { .handler = ami_int5, .name = "int5 handler" }, { 0, /* CIAB */ }, - { handler: ami_int7, name: "int7 handler" }, + { .handler = ami_int7, .name = "int7 handler" }, }; #else void (*amiga_default_handler[SYS_IRQS])(int, void *, struct pt_regs *) = { diff --git a/drivers/media/dvb/av7110/av7110_ir.c b/drivers/media/dvb/av7110/av7110_ir.c index 096fa0c62716..da87e87d9465 100644 --- a/drivers/media/dvb/av7110/av7110_ir.c +++ b/drivers/media/dvb/av7110/av7110_ir.c @@ -54,7 +54,7 @@ void av7110_emit_keyup (unsigned long data) static -struct timer_list keyup_timer = { function: av7110_emit_keyup }; +struct timer_list keyup_timer = { .function = av7110_emit_keyup }; static diff --git a/drivers/media/dvb/av7110/saa7146_core.c b/drivers/media/dvb/av7110/saa7146_core.c index e18cb6c6ab1b..0690689bd2f9 100644 --- a/drivers/media/dvb/av7110/saa7146_core.c +++ b/drivers/media/dvb/av7110/saa7146_core.c @@ -905,12 +905,12 @@ static struct pci_device_id saa7146_pci_tbl[] __devinitdata = { MODULE_DEVICE_TABLE(pci, saa7146_pci_tbl); static struct pci_driver saa7146_driver = { - name: "saa7146", - id_table: saa7146_pci_tbl, - probe: saa7146_init_one, - remove: saa7146_remove_one, - suspend: saa7146_suspend, - resume: saa7146_resume, + .name = "saa7146", + .id_table = saa7146_pci_tbl, + .probe = saa7146_init_one, + .remove = saa7146_remove_one, + .suspend = saa7146_suspend, + .resume = saa7146_resume, }; diff --git a/drivers/media/dvb/frontends/alps_bsru6.c b/drivers/media/dvb/frontends/alps_bsru6.c index f67ab386a51d..4839811a7641 100644 --- a/drivers/media/dvb/frontends/alps_bsru6.c +++ b/drivers/media/dvb/frontends/alps_bsru6.c @@ -39,22 +39,22 @@ static int debug = 0; static struct dvb_frontend_info bsru6_info = { #ifdef CONFIG_ALPS_BSRU6_IS_LG_TDQBS00X - name: "LG TDQB-S00x", + .name = "LG TDQB-S00x", #else - name: "Alps BSRU6", + .name = "Alps BSRU6", #endif - type: FE_QPSK, - frequency_min: 950000, - frequency_max: 2150000, - frequency_stepsize: 125, /* kHz for QPSK frontends */ - frequency_tolerance: M_CLK/2000, - symbol_rate_min: 1000000, - symbol_rate_max: 45000000, - symbol_rate_tolerance: 500, /* ppm */ - notifier_delay: 0, - caps: FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | - FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | - FE_CAN_QPSK + .type = FE_QPSK, + .frequency_min = 950000, + .frequency_max = 2150000, + .frequency_stepsize = 125, /* kHz for QPSK frontends */ + .frequency_tolerance = M_CLK/2000, + .symbol_rate_min = 1000000, + .symbol_rate_max = 45000000, + .symbol_rate_tolerance = 500, /* ppm */ + .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | + FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | + FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | + FE_CAN_QPSK }; @@ -158,7 +158,7 @@ int stv0299_writereg (struct dvb_i2c_bus *i2c, u8 reg, u8 data) { int ret; u8 buf [] = { reg, data }; - struct i2c_msg msg = { addr: 0x68, flags: 0, buf: buf, len: 2 }; + struct i2c_msg msg = { .addr = 0x68, .flags = 0, .buf = buf, .len = 2 }; dprintk ("%s\n", __FUNCTION__); @@ -178,8 +178,8 @@ u8 stv0299_readreg (struct dvb_i2c_bus *i2c, u8 reg) int ret; u8 b0 [] = { reg }; u8 b1 [] = { 0 }; - struct i2c_msg msg [] = { { addr: 0x68, flags: 0, buf: b0, len: 1 }, - { addr: 0x68, flags: I2C_M_RD, buf: b1, len: 1 } }; + struct i2c_msg msg [] = { { .addr = 0x68, .flags = 0, .buf = b0, .len = 1 }, + { .addr = 0x68, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; dprintk ("%s\n", __FUNCTION__); @@ -196,8 +196,8 @@ static int stv0299_readregs (struct dvb_i2c_bus *i2c, u8 reg1, u8 *b, u8 len) { int ret; - struct i2c_msg msg [] = { { addr: 0x68, flags: 0, buf: ®1, len: 1 }, - { addr: 0x68, flags: I2C_M_RD, buf: b, len: len } }; + struct i2c_msg msg [] = { { .addr = 0x68, .flags = 0, .buf = ®1, .len = 1 }, + { .addr = 0x68, .flags = I2C_M_RD, .buf = b, .len = len } }; dprintk ("%s\n", __FUNCTION__); @@ -216,8 +216,8 @@ int tsa5059_write (struct dvb_i2c_bus *i2c, u8 data [4]) { int ret; u8 rpt1 [] = { 0x05, 0xb5 }; /* enable i2c repeater on stv0299 */ - struct i2c_msg msg [] = {{ addr: 0x68, flags: 0, buf: rpt1, len: 2 }, - { addr: 0x61, flags: 0, buf: data, len: 4 }}; + struct i2c_msg msg [] = {{ .addr = 0x68, .flags = 0, .buf = rpt1, .len = 2 }, + { .addr = 0x61, .flags = 0, .buf = data, .len = 4 }}; dprintk ("%s\n", __FUNCTION__); diff --git a/drivers/media/dvb/frontends/alps_bsrv2.c b/drivers/media/dvb/frontends/alps_bsrv2.c index e0ecd0e2447b..be7855f12446 100644 --- a/drivers/media/dvb/frontends/alps_bsrv2.c +++ b/drivers/media/dvb/frontends/alps_bsrv2.c @@ -32,20 +32,20 @@ static int debug = 0; static struct dvb_frontend_info bsrv2_info = { - name: "Alps BSRV2", - type: FE_QPSK, - frequency_min: 950000, - frequency_max: 2150000, - frequency_stepsize: 250, /* kHz for QPSK frontends */ - frequency_tolerance: 29500, - symbol_rate_min: 1000000, - symbol_rate_max: 45000000, -/* symbol_rate_tolerance: ???,*/ - notifier_delay: 50, /* 1/20 s */ - caps: FE_CAN_INVERSION_AUTO | - FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | - FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | - FE_CAN_QPSK + .name = "Alps BSRV2", + .type = FE_QPSK, + .frequency_min = 950000, + .frequency_max = 2150000, + .frequency_stepsize = 250, /* kHz for QPSK frontends */ + .frequency_tolerance = 29500, + .symbol_rate_min = 1000000, + .symbol_rate_max = 45000000, + .notifier_delay = 50, /* 1/20 s */ + .caps = FE_CAN_INVERSION_AUTO | + FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | + FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | + FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | + FE_CAN_QPSK }; @@ -76,7 +76,7 @@ static int ves1893_writereg (struct dvb_i2c_bus *i2c, int reg, int data) { u8 buf [] = { 0x00, reg, data }; - struct i2c_msg msg = { addr: 0x08, flags: 0, buf: buf, len: 3 }; + struct i2c_msg msg = { .addr = 0x08, .flags = 0, .buf = buf, .len = 3 }; int err; if ((err = i2c->xfer (i2c, &msg, 1)) != 1) { @@ -94,8 +94,8 @@ u8 ves1893_readreg (struct dvb_i2c_bus *i2c, u8 reg) int ret; u8 b0 [] = { 0x00, reg }; u8 b1 [] = { 0 }; - struct i2c_msg msg [] = { { addr: 0x08, flags: 0, buf: b0, len: 2 }, - { addr: 0x08, flags: I2C_M_RD, buf: b1, len: 1 } }; + struct i2c_msg msg [] = { { .addr = 0x08, .flags = 0, .buf = b0, .len = 2 }, + { .addr = 0x08, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; ret = i2c->xfer (i2c, msg, 2); @@ -110,7 +110,7 @@ static int sp5659_write (struct dvb_i2c_bus *i2c, u8 data [4]) { int ret; - struct i2c_msg msg = { addr: 0x61, flags: 0, buf: data, len: 4 }; + struct i2c_msg msg = { .addr = 0x61, .flags = 0, .buf = data, .len = 4 }; ret = i2c->xfer (i2c, &msg, 1); diff --git a/drivers/media/dvb/frontends/alps_tdlb7.c b/drivers/media/dvb/frontends/alps_tdlb7.c index d5700041eccd..2d3482e0b3c6 100644 --- a/drivers/media/dvb/frontends/alps_tdlb7.c +++ b/drivers/media/dvb/frontends/alps_tdlb7.c @@ -73,21 +73,15 @@ static int errno; static struct dvb_frontend_info tdlb7_info = { - name: "Alps TDLB7", - type: FE_OFDM, - frequency_min: 470000000, - frequency_max: 860000000, - frequency_stepsize: 166666, -#if 0 - frequency_tolerance: ???, - symbol_rate_min: ???, - symbol_rate_max: ???, - symbol_rate_tolerance: ???, - notifier_delay: 0, -#endif - caps: FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | - FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | - FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 + .name = "Alps TDLB7", + .type = FE_OFDM, + .frequency_min = 470000000, + .frequency_max = 860000000, + .frequency_stepsize = 166666, + .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | + FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | + FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | + FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 }; @@ -95,7 +89,7 @@ static int sp8870_writereg (struct dvb_i2c_bus *i2c, u16 reg, u16 data) { u8 buf [] = { reg >> 8, reg & 0xff, data >> 8, data & 0xff }; - struct i2c_msg msg = { addr: 0x71, flags: 0, buf: buf, len: 4 }; + struct i2c_msg msg = { .addr = 0x71, .flags = 0, .buf = buf, .len = 4 }; int err; if ((err = i2c->xfer (i2c, &msg, 1)) != 1) { @@ -113,8 +107,8 @@ u16 sp8870_readreg (struct dvb_i2c_bus *i2c, u16 reg) int ret; u8 b0 [] = { reg >> 8 , reg & 0xff }; u8 b1 [] = { 0, 0 }; - struct i2c_msg msg [] = { { addr: 0x71, flags: 0, buf: b0, len: 2 }, - { addr: 0x71, flags: I2C_M_RD, buf: b1, len: 2 } }; + struct i2c_msg msg [] = { { .addr = 0x71, .flags = 0, .buf = b0, .len = 2 }, + { .addr = 0x71, .flags = I2C_M_RD, .buf = b1, .len = 2 } }; ret = i2c->xfer (i2c, msg, 2); @@ -129,7 +123,7 @@ static int sp5659_write (struct dvb_i2c_bus *i2c, u8 data [4]) { int ret; - struct i2c_msg msg = { addr: 0x60, flags: 0, buf: data, len: 4 }; + struct i2c_msg msg = { .addr = 0x60, .flags = 0, .buf = data, .len = 4 }; ret = i2c->xfer (i2c, &msg, 1); @@ -377,7 +371,7 @@ static int tdlb7_attach (struct dvb_i2c_bus *i2c) { - struct i2c_msg msg = { addr: 0x71, flags: 0, buf: NULL, len: 0 }; + struct i2c_msg msg = { .addr = 0x71, .flags = 0, .buf = NULL, .len = 0 }; dprintk ("%s\n", __FUNCTION__); diff --git a/drivers/media/dvb/frontends/alps_tdmb7.c b/drivers/media/dvb/frontends/alps_tdmb7.c index ddc5e818666b..9a8f2f72b6b9 100644 --- a/drivers/media/dvb/frontends/alps_tdmb7.c +++ b/drivers/media/dvb/frontends/alps_tdmb7.c @@ -33,21 +33,15 @@ static int debug = 0; static struct dvb_frontend_info tdmb7_info = { - name: "Alps TDMB7", - type: FE_OFDM, - frequency_min: 470000000, - frequency_max: 860000000, - frequency_stepsize: 166667, -#if 0 - frequency_tolerance: ???, - symbol_rate_min: ???, - symbol_rate_max: ???, - symbol_rate_tolerance: 500, /* ppm */ - notifier_delay: 0, -#endif - caps: FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | - FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | - FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 + .name = "Alps TDMB7", + .type = FE_OFDM, + .frequency_min = 470000000, + .frequency_max = 860000000, + .frequency_stepsize = 166667, + .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | + FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | + FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | + FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 }; @@ -87,7 +81,7 @@ int cx22700_writereg (struct dvb_i2c_bus *i2c, u8 reg, u8 data) { int ret; u8 buf [] = { reg, data }; - struct i2c_msg msg = { addr: 0x43, flags: 0, buf: buf, len: 2 }; + struct i2c_msg msg = { .addr = 0x43, .flags = 0, .buf = buf, .len = 2 }; dprintk ("%s\n", __FUNCTION__); @@ -107,8 +101,8 @@ u8 cx22700_readreg (struct dvb_i2c_bus *i2c, u8 reg) int ret; u8 b0 [] = { reg }; u8 b1 [] = { 0 }; - struct i2c_msg msg [] = { { addr: 0x43, flags: 0, buf: b0, len: 1 }, - { addr: 0x43, flags: I2C_M_RD, buf: b1, len: 1 } }; + struct i2c_msg msg [] = { { .addr = 0x43, .flags = 0, .buf = b0, .len = 1 }, + { .addr = 0x43, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; dprintk ("%s\n", __FUNCTION__); @@ -124,7 +118,7 @@ u8 cx22700_readreg (struct dvb_i2c_bus *i2c, u8 reg) static int pll_write (struct dvb_i2c_bus *i2c, u8 data [4]) { - struct i2c_msg msg = { addr: 0x61, flags: 0, buf: data, len: 4 }; + struct i2c_msg msg = { .addr = 0x61, .flags = 0, .buf = data, .len = 4 }; int ret; cx22700_writereg (i2c, 0x0a, 0x00); /* open i2c bus switch */ @@ -418,7 +412,7 @@ int tdmb7_ioctl (struct dvb_frontend *fe, unsigned int cmd, void *arg) static int tdmb7_attach (struct dvb_i2c_bus *i2c) { - struct i2c_msg msg = { addr: 0x43, flags: 0, buf: NULL, len: 0 }; + struct i2c_msg msg = { .addr = 0x43, .flags = 0, .buf = NULL, .len = 0 }; dprintk ("%s\n", __FUNCTION__); diff --git a/drivers/media/dvb/frontends/grundig_29504-401.c b/drivers/media/dvb/frontends/grundig_29504-401.c index a65e9843f747..fb2c7b904bb2 100644 --- a/drivers/media/dvb/frontends/grundig_29504-401.c +++ b/drivers/media/dvb/frontends/grundig_29504-401.c @@ -34,18 +34,14 @@ static int debug = 0; struct dvb_frontend_info grundig_29504_401_info = { - name: "Grundig 29504-401", - type: FE_OFDM, -/* frequency_min: ???,*/ -/* frequency_max: ???,*/ - frequency_stepsize: 166666, -/* frequency_tolerance: ???,*/ -/* symbol_rate_tolerance: ???,*/ - notifier_delay: 0, - caps: FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | - FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | - FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | - FE_CAN_MUTE_TS + .name = "Grundig 29504-401", + .type = FE_OFDM, + .frequency_stepsize = 166666, + .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | + FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | + FE_CAN_FEC_7_8 | FE_CAN_QPSK | + FE_CAN_QAM_16 | FE_CAN_QAM_64 | + FE_CAN_MUTE_TS }; @@ -54,7 +50,7 @@ int l64781_writereg (struct dvb_i2c_bus *i2c, u8 reg, u8 data) { int ret; u8 buf [] = { reg, data }; - struct i2c_msg msg = { addr: 0x55, flags: 0, buf: buf, len: 2 }; + struct i2c_msg msg = { .addr = 0x55, .flags = 0, .buf = buf, .len = 2 }; if ((ret = i2c->xfer (i2c, &msg, 1)) != 1) dprintk ("%s: write_reg error (reg == %02x) = %02x!\n", @@ -70,8 +66,8 @@ u8 l64781_readreg (struct dvb_i2c_bus *i2c, u8 reg) int ret; u8 b0 [] = { reg }; u8 b1 [] = { 0 }; - struct i2c_msg msg [] = { { addr: 0x55, flags: 0, buf: b0, len: 1 }, - { addr: 0x55, flags: I2C_M_RD, buf: b1, len: 1 } }; + struct i2c_msg msg [] = { { .addr = 0x55, .flags = 0, .buf = b0, .len = 1 }, + { .addr = 0x55, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; ret = i2c->xfer (i2c, msg, 2); @@ -86,7 +82,7 @@ static int tsa5060_write (struct dvb_i2c_bus *i2c, u8 data [4]) { int ret; - struct i2c_msg msg = { addr: 0x61, flags: 0, buf: data, len: 4 }; + struct i2c_msg msg = { .addr = 0x61, .flags = 0, .buf = data, .len = 4 }; if ((ret = i2c->xfer (i2c, &msg, 1)) != 1) dprintk ("%s: write_reg error == %02x!\n", __FUNCTION__, ret); @@ -273,7 +269,7 @@ static void reset_and_configure (struct dvb_i2c_bus *i2c) { u8 buf [] = { 0x06 }; - struct i2c_msg msg = { addr: 0x00, flags: 0, buf: buf, len: 1 }; + struct i2c_msg msg = { .addr = 0x00, .flags = 0, .buf = buf, .len = 1 }; i2c->xfer (i2c, &msg, 1); } @@ -432,8 +428,8 @@ int l64781_attach (struct dvb_i2c_bus *i2c) { u8 b0 [] = { 0x1a }; u8 b1 [] = { 0x00 }; - struct i2c_msg msg [] = { { addr: 0x55, flags: 0, buf: b0, len: 1 }, - { addr: 0x55, flags: I2C_M_RD, buf: b1, len: 1 } }; + struct i2c_msg msg [] = { { .addr = 0x55, .flags = 0, .buf = b0, .len = 1 }, + { .addr = 0x55, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; if (i2c->xfer (i2c, msg, 2) == 2) /* probably an EEPROM... */ return -ENODEV; diff --git a/drivers/media/dvb/frontends/grundig_29504-491.c b/drivers/media/dvb/frontends/grundig_29504-491.c index 563377137648..37bd616fd176 100644 --- a/drivers/media/dvb/frontends/grundig_29504-491.c +++ b/drivers/media/dvb/frontends/grundig_29504-491.c @@ -36,22 +36,20 @@ static int debug = 0; static struct dvb_frontend_info grundig_29504_491_info = { - name: "Grundig 29504-491, (TDA8083 based)", - type: FE_QPSK, - frequency_min: 950000, /* FIXME: guessed! */ - frequency_max: 1400000, /* FIXME: guessed! */ - frequency_stepsize: 125, /* kHz for QPSK frontends */ -/* frequency_tolerance: ???,*/ - symbol_rate_min: 1000000, /* FIXME: guessed! */ - symbol_rate_max: 45000000, /* FIXME: guessed! */ -/* symbol_rate_tolerance: ???,*/ - notifier_delay: 0, - caps: FE_CAN_INVERSION_AUTO | - FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | - FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | - FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_FEC_AUTO | - FE_CAN_QPSK | - FE_CAN_MUTE_TS + .name = "Grundig 29504-491, (TDA8083 based)", + .type = FE_QPSK, + .frequency_min = 950000, /* FIXME: guessed! */ + .frequency_max = 1400000, /* FIXME: guessed! */ + .frequency_stepsize = 125, /* kHz for QPSK frontends */ + .symbol_rate_min = 1000000, /* FIXME: guessed! */ + .symbol_rate_max = 45000000, /* FIXME: guessed! */ + .caps = FE_CAN_INVERSION_AUTO | + FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | + FE_CAN_FEC_3_4 | FE_CAN_FEC_4_5 | + FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | + FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | + FE_CAN_FEC_AUTO | FE_CAN_QPSK | + FE_CAN_MUTE_TS }; @@ -73,7 +71,7 @@ int tda8083_writereg (struct dvb_i2c_bus *i2c, u8 reg, u8 data) { int ret; u8 buf [] = { reg, data }; - struct i2c_msg msg = { addr: 0x68, flags: 0, buf: buf, len: 2 }; + struct i2c_msg msg = { .addr = 0x68, .flags = 0, .buf = buf, .len = 2 }; ret = i2c->xfer (i2c, &msg, 1); @@ -89,8 +87,8 @@ static int tda8083_readregs (struct dvb_i2c_bus *i2c, u8 reg1, u8 *b, u8 len) { int ret; - struct i2c_msg msg [] = { { addr: 0x68, flags: 0, buf: ®1, len: 1 }, - { addr: 0x68, flags: I2C_M_RD, buf: b, len: len } }; + struct i2c_msg msg [] = { { .addr = 0x68, .flags = 0, .buf = ®1, .len = 1 }, + { .addr = 0x68, .flags = I2C_M_RD, .buf = b, .len = len } }; ret = i2c->xfer (i2c, msg, 2); @@ -117,7 +115,7 @@ static int tsa5522_write (struct dvb_i2c_bus *i2c, u8 data [4]) { int ret; - struct i2c_msg msg = { addr: 0x61, flags: 0, buf: data, len: 4 }; + struct i2c_msg msg = { .addr = 0x61, .flags = 0, .buf = data, .len = 4 }; ret = i2c->xfer (i2c, &msg, 1); diff --git a/drivers/media/dvb/frontends/ves1820.c b/drivers/media/dvb/frontends/ves1820.c index 30b06900102c..a4564aef9a63 100644 --- a/drivers/media/dvb/frontends/ves1820.c +++ b/drivers/media/dvb/frontends/ves1820.c @@ -59,20 +59,13 @@ static int debug = 0; static struct dvb_frontend_info ves1820_info = { - name: "VES1820/Grundig tuner as used on the Siemens DVB-C card", - type: FE_QAM, - frequency_stepsize: 62500, - frequency_min: 51000000, - frequency_max: 858000000, -#if 0 - frequency_tolerance: ???, - symbol_rate_min: ???, - symbol_rate_max: ???, - symbol_rate_tolerance: ???, /* ppm */ /* == 8% (spec p. 5) */ - notifier_delay: ?, -#endif - caps: FE_CAN_QAM_16 | FE_CAN_QAM_32 | FE_CAN_QAM_64 | - FE_CAN_QAM_128 | FE_CAN_QAM_256 + .name = "VES1820/Grundig tuner as used on the Siemens DVB-C card", + .type = FE_QAM, + .frequency_stepsize = 62500, + .frequency_min = 51000000, + .frequency_max = 858000000, + .caps = FE_CAN_QAM_16 | FE_CAN_QAM_32 | FE_CAN_QAM_64 | + FE_CAN_QAM_128 | FE_CAN_QAM_256 }; @@ -95,7 +88,7 @@ int ves1820_writereg (struct dvb_i2c_bus *i2c, u8 reg, u8 data) { int ret; u8 buf[] = { 0x00, reg, data }; - struct i2c_msg msg = { addr: 0x09, flags: 0, buf: buf, len: 3 }; + struct i2c_msg msg = { .addr = 0x09, .flags = 0, .buf = buf, .len = 3 }; ret = i2c->xfer (i2c, &msg, 1); @@ -115,8 +108,8 @@ u8 ves1820_readreg (struct dvb_i2c_bus *i2c, u8 reg) int ret; u8 b0 [] = { 0x00, reg }; u8 b1 [] = { 0 }; - struct i2c_msg msg [] = { { addr: 0x09, flags: 0, buf: b0, len: 2 }, - { addr: 0x09, flags: I2C_M_RD, buf: b1, len: 1 } }; + struct i2c_msg msg [] = { { .addr = 0x09, .flags = 0, .buf = b0, .len = 2 }, + { .addr = 0x09, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; ret = i2c->xfer (i2c, msg, 2); @@ -132,7 +125,7 @@ static int tuner_write (struct dvb_i2c_bus *i2c, u8 addr, u8 data [4]) { int ret; - struct i2c_msg msg = { addr: addr, flags: 0, buf: data, len: 4 }; + struct i2c_msg msg = { .addr = addr, .flags = 0, .buf = data, .len = 4 }; ret = i2c->xfer (i2c, &msg, 1); @@ -178,7 +171,7 @@ static int probe_tuner (struct dvb_frontend *frontend) { struct dvb_i2c_bus *i2c = frontend->i2c; - struct i2c_msg msg = { addr: 0x61, flags: 0, buf: NULL, len: 0 }; + struct i2c_msg msg = { .addr = 0x61, .flags = 0, .buf = NULL, .len = 0 }; if (i2c->xfer(i2c, &msg, 1) == 1) { SET_TUNER(frontend,0); @@ -199,8 +192,8 @@ int ves1820_init (struct dvb_frontend *frontend) u8 b0 [] = { 0xff }; u8 pwm; int i; - struct i2c_msg msg [] = { { addr: 0x50, flags: 0, buf: b0, len: 1 }, - { addr: 0x50, flags: I2C_M_RD, buf: &pwm, len: 1 } }; + struct i2c_msg msg [] = { { .addr = 0x50, .flags = 0, .buf = b0, .len = 1 }, + { .addr = 0x50, .flags = I2C_M_RD, .buf = &pwm, .len = 1 } }; dprintk("VES1820: init chip\n"); diff --git a/drivers/media/radio/miropcm20-radio.c b/drivers/media/radio/miropcm20-radio.c index b31ba21db6ed..743e79a891c2 100644 --- a/drivers/media/radio/miropcm20-radio.c +++ b/drivers/media/radio/miropcm20-radio.c @@ -217,26 +217,25 @@ static int pcm20_ioctl(struct inode *inode, struct file *file, } static struct pcm20_device pcm20_unit = { - freq: 87*16000, - muted: 1, - stereo: 0 + .freq = 87*16000, + .muted = 1, }; static struct file_operations pcm20_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: pcm20_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = pcm20_ioctl, + .llseek = no_llseek, }; static struct video_device pcm20_radio = { - owner: THIS_MODULE, - name: "Miro PCM 20 radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_RTRACK, - fops: &pcm20_fops, - priv: &pcm20_unit + .owner = THIS_MODULE, + .name = "Miro PCM 20 radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_RTRACK, + .fops = &pcm20_fops, + .priv = &pcm20_unit }; static int __init pcm20_init(void) diff --git a/drivers/media/radio/miropcm20-rds.c b/drivers/media/radio/miropcm20-rds.c index 417115be2a0c..de795705ede2 100644 --- a/drivers/media/radio/miropcm20-rds.c +++ b/drivers/media/radio/miropcm20-rds.c @@ -105,10 +105,10 @@ static ssize_t rds_f_read(struct file *file, char *buffer, size_t length, loff_t } static struct file_operations rds_f_ops = { - owner: THIS_MODULE, - read: rds_f_read, - open: rds_f_open, - release: rds_f_release + .owner = THIS_MODULE, + .read = rds_f_read, + .open = rds_f_open, + .release = rds_f_release }; diff --git a/drivers/media/radio/radio-aimslab.c b/drivers/media/radio/radio-aimslab.c index d9c1906f93a3..1929f369d3bd 100644 --- a/drivers/media/radio/radio-aimslab.c +++ b/drivers/media/radio/radio-aimslab.c @@ -300,20 +300,20 @@ static int rt_ioctl(struct inode *inode, struct file *file, static struct rt_device rtrack_unit; static struct file_operations rtrack_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: rt_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = rt_ioctl, + .llseek = no_llseek, }; static struct video_device rtrack_radio= { - owner: THIS_MODULE, - name: "RadioTrack radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_RTRACK, - fops: &rtrack_fops, + .owner = THIS_MODULE, + .name = "RadioTrack radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_RTRACK, + .fops = &rtrack_fops, }; static int __init rtrack_init(void) diff --git a/drivers/media/radio/radio-aztech.c b/drivers/media/radio/radio-aztech.c index 6ea87a0ecf35..e23e3d5f437e 100644 --- a/drivers/media/radio/radio-aztech.c +++ b/drivers/media/radio/radio-aztech.c @@ -252,20 +252,20 @@ static int az_ioctl(struct inode *inode, struct file *file, static struct az_device aztech_unit; static struct file_operations aztech_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: az_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = az_ioctl, + .llseek = no_llseek, }; static struct video_device aztech_radio= { - owner: THIS_MODULE, - name: "Aztech radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_AZTECH, - fops: &aztech_fops, + .owner = THIS_MODULE, + .name = "Aztech radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_AZTECH, + .fops = &aztech_fops, }; static int __init aztech_init(void) diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-cadet.c index 01f99af1846a..8a2de2bb471c 100644 --- a/drivers/media/radio/radio-cadet.c +++ b/drivers/media/radio/radio-cadet.c @@ -524,21 +524,21 @@ static int cadet_release(struct inode *inode, struct file *file) static struct file_operations cadet_fops = { - owner: THIS_MODULE, - open: cadet_open, - release: cadet_release, - read: cadet_read, - ioctl: cadet_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = cadet_open, + .release = cadet_release, + .read = cadet_read, + .ioctl = cadet_ioctl, + .llseek = no_llseek, }; static struct video_device cadet_radio= { - owner: THIS_MODULE, - name: "Cadet radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_CADET, - fops: &cadet_fops, + .owner = THIS_MODULE, + .name = "Cadet radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_CADET, + .fops = &cadet_fops, }; static int isapnp_cadet_probe(void) diff --git a/drivers/media/radio/radio-gemtek-pci.c b/drivers/media/radio/radio-gemtek-pci.c index 47540dba68de..a1b359a05d15 100644 --- a/drivers/media/radio/radio-gemtek-pci.c +++ b/drivers/media/radio/radio-gemtek-pci.c @@ -298,19 +298,19 @@ MODULE_DEVICE_TABLE( pci, gemtek_pci_id ); static u8 mx = 1; static struct file_operations gemtek_pci_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: gemtek_pci_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = gemtek_pci_ioctl, + .llseek = no_llseek, }; static struct video_device vdev_template = { - owner: THIS_MODULE, - name: "Gemtek PCI Radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_GEMTEK, - fops: &gemtek_pci_fops, + .owner = THIS_MODULE, + .name = "Gemtek PCI Radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_GEMTEK, + .fops = &gemtek_pci_fops, }; static int __devinit gemtek_pci_probe( struct pci_dev *pci_dev, const struct pci_device_id *pci_id ) @@ -387,10 +387,10 @@ static void __devexit gemtek_pci_remove( struct pci_dev *pci_dev ) static struct pci_driver gemtek_pci_driver = { - name: "gemtek_pci", -id_table: gemtek_pci_id, - probe: gemtek_pci_probe, - remove: __devexit_p(gemtek_pci_remove), + .name = "gemtek_pci", + .id_table = gemtek_pci_id, + .probe = gemtek_pci_probe, + .remove = __devexit_p(gemtek_pci_remove), }; static int __init gemtek_pci_init_module( void ) diff --git a/drivers/media/radio/radio-gemtek.c b/drivers/media/radio/radio-gemtek.c index a502dbac3957..7a57b7cecb79 100644 --- a/drivers/media/radio/radio-gemtek.c +++ b/drivers/media/radio/radio-gemtek.c @@ -229,20 +229,20 @@ static int gemtek_ioctl(struct inode *inode, struct file *file, static struct gemtek_device gemtek_unit; static struct file_operations gemtek_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: gemtek_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = gemtek_ioctl, + .llseek = no_llseek, }; static struct video_device gemtek_radio= { - owner: THIS_MODULE, - name: "GemTek radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_GEMTEK, - fops: &gemtek_fops, + .owner = THIS_MODULE, + .name = "GemTek radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_GEMTEK, + .fops = &gemtek_fops, }; static int __init gemtek_init(void) diff --git a/drivers/media/radio/radio-maestro.c b/drivers/media/radio/radio-maestro.c index 3c5892289e71..a675e86daa54 100644 --- a/drivers/media/radio/radio-maestro.c +++ b/drivers/media/radio/radio-maestro.c @@ -68,20 +68,20 @@ static int radio_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); static struct file_operations maestro_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: radio_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = radio_ioctl, + .llseek = no_llseek, }; static struct video_device maestro_radio= { - owner: THIS_MODULE, - name: "Maestro radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_SF16MI, - fops: &maestro_fops, + .owner = THIS_MODULE, + .name = "Maestro radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_SF16MI, + .fops = &maestro_fops, }; static struct radio_device diff --git a/drivers/media/radio/radio-maxiradio.c b/drivers/media/radio/radio-maxiradio.c index 16ebd078a06e..8830f0aaf6b1 100644 --- a/drivers/media/radio/radio-maxiradio.c +++ b/drivers/media/radio/radio-maxiradio.c @@ -76,19 +76,19 @@ static int radio_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); static struct file_operations maxiradio_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: radio_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = radio_ioctl, + .llseek = no_llseek, }; static struct video_device maxiradio_radio = { - owner: THIS_MODULE, - name: "Maxi Radio FM2000 radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_SF16MI, - fops: &maxiradio_fops, + .owner = THIS_MODULE, + .name = "Maxi Radio FM2000 radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_SF16MI, + .fops = &maxiradio_fops, }; static struct radio_device @@ -336,10 +336,10 @@ static struct pci_device_id maxiradio_pci_tbl[] __devinitdata = { MODULE_DEVICE_TABLE(pci, maxiradio_pci_tbl); static struct pci_driver maxiradio_driver = { - name: "radio-maxiradio", - id_table: maxiradio_pci_tbl, - probe: maxiradio_init_one, - remove: __devexit_p(maxiradio_remove_one), + .name = "radio-maxiradio", + .id_table = maxiradio_pci_tbl, + .probe = maxiradio_init_one, + .remove = __devexit_p(maxiradio_remove_one), }; int __init maxiradio_radio_init(void) diff --git a/drivers/media/radio/radio-rtrack2.c b/drivers/media/radio/radio-rtrack2.c index 8ec9cbcfd571..8e6fe4d268cc 100644 --- a/drivers/media/radio/radio-rtrack2.c +++ b/drivers/media/radio/radio-rtrack2.c @@ -195,20 +195,20 @@ static int rt_ioctl(struct inode *inode, struct file *file, static struct rt_device rtrack2_unit; static struct file_operations rtrack2_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: rt_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = rt_ioctl, + .llseek = no_llseek, }; static struct video_device rtrack2_radio= { - owner: THIS_MODULE, - name: "RadioTrack II radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_RTRACK2, - fops: &rtrack2_fops, + .owner = THIS_MODULE, + .name = "RadioTrack II radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_RTRACK2, + .fops = &rtrack2_fops, }; static int __init rtrack2_init(void) diff --git a/drivers/media/radio/radio-sf16fmi.c b/drivers/media/radio/radio-sf16fmi.c index c227a24c2b1c..53c8509ba8f2 100644 --- a/drivers/media/radio/radio-sf16fmi.c +++ b/drivers/media/radio/radio-sf16fmi.c @@ -223,20 +223,20 @@ static int fmi_ioctl(struct inode *inode, struct file *file, static struct fmi_device fmi_unit; static struct file_operations fmi_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: fmi_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = fmi_ioctl, + .llseek = no_llseek, }; static struct video_device fmi_radio= { - owner: THIS_MODULE, - name: "SF16FMx radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_SF16MI, - fops: &fmi_fops, + .owner = THIS_MODULE, + .name = "SF16FMx radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_SF16MI, + .fops = &fmi_fops, }; /* ladis: this is my card. does any other types exist? */ diff --git a/drivers/media/radio/radio-terratec.c b/drivers/media/radio/radio-terratec.c index 8ec2682c6a0b..2459573203b9 100644 --- a/drivers/media/radio/radio-terratec.c +++ b/drivers/media/radio/radio-terratec.c @@ -272,20 +272,20 @@ static int tt_ioctl(struct inode *inode, struct file *file, static struct tt_device terratec_unit; static struct file_operations terratec_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: tt_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = tt_ioctl, + .llseek = no_llseek, }; static struct video_device terratec_radio= { - owner: THIS_MODULE, - name: "TerraTec ActiveRadio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_TERRATEC, - fops: &terratec_fops, + .owner = THIS_MODULE, + .name = "TerraTec ActiveRadio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_TERRATEC, + .fops = &terratec_fops, }; static int __init terratec_init(void) diff --git a/drivers/media/radio/radio-trust.c b/drivers/media/radio/radio-trust.c index 6cd0f6aa41a6..8dd4cd2e1dbd 100644 --- a/drivers/media/radio/radio-trust.c +++ b/drivers/media/radio/radio-trust.c @@ -251,20 +251,20 @@ static int tr_ioctl(struct inode *inode, struct file *file, } static struct file_operations trust_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: tr_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = tr_ioctl, + .llseek = no_llseek, }; static struct video_device trust_radio= { - owner: THIS_MODULE, - name: "Trust FM Radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_TRUST, - fops: &trust_fops, + .owner = THIS_MODULE, + .name = "Trust FM Radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_TRUST, + .fops = &trust_fops, }; static int __init trust_init(void) diff --git a/drivers/media/radio/radio-typhoon.c b/drivers/media/radio/radio-typhoon.c index 66bdcc01fd22..f1db827ee708 100644 --- a/drivers/media/radio/radio-typhoon.c +++ b/drivers/media/radio/radio-typhoon.c @@ -251,26 +251,26 @@ static int typhoon_ioctl(struct inode *inode, struct file *file, static struct typhoon_device typhoon_unit = { - iobase: CONFIG_RADIO_TYPHOON_PORT, - curfreq: CONFIG_RADIO_TYPHOON_MUTEFREQ, - mutefreq: CONFIG_RADIO_TYPHOON_MUTEFREQ, + .iobase = CONFIG_RADIO_TYPHOON_PORT, + .curfreq = CONFIG_RADIO_TYPHOON_MUTEFREQ, + .mutefreq = CONFIG_RADIO_TYPHOON_MUTEFREQ, }; static struct file_operations typhoon_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: typhoon_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = typhoon_ioctl, + .llseek = no_llseek, }; static struct video_device typhoon_radio = { - owner: THIS_MODULE, - name: "Typhoon Radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_TYPHOON, - fops: &typhoon_fops, + .owner = THIS_MODULE, + .name = "Typhoon Radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_TYPHOON, + .fops = &typhoon_fops, }; #ifdef CONFIG_RADIO_TYPHOON_PROC_FS diff --git a/drivers/media/radio/radio-zoltrix.c b/drivers/media/radio/radio-zoltrix.c index 8add82dbae6b..2c309c5e8ed1 100644 --- a/drivers/media/radio/radio-zoltrix.c +++ b/drivers/media/radio/radio-zoltrix.c @@ -320,20 +320,20 @@ static struct zol_device zoltrix_unit; static struct file_operations zoltrix_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: zol_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = zol_ioctl, + .llseek = no_llseek, }; static struct video_device zoltrix_radio = { - owner: THIS_MODULE, - name: "Zoltrix Radio Plus", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_ZOLTRIX, - fops: &zoltrix_fops, + .owner = THIS_MODULE, + .name = "Zoltrix Radio Plus", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_ZOLTRIX, + .fops = &zoltrix_fops, }; static int __init zoltrix_init(void) diff --git a/drivers/media/video/adv7175.c b/drivers/media/video/adv7175.c index 0b84b028e455..0936646dbc8d 100644 --- a/drivers/media/video/adv7175.c +++ b/drivers/media/video/adv7175.c @@ -410,30 +410,30 @@ static void adv717x_dec_use(struct i2c_client *client) /* ----------------------------------------------------------------------- */ static struct i2c_driver i2c_driver_adv7175 = { - name: "adv7175", /* name */ - id: I2C_DRIVERID_ADV717x, /* ID */ - flags: I2C_DF_NOTIFY, //I2C_ADV7175, I2C_ADV7175 + 3, - attach_adapter: adv717x_probe, - detach_client: adv717x_detach, - command: adv717x_command, - inc_use: &adv717x_inc_use, - dec_use: &adv717x_dec_use + .name = "adv7175", /* name */ + .id = I2C_DRIVERID_ADV717x, /* ID */ + .flags = I2C_DF_NOTIFY, //I2C_ADV7175, I2C_ADV7175 + 3, + .attach_adapter = adv717x_probe, + .detach_client = adv717x_detach, + .command = adv717x_command, + .inc_use = &adv717x_inc_use, + .dec_use = &adv717x_dec_use }; static struct i2c_driver i2c_driver_adv7176 = { - name: "adv7176", /* name */ - id: I2C_DRIVERID_ADV717x, /* ID */ - flags: I2C_DF_NOTIFY, //I2C_ADV7176, I2C_ADV7176 + 3, - attach_adapter: adv717x_probe, - detach_client: adv717x_detach, - command: adv717x_command, - inc_use: &adv717x_inc_use, - dec_use: &adv717x_dec_use + .name = "adv7176", /* name */ + .id = I2C_DRIVERID_ADV717x, /* ID */ + .flags = I2C_DF_NOTIFY, //I2C_ADV7176, I2C_ADV7176 + 3, + .attach_adapter = adv717x_probe, + .detach_client = adv717x_detach, + .command = adv717x_command, + .inc_use = &adv717x_inc_use, + .dec_use = &adv717x_dec_use }; static struct i2c_client client_template = { - name: "adv7175_client", - driver: &i2c_driver_adv7175 + .name = "adv7175_client", + .driver = &i2c_driver_adv7175 }; static int adv717x_init(void) diff --git a/drivers/media/video/bttv-cards.c b/drivers/media/video/bttv-cards.c index 77397b9eced0..892307b07ea3 100644 --- a/drivers/media/video/bttv-cards.c +++ b/drivers/media/video/bttv-cards.c @@ -208,350 +208,350 @@ static struct CARD { struct tvcard bttv_tvcards[] = { { /* ---- card 0x00 ---------------------------------- */ - name: " *** UNKNOWN/GENERIC *** ", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - muxsel: { 2, 3, 1, 0}, - tuner_type: -1, -},{ - name: "MIRO PCTV", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 15, - muxsel: { 2, 3, 1, 1}, - audiomux: { 2, 0, 0, 0, 10}, - needs_tvaudio: 1, - tuner_type: -1, -},{ - name: "Hauppauge (bt848)", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 7, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0, 1, 2, 3, 4}, - needs_tvaudio: 1, - tuner_type: -1, -},{ - name: "STB, Gateway P/N 6000699 (bt848)", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 7, - muxsel: { 2, 3, 1, 1}, - audiomux: { 4, 0, 2, 3, 1}, - no_msp34xx: 1, - needs_tvaudio: 1, - tuner_type: TUNER_PHILIPS_NTSC, - pll: PLL_28, - has_radio: 1, + .name = " *** UNKNOWN/GENERIC *** ", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .muxsel = { 2, 3, 1, 0}, + .tuner_type = -1, +},{ + .name = "MIRO PCTV", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 15, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 2, 0, 0, 0, 10}, + .needs_tvaudio = 1, + .tuner_type = -1, +},{ + .name = "Hauppauge (bt848)", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 7, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0, 1, 2, 3, 4}, + .needs_tvaudio = 1, + .tuner_type = -1, +},{ + .name = "STB, Gateway P/N 6000699 (bt848)", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 7, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 4, 0, 2, 3, 1}, + .no_msp34xx = 1, + .needs_tvaudio = 1, + .tuner_type = TUNER_PHILIPS_NTSC, + .pll = PLL_28, + .has_radio = 1, },{ /* ---- card 0x04 ---------------------------------- */ - name: "Intel Create and Share PCI/ Smart Video Recorder III", - video_inputs: 4, - audio_inputs: 0, - tuner: -1, - svhs: 2, - gpiomask: 0, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0 }, - needs_tvaudio: 0, - tuner_type: 4, -},{ - name: "Diamond DTV2000", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 3, - muxsel: { 2, 3, 1, 0}, - audiomux: { 0, 1, 0, 1, 3}, - needs_tvaudio: 1, - tuner_type: -1, -},{ - name: "AVerMedia TVPhone", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 3, - muxsel: { 2, 3, 1, 1}, - gpiomask: 0x0f, - audiomux: { 0x0c, 0x04, 0x08, 0x04, 0}, + .name = "Intel Create and Share PCI/ Smart Video Recorder III", + .video_inputs = 4, + .audio_inputs = 0, + .tuner = -1, + .svhs = 2, + .gpiomask = 0, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0 }, + .needs_tvaudio = 0, + .tuner_type = 4, +},{ + .name = "Diamond DTV2000", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 3, + .muxsel = { 2, 3, 1, 0}, + .audiomux = { 0, 1, 0, 1, 3}, + .needs_tvaudio = 1, + .tuner_type = -1, +},{ + .name = "AVerMedia TVPhone", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 3, + .muxsel = { 2, 3, 1, 1}, + .gpiomask = 0x0f, + .audiomux = { 0x0c, 0x04, 0x08, 0x04, 0}, /* 0x04 for some cards ?? */ - needs_tvaudio: 1, - tuner_type: -1, - audio_hook: avermedia_tvphone_audio, -},{ - name: "MATRIX-Vision MV-Delta", - video_inputs: 5, - audio_inputs: 1, - tuner: -1, - svhs: 3, - gpiomask: 0, - muxsel: { 2, 3, 1, 0, 0}, - audiomux: {0 }, - needs_tvaudio: 1, - tuner_type: -1, + .needs_tvaudio = 1, + .tuner_type = -1, + .audio_hook = avermedia_tvphone_audio, +},{ + .name = "MATRIX-Vision MV-Delta", + .video_inputs = 5, + .audio_inputs = 1, + .tuner = -1, + .svhs = 3, + .gpiomask = 0, + .muxsel = { 2, 3, 1, 0, 0}, + .audiomux = {0 }, + .needs_tvaudio = 1, + .tuner_type = -1, },{ /* ---- card 0x08 ---------------------------------- */ - name: "Lifeview FlyVideo II (Bt848) LR26", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0xc00, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0, 0xc00, 0x800, 0x400, 0xc00, 0}, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: -1, -},{ - name: "IMS/IXmicro TurboTV", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 3, - muxsel: { 2, 3, 1, 1}, - audiomux: { 1, 1, 2, 3, 0}, - needs_tvaudio: 0, - pll: PLL_28, - tuner_type: TUNER_TEMIC_PAL, -},{ - name: "Hauppauge (bt878)", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x0f, /* old: 7 */ - muxsel: { 2, 0, 1, 1}, - audiomux: { 0, 1, 2, 3, 4}, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: -1, -},{ - name: "MIRO PCTV pro", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x3014f, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0x20001,0x10001, 0, 0,10}, - needs_tvaudio: 1, - tuner_type: -1, + .name = "Lifeview FlyVideo II (Bt848) LR26", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xc00, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0, 0xc00, 0x800, 0x400, 0xc00, 0}, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = -1, +},{ + .name = "IMS/IXmicro TurboTV", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 3, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 1, 1, 2, 3, 0}, + .needs_tvaudio = 0, + .pll = PLL_28, + .tuner_type = TUNER_TEMIC_PAL, +},{ + .name = "Hauppauge (bt878)", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x0f, /* old: 7 */ + .muxsel = { 2, 0, 1, 1}, + .audiomux = { 0, 1, 2, 3, 4}, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = -1, +},{ + .name = "MIRO PCTV pro", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x3014f, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0x20001,0x10001, 0, 0,10}, + .needs_tvaudio = 1, + .tuner_type = -1, },{ /* ---- card 0x0c ---------------------------------- */ - name: "ADS Technologies Channel Surfer TV (bt848)", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 15, - muxsel: { 2, 3, 1, 1}, - audiomux: { 13, 14, 11, 7, 0, 0}, - needs_tvaudio: 1, - tuner_type: -1, -},{ - name: "AVerMedia TVCapture 98", - video_inputs: 3, - audio_inputs: 4, - tuner: 0, - svhs: 2, - gpiomask: 15, - muxsel: { 2, 3, 1, 1}, - audiomux: { 13, 14, 11, 7, 0, 0}, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: TUNER_PHILIPS_PAL, -},{ - name: "Aimslab Video Highway Xtreme (VHX)", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 7, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0, 2, 1, 3, 4}, /* old: { 0, 1, 2, 3, 4} */ - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: -1, -},{ - name: "Zoltrix TV-Max", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 15, - muxsel: { 2, 3, 1, 1}, - audiomux: {0 , 0, 1 , 0, 10}, - needs_tvaudio: 1, - tuner_type: -1, + .name = "ADS Technologies Channel Surfer TV (bt848)", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 15, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 13, 14, 11, 7, 0, 0}, + .needs_tvaudio = 1, + .tuner_type = -1, +},{ + .name = "AVerMedia TVCapture 98", + .video_inputs = 3, + .audio_inputs = 4, + .tuner = 0, + .svhs = 2, + .gpiomask = 15, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 13, 14, 11, 7, 0, 0}, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = TUNER_PHILIPS_PAL, +},{ + .name = "Aimslab Video Highway Xtreme (VHX)", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 7, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0, 2, 1, 3, 4}, /* old: { 0, 1, 2, 3, 4} */ + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = -1, +},{ + .name = "Zoltrix TV-Max", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 15, + .muxsel = { 2, 3, 1, 1}, + .audiomux = {0 , 0, 1 , 0, 10}, + .needs_tvaudio = 1, + .tuner_type = -1, },{ /* ---- card 0x10 ---------------------------------- */ - name: "Prolink Pixelview PlayTV (bt878)", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x01fe00, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0x01c000, 0, 0x018000, 0x014000, 0x002000, 0 }, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: -1, -},{ - name: "Leadtek WinView 601", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x8300f8, - muxsel: { 2, 3, 1, 1,0}, - audiomux: { 0x4fa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007}, - needs_tvaudio: 1, - tuner_type: -1, - audio_hook: winview_audio, - has_radio: 1, -},{ - name: "AVEC Intercapture", - video_inputs: 3, - audio_inputs: 2, - tuner: 0, - svhs: 2, - gpiomask: 0, - muxsel: {2, 3, 1, 1}, - audiomux: {1, 0, 0, 0, 0}, - needs_tvaudio: 1, - tuner_type: -1, -},{ - name: "Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)", - video_inputs: 4, - audio_inputs: 1, - tuner: -1, - svhs: -1, - gpiomask: 0x8dff00, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0 }, - no_msp34xx: 1, - tuner_type: -1, + .name = "Prolink Pixelview PlayTV (bt878)", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x01fe00, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0x01c000, 0, 0x018000, 0x014000, 0x002000, 0 }, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = -1, +},{ + .name = "Leadtek WinView 601", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x8300f8, + .muxsel = { 2, 3, 1, 1,0}, + .audiomux = { 0x4fa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007,0xcfa007}, + .needs_tvaudio = 1, + .tuner_type = -1, + .audio_hook = winview_audio, + .has_radio = 1, +},{ + .name = "AVEC Intercapture", + .video_inputs = 3, + .audio_inputs = 2, + .tuner = 0, + .svhs = 2, + .gpiomask = 0, + .muxsel = {2, 3, 1, 1}, + .audiomux = {1, 0, 0, 0, 0}, + .needs_tvaudio = 1, + .tuner_type = -1, +},{ + .name = "Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = -1, + .svhs = -1, + .gpiomask = 0x8dff00, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0 }, + .no_msp34xx = 1, + .tuner_type = -1, },{ /* ---- card 0x14 ---------------------------------- */ - name: "CEI Raffles Card", - video_inputs: 3, - audio_inputs: 3, - tuner: 0, - svhs: 2, - muxsel: {2, 3, 1, 1}, - tuner_type: -1, -},{ - name: "Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50", - video_inputs: 4, - audio_inputs: 2, // tuner, line in - tuner: 0, - svhs: 2, - gpiomask: 0x1800, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0, 0x800, 0x1000, 0x1000, 0x1800}, - pll: PLL_28, - tuner_type: TUNER_PHILIPS_PAL_I, -},{ - name: "Askey CPH050/ Phoebe Tv Master + FM", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0xc00, - muxsel: { 2, 3, 1, 1}, - audiomux: {0, 1, 0x800, 0x400, 0xc00, 0}, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: -1, -},{ - name: "Modular Technology MM205 PCTV, bt878", - video_inputs: 2, - audio_inputs: 1, - tuner: 0, - svhs: -1, - gpiomask: 7, - muxsel: { 2, 3 }, - audiomux: { 0, 0, 0, 0, 0 }, - no_msp34xx: 1, - pll: PLL_28, - tuner_type: TUNER_ALPS_TSBB5_PAL_I, + .name = "CEI Raffles Card", + .video_inputs = 3, + .audio_inputs = 3, + .tuner = 0, + .svhs = 2, + .muxsel = {2, 3, 1, 1}, + .tuner_type = -1, +},{ + .name = "Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50", + .video_inputs = 4, + .audio_inputs = 2, // tuner, line in + .tuner = 0, + .svhs = 2, + .gpiomask = 0x1800, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, + .pll = PLL_28, + .tuner_type = TUNER_PHILIPS_PAL_I, +},{ + .name = "Askey CPH050/ Phoebe Tv Master + FM", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xc00, + .muxsel = { 2, 3, 1, 1}, + .audiomux = {0, 1, 0x800, 0x400, 0xc00, 0}, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = -1, +},{ + .name = "Modular Technology MM205 PCTV, bt878", + .video_inputs = 2, + .audio_inputs = 1, + .tuner = 0, + .svhs = -1, + .gpiomask = 7, + .muxsel = { 2, 3 }, + .audiomux = { 0, 0, 0, 0, 0 }, + .no_msp34xx = 1, + .pll = PLL_28, + .tuner_type = TUNER_ALPS_TSBB5_PAL_I, },{ /* ---- card 0x18 ---------------------------------- */ - name: "Askey CPH05X/06X (bt878) [many vendors]", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0xe00, - muxsel: { 2, 3, 1, 1}, - audiomux: {0x400, 0x400, 0x400, 0x400, 0xc00}, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: -1, -},{ - name: "Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x1f0fff, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0x20000, 0x30000, 0x10000, 0, 0x40000}, - needs_tvaudio: 0, - tuner_type: TUNER_PHILIPS_PAL, - audio_hook: terratv_audio, -},{ - name: "Hauppauge WinCam newer (bt878)", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 3, - gpiomask: 7, - muxsel: { 2, 0, 1, 1}, - audiomux: { 0, 1, 2, 3, 4}, - needs_tvaudio: 1, - tuner_type: -1, -},{ - name: "Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50", - video_inputs: 4, - audio_inputs: 2, - tuner: 0, - svhs: 2, - gpiomask: 0x1800, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0, 0x800, 0x1000, 0x1000, 0x1800}, - pll: PLL_28, - tuner_type: TUNER_PHILIPS_SECAM, + .name = "Askey CPH05X/06X (bt878) [many vendors]", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xe00, + .muxsel = { 2, 3, 1, 1}, + .audiomux = {0x400, 0x400, 0x400, 0x400, 0xc00}, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = -1, +},{ + .name = "Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x1f0fff, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000}, + .needs_tvaudio = 0, + .tuner_type = TUNER_PHILIPS_PAL, + .audio_hook = terratv_audio, +},{ + .name = "Hauppauge WinCam newer (bt878)", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 3, + .gpiomask = 7, + .muxsel = { 2, 0, 1, 1}, + .audiomux = { 0, 1, 2, 3, 4}, + .needs_tvaudio = 1, + .tuner_type = -1, +},{ + .name = "Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50", + .video_inputs = 4, + .audio_inputs = 2, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x1800, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, + .pll = PLL_28, + .tuner_type = TUNER_PHILIPS_SECAM, },{ /* ---- card 0x1c ---------------------------------- */ - name: "Terratec TerraTV+ Version 1.1 (bt878)", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x1f0fff, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0x20000, 0x30000, 0x10000, 0x00000, 0x40000}, - needs_tvaudio: 0, - tuner_type: TUNER_PHILIPS_PAL, - audio_hook: terratv_audio, + .name = "Terratec TerraTV+ Version 1.1 (bt878)", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x1f0fff, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0x20000, 0x30000, 0x10000, 0x00000, 0x40000}, + .needs_tvaudio = 0, + .tuner_type = TUNER_PHILIPS_PAL, + .audio_hook = terratv_audio, /* GPIO wiring: External 20 pin connector (for Active Radio Upgrade board) gpio00: i2c-sda @@ -585,71 +585,71 @@ struct tvcard bttv_tvcards[] = { },{ /* Jannik Fritsch <jannik@techfak.uni-bielefeld.de> */ - name: "Imagenation PXC200", - video_inputs: 5, - audio_inputs: 1, - tuner: -1, - svhs: 1, /* was: 4 */ - gpiomask: 0, - muxsel: { 2, 3, 1, 0, 0}, - audiomux: { 0 }, - needs_tvaudio: 1, - tuner_type: -1, -},{ - name: "Lifeview FlyVideo 98 LR50", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x1800, //0x8dfe00 - muxsel: { 2, 3, 1, 1}, - audiomux: { 0, 0x0800, 0x1000, 0x1000, 0x1800, 0 }, - pll: PLL_28, - tuner_type: -1, -},{ - name: "Formac iProTV", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 1, - muxsel: { 2, 3, 1, 1}, - audiomux: { 1, 0, 0, 0, 0 }, - tuner_type: -1, + .name = "Imagenation PXC200", + .video_inputs = 5, + .audio_inputs = 1, + .tuner = -1, + .svhs = 1, /* was: 4 */ + .gpiomask = 0, + .muxsel = { 2, 3, 1, 0, 0}, + .audiomux = { 0 }, + .needs_tvaudio = 1, + .tuner_type = -1, +},{ + .name = "Lifeview FlyVideo 98 LR50", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x1800, //0x8dfe00 + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0, 0x0800, 0x1000, 0x1000, 0x1800, 0 }, + .pll = PLL_28, + .tuner_type = -1, +},{ + .name = "Formac iProTV", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 1, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 1, 0, 0, 0, 0 }, + .tuner_type = -1, },{ /* ---- card 0x20 ---------------------------------- */ - name: "Intel Create and Share PCI/ Smart Video Recorder III", - video_inputs: 4, - audio_inputs: 0, - tuner: -1, - svhs: 2, - gpiomask: 0, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0 }, - needs_tvaudio: 0, - tuner_type: 4, -},{ - name: "Terratec TerraTValue Version Bt878", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0xffff00, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0x500, 0, 0x300, 0x900, 0x900}, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: TUNER_PHILIPS_PAL, -},{ - name: "Leadtek WinFast 2000/ WinFast 2000 XP", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0xc33000, - muxsel: { 2, 3, 1, 1, 0}, // TV, CVid, SVid, CVid over SVid connector - audiomux: { 0x422000,0x1000,0x0000,0x620000,0x800000}, + .name = "Intel Create and Share PCI/ Smart Video Recorder III", + .video_inputs = 4, + .audio_inputs = 0, + .tuner = -1, + .svhs = 2, + .gpiomask = 0, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0 }, + .needs_tvaudio = 0, + .tuner_type = 4, +},{ + .name = "Terratec TerraTValue Version Bt878", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xffff00, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0x500, 0, 0x300, 0x900, 0x900}, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = TUNER_PHILIPS_PAL, +},{ + .name = "Leadtek WinFast 2000/ WinFast 2000 XP", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xc33000, + .muxsel = { 2, 3, 1, 1, 0}, // TV, CVid, SVid, CVid over SVid connector + .audiomux = { 0x422000,0x1000,0x0000,0x620000,0x800000}, /* Audio Routing for "WinFast 2000 XP" (no tv stereo !) gpio23 -- hef4052:nEnable (0x800000) gpio12 -- hef4052:A1 @@ -661,216 +661,216 @@ struct tvcard bttv_tvcards[] = { Note: There exists another variant "Winfast 2000" with tv stereo !? Note: eeprom only contains FF and pci subsystem id 107d:6606 */ - needs_tvaudio: 0, - pll: PLL_28, - has_radio: 1, - tuner_type: 5, // default for now, gpio reads BFFF06 for Pal bg+dk - audio_hook: winfast2000_audio, -},{ - name: "Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II", - video_inputs: 4, - audio_inputs: 3, - tuner: 0, - svhs: 2, - gpiomask: 0x1800, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0, 0x800, 0x1000, 0x1000, 0x1800}, - pll: PLL_28, - tuner_type: -1, + .needs_tvaudio = 0, + .pll = PLL_28, + .has_radio = 1, + .tuner_type = 5, // default for now, gpio reads BFFF06 for Pal bg+dk + .audio_hook = winfast2000_audio, +},{ + .name = "Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II", + .video_inputs = 4, + .audio_inputs = 3, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x1800, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800}, + .pll = PLL_28, + .tuner_type = -1, },{ /* ---- card 0x24 ---------------------------------- */ - name: "Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner", - video_inputs: 4, - audio_inputs: 3, - tuner: 0, - svhs: 2, - gpiomask: 0x1800, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, - pll: PLL_28, - tuner_type: -1, - has_radio: 1, -},{ - name: "Prolink PixelView PlayTV pro", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0xff, - muxsel: { 2, 3, 1, 1 }, - audiomux: { 0x21, 0x20, 0x24, 0x2c, 0x29, 0x29 }, - no_msp34xx: 1, - pll: PLL_28, - tuner_type: -1, -},{ - name: "Askey CPH06X TView99", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x551e00, - muxsel: { 2, 3, 1, 0}, - audiomux: { 0x551400, 0x551200, 0, 0, 0x551c00, 0x551200 }, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: -1, -},{ - name: "Pinnacle PCTV Studio/Rave", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x03000F, - muxsel: { 2, 3, 1, 1}, - audiomux: { 2, 0, 0, 0, 1}, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: -1, + .name = "Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner", + .video_inputs = 4, + .audio_inputs = 3, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x1800, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, + .pll = PLL_28, + .tuner_type = -1, + .has_radio = 1, +},{ + .name = "Prolink PixelView PlayTV pro", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xff, + .muxsel = { 2, 3, 1, 1 }, + .audiomux = { 0x21, 0x20, 0x24, 0x2c, 0x29, 0x29 }, + .no_msp34xx = 1, + .pll = PLL_28, + .tuner_type = -1, +},{ + .name = "Askey CPH06X TView99", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x551e00, + .muxsel = { 2, 3, 1, 0}, + .audiomux = { 0x551400, 0x551200, 0, 0, 0x551c00, 0x551200 }, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = -1, +},{ + .name = "Pinnacle PCTV Studio/Rave", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x03000F, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 2, 0, 0, 0, 1}, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = -1, },{ /* ---- card 0x28 ---------------------------------- */ - name: "STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 7, - muxsel: { 2, 3, 1, 1}, - audiomux: { 4, 0, 2, 3, 1}, - no_msp34xx: 1, - needs_tvaudio: 1, - tuner_type: TUNER_PHILIPS_NTSC, - pll: PLL_28, - has_radio: 1, -},{ - name: "AVerMedia TVPhone 98", - video_inputs: 3, - audio_inputs: 4, - tuner: 0, - svhs: 2, - gpiomask: 15, - muxsel: { 2, 3, 1, 1}, - audiomux: { 13, 4, 11, 7, 0, 0}, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: -1, - has_radio: 1, -},{ - name: "ProVideo PV951", /* pic16c54 */ - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0, 0, 0, 0, 0}, - needs_tvaudio: 1, - no_msp34xx: 1, - pll: PLL_28, - tuner_type: 1, -},{ - name: "Little OnAir TV", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0xe00b, - muxsel: {2, 3, 1, 1}, - audiomux: {0xff9ff6, 0xff9ff6, 0xff1ff7, 0, 0xff3ffc}, - no_msp34xx: 1, - tuner_type: -1, + .name = "STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 7, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 4, 0, 2, 3, 1}, + .no_msp34xx = 1, + .needs_tvaudio = 1, + .tuner_type = TUNER_PHILIPS_NTSC, + .pll = PLL_28, + .has_radio = 1, +},{ + .name = "AVerMedia TVPhone 98", + .video_inputs = 3, + .audio_inputs = 4, + .tuner = 0, + .svhs = 2, + .gpiomask = 15, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 13, 4, 11, 7, 0, 0}, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = -1, + .has_radio = 1, +},{ + .name = "ProVideo PV951", /* pic16c54 */ + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0, 0, 0, 0, 0}, + .needs_tvaudio = 1, + .no_msp34xx = 1, + .pll = PLL_28, + .tuner_type = 1, +},{ + .name = "Little OnAir TV", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xe00b, + .muxsel = {2, 3, 1, 1}, + .audiomux = {0xff9ff6, 0xff9ff6, 0xff1ff7, 0, 0xff3ffc}, + .no_msp34xx = 1, + .tuner_type = -1, },{ /* ---- card 0x2c ---------------------------------- */ - name: "Sigma TVII-FM", - video_inputs: 2, - audio_inputs: 1, - tuner: 0, - svhs: -1, - gpiomask: 3, - muxsel: {2, 3, 1, 1}, - audiomux: {1, 1, 0, 2, 3}, - no_msp34xx: 1, - pll: PLL_NONE, - tuner_type: -1, -},{ - name: "MATRIX-Vision MV-Delta 2", - video_inputs: 5, - audio_inputs: 1, - tuner: -1, - svhs: 3, - gpiomask: 0, - muxsel: { 2, 3, 1, 0, 0}, - audiomux: {0 }, - no_msp34xx: 1, - pll: PLL_28, - tuner_type: -1, -},{ - name: "Zoltrix Genie TV/FM", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0xbcf03f, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0xbc803f, 0xbc903f, 0xbcb03f, 0, 0xbcb03f}, - no_msp34xx: 1, - pll: PLL_28, - tuner_type: 21, -},{ - name: "Terratec TV/Radio+", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x70000, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0x20000, 0x30000, 0x10000, 0, 0x40000, 0x20000 }, - needs_tvaudio: 1, - no_msp34xx: 1, - pll: PLL_35, - tuner_type: 1, - has_radio: 1, + .name = "Sigma TVII-FM", + .video_inputs = 2, + .audio_inputs = 1, + .tuner = 0, + .svhs = -1, + .gpiomask = 3, + .muxsel = {2, 3, 1, 1}, + .audiomux = {1, 1, 0, 2, 3}, + .no_msp34xx = 1, + .pll = PLL_NONE, + .tuner_type = -1, +},{ + .name = "MATRIX-Vision MV-Delta 2", + .video_inputs = 5, + .audio_inputs = 1, + .tuner = -1, + .svhs = 3, + .gpiomask = 0, + .muxsel = { 2, 3, 1, 0, 0}, + .audiomux = {0 }, + .no_msp34xx = 1, + .pll = PLL_28, + .tuner_type = -1, +},{ + .name = "Zoltrix Genie TV/FM", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xbcf03f, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0xbc803f, 0xbc903f, 0xbcb03f, 0, 0xbcb03f}, + .no_msp34xx = 1, + .pll = PLL_28, + .tuner_type = 21, +},{ + .name = "Terratec TV/Radio+", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x70000, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0x20000, 0x30000, 0x10000, 0, 0x40000, 0x20000 }, + .needs_tvaudio = 1, + .no_msp34xx = 1, + .pll = PLL_35, + .tuner_type = 1, + .has_radio = 1, },{ /* ---- card 0x30 ---------------------------------- */ - name: "Askey CPH03x/ Dynalink Magic TView", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 15, - muxsel: { 2, 3, 1, 1}, - audiomux: {2,0,0,0,1}, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: -1, -},{ - name: "IODATA GV-BCTV3/PCI", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x010f00, - muxsel: {2, 3, 0, 0}, - audiomux: {0x10000, 0, 0x10000, 0, 0, 0}, - no_msp34xx: 1, - pll: PLL_28, - tuner_type: TUNER_ALPS_TSHC6_NTSC, - audio_hook: gvbctv3pci_audio, -},{ - name: "Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 3, - gpiomask: 0xAA0000, - muxsel: { 2,3,1,1 }, - audiomux: { 0x20000, 0, 0x80000, 0x80000, 0xa8000, 0x46000 }, - no_msp34xx: 1, - pll: PLL_28, - tuner_type: TUNER_PHILIPS_PAL_I, + .name = "Askey CPH03x/ Dynalink Magic TView", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 15, + .muxsel = { 2, 3, 1, 1}, + .audiomux = {2,0,0,0,1}, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = -1, +},{ + .name = "IODATA GV-BCTV3/PCI", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x010f00, + .muxsel = {2, 3, 0, 0}, + .audiomux = {0x10000, 0, 0x10000, 0, 0, 0}, + .no_msp34xx = 1, + .pll = PLL_28, + .tuner_type = TUNER_ALPS_TSHC6_NTSC, + .audio_hook = gvbctv3pci_audio, +},{ + .name = "Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 3, + .gpiomask = 0xAA0000, + .muxsel = { 2,3,1,1 }, + .audiomux = { 0x20000, 0, 0x80000, 0x80000, 0xa8000, 0x46000 }, + .no_msp34xx = 1, + .pll = PLL_28, + .tuner_type = TUNER_PHILIPS_PAL_I, /* GPIO wiring: (different from Rev.4C !) GPIO17: U4.A0 (first hef4052bt) GPIO19: U4.A1 @@ -881,28 +881,28 @@ struct tvcard bttv_tvcards[] = { Note: At i2c=0x8a is a Bt832 chip, which changes to 0x88 after being reset via GPIO22 */ },{ - name: "Eagle Wireless Capricorn2 (bt878A)", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 7, - muxsel: { 2, 0, 1, 1}, - audiomux: { 0, 1, 2, 3, 4}, - pll: PLL_28, - tuner_type: -1 /* TUNER_ALPS_TMDH2_NTSC */, + .name = "Eagle Wireless Capricorn2 (bt878A)", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 7, + .muxsel = { 2, 0, 1, 1}, + .audiomux = { 0, 1, 2, 3, 4}, + .pll = PLL_28, + .tuner_type = -1 /* TUNER_ALPS_TMDH2_NTSC */, },{ /* ---- card 0x34 ---------------------------------- */ /* David Härdeman <david@2gen.com> */ - name: "Pinnacle PCTV Studio Pro", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x03000F, - muxsel: { 2, 3, 1, 1}, - audiomux: { 1, 0x10001, 0, 0, 10}, + .name = "Pinnacle PCTV Studio Pro", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x03000F, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 1, 0x10001, 0, 0, 10}, /* sound path (5 sources): MUX1 (mask 0x03), Enable Pin 0x08 (0=enable, 1=disable) 0= ext. Audio IN @@ -912,273 +912,273 @@ struct tvcard bttv_tvcards[] = { MUX2 (mask 0x30000): 0,2,3= from MSP34xx 1= FM stereo Radio from Tuner */ - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: -1, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = -1, },{ /* Claas Langbehn <claas@bigfoot.com>, Sven Grothklags <sven@upb.de> */ - name: "Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS", - video_inputs: 3, - audio_inputs: 3, - tuner: 0, - svhs: 2, - gpiomask: 0x1c, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0, 0, 0x10, 8, 4 }, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: TUNER_PHILIPS_PAL_I, - has_radio: 1, + .name = "Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS", + .video_inputs = 3, + .audio_inputs = 3, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x1c, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0, 0, 0x10, 8, 4 }, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = TUNER_PHILIPS_PAL_I, + .has_radio = 1, },{ /* Tim Röstermundt <rosterm@uni-muenster.de> in de.comp.os.unix.linux.hardware: options bttv card=0 pll=1 radio=1 gpiomask=0x18e0 audiomux=0x44c71f,0x44d71f,0,0x44d71f,0x44dfff options tuner type=5 */ - name: "Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x18e0, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0x0000,0x0800,0x1000,0x1000,0x18e0 }, + .name = "Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x18e0, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x18e0 }, /* For cards with tda9820/tda9821: 0x0000: Tuner normal stereo 0x0080: Tuner A2 SAP (second audio program = Zweikanalton) 0x0880: Tuner A2 stereo */ - pll: PLL_28, - tuner_type: -1, + .pll = PLL_28, + .tuner_type = -1, },{ /* Miguel Angel Alvarez <maacruz@navegalia.com> old Easy TV BT848 version (model CPH031) */ - name: "Askey CPH031/ BESTBUY Easy TV", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0xF, - muxsel: { 2, 3, 1, 0}, - audiomux: { 2, 0, 0, 0, 10}, - needs_tvaudio: 0, - pll: PLL_28, - tuner_type: TUNER_TEMIC_PAL, + .name = "Askey CPH031/ BESTBUY Easy TV", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xF, + .muxsel = { 2, 3, 1, 0}, + .audiomux = { 2, 0, 0, 0, 10}, + .needs_tvaudio = 0, + .pll = PLL_28, + .tuner_type = TUNER_TEMIC_PAL, },{ /* ---- card 0x38 ---------------------------------- */ /* Gordon Heydon <gjheydon@bigfoot.com ('98) */ - name: "Lifeview FlyVideo 98FM LR50", - video_inputs: 4, - audio_inputs: 3, - tuner: 0, - svhs: 2, - gpiomask: 0x1800, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, - pll: PLL_28, - tuner_type: 5, + .name = "Lifeview FlyVideo 98FM LR50", + .video_inputs = 4, + .audio_inputs = 3, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x1800, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0, 0x800, 0x1000, 0x1000, 0x1800, 0 }, + .pll = PLL_28, + .tuner_type = 5, },{ /* This is the ultimate cheapo capture card * just a BT848A on a small PCB! * Steve Hosgood <steve@equiinet.com> */ - name: "GrandTec 'Grand Video Capture' (Bt848)", - video_inputs: 2, - audio_inputs: 0, - tuner: -1, - svhs: 1, - gpiomask: 0, - muxsel: { 3, 1 }, - audiomux: { 0 }, - needs_tvaudio: 0, - no_msp34xx: 1, - pll: PLL_35, - tuner_type: -1, + .name = "GrandTec 'Grand Video Capture' (Bt848)", + .video_inputs = 2, + .audio_inputs = 0, + .tuner = -1, + .svhs = 1, + .gpiomask = 0, + .muxsel = { 3, 1 }, + .audiomux = { 0 }, + .needs_tvaudio = 0, + .no_msp34xx = 1, + .pll = PLL_35, + .tuner_type = -1, },{ /* Daniel Herrington <daniel.herrington@home.com> */ - name: "Askey CPH060/ Phoebe TV Master Only (No FM)", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0xe00, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0x400, 0x400, 0x400, 0x400, 0x800, 0x400 }, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: TUNER_TEMIC_4036FY5_NTSC, + .name = "Askey CPH060/ Phoebe TV Master Only (No FM)", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xe00, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0x400, 0x400, 0x400, 0x400, 0x800, 0x400 }, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = TUNER_TEMIC_4036FY5_NTSC, },{ /* Matti Mottus <mottus@physic.ut.ee> */ - name: "Askey CPH03x TV Capturer", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x03000F, - muxsel: { 2, 3, 1, 0}, - audiomux: { 2,0,0,0,1 }, - pll: PLL_28, - tuner_type: 0, + .name = "Askey CPH03x TV Capturer", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x03000F, + .muxsel = { 2, 3, 1, 0}, + .audiomux = { 2,0,0,0,1 }, + .pll = PLL_28, + .tuner_type = 0, },{ /* ---- card 0x3c ---------------------------------- */ /* Philip Blundell <philb@gnu.org> */ - name: "Modular Technology MM100PCTV", - video_inputs: 2, - audio_inputs: 2, - tuner: 0, - svhs: -1, - gpiomask: 11, - muxsel: { 2, 3, 1, 1}, - audiomux: { 2, 0, 0, 1, 8}, - pll: PLL_35, - tuner_type: TUNER_TEMIC_PAL, + .name = "Modular Technology MM100PCTV", + .video_inputs = 2, + .audio_inputs = 2, + .tuner = 0, + .svhs = -1, + .gpiomask = 11, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 2, 0, 0, 1, 8}, + .pll = PLL_35, + .tuner_type = TUNER_TEMIC_PAL, },{ /* Adrian Cox <adrian@humboldt.co.uk */ - name: "AG Electronics GMV1", - video_inputs: 2, - audio_inputs: 0, - tuner: -1, - svhs: 1, - gpiomask: 0xF, - muxsel: { 2, 2}, - audiomux: { }, - no_msp34xx: 1, - needs_tvaudio: 0, - pll: PLL_28, - tuner_type: -1, + .name = "AG Electronics GMV1", + .video_inputs = 2, + .audio_inputs = 0, + .tuner = -1, + .svhs = 1, + .gpiomask = 0xF, + .muxsel = { 2, 2}, + .audiomux = { }, + .no_msp34xx = 1, + .needs_tvaudio = 0, + .pll = PLL_28, + .tuner_type = -1, },{ /* Miguel Angel Alvarez <maacruz@navegalia.com> new Easy TV BT878 version (model CPH061) special thanks to Informatica Mieres for providing the card */ - name: "Askey CPH061/ BESTBUY Easy TV (bt878)", - video_inputs: 3, - audio_inputs: 2, - tuner: 0, - svhs: 2, - gpiomask: 0xFF, - muxsel: { 2, 3, 1, 0}, - audiomux: { 1, 0, 4, 4, 9}, - needs_tvaudio: 0, - pll: PLL_28, - tuner_type: TUNER_PHILIPS_PAL, + .name = "Askey CPH061/ BESTBUY Easy TV (bt878)", + .video_inputs = 3, + .audio_inputs = 2, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xFF, + .muxsel = { 2, 3, 1, 0}, + .audiomux = { 1, 0, 4, 4, 9}, + .needs_tvaudio = 0, + .pll = PLL_28, + .tuner_type = TUNER_PHILIPS_PAL, },{ /* Lukas Gebauer <geby@volny.cz> */ - name: "ATI TV-Wonder", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0xf03f, - muxsel: { 2, 3, 1, 0 }, - audiomux: { 0xbffe, 0, 0xbfff, 0, 0xbffe}, - pll: PLL_28, - tuner_type: TUNER_TEMIC_4006FN5_MULTI_PAL, + .name = "ATI TV-Wonder", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xf03f, + .muxsel = { 2, 3, 1, 0 }, + .audiomux = { 0xbffe, 0, 0xbfff, 0, 0xbffe}, + .pll = PLL_28, + .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, },{ /* ---- card 0x40 ---------------------------------- */ /* Lukas Gebauer <geby@volny.cz> */ - name: "ATI TV-Wonder VE", - video_inputs: 2, - audio_inputs: 1, - tuner: 0, - svhs: -1, - gpiomask: 1, - muxsel: { 2, 3, 0, 1}, - audiomux: { 0, 0, 1, 0, 0}, - no_msp34xx: 1, - pll: PLL_28, - tuner_type: TUNER_TEMIC_4006FN5_MULTI_PAL, + .name = "ATI TV-Wonder VE", + .video_inputs = 2, + .audio_inputs = 1, + .tuner = 0, + .svhs = -1, + .gpiomask = 1, + .muxsel = { 2, 3, 0, 1}, + .audiomux = { 0, 0, 1, 0, 0}, + .no_msp34xx = 1, + .pll = PLL_28, + .tuner_type = TUNER_TEMIC_4006FN5_MULTI_PAL, },{ /* DeeJay <deejay@westel900.net (2000S) */ - name: "Lifeview FlyVideo 2000S LR90", - video_inputs: 3, - audio_inputs: 3, - tuner: 0, - svhs: 2, - gpiomask: 0x18e0, - muxsel: { 2, 3, 0, 1}, + .name = "Lifeview FlyVideo 2000S LR90", + .video_inputs = 3, + .audio_inputs = 3, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x18e0, + .muxsel = { 2, 3, 0, 1}, /* Radio changed from 1e80 to 0x800 to make FlyVideo2000S in .hu happy (gm)*/ /* -dk-???: set mute=0x1800 for tda9874h daughterboard */ - audiomux: { 0x0000,0x0800,0x1000,0x1000,0x1800, 0x1080 }, - audio_hook: fv2000s_audio, - no_msp34xx: 1, - no_tda9875: 1, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: 5, -},{ - name: "Terratec TValueRadio", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0xffff00, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0x500, 0x500, 0x300, 0x900, 0x900}, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: TUNER_PHILIPS_PAL, - has_radio: 1, + .audiomux = { 0x0000,0x0800,0x1000,0x1000,0x1800, 0x1080 }, + .audio_hook = fv2000s_audio, + .no_msp34xx = 1, + .no_tda9875 = 1, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = 5, +},{ + .name = "Terratec TValueRadio", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0xffff00, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0x500, 0x500, 0x300, 0x900, 0x900}, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = TUNER_PHILIPS_PAL, + .has_radio = 1, },{ /* TANAKA Kei <peg00625@nifty.com> */ - name: "IODATA GV-BCTV4/PCI", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x010f00, - muxsel: {2, 3, 0, 0}, - audiomux: {0x10000, 0, 0x10000, 0, 0, 0}, - no_msp34xx: 1, - pll: PLL_28, - tuner_type: TUNER_SHARP_2U5JF5540_NTSC, - audio_hook: gvbctv3pci_audio, + .name = "IODATA GV-BCTV4/PCI", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x010f00, + .muxsel = {2, 3, 0, 0}, + .audiomux = {0x10000, 0, 0x10000, 0, 0, 0}, + .no_msp34xx = 1, + .pll = PLL_28, + .tuner_type = TUNER_SHARP_2U5JF5540_NTSC, + .audio_hook = gvbctv3pci_audio, },{ /* ---- card 0x44 ---------------------------------- */ - name: "3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA)", + .name = "3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA)", // try "insmod msp3400 simple=0" if you have // sound problems with this card. - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: -1, - gpiomask: 0x4f8a00, + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = -1, + .gpiomask = 0x4f8a00, // 0x100000: 1=MSP enabled (0=disable again) // 0x010000: Connected to "S0" on tda9880 (0=Pal/BG, 1=NTSC) - audiomux: {0x947fff, 0x987fff,0x947fff,0x947fff, 0x947fff}, + .audiomux = {0x947fff, 0x987fff,0x947fff,0x947fff, 0x947fff}, // tvtuner, radio, external,internal, mute, stereo /* tuner, Composit, SVid, Composit-on-Svid-adapter*/ - muxsel: { 2, 3 ,0 ,1}, - tuner_type: TUNER_MT2032, - pll: PLL_28, - has_radio: 1, + .muxsel = { 2, 3 ,0 ,1}, + .tuner_type = TUNER_MT2032, + .pll = PLL_28, + .has_radio = 1, },{ /* Philip Blundell <pb@nexus.co.uk> */ - name: "Active Imaging AIMMS", - video_inputs: 1, - audio_inputs: 0, - tuner: -1, - tuner_type: -1, - pll: PLL_28, - muxsel: { 2 }, - gpiomask: 0 + .name = "Active Imaging AIMMS", + .video_inputs = 1, + .audio_inputs = 0, + .tuner = -1, + .tuner_type = -1, + .pll = PLL_28, + .muxsel = { 2 }, + .gpiomask = 0 },{ /* Tomasz Pyra <hellfire@sedez.iq.pl> */ - name: "Prolink Pixelview PV-BT878P+ (Rev.4C)", - video_inputs: 3, - audio_inputs: 4, - tuner: 0, - svhs: 2, - gpiomask: 15, - muxsel: { 2, 3, 1, 1}, - audiomux: { 0, 0, 11, 7, 13, 0}, // TV and Radio with same GPIO ! - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: 25, + .name = "Prolink Pixelview PV-BT878P+ (Rev.4C)", + .video_inputs = 3, + .audio_inputs = 4, + .tuner = 0, + .svhs = 2, + .gpiomask = 15, + .muxsel = { 2, 3, 1, 1}, + .audiomux = { 0, 0, 11, 7, 13, 0}, // TV and Radio with same GPIO ! + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = 25, /* GPIO wiring: GPIO0: U4.A0 (hef4052bt) GPIO1: U4.A1 @@ -1187,33 +1187,33 @@ struct tvcard bttv_tvcards[] = { GPIO8-15: vrd866b ? */ },{ - name: "Lifeview FlyVideo 98EZ (capture only) LR51", - video_inputs: 4, - audio_inputs: 0, - tuner: -1, - svhs: 2, - muxsel: { 2, 3, 1, 1}, // AV1, AV2, SVHS, CVid adapter on SVHS - pll: PLL_28, - no_msp34xx: 1, + .name = "Lifeview FlyVideo 98EZ (capture only) LR51", + .video_inputs = 4, + .audio_inputs = 0, + .tuner = -1, + .svhs = 2, + .muxsel = { 2, 3, 1, 1}, // AV1, AV2, SVHS, CVid adapter on SVHS + .pll = PLL_28, + .no_msp34xx = 1, },{ /* ---- card 0x48 ---------------------------------- */ /* Dariusz Kowalewski <darekk@automex.pl> */ - name: "Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM)", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x3f, - muxsel: { 2, 3, 1, 1 }, - audiomux: { 0x01, 0x00, 0x03, 0x03, 0x09, 0x02 }, - needs_tvaudio: 1, - no_msp34xx: 1, - no_tda9875: 1, - pll: PLL_28, - tuner_type: 5, - audio_hook: pvbt878p9b_audio, // Note: not all cards have stereo - has_radio: 1, // Note: not all cards have radio + .name = "Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM)", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x3f, + .muxsel = { 2, 3, 1, 1 }, + .audiomux = { 0x01, 0x00, 0x03, 0x03, 0x09, 0x02 }, + .needs_tvaudio = 1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .pll = PLL_28, + .tuner_type = 5, + .audio_hook = pvbt878p9b_audio, // Note: not all cards have stereo + .has_radio = 1, // Note: not all cards have radio /* GPIO wiring: GPIO0: A0 hef4052 GPIO1: A1 hef4052 @@ -1224,91 +1224,91 @@ struct tvcard bttv_tvcards[] = { },{ /* Clay Kunz <ckunz@mail.arc.nasa.gov> */ /* you must jumper JP5 for the card to work */ - name: "Sensoray 311", - video_inputs: 5, - audio_inputs: 0, - tuner: -1, - svhs: 4, - gpiomask: 0, - muxsel: { 2, 3, 1, 0, 0}, - audiomux: { 0 }, - needs_tvaudio: 0, - tuner_type: -1, + .name = "Sensoray 311", + .video_inputs = 5, + .audio_inputs = 0, + .tuner = -1, + .svhs = 4, + .gpiomask = 0, + .muxsel = { 2, 3, 1, 0, 0}, + .audiomux = { 0 }, + .needs_tvaudio = 0, + .tuner_type = -1, },{ /* Miguel Freitas <miguel@cetuc.puc-rio.br> */ - name: "RemoteVision MX (RV605)", - video_inputs: 16, - audio_inputs: 0, - tuner: -1, - svhs: -1, - gpiomask: 0x00, - gpiomask2: 0x07ff, - muxsel: { 0x33, 0x13, 0x23, 0x43, 0xf3, 0x73, 0xe3, 0x03, + .name = "RemoteVision MX (RV605)", + .video_inputs = 16, + .audio_inputs = 0, + .tuner = -1, + .svhs = -1, + .gpiomask = 0x00, + .gpiomask2 = 0x07ff, + .muxsel = { 0x33, 0x13, 0x23, 0x43, 0xf3, 0x73, 0xe3, 0x03, 0xd3, 0xb3, 0xc3, 0x63, 0x93, 0x53, 0x83, 0xa3 }, - no_msp34xx: 1, - no_tda9875: 1, - tuner_type: -1, - muxsel_hook: rv605_muxsel, -},{ - name: "Powercolor MTV878/ MTV878R/ MTV878F", - video_inputs: 3, - audio_inputs: 2, - tuner: 0, - svhs: 2, - gpiomask: 0x1C800F, // Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset - muxsel: { 2, 1, 1, }, - audiomux: { 0, 1, 2, 2, 4 }, - needs_tvaudio: 0, - tuner_type: TUNER_PHILIPS_PAL, - pll: PLL_28, - has_radio: 1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .tuner_type = -1, + .muxsel_hook = rv605_muxsel, +},{ + .name = "Powercolor MTV878/ MTV878R/ MTV878F", + .video_inputs = 3, + .audio_inputs = 2, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x1C800F, // Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset + .muxsel = { 2, 1, 1, }, + .audiomux = { 0, 1, 2, 2, 4 }, + .needs_tvaudio = 0, + .tuner_type = TUNER_PHILIPS_PAL, + .pll = PLL_28, + .has_radio = 1, },{ /* ---- card 0x4c ---------------------------------- */ /* Masaki Suzuki <masaki@btree.org> */ - name: "Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP)", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x140007, - muxsel: { 2, 3, 1, 1 }, - audiomux: { 0, 1, 2, 3, 4, 0 }, - tuner_type: TUNER_PHILIPS_NTSC, - audio_hook: windvr_audio, -},{ - name: "GrandTec Multi Capture Card (Bt878)", - video_inputs: 4, - audio_inputs: 0, - tuner: -1, - svhs: -1, - gpiomask: 0, - muxsel: { 2, 3, 1, 0 }, - audiomux: { 0 }, - needs_tvaudio: 0, - no_msp34xx: 1, - pll: PLL_28, - tuner_type: -1, -},{ - name: "Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF", - video_inputs: 4, - audio_inputs: 3, - tuner: 0, - svhs: 2, - gpiomask: 7, - muxsel: { 2, 3, 1, 1 }, // Tuner, SVid, SVHS, SVid to SVHS connector - audiomux: { 0 ,0 ,4, 4,4,4},// Yes, this tuner uses the same audio output for TV and FM radio! + .name = "Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP)", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x140007, + .muxsel = { 2, 3, 1, 1 }, + .audiomux = { 0, 1, 2, 3, 4, 0 }, + .tuner_type = TUNER_PHILIPS_NTSC, + .audio_hook = windvr_audio, +},{ + .name = "GrandTec Multi Capture Card (Bt878)", + .video_inputs = 4, + .audio_inputs = 0, + .tuner = -1, + .svhs = -1, + .gpiomask = 0, + .muxsel = { 2, 3, 1, 0 }, + .audiomux = { 0 }, + .needs_tvaudio = 0, + .no_msp34xx = 1, + .pll = PLL_28, + .tuner_type = -1, +},{ + .name = "Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF", + .video_inputs = 4, + .audio_inputs = 3, + .tuner = 0, + .svhs = 2, + .gpiomask = 7, + .muxsel = { 2, 3, 1, 1 }, // Tuner, SVid, SVHS, SVid to SVHS connector + .audiomux = { 0 ,0 ,4, 4,4,4},// Yes, this tuner uses the same audio output for TV and FM radio! // This card lacks external Audio In, so we mute it on Ext. & Int. // The PCB can take a sbx1637/sbx1673, wiring unknown. // This card lacks PCI subsystem ID, sigh. // audiomux=1: lower volume, 2+3: mute // btwincap uses 0x80000/0x80003 - needs_tvaudio: 0, - no_msp34xx: 1, - pll: PLL_28, - tuner_type: 5, // Samsung TCPA9095PC27A (BG+DK), philips compatible, w/FM, stereo and + .needs_tvaudio = 0, + .no_msp34xx = 1, + .pll = PLL_28, + .tuner_type = 5, // Samsung TCPA9095PC27A (BG+DK), philips compatible, w/FM, stereo and // radio signal strength indicators work fine. - has_radio: 1, + .has_radio = 1, /* GPIO Info: GPIO0,1: HEF4052 A0,A1 GPIO2: HEF4052 nENABLE @@ -1320,199 +1320,199 @@ struct tvcard bttv_tvcards[] = { ?? : mtu8b56ep microcontroller for IR (GPIO wiring unknown)*/ },{ /* Arthur Tetzlaff-Deas, DSP Design Ltd <software@dspdesign.com> */ - name: "DSP Design TCVIDEO", - video_inputs: 4, - svhs: -1, - muxsel: { 2, 3, 1, 0}, - pll: PLL_28, - tuner_type: -1, + .name = "DSP Design TCVIDEO", + .video_inputs = 4, + .svhs = -1, + .muxsel = { 2, 3, 1, 0}, + .pll = PLL_28, + .tuner_type = -1, },{ /* ---- card 0x50 ---------------------------------- */ - name: "Hauppauge WinTV PVR", - video_inputs: 4, - audio_inputs: 1, - tuner: 0, - svhs: 2, - muxsel: { 2, 0, 1, 1}, - needs_tvaudio: 1, - pll: PLL_28, - tuner_type: -1, - - gpiomask: 7, - audiomux: {7}, -},{ - name: "GV-BCTV5/PCI", - video_inputs: 3, - audio_inputs: 1, - tuner: 0, - svhs: 2, - gpiomask: 0x010f00, - muxsel: {2, 3, 1, 0}, - audiomux: {0x10000, 0, 0x10000, 0, 0, 0}, - no_msp34xx: 1, - pll: PLL_28, - tuner_type: TUNER_PHILIPS_NTSC_M, - audio_hook: gvbctv3pci_audio, -},{ - name: "Osprey 100/150 (878)", /* 0x1(2|3)-45C6-C1 */ - video_inputs: 4, /* id-inputs-clock */ - audio_inputs: 0, - tuner: -1, - svhs: 3, - muxsel: { 3, 2, 0, 1 }, - pll: PLL_28, - tuner_type: -1, - no_msp34xx: 1, - no_tda9875: 1, - no_tda7432: 1, -},{ - name: "Osprey 100/150 (848)", /* 0x04-54C0-C1 & older boards */ - video_inputs: 3, - audio_inputs: 0, - tuner: -1, - svhs: 2, - muxsel: { 2, 3, 1 }, - pll: PLL_28, - tuner_type: -1, - no_msp34xx: 1, - no_tda9875: 1, - no_tda7432: 1, + .name = "Hauppauge WinTV PVR", + .video_inputs = 4, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .muxsel = { 2, 0, 1, 1}, + .needs_tvaudio = 1, + .pll = PLL_28, + .tuner_type = -1, + + .gpiomask = 7, + .audiomux = {7}, +},{ + .name = "GV-BCTV5/PCI", + .video_inputs = 3, + .audio_inputs = 1, + .tuner = 0, + .svhs = 2, + .gpiomask = 0x010f00, + .muxsel = {2, 3, 1, 0}, + .audiomux = {0x10000, 0, 0x10000, 0, 0, 0}, + .no_msp34xx = 1, + .pll = PLL_28, + .tuner_type = TUNER_PHILIPS_NTSC_M, + .audio_hook = gvbctv3pci_audio, +},{ + .name = "Osprey 100/150 (878)", /* 0x1(2|3)-45C6-C1 */ + .video_inputs = 4, /* id-inputs-clock */ + .audio_inputs = 0, + .tuner = -1, + .svhs = 3, + .muxsel = { 3, 2, 0, 1 }, + .pll = PLL_28, + .tuner_type = -1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .no_tda7432 = 1, +},{ + .name = "Osprey 100/150 (848)", /* 0x04-54C0-C1 & older boards */ + .video_inputs = 3, + .audio_inputs = 0, + .tuner = -1, + .svhs = 2, + .muxsel = { 2, 3, 1 }, + .pll = PLL_28, + .tuner_type = -1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .no_tda7432 = 1, },{ /* ---- card 0x54 ---------------------------------- */ - name: "Osprey 101 (848)", /* 0x05-40C0-C1 */ - video_inputs: 2, - audio_inputs: 0, - tuner: -1, - svhs: 1, - muxsel: { 3, 1 }, - pll: PLL_28, - tuner_type: -1, - no_msp34xx: 1, - no_tda9875: 1, - no_tda7432: 1, -},{ - name: "Osprey 101/151", /* 0x1(4|5)-0004-C4 */ - video_inputs: 1, - audio_inputs: 0, - tuner: -1, - svhs: -1, - muxsel: { 0 }, - pll: PLL_28, - tuner_type: -1, - no_msp34xx: 1, - no_tda9875: 1, - no_tda7432: 1, -},{ - name: "Osprey 101/151 w/ svid", /* 0x(16|17|20)-00C4-C1 */ - video_inputs: 2, - audio_inputs: 0, - tuner: -1, - svhs: 1, - muxsel: { 0, 1 }, - pll: PLL_28, - tuner_type: -1, - no_msp34xx: 1, - no_tda9875: 1, - no_tda7432: 1, -},{ - name: "Osprey 200/201/250/251", /* 0x1(8|9|E|F)-0004-C4 */ - video_inputs: 1, - audio_inputs: 1, - tuner: -1, - svhs: -1, - muxsel: { 0 }, - pll: PLL_28, - tuner_type: -1, - no_msp34xx: 1, - no_tda9875: 1, - no_tda7432: 1, + .name = "Osprey 101 (848)", /* 0x05-40C0-C1 */ + .video_inputs = 2, + .audio_inputs = 0, + .tuner = -1, + .svhs = 1, + .muxsel = { 3, 1 }, + .pll = PLL_28, + .tuner_type = -1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .no_tda7432 = 1, +},{ + .name = "Osprey 101/151", /* 0x1(4|5)-0004-C4 */ + .video_inputs = 1, + .audio_inputs = 0, + .tuner = -1, + .svhs = -1, + .muxsel = { 0 }, + .pll = PLL_28, + .tuner_type = -1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .no_tda7432 = 1, +},{ + .name = "Osprey 101/151 w/ svid", /* 0x(16|17|20)-00C4-C1 */ + .video_inputs = 2, + .audio_inputs = 0, + .tuner = -1, + .svhs = 1, + .muxsel = { 0, 1 }, + .pll = PLL_28, + .tuner_type = -1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .no_tda7432 = 1, +},{ + .name = "Osprey 200/201/250/251", /* 0x1(8|9|E|F)-0004-C4 */ + .video_inputs = 1, + .audio_inputs = 1, + .tuner = -1, + .svhs = -1, + .muxsel = { 0 }, + .pll = PLL_28, + .tuner_type = -1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .no_tda7432 = 1, },{ /* ---- card 0x58 ---------------------------------- */ - name: "Osprey 200/250", /* 0x1(A|B)-00C4-C1 */ - video_inputs: 2, - audio_inputs: 1, - tuner: -1, - svhs: 1, - muxsel: { 0, 1 }, - pll: PLL_28, - tuner_type: -1, - no_msp34xx: 1, - no_tda9875: 1, - no_tda7432: 1, -},{ - name: "Osprey 210/220", /* 0x1(A|B)-04C0-C1 */ - video_inputs: 2, - audio_inputs: 1, - tuner: -1, - svhs: 1, - muxsel: { 2, 3 }, - pll: PLL_28, - tuner_type: -1, - no_msp34xx: 1, - no_tda9875: 1, - no_tda7432: 1, -},{ - name: "Osprey 500", /* 500 */ - video_inputs: 2, - audio_inputs: 1, - tuner: -1, - svhs: 1, - muxsel: { 2, 3 }, - pll: PLL_28, - tuner_type: -1, - no_msp34xx: 1, - no_tda9875: 1, - no_tda7432: 1, -},{ - name: "Osprey 540", /* 540 */ - video_inputs: 4, - audio_inputs: 1, - tuner: -1, + .name = "Osprey 200/250", /* 0x1(A|B)-00C4-C1 */ + .video_inputs = 2, + .audio_inputs = 1, + .tuner = -1, + .svhs = 1, + .muxsel = { 0, 1 }, + .pll = PLL_28, + .tuner_type = -1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .no_tda7432 = 1, +},{ + .name = "Osprey 210/220", /* 0x1(A|B)-04C0-C1 */ + .video_inputs = 2, + .audio_inputs = 1, + .tuner = -1, + .svhs = 1, + .muxsel = { 2, 3 }, + .pll = PLL_28, + .tuner_type = -1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .no_tda7432 = 1, +},{ + .name = "Osprey 500", /* 500 */ + .video_inputs = 2, + .audio_inputs = 1, + .tuner = -1, + .svhs = 1, + .muxsel = { 2, 3 }, + .pll = PLL_28, + .tuner_type = -1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .no_tda7432 = 1, +},{ + .name = "Osprey 540", /* 540 */ + .video_inputs = 4, + .audio_inputs = 1, + .tuner = -1, #if 0 /* TODO ... */ - svhs: OSPREY540_SVID_ANALOG, - muxsel: { [OSPREY540_COMP_ANALOG] = 2, + .svhs = OSPREY540_SVID_ANALOG, + .muxsel = { [OSPREY540_COMP_ANALOG] = 2, [OSPREY540_SVID_ANALOG] = 3, }, #endif - pll: PLL_28, - tuner_type: -1, - no_msp34xx: 1, - no_tda9875: 1, - no_tda7432: 1, + .pll = PLL_28, + .tuner_type = -1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .no_tda7432 = 1, #if 0 /* TODO ... */ - muxsel_hook: osprey_540_muxsel, - picture_hook: osprey_540_set_picture, + .muxsel_hook = osprey_540_muxsel, + .picture_hook = osprey_540_set_picture, #endif },{ /* ---- card 0x5C ---------------------------------- */ - name: "Osprey 2000", /* 2000 */ - video_inputs: 2, - audio_inputs: 1, - tuner: -1, - svhs: 1, - muxsel: { 2, 3 }, - pll: PLL_28, - tuner_type: -1, - no_msp34xx: 1, - no_tda9875: 1, - no_tda7432: 1, /* must avoid, conflicts with the bt860 */ + .name = "Osprey 2000", /* 2000 */ + .video_inputs = 2, + .audio_inputs = 1, + .tuner = -1, + .svhs = 1, + .muxsel = { 2, 3 }, + .pll = PLL_28, + .tuner_type = -1, + .no_msp34xx = 1, + .no_tda9875 = 1, + .no_tda7432 = 1, /* must avoid, conflicts with the bt860 */ },{ /* M G Berberich <berberic@forwiss.uni-passau.de> */ - name: "IDS Eagle", - video_inputs: 4, - audio_inputs: 0, - tuner: -1, - tuner_type: -1, - svhs: -1, - gpiomask: 0, - muxsel: { 0, 1, 2, 3 }, - muxsel_hook: eagle_muxsel, - no_msp34xx: 1, - no_tda9875: 1, - pll: PLL_28, + .name = "IDS Eagle", + .video_inputs = 4, + .audio_inputs = 0, + .tuner = -1, + .tuner_type = -1, + .svhs = -1, + .gpiomask = 0, + .muxsel = { 0, 1, 2, 3 }, + .muxsel_hook = eagle_muxsel, + .no_msp34xx = 1, + .no_tda9875 = 1, + .pll = PLL_28, }}; const int bttv_num_tvcards = (sizeof(bttv_tvcards)/sizeof(struct tvcard)); diff --git a/drivers/media/video/bttv-driver.c b/drivers/media/video/bttv-driver.c index 4d635d055084..97e1b41d375a 100644 --- a/drivers/media/video/bttv-driver.c +++ b/drivers/media/video/bttv-driver.c @@ -274,154 +274,154 @@ const int BTTV_TVNORMS = (sizeof(bttv_tvnorms)/sizeof(struct bttv_tvnorm)); packed pixel formats must come first */ const struct bttv_format bttv_formats[] = { { - name: "8 bpp, gray", - palette: VIDEO_PALETTE_GREY, - fourcc: V4L2_PIX_FMT_GREY, - btformat: BT848_COLOR_FMT_Y8, - depth: 8, - flags: FORMAT_FLAGS_PACKED, + .name = "8 bpp, gray", + .palette = VIDEO_PALETTE_GREY, + .fourcc = V4L2_PIX_FMT_GREY, + .btformat = BT848_COLOR_FMT_Y8, + .depth = 8, + .flags = FORMAT_FLAGS_PACKED, },{ - name: "8 bpp, dithered color", - palette: VIDEO_PALETTE_HI240, - fourcc: V4L2_PIX_FMT_HI240, - btformat: BT848_COLOR_FMT_RGB8, - depth: 8, - flags: FORMAT_FLAGS_PACKED | FORMAT_FLAGS_DITHER, + .name = "8 bpp, dithered color", + .palette = VIDEO_PALETTE_HI240, + .fourcc = V4L2_PIX_FMT_HI240, + .btformat = BT848_COLOR_FMT_RGB8, + .depth = 8, + .flags = FORMAT_FLAGS_PACKED | FORMAT_FLAGS_DITHER, },{ - name: "15 bpp RGB, le", - palette: VIDEO_PALETTE_RGB555, - fourcc: V4L2_PIX_FMT_RGB555, - btformat: BT848_COLOR_FMT_RGB15, - depth: 16, - flags: FORMAT_FLAGS_PACKED, + .name = "15 bpp RGB, le", + .palette = VIDEO_PALETTE_RGB555, + .fourcc = V4L2_PIX_FMT_RGB555, + .btformat = BT848_COLOR_FMT_RGB15, + .depth = 16, + .flags = FORMAT_FLAGS_PACKED, },{ - name: "15 bpp RGB, be", - palette: -1, - fourcc: V4L2_PIX_FMT_RGB555X, - btformat: BT848_COLOR_FMT_RGB15, - btswap: 0x03, /* byteswap */ - depth: 16, - flags: FORMAT_FLAGS_PACKED, + .name = "15 bpp RGB, be", + .palette = -1, + .fourcc = V4L2_PIX_FMT_RGB555X, + .btformat = BT848_COLOR_FMT_RGB15, + .btswap = 0x03, /* byteswap */ + .depth = 16, + .flags = FORMAT_FLAGS_PACKED, },{ - name: "16 bpp RGB, le", - palette: VIDEO_PALETTE_RGB565, - fourcc: V4L2_PIX_FMT_RGB565, - btformat: BT848_COLOR_FMT_RGB16, - depth: 16, - flags: FORMAT_FLAGS_PACKED, + .name = "16 bpp RGB, le", + .palette = VIDEO_PALETTE_RGB565, + .fourcc = V4L2_PIX_FMT_RGB565, + .btformat = BT848_COLOR_FMT_RGB16, + .depth = 16, + .flags = FORMAT_FLAGS_PACKED, },{ - name: "16 bpp RGB, be", - palette: -1, - fourcc: V4L2_PIX_FMT_RGB565X, - btformat: BT848_COLOR_FMT_RGB16, - btswap: 0x03, /* byteswap */ - depth: 16, - flags: FORMAT_FLAGS_PACKED, + .name = "16 bpp RGB, be", + .palette = -1, + .fourcc = V4L2_PIX_FMT_RGB565X, + .btformat = BT848_COLOR_FMT_RGB16, + .btswap = 0x03, /* byteswap */ + .depth = 16, + .flags = FORMAT_FLAGS_PACKED, },{ - name: "24 bpp RGB, le", - palette: VIDEO_PALETTE_RGB24, - fourcc: V4L2_PIX_FMT_BGR24, - btformat: BT848_COLOR_FMT_RGB24, - depth: 24, - flags: FORMAT_FLAGS_PACKED, + .name = "24 bpp RGB, le", + .palette = VIDEO_PALETTE_RGB24, + .fourcc = V4L2_PIX_FMT_BGR24, + .btformat = BT848_COLOR_FMT_RGB24, + .depth = 24, + .flags = FORMAT_FLAGS_PACKED, },{ - name: "32 bpp RGB, le", - palette: VIDEO_PALETTE_RGB32, - fourcc: V4L2_PIX_FMT_BGR32, - btformat: BT848_COLOR_FMT_RGB32, - depth: 32, - flags: FORMAT_FLAGS_PACKED, + .name = "32 bpp RGB, le", + .palette = VIDEO_PALETTE_RGB32, + .fourcc = V4L2_PIX_FMT_BGR32, + .btformat = BT848_COLOR_FMT_RGB32, + .depth = 32, + .flags = FORMAT_FLAGS_PACKED, },{ - name: "32 bpp RGB, be", - palette: -1, - fourcc: V4L2_PIX_FMT_RGB32, - btformat: BT848_COLOR_FMT_RGB32, - btswap: 0x0f, /* byte+word swap */ - depth: 32, - flags: FORMAT_FLAGS_PACKED, + .name = "32 bpp RGB, be", + .palette = -1, + .fourcc = V4L2_PIX_FMT_RGB32, + .btformat = BT848_COLOR_FMT_RGB32, + .btswap = 0x0f, /* byte+word swap */ + .depth = 32, + .flags = FORMAT_FLAGS_PACKED, },{ - name: "4:2:2, packed, YUYV", - palette: VIDEO_PALETTE_YUV422, - fourcc: V4L2_PIX_FMT_YUYV, - btformat: BT848_COLOR_FMT_YUY2, - depth: 16, - flags: FORMAT_FLAGS_PACKED, + .name = "4:2:2, packed, YUYV", + .palette = VIDEO_PALETTE_YUV422, + .fourcc = V4L2_PIX_FMT_YUYV, + .btformat = BT848_COLOR_FMT_YUY2, + .depth = 16, + .flags = FORMAT_FLAGS_PACKED, },{ - name: "4:2:2, packed, YUYV", - palette: VIDEO_PALETTE_YUYV, - fourcc: V4L2_PIX_FMT_YUYV, - btformat: BT848_COLOR_FMT_YUY2, - depth: 16, - flags: FORMAT_FLAGS_PACKED, + .name = "4:2:2, packed, YUYV", + .palette = VIDEO_PALETTE_YUYV, + .fourcc = V4L2_PIX_FMT_YUYV, + .btformat = BT848_COLOR_FMT_YUY2, + .depth = 16, + .flags = FORMAT_FLAGS_PACKED, },{ - name: "4:2:2, packed, UYVY", - palette: VIDEO_PALETTE_UYVY, - fourcc: V4L2_PIX_FMT_UYVY, - btformat: BT848_COLOR_FMT_YUY2, - btswap: 0x03, /* byteswap */ - depth: 16, - flags: FORMAT_FLAGS_PACKED, + .name = "4:2:2, packed, UYVY", + .palette = VIDEO_PALETTE_UYVY, + .fourcc = V4L2_PIX_FMT_UYVY, + .btformat = BT848_COLOR_FMT_YUY2, + .btswap = 0x03, /* byteswap */ + .depth = 16, + .flags = FORMAT_FLAGS_PACKED, },{ - name: "4:2:2, planar, Y-Cb-Cr", - palette: VIDEO_PALETTE_YUV422P, - fourcc: V4L2_PIX_FMT_YUV422P, - btformat: BT848_COLOR_FMT_YCrCb422, - depth: 16, - flags: FORMAT_FLAGS_PLANAR, - hshift: 1, - vshift: 0, + .name = "4:2:2, planar, Y-Cb-Cr", + .palette = VIDEO_PALETTE_YUV422P, + .fourcc = V4L2_PIX_FMT_YUV422P, + .btformat = BT848_COLOR_FMT_YCrCb422, + .depth = 16, + .flags = FORMAT_FLAGS_PLANAR, + .hshift = 1, + .vshift = 0, },{ - name: "4:2:0, planar, Y-Cb-Cr", - palette: VIDEO_PALETTE_YUV420P, - fourcc: V4L2_PIX_FMT_YUV420, - btformat: BT848_COLOR_FMT_YCrCb422, - depth: 12, - flags: FORMAT_FLAGS_PLANAR, - hshift: 1, - vshift: 1, + .name = "4:2:0, planar, Y-Cb-Cr", + .palette = VIDEO_PALETTE_YUV420P, + .fourcc = V4L2_PIX_FMT_YUV420, + .btformat = BT848_COLOR_FMT_YCrCb422, + .depth = 12, + .flags = FORMAT_FLAGS_PLANAR, + .hshift = 1, + .vshift = 1, },{ - name: "4:2:0, planar, Y-Cr-Cb", - palette: -1, - fourcc: V4L2_PIX_FMT_YVU420, - btformat: BT848_COLOR_FMT_YCrCb422, - depth: 12, - flags: FORMAT_FLAGS_PLANAR | FORMAT_FLAGS_CrCb, - hshift: 1, - vshift: 1, + .name = "4:2:0, planar, Y-Cr-Cb", + .palette = -1, + .fourcc = V4L2_PIX_FMT_YVU420, + .btformat = BT848_COLOR_FMT_YCrCb422, + .depth = 12, + .flags = FORMAT_FLAGS_PLANAR | FORMAT_FLAGS_CrCb, + .hshift = 1, + .vshift = 1, },{ - name: "4:1:1, planar, Y-Cb-Cr", - palette: VIDEO_PALETTE_YUV411P, - fourcc: V4L2_PIX_FMT_YUV411P, - btformat: BT848_COLOR_FMT_YCrCb411, - depth: 12, - flags: FORMAT_FLAGS_PLANAR, - hshift: 2, - vshift: 0, + .name = "4:1:1, planar, Y-Cb-Cr", + .palette = VIDEO_PALETTE_YUV411P, + .fourcc = V4L2_PIX_FMT_YUV411P, + .btformat = BT848_COLOR_FMT_YCrCb411, + .depth = 12, + .flags = FORMAT_FLAGS_PLANAR, + .hshift = 2, + .vshift = 0, },{ - name: "4:1:0, planar, Y-Cb-Cr", - palette: VIDEO_PALETTE_YUV410P, - fourcc: V4L2_PIX_FMT_YUV410, - btformat: BT848_COLOR_FMT_YCrCb411, - depth: 9, - flags: FORMAT_FLAGS_PLANAR, - hshift: 2, - vshift: 2, + .name = "4:1:0, planar, Y-Cb-Cr", + .palette = VIDEO_PALETTE_YUV410P, + .fourcc = V4L2_PIX_FMT_YUV410, + .btformat = BT848_COLOR_FMT_YCrCb411, + .depth = 9, + .flags = FORMAT_FLAGS_PLANAR, + .hshift = 2, + .vshift = 2, },{ - name: "4:1:0, planar, Y-Cr-Cb", - palette: -1, - fourcc: V4L2_PIX_FMT_YVU410, - btformat: BT848_COLOR_FMT_YCrCb411, - depth: 9, - flags: FORMAT_FLAGS_PLANAR | FORMAT_FLAGS_CrCb, - hshift: 2, - vshift: 2, + .name = "4:1:0, planar, Y-Cr-Cb", + .palette = -1, + .fourcc = V4L2_PIX_FMT_YVU410, + .btformat = BT848_COLOR_FMT_YCrCb411, + .depth = 9, + .flags = FORMAT_FLAGS_PLANAR | FORMAT_FLAGS_CrCb, + .hshift = 2, + .vshift = 2, },{ - name: "raw scanlines", - palette: VIDEO_PALETTE_RAW, - fourcc: -1, - btformat: BT848_COLOR_FMT_RAW, - depth: 8, - flags: FORMAT_FLAGS_RAW, + .name = "raw scanlines", + .palette = VIDEO_PALETTE_RAW, + .fourcc = -1, + .btformat = BT848_COLOR_FMT_RAW, + .depth = 8, + .flags = FORMAT_FLAGS_RAW, } }; const int BTTV_FORMATS = (sizeof(bttv_formats)/sizeof(struct bttv_format)); @@ -436,115 +436,115 @@ const int BTTV_FORMATS = (sizeof(bttv_formats)/sizeof(struct bttv_format)); #define V4L2_CID_PRIVATE_LASTP1 (V4L2_CID_PRIVATE_BASE + 5) static const struct v4l2_queryctrl no_ctl = { - name: "42", - flags: V4L2_CTRL_FLAG_DISABLED, + .name = "42", + .flags = V4L2_CTRL_FLAG_DISABLED, }; static const struct v4l2_queryctrl bttv_ctls[] = { /* --- video --- */ { - id: V4L2_CID_BRIGHTNESS, - name: "Brightness", - minimum: 0, - maximum: 65535, - step: 256, - default_value: 32768, - type: V4L2_CTRL_TYPE_INTEGER, + .id = V4L2_CID_BRIGHTNESS, + .name = "Brightness", + .minimum = 0, + .maximum = 65535, + .step = 256, + .default_value = 32768, + .type = V4L2_CTRL_TYPE_INTEGER, },{ - id: V4L2_CID_CONTRAST, - name: "Contrast", - minimum: 0, - maximum: 65535, - step: 128, - default_value: 32768, - type: V4L2_CTRL_TYPE_INTEGER, + .id = V4L2_CID_CONTRAST, + .name = "Contrast", + .minimum = 0, + .maximum = 65535, + .step = 128, + .default_value = 32768, + .type = V4L2_CTRL_TYPE_INTEGER, },{ - id: V4L2_CID_SATURATION, - name: "Saturation", - minimum: 0, - maximum: 65535, - step: 128, - default_value: 32768, - type: V4L2_CTRL_TYPE_INTEGER, + .id = V4L2_CID_SATURATION, + .name = "Saturation", + .minimum = 0, + .maximum = 65535, + .step = 128, + .default_value = 32768, + .type = V4L2_CTRL_TYPE_INTEGER, },{ - id: V4L2_CID_HUE, - name: "Hue", - minimum: 0, - maximum: 65535, - step: 256, - default_value: 32768, - type: V4L2_CTRL_TYPE_INTEGER, + .id = V4L2_CID_HUE, + .name = "Hue", + .minimum = 0, + .maximum = 65535, + .step = 256, + .default_value = 32768, + .type = V4L2_CTRL_TYPE_INTEGER, }, /* --- audio --- */ { - id: V4L2_CID_AUDIO_MUTE, - name: "Mute", - minimum: 0, - maximum: 1, - type: V4L2_CTRL_TYPE_BOOLEAN, + .id = V4L2_CID_AUDIO_MUTE, + .name = "Mute", + .minimum = 0, + .maximum = 1, + .type = V4L2_CTRL_TYPE_BOOLEAN, },{ - id: V4L2_CID_AUDIO_VOLUME, - name: "Volume", - minimum: 0, - maximum: 65535, - step: 65535/100, - default_value: 65535, - type: V4L2_CTRL_TYPE_INTEGER, + .id = V4L2_CID_AUDIO_VOLUME, + .name = "Volume", + .minimum = 0, + .maximum = 65535, + .step = 65535/100, + .default_value = 65535, + .type = V4L2_CTRL_TYPE_INTEGER, },{ - id: V4L2_CID_AUDIO_BALANCE, - name: "Balance", - minimum: 0, - maximum: 65535, - step: 65535/100, - default_value: 32768, - type: V4L2_CTRL_TYPE_INTEGER, + .id = V4L2_CID_AUDIO_BALANCE, + .name = "Balance", + .minimum = 0, + .maximum = 65535, + .step = 65535/100, + .default_value = 32768, + .type = V4L2_CTRL_TYPE_INTEGER, },{ - id: V4L2_CID_AUDIO_BASS, - name: "Bass", - minimum: 0, - maximum: 65535, - step: 65535/100, - default_value: 32768, - type: V4L2_CTRL_TYPE_INTEGER, + .id = V4L2_CID_AUDIO_BASS, + .name = "Bass", + .minimum = 0, + .maximum = 65535, + .step = 65535/100, + .default_value = 32768, + .type = V4L2_CTRL_TYPE_INTEGER, },{ - id: V4L2_CID_AUDIO_TREBLE, - name: "Treble", - minimum: 0, - maximum: 65535, - step: 65535/100, - default_value: 32768, - type: V4L2_CTRL_TYPE_INTEGER, + .id = V4L2_CID_AUDIO_TREBLE, + .name = "Treble", + .minimum = 0, + .maximum = 65535, + .step = 65535/100, + .default_value = 32768, + .type = V4L2_CTRL_TYPE_INTEGER, }, /* --- private --- */ { - id: V4L2_CID_PRIVATE_CHROMA_AGC, - name: "chroma agc", - minimum: 0, - maximum: 1, - type: V4L2_CTRL_TYPE_BOOLEAN, + .id = V4L2_CID_PRIVATE_CHROMA_AGC, + .name = "chroma agc", + .minimum = 0, + .maximum = 1, + .type = V4L2_CTRL_TYPE_BOOLEAN, },{ - id: V4L2_CID_PRIVATE_COMBFILTER, - name: "combfilter", - minimum: 0, - maximum: 1, - type: V4L2_CTRL_TYPE_BOOLEAN, + .id = V4L2_CID_PRIVATE_COMBFILTER, + .name = "combfilter", + .minimum = 0, + .maximum = 1, + .type = V4L2_CTRL_TYPE_BOOLEAN, },{ - id: V4L2_CID_PRIVATE_AUTOMUTE, - name: "automute", - minimum: 0, - maximum: 1, - type: V4L2_CTRL_TYPE_BOOLEAN, + .id = V4L2_CID_PRIVATE_AUTOMUTE, + .name = "automute", + .minimum = 0, + .maximum = 1, + .type = V4L2_CTRL_TYPE_BOOLEAN, },{ - id: V4L2_CID_PRIVATE_LUMAFILTER, - name: "luma decimation filter", - minimum: 0, - maximum: 1, - type: V4L2_CTRL_TYPE_BOOLEAN, + .id = V4L2_CID_PRIVATE_LUMAFILTER, + .name = "luma decimation filter", + .minimum = 0, + .maximum = 1, + .type = V4L2_CTRL_TYPE_BOOLEAN, },{ - id: V4L2_CID_PRIVATE_AGC_CRUSH, - name: "agc crush", - minimum: 0, - maximum: 1, - type: V4L2_CTRL_TYPE_BOOLEAN, + .id = V4L2_CID_PRIVATE_AGC_CRUSH, + .name = "agc crush", + .minimum = 0, + .maximum = 1, + .type = V4L2_CTRL_TYPE_BOOLEAN, } }; const int BTTV_CTLS = (sizeof(bttv_ctls)/sizeof(struct v4l2_queryctrl)); @@ -1314,10 +1314,10 @@ static void buffer_release(struct file *file, struct videobuf_buffer *vb) } static struct videobuf_queue_ops bttv_video_qops = { - buf_setup: buffer_setup, - buf_prepare: buffer_prepare, - buf_queue: buffer_queue, - buf_release: buffer_release, + .buf_setup = buffer_setup, + .buf_prepare = buffer_prepare, + .buf_queue = buffer_queue, + .buf_release = buffer_release, }; static const char *v4l1_ioctls[] = { @@ -2706,33 +2706,33 @@ bttv_mmap(struct file *file, struct vm_area_struct *vma) static struct file_operations bttv_fops = { - owner: THIS_MODULE, - open: bttv_open, - release: bttv_release, - ioctl: bttv_ioctl, - llseek: no_llseek, - read: bttv_read, - mmap: bttv_mmap, - poll: bttv_poll, + .owner = THIS_MODULE, + .open = bttv_open, + .release = bttv_release, + .ioctl = bttv_ioctl, + .llseek = no_llseek, + .read = bttv_read, + .mmap = bttv_mmap, + .poll = bttv_poll, }; static struct video_device bttv_video_template = { - name: "UNSET", - type: VID_TYPE_CAPTURE|VID_TYPE_TUNER|VID_TYPE_OVERLAY| + .name = "UNSET", + .type = VID_TYPE_CAPTURE|VID_TYPE_TUNER|VID_TYPE_OVERLAY| VID_TYPE_CLIPPING|VID_TYPE_SCALES, - hardware: VID_HARDWARE_BT848, - fops: &bttv_fops, - minor: -1, + .hardware = VID_HARDWARE_BT848, + .fops = &bttv_fops, + .minor = -1, }; struct video_device bttv_vbi_template = { - name: "bt848/878 vbi", - type: VID_TYPE_TUNER|VID_TYPE_TELETEXT, - hardware: VID_HARDWARE_BT848, - fops: &bttv_fops, - minor: -1, + .name = "bt848/878 vbi", + .type = VID_TYPE_TUNER|VID_TYPE_TELETEXT, + .hardware = VID_HARDWARE_BT848, + .fops = &bttv_fops, + .minor = -1, }; /* ----------------------------------------------------------------------- */ @@ -2841,20 +2841,20 @@ static int radio_ioctl(struct inode *inode, struct file *file, static struct file_operations radio_fops = { - owner: THIS_MODULE, - open: radio_open, - release: radio_release, - ioctl: radio_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = radio_open, + .release = radio_release, + .ioctl = radio_ioctl, + .llseek = no_llseek, }; static struct video_device radio_template = { - name: "bt848/878 radio", - type: VID_TYPE_TUNER, - hardware: VID_HARDWARE_BT848, - fops: &radio_fops, - minor: -1, + .name = "bt848/878 radio", + .type = VID_TYPE_TUNER, + .hardware = VID_HARDWARE_BT848, + .fops = &radio_fops, + .minor = -1, }; /* ----------------------------------------------------------------------- */ @@ -3439,10 +3439,10 @@ static struct pci_device_id bttv_pci_tbl[] __devinitdata = { MODULE_DEVICE_TABLE(pci, bttv_pci_tbl); static struct pci_driver bttv_pci_driver = { - name: "bttv", - id_table: bttv_pci_tbl, - probe: bttv_probe, - remove: __devexit_p(bttv_remove), + .name = "bttv", + .id_table = bttv_pci_tbl, + .probe = bttv_probe, + .remove = __devexit_p(bttv_remove), }; static int bttv_init_module(void) diff --git a/drivers/media/video/bttv-if.c b/drivers/media/video/bttv-if.c index 8702788cfc90..08eff8c66cfa 100644 --- a/drivers/media/video/bttv-if.c +++ b/drivers/media/video/bttv-if.c @@ -262,27 +262,27 @@ void bttv_i2c_call(unsigned int card, unsigned int cmd, void *arg) } static struct i2c_algo_bit_data bttv_i2c_algo_template = { - setsda: bttv_bit_setsda, - setscl: bttv_bit_setscl, - getsda: bttv_bit_getsda, - getscl: bttv_bit_getscl, - udelay: 16, - mdelay: 10, - timeout: 200, + .setsda = bttv_bit_setsda, + .setscl = bttv_bit_setscl, + .getsda = bttv_bit_getsda, + .getscl = bttv_bit_getscl, + .udelay = 16, + .mdelay = 10, + .timeout = 200, }; static struct i2c_adapter bttv_i2c_adap_template = { - name: "bt848", - id: I2C_HW_B_BT848, - inc_use: bttv_inc_use, - dec_use: bttv_dec_use, - client_register: attach_inform, - client_unregister: detach_inform, + .name = "bt848", + .id = I2C_HW_B_BT848, + .inc_use = bttv_inc_use, + .dec_use = bttv_dec_use, + .client_register = attach_inform, + .client_unregister = detach_inform, }; static struct i2c_client bttv_i2c_client_template = { - name: "bttv internal use only", - id: -1, + .name = "bttv internal use only", + .id = -1, }; diff --git a/drivers/media/video/bttv-vbi.c b/drivers/media/video/bttv-vbi.c index 4bba17c6d51e..754256d4924e 100644 --- a/drivers/media/video/bttv-vbi.c +++ b/drivers/media/video/bttv-vbi.c @@ -123,10 +123,10 @@ static void vbi_buffer_release(struct file *file, struct videobuf_buffer *vb) } struct videobuf_queue_ops bttv_vbi_qops = { - buf_setup: vbi_buffer_setup, - buf_prepare: vbi_buffer_prepare, - buf_queue: vbi_buffer_queue, - buf_release: vbi_buffer_release, + .buf_setup = vbi_buffer_setup, + .buf_prepare = vbi_buffer_prepare, + .buf_queue = vbi_buffer_queue, + .buf_release = vbi_buffer_release, }; /* ----------------------------------------------------------------------- */ diff --git a/drivers/media/video/bw-qcam.c b/drivers/media/video/bw-qcam.c index fe6c48a9cd87..189225ebb5bf 100644 --- a/drivers/media/video/bw-qcam.c +++ b/drivers/media/video/bw-qcam.c @@ -885,20 +885,20 @@ static int qcam_read(struct file *file, char *buf, } static struct file_operations qcam_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: qcam_ioctl, - read: qcam_read, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = qcam_ioctl, + .read = qcam_read, + .llseek = no_llseek, }; static struct video_device qcam_template= { - owner: THIS_MODULE, - name: "Connectix Quickcam", - type: VID_TYPE_CAPTURE, - hardware: VID_HARDWARE_QCAM_BW, - fops: &qcam_fops, + .owner = THIS_MODULE, + .name = "Connectix Quickcam", + .type = VID_TYPE_CAPTURE, + .hardware = VID_HARDWARE_QCAM_BW, + .fops = &qcam_fops, }; #define MAX_CAMS 4 diff --git a/drivers/media/video/c-qcam.c b/drivers/media/video/c-qcam.c index e58f17589938..a28dc95daa9c 100644 --- a/drivers/media/video/c-qcam.c +++ b/drivers/media/video/c-qcam.c @@ -686,21 +686,21 @@ static int qcam_read(struct file *file, char *buf, /* video device template */ static struct file_operations qcam_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: qcam_ioctl, - read: qcam_read, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = qcam_ioctl, + .read = qcam_read, + .llseek = no_llseek, }; static struct video_device qcam_template= { - owner: THIS_MODULE, - name: "Colour QuickCam", - type: VID_TYPE_CAPTURE, - hardware: VID_HARDWARE_QCAM_C, - fops: &qcam_fops, + .owner = THIS_MODULE, + .name = "Colour QuickCam", + .type = VID_TYPE_CAPTURE, + .hardware = VID_HARDWARE_QCAM_C, + .fops = &qcam_fops, }; /* Initialize the QuickCam driver control structure. */ diff --git a/drivers/media/video/cpia.c b/drivers/media/video/cpia.c index d57cd471d6b4..1abef42a5896 100644 --- a/drivers/media/video/cpia.c +++ b/drivers/media/video/cpia.c @@ -3783,21 +3783,21 @@ static int cpia_mmap(struct file *file, struct vm_area_struct *vma) } static struct file_operations cpia_fops = { - owner: THIS_MODULE, - open: cpia_open, - release: cpia_close, - read: cpia_read, - mmap: cpia_mmap, - ioctl: cpia_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = cpia_open, + .release = cpia_close, + .read = cpia_read, + .mmap = cpia_mmap, + .ioctl = cpia_ioctl, + .llseek = no_llseek, }; static struct video_device cpia_template = { - owner: THIS_MODULE, - name: "CPiA Camera", - type: VID_TYPE_CAPTURE, - hardware: VID_HARDWARE_CPIA, - fops: &cpia_fops, + .owner = THIS_MODULE, + .name = "CPiA Camera", + .type = VID_TYPE_CAPTURE, + .hardware = VID_HARDWARE_CPIA, + .fops = &cpia_fops, }; /* initialise cam_data structure */ diff --git a/drivers/media/video/cpia_usb.c b/drivers/media/video/cpia_usb.c index d49f8d0fe742..1b4072e98676 100644 --- a/drivers/media/video/cpia_usb.c +++ b/drivers/media/video/cpia_usb.c @@ -582,10 +582,10 @@ MODULE_LICENSE("GPL"); static struct usb_driver cpia_driver = { - name: "cpia", - probe: cpia_probe, - disconnect: cpia_disconnect, - id_table: cpia_id_table, + .name = "cpia", + .probe = cpia_probe, + .disconnect = cpia_disconnect, + .id_table = cpia_id_table, }; /* don't use dev, it may be NULL! (see usb_cpia_cleanup) */ diff --git a/drivers/media/video/msp3400.c b/drivers/media/video/msp3400.c index 16e55db2a13c..343af442c095 100644 --- a/drivers/media/video/msp3400.c +++ b/drivers/media/video/msp3400.c @@ -1213,19 +1213,19 @@ static int msp_probe(struct i2c_adapter *adap); static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg); static struct i2c_driver driver = { - name: "i2c msp3400 driver", - id: I2C_DRIVERID_MSP3400, - flags: I2C_DF_NOTIFY, - attach_adapter: msp_probe, - detach_client: msp_detach, - command: msp_command, + .name = "i2cmsp3400driver", + .id = I2C_DRIVERID_MSP3400, + .flags = I2C_DF_NOTIFY, + .attach_adapter = msp_probe, + .detach_client = msp_detach, + .command = msp_command, }; static struct i2c_client client_template = { - name: "(unset)", - flags: I2C_CLIENT_ALLOW_USE, - driver: &driver, + .name = "(unset)", + .flags = I2C_CLIENT_ALLOW_USE, + .driver = &driver, }; static int msp_attach(struct i2c_adapter *adap, int addr, diff --git a/drivers/media/video/planb.c b/drivers/media/video/planb.c index 84795ecae31f..619cc03012fb 100644 --- a/drivers/media/video/planb.c +++ b/drivers/media/video/planb.c @@ -2020,16 +2020,16 @@ static int planb_mmap(struct vm_area_struct *vma, struct video_device *dev, cons static struct video_device planb_template= { - owner: THIS_MODULE, - name: PLANB_DEVICE_NAME, - type: VID_TYPE_OVERLAY, - hardware: VID_HARDWARE_PLANB, - open: planb_open, - close: planb_close, - read: planb_read, - write: planb_write, - ioctl: planb_ioctl, - mmap: planb_mmap, /* mmap? */ + .owner = THIS_MODULE, + .name = PLANB_DEVICE_NAME, + .type = VID_TYPE_OVERLAY, + .hardware = VID_HARDWARE_PLANB, + .open = planb_open, + .close = planb_close, + .read = planb_read, + .write = planb_write, + .ioctl = planb_ioctl, + .mmap = planb_mmap, /* mmap? */ }; static int init_planb(struct planb *pb) diff --git a/drivers/media/video/pms.c b/drivers/media/video/pms.c index 903d73fab67f..952b0b9865e1 100644 --- a/drivers/media/video/pms.c +++ b/drivers/media/video/pms.c @@ -875,21 +875,21 @@ static int pms_read(struct file *file, char *buf, } static struct file_operations pms_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: pms_ioctl, - read: pms_read, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = pms_ioctl, + .read = pms_read, + .llseek = no_llseek, }; static struct video_device pms_template= { - owner: THIS_MODULE, - name: "Mediavision PMS", - type: VID_TYPE_CAPTURE, - hardware: VID_HARDWARE_PMS, - fops: &pms_fops, + .owner = THIS_MODULE, + .name = "Mediavision PMS", + .type = VID_TYPE_CAPTURE, + .hardware = VID_HARDWARE_PMS, + .fops = &pms_fops, }; struct pms_device pms_device; diff --git a/drivers/media/video/saa5249.c b/drivers/media/video/saa5249.c index 8082f27ad51a..30041f612215 100644 --- a/drivers/media/video/saa5249.c +++ b/drivers/media/video/saa5249.c @@ -678,20 +678,20 @@ module_init(init_saa_5249); module_exit(cleanup_saa_5249); static struct file_operations saa_fops = { - owner: THIS_MODULE, - open: saa5249_open, - release: saa5249_release, - ioctl: saa5249_ioctl, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = saa5249_open, + .release = saa5249_release, + .ioctl = saa5249_ioctl, + .llseek = no_llseek, }; static struct video_device saa_template = { - owner: THIS_MODULE, - name: IF_NAME, - type: VID_TYPE_TELETEXT, /*| VID_TYPE_TUNER ?? */ - hardware: VID_HARDWARE_SAA5249, - fops: &saa_fops, + .owner = THIS_MODULE, + .name = IF_NAME, + .type = VID_TYPE_TELETEXT, /*| VID_TYPE_TUNER ?? */ + .hardware = VID_HARDWARE_SAA5249, + .fops = &saa_fops, }; MODULE_LICENSE("GPL"); diff --git a/drivers/media/video/stradis.c b/drivers/media/video/stradis.c index f72e30e8ca27..71b87992b921 100644 --- a/drivers/media/video/stradis.c +++ b/drivers/media/video/stradis.c @@ -1970,16 +1970,16 @@ static void saa_close(struct video_device *dev) /* template for video_device-structure */ static struct video_device saa_template = { - owner: THIS_MODULE, - name: "SAA7146A", - type: VID_TYPE_CAPTURE | VID_TYPE_OVERLAY, - hardware: VID_HARDWARE_SAA7146, - open: saa_open, - close: saa_close, - read: saa_read, - write: saa_write, - ioctl: saa_ioctl, - mmap: saa_mmap, + .owner = THIS_MODULE, + .name = "SAA7146A", + .type = VID_TYPE_CAPTURE | VID_TYPE_OVERLAY, + .hardware = VID_HARDWARE_SAA7146, + .open = saa_open, + .close = saa_close, + .read = saa_read, + .write = saa_write, + .ioctl = saa_ioctl, + .mmap = saa_mmap, }; static int configure_saa7146(struct pci_dev *dev, int num) diff --git a/drivers/media/video/tuner.c b/drivers/media/video/tuner.c index 30667c249859..0c08bf609dc4 100644 --- a/drivers/media/video/tuner.c +++ b/drivers/media/video/tuner.c @@ -975,18 +975,18 @@ tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) /* ----------------------------------------------------------------------- */ static struct i2c_driver driver = { - name: "i2c TV tuner driver", - id: I2C_DRIVERID_TUNER, - flags: I2C_DF_NOTIFY, - attach_adapter: tuner_probe, - detach_client: tuner_detach, - command: tuner_command, + .name = "i2cTVtunerdriver", + .id = I2C_DRIVERID_TUNER, + .flags = I2C_DF_NOTIFY, + .attach_adapter = tuner_probe, + .detach_client = tuner_detach, + .command = tuner_command, }; -static struct i2c_client client_template = +static structi2c_clientclient_template = { - name: "(tuner unset)", - flags: I2C_CLIENT_ALLOW_USE, - driver: &driver, + .name = "(tunerunset)", + .flags = I2C_CLIENT_ALLOW_USE, + .driver = &driver, }; static int tuner_init_module(void) diff --git a/drivers/media/video/tvaudio.c b/drivers/media/video/tvaudio.c index 918279589180..3aba1116f4d7 100644 --- a/drivers/media/video/tvaudio.c +++ b/drivers/media/video/tvaudio.c @@ -1156,167 +1156,167 @@ MODULE_PARM(pic16c54,"i"); static struct CHIPDESC chiplist[] = { { - name: "tda9840", - id: I2C_DRIVERID_TDA9840, - insmodopt: &tda9840, - addr_lo: I2C_TDA9840 >> 1, - addr_hi: I2C_TDA9840 >> 1, - registers: 5, - - getmode: tda9840_getmode, - setmode: tda9840_setmode, - checkmode: generic_checkmode, - - init: { 2, { TDA9840_TEST, TDA9840_TEST_INT1SN + .name = "tda9840", + .id = I2C_DRIVERID_TDA9840, + .insmodopt = &tda9840, + .addr_lo = I2C_TDA9840 >> 1, + .addr_hi = I2C_TDA9840 >> 1, + .registers = 5, + + .getmode = tda9840_getmode, + .setmode = tda9840_setmode, + .checkmode = generic_checkmode, + + .init = { 2, { TDA9840_TEST, TDA9840_TEST_INT1SN /* ,TDA9840_SW, TDA9840_MONO */} } }, { - name: "tda9873h", - id: I2C_DRIVERID_TDA9873, - checkit: tda9873_checkit, - insmodopt: &tda9873, - addr_lo: I2C_TDA985x_L >> 1, - addr_hi: I2C_TDA985x_H >> 1, - registers: 3, - flags: CHIP_HAS_INPUTSEL, - - getmode: tda9873_getmode, - setmode: tda9873_setmode, - checkmode: generic_checkmode, - - init: { 4, { TDA9873_SW, 0xa4, 0x06, 0x03 } }, - inputreg: TDA9873_SW, - inputmute: TDA9873_MUTE | TDA9873_AUTOMUTE, - inputmap: {0xa0, 0xa2, 0xa0, 0xa0, 0xc0}, - inputmask: TDA9873_INP_MASK | TDA9873_MUTE | TDA9873_AUTOMUTE + .name = "tda9873h", + .id = I2C_DRIVERID_TDA9873, + .checkit = tda9873_checkit, + .insmodopt = &tda9873, + .addr_lo = I2C_TDA985x_L >> 1, + .addr_hi = I2C_TDA985x_H >> 1, + .registers = 3, + .flags = CHIP_HAS_INPUTSEL, + + .getmode = tda9873_getmode, + .setmode = tda9873_setmode, + .checkmode = generic_checkmode, + + .init = { 4, { TDA9873_SW, 0xa4, 0x06, 0x03 } }, + .inputreg = TDA9873_SW, + .inputmute = TDA9873_MUTE | TDA9873_AUTOMUTE, + .inputmap = {0xa0, 0xa2, 0xa0, 0xa0, 0xc0}, + .inputmask = TDA9873_INP_MASK | TDA9873_MUTE | TDA9873_AUTOMUTE }, { - name: "tda9874h/a", - id: I2C_DRIVERID_TDA9874, - checkit: tda9874a_checkit, - initialize: tda9874a_initialize, - insmodopt: &tda9874a, - addr_lo: I2C_TDA9874 >> 1, - addr_hi: I2C_TDA9874 >> 1, - - getmode: tda9874a_getmode, - setmode: tda9874a_setmode, - checkmode: generic_checkmode, + .name = "tda9874h/a", + .id = I2C_DRIVERID_TDA9874, + .checkit = tda9874a_checkit, + .initialize = tda9874a_initialize, + .insmodopt = &tda9874a, + .addr_lo = I2C_TDA9874 >> 1, + .addr_hi = I2C_TDA9874 >> 1, + + .getmode = tda9874a_getmode, + .setmode = tda9874a_setmode, + .checkmode = generic_checkmode, }, { - name: "tda9850", - id: I2C_DRIVERID_TDA9850, - insmodopt: &tda9850, - addr_lo: I2C_TDA985x_L >> 1, - addr_hi: I2C_TDA985x_H >> 1, - registers: 11, + .name = "tda9850", + .id = I2C_DRIVERID_TDA9850, + .insmodopt = &tda9850, + .addr_lo = I2C_TDA985x_L >> 1, + .addr_hi = I2C_TDA985x_H >> 1, + .registers = 11, - getmode: tda985x_getmode, - setmode: tda985x_setmode, + .getmode = tda985x_getmode, + .setmode = tda985x_setmode, - init: { 8, { TDA9850_C4, 0x08, 0x08, TDA985x_STEREO, 0x07, 0x10, 0x10, 0x03 } } + .init = { 8, { TDA9850_C4, 0x08, 0x08, TDA985x_STEREO, 0x07, 0x10, 0x10, 0x03 } } }, { - name: "tda9855", - id: I2C_DRIVERID_TDA9855, - insmodopt: &tda9855, - addr_lo: I2C_TDA985x_L >> 1, - addr_hi: I2C_TDA985x_H >> 1, - registers: 11, - flags: CHIP_HAS_VOLUME | CHIP_HAS_BASSTREBLE, - - leftreg: TDA9855_VL, - rightreg: TDA9855_VR, - bassreg: TDA9855_BA, - treblereg: TDA9855_TR, - volfunc: tda9855_volume, - bassfunc: tda9855_bass, - treblefunc: tda9855_treble, - - getmode: tda985x_getmode, - setmode: tda985x_setmode, - - init: { 12, { 0, 0x6f, 0x6f, 0x0e, 0x07<<1, 0x8<<2, + .name = "tda9855", + .id = I2C_DRIVERID_TDA9855, + .insmodopt = &tda9855, + .addr_lo = I2C_TDA985x_L >> 1, + .addr_hi = I2C_TDA985x_H >> 1, + .registers = 11, + .flags = CHIP_HAS_VOLUME | CHIP_HAS_BASSTREBLE, + + .leftreg = TDA9855_VL, + .rightreg = TDA9855_VR, + .bassreg = TDA9855_BA, + .treblereg = TDA9855_TR, + .volfunc = tda9855_volume, + .bassfunc = tda9855_bass, + .treblefunc = tda9855_treble, + + .getmode = tda985x_getmode, + .setmode = tda985x_setmode, + + .init = { 12, { 0, 0x6f, 0x6f, 0x0e, 0x07<<1, 0x8<<2, TDA9855_MUTE | TDA9855_AVL | TDA9855_LOUD | TDA9855_INT, TDA985x_STEREO | TDA9855_LINEAR | TDA9855_TZCM | TDA9855_VZCM, 0x07, 0x10, 0x10, 0x03 }} }, { - name: "tea6300", - id: I2C_DRIVERID_TEA6300, - insmodopt: &tea6300, - addr_lo: I2C_TEA6300 >> 1, - addr_hi: I2C_TEA6300 >> 1, - registers: 6, - flags: CHIP_HAS_VOLUME | CHIP_HAS_BASSTREBLE | CHIP_HAS_INPUTSEL, - - leftreg: TEA6300_VR, - rightreg: TEA6300_VL, - bassreg: TEA6300_BA, - treblereg: TEA6300_TR, - volfunc: tea6300_shift10, - bassfunc: tea6300_shift12, - treblefunc: tea6300_shift12, - - inputreg: TEA6300_S, - inputmap: { TEA6300_S_SA, TEA6300_S_SB, TEA6300_S_SC }, - inputmute: TEA6300_S_GMU, + .name = "tea6300", + .id = I2C_DRIVERID_TEA6300, + .insmodopt = &tea6300, + .addr_lo = I2C_TEA6300 >> 1, + .addr_hi = I2C_TEA6300 >> 1, + .registers = 6, + .flags = CHIP_HAS_VOLUME | CHIP_HAS_BASSTREBLE | CHIP_HAS_INPUTSEL, + + .leftreg = TEA6300_VR, + .rightreg = TEA6300_VL, + .bassreg = TEA6300_BA, + .treblereg = TEA6300_TR, + .volfunc = tea6300_shift10, + .bassfunc = tea6300_shift12, + .treblefunc = tea6300_shift12, + + .inputreg = TEA6300_S, + .inputmap = { TEA6300_S_SA, TEA6300_S_SB, TEA6300_S_SC }, + .inputmute = TEA6300_S_GMU, }, { - name: "tea6420", - id: I2C_DRIVERID_TEA6420, - insmodopt: &tea6420, - addr_lo: I2C_TEA6420 >> 1, - addr_hi: I2C_TEA6420 >> 1, - registers: 1, - flags: CHIP_HAS_INPUTSEL, - - inputreg: -1, - inputmap: { TEA6420_S_SA, TEA6420_S_SB, TEA6420_S_SC }, - inputmute: TEA6300_S_GMU, + .name = "tea6420", + .id = I2C_DRIVERID_TEA6420, + .insmodopt = &tea6420, + .addr_lo = I2C_TEA6420 >> 1, + .addr_hi = I2C_TEA6420 >> 1, + .registers = 1, + .flags = CHIP_HAS_INPUTSEL, + + .inputreg = -1, + .inputmap = { TEA6420_S_SA, TEA6420_S_SB, TEA6420_S_SC }, + .inputmute = TEA6300_S_GMU, }, { - name: "tda8425", - id: I2C_DRIVERID_TDA8425, - insmodopt: &tda8425, - addr_lo: I2C_TDA8425 >> 1, - addr_hi: I2C_TDA8425 >> 1, - registers: 9, - flags: CHIP_HAS_VOLUME | CHIP_HAS_BASSTREBLE | CHIP_HAS_INPUTSEL, - - leftreg: TDA8425_VR, - rightreg: TDA8425_VL, - bassreg: TDA8425_BA, - treblereg: TDA8425_TR, - volfunc: tda8425_shift10, - bassfunc: tda8425_shift12, - treblefunc: tda8425_shift12, - - inputreg: TDA8425_S1, - inputmap: { TDA8425_S1_CH1, TDA8425_S1_CH1, TDA8425_S1_CH1 }, - inputmute: TDA8425_S1_OFF, - - setmode: tda8425_setmode, + .name = "tda8425", + .id = I2C_DRIVERID_TDA8425, + .insmodopt = &tda8425, + .addr_lo = I2C_TDA8425 >> 1, + .addr_hi = I2C_TDA8425 >> 1, + .registers = 9, + .flags = CHIP_HAS_VOLUME | CHIP_HAS_BASSTREBLE | CHIP_HAS_INPUTSEL, + + .leftreg = TDA8425_VR, + .rightreg = TDA8425_VL, + .bassreg = TDA8425_BA, + .treblereg = TDA8425_TR, + .volfunc = tda8425_shift10, + .bassfunc = tda8425_shift12, + .treblefunc = tda8425_shift12, + + .inputreg = TDA8425_S1, + .inputmap = { TDA8425_S1_CH1, TDA8425_S1_CH1, TDA8425_S1_CH1 }, + .inputmute = TDA8425_S1_OFF, + + .setmode = tda8425_setmode, }, { - name: "pic16c54 (PV951)", - id: I2C_DRIVERID_PIC16C54_PV951, - insmodopt: &pic16c54, - addr_lo: I2C_PIC16C54 >> 1, - addr_hi: I2C_PIC16C54>> 1, - registers: 2, - flags: CHIP_HAS_INPUTSEL, - - inputreg: PIC16C54_REG_MISC, - inputmap: {PIC16C54_MISC_SND_NOTMUTE|PIC16C54_MISC_SWITCH_TUNER, + .name = "pic16c54 (PV951)", + .id = I2C_DRIVERID_PIC16C54_PV951, + .insmodopt = &pic16c54, + .addr_lo = I2C_PIC16C54 >> 1, + .addr_hi = I2C_PIC16C54>> 1, + .registers = 2, + .flags = CHIP_HAS_INPUTSEL, + + .inputreg = PIC16C54_REG_MISC, + .inputmap = {PIC16C54_MISC_SND_NOTMUTE|PIC16C54_MISC_SWITCH_TUNER, PIC16C54_MISC_SND_NOTMUTE|PIC16C54_MISC_SWITCH_LINE, PIC16C54_MISC_SND_NOTMUTE|PIC16C54_MISC_SWITCH_LINE, PIC16C54_MISC_SND_MUTE,PIC16C54_MISC_SND_MUTE, PIC16C54_MISC_SND_NOTMUTE}, - inputmute: PIC16C54_MISC_SND_MUTE, + .inputmute = PIC16C54_MISC_SND_MUTE, }, - { name: NULL } /* EOF */ + { .name = NULL } /* EOF */ }; @@ -1544,19 +1544,19 @@ static int chip_command(struct i2c_client *client, static struct i2c_driver driver = { - name: "generic i2c audio driver", - id: I2C_DRIVERID_TVAUDIO, - flags: I2C_DF_NOTIFY, - attach_adapter: chip_probe, - detach_client: chip_detach, - command: chip_command, + .name = "generic i2c audio driver", + .id = I2C_DRIVERID_TVAUDIO, + .flags = I2C_DF_NOTIFY, + .attach_adapter = chip_probe, + .detach_client = chip_detach, + .command = chip_command, }; static struct i2c_client client_template = { - name: "(unset)", - flags: I2C_CLIENT_ALLOW_USE, - driver: &driver, + .name = "(unset)", + .flags = I2C_CLIENT_ALLOW_USE, + .driver = &driver, }; static int audiochip_init_module(void) diff --git a/drivers/media/video/tvmixer.c b/drivers/media/video/tvmixer.c index 9f6f353f92b4..62f1b96b0e78 100644 --- a/drivers/media/video/tvmixer.c +++ b/drivers/media/video/tvmixer.c @@ -217,19 +217,19 @@ static int tvmixer_release(struct inode *inode, struct file *file) static struct i2c_driver driver = { - name: "tv card mixer driver", - id: I2C_DRIVERID_TVMIXER, - flags: I2C_DF_DUMMY, - attach_adapter: tvmixer_adapters, - detach_client: tvmixer_clients, + .name = "tv card mixer driver", + .id = I2C_DRIVERID_TVMIXER, + .flags = I2C_DF_DUMMY, + .attach_adapter = tvmixer_adapters, + .detach_client = tvmixer_clients, }; static struct file_operations tvmixer_fops = { - owner: THIS_MODULE, - llseek: no_llseek, - ioctl: tvmixer_ioctl, - open: tvmixer_open, - release: tvmixer_release, + .owner = THIS_MODULE, + .llseek = no_llseek, + .ioctl = tvmixer_ioctl, + .open = tvmixer_open, + .release = tvmixer_release, }; /* ----------------------------------------------------------------------- */ diff --git a/drivers/media/video/video-buf.c b/drivers/media/video/video-buf.c index 25a1d93482c0..2f51c2a9fa2f 100644 --- a/drivers/media/video/video-buf.c +++ b/drivers/media/video/video-buf.c @@ -926,9 +926,9 @@ videobuf_vm_nopage(struct vm_area_struct *vma, unsigned long vaddr, static struct vm_operations_struct videobuf_vm_ops = { - open: videobuf_vm_open, - close: videobuf_vm_close, - nopage: videobuf_vm_nopage, + .open = videobuf_vm_open, + .close = videobuf_vm_close, + .nopage = videobuf_vm_nopage, }; int videobuf_mmap_setup(struct file *file, struct videobuf_queue *q, diff --git a/drivers/media/video/videodev.c b/drivers/media/video/videodev.c index aef31f7155d5..a7da10718413 100644 --- a/drivers/media/video/videodev.c +++ b/drivers/media/video/videodev.c @@ -472,9 +472,9 @@ void video_unregister_device(struct video_device *vfd) static struct file_operations video_fops= { - owner: THIS_MODULE, - llseek: no_llseek, - open: video_open, + .owner = THIS_MODULE, + .llseek = no_llseek, + .open = video_open, }; /* diff --git a/drivers/media/video/vino.c b/drivers/media/video/vino.c index c64efb7794ee..25f4f2fe1c97 100644 --- a/drivers/media/video/vino.c +++ b/drivers/media/video/vino.c @@ -222,14 +222,14 @@ static int vino_mmap(struct video_device *dev, const char *adr, } static struct video_device vino_dev = { - owner: THIS_MODULE, - name: "Vino IndyCam/TV", - type: VID_TYPE_CAPTURE, - hardware: VID_HARDWARE_VINO, - open: vino_open, - close: vino_close, - ioctl: vino_ioctl, - mmap: vino_mmap, + .owner = THIS_MODULE, + .name = "Vino IndyCam/TV", + .type = VID_TYPE_CAPTURE, + .hardware = VID_HARDWARE_VINO, + .open = vino_open, + .close = vino_close, + .ioctl = vino_ioctl, + .mmap = vino_mmap, }; int __init init_vino(struct video_device *dev) diff --git a/drivers/media/video/w9966.c b/drivers/media/video/w9966.c index b7fb6f24ee5f..4c8402672645 100644 --- a/drivers/media/video/w9966.c +++ b/drivers/media/video/w9966.c @@ -179,19 +179,19 @@ static int w9966_v4l_read(struct file *file, char *buf, size_t count, loff_t *ppos); static struct file_operations w9966_fops = { - owner: THIS_MODULE, - open: video_exclusive_open, - release: video_exclusive_release, - ioctl: w9966_v4l_ioctl, - read: w9966_v4l_read, - llseek: no_llseek, + .owner = THIS_MODULE, + .open = video_exclusive_open, + .release = video_exclusive_release, + .ioctl = w9966_v4l_ioctl, + .read = w9966_v4l_read, + .llseek = no_llseek, }; static struct video_device w9966_template = { - owner: THIS_MODULE, - name: W9966_DRIVERNAME, - type: VID_TYPE_CAPTURE | VID_TYPE_SCALES, - hardware: VID_HARDWARE_W9966, - fops: &w9966_fops, + .owner = THIS_MODULE, + .name = W9966_DRIVERNAME, + .type = VID_TYPE_CAPTURE | VID_TYPE_SCALES, + .hardware = VID_HARDWARE_W9966, + .fops = &w9966_fops, }; /* @@ -710,14 +710,13 @@ static int w9966_v4l_do_ioctl(struct inode *inode, struct file *file, case VIDIOCGCAP: { static struct video_capability vcap = { - name: W9966_DRIVERNAME, - type: VID_TYPE_CAPTURE | VID_TYPE_SCALES, - channels: 1, - audios: 0, - maxwidth: W9966_WND_MAX_W, - maxheight: W9966_WND_MAX_H, - minwidth: 2, - minheight: 1, + .name = W9966_DRIVERNAME, + .type = VID_TYPE_CAPTURE | VID_TYPE_SCALES, + .channels = 1, + .maxwidth = W9966_WND_MAX_W, + .maxheight = W9966_WND_MAX_H, + .minwidth = 2, + .minheight = 1, }; struct video_capability *cap = arg; *cap = vcap; diff --git a/drivers/media/video/zr36067.c b/drivers/media/video/zr36067.c index 7c7c4aab1d92..70478175aaee 100644 --- a/drivers/media/video/zr36067.c +++ b/drivers/media/video/zr36067.c @@ -4396,18 +4396,18 @@ static int zoran_init_done(struct video_device *dev) } static struct video_device zoran_template = { - owner: THIS_MODULE, - name: ZORAN_NAME, - type: VID_TYPE_CAPTURE | VID_TYPE_OVERLAY | VID_TYPE_CLIPPING | + .owner = THIS_MODULE, + .name = ZORAN_NAME, + .type = VID_TYPE_CAPTURE | VID_TYPE_OVERLAY | VID_TYPE_CLIPPING | VID_TYPE_FRAMERAM | VID_TYPE_SCALES | VID_TYPE_SUBCAPTURE, - hardware: ZORAN_HARDWARE, - open: zoran_open, - close: zoran_close, - read: zoran_read, - write: zoran_write, - ioctl: zoran_ioctl, - mmap: zoran_mmap, - initialize: zoran_init_done, + .hardware = ZORAN_HARDWARE, + .open = zoran_open, + .close = zoran_close, + .read = zoran_read, + .write = zoran_write, + .ioctl = zoran_ioctl, + .mmap = zoran_mmap, + .initialize = zoran_init_done, }; /* diff --git a/drivers/media/video/zr36120.c b/drivers/media/video/zr36120.c index 931361d4abcd..7c4c9a82dc58 100644 --- a/drivers/media/video/zr36120.c +++ b/drivers/media/video/zr36120.c @@ -1490,18 +1490,18 @@ int zoran_mmap(struct vm_area_struct *vma, struct video_device* dev, const char* static struct video_device zr36120_template= { - owner: THIS_MODULE, - name: "UNSET", - type: VID_TYPE_TUNER|VID_TYPE_CAPTURE|VID_TYPE_OVERLAY, - hardware: VID_HARDWARE_ZR36120, - open: zoran_open, - close: zoran_close, - read: zoran_read, - write: zoran_write, - poll: zoran_poll, - ioctl: zoran_ioctl, - mmap: zoran_mmap, - minor: -1, + .owner = THIS_MODULE, + .name = "UNSET", + .type = VID_TYPE_TUNER|VID_TYPE_CAPTURE|VID_TYPE_OVERLAY, + .hardware = VID_HARDWARE_ZR36120, + .open = zoran_open, + .close = zoran_close, + .read = zoran_read, + .write = zoran_write, + .poll = zoran_poll, + .ioctl = zoran_ioctl, + .mmap = zoran_mmap, + .minor = -1, }; static @@ -1826,17 +1826,17 @@ int vbi_ioctl(struct video_device *dev, unsigned int cmd, void *arg) static struct video_device vbi_template= { - owner: THIS_MODULE, - name: "UNSET", - type: VID_TYPE_CAPTURE|VID_TYPE_TELETEXT, - hardware: VID_HARDWARE_ZR36120, - open: vbi_open, - close: vbi_close, - read: vbi_read, - write: zoran_write, - poll: vbi_poll, - ioctl: vbi_ioctl, - minor: -1, + .owner = THIS_MODULE, + .name = "UNSET", + .type = VID_TYPE_CAPTURE|VID_TYPE_TELETEXT, + .hardware = VID_HARDWARE_ZR36120, + .open = vbi_open, + .close = vbi_close, + .read = vbi_read, + .write = zoran_write, + .poll = vbi_poll, + .ioctl = vbi_ioctl, + .minor = -1, }; /* diff --git a/drivers/net/fec.c b/drivers/net/fec.c index b9affa42659b..045e34f6ce7f 100644 --- a/drivers/net/fec.c +++ b/drivers/net/fec.c @@ -196,6 +196,7 @@ static struct net_device_stats *fec_enet_get_stats(struct net_device *dev); static void set_multicast_list(struct net_device *dev); static void fec_restart(struct net_device *dev, int duplex); static void fec_stop(struct net_device *dev); +static void fec_set_mac_address(struct net_device *dev); /* MII processing. We keep this as simple as possible. Requests are @@ -1479,6 +1480,8 @@ fec_enet_open(struct net_device *dev) * a simple way to do that. */ + fec_set_mac_address(dev); + fep->sequence_done = 0; fep->link = 0; @@ -1487,6 +1490,10 @@ fec_enet_open(struct net_device *dev) mii_do_cmd(dev, fep->phy->config); mii_do_cmd(dev, phy_cmd_config); /* display configuration */ + /* FIXME: use netif_carrier_{on,off} ; this polls + * until link is up which is wrong... could be + * 30 seconds or more we are trapped in here. -jgarzik + */ while(!fep->sequence_done) schedule(); @@ -1604,34 +1611,21 @@ static void set_multicast_list(struct net_device *dev) /* Set a MAC change in hardware. */ -static int -fec_set_mac_address(struct net_device *dev, void *p) +static void +fec_set_mac_address(struct net_device *dev) { int i; - struct sockaddr *addr = p; volatile fec_t *fecp; fecp = fec_hwp; - if (netif_running(dev)) - return -EBUSY; - - /* Set the device copy of the Ethernet address - */ - memcpy(dev->dev_addr, addr->sa_data,dev->addr_len); - - /* Set our copy of the Ethernet address - */ - for (i = 0; i < (ETH_ALEN / 2); i++) { + /* Set our copy of the Ethernet address */ + for (i = 0; i < (ETH_ALEN / 2); i++) my_enet_addr[i] = (dev->dev_addr[i*2] << 8) | dev->dev_addr[i*2 + 1]; - } - /* Set station address. - */ + /* Set station address. */ fecp->fec_addr_low = (my_enet_addr[0] << 16) | my_enet_addr[1]; fecp->fec_addr_high = my_enet_addr[2] << 16; - - return 0; } /* Initialize the FEC Ethernet on 860T (or ColdFire 5272). @@ -1675,6 +1669,9 @@ int __init fec_enet_init(struct net_device *dev) /* Set the Ethernet address. If using multiple Enets on the 8xx, * this needs some work to get unique addresses. + * + * This is our default MAC address unless the user changes + * it via eth_mac_addr (our dev->set_mac_addr handler). */ fec_get_mac(dev, fep); @@ -1766,7 +1763,6 @@ int __init fec_enet_init(struct net_device *dev) dev->stop = fec_enet_close; dev->get_stats = fec_enet_get_stats; dev->set_multicast_list = set_multicast_list; - dev->set_mac_address = fec_set_mac_address; for (i=0; i<NMII-1; i++) mii_cmds[i].mii_next = &mii_cmds[i+1]; diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 5c7a4c036755..c973c999ef00 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -88,6 +88,8 @@ pci_max_busnr(void) * %PCI_CAP_ID_MSI Message Signalled Interrupts * * %PCI_CAP_ID_CHSWP CompactPCI HotSwap + * + * %PCI_CAP_ID_PCIX PCI-X */ int pci_find_capability(struct pci_dev *dev, int cap) diff --git a/fs/fat/inode.c b/fs/fat/inode.c index b852c46cdbb2..6ad055bba0b0 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c @@ -205,7 +205,7 @@ static int fat_show_options(struct seq_file *m, struct vfsmount *mnt) seq_printf(m, ",uid=%d", opts->fs_uid); if (opts->fs_gid != 0) seq_printf(m, ",gid=%d", opts->fs_gid); - seq_printf(m, ",umask=%04o", opts->fs_umask); + seq_printf(m, ",fmask=%04o", opts->fs_fmask); seq_printf(m, ",dmask=%04o", opts->fs_dmask); if (sbi->nls_disk) seq_printf(m, ",codepage=%s", sbi->nls_disk->charset); @@ -267,7 +267,7 @@ static int parse_options(char *options, int is_vfat, int *debug, opts->fs_uid = current->uid; opts->fs_gid = current->gid; - opts->fs_umask = opts->fs_dmask = current->fs->umask; + opts->fs_fmask = opts->fs_dmask = current->fs->umask; opts->codepage = 0; opts->iocharset = NULL; if (is_vfat) @@ -333,7 +333,15 @@ static int parse_options(char *options, int is_vfat, int *debug, else if (!strcmp(this_char,"umask")) { if (!value || !*value) ret = 0; else { - opts->fs_umask = simple_strtoul(value,&value,8); + opts->fs_fmask = opts->fs_dmask = + simple_strtoul(value,&value,8); + if (*value) ret = 0; + } + } + else if (!strcmp(this_char,"fmask")) { + if (!value || !*value) ret = 0; + else { + opts->fs_fmask = simple_strtoul(value,&value,8); if (*value) ret = 0; } } @@ -1119,7 +1127,7 @@ static int fat_fill_inode(struct inode *inode, struct msdos_dir_entry *de) ((sbi->options.showexec && !is_exec(de->ext)) ? S_IRUGO|S_IWUGO : S_IRWXUGO) - & ~sbi->options.fs_umask) | S_IFREG; + & ~sbi->options.fs_fmask) | S_IFREG; MSDOS_I(inode)->i_start = CF_LE_W(de->start); if (sbi->fat_bits == 32) { MSDOS_I(inode)->i_start |= @@ -1253,7 +1261,7 @@ int fat_notify_change(struct dentry * dentry, struct iattr * attr) if (S_ISDIR(inode->i_mode)) mask = sbi->options.fs_dmask; else - mask = sbi->options.fs_umask; + mask = sbi->options.fs_fmask; inode->i_mode &= S_IFMT | (S_IRWXUGO & ~mask); out: unlock_kernel(); diff --git a/fs/fcntl.c b/fs/fcntl.c index 041b84ffd0ce..fae2022ada19 100644 --- a/fs/fcntl.c +++ b/fs/fcntl.c @@ -75,8 +75,8 @@ static int expand_files(struct files_struct *files, int nr) /* * locate_fd finds a free file descriptor in the open_fds fdset, - * expanding the fd arrays if necessary. The files write lock will be - * held on exit to ensure that the fd can be entered atomically. + * expanding the fd arrays if necessary. Must be called with the + * file_lock held for write. */ static int locate_fd(struct files_struct *files, @@ -86,8 +86,6 @@ static int locate_fd(struct files_struct *files, int error; int start; - write_lock(&files->file_lock); - error = -EINVAL; if (orig_start >= current->rlim[RLIMIT_NOFILE].rlim_cur) goto out; @@ -131,30 +129,24 @@ out: return error; } -static inline void allocate_fd(struct files_struct *files, - struct file *file, int fd) -{ - FD_SET(fd, files->open_fds); - FD_CLR(fd, files->close_on_exec); - write_unlock(&files->file_lock); - fd_install(fd, file); -} - static int dupfd(struct file *file, int start) { struct files_struct * files = current->files; - int ret; + int fd; - ret = locate_fd(files, file, start); - if (ret < 0) - goto out_putf; - allocate_fd(files, file, ret); - return ret; + write_lock(&files->file_lock); + fd = locate_fd(files, file, start); + if (fd >= 0) { + FD_SET(fd, files->open_fds); + FD_CLR(fd, files->close_on_exec); + write_unlock(&files->file_lock); + fd_install(fd, file); + } else { + write_unlock(&files->file_lock); + fput(file); + } -out_putf: - write_unlock(&files->file_lock); - fput(file); - return ret; + return fd; } asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd) diff --git a/fs/namei.c b/fs/namei.c index 179732c79ece..4c01f3189047 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1648,7 +1648,7 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry) error = -EBUSY; else { error = security_inode_unlink(dir, dentry); - if (error) + if (!error) error = dir->i_op->unlink(dir, dentry); } up(&dentry->d_inode->i_sem); diff --git a/fs/proc/generic.c b/fs/proc/generic.c index bab86d71ed00..bcc4fac3f1ff 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c @@ -488,7 +488,11 @@ struct proc_dir_entry *proc_symlink(const char *name, ent->data = kmalloc((ent->size=strlen(dest))+1, GFP_KERNEL); if (ent->data) { strcpy((char*)ent->data,dest); - proc_register(parent, ent); + if (proc_register(parent, ent) < 0) { + kfree(ent->data); + kfree(ent); + ent = NULL; + } } else { kfree(ent); ent = NULL; @@ -505,7 +509,10 @@ struct proc_dir_entry *proc_mknod(const char *name, mode_t mode, ent = proc_create(&parent,name,mode,1); if (ent) { ent->rdev = rdev; - proc_register(parent, ent); + if (proc_register(parent, ent) < 0) { + kfree(ent); + ent = NULL; + } } return ent; } @@ -520,7 +527,10 @@ struct proc_dir_entry *proc_mkdir(const char *name, struct proc_dir_entry *paren ent->proc_fops = &proc_dir_operations; ent->proc_iops = &proc_dir_inode_operations; - proc_register(parent, ent); + if (proc_register(parent, ent) < 0) { + kfree(ent); + ent = NULL; + } } return ent; } @@ -549,7 +559,10 @@ struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, ent->proc_fops = &proc_dir_operations; ent->proc_iops = &proc_dir_inode_operations; } - proc_register(parent, ent); + if (proc_register(parent, ent) < 0) { + kfree(ent); + ent = NULL; + } } return ent; } diff --git a/fs/umsdos/ioctl.c b/fs/umsdos/ioctl.c index 722581c1a53f..323c2dbcccd0 100644 --- a/fs/umsdos/ioctl.c +++ b/fs/umsdos/ioctl.c @@ -430,7 +430,9 @@ new_dentry->d_parent->d_name.name, new_dentry->d_name.name); */ dir->i_sb->u.msdos_sb.options.fs_uid = data.umsdos_dirent.uid; dir->i_sb->u.msdos_sb.options.fs_gid = data.umsdos_dirent.gid; - dir->i_sb->u.msdos_sb.options.fs_umask = data.umsdos_dirent.mode; + dir->i_sb->u.msdos_sb.options.fs_fmask = + dir->i_sb->u.msdos_sb.options.fs_dmask = + data.umsdos_dirent.mode; ret = 0; } out: diff --git a/include/linux/msdos_fs_sb.h b/include/linux/msdos_fs_sb.h index 3b84157867e9..317a02cd7c88 100644 --- a/include/linux/msdos_fs_sb.h +++ b/include/linux/msdos_fs_sb.h @@ -8,7 +8,7 @@ struct fat_mount_options { uid_t fs_uid; gid_t fs_gid; - unsigned short fs_umask; + unsigned short fs_fmask; unsigned short fs_dmask; unsigned short codepage; /* Codepage for shortname conversions */ char *iocharset; /* Charset used for filename input/display */ diff --git a/include/linux/pci.h b/include/linux/pci.h index 30c4a9dbc855..eede29dc50ad 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -65,9 +65,9 @@ #define PCI_HEADER_TYPE_CARDBUS 2 #define PCI_BIST 0x0f /* 8 bits */ -#define PCI_BIST_CODE_MASK 0x0f /* Return result */ -#define PCI_BIST_START 0x40 /* 1 to start BIST, 2 secs or less */ -#define PCI_BIST_CAPABLE 0x80 /* 1 if BIST capable */ +#define PCI_BIST_CODE_MASK 0x0f /* Return result */ +#define PCI_BIST_START 0x40 /* 1 to start BIST, 2 secs or less */ +#define PCI_BIST_CAPABLE 0x80 /* 1 if BIST capable */ /* * Base addresses specify locations in memory or I/O space. @@ -195,6 +195,7 @@ #define PCI_CAP_ID_SLOTID 0x04 /* Slot Identification */ #define PCI_CAP_ID_MSI 0x05 /* Message Signalled Interrupts */ #define PCI_CAP_ID_CHSWP 0x06 /* CompactPCI HotSwap */ +#define PCI_CAP_ID_PCIX 0x07 /* PCI-X */ #define PCI_CAP_LIST_NEXT 1 /* Next capability in the list */ #define PCI_CAP_FLAGS 2 /* Capability defined flags (16 bits) */ #define PCI_CAP_SIZEOF 4 @@ -251,6 +252,13 @@ #define PCI_AGP_COMMAND_RATE1 0x0001 /* Use 1x rate */ #define PCI_AGP_SIZEOF 12 +/* Vital Product Data */ + +#define PCI_VPD_ADDR 2 /* Address to access (15 bits!) */ +#define PCI_VPD_ADDR_MASK 0x7fff /* Address mask */ +#define PCI_VPD_ADDR_F 0x8000 /* Write 0, 1 indicates completion */ +#define PCI_VPD_DATA 4 /* 32-bits of data returned here */ + /* Slot Identification */ #define PCI_SID_ESR 2 /* Expansion Slot Register */ @@ -271,6 +279,37 @@ #define PCI_MSI_DATA_32 8 /* 16 bits of data for 32-bit devices */ #define PCI_MSI_DATA_64 12 /* 16 bits of data for 64-bit devices */ +/* CompactPCI Hotswap Register */ + +#define PCI_CHSWP_CSR 2 /* Control and Status Register */ +#define PCI_CHSWP_DHA 0x01 /* Device Hiding Arm */ +#define PCI_CHSWP_EIM 0x02 /* ENUM# Signal Mask */ +#define PCI_CHSWP_PIE 0x04 /* Pending Insert or Extract */ +#define PCI_CHSWP_LOO 0x08 /* LED On / Off */ +#define PCI_CHSWP_PI 0x30 /* Programming Interface */ +#define PCI_CHSWP_EXT 0x40 /* ENUM# status - extraction */ +#define PCI_CHSWP_INS 0x80 /* ENUM# status - insertion */ + +/* PCI-X registers */ + +#define PCI_X_CMD 2 /* Modes & Features */ +#define PCI_X_CMD_DPERR_E 0x0001 /* Data Parity Error Recovery Enable */ +#define PCI_X_CMD_ERO 0x0002 /* Enable Relaxed Ordering */ +#define PCI_X_CMD_MAX_READ 0x000c /* Max Memory Read Byte Count */ +#define PCI_X_CMD_MAX_SPLIT 0x0070 /* Max Outstanding Split Transactions */ +#define PCI_X_DEVFN 4 /* A copy of devfn. */ +#define PCI_X_BUSNR 5 /* Bus segment number */ +#define PCI_X_STATUS 6 /* PCI-X capabilities */ +#define PCI_X_STATUS_64BIT 0x0001 /* 64-bit device */ +#define PCI_X_STATUS_133MHZ 0x0002 /* 133 MHz capable */ +#define PCI_X_STATUS_SPL_DISC 0x0004 /* Split Completion Discarded */ +#define PCI_X_STATUS_UNX_SPL 0x0008 /* Unexpected Split Completion */ +#define PCI_X_STATUS_COMPLEX 0x0010 /* Device Complexity */ +#define PCI_X_STATUS_MAX_READ 0x0060 /* Designed Maximum Memory Read Count */ +#define PCI_X_STATUS_MAX_SPLIT 0x0380 /* Design Max Outstanding Split Trans */ +#define PCI_X_STATUS_MAX_CUM 0x1c00 /* Designed Max Cumulative Read Size */ +#define PCI_X_STATUS_SPL_ERR 0x2000 /* Rcvd Split Completion Error Msg */ + /* Include the ID list */ #include <linux/pci_ids.h> diff --git a/net/bridge/br_netfilter.c b/net/bridge/br_netfilter.c index 467925d6d6f9..8a62ade3a725 100644 --- a/net/bridge/br_netfilter.c +++ b/net/bridge/br_netfilter.c @@ -49,20 +49,20 @@ * require us to fill additional fields. */ static struct net_device __fake_net_device = { - hard_header_len: ETH_HLEN + .hard_header_len = ETH_HLEN }; static struct rtable __fake_rtable = { - u: { - dst: { - __refcnt: ATOMIC_INIT(1), - dev: &__fake_net_device, - path: &__fake_rtable.u.dst, - metrics: {[RTAX_MTU] 1500}, + .u = { + .dst = { + .__refcnt = ATOMIC_INIT(1), + .dev = &__fake_net_device, + .path = &__fake_rtable.u.dst, + .metrics = {[RTAX_MTU] = 1500}, } }, - rt_flags: 0 + .rt_flags = 0 }; diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index a7c5a350e6c4..499a8c9a9c99 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -281,8 +281,8 @@ static int netlink_release(struct socket *sock) skb_queue_purge(&sk->write_queue); if (nlk->pid && !nlk->groups) { - struct netlink_notify n = { protocol:sk->protocol, - pid:nlk->pid }; + struct netlink_notify n = { .protocol = sk->protocol, + .pid = nlk->pid }; notifier_call_chain(&netlink_chain, NETLINK_URELEASE, &n); } diff --git a/net/rxrpc/connection.c b/net/rxrpc/connection.c index 341e9d0ff26a..a60412d9f7bf 100644 --- a/net/rxrpc/connection.c +++ b/net/rxrpc/connection.c @@ -39,7 +39,7 @@ static void __rxrpc_conn_timeout(rxrpc_timer_t *timer) } static const struct rxrpc_timer_ops rxrpc_conn_timer_ops = { - timed_out: __rxrpc_conn_timeout, + .timed_out = __rxrpc_conn_timeout, }; /*****************************************************************************/ diff --git a/net/sched/sch_prio.c b/net/sched/sch_prio.c index 79356c109018..6c0509d01f28 100644 --- a/net/sched/sch_prio.c +++ b/net/sched/sch_prio.c @@ -383,22 +383,22 @@ static struct Qdisc_class_ops prio_class_ops = struct Qdisc_ops prio_qdisc_ops = { - next: NULL, - cl_ops: &prio_class_ops, - id: "prio", - priv_size: sizeof(struct prio_sched_data), - - enqueue: prio_enqueue, - dequeue: prio_dequeue, - requeue: prio_requeue, - drop: prio_drop, - - init: prio_init, - reset: prio_reset, - destroy: prio_destroy, - change: prio_tune, - - dump: prio_dump, + .next = NULL, + .cl_ops = &prio_class_ops, + .id = "prio", + .priv_size = sizeof(struct prio_sched_data), + + .enqueue = prio_enqueue, + .dequeue = prio_dequeue, + .requeue = prio_requeue, + .drop = prio_drop, + + .init = prio_init, + .reset = prio_reset, + .destroy = prio_destroy, + .change = prio_tune, + + .dump = prio_dump, }; #ifdef MODULE diff --git a/sound/arm/sa11xx-uda1341.c b/sound/arm/sa11xx-uda1341.c index 70565e1095e0..70ff03c4c1c2 100644 --- a/sound/arm/sa11xx-uda1341.c +++ b/sound/arm/sa11xx-uda1341.c @@ -555,11 +555,11 @@ static snd_pcm_hardware_t snd_sa11xx_uda1341_capture = SNDRV_PCM_RATE_KNOT), .rate_min = 8000, .rate_max = 48000, - .channels_min: = 2, - .channels_max: = 2, - .buffer_bytes_max: = 16380, - .period_bytes_min: = 64, - .period_bytes_max: = 8190, /* <= MAX_DMA_SIZE from ams/arch-sa1100/dma.h */ + .channels_min = 2, + .channels_max = 2, + .buffer_bytes_max = 16380, + .period_bytes_min = 64, + .period_bytes_max = 8190, /* <= MAX_DMA_SIZE from ams/arch-sa1100/dma.h */ .periods_min = 2, .periods_max = 255, .fifo_size = 0, diff --git a/sound/sparc/cs4231.c b/sound/sparc/cs4231.c index 36fa14706146..ee9b28117ac2 100644 --- a/sound/sparc/cs4231.c +++ b/sound/sparc/cs4231.c @@ -314,9 +314,8 @@ static unsigned int rates[14] = { }; static snd_pcm_hw_constraint_list_t hw_constraints_rates = { - count: 14, - list: rates, - mask: 0, + .count = 14, + .list = rates, }; static int snd_cs4231_xrate(snd_pcm_runtime_t *runtime) @@ -1418,44 +1417,42 @@ static int snd_cs4231_probe(cs4231_t *chip) static snd_pcm_hardware_t snd_cs4231_playback = { - info: (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | + .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_SYNC_START), - formats: (SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | + .formats = (SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | SNDRV_PCM_FMTBIT_IMA_ADPCM | SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE), - rates: SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000, - rate_min: 5510, - rate_max: 48000, - channels_min: 1, - channels_max: 2, - buffer_bytes_max: (32*1024), - period_bytes_min: 4096, - period_bytes_max: (32*1024), - periods_min: 1, - periods_max: 1024, - fifo_size: 0, + .rates = SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000, + .rate_min = 5510, + .rate_max = 48000, + .channels_min = 1, + .channels_max = 2, + .buffer_bytes_max = (32*1024), + .period_bytes_min = 4096, + .period_bytes_max = (32*1024), + .periods_min = 1, + .periods_max = 1024, }; static snd_pcm_hardware_t snd_cs4231_capture = { - info: (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | + .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_SYNC_START), - formats: (SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | + .formats = (SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | SNDRV_PCM_FMTBIT_IMA_ADPCM | SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE), - rates: SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000, - rate_min: 5510, - rate_max: 48000, - channels_min: 1, - channels_max: 2, - buffer_bytes_max: (32*1024), - period_bytes_min: 4096, - period_bytes_max: (32*1024), - periods_min: 1, - periods_max: 1024, - fifo_size: 0, + .rates = SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000, + .rate_min = 5510, + .rate_max = 48000, + .channels_min = 1, + .channels_max = 2, + .buffer_bytes_max = (32*1024), + .period_bytes_min = 4096, + .period_bytes_max = (32*1024), + .periods_min = 1, + .periods_max = 1024, }; static int snd_cs4231_playback_open(snd_pcm_substream_t *substream) @@ -1821,16 +1818,16 @@ int snd_cs4231_put_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontr #define CS4231_CONTROLS (sizeof(snd_cs4231_controls)/sizeof(snd_kcontrol_new_t)) #define CS4231_SINGLE(xname, xindex, reg, shift, mask, invert) \ -{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \ - info: snd_cs4231_info_single, \ - get: snd_cs4231_get_single, put: snd_cs4231_put_single, \ - private_value: reg | (shift << 8) | (mask << 16) | (invert << 24) } +{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \ + .info = snd_cs4231_info_single, \ + .get = snd_cs4231_get_single, .put = snd_cs4231_put_single, \ + .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) } #define CS4231_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \ -{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \ - info: snd_cs4231_info_double, \ - get: snd_cs4231_get_double, put: snd_cs4231_put_double, \ - private_value: left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) } +{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \ + .info = snd_cs4231_info_double, \ + .get = snd_cs4231_get_double, .put = snd_cs4231_put_double, \ + .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) } static snd_kcontrol_new_t snd_cs4231_controls[] = { CS4231_DOUBLE("PCM Playback Switch", 0, CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT, 7, 7, 1, 1), @@ -1847,11 +1844,11 @@ CS4231_SINGLE("Mono Output Playback Switch", 0, CS4231_MONO_CTRL, 6, 1, 1), CS4231_SINGLE("Mono Output Playback Bypass", 0, CS4231_MONO_CTRL, 5, 1, 0), CS4231_DOUBLE("Capture Volume", 0, CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT, 0, 0, 15, 0), { - iface: SNDRV_CTL_ELEM_IFACE_MIXER, - name: "Capture Source", - info: snd_cs4231_info_mux, - get: snd_cs4231_get_mux, - put: snd_cs4231_put_mux, + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Capture Source", + .info = snd_cs4231_info_mux, + .get = snd_cs4231_get_mux, + .put = snd_cs4231_put_mux, }, CS4231_DOUBLE("Mic Boost", 0, CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT, 5, 5, 1, 0), CS4231_SINGLE("Loopback Capture Switch", 0, CS4231_LOOPBACK, 0, 1, 0), |
