twl4030_phy_power_on() initializes some bits which are required for charging. As they are not set in twl4030_usb_runtime_resume() a call to pm_runtime_get_sync() is not sufficient to enable charging. This patch moves the initialization to twl4030_usb_runtime_resume() so everything needed for charging is initialized upon pm_runtime_get_sync(). That also gives improved possibilities to debug problems in that area because the relevant parts can be checked separately. Charging can be enabled without having the musb subsystem active. As a side effect this hides some bugs in musb which causes unbalanced calls to phy_power_off()/phy_power_on() so that phy->power_count becomes -1. The result is that e.g. the GTA04 phone (dm3730 + twl4030) works finally as a usb gadget again and charging is working. Signed-off-by: Andreas Kemnade <andreas@kemnade.info> Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> |
||
|---|---|---|
| .. | ||
| tegra | ||
| Kconfig | ||
| Makefile | ||
| phy-armada375-usb2.c | ||
| phy-bcm-cygnus-pcie.c | ||
| phy-bcm-kona-usb2.c | ||
| phy-bcm-ns-usb2.c | ||
| phy-bcm-ns-usb3.c | ||
| phy-bcm-ns2-pcie.c | ||
| phy-berlin-sata.c | ||
| phy-berlin-usb.c | ||
| phy-brcm-sata.c | ||
| phy-core.c | ||
| phy-da8xx-usb.c | ||
| phy-dm816x-usb.c | ||
| phy-exynos-dp-video.c | ||
| phy-exynos-mipi-video.c | ||
| phy-exynos4x12-usb2.c | ||
| phy-exynos5-usbdrd.c | ||
| phy-exynos4210-usb2.c | ||
| phy-exynos5250-sata.c | ||
| phy-exynos5250-usb2.c | ||
| phy-hi6220-usb.c | ||
| phy-hix5hd2-sata.c | ||
| phy-lpc18xx-usb-otg.c | ||
| phy-miphy28lp.c | ||
| phy-miphy365x.c | ||
| phy-mt65xx-usb3.c | ||
| phy-mvebu-sata.c | ||
| phy-omap-control.c | ||
| phy-omap-usb2.c | ||
| phy-pistachio-usb.c | ||
| phy-pxa-28nm-hsic.c | ||
| phy-pxa-28nm-usb2.c | ||
| phy-qcom-apq8064-sata.c | ||
| phy-qcom-ipq806x-sata.c | ||
| phy-qcom-ufs-i.h | ||
| phy-qcom-ufs-qmp-14nm.c | ||
| phy-qcom-ufs-qmp-14nm.h | ||
| phy-qcom-ufs-qmp-20nm.c | ||
| phy-qcom-ufs-qmp-20nm.h | ||
| phy-qcom-ufs.c | ||
| phy-rcar-gen2.c | ||
| phy-rcar-gen3-usb2.c | ||
| phy-rockchip-dp.c | ||
| phy-rockchip-emmc.c | ||
| phy-rockchip-inno-usb2.c | ||
| phy-rockchip-pcie.c | ||
| phy-rockchip-typec.c | ||
| phy-rockchip-usb.c | ||
| phy-s5pv210-usb2.c | ||
| phy-samsung-usb2.c | ||
| phy-samsung-usb2.h | ||
| phy-spear1310-miphy.c | ||
| phy-spear1340-miphy.c | ||
| phy-stih41x-usb.c | ||
| phy-stih407-usb.c | ||
| phy-sun4i-usb.c | ||
| phy-sun9i-usb.c | ||
| phy-ti-pipe3.c | ||
| phy-tusb1210.c | ||
| phy-twl4030-usb.c | ||
| phy-xgene.c | ||
| ulpi_phy.h | ||