diff options
Diffstat (limited to 'linux/drivers/media/video/mxb.c')
-rw-r--r-- | linux/drivers/media/video/mxb.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/linux/drivers/media/video/mxb.c b/linux/drivers/media/video/mxb.c index c5a5e6921..b602a1d26 100644 --- a/linux/drivers/media/video/mxb.c +++ b/linux/drivers/media/video/mxb.c @@ -177,6 +177,9 @@ struct mxb int cur_mute; /* current mute status */ }; +static +struct saa7146_extension extension; + static int mxb_vbi_bypass(struct saa7146_dev* dev) { struct mxb* mxb = (struct mxb*)dev->ext_priv; @@ -424,6 +427,12 @@ static int mxb_init_done(struct saa7146_dev* dev) msg.buf = &saa7740_init[0].data[0]; if( 1 == (err = i2c_transfer(&mxb->i2c_adapter, &msg, 1))) { + /* the sound arena module is a pos, that's probably the reason + philips refuses to hand out a datasheet for the saa7740... + it seems to screw up the i2c bus, so we disable fast irq + based i2c transactions here and rely on the slow and safe + polling method ... */ + extension.flags &= ~SAA7146_USE_I2C_IRQ; for(i = 1;;i++) { msg.len = saa7740_init[i].length; if( -1 == msg.len ) { @@ -1003,9 +1012,6 @@ static struct saa7146_standard standard[] = { }; static -struct saa7146_extension extension; - -static struct saa7146_pci_extension_data mxb = { .ext_priv = "Multimedia eXtension Board", .ext = &extension, |