Re: modprobe error "No such device" udc driver

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

 



On Thu, Nov 5, 2009 at 8:19 AM, Katharina Ludwig
<katharina.ludwig@xxxxxxxx> wrote:
> Hello Pei Lin,
>
>> See the path code, here....
>>
>>  static int __init udc_init(void)
>>  {
>> -    if (!cpu_is_pxa27x())
>> +    if (!cpu_is_pxa27x() && !cpu_is_pxa3xx())
>>          return -ENODEV;
>>
>>      printk(KERN_INFO "%s: version %s\n", driver_name, DRIVER_VERSION);
>> --
>
> No this is not the mistake. The patch changes the function udc_init
> in /drivers/usb/gadget/pxa27x_udc.c to:
>
> static int __init udc_init(void)
> {
>   if (!cpu_is_pxa27x() && !cpu_is_pxa3xx())
>      return -ENODEV;
>
>   printk(KERN_INFO "%s: version %s\n", driver_name, DRIVER_VERSION);
>   return platform_driver_probe(&udc_driver, pxa_udc_probe);
> }
>
> The line
>   printk(KERN_INFO "%s: version %s\n", driver_name, DRIVER_VERSION);
> gets printed out (I see it with dmesg).
>
> The error comes from the function platform_driver_probe
> in /drivers/base/platform.c, which is apparently a standard function of
> the kernel, and not hardware specific. Would it help, if I tell you exactly which functions go wrong? I still think, that the error must be elsewhere, not in these standard functions. But where? Is only a file in
> the file system of my board missing?

Hi,

The second parameter to platform_driver_probe() is a function pointer
to the device-specific probe function (pxa_udc_probe). Eventually,
this probe function will get called to check for the presence of the
device.

You wrote that the error comes from platform_driver_probe. I assume it
is from these two lines:
 555        if (code == 0 && list_empty(&drv->driver.p->klist_devices.k_list))
 556                retval = -ENODEV;

As far as I can tell, it checks whether or not the list of detected
devices is empty. When a device is detected, the list will be
non-empty. Did you actually connect the device to your board?

Otherwise, I suggest you try to find out why the device is not
detected. You could either use some debugging solution, or modify the
driver to add some print statements.

Best regards,
Thomas

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux