Explorar el Código

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 hace 18 años
padre
commit
483deb0f2b
Se han modificado 2 ficheros con 6 adiciones y 0 borrados
  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;
 			config |= TDA9887_INTERCARRIER;
 /*		if (params->port1_set_for_fm_mono)
 /*		if (params->port1_set_for_fm_mono)
 			config &= ~TDA9887_PORT1_ACTIVE;*/
 			config &= ~TDA9887_PORT1_ACTIVE;*/
+		if (params->fm_gain_normal)
+			config |= TDA9887_GAIN_NORMAL;
 		i2c_clients_command(c->adapter, TDA9887_SET_CONFIG, &config);
 		i2c_clients_command(c->adapter, TDA9887_SET_CONFIG, &config);
 	}
 	}
 	if (4 != (rc = i2c_master_send(c,buffer,4)))
 	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
 	   sensitivity. If this setting is 1, then set PORT2 to 1 to
 	   get proper FM reception. */
 	   get proper FM reception. */
 	unsigned int port2_fm_high_sensitivity:1;
 	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
 	/* Most tuners with a tda9887 use QSS mode. Some (cheaper) tuners
 	   use Intercarrier mode. If this setting is 1, then the tuner
 	   use Intercarrier mode. If this setting is 1, then the tuner
 	   needs to be set to intercarrier mode. */
 	   needs to be set to intercarrier mode. */