linux-stable/drivers/phy
Neil Armstrong 5fc2aa3ec9 phy: meson-g12a-usb3-pcie: disable locking for cr_regmap
Locking is not needed for the phy_g12a_usb3_pcie_cr_bus_read/write() and
currently it causes the following BUG because of the usage of the
regmap_read_poll_timeout() running in spinlock_irq, configured by regmap fast_io.

Simply disable locking in the cr_regmap config since it's only used from the
PHY init callback function.

BUG: sleeping function called from invalid context at drivers/phy/amlogic/phy-meson-g12a-usb3-pcie.c:85
in_atomic(): 1, irqs_disabled(): 128, pid: 60, name: kworker/3:1
[snip]
Workqueue: events deferred_probe_work_func
Call trace:
 dump_backtrace+0x0/0x190
 show_stack+0x14/0x20
 dump_stack+0x90/0xb4
 ___might_sleep+0xec/0x110
 __might_sleep+0x50/0x88
 phy_g12a_usb3_pcie_cr_bus_addr.isra.0+0x80/0x1a8
 phy_g12a_usb3_pcie_cr_bus_read+0x34/0x1d8
 _regmap_read+0x60/0xe0
 _regmap_update_bits+0xc4/0x110
 regmap_update_bits_base+0x60/0x90
 phy_g12a_usb3_pcie_init+0xdc/0x210
 phy_init+0x74/0xd0
 dwc3_meson_g12a_probe+0x2cc/0x4d0
 platform_drv_probe+0x50/0xa0
 really_probe+0x20c/0x3b8
 driver_probe_device+0x68/0x150
 __device_attach_driver+0xa8/0x170
 bus_for_each_drv+0x64/0xc8
 __device_attach+0xd8/0x158
 device_initial_probe+0x10/0x18
 bus_probe_device+0x90/0x98
 deferred_probe_work_func+0x94/0xe8
 process_one_work+0x1e0/0x338
 worker_thread+0x230/0x458
 kthread+0x134/0x138
 ret_from_fork+0x10/0x1c

Fixes: 36077e16c0 ("phy: amlogic: Add Amlogic G12A USB3 + PCIE Combo PHY Driver")
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
2019-06-25 19:17:36 +05:30
..
allwinner phy: for 5.1-rc 2019-04-25 11:27:48 +02:00
amlogic phy: meson-g12a-usb3-pcie: disable locking for cr_regmap 2019-06-25 19:17:36 +05:30
broadcom phy: usb: phy-brcm-usb: Fix platform_no_drv_owner.cocci warnings 2019-06-20 14:13:59 +05:30
cadence phy: Add Cadence D-PHY support 2019-02-07 11:11:06 +05:30
freescale phy: Add driver for mixel mipi dphy found on NXP's i.MX8 SoCs 2019-06-21 16:01:06 +05:30
hisilicon phy: Add usb phy support for hi3660 Soc of Hisilicon 2019-04-18 22:08:25 +05:30
lantiq phy: lantiq: Fix compile warning 2018-09-26 13:09:39 +05:30
marvell phy: fix platform_no_drv_owner.cocci warnings 2019-04-17 12:06:02 +05:30
mediatek scsi: phy: mediatek: fix typo in author's email address 2019-04-18 22:08:25 +05:30
motorola phy: mapphone-mdm6600: add gpiolib dependency 2019-04-17 12:06:02 +05:30
mscc phy: ocelot-serdes: Add support for SERDES6G muxing 2019-04-18 22:08:25 +05:30
qualcomm phy: qcom-qmp: Drop useless msm8998_pciephy_cfg setting 2019-06-21 10:51:58 +05:30
ralink
renesas phy: renesas: rcar-gen3-usb2: fix imbalance powered flag 2019-06-21 10:51:58 +05:30
rockchip USB/PHY patches for 5.2-rc1 2019-05-08 10:03:52 -07:00
samsung phy: samsung: Use struct_size() in devm_kzalloc() 2019-06-20 14:13:57 +05:30
socionext phy: socionext: get optional clock by devm_clk_get_optional() 2019-04-17 14:13:15 +05:30
st phy: stm32: fix usbphyc static checker and checkpatch warnings 2018-05-20 21:51:25 +05:30
tegra phy: tegra: xusb: Add Tegra186 support 2019-04-17 14:12:47 +05:30
ti phy: ti: am654-serdes: Make serdes_am654_xlate() static 2019-06-21 10:51:14 +05:30
Kconfig phy: dphy: Add configuration helpers 2018-12-12 10:01:51 +05:30
Makefile phy: dphy: Add configuration helpers 2018-12-12 10:01: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: Invoke pm_runtime_get_*/pm_runtime_put_* before invoking reset callback 2019-04-17 14:13:17 +05:30
phy-lpc18xx-usb-otg.c
phy-pistachio-usb.c
phy-xgene.c