media: tuner-simple: allow setting mono radio mode
authorMaciej S. Szmigiero <mail@maciej.szmigiero.name>
Mon, 2 Jul 2018 21:23:24 +0000 (17:23 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 4 Jul 2018 13:49:27 +0000 (09:49 -0400)
For some types of tuners (Philips FMD1216ME(X) MK3 currently) we know that
letting TDA9887 output port 1 remain high (inactive) will switch FM radio
to mono mode.
Let's make use of this functionality - nothing changes for the default
stereo radio mode.

Tested on a Medion 95700 board which has a FMD1216ME tuner.

Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/tuners/tuner-simple.c

index 36b88f8..29c1473 100644 (file)
@@ -670,6 +670,7 @@ static int simple_set_radio_freq(struct dvb_frontend *fe,
        int rc, j;
        struct tuner_params *t_params;
        unsigned int freq = params->frequency;
+       bool mono = params->audmode == V4L2_TUNER_MODE_MONO;
 
        tun = priv->tun;
 
@@ -736,8 +737,8 @@ static int simple_set_radio_freq(struct dvb_frontend *fe,
                        config |= TDA9887_PORT2_ACTIVE;
                if (t_params->intercarrier_mode)
                        config |= TDA9887_INTERCARRIER;
-/*             if (t_params->port1_set_for_fm_mono)
-                       config &= ~TDA9887_PORT1_ACTIVE;*/
+               if (t_params->port1_set_for_fm_mono && mono)
+                       config &= ~TDA9887_PORT1_ACTIVE;
                if (t_params->fm_gain_normal)
                        config |= TDA9887_GAIN_NORMAL;
                if (t_params->radio_if == 2)