Bug in split transactions on Raspberry Pi

Doug Anderson dianders at chromium.org
Mon Jan 25 12:44:54 PST 2016


On Mon, Jan 25, 2016 at 12:05 PM, Alan Stern <stern at rowland.harvard.edu> wrote:
> On Fri, 22 Jan 2016, Doug Anderson wrote:
>> > The corresponding line in the dwc2_host_hub_info() routine simply does:
>> >
>> >         *hub_port = urb->dev->ttport;
>> >
>> > Unfortunately, even after I changed the dwc_otg routine the device
>> > still didn't work.  My bus analyzer isn't on hand today, so I'll have
>> > to work on it more next week.
> Okay, I checked it.  Oddly enough, even though the SPLIT packet's
> contents are now correct, the device still doesn't respond.
> Bizarrely, when I interpose a USB-1.1 hub between the RPi and the
> compound device, it _does_ work.  I guess this indicates the device's
> embedded hub isn't quite up to snuff.  But why it should work okay with
> a PC and not with a Raspberry Pi is beyond me.

I just spent a lot of time tracking down lots of problems with SPLITs
in the mainline driver.  No idea if there are similar problems in the
RPI driver.

Note that I have one hub that I've been debugging that still has
problems after all my patches.  My current (unsubstantiated) guess is
that the hub is somehow missing a reset or a configuration packet.
When I plug this hub in it either works or it doesn't work and seems
to stay in that state until I unplug / replug the hub.  I wonder if
there could be something similar?

>> > Can you tell me how to configure a mainline kernel to work on the
>> > Raspberry Pi?  There is no arch/arm/configs/bcmrpi_defconfig.
>> Not offhand.  Again, perhaps someone else on this thread will have
>> more.  I did do a quick Google search and came up with:
>> http://elinux.org/RPi_Upstream_Kernel_Compilation
>> ...but the Raspberry Pi I have at home is running some home automation
>> stuff so I don't want to give that a try.  :-P
> I followed those instructions, and the result doesn't boot.  No easy
> way to figure out why -- nothing shows up on the HDMI screen but the
> color splash.

Interestingly enough Stefan Wahren reached out to me after my recent
patch series indicating that my series didn't fix some other problem
he was having on his Raspberry Pi.  Presumably that means he might
have some pointers?

Stefan: do you have any pointer to instructions that Alan can use to
get a booting Raspberry Pi kernel based on mainline Linux?

...another interesting idea would be to try to see if you could just
change the configuration of the Raspberry Pi kernel to switch which
dwc2 driver it used.  Presumably their driver was an addition on top
of the driver in "drivers/usb/dwc2".  In fact, doing a 'git log' on
drivers/usb/dwc2 in the "rpi-4.4.y" kernel on github it looks pure
(and Stefan is even the last commit author!)


More information about the linux-rpi-kernel mailing list