[U-Boot] Please pull u-boot-dm.git [take 2]

Hans de Goede hdegoede at redhat.com
Sat Apr 18 12:31:54 CEST 2015


Hi,

On 18-04-15 11:19, Hans de Goede wrote:
> Hi,
>
> On 17-04-15 21:39, Hans de Goede wrote:
>> Hi,
>>
>> On 17-04-15 21:28, Hans de Goede wrote:
>>> Hi,
>>>
>>> On 17-04-15 19:53, Tom Rini wrote:
>
> <snip>
>
>>>> I haven't had a chance to bisect yet but I will in a few hours.
>>>
>>> No need to, I've just completed a bisect, it points to:
>>>
>>> 5bca5a6303f3526ab2cf9c0a62cd26c16e0d5c2f is the first bad commit
>>> commit 5bca5a6303f3526ab2cf9c0a62cd26c16e0d5c2f
>>> Author: Simon Glass <sjg at chromium.org>
>>> Date:   Wed Mar 25 12:22:27 2015 -0600
>>>
>>>      dm: usb: Drop the EHCI weak functions
>>>
>>>      These are a pain with driver model because we might have different EHCI
>>>      drivers which want to implement them differently. Now that they use
>>>      consistent function signatures, we can in good conscience move them to
>>>      a struct.
>>>
>>>      Signed-off-by: Simon Glass <sjg at chromium.org>
>>>      Reviewed-by: Marek Vasut <marex at denx.de>
>>>
>>> I'm going to first spend some time with my family now, I may look into
>>> this later tonight, or otherwise this weekend. I'll be sure to check mail
>>> first to avoid double work, so feel free to fix the problem while I'm
>>> relaxing :)
>>
>> Ok, so I could not help myself and took a quick look at the patch causing the
>> issue, this fixes the reset on usb scan problem:
>>
>> diff --git a/drivers/usb/host/ehci-sunxi.c b/drivers/usb/host/ehci-sunxi.c
>> index eda9f69..a847ac5 100644
>> --- a/drivers/usb/host/ehci-sunxi.c
>> +++ b/drivers/usb/host/ehci-sunxi.c
>> @@ -34,6 +34,8 @@ int ehci_hcd_init(int index, enum usb_init_type init, struct ehci_hccr **hccr,
>>                (uint32_t)*hccr, (uint32_t)*hcor,
>>                (uint32_t)HC_LENGTH(ehci_readl(&(*hccr)->cr_capbase)));
>>
>> + ehci_set_controller_priv(index, NULL, NULL);
>> +
>>          return 0;
>>   }
>>
>> And should probably be squashed into the original patch to avoid bisect
>> problems.
>>
>> But with this in place, all is still not well wrt non devicetree usb,
>> usb keyboard support does not work, "usb tree" says:
>>
>> USB device tree:
>>    1  Hub (480 Mb/s, 0mA)
>>    |  u-boot EHCI Host Controller
>>    |
>>    +-2  Hub (480 Mb/s, 100mA)
>>      |
>>      +-3  Hub (12 Mb/s, 100mA)
>>        |
>>        | -1  See Interface (12 Mb/s, 0mA)
>>        |
>>
>> Note the -1 as device number for the "See Interface" device.
>>
>> This particular usb setup used to work fine.
>>
>> I guess this is another issue to git bisect, no idea when I'll get around
>> to that.
>
> Ok, so I've done a git bisect of this (using a branch with my patch for
> the usb-reset issue squashed into the original commit to keep things
> bisectable), and it points to:
>
> commit 3f7af70db23fc1c6b8f9e1bd966cadf2eb139f93
> Author: Simon Glass <sjg at chromium.org>
> Date:   Wed Mar 25 12:22:07 2015 -0600
>
>      dm: usb: Complete the splitting up of usb_new_device()
>
>      This function now calls usb_setup_device() to set up the device and
>      usb_hub_probe() to check if it is a hub. The XHCI special case is now a
>      parameter to usb_setup_device(). The latter will be used by the USB uclass
>      when it is added, since it does not rely on any CONFIGs or legacy data
>      structures.
>
>      Signed-off-by: Simon Glass <sjg at chromium.org>
>      Reviewed-by: Marek Vasut <marex at denx.de>
>
> (the commit id may be of because as said I'm using a custom branch for this).
>
> I'll see if I can figure out why that commit breaks things, but I thought
> I would share the bisect result ASAP to avoid double work.

Attached are 2 patches (to be squashed into the original for bisectability)
which fix things. See the commit messages for details.

Note these do not apply on top of u-boot-dm/master, they apply on top of
the offending commit.

What I've done to get these "integrated" into my dm-master branch is:

1) checkout the offending commit
2) git am the 2 patches
3) note down the commit id of the 2 patches as just applied
4) checkout u-boot-dm/master
5) git rebase -i origin/master
   And then add lines with "pick <commit-id>"
   directly after the line for the troublesome commit

And then when everything looks good, redo the rebase -i and change the
pick into fixup.

Regards,

Hans
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-FIXUP1-dm-usb-Complete-the-splitting-up-of-usb_new_d.patch
Type: text/x-patch
Size: 3975 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150418/6f727837/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-FIXUP2-dm-usb-Complete-the-splitting-up-of-usb_new_d.patch
Type: text/x-patch
Size: 1756 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150418/6f727837/attachment-0001.bin>


More information about the U-Boot mailing list