diff options
-rw-r--r-- | drivers/media/dvb/dvb-usb/cxusb.c | 3 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/atbm8830.c | 16 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-dvb.c | 6 |
3 files changed, 25 insertions, 0 deletions
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c index 05fb28e9c69e..a7b8405c291e 100644 --- a/drivers/media/dvb/dvb-usb/cxusb.c +++ b/drivers/media/dvb/dvb-usb/cxusb.c | |||
@@ -1184,6 +1184,9 @@ static struct atbm8830_config mygica_d689_atbm8830_cfg = { | |||
1184 | .osc_clk_freq = 30400, /* in kHz */ | 1184 | .osc_clk_freq = 30400, /* in kHz */ |
1185 | .if_freq = 0, /* zero IF */ | 1185 | .if_freq = 0, /* zero IF */ |
1186 | .zif_swap_iq = 1, | 1186 | .zif_swap_iq = 1, |
1187 | .agc_min = 0x2E, | ||
1188 | .agc_max = 0x90, | ||
1189 | .agc_hold_loop = 0, | ||
1187 | }; | 1190 | }; |
1188 | 1191 | ||
1189 | static int cxusb_mygica_d689_frontend_attach(struct dvb_usb_adapter *adap) | 1192 | static int cxusb_mygica_d689_frontend_attach(struct dvb_usb_adapter *adap) |
diff --git a/drivers/media/dvb/frontends/atbm8830.c b/drivers/media/dvb/frontends/atbm8830.c index 59881a5944eb..43aac2f85c2e 100644 --- a/drivers/media/dvb/frontends/atbm8830.c +++ b/drivers/media/dvb/frontends/atbm8830.c | |||
@@ -170,6 +170,19 @@ static int is_locked(struct atbm_state *priv, u8 *locked) | |||
170 | return 0; | 170 | return 0; |
171 | } | 171 | } |
172 | 172 | ||
173 | static int set_agc_config(struct atbm_state *priv, | ||
174 | u8 min, u8 max, u8 hold_loop) | ||
175 | { | ||
176 | /* no effect if both min and max are zero */ | ||
177 | if (!min && !max) | ||
178 | return 0; | ||
179 | |||
180 | atbm8830_write_reg(priv, REG_AGC_MIN, min); | ||
181 | atbm8830_write_reg(priv, REG_AGC_MAX, max); | ||
182 | atbm8830_write_reg(priv, REG_AGC_HOLD_LOOP, hold_loop); | ||
183 | |||
184 | return 0; | ||
185 | } | ||
173 | 186 | ||
174 | static int set_static_channel_mode(struct atbm_state *priv) | 187 | static int set_static_channel_mode(struct atbm_state *priv) |
175 | { | 188 | { |
@@ -227,6 +240,9 @@ static int atbm8830_init(struct dvb_frontend *fe) | |||
227 | /*Set IF frequency*/ | 240 | /*Set IF frequency*/ |
228 | set_if_freq(priv, cfg->if_freq); | 241 | set_if_freq(priv, cfg->if_freq); |
229 | 242 | ||
243 | /*Set AGC Config*/ | ||
244 | set_agc_config(priv, cfg->agc_min, cfg->agc_max, | ||
245 | cfg->agc_hold_loop); | ||
230 | 246 | ||
231 | /*Set static channel mode*/ | 247 | /*Set static channel mode*/ |
232 | set_static_channel_mode(priv); | 248 | set_static_channel_mode(priv); |
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c index e45d2df08138..ed99e93a5ac6 100644 --- a/drivers/media/video/cx23885/cx23885-dvb.c +++ b/drivers/media/video/cx23885/cx23885-dvb.c | |||
@@ -542,6 +542,9 @@ static struct atbm8830_config mygica_x8558pro_atbm8830_cfg1 = { | |||
542 | .osc_clk_freq = 30400, /* in kHz */ | 542 | .osc_clk_freq = 30400, /* in kHz */ |
543 | .if_freq = 0, /* zero IF */ | 543 | .if_freq = 0, /* zero IF */ |
544 | .zif_swap_iq = 1, | 544 | .zif_swap_iq = 1, |
545 | .agc_min = 0x2E, | ||
546 | .agc_max = 0xFF, | ||
547 | .agc_hold_loop = 0, | ||
545 | }; | 548 | }; |
546 | 549 | ||
547 | static struct max2165_config mygic_x8558pro_max2165_cfg1 = { | 550 | static struct max2165_config mygic_x8558pro_max2165_cfg1 = { |
@@ -558,6 +561,9 @@ static struct atbm8830_config mygica_x8558pro_atbm8830_cfg2 = { | |||
558 | .osc_clk_freq = 30400, /* in kHz */ | 561 | .osc_clk_freq = 30400, /* in kHz */ |
559 | .if_freq = 0, /* zero IF */ | 562 | .if_freq = 0, /* zero IF */ |
560 | .zif_swap_iq = 1, | 563 | .zif_swap_iq = 1, |
564 | .agc_min = 0x2E, | ||
565 | .agc_max = 0xFF, | ||
566 | .agc_hold_loop = 0, | ||
561 | }; | 567 | }; |
562 | 568 | ||
563 | static struct max2165_config mygic_x8558pro_max2165_cfg2 = { | 569 | static struct max2165_config mygic_x8558pro_max2165_cfg2 = { |