linux/drivers/phy
Stephan Gerhold 8d42643c6c phy: qcom-usb-hs: Fix extcon double register after power cycle
[ Upstream commit 64f86b9978 ]

Commit f0b5c2c963 ("phy: qcom-usb-hs: Replace the extcon API")
switched from extcon_register_notifier() to the resource-managed
API, i.e. devm_extcon_register_notifier().

This is problematic in this case, because the extcon notifier
is dynamically registered/unregistered whenever the PHY is powered
on/off. The resource-managed API does not unregister the notifier
until the driver is removed, so as soon as the PHY is power cycled,
attempting to register the notifier again results in:

	double register detected
	WARNING: CPU: 1 PID: 182 at kernel/notifier.c:26 notifier_chain_register+0x74/0xa0
	Call trace:
	 ...
	 extcon_register_notifier+0x74/0xb8
	 devm_extcon_register_notifier+0x54/0xb8
	 qcom_usb_hs_phy_power_on+0x1fc/0x208
	 ...

... and USB stops working after plugging the cable out and in
another time.

The easiest way to fix this is to make a partial revert of
commit f0b5c2c963 ("phy: qcom-usb-hs: Replace the extcon API")
and avoid using the resource-managed API in this case.

Fixes: f0b5c2c963 ("phy: qcom-usb-hs: Replace the extcon API")
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-12-31 16:44:29 +01:00
..
allwinner treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
amlogic phy: for 5.3 2019-07-01 15:04:59 +02:00
broadcom phy: for 5.3 2019-07-01 15:04:59 +02:00
cadence treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
freescale phy: for 5.3 2019-07-01 15:04:59 +02:00
hisilicon treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lantiq phy: lantiq: vrx200-pcie: add a driver for the Lantiq VRX200 PCIe PHY 2019-08-23 09:40:48 +05:30
marvell phy: marvell: phy-mvebu-cp110-comphy: rename instances of DLT 2019-08-27 11:37:09 +05:30
mediatek treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
motorola power: supply: cpcap-charger: Enable vbus boost voltage 2019-09-02 23:08:07 +02:00
mscc treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
qualcomm phy: qcom-usb-hs: Fix extcon double register after power cycle 2019-12-31 16:44:29 +01:00
ralink treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
renesas phy: renesas: phy-rcar-gen2: Fix the array off by one warning 2019-12-31 16:44:29 +01:00
rockchip phy-rockchip-inno-hdmi: Fix RK3328_TERM_RESISTOR_CALIB_SPEED_7_0's third value 2019-08-27 11:36:36 +05:30
samsung phy: samsung: disable bind/unbind platform driver feature 2019-08-23 09:40:59 +05:30
socionext treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
st treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tegra phy: tegra: Add PCIe PIPE2UPHY support 2019-08-13 16:01:15 +01:00
ti We have a small collection of core framework updates this time, mostly around 2019-09-20 15:45:07 -07:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile phy: enable compile-testing for the Lantiq PHY drivers 2019-08-23 09:40:51 +05:30
phy-core-mipi-dphy.c phy: dphy: Change units of wakeup and init parameters 2019-02-07 11:11:05 +05:30
phy-core.c phy: core: document phy_calibrate() 2019-08-23 09:40:57 +05:30
phy-lpc18xx-usb-otg.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
phy-pistachio-usb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
phy-xgene.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00