53 lines
1.9 KiB
Diff
53 lines
1.9 KiB
Diff
|
|
From 5f738b6b95efbdd8d9398b45e038287c5dd3c413 Mon Sep 17 00:00:00 2001
|
||
|
|
From: jianchunfu <jianchunfu_yewu@cmss.chinamobile.com>
|
||
|
|
Date: Fri, 25 Nov 2022 10:00:58 +0800
|
||
|
|
Subject: [PATCH 21/29] hw/usb/hcd-xhci: Reset the XHCIState with
|
||
|
|
device_cold_reset()
|
||
|
|
|
||
|
|
Currently the hcd-xhci-pci and hcd-xhci-sysbus devices, which are
|
||
|
|
mostly wrappers around the TYPE_XHCI device, which is a direct
|
||
|
|
subclass of TYPE_DEVICE. Since TYPE_DEVICE devices are not on any
|
||
|
|
qbus and do not get automatically reset, the wrapper devices both
|
||
|
|
reset the TYPE_XHCI device in their own reset functions. However,
|
||
|
|
they do this using device_legacy_reset(), which will reset the device
|
||
|
|
itself but not any bus it has.
|
||
|
|
Switch to device_cold_reset(), which avoids using a deprecated
|
||
|
|
function and also propagates reset along any child buses.
|
||
|
|
|
||
|
|
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
||
|
|
Signed-off-by: jianchunfu <jianchunfu_yewu@cmss.chinamobile.com>
|
||
|
|
---
|
||
|
|
hw/usb/hcd-xhci-pci.c | 2 +-
|
||
|
|
hw/usb/hcd-xhci-sysbus.c | 2 +-
|
||
|
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/hw/usb/hcd-xhci-pci.c b/hw/usb/hcd-xhci-pci.c
|
||
|
|
index e934b1a5b1..643d4643e4 100644
|
||
|
|
--- a/hw/usb/hcd-xhci-pci.c
|
||
|
|
+++ b/hw/usb/hcd-xhci-pci.c
|
||
|
|
@@ -85,7 +85,7 @@ static void xhci_pci_reset(DeviceState *dev)
|
||
|
|
{
|
||
|
|
XHCIPciState *s = XHCI_PCI(dev);
|
||
|
|
|
||
|
|
- device_legacy_reset(DEVICE(&s->xhci));
|
||
|
|
+ device_cold_reset(DEVICE(&s->xhci));
|
||
|
|
}
|
||
|
|
|
||
|
|
static int xhci_pci_vmstate_post_load(void *opaque, int version_id)
|
||
|
|
diff --git a/hw/usb/hcd-xhci-sysbus.c b/hw/usb/hcd-xhci-sysbus.c
|
||
|
|
index a14e438196..faf57b4797 100644
|
||
|
|
--- a/hw/usb/hcd-xhci-sysbus.c
|
||
|
|
+++ b/hw/usb/hcd-xhci-sysbus.c
|
||
|
|
@@ -29,7 +29,7 @@ void xhci_sysbus_reset(DeviceState *dev)
|
||
|
|
{
|
||
|
|
XHCISysbusState *s = XHCI_SYSBUS(dev);
|
||
|
|
|
||
|
|
- device_legacy_reset(DEVICE(&s->xhci));
|
||
|
|
+ device_cold_reset(DEVICE(&s->xhci));
|
||
|
|
}
|
||
|
|
|
||
|
|
static void xhci_sysbus_realize(DeviceState *dev, Error **errp)
|
||
|
|
--
|
||
|
|
2.27.0
|
||
|
|
|