linux/drivers/phy
Stephan Gerhold 64f86b9978 phy: qcom-usb-hs: Fix extcon double register after power cycle
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>
2019-10-31 16:54:01 +05:30
..
allwinner phy: allwinner: add phy driver for USB3 PHY on Allwinner H6 SoC 2019-10-31 16:54:00 +05:30
amlogic phy: for 5.3 2019-07-01 15:04:59 +02:00
broadcom phy: phy-brcm-usb-init: fix use of integer as pointer 2019-10-23 13:20:31 +05:30
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 phy: hisilicon: use devm_platform_ioremap_resource() to simplify code 2019-10-23 13:20:28 +05:30
lantiq phy: lantiq: vrx200-pcie: fix error return code in ltq_vrx200_pcie_phy_power_on() 2019-10-31 16:54:01 +05:30
marvell phy-mvebu-a3700-utmi: Use devm_platform_ioremap_resource() in mvebu_a3700_utmi_phy_probe() 2019-10-23 13:20:27 +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-10-31 16:54:01 +05:30
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-10-31 16:54:01 +05:30
rockchip phy/rockchip: Add support for Innosilicon MIPI/LVDS/TTL PHY 2019-10-31 16:54:00 +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: use regulator_bulk_set_supply_names() 2019-10-25 17:58:13 +05:30
ti phy: ti: gmii-sel: fix mac tx internal delay for rgmii-rxid 2019-10-25 17:58:15 +05:30
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 phy: xgene: make array serdes_reg static const, makes object smaller 2019-10-23 13:20:26 +05:30