diff --git a/src/serialport/qserialportinfo_unix.cpp b/src/serialport/qserialportinfo_unix.cpp index 0f62a9df040467816cb336ebaf223182021f9019..105d10af90cc70cdae0c7d6c308a2ee59c3b9e7b 100644 --- a/src/serialport/qserialportinfo_unix.cpp +++ b/src/serialport/qserialportinfo_unix.cpp @@ -169,6 +169,12 @@ static bool isVirtualNullModemDevice(const QString &portName) return portName.startsWith(QLatin1String("tnt")); } +// provided by the g_serial driver +static bool isGadgetDevice(const QString &portName) +{ + return portName.startsWith(QLatin1String("ttyGS")); +} + static QString ueventProperty(const QDir &targetDir, const QByteArray &pattern) { QFile f(QFileInfo(targetDir, QStringLiteral("uevent")).absoluteFilePath()); @@ -265,7 +271,8 @@ QList<QSerialPortInfo> availablePortsBySysfs(bool &ok) const QString driverName = deviceDriver(targetDir); if (driverName.isEmpty()) { if (!isRfcommDevice(priv.portName) - && !isVirtualNullModemDevice(priv.portName)) { + && !isVirtualNullModemDevice(priv.portName) + && !isGadgetDevice(priv.portName)) { continue; } } @@ -436,7 +443,8 @@ QList<QSerialPortInfo> availablePortsByUdev(bool &ok) priv.productIdentifier = deviceProductIdentifier(dev.data(), priv.hasProductIdentifier); } else { if (!isRfcommDevice(priv.portName) - && !isVirtualNullModemDevice(priv.portName)) { + && !isVirtualNullModemDevice(priv.portName) + && !isGadgetDevice(priv.portName)) { continue; } }