Hello Thomas De Schampheleire, 

> 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.

I looked for that, by adding own printk calls. But the function pxa_udc_probe 
does not really play a role. It's true, the error comes from that list_empty 
function you mentioned. But there are also functions called before, which 
should fill the list. These are the real functions, that go wrong. I already 
checked it, but there are only more standard functions involved, not really the 
ones in pxa27x_udc.c.

What can I try to do?


> Did you actually connect the device to your board?

Well, actually, the board is the device (usb interface type B is used). But I 
also tried to connect it to a host PC, and it still does not work. The only 
thing that COULD be, is that the host (a PC with WindowsXP) does not have the 
appropriate driver for the board.

Let me explain, what I have researched. To make usb gadget work, there are two 
drivers needed:

1. USB device controller driver: this is the /drivers/usb/gadget/pxa27x_udc.c 
that I want to use.

2. USB gadget driver: there are different types, for example:
/drivers/usb/gadget/g_zero.c
/drivers/usb/gadget/gadgetfs.c
I compiled some of these as modules too, but they depend on the USB device 
controller driver (pxa27x_udc.c). So, if I modprobe them, the system tries to 
load pxa27x_udc first, which also gives the "No such device" error.
Because of this, I think, that the host PC is fine - if the drivers are not 
loaded, there can be no communication at all, right? So the kernel can never 
find out, if the host PC has the driver. So this cannot be the cause of this 
error.

Do I have to add another file on the board?

Best regards.









--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to