summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux/drivers/media/video/msp3400-driver.c12
-rw-r--r--linux/drivers/media/video/msp3400.c12
2 files changed, 24 insertions, 0 deletions
diff --git a/linux/drivers/media/video/msp3400-driver.c b/linux/drivers/media/video/msp3400-driver.c
index b6ab3a3ee..7081a88e8 100644
--- a/linux/drivers/media/video/msp3400-driver.c
+++ b/linux/drivers/media/video/msp3400-driver.c
@@ -1861,6 +1861,10 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
dprintk("msp34xx: AUDC_SET_RADIO\n");
msp->norm = VIDEO_MODE_RADIO;
dprintk("msp34xx: switching to radio mode\n");
+ if (IS_MSP34XX_G(msp)) {
+ msp34xxg_reset(client);
+ break;
+ }
msp->watch_stereo = 0;
switch (msp->opmode) {
case OPMODE_MANUAL:
@@ -1977,6 +1981,10 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
dprintk("msp34xx: VIDIOCSCHAN (norm=%d)\n",vc->norm);
msp->norm = vc->norm;
+ if (IS_MSP34XX_G(msp)) {
+ msp34xxg_reset(client);
+ break;
+ }
msp_wake_thread(client);
break;
}
@@ -1986,6 +1994,10 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
{
/* new channel -- kick audio carrier scan */
dprintk("msp34xx: VIDIOCSFREQ\n");
+ if (IS_MSP34XX_G(msp)) {
+ msp34xxg_reset(client);
+ break;
+ }
msp_wake_thread(client);
break;
}
diff --git a/linux/drivers/media/video/msp3400.c b/linux/drivers/media/video/msp3400.c
index b6ab3a3ee..7081a88e8 100644
--- a/linux/drivers/media/video/msp3400.c
+++ b/linux/drivers/media/video/msp3400.c
@@ -1861,6 +1861,10 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
dprintk("msp34xx: AUDC_SET_RADIO\n");
msp->norm = VIDEO_MODE_RADIO;
dprintk("msp34xx: switching to radio mode\n");
+ if (IS_MSP34XX_G(msp)) {
+ msp34xxg_reset(client);
+ break;
+ }
msp->watch_stereo = 0;
switch (msp->opmode) {
case OPMODE_MANUAL:
@@ -1977,6 +1981,10 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
dprintk("msp34xx: VIDIOCSCHAN (norm=%d)\n",vc->norm);
msp->norm = vc->norm;
+ if (IS_MSP34XX_G(msp)) {
+ msp34xxg_reset(client);
+ break;
+ }
msp_wake_thread(client);
break;
}
@@ -1986,6 +1994,10 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
{
/* new channel -- kick audio carrier scan */
dprintk("msp34xx: VIDIOCSFREQ\n");
+ if (IS_MSP34XX_G(msp)) {
+ msp34xxg_reset(client);
+ break;
+ }
msp_wake_thread(client);
break;
}