On Saturday, August 17, 2019 7:41:40 PM CEST, Vicente Bergas wrote:
Otherwise the device keeps writing to memory after kexec and disturbs
the next kernel.
Signed-off-by: Vicente Bergas <vicencb@xxxxxxxxx>
---
drivers/usb/dwc3/dwc3-of-simple.c | 6 ++++++
1 file changed, 6 insertions(+)
Hi Felipe, Robin,
this version calls 'remove' from 'shutdown' instead of just asserting
a reset because it looks like a cleaner way to stop the device.
Calling remove from shutdown in core.c instead of dwc3-of-simple.c does not
fix the issue either.
It has been tested on the sapphire board, a RK3399 platform.
Regards,
Vicenç.
diff --git a/drivers/usb/dwc3/dwc3-of-simple.c
b/drivers/usb/dwc3/dwc3-of-simple.c
index bdac3e7d7b18..d5fd45c64901 100644
--- a/drivers/usb/dwc3/dwc3-of-simple.c
+++ b/drivers/usb/dwc3/dwc3-of-simple.c
@@ -133,6 +133,11 @@ static int dwc3_of_simple_remove(struct
platform_device *pdev)
return 0;
}
+static void dwc3_of_simple_shutdown(struct platform_device *pdev)
+{
+ dwc3_of_simple_remove(pdev);
+}
+
static int __maybe_unused
dwc3_of_simple_runtime_suspend(struct device *dev)
{
struct dwc3_of_simple *simple = dev_get_drvdata(dev);
@@ -190,6 +195,7 @@ MODULE_DEVICE_TABLE(of, of_dwc3_simple_match);
static struct platform_driver dwc3_of_simple_driver = {
.probe = dwc3_of_simple_probe,
.remove = dwc3_of_simple_remove,
+ .shutdown = dwc3_of_simple_shutdown,
.driver = {
.name = "dwc3-of-simple",
.of_match_table = of_dwc3_simple_match,
Hi,
please, can you provide some feedback on this?
Regards,
Vicenç.