2011-02-05 17:47:23

by Maciej Szmigiero

[permalink] [raw]
Subject: [USB]Add quirk for Samsung Android phone modem

[USB]Add quirk for Samsung Android phone modem

My Galaxy Spica needs this quirk when in modem mode, otherwise
it causes endless USB bus resets and is unusable in this mode.

Unfortunately Samsung decided to reuse ID of its old CDMA phone SGH-I500
for the modem part.
That's why in addition to this patch the visior driver must be prevented
from binding to SPH-I500 ID, so ACM driver can do that.

Signed-off-by: Maciej Szmigiero <[email protected]>

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 44c5954..363355b 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -88,6 +88,10 @@ static const struct usb_device_id usb_quirk_list[] = {
/* INTEL VALUE SSD */
{ USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },

+ /* Samsung Android phone modem - ID conflict with SPH-I500 */
+ { USB_DEVICE(0x04e8, 0x6601), .driver_info =
+ USB_QUIRK_CONFIG_INTF_STRINGS },
+
{ } /* terminating entry must be last */
};


2011-02-05 20:15:29

by Alan Stern

[permalink] [raw]
Subject: Re: [USB]Add quirk for Samsung Android phone modem

On Sat, 5 Feb 2011, Maciej Szmigiero wrote:

> [USB]Add quirk for Samsung Android phone modem
>
> My Galaxy Spica needs this quirk when in modem mode, otherwise
> it causes endless USB bus resets and is unusable in this mode.
>
> Unfortunately Samsung decided to reuse ID of its old CDMA phone SGH-I500
> for the modem part.
> That's why in addition to this patch the visior driver must be prevented
> from binding to SPH-I500 ID, so ACM driver can do that.
>
> Signed-off-by: Maciej Szmigiero <[email protected]>
>
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index 44c5954..363355b 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -88,6 +88,10 @@ static const struct usb_device_id usb_quirk_list[] = {
> /* INTEL VALUE SSD */
> { USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },
>
> + /* Samsung Android phone modem - ID conflict with SPH-I500 */
> + { USB_DEVICE(0x04e8, 0x6601), .driver_info =
> + USB_QUIRK_CONFIG_INTF_STRINGS },
> +
> { } /* terminating entry must be last */
> };

Please follow the directions at the start of the source file: Keep the
list ordered by vendor ID, then product ID.

Alan Stern

2011-02-05 20:52:16

by Maciej Szmigiero

[permalink] [raw]
Subject: Re: [USB]Add quirk for Samsung Android phone modem

W dniu 05.02.2011 21:15, Alan Stern pisze:
> On Sat, 5 Feb 2011, Maciej Szmigiero wrote:
>
>> [USB]Add quirk for Samsung Android phone modem
>>
>> My Galaxy Spica needs this quirk when in modem mode, otherwise
>> it causes endless USB bus resets and is unusable in this mode.
>>
>> Unfortunately Samsung decided to reuse ID of its old CDMA phone SGH-I500
>> for the modem part.
>> That's why in addition to this patch the visior driver must be prevented
>> from binding to SPH-I500 ID, so ACM driver can do that.
>>
>> Signed-off-by: Maciej Szmigiero <[email protected]>
>>
>> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
>> index 44c5954..363355b 100644
>> --- a/drivers/usb/core/quirks.c
>> +++ b/drivers/usb/core/quirks.c
>> @@ -88,6 +88,10 @@ static const struct usb_device_id usb_quirk_list[] = {
>> /* INTEL VALUE SSD */
>> { USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },
>>
>> + /* Samsung Android phone modem - ID conflict with SPH-I500 */
>> + { USB_DEVICE(0x04e8, 0x6601), .driver_info =
>> + USB_QUIRK_CONFIG_INTF_STRINGS },
>> +
>> { } /* terminating entry must be last */
>> };
>
> Please follow the directions at the start of the source file: Keep the
> list ordered by vendor ID, then product ID.
>
> Alan Stern

Sorry for that, should have read the whole file before adding new quirk.
Here is a sorted version:

[USB]Add quirk for Samsung Android phone modem

My Galaxy Spica needs this quirk when in modem mode, otherwise
it causes endless USB bus resets and is unusable in this mode.

Unfortunately Samsung decided to reuse ID of its old CDMA phone SGH-I500
for the modem part.
That's why in addition to this patch the visor driver must be prevented
from binding to SPH-I500 ID, so ACM driver can do that.

Signed-off-by: Maciej Szmigiero <[email protected]>

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 44c5954..63b1f21 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -48,6 +48,10 @@ static const struct usb_device_id usb_quirk_list[] = {
{ USB_DEVICE(0x04b4, 0x0526), .driver_info =
USB_QUIRK_CONFIG_INTF_STRINGS },

+ /* Samsung Android phone modem - ID conflict with SPH-I500 */
+ { USB_DEVICE(0x04e8, 0x6601), .driver_info =
+ USB_QUIRK_CONFIG_INTF_STRINGS },
+
/* Roland SC-8820 */
{ USB_DEVICE(0x0582, 0x0007), .driver_info = USB_QUIRK_RESET_RESUME },