V4L/DVB (4934): Usbvision radio requires GainNormal at e register
authorMauro Carvalho Chehab <mchehab@infradead.org>
Mon, 4 Dec 2006 11:31:35 +0000 (08:31 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 10 Dec 2006 11:05:51 +0000 (09:05 -0200)
Adds an option to select GainNormal at tda9887 and make usbvision
to use it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/tda9887.c
drivers/media/video/usbvision/usbvision-core.c
include/media/tuner.h

index 87ffb0e..fde576f 100644 (file)
@@ -482,6 +482,12 @@ static int tda9887_set_config(struct tuner *t, char *buf)
                buf[1] &= ~cQSS;
        if (t->tda9887_config & TDA9887_GATING_18)
                buf[3] &= ~cGating_36;
+
+       if (t->tda9887_config & TDA9887_GAIN_NORMAL) {
+               radio_stereo.e &= ~cTunerGainLow;
+               radio_mono.e &= ~cTunerGainLow;
+       }
+
        return 0;
 }
 
index 0365c7f..b5aa318 100644 (file)
@@ -2585,12 +2585,15 @@ static int attach_inform(struct i2c_client *client)
                case 0x4b:
                {
                        struct tuner_setup tun_setup;
+                       unsigned int tda9887_conf = TDA9887_GAIN_NORMAL;
 
                        tun_setup.mode_mask = T_ANALOG_TV | T_RADIO;
                        tun_setup.type = TUNER_TDA9887;
                        tun_setup.addr = client->addr;
 
                        call_i2c_clients(usbvision, TUNER_SET_TYPE_ADDR, &tun_setup);
+                       call_i2c_clients(usbvision,TDA9887_SET_CONFIG, &tda9887_conf);
+
                        break;
                }
                case 0x42:
index 3116e75..99acf84 100644 (file)
@@ -145,6 +145,7 @@ extern int tuner_debug;
 #define TDA9887_DEEMPHASIS_75          (3<<16)
 #define TDA9887_AUTOMUTE               (1<<18)
 #define TDA9887_GATING_18              (1<<19)
+#define TDA9887_GAIN_NORMAL            (1<<20)
 
 #ifdef __KERNEL__