On 06.09.2017 16:21, Jon Hunter wrote: > > On 16/08/17 11:32, Dmitry Osipenko wrote: >> From: Thierry Reding <treding@xxxxxxxxxx> >> >> All of these Tegra SoC generations have a ChipIdea UDC IP block that can >> be used for device mode communication with a host. Implement rudimentary >> support that doesn't allow switching between host and device modes. >> >> Tested-by: Michał Mirosław <mirq-linux@xxxxxxxxxxxx> >> Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> >> [digetx@xxxxxxxxx: rebased patches and added DMA alignment quirk for Tegra20] >> Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx> >> Acked-by: Peter Chen <peter.chen@xxxxxxx> > > Currently, I am seeing that system suspend on Tegra30/114/124 is broken > on -next (looks like it broke starting with next-20170823). Bisect shows > that is broke with this series and reverting this patch of top of tree > does workaround the problem. > > Looking a bit deeper, it appears that the boards are hanging when the > set_phcd() function is called in the tegra phy driver to disable the phy > clock. This function is called by usb_phy_set_suspend() in the chipidea > driver. As been discussed on IRC, this issue is caused by entering LPM twice: first time ChipIdea driver enters LPM and then Tegra's PHY does it too, touching registers that seems shouldn't be touched after entering LPM. As Thierry suggested, one possible and quick solution is to *not* set udc->data.usb_phy for Tegra30+. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html