Sfoglia il codice sorgente

V4L/DVB (4935): Added the capability of selecting fm gain by tuner

Some tuners require using cGainNormal instead of cGainLow for
high sensibility on FM reception.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab 18 anni fa
parent
commit
483deb0f2b
2 ha cambiato i file con 6 aggiunte e 0 eliminazioni
  1. 2 0
      drivers/media/video/tuner-simple.c
  2. 4 0
      include/media/tuner-types.h

+ 2 - 0
drivers/media/video/tuner-simple.c

@@ -467,6 +467,8 @@ static void default_set_radio_freq(struct i2c_client *c, unsigned int freq)
 			config |= TDA9887_INTERCARRIER;
 /*		if (params->port1_set_for_fm_mono)
 			config &= ~TDA9887_PORT1_ACTIVE;*/
+		if (params->fm_gain_normal)
+			config |= TDA9887_GAIN_NORMAL;
 		i2c_clients_command(c->adapter, TDA9887_SET_CONFIG, &config);
 	}
 	if (4 != (rc = i2c_master_send(c,buffer,4)))

+ 4 - 0
include/media/tuner-types.h

@@ -50,6 +50,10 @@ struct tuner_params {
 	   sensitivity. If this setting is 1, then set PORT2 to 1 to
 	   get proper FM reception. */
 	unsigned int port2_fm_high_sensitivity:1;
+	/* Some Philips tuners use tda9887 cGainNormal to select the FM radio
+	   sensitivity. If this setting is 1, e register will use cGainNormal
+	   instead of cGainLow. */
+	unsigned int fm_gain_normal:1;
 	/* Most tuners with a tda9887 use QSS mode. Some (cheaper) tuners
 	   use Intercarrier mode. If this setting is 1, then the tuner
 	   needs to be set to intercarrier mode. */