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 <m...@maciej.szmigiero.name>
---
 drivers/media/tuners/tuner-simple.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/media/tuners/tuner-simple.c 
b/drivers/media/tuners/tuner-simple.c
index 3339b13dd3f5..568f108efac2 100644
--- a/drivers/media/tuners/tuner-simple.c
+++ b/drivers/media/tuners/tuner-simple.c
@@ -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)

Reply via email to