summaryrefslogtreecommitdiff
path: root/src/rtl-sdr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/rtl-sdr.c')
-rw-r--r--src/rtl-sdr.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/rtl-sdr.c b/src/rtl-sdr.c
index b88ac60..70ea7cd 100644
--- a/src/rtl-sdr.c
+++ b/src/rtl-sdr.c
@@ -160,10 +160,14 @@ int rtlsdr_write_array(rtlsdr_dev_t *dev, uint8_t block, uint16_t addr, uint8_t
return r;
}
-int rtlsdr_i2c_write_reg(rtlsdr_dev_t *dev, uint8_t i2c_addr, uint8_t data)
+int rtlsdr_i2c_write_reg(rtlsdr_dev_t *dev, uint8_t i2c_addr, uint8_t reg, uint8_t val)
{
uint16_t addr = i2c_addr;
- return rtlsdr_write_array(dev, IICB, addr, &data, 1);
+ uint8_t data[2];
+
+ data[0] = reg;
+ data[1] = val;
+ return rtlsdr_write_array(dev, IICB, addr, &data, 2);
}
uint8_t rtlsdr_i2c_read_reg(rtlsdr_dev_t *dev, uint8_t i2c_addr, uint8_t reg)
@@ -601,6 +605,9 @@ rtlsdr_dev_t *rtlsdr_open(int index)
}
found:
+ if (dev->tuner)
+ dev->tuner->init(dev);
+
rtlsdr_set_i2c_repeater(dev, 0);
return dev;