summaryrefslogtreecommitdiffstats
path: root/qdbd
diff options
context:
space:
mode:
authorKari Oikarinen <kari.oikarinen@qt.io>2018-09-05 17:10:27 +0300
committerKari Oikarinen <kari.oikarinen@qt.io>2018-09-11 06:25:09 +0000
commita79fc340804358f1b951fa8ce0e309e54f151fca (patch)
treefcf1e04c3f05cb8060da591e894a92af869e8929 /qdbd
parent0412faf51df1dd15dd79ae7d2ecd0a053768c9fa (diff)
Disable USB gadget when shutting down
This was previously done by the init script. Move it inside qdbd like the initialization was moved previously. Task-number: QTBUG-63029 Change-Id: I869138acd579f9f3f1f3af1ebf5583e7882296fa Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
Diffstat (limited to 'qdbd')
-rw-r--r--qdbd/usb-gadget/usbgadget.cpp27
1 files changed, 22 insertions, 5 deletions
diff --git a/qdbd/usb-gadget/usbgadget.cpp b/qdbd/usb-gadget/usbgadget.cpp
index 599de48..265527e 100644
--- a/qdbd/usb-gadget/usbgadget.cpp
+++ b/qdbd/usb-gadget/usbgadget.cpp
@@ -120,6 +120,11 @@ const struct {
},
};
+QString gadgetConfigPath()
+{
+ return Configuration::gadgetConfigFsDir() + QLatin1String("/UDC");
+}
+
UsbGadget::UsbGadget()
: m_controlEndpoint(Configuration::functionFsDir() + "/ep0"),
m_outEndpoint(Configuration::functionFsDir() + "/ep1"),
@@ -149,6 +154,19 @@ UsbGadget::~UsbGadget()
m_writeThread->terminate();
m_readThread->wait();
}
+
+ // Disable USB gadget configuration
+ QFile gadgetConfigFile{gadgetConfigPath()};
+ if (gadgetConfigFile.open(QIODevice::WriteOnly | QIODevice::Unbuffered)) {
+ if (gadgetConfigFile.write("") != -1)
+ qCDebug(usbC) << "Disabled USB gadget UDC driver";
+ else
+ qCWarning(usbC) << "Could not disable USB gadget UDC driver when quitting";
+ } else {
+ qCWarning(usbC) << "Could not open USB gadget UDC file for writing to disable";
+ }
+ gadgetConfigFile.close();
+
m_inEndpoint.close();
m_outEndpoint.close();
m_controlEndpoint.close();
@@ -295,20 +313,19 @@ void UsbGadget::initializeGadgetWithUdc()
return;
}
- const QString gadgetConfigPath = Configuration::gadgetConfigFsDir() + QLatin1String("/UDC");
- QFile gadgetConfigFile{gadgetConfigPath};
+ QFile gadgetConfigFile{gadgetConfigPath()};
if (!gadgetConfigFile.exists()) {
qCCritical(usbC) << "Failed to initialize USB gadget, no gadget file found in"
- << gadgetConfigPath;
+ << gadgetConfigPath();
return;
}
if (!gadgetConfigFile.open(QIODevice::ReadWrite | QIODevice::Unbuffered)) {
- qCCritical(usbC) << "Failed to initialize USB gadget, can't open" << gadgetConfigPath;
+ qCCritical(usbC) << "Failed to initialize USB gadget, can't open" << gadgetConfigPath();
return;
}
if (gadgetConfigFile.write(driverName.toUtf8()) == -1) {
qCCritical(usbC) << "Failed to initialize USB gadget, can't write to"
- << gadgetConfigPath;
+ << gadgetConfigPath();
return;
}
gadgetConfigFile.close();