kopia lustrzana https://github.com/keenerd/rtl-sdr
lib: retry i2c on failure
rodzic
42d8f12c6e
commit
9ed9ffa37e
|
@ -1950,16 +1950,32 @@ uint32_t rtlsdr_get_tuner_clock(void *dev)
|
||||||
|
|
||||||
int rtlsdr_i2c_write_fn(void *dev, uint8_t addr, uint8_t *buf, int len)
|
int rtlsdr_i2c_write_fn(void *dev, uint8_t addr, uint8_t *buf, int len)
|
||||||
{
|
{
|
||||||
if (dev)
|
int r;
|
||||||
return rtlsdr_i2c_write(((rtlsdr_dev_t *)dev), addr, buf, len);
|
int retries = 2;
|
||||||
|
if (!dev)
|
||||||
|
return -1;
|
||||||
|
do {
|
||||||
|
r = rtlsdr_i2c_write(((rtlsdr_dev_t *)dev), addr, buf, len);
|
||||||
|
if (r >= 0)
|
||||||
|
return r;
|
||||||
|
rtlsdr_set_i2c_repeater(dev, 2);
|
||||||
|
retries--;
|
||||||
|
} while (retries > 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int rtlsdr_i2c_read_fn(void *dev, uint8_t addr, uint8_t *buf, int len)
|
int rtlsdr_i2c_read_fn(void *dev, uint8_t addr, uint8_t *buf, int len)
|
||||||
{
|
{
|
||||||
if (dev)
|
int r;
|
||||||
return rtlsdr_i2c_read(((rtlsdr_dev_t *)dev), addr, buf, len);
|
int retries = 2;
|
||||||
|
if (!dev)
|
||||||
|
return -1;
|
||||||
|
do {
|
||||||
|
r = rtlsdr_i2c_read(((rtlsdr_dev_t *)dev), addr, buf, len);
|
||||||
|
if (r >= 0)
|
||||||
|
return r;
|
||||||
|
rtlsdr_set_i2c_repeater(dev, 2);
|
||||||
|
retries--;
|
||||||
|
} while (retries > 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue