diff options
author | Artur Petrosyan <Arthur.Petrosyan@synopsys.com> | 2021-04-16 16:47:14 +0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-04-22 11:55:33 +0200 |
commit | 24d209dba5a3959b2ebde7cf3ad40c8015e814cf (patch) | |
tree | 0b0fc730c7a909a2ea290e439ca197ae959a28a3 /usr | |
parent | c2db8d7b9568b10e014af83b3c15e39929e3579e (diff) | |
download | linux-stable-24d209dba5a3959b2ebde7cf3ad40c8015e814cf.tar.gz linux-stable-24d209dba5a3959b2ebde7cf3ad40c8015e814cf.tar.bz2 linux-stable-24d209dba5a3959b2ebde7cf3ad40c8015e814cf.zip |
usb: dwc2: Fix hibernation between host and device modes.
When core is in hibernation in host mode and a device cable
was connected then driver exited from device hibernation.
However, registers saved for host mode and when exited from
device hibernation register restore would be done for device
register which was wrong because there was no device registers
stored to restore.
- Added dwc_handle_gpwrdn_disc_det() function which handles
gpwrdn disconnect detect flow and exits hibernation
without restoring the registers.
- Updated exiting from hibernation in GPWRDN_STS_CHGINT with
calling dwc_handle_gpwrdn_disc_det() function. Here no register
is restored which is the solution described above.
Fixes: 65c9c4c6b01f ("usb: dwc2: Add dwc2_handle_gpwrdn_intr() handler")
Acked-by: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
Signed-off-by: Artur Petrosyan <Arthur.Petrosyan@synopsys.com>
Signed-off-by: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
Link: https://lore.kernel.org/r/20210416124715.75355A005D@mailhost.synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'usr')
0 files changed, 0 insertions, 0 deletions