]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
usb: dwc3: xilinx: add shutdown callback
authorRadhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Tue, 3 Jun 2025 19:09:31 +0000 (00:39 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Jun 2025 10:25:46 +0000 (12:25 +0200)
Adds a shutdown callback to ensure that the XHCI stack is properly
shutdown in reboot/shutdown path.

In kexec flow, kernel_restart_prepare() performs actions necessary
to prepare the system for a restart and invokes device_shutdown. To
ensure proper shutdown attach the dwc3 shutdown implementation which
mirrors the remove method.

$ kexec -e

<snip>
xhci-hcd xhci-hcd.0.auto: remove, state 1
usb usb1: USB disconnect, device number 1
usb 1-1: USB disconnect, device number 6
xhci-hcd xhci-hcd.0.auto: USB bus 1 deregistered
kexec_core: Starting new kernel

Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/1748977771-714153-1-git-send-email-radhey.shyam.pandey@amd.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/dwc3/dwc3-xilinx.c

index 4ca7f6240d07df035a23d807d4afbd0491f4e18d..09c3c5c226ab401997548e0ba9a53169f6c7f955 100644 (file)
@@ -422,6 +422,7 @@ static const struct dev_pm_ops dwc3_xlnx_dev_pm_ops = {
 static struct platform_driver dwc3_xlnx_driver = {
        .probe          = dwc3_xlnx_probe,
        .remove         = dwc3_xlnx_remove,
+       .shutdown       = dwc3_xlnx_remove,
        .driver         = {
                .name           = "dwc3-xilinx",
                .of_match_table = dwc3_xlnx_of_match,