mtp: linux guest detection fix.

Attach a name to the MTP interface (android phones have this too).

With this patch recent linux guests such as fedora 20 happily detect and
use the device.  It shows up in nautilus file manager automatically, and
simple-mtpfs can mount it.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Gerd Hoffmann 2014-07-01 17:49:25 +02:00
parent 9e99c5fd70
commit 13d54125a3

View File

@ -145,6 +145,7 @@ enum {
STR_MANUFACTURER = 1, STR_MANUFACTURER = 1,
STR_PRODUCT, STR_PRODUCT,
STR_SERIALNUMBER, STR_SERIALNUMBER,
STR_MTP,
STR_CONFIG_FULL, STR_CONFIG_FULL,
STR_CONFIG_HIGH, STR_CONFIG_HIGH,
STR_CONFIG_SUPER, STR_CONFIG_SUPER,
@ -154,6 +155,7 @@ static const USBDescStrings desc_strings = {
[STR_MANUFACTURER] = MTP_MANUFACTURER, [STR_MANUFACTURER] = MTP_MANUFACTURER,
[STR_PRODUCT] = MTP_PRODUCT, [STR_PRODUCT] = MTP_PRODUCT,
[STR_SERIALNUMBER] = "34617", [STR_SERIALNUMBER] = "34617",
[STR_MTP] = "MTP",
[STR_CONFIG_FULL] = "Full speed config (usb 1.1)", [STR_CONFIG_FULL] = "Full speed config (usb 1.1)",
[STR_CONFIG_HIGH] = "High speed config (usb 2.0)", [STR_CONFIG_HIGH] = "High speed config (usb 2.0)",
[STR_CONFIG_SUPER] = "Super speed config (usb 3.0)", [STR_CONFIG_SUPER] = "Super speed config (usb 3.0)",
@ -165,6 +167,7 @@ static const USBDescIface desc_iface_full = {
.bInterfaceClass = USB_CLASS_STILL_IMAGE, .bInterfaceClass = USB_CLASS_STILL_IMAGE,
.bInterfaceSubClass = 0x01, .bInterfaceSubClass = 0x01,
.bInterfaceProtocol = 0x01, .bInterfaceProtocol = 0x01,
.iInterface = STR_MTP,
.eps = (USBDescEndpoint[]) { .eps = (USBDescEndpoint[]) {
{ {
.bEndpointAddress = USB_DIR_IN | EP_DATA_IN, .bEndpointAddress = USB_DIR_IN | EP_DATA_IN,
@ -206,6 +209,7 @@ static const USBDescIface desc_iface_high = {
.bInterfaceClass = USB_CLASS_STILL_IMAGE, .bInterfaceClass = USB_CLASS_STILL_IMAGE,
.bInterfaceSubClass = 0x01, .bInterfaceSubClass = 0x01,
.bInterfaceProtocol = 0x01, .bInterfaceProtocol = 0x01,
.iInterface = STR_MTP,
.eps = (USBDescEndpoint[]) { .eps = (USBDescEndpoint[]) {
{ {
.bEndpointAddress = USB_DIR_IN | EP_DATA_IN, .bEndpointAddress = USB_DIR_IN | EP_DATA_IN,