diff -ur libmtp-1.0.6-orig/src/device-flags.h libmtp-1.0.6/src/device-flags.h --- libmtp-1.0.6-orig/src/device-flags.h 2011-06-23 19:33:51.735858314 +0200 +++ libmtp-1.0.6/src/device-flags.h 2011-06-23 19:34:26.427601600 +0200 @@ -3,7 +3,7 @@ * Special device flags to deal with bugs in specific devices. * * Copyright (C) 2005-2007 Richard A. Low <richard@wentnet.com> - * Copyright (C) 2005-2007 Linus Walleij <triad@df.lth.se> + * Copyright (C) 2005-2011 Linus Walleij <triad@df.lth.se> * Copyright (C) 2006-2007 Marcus Meissner * Copyright (C) 2007 Ted Bullock * @@ -35,12 +35,12 @@ /** * This means that the PTP_OC_MTP_GetObjPropList is broken * in the sense that it won't return properly formatted metadata - * for ALL files on the device when you request an object + * for ALL files on the device when you request an object * property list for object 0xFFFFFFFF with parameter 3 likewise - * set to 0xFFFFFFFF. Compare to + * set to 0xFFFFFFFF. Compare to * DEVICE_FLAG_BROKEN_MTPGETOBJECTPROPLIST which only signify * that it's broken when getting metadata for a SINGLE object. - * A typical way the implementation may be broken is that it + * A typical way the implementation may be broken is that it * may not return a proper count of the objects, and sometimes * (like on the ZENs) objects are simply missing from the list * if you use this. Sometimes it has been used incorrectly to @@ -52,14 +52,14 @@ */ #define DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL 0x00000001 /** - * This means that under Linux, another kernel module may - * be using this device's USB interface, so we need to detach + * This means that under Linux, another kernel module may + * be using this device's USB interface, so we need to detach * it if it is. Typically this is on dual-mode devices that * will present both an MTP compliant interface and device * descriptor *and* a USB mass storage interface. If the USB * mass storage interface is in use, other apps (like our * userspace libmtp through libusb access path) cannot get in - * and get cosy with it. So we can remove the offending + * and get cosy with it. So we can remove the offending * application. Typically this means you have to run the program * as root as well. */ @@ -72,17 +72,17 @@ #define DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST 0x00000004 /** * This means the device doesn't send zero packets to indicate - * end of transfer when the transfer boundary occurs at a - * multiple of 64 bytes (the USB 1.1 endpoint size). Instead, - * exactly one extra byte is sent at the end of the transfer - * if the size is an integer multiple of USB 1.1 endpoint size + * end of transfer when the transfer boundary occurs at a + * multiple of 64 bytes (the USB 1.1 endpoint size). Instead, + * exactly one extra byte is sent at the end of the transfer + * if the size is an integer multiple of USB 1.1 endpoint size * (64 bytes). * - * This behaviour is most probably a workaround due to the fact - * that the hardware USB slave controller in the device cannot - * handle zero writes at all, and the usage of the USB 1.1 - * endpoint size is due to the fact that the device will "gear - * down" on a USB 1.1 hub, and since 64 bytes is a multiple of + * This behaviour is most probably a workaround due to the fact + * that the hardware USB slave controller in the device cannot + * handle zero writes at all, and the usage of the USB 1.1 + * endpoint size is due to the fact that the device will "gear + * down" on a USB 1.1 hub, and since 64 bytes is a multiple of * 512 bytes, it will work with USB 1.1 and USB 2.0 alike. */ #define DEVICE_FLAG_NO_ZERO_READS 0x00000008 @@ -97,7 +97,7 @@ * flag on won't hurt anything, just that the check against * filename extension will be done for files of "unknown" type. * If the player does not even know (reports) that it supports - * ogg even though it does, please use the stronger + * ogg even though it does, please use the stronger * OGG_IS_UNKNOWN flag, which will forcedly support ogg on * anything with the .ogg filename extension. */ @@ -127,7 +127,7 @@ * contain junk. This is breaking the PTP/MTP spec but works * on Windows anyway, probably because the Windows implementation * does not check that these bytes are valid. To interoperate - * with devices like this, we need this flag to emulate the + * with devices like this, we need this flag to emulate the * Windows bug. */ #define DEVICE_FLAG_IGNORE_HEADER_ERRORS 0x00000080 @@ -141,11 +141,11 @@ #define DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST 0x00000100 /** * The Samsung YP-T10 think Ogg files shall be sent with - * the "unknown" (PTP_OFC_Undefined) file type, this gives a - * side effect that is a combination of the iRiver Ogg Alzheimer + * the "unknown" (PTP_OFC_Undefined) file type, this gives a + * side effect that is a combination of the iRiver Ogg Alzheimer * problem (have to recognized Ogg files on file extension) * and a need to report the Ogg support (the device itself does - * not properly claim to support it) and need to set filetype + * not properly claim to support it) and need to set filetype * to unknown when storing Ogg files, even though they're not * actually unknown. Later iRivers seem to need this flag since * they do not report to support OGG even though they actually @@ -209,36 +209,36 @@ /** * Devices that send "ObjectDeleted" events after deletion - * of images. (libgphoto2) - */ + * of images. (libgphoto2) + */ #define DEVICE_FLAG_DELETE_SENDS_EVENT 0x00020000 /** * Cameras that can capture images. (libgphoto2) - */ + */ #define DEVICE_FLAG_CAPTURE 0x00040000 /** * Cameras that can capture images. (libgphoto2) - */ + */ #define DEVICE_FLAG_CAPTURE_PREVIEW 0x00080000 /** * Nikon broken capture support without proper ObjectAdded events. * (libgphoto2) - */ + */ #define DEVICE_FLAG_NIKON_BROKEN_CAPTURE 0x00100000 /** * Broken capture support where cameras do not send CaptureComplete events. * (libgphoto2) - */ + */ #define DEVICE_FLAG_NO_CAPTURE_COMPLETE 0x00400000 /** * Direct PTP match required. * (libgphoto2) - */ + */ #define DEVICE_FLAG_MATCH_PTP_INTERFACE 0x00800000 /** * This flag is like DEVICE_FLAG_OGG_IS_UNKNOWN but for FLAC @@ -255,3 +255,14 @@ * device to switch from USB mass storage to MTP mode we think. */ #define DEVICE_FLAG_SWITCH_MODE_BLACKBERRY 0x04000000 +/** + * This flag indicates that the device need an extra long + * timeout on some operations. + */ +#define DEVICE_FLAG_LONG_TIMEOUT 0x08000000 +/** + * This flag indicates that the device need an explicit + * USB reset after each connection. Some devices don't + * like this, so it's not done by default. + */ +#define DEVICE_FLAG_FORCE_RESET_ON_CLOSE 0x10000000 diff -ur libmtp-1.0.6-orig/src/music-players.h libmtp-1.0.6/src/music-players.h --- libmtp-1.0.6-orig/src/music-players.h 2011-06-23 19:33:51.737858300 +0200 +++ libmtp-1.0.6/src/music-players.h 2011-06-23 19:34:20.416646069 +0200 @@ -119,7 +119,7 @@ // get all objects with the getobjectproplist command.. { "Samsung", 0x04e8, "YH-820", 0x502e, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL }, // Contributed by polux2001@users.sourceforge.net - { "Samsung", 0x04e8, "YH-925(-GS)", 0x502f, DEVICE_FLAG_UNLOAD_DRIVER | + { "Samsung", 0x04e8, "YH-925(-GS)", 0x502f, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL }, // Contributed by anonymous person on SourceForge { "Samsung", 0x04e8, "YH-J70J", 0x5033, DEVICE_FLAG_UNLOAD_DRIVER }, @@ -217,12 +217,18 @@ { "Samsung", 0x04e8, "YP-R0", 0x5125, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_PLAYLIST_SPL_V1 | DEVICE_FLAG_UNIQUE_FILENAMES | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + // From Manuel Carro + // Copied from Q2 + { "Samsung", 0x04e8, "YP-Q3", 0x5130, DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_PLAYLIST_SPL_V1 }, // From a rouge .INF file // this device ID seems to have been recycled for: // the Samsung SGH-A707 Cingular cellphone // the Samsung L760-V cellphone // the Samsung SGH-U900 cellphone - { "Samsung", 0x04e8, "YH-999 Portable Media Center/SGH-A707/SGH-L760V/SGH-U900/Verizon Intensity", 0x5a0f, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL }, + // the Samsung Fascinate player + { "Samsung", 0x04e8, "YH-999 Portable Media Center/SGH-A707/SGH-L760V/SGH-U900/Verizon Intensity/Fascinate", 0x5a0f, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL }, // From Santi Béjar <sbejar@gmail.com> - not sure this is MTP... // { "Samsung", 0x04e8, "Z170 Mobile Phone", 0x6601, DEVICE_FLAG_UNLOAD_DRIVER }, // From Santi Béjar <sbejar@gmail.com> - not sure this is MTP... @@ -248,13 +254,25 @@ // Guessing on .spl flag, maybe needs NO_ZERO_READS, whatdoIknow { "Samsung", 0x04e8, "GT-S8500", 0x6819, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_PLAYLIST_SPL_V1 }, + // Reported by anonymous sourceforge user + { "Samsung", 0x04e8, "GT-P7510/Galaxy Tab 10.1", 0x6860, + DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_LONG_TIMEOUT }, // From: Erik Berglund <erikjber@users.sourceforge.net> // Logs indicate this needs DEVICE_FLAG_NO_ZERO_READS + // No Samsung platlists on this device. // https://sourceforge.net/tracker/?func=detail&atid=809061&aid=3026337&group_id=158745 - { "Samsung", 0x04e8, "Galaxy S GT-I9000", 0x6877, DEVICE_FLAG_UNLOAD_DRIVER | + { "Samsung", 0x04e8, "Galaxy S GT-I9000", 0x6877, + DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_LONG_TIMEOUT }, + // From: John Gorkos <ab0oo@users.sourceforge.net> and + // Akos Maroy <darkeye@users.sourceforge.net> + { "Samsung", 0x04e8, "Vibrant SGH-T959", 0x68a9, + DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_PLAYLIST_SPL_V1 }, - // From: John Gorkos <ab0oo@users.sourceforge.net> and Akos Maroy <darkeye@users.sourceforge.net> - { "Samsung", 0x04e8, "Vibrant SGH-T959", 0x68a9, DEVICE_FLAG_UNLOAD_DRIVER | + // Reported by Sleep.Walker <froser@users.sourceforge.net> + { "Samsung", 0x04e8, "GT-B2710/Xcover 271", 0x68af, + DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_PLAYLIST_SPL_V1 }, // From anonymous Sourceforge user { "Samsung", 0x04e8, "GT-S5230", 0xe20c, DEVICE_FLAG_NONE }, @@ -329,14 +347,23 @@ DEVICE_FLAG_UNLOAD_DRIVER }, // From Anonymous SourceForge User { "Philips", 0x0471, "GoGear VIBE SA2VBE[08|16]K/02", 0x20b7, - DEVICE_FLAG_UNLOAD_DRIVER }, + DEVICE_FLAG_UNLOAD_DRIVER }, // from XNJB user { "Philips", 0x0471, "PSA235", 0x7e01, DEVICE_FLAG_NONE }, /* + * Acer + */ + // Reported by anonymous sourceforge user + { "Acer", 0x0502, "Iconia TAB A500 v1", 0x3325, DEVICE_FLAG_NONE }, + // Reported by: Franck VDL <franckv@users.sourceforge.net> + { "Acer", 0x0502, "Iconia TAB A500 v2", 0x3341, DEVICE_FLAG_NONE }, + + + /* * SanDisk - * several devices (c150 for sure) are definately dual-mode and must + * several devices (c150 for sure) are definately dual-mode and must * have the USB mass storage driver that hooks them unloaded first. * They all have problematic dual-mode making the device unload effect * uncertain on these devices. @@ -345,8 +372,9 @@ * Old chipsets: e200/c200 use PP5024 from Nvidia (formerly PortalPlayer). * m200 use TCC770 from Telechips. * - * The newer Sansa v2 chipset, AD3525 from Austriamicrosystems (AMS) found - * in e280 v2 c200 v2, Clip, Fuze etc require DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST + * The newer Sansa v2 chipset, AD3525 from Austriamicrosystems (AMS) found + * in e280 v2 c200 v2, Clip, Fuze etc require + * DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST * and DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR to work properly. * * For more info see: http://daniel.haxx.se/sansa/v2.html @@ -553,7 +581,7 @@ * Dell */ { "Dell, Inc", 0x413c, "DJ Itty", 0x4500, DEVICE_FLAG_NONE }, - + /* * Toshiba * Tentatively flagged all Toshiba devices with @@ -758,14 +786,14 @@ { "Nokia", 0x0421, "6600i", 0x0297, DEVICE_FLAG_NONE }, // From: Karthik Paithankar <whyagain2005@users.sourceforge.net> { "Nokia", 0x0421, "2710", 0x02c1, DEVICE_FLAG_NONE }, - // From: Anonymous sourceforge user + // From: Mick Stephenson <MickStep@users.sourceforge.net> { "Nokia", 0x0421, "5230", 0x02e2, DEVICE_FLAG_NONE }, // From: Lan Liu at Nokia <lan.liu@nokia.com> { "Nokia", 0x0421, "N8", 0x02fe, DEVICE_FLAG_NONE }, // From: Lan Liu at Nokia <lan.liu@nokia.com> { "Nokia", 0x0421, "N8 (Ovi mode)", 0x0302, DEVICE_FLAG_NONE }, - // https://sourceforge.net/tracker/index.php?func=detail&aid=2692473&group_id=8874&atid=358874 - { "Nokia", 0x0421, "5200", 0x0421, DEVICE_FLAG_NONE }, + // From: Raul Metsma <raul@innovaatik.ee> + { "Nokia", 0x0421, "E7", 0x0335, DEVICE_FLAG_NONE }, // From: http://nds2.nokia.com/files/support/global/phones/software/Nokia_3250_WMP10_driver.inf { "Nokia", 0x0421, "3250 Mobile Phone", 0x0462, DEVICE_FLAG_NONE }, // From http://nds2.nokia.com/files/support/global/phones/software/Nokia_N93_WMP10_Driver.inf @@ -778,6 +806,10 @@ { "Nokia", 0x0421, "5700 XpressMusic Mobile Phone", 0x04b4, DEVICE_FLAG_NONE }, // From: Mitchell Hicks <mitchix@yahoo.com> { "Nokia", 0x0421, "5300 Mobile Phone", 0x04ba, DEVICE_FLAG_NONE }, + // https://sourceforge.net/tracker/index.php?func=detail&aid=2692473&group_id=8874&atid=358874 + // From: Tiburce <tiburce@users.sourceforge.net> + { "Nokia", 0x0421, "5200 Mobile Phone", 0x04be, + DEVICE_FLAG_BROKEN_BATTERY_LEVEL }, // From Christian Arnold <webmaster@arctic-media.de> { "Nokia", 0x0421, "N73 Mobile Phone", 0x04d1, DEVICE_FLAG_UNLOAD_DRIVER }, // From Swapan <swapan@yahoo.com> @@ -874,7 +906,7 @@ */ // Reported by XNJB user { "Disney", 0x0aa6, "MixMax", 0x6021, DEVICE_FLAG_NONE }, - // Reported by anonymous Sourceforge user + // Reported by anonymous Sourceforge user { "Tevion", 0x0aa6, "MD 81488", 0x3011, DEVICE_FLAG_NONE }, // Reported by Peter Hedlund <peter@peterandlinda.com> { "MyMusix", 0x0aa6, "PD-6070", 0x9601, DEVICE_FLAG_UNLOAD_DRIVER | @@ -935,6 +967,10 @@ { "Cowon", 0x0e21, "iAudio J3 (MTP mode)", 0x0921, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN }, + // Reported by anonymous SourceForge user + { "Cowon", 0x0e21, "iAudio X7 (MTP mode)", 0x0931, + DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN }, /* * Insignia, dual-mode. @@ -956,16 +992,27 @@ { "LG Electronics Inc.", 0x043e, "UP3", 0x70b1, DEVICE_FLAG_NONE }, // Reported by Joseph Nahmias <joe@nahimas.net> { "LG Electronics Inc.", 0x1004, "VX8550 V CAST Mobile Phone", 0x6010, - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR }, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR }, // Reported by Cyrille Potereau <cyrille.potereau@wanadoo.fr> { "LG Electronics Inc.", 0x1004, "KC910 Renoir Mobile Phone", 0x608f, DEVICE_FLAG_UNLOAD_DRIVER }, // Reported by Aaron Slunt <tongle@users.sourceforge.net> { "LG Electronics Inc.", 0x1004, "GR-500 Music Player", 0x611b, - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR }, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR }, // Reported by anonymous sourceforge user { "LG Electronics Inc.", 0x1004, "KM900", 0x6132, - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_UNLOAD_DRIVER }, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNLOAD_DRIVER }, + // Reported by anonymous sourceforge user + { "LG Electronics Inc.", 0x1004, "LG8575", 0x619a, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNLOAD_DRIVER }, + // Reported by anonymous sourceforge user + { "LG Electronics Inc.", 0x1004, "V909 G-Slate", 0x61f9, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNLOAD_DRIVER }, /* * Sony @@ -977,105 +1024,130 @@ { "Sony", 0x054c, "Walkman NWZ-A815/NWZ-A818", 0x0325, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by anonymous Sourceforge user. { "Sony", 0x054c, "Walkman NWZ-S516", 0x0326, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Endre Oma <endre.88.oma@gmail.com> { "Sony", 0x054c, "Walkman NWZ-S615F/NWZ-S616F/NWZ-S618F", 0x0327, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Jean-Marc Bourguet <jm@bourguet.org> { "Sony", 0x054c, "Walkman NWZ-S716F", 0x035a, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Anon SF User / Anthon van der Neut <avanderneut@avid.com> { "Sony", 0x054c, "Walkman NWZ-A826/NWZ-A828/NWZ-A829", 0x035b, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Niek Klaverstijn <niekez@users.sourceforge.net> { "Sony", 0x054c, "Walkman NWZ-A726/NWZ-A728/NWZ-A768", 0x035c, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Mehdi AMINI <mehdi.amini - at - ulp.u-strasbg.fr> { "Sony", 0x054c, "Walkman NWZ-B135", 0x036e, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by <tiagoboldt@users.sourceforge.net> { "Sony", 0x054c, "Walkman NWZ-E436F", 0x0385, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Michael Wilkinson { "Sony", 0x054c, "Walkman NWZ-W202", 0x0388, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Ondrej Sury <ondrej@sury.org> { "Sony", 0x054c, "Walkman NWZ-S739F", 0x038c, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Marco Filipe Nunes Soares Abrantes Pereira <marcopereira@ua.pt> { "Sony", 0x054c, "Walkman NWZ-S638F", 0x038e, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Elliot <orwells@users.sourceforge.net> { "Sony", 0x054c, "Walkman NWZ-X1050B/NWZ-X1060B", 0x0397, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Silvio J. Gutierrez <silviogutierrez@users.sourceforge.net> { "Sony", 0x054c, "Walkman NWZ-X1051/NWZ-X1061", 0x0398, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Gregory Boddin <gregory@siwhine.net> { "Sony", 0x054c, "Walkman NWZ-B142F", 0x03d8, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Rick Warner <rick@reptileroom.net> { "Sony", 0x054c, "Walkman NWZ-E344", 0x03fc, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Jonathan Stowe <gellyfish@users.sourceforge.net> { "Sony", 0x054c, "Walkman NWZ-E445", 0x03fd, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, // Reported by Anonymous SourceForge user { "Sony", 0x054c, "Walkman NWZ-S545", 0x03fe, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, { "Sony", 0x054c, "Walkman NWZ-A845", 0x0404, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, { "Sony", 0x054c, "Walkman NWZ-B153F", 0x04be, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, { "Sony", 0x054c, "Walkman NWZ-E354", 0x04cb, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, + // Reported by Toni Burgarello + { "Sony", 0x054c, "Walkman NWZ-S754", 0x04cc, + DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL | DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by Anonymous SourceForge user { "Sony", 0x054c, "DCR-SR75", 0x1294, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | - DEVICE_FLAG_UNIQUE_FILENAMES }, - + DEVICE_FLAG_UNIQUE_FILENAMES | + DEVICE_FLAG_FORCE_RESET_ON_CLOSE }, /* * SonyEricsson @@ -1117,8 +1189,17 @@ { "SonyEricsson", 0x0fce, "U5", 0x0133, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, // Reported by Flo <lhugsereg@users.sourceforge.net> { "SonyEricsson", 0x0fce, "U8i", 0x013a, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + // Reported by xirotyu <xirotyu@users.sourceforge.net> + { "SonyEricsson", 0x0fce, "j10i2 (Elm)", 0x0144, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + // Reported by Jonas Salling <> + // Erroneous MTP implementation seems to be from Aricent, returns + // broken transaction ID. + { "SonyEricsson", 0x0fce, "LT15i (Xperia arc)", 0x14f, DEVICE_FLAG_IGNORE_HEADER_ERRORS }, // Reported by Jonas Nyrén <spectralmks@users.sourceforge.net> { "SonyEricsson", 0x0fce, "W302", 0x10c8, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + // Reported by Anonymous Sourceforge user + { "SonyEricsson", 0x0fce, "j10i (Elm)", 0xd144, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + /* @@ -1130,7 +1211,7 @@ DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL }, // Reported by Steven Roemen <sdroemen@users.sourceforge.net> - { "Motorola", 0x22b8, "Droid X", 0x41d6, + { "Motorola", 0x22b8, "Droid X/MB525 (Defy)", 0x41d6, DEVICE_FLAG_NONE }, // Reported by anonymous user { "Motorola", 0x22b8, "Milestone / Verizon Droid", 0x41dc, @@ -1155,7 +1236,17 @@ // Reported by anonymous user { "Motorola", 0x22b8, "RAZR2 V8/U9/Z6", 0x6415, DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST }, - + // Reported by Google Inc's Yavor Goulishev <yavor@google.com> + // Android 3.0 MTP stack seems to announce that it supports the + // list operations, but they do not work? + { "Motorola", 0x22b8, "Xoom (ID 1)", 0x70a8, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST | + DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST }, + { "Motorola", 0x22b8, "Xoom (ID 2)", 0x70a9, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST | + DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST }, /* * Media Keg @@ -1253,9 +1344,21 @@ { "Apple", 0x05ac, "iPod Touch 3rd Gen", 0x1299, DEVICE_FLAG_NONE }, { "Apple", 0x05ac, "iPad", 0x129a, DEVICE_FLAG_NONE }, - // Reported by anonymous SourceForge user + // Reported by anonymous SourceForge user, also reported as + // Pantech Crux, claming to be: + // Manufacturer: Qualcomm + // Model: Windows Simulator + // Device version: Qualcomm MTP1.0 { "Curitel Communications, Inc.", 0x106c, "Verizon Wireless Device", 0x3215, DEVICE_FLAG_NONE }, + // Reported by: Jim Hanrahan <goshawkjim@users.sourceforge.net> + { "Pantech", 0x106c, "Crux", 0xf003, DEVICE_FLAG_NONE }, + + /* + * Asus + */ + { "Asus", 0x0b05, "TF101 Eeepad Transformer", 0x4e0f, DEVICE_FLAG_NONE }, + { "Asus", 0x0b05, "FT101 Eeepad Transformer", 0x4e1f, DEVICE_FLAG_NONE }, /* * Other strange stuff.