I think the problem is that gadget only supports one driver at a time,
so you cannot run the android gadget driver and gadgetfs
simultaneously.  If you built the android driver as a module, then you
could manually load one or the other and switch between android and
gadgetfs.  But the android driver is not currently set up to work as a
module (we are just statically linking it in at this point).  It
probably wouldn't be too hard to get it working as a module, but I
don't think anyone has done that yet.

Mike

On Fri, Jul 24, 2009 at 3:50 AM, Ashutosh<as...@techmahindra.com> wrote:
>
> Hi Mike,
>
> I have been able to compile kernel 2.6.29 with configuration (USB
> function is disabled)--
>
> CONFIG_USB_GADGET=y
> CONFIG_USB_GADGET_VBUS_DRAW=500
> CONFIG_USB_GADGET_SELECTED=y
> CONFIG_USB_GADGET_MSM_72K=y
> CONFIG_USB_MSM_72K=y
> CONFIG_USB_GADGET_DUALSPEED=y
> CONFIG_USB_ANDROID=y
>
> I am able to get adb shell.
>
> I also compiled gadgetfs as module and got gadgetfs.ko. I inserted it
> in kernel but when I try to mount on it (mount -t gadget path /dev/
> gadget) I get error "mount: No such device".
>
> I debugged it and found that it fails in usb_gadget_register_driver()
> at point --
>
>    if (ui->driver)
>        return -EBUSY;
>
> I am getting this error because msm72k_udc is busy and held by android
> gadget (USB_ANDROID).
>
> I tried to compile CONFIG_USB_ANDROID as module (CONFIG_USB_ANDROID=m)
> and modified system/core/rootdir/init.rc to insert g_android.ko
> (insmod /system/lib/modules/g_android.ko).
>
> This is not working as I am not able to get adb shell.
>
> Would you please let me know, if it is possible to compile g_android
> as module and get inserted in kernel at bootup?
>
> Thanks
> Ashutosh
>
>
>
> On Jul 13, 4:35 pm, Mike Lockwood <lockw...@android.com> wrote:
>> Hi Ashutosh,
>>
>> I think the problem is that the gadgetsupportis broken in our 2.6.27
>> kernel.  However, I do know it is working in 2.6.29.  I believe if you
>> do the following:
>>
>> - backport the latest drivers/usb/gadget/android.c from 2.6.29 back to 2.6.27
>>
>> - backport the following commit from 2.6.29 to to 2.6.27:
>>
>> commit f9335f6d0cfa5b8fc2a10c2a63ebcd42efbf99cb
>> Author: Mike Lockwood <lockw...@android.com>
>> Date:   Fri Feb 20 15:56:06 2009 -0500
>>
>>     [ARM] msm: htc: Clean up USBsupportin trout and sapphire board files
>>
>>     Signed-off-by: Mike Lockwood <lockw...@android.com>
>>
>> - Finally, configure your kernel with the USB functionsupport
>> disabled and the following gadget features enabled:
>>
>> CONFIG_USB_GADGET=y
>> CONFIG_USB_GADGET_VBUS_DRAW=500
>> CONFIG_USB_GADGET_SELECTED=y
>> CONFIG_USB_GADGET_MSM_72K=y
>> CONFIG_USB_MSM_72K=y
>> CONFIG_USB_GADGET_DUALSPEED=y
>> CONFIG_USB_ANDROID=y
>>
>> I'm not sure how easy this will be to do the backporting, but it
>> should be possible.
>>
>> Mike
>>
>>
>>
>> On Mon, Jul 13, 2009 at 7:02 AM, Ashutosh<as...@techmahindra.com> wrote:
>>
>> > (especially to Mike Lockwood)
>>
>> > If I want to havegadgetfssupportat ADP1 and have adb working, how
>> > do I need to to configure kernel and compile?
>>
>> > I have tried many things including using 'CONFIG_USB_ANDROID=y' and
>> > 'CONFIG_USB_FUNCTION is not set' but nothing worked. To compile this
>> > configuration I had to make some modification in some of the files.
>> > List is as below --
>>
>> > 1) In arch/arm/mach-msm/include/mach/board_htc.h (Reason: Type of
>> > t_usb_status_notifier was not visible)
>>
>> >  58 //#if defined(CONFIG_USB_FUNCTION_MSM_HSUSB)
>>
>> >  68 //#endif
>>
>> > 2) In arch/arm/mach-msm/htc_battery.c (Reason: Definition of
>> > usb_register_notifier() was not known. Its defintion is in drivers/usb/
>> > function/msm_hsusb.c)
>>
>> > 793 //  usb_register_notifier(&usb_status_notifier);
>>
>> > I am able to boot this image on ADP1 but when I connect it to my PC
>> > via USB it reboots.
>>
>> > On Jul 10, 7:05 pm, Ashutosh <as...@techmahindra.com> wrote:
>> >> Hello Everybody,
>>
>> >> I wanted to putsupportforgadgetfssupporton ADP1.
>>
>> >> I have downloaded android-1.5r2.
>>
>> >> My local_manifest.xml is --
>>
>> >> <?xml version="1.0" encoding="UTF-8"?>
>> >>  <manifest>
>> >>   <remove-project name="kernel/common"/>
>> >>   <project path="kernel" name="kernel/msm" revision="refs/heads/
>> >> android-msm-2.6.27"/>
>> >>   <project path="vendor/htc/dream" name="platform/vendor/htc/dream"
>> >> revision="cupcake"/>
>> >>   <project path="hardware/msm7k" name="platform/hardware/msm7k"
>> >> revision="refs/heads/master"/>
>> >>  </manifest>
>>
>> >> I have copied arch/arm/configs/msm_defconfig as .config in mydroid/
>> >> kernel.
>>
>> >> I made changes in .config tosupportgadgetfs.
>>
>> >> As Mike has suggested 
>> >> athttp://groups.google.com/group/android-platform/browse_thread/thread/...
>> >> , I have disabled CONFIG_USB_FUNCTION and enabled CONFIG_USB_GADGET
>> >> and CONFIG_USB_GADGET_MSM_72K.
>>
>> >> After configuring kernel, GADGET and USB_FUNCTION configuration looks
>> >> like below --
>>
>> >> CONFIG_USB_GADGET=y
>> >> CONFIG_USB_GADGET_SELECTED=y
>> >> CONFIG_USB_GADGET_MSM_72K=y
>> >> CONFIG_USB_MSM_72K=y
>> >> CONFIG_USB_GADGET_DUALSPEED=y
>> >> CONFIG_USB_GADGETFS=y
>>
>> >> #
>> >> # USB FunctionSupport
>> >> #
>> >> # CONFIG_USB_FUNCTION is not set
>>
>> >> Now I try to compile kernel and get below error --
>>
>> >> arch/arm/mach-msm/htc_battery.c:187: error: variable
>> >> 'usb_status_notifier' has initializer but incomplete type
>> >> arch/arm/mach-msm/htc_battery.c:188: error: unknown field 'name'
>> >> specified in initializer
>> >> arch/arm/mach-msm/htc_battery.c:188: warning: excess elements in
>> >> struct initializer
>> >> arch/arm/mach-msm/htc_battery.c:188: warning: (near initialization for
>> >> 'usb_status_notifier')
>> >> arch/arm/mach-msm/htc_battery.c:189: error: unknown field 'func'
>> >> specified in initializer
>> >> arch/arm/mach-msm/htc_battery.c:189: warning: excess elements in
>> >> struct initializer
>> >> arch/arm/mach-msm/htc_battery.c:189: warning: (near initialization for
>> >> 'usb_status_notifier')
>> >> arch/arm/mach-msm/htc_battery.c: In function 'htc_battery_init':
>> >> arch/arm/mach-msm/htc_battery.c:793: error: implicit declaration of
>> >> function 'usb_register_notifier'
>>
>> >> I looked for declaration of t_usb_status_notifier and found it in arch/
>> >> arm/mach-msm/include/mach/board_htc.h, but this will be visible only
>> >> when CONFIG_USB_FUNCTION_MSM_HSUSB is defined. Since we have disabled
>> >> CONFIG_USB_FUNCTION, none of the CONFIG_USB_FUNCTION* are set.
>>
>> >> I have tried enabling CONFIG_USB_FUNCTION and
>> >> CONFIG_USB_FUNCTION_MSM_HSUSB but that gave many multiple definition
>> >> error.
>>
>> >> Please suggest how do I go about it?
>>
>> >> Thanks
>>
>> --
>> Mike Lockwood
>> Google android team
> >
>



-- 
Mike Lockwood
Google android team

--~--~---------~--~----~------------~-------~--~----~
unsubscribe: android-kernel+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-kernel
-~----------~----~----~----~------~----~------~--~---

Reply via email to