summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Mochel <mochel@osdl.org>2002-12-01 11:02:53 -0600
committerPatrick Mochel <mochel@osdl.org>2002-12-01 11:02:53 -0600
commit93186e2388e34c792afb4a09c6d99768d0d0dd94 (patch)
treebf24f162bd7ef7441760cececf90420ed92f47d1
parent1bf8b5fda8bd971b91a37f739f826218e1b71725 (diff)
parent8d81094b01532c758cc166325997cd3c36a3dbd8 (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
-rw-r--r--arch/ia64/sn/kernel/sn1/synergy.c2
-rw-r--r--arch/parisc/kernel/irq.c36
-rw-r--r--arch/ppc/amiga/amiints.c12
-rw-r--r--drivers/media/dvb/av7110/av7110_ir.c2
-rw-r--r--drivers/media/dvb/av7110/saa7146_core.c12
-rw-r--r--drivers/media/dvb/frontends/alps_bsru6.c42
-rw-r--r--drivers/media/dvb/frontends/alps_bsrv2.c36
-rw-r--r--drivers/media/dvb/frontends/alps_tdlb7.c34
-rw-r--r--drivers/media/dvb/frontends/alps_tdmb7.c34
-rw-r--r--drivers/media/dvb/frontends/grundig_29504-401.c34
-rw-r--r--drivers/media/dvb/frontends/grundig_29504-491.c38
-rw-r--r--drivers/media/dvb/frontends/ves1820.c35
-rw-r--r--drivers/media/radio/miropcm20-radio.c27
-rw-r--r--drivers/media/radio/miropcm20-rds.c8
-rw-r--r--drivers/media/radio/radio-aimslab.c20
-rw-r--r--drivers/media/radio/radio-aztech.c20
-rw-r--r--drivers/media/radio/radio-cadet.c22
-rw-r--r--drivers/media/radio/radio-gemtek-pci.c28
-rw-r--r--drivers/media/radio/radio-gemtek.c20
-rw-r--r--drivers/media/radio/radio-maestro.c20
-rw-r--r--drivers/media/radio/radio-maxiradio.c28
-rw-r--r--drivers/media/radio/radio-rtrack2.c20
-rw-r--r--drivers/media/radio/radio-sf16fmi.c20
-rw-r--r--drivers/media/radio/radio-terratec.c20
-rw-r--r--drivers/media/radio/radio-trust.c20
-rw-r--r--drivers/media/radio/radio-typhoon.c26
-rw-r--r--drivers/media/radio/radio-zoltrix.c20
-rw-r--r--drivers/media/video/adv7175.c36
-rw-r--r--drivers/media/video/bttv-cards.c2142
-rw-r--r--drivers/media/video/bttv-driver.c508
-rw-r--r--drivers/media/video/bttv-if.c30
-rw-r--r--drivers/media/video/bttv-vbi.c8
-rw-r--r--drivers/media/video/bw-qcam.c22
-rw-r--r--drivers/media/video/c-qcam.c22
-rw-r--r--drivers/media/video/cpia.c24
-rw-r--r--drivers/media/video/cpia_usb.c8
-rw-r--r--drivers/media/video/msp3400.c18
-rw-r--r--drivers/media/video/planb.c20
-rw-r--r--drivers/media/video/pms.c22
-rw-r--r--drivers/media/video/saa5249.c20
-rw-r--r--drivers/media/video/stradis.c20
-rw-r--r--drivers/media/video/tuner.c20
-rw-r--r--drivers/media/video/tvaudio.c284
-rw-r--r--drivers/media/video/tvmixer.c20
-rw-r--r--drivers/media/video/video-buf.c6
-rw-r--r--drivers/media/video/videodev.c6
-rw-r--r--drivers/media/video/vino.c16
-rw-r--r--drivers/media/video/w9966.c37
-rw-r--r--drivers/media/video/zr36067.c22
-rw-r--r--drivers/media/video/zr36120.c46
-rw-r--r--drivers/net/fec.c34
-rw-r--r--drivers/pci/pci.c2
-rw-r--r--fs/fat/inode.c18
-rw-r--r--fs/fcntl.c38
-rw-r--r--fs/namei.c2
-rw-r--r--fs/proc/generic.c21
-rw-r--r--fs/umsdos/ioctl.c4
-rw-r--r--include/linux/msdos_fs_sb.h2
-rw-r--r--include/linux/pci.h45
-rw-r--r--net/bridge/br_netfilter.c16
-rw-r--r--net/netlink/af_netlink.c4
-rw-r--r--net/rxrpc/connection.c2
-rw-r--r--net/sched/sch_prio.c32
-rw-r--r--sound/arm/sa11xx-uda1341.c10
-rw-r--r--sound/sparc/cs4231.c81
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: &reg1, len: 1 },
- { addr: 0x68, flags: I2C_M_RD, buf: b, len: len } };
+ struct i2c_msg msg [] = { { .addr = 0x68, .flags = 0, .buf = &reg1, .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: &reg1, len: 1 },
- { addr: 0x68, flags: I2C_M_RD, buf: b, len: len } };
+ struct i2c_msg msg [] = { { .addr = 0x68, .flags = 0, .buf = &reg1, .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),