• Enric Balletbo i Serra's avatar
    usb: dwc3: Fix core validation in probe, move after clocks are enabled · dc1b5d9a
    Enric Balletbo i Serra authored
    The required clocks needs to be enabled before the first register
    access. After commit fe8abf33 ("usb: dwc3: support clocks and resets
    for DWC3 core"), this happens when the dwc3_core_is_valid function is
    called, but the mentioned commit adds that call in the wrong place,
    before the clocks are enabled. So, move that call after the
    clk_bulk_enable() to ensure the clocks are enabled and the reset
    deasserted.
    
    I detected this while, as experiment, I tried to move the clocks and resets
    from the glue layer to the DWC3 core on a Samsung Chromebook Plus.
    
    That was not detected before because, in most cases, the glue layer
    initializes SoC-specific things and then populates the child "snps,dwc3"
    with those clocks already enabled.
    
    Fixes: b873e2d0 ("usb: dwc3: Do core validation early on probe")
    Signed-off-by: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
    Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
    dc1b5d9a
core.c 44.3 KB