Re: [PATCH V2] usb: gadget: bcm63xx UDC driver

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


On Tue, Aug 21, 2012 at 2:13 PM, Sebastian Andrzej Siewior
<sebastian@xxxxxxxxxxxxx> wrote:
> please drop the "force all gadget drivers to also be dynamically linked" part.
> We may want to change this one day :)

Done in V3

>> +     if (!pd->use_fullspeed && !use_fullspeed)
> so it is a good advice to have pd not set to NULL :)

In V3 the probe function will call dev_err() and exit, instead of
crashing.  I added a comment explaining why it's mandatory: the
hardware requires specifying which port is shared between the device
core + host core, and if we just "assume" the wrong value, the port
won't pass traffic and it won't be obvious why.

>> +static bool use_fullspeed;
>> +module_param(use_fullspeed, bool, S_IRUGO);
>> +MODULE_PARM_DESC(use_fullspeed, "true for fullspeed only");
>
> How important is this option? Maybe this should become a generic option?

In theory, the hardware core should always be able to support USB 2.0
without any problems, and bcm63xx_udc.c should always be used with
gadget drivers that can handle USB 2.0.

In practice, there are a number of boards floating around which are
only reliable at USB 1.1 speeds, either due to impedance problems or
noise.  These fall into two categories:

1) Boards that have their own board definition in board_bcm963xx.c,
and pass this ID to Linux - in this case use_fullspeed can be
specified right in the platform data.

2) Products that copied the generic board name from the reference
design.  In this case they'll need another way of overriding
use_fullspeed, because the reference board supports high speed.  Some
might just add "bcm63xx_udc.use_fullspeed=1" to CONFIG_CMDLINE.
Others have to detect the board revision through other means (such as
reading a GPIO) and then pass the appropriate option to insmod.

use_fullspeed=1 just tells the core not to negotiate USB 2.0 PHY
rates.  It should be roughly equivalent to plugging the device into a
full speed hub.



[Linux MIPS Home]     [LKML Archive]     [Linux ARM]     [Linux]     [Git]     [Photo]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

Add to Google Powered by Linux