summaryrefslogtreecommitdiffstats
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
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>
-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();