Re: selection of usb configuration on the fly on usb host

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Alan ,

Thanx for the reply . The enclosed patch will definately help my cause .

 In my case this is required as we  want  to stream digital audio from
ipod to our host .

 i will definately need to provide quirk entries at run time ,

 as at compile time ,  it will be extremely difficult to put quirk
entries for all the  ipods .

 there should be some registration mechanism in user space to specify
quirk entries at run time .

 how we can specify quirk entries while the system is running ?

Thanx & Regards

 Amit Nagal









On Tue, Jun 15, 2010 at 7:49 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Mon, 14 Jun 2010, Amit Nagal wrote:
>
>> Hi Alan ,
>>
>> Thanx for the reply .
>>
>> Following enclosed are  logs  :
>>
>> cat /proc/bus/usb/devices  :
>>
>>
>> T:  Bus=02 Lev=01 Prnt=01 Port=05 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
>> D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  2
>> P:  Vendor=05ac ProdID=1261 Rev= 0.01
>> S:  Manufacturer=Apple Inc.
>> S:  Product=iPod
>> S:  SerialNumber=000A270013A06238
>> C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=500mA
>> I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
>> E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
>> C:  #Ifs= 3 Cfg#= 2 Atr=c0 MxPwr=500mA
>> I:  If#= 0 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=
>> I:  If#= 1 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=
>> I:  If#= 1 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=
>> E:  Ad=81(I) Atr=01(Isoc) MxPS= 192 Ivl=1ms
>> I:  If#= 2 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=
>> E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=125us
>
>> Looking forward to suggested patch  .
>
> Here it is.  However I must warn you: It is highly unlikely this patch
> will ever be accepted into the offical Linux kernel.  Most people who
> have iPods and plug them into their computers do expect the iPod to be
> placed in the mass-storage config.
>
> About the closest we might come is a change allowing you to specify
> quirk entries while the system is running.
>
> Alan Stern
>
>
>
> Index: 2.6.34/drivers/usb/core/generic.c
> ===================================================================
> --- 2.6.34.orig/drivers/usb/core/generic.c
> +++ 2.6.34/drivers/usb/core/generic.c
> @@ -18,6 +18,7 @@
>  */
>
>  #include <linux/usb.h>
> +#include <linux/usb/quirks.h>
>  #include "usb.h"
>  #include "hcd.h"
>
> @@ -47,6 +48,9 @@ int usb_choose_configuration(struct usb_
>        int insufficient_power = 0;
>        struct usb_host_config *c, *best;
>
> +       if (udev->quirks & USB_QUIRK_DONT_CONFIGURE)
> +               return -1;
> +
>        best = NULL;
>        c = udev->config;
>        num_configs = udev->descriptor.bNumConfigurations;
> Index: 2.6.34/drivers/usb/core/quirks.c
> ===================================================================
> --- 2.6.34.orig/drivers/usb/core/quirks.c
> +++ 2.6.34/drivers/usb/core/quirks.c
> @@ -50,6 +50,9 @@ static const struct usb_device_id usb_qu
>        /* appletouch */
>        { USB_DEVICE(0x05ac, 0x021a), .driver_info = USB_QUIRK_RESET_RESUME },
>
> +       /* Apple iPod */
> +       { USB_DEVICE(0x05ac, 0x1261), .driver_info = USB_QUIRK_DONT_CONFIGURE },
> +
>        /* Avision AV600U */
>        { USB_DEVICE(0x0638, 0x0a13), .driver_info =
>          USB_QUIRK_STRING_FETCH_255 },
> Index: 2.6.34/include/linux/usb/quirks.h
> ===================================================================
> --- 2.6.34.orig/include/linux/usb/quirks.h
> +++ 2.6.34/include/linux/usb/quirks.h
> @@ -22,4 +22,7 @@
>  /*device will morph if reset, don't use reset for handling errors */
>  #define USB_QUIRK_RESET_MORPHS         0x00000010
>
> +/* device should not be configured by default */
> +#define USB_QUIRK_DONT_CONFIGURE       0x00000020
> +
>  #endif /* __LINUX_USB_QUIRKS_H */
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux