Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de6f62a6 authored by Xavier Ducrohet's avatar Xavier Ducrohet
Browse files

Add support for Samsung and Motorola devices.

Also update the linux code. Some devices have more complex USB descriptors
which can't be parsed with the simple assumption of just skipping the
endpoint descriptors.
parent d52f54c4
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -318,8 +318,12 @@ static int find_usb_device(const char *base,
                    found_device = 1;
                    break;
                } else {
                        // skip to next interface
                    bufptr += (interface->bNumEndpoints * USB_DT_ENDPOINT_SIZE);
                    // seek next interface descriptor
                    if (i < interfaces - 1) {
                        while (bufptr[1] != USB_DT_INTERFACE) {
                            bufptr += bufptr[0];
                        }
                    }
                 }
            } // end of for

+6 −0
Original line number Diff line number Diff line
@@ -39,11 +39,17 @@
#define VENDOR_ID_GOOGLE        0x18d1
// HTC's USB Vendor ID
#define VENDOR_ID_HTC           0x0bb4
// Samsung's USB Vendor ID
#define VENDOR_ID_SAMSUNG       0x04e8
// Motorola's USB Vendor ID
#define VENDOR_ID_MOTOROLA      0x22b8

/** built-in vendor list */
int builtInVendorIds[] = {
    VENDOR_ID_GOOGLE,
    VENDOR_ID_HTC,
    VENDOR_ID_SAMSUNG,
    VENDOR_ID_MOTOROLA,
};

#define BUILT_IN_VENDOR_COUNT    (sizeof(builtInVendorIds)/sizeof(builtInVendorIds[0]))