V4L/DVB (4750): AGC command1/2 is board specific
authorPatrick Boettcher <pb@linuxtv.org>
Fri, 13 Oct 2006 14:35:12 +0000 (11:35 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sat, 14 Oct 2006 03:44:29 +0000 (00:44 -0300)
Added config-struct-parameter to take board-specific AGC command 1 and 2 into account.

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/dvb-usb/dibusb-common.c
drivers/media/dvb/frontends/dib3000mc.c
drivers/media/dvb/frontends/dib3000mc.h

index fd3a9902f98d472662f69ee96690c5d11d673814..5143e426d283cc539043e0234d108f8eb7d7915c 100644 (file)
@@ -169,7 +169,7 @@ EXPORT_SYMBOL(dibusb_read_eeprom_byte);
 // Config Adjacent channels  Perf -cal22
 static struct dibx000_agc_config dib3000p_mt2060_agc_config = {
        .band_caps = BAND_VHF | BAND_UHF,
-       .setup     = (0 << 15) | (0 << 14) | (1 << 13) | (1 << 12) | (29 << 0),
+       .setup     = (1 << 8) | (5 << 5) | (1 << 4) | (1 << 3) | (0 << 2) | (2 << 0),
 
        .agc1_max = 48497,
        .agc1_min = 23593,
@@ -196,10 +196,14 @@ static struct dib3000mc_config stk3000p_dib3000p_config = {
        .ln_adc_level = 0x1cc7,
 
        .output_mpeg2_in_188_bytes = 1,
+
+       .agc_command1 = 1,
+       .agc_command2 = 1,
 };
 
 static struct dibx000_agc_config dib3000p_panasonic_agc_config = {
-       .setup    = (0 << 15) | (0 << 14) | (1 << 13) | (1 << 12) | (29 << 0),
+       .band_caps = BAND_VHF | BAND_UHF,
+       .setup     = (1 << 8) | (5 << 5) | (1 << 4) | (1 << 3) | (0 << 2) | (2 << 0),
 
        .agc1_max = 56361,
        .agc1_min = 22282,
@@ -226,6 +230,9 @@ static struct dib3000mc_config mod3000p_dib3000p_config = {
        .ln_adc_level = 0x1cc7,
 
        .output_mpeg2_in_188_bytes = 1,
+
+       .agc_command1 = 1,
+       .agc_command2 = 1,
 };
 
 int dibusb_dib3000mc_frontend_attach(struct dvb_usb_adapter *adap)
index ccc813b525d6d084217bc952a7bffe3bc2d63302..3561a777568c8cd3cee259c2db59c559744a8332 100644 (file)
@@ -345,7 +345,7 @@ static int dib3000mc_init(struct dvb_frontend *demod)
 
        /* agc */
        dib3000mc_write_word(state, 36, state->cfg->max_time);
-       dib3000mc_write_word(state, 37, agc->setup);
+       dib3000mc_write_word(state, 37, (state->cfg->agc_command1 << 13) | (state->cfg->agc_command2 << 12) | (0x1d << 0));
        dib3000mc_write_word(state, 38, state->cfg->pwm3_value);
        dib3000mc_write_word(state, 39, state->cfg->ln_adc_level);
 
index b198cd5b18436c65890bcef1a507f3a53dc0f6fe..0d6fdef775385e2269ae378d02afe0215ac4ee36 100644 (file)
@@ -28,6 +28,9 @@ struct dib3000mc_config {
        u16 max_time;
        u16 ln_adc_level;
 
+       u8 agc_command1 :1;
+       u8 agc_command2 :1;
+
        u8 mobile_mode;
 
        u8 output_mpeg2_in_188_bytes;