usb: dwc3: meson-g12a: fix shared reset control use
authorAmjad Ouled-Ameur <aouledameur@baylibre.com>
Fri, 12 Nov 2021 16:28:26 +0000 (17:28 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Nov 2021 13:29:13 +0000 (14:29 +0100)
commit4ce3b45704d5ef46fb4b28083c8aba6716fabf3b
tree5efda702527c806f65e28c9b40da6b2e77e84b19
parent433ba26f40d468fdceb26a179cee129339b566bc
usb: dwc3: meson-g12a: fix shared reset control use

reset_control_(de)assert() calls are called on a shared reset line when
reset_control_reset has been used. This is not allowed by the reset
framework.

Use reset_control_rearm() call in suspend() and remove() as a way to state
that the resource is no longer used, hence the shared reset line
may be triggered again by other devices. Use reset_control_rearm() also in
case probe fails after reset() has been called.

reset_control_rearm() keeps use of triggered_count sane in the reset
framework, use of reset_control_reset() on shared reset line should be
balanced with reset_control_rearm().

Signed-off-by: Amjad Ouled-Ameur <aouledameur@baylibre.com>
Reported-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20211112162827.128319-3-aouledameur@baylibre.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/dwc3/dwc3-meson-g12a.c