From 4afb74a8475cdc8067f8eed26d72000e25eb57ef Mon Sep 17 00:00:00 2001 From: Sir Christoff Von-Dryden Of The Bailey LLC Date: Wed, 19 Mar 2025 23:17:31 -0700 Subject: [PATCH] Check the I2CRepeater state before changing it. (#2197) Resolves #1923 - 'USB Error 9' preventing configuration of rtl-sdr devices --- .../dsheirer/source/tuner/rtl/RTL2832TunerController.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/dsheirer/source/tuner/rtl/RTL2832TunerController.java b/src/main/java/io/github/dsheirer/source/tuner/rtl/RTL2832TunerController.java index de09ff7b..8c7f78a8 100644 --- a/src/main/java/io/github/dsheirer/source/tuner/rtl/RTL2832TunerController.java +++ b/src/main/java/io/github/dsheirer/source/tuner/rtl/RTL2832TunerController.java @@ -579,7 +579,12 @@ public class RTL2832TunerController extends USBTunerController { short address = 1; int value = (enabled ? 0x18 : 0x10); - writeDemodRegister(Page.ONE, address, value, 1); + + boolean isEnabledAlready = isI2CRepeaterEnabled(); + if (isEnabledAlready != enabled) { + // mLog.info("trying to " + (enabled ? "enable" : "disable") + " i2c repeater, which is currently " + (isEnabledAlready ? "enabled" : "disabled")); + writeDemodRegister(Page.ONE, address, value, 1); + } } /**