mirror of
https://github.com/rtlsdrblog/rtl-sdr-blog.git
synced 2024-11-10 04:37:37 +01:00
follow keenerd and don't stop the i2c repeater on tuner gain/freq change. Fixes slow tune/gain changes on AMD devices apparently
This commit is contained in:
parent
7b16cfbbe1
commit
ef7651cc92
@ -900,11 +900,12 @@ int rtlsdr_set_center_freq(rtlsdr_dev_t *dev, uint32_t freq)
|
|||||||
dev->direct_sampling = (freq < 28800000 && dev->tuner_type == RTLSDR_TUNER_R820T) ? 2 : 0;
|
dev->direct_sampling = (freq < 28800000 && dev->tuner_type == RTLSDR_TUNER_R820T) ? 2 : 0;
|
||||||
|
|
||||||
if (dev->direct_sampling) {
|
if (dev->direct_sampling) {
|
||||||
|
rtlsdr_set_i2c_repeater(dev, 0);
|
||||||
r = rtlsdr_set_if_freq(dev, freq);
|
r = rtlsdr_set_if_freq(dev, freq);
|
||||||
} else if (dev->tuner && dev->tuner->set_freq) {
|
} else if (dev->tuner && dev->tuner->set_freq) {
|
||||||
rtlsdr_set_i2c_repeater(dev, 1);
|
rtlsdr_set_i2c_repeater(dev, 1);
|
||||||
r = dev->tuner->set_freq(dev, freq - dev->offs_freq);
|
r = dev->tuner->set_freq(dev, freq - dev->offs_freq);
|
||||||
rtlsdr_set_i2c_repeater(dev, 0);
|
/*rtlsdr_set_i2c_repeater(dev, 0);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!r)
|
if (!r)
|
||||||
@ -1053,7 +1054,7 @@ int rtlsdr_set_tuner_gain(rtlsdr_dev_t *dev, int gain)
|
|||||||
if (dev->tuner->set_gain) {
|
if (dev->tuner->set_gain) {
|
||||||
rtlsdr_set_i2c_repeater(dev, 1);
|
rtlsdr_set_i2c_repeater(dev, 1);
|
||||||
r = dev->tuner->set_gain((void *)dev, gain);
|
r = dev->tuner->set_gain((void *)dev, gain);
|
||||||
rtlsdr_set_i2c_repeater(dev, 0);
|
/*rtlsdr_set_i2c_repeater(dev, 0);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!r)
|
if (!r)
|
||||||
@ -1082,7 +1083,7 @@ int rtlsdr_set_tuner_if_gain(rtlsdr_dev_t *dev, int stage, int gain)
|
|||||||
if (dev->tuner->set_if_gain) {
|
if (dev->tuner->set_if_gain) {
|
||||||
rtlsdr_set_i2c_repeater(dev, 1);
|
rtlsdr_set_i2c_repeater(dev, 1);
|
||||||
r = dev->tuner->set_if_gain(dev, stage, gain);
|
r = dev->tuner->set_if_gain(dev, stage, gain);
|
||||||
rtlsdr_set_i2c_repeater(dev, 0);
|
/*rtlsdr_set_i2c_repeater(dev, 0);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
@ -1098,7 +1099,7 @@ int rtlsdr_set_tuner_gain_mode(rtlsdr_dev_t *dev, int mode)
|
|||||||
if (dev->tuner->set_gain_mode) {
|
if (dev->tuner->set_gain_mode) {
|
||||||
rtlsdr_set_i2c_repeater(dev, 1);
|
rtlsdr_set_i2c_repeater(dev, 1);
|
||||||
r = dev->tuner->set_gain_mode((void *)dev, mode);
|
r = dev->tuner->set_gain_mode((void *)dev, mode);
|
||||||
rtlsdr_set_i2c_repeater(dev, 0);
|
/*rtlsdr_set_i2c_repeater(dev, 0);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
|
Loading…
Reference in New Issue
Block a user