Re: [PATCH v3] phy: renesas: rcar-gen3-usb2: fix imbalance powered flag

From: Simon Horman
Date: Thu Jun 13 2019 - 11:51:29 EST


On Mon, Jun 10, 2019 at 03:23:55PM +0900, Yoshihiro Shimoda wrote:
> The powered flag should be set for any other phys anyway. Also
> the flag should be locked by the channel. Otherwise, after we have
> revised the device tree for the usb phy, the following warning
> happened during a second system suspend. And if the driver doesn't
> lock the flag, an imbalance is possible when enabling the regulator
> during system resume. So, this patch fixes the issues.
>
> < The warning >
> [ 56.026531] unbalanced disables for USB20_VBUS0
> [ 56.031108] WARNING: CPU: 3 PID: 513 at drivers/regulator/core.c:2593 _regula
> tor_disable+0xe0/0x1c0
> [ 56.040146] Modules linked in: rcar_du_drm rcar_lvds drm_kms_helper drm drm_p
> anel_orientation_quirks vsp1 videobuf2_vmalloc videobuf2_dma_contig videobuf2_me
> mops videobuf2_v4l2 videobuf2_common videodev snd_soc_rcar renesas_usbhs snd_soc
> _audio_graph_card media snd_soc_simple_card_utils crct10dif_ce renesas_usb3 snd_
> soc_ak4613 rcar_fcp pwm_rcar usb_dmac phy_rcar_gen3_usb3 pwm_bl ipv6
> [ 56.074047] CPU: 3 PID: 513 Comm: kworker/u16:19 Not tainted 5.2.0-rc3-00001-
> g5f20a19 #6
> [ 56.082129] Hardware name: Renesas Salvator-X board based on r8a7795 ES2.0+ (
> DT)
> [ 56.089524] Workqueue: events_unbound async_run_entry_fn
> [ 56.094832] pstate: 40000005 (nZcv daif -PAN -UAO)
> [ 56.099617] pc : _regulator_disable+0xe0/0x1c0
> [ 56.104054] lr : _regulator_disable+0xe0/0x1c0
> [ 56.108489] sp : ffff0000121c3ae0
> [ 56.111796] x29: ffff0000121c3ae0 x28: 0000000000000000
> [ 56.117102] x27: 0000000000000000 x26: ffff000010fe0e60
> [ 56.122407] x25: 0000000000000002 x24: 0000000000000001
> [ 56.127712] x23: 0000000000000002 x22: ffff8006f99d4000
> [ 56.133017] x21: ffff8006f99cc000 x20: ffff8006f9846800
> [ 56.138322] x19: ffff8006f9846800 x18: ffffffffffffffff
> [ 56.143626] x17: 0000000000000000 x16: 0000000000000000
> [ 56.148931] x15: ffff0000112f96c8 x14: ffff0000921c37f7
> [ 56.154235] x13: ffff0000121c3805 x12: ffff000011312000
> [ 56.159540] x11: 0000000005f5e0ff x10: ffff0000112f9f20
> [ 56.164844] x9 : ffff0000112d3018 x8 : 00000000000001ad
> [ 56.170149] x7 : 00000000ffffffcc x6 : ffff8006ff768180
> [ 56.175453] x5 : ffff8006ff768180 x4 : 0000000000000000
> [ 56.180758] x3 : ffff8006ff76ef10 x2 : ffff8006ff768180
> [ 56.186062] x1 : 3d2eccbaead8fb00 x0 : 0000000000000000
> [ 56.191367] Call trace:
> [ 56.193808] _regulator_disable+0xe0/0x1c0
> [ 56.197899] regulator_disable+0x40/0x78
> [ 56.201820] rcar_gen3_phy_usb2_power_off+0x3c/0x50
> [ 56.206692] phy_power_off+0x48/0xd8
> [ 56.210263] usb_phy_roothub_power_off+0x30/0x50
> [ 56.214873] usb_phy_roothub_suspend+0x1c/0x50
> [ 56.219311] hcd_bus_suspend+0x13c/0x168
> [ 56.223226] generic_suspend+0x4c/0x58
> [ 56.226969] usb_suspend_both+0x1ac/0x238
> [ 56.230972] usb_suspend+0xcc/0x170
> [ 56.234455] usb_dev_suspend+0x10/0x18
> [ 56.238199] dpm_run_callback.isra.6+0x20/0x68
> [ 56.242635] __device_suspend+0x110/0x308
> [ 56.246637] async_suspend+0x24/0xa8
> [ 56.250205] async_run_entry_fn+0x40/0xf8
> [ 56.254210] process_one_work+0x1e0/0x320
> [ 56.258211] worker_thread+0x40/0x450
> [ 56.261867] kthread+0x124/0x128
> [ 56.265094] ret_from_fork+0x10/0x18
> [ 56.268661] ---[ end trace 86d7ec5de5c517af ]---
> [ 56.273290] phy phy-ee080200.usb-phy.10: phy poweroff failed --> -5
>
> Reported-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
> Fixes: 549b6b55b005 ("phy: renesas: rcar-gen3-usb2: enable/disable independent irqs")
> Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
> Tested-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>

Reviewed-by: Simon Horman <horms+renesas@xxxxxxxxxxxx>