Brian Walsh wrote:
> Brian Walsh wrote:
>> Greg KH wrote:
>>> On Wed, May 17, 2006 at 01:26:33PM -0400, Brian Walsh wrote:
>>>> I am having a problem with a cardbus modem. The cardbus device has an
>>>> internal
>>>> OHCI host controller and 2 usbserial devices attached to that controller.
>>>> I am
>>>> running a 2.6.16 kernel on an Arm ixp425 Coyote based system.
>>>>
>>>> The device works fine. However to insert the device I must first unload
>>>> the
>>>> ohci_hcd module. Insert the card and then let hotplug take care of
>>>> reinitializing everything. All the ohci host devices are reattached along
>>>> with
>>>> all the attached usb devices.
>>>>
>>>> If I insert the card without unloading the ohci_hcd module hotplug will
>>>> see and
>>>> attach the ohci host controller but never attaches the usbserial devices.
>>> Can you post the kernel log messages (with CONFIG_USB_DEBUG enabled) for
>>> when you do this?
>>>
>>> Oh, and does this work properly on a i386 machine?
>>>
>> I posted the log files. They were a bit long to post to the list.
>>
>> http://www.walsh.ws/usb_hang.txt
>> http://www.walsh.ws/usb_reload.txt
>>
>> In usb_reload.txt I first unload the ohci_hcd module then insert the cardbus
>> card.
>>
>> In usb_hang.txt the ohci_hcd module is already loaded when I insert the card.
>>
>> I can not say at this time if it works on an i386 machine, as soon as I can
>> set
>> one up I will test it out.
>>
>> Brian
>>
>>
>
> After looking through the logs again it appears this may be an Arm related
> problem. The dmabounce message is saying there is a device on the pci bus and
> then the drivers attach. When it fails the dmabounce message is coming after
> the usb drivers have attached to the device. Anyway I am posting this problem
> over to the arm-kernel list as well.
>
Ok I am still not sure where the problem exactly lies but here is the fix I came
up with.
I moved the call to platform_notify up in the call to device_add. This allows
the device to fully attach to the system before the driver starts to mess with
it. I don't know if it is the best solution but it works for my hardware.
Comments?
--- linux-2.6.16.a/drivers/base/core.c 2006-03-20 00:53:29.000000000 -0500
+++ linux-2.6.16.b/drivers/base/core.c 2006-05-18 18:21:15.000000000 -0400
@@ -269,6 +269,9 @@
dev->uevent_attr.attr.name = "uevent";
dev->uevent_attr.attr.mode = S_IWUSR;
+ /* notify platform of device entry */
+ if (platform_notify)
+ platform_notify(dev);
if (dev->driver)
dev->uevent_attr.attr.owner = dev->driver->owner;
dev->uevent_attr.store = store_uevent;
@@ -283,8 +286,8 @@
klist_add_tail(&dev->knode_parent, &parent->klist_children);
/* notify platform of device entry */
- if (platform_notify)
- platform_notify(dev);
+ //if (platform_notify)
+ // platform_notify(dev);
Done:
put_device(dev);
return error;
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel