summaryrefslogtreecommitdiffstats
path: root/software/libosmosdr/src/libosmosdr.c
diff options
context:
space:
mode:
Diffstat (limited to 'software/libosmosdr/src/libosmosdr.c')
-rw-r--r--software/libosmosdr/src/libosmosdr.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/software/libosmosdr/src/libosmosdr.c b/software/libosmosdr/src/libosmosdr.c
index b853b0f..6fde675 100644
--- a/software/libosmosdr/src/libosmosdr.c
+++ b/software/libosmosdr/src/libosmosdr.c
@@ -196,14 +196,18 @@ int e4k_set_enh_gain(void *dev, int32_t gain) {
int e4k_set_gain(void *dev, int gain) {
int8_t mixgain = (gain > 340) ? 12 : 4;
+#if 0
int enhgain = (gain - 420);
- if(e4k_set_lna_gain(dev, min(300, gain - 40)))
+#endif
+ if(e4k_set_lna_gain(dev, min(300, gain - mixgain * 10)))
return -1;
if(e4k_mixer_gain_set(dev, mixgain))
return -1;
+#if 0 /* enhanced mixer gain seems to have no effect */
if(enhgain >= 0)
if(e4k_set_enh_gain(dev, enhgain))
return -1;
+#endif
return 0;
}
@@ -299,8 +303,9 @@ uint32_t osmosdr_get_center_freq(osmosdr_dev_t *dev)
int osmosdr_get_tuner_gains(osmosdr_dev_t *dev, int *gains)
{
+ /* all gain values are expressed in tenths of a dB */
const int e4k_gains[] = { -10, 15, 40, 65, 90, 115, 140, 165, 190, 215,
- 240, 290, 340, 420, 430, 450, 470, 490 };
+ 240, 290, 340, 420 };
int len = sizeof(e4k_gains);
if (!dev)