diff options
author | Loic Poulain <loic.poulain@linaro.org> | 2021-03-19 16:27:35 +0100 |
---|---|---|
committer | Loic Poulain <loic.poulain@linaro.org> | 2021-03-19 16:27:35 +0100 |
commit | eb91750972ca1183e5dc1d853501b517748b5ab2 (patch) | |
tree | 39e1886771019a2e4e4b7777c66cb5e83b287af5 | |
parent | bd0ae2abd2f94fb129ade577e30701d505d3b71b (diff) |
bus: mhi: pci_generic: Add support for shutdownsdx55-v152
Deinit the device on shutdown to halt any MHI operation on device
side. That fixes floating device state with some hosts that do not
shutdown PCIe power on reboot.
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
-rw-r--r-- | drivers/bus/mhi/pci_generic.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/bus/mhi/pci_generic.c b/drivers/bus/mhi/pci_generic.c index cbd2224b3790..b104ab8e3352 100644 --- a/drivers/bus/mhi/pci_generic.c +++ b/drivers/bus/mhi/pci_generic.c @@ -532,6 +532,12 @@ static void mhi_pci_remove(struct pci_dev *pdev) mhi_unregister_controller(mhi_cntrl); } +static void mhi_pci_shutdown(struct pci_dev *pdev) +{ + mhi_pci_remove(pdev); + pci_set_power_state(pdev, PCI_D3hot); +} + static void mhi_pci_reset_prepare(struct pci_dev *pdev) { struct mhi_pci_device *mhi_pdev = pci_get_drvdata(pdev); @@ -704,6 +710,7 @@ static struct pci_driver mhi_pci_driver = { .id_table = mhi_pci_id_table, .probe = mhi_pci_probe, .remove = mhi_pci_remove, + .shutdown = mhi_pci_shutdown, .err_handler = &mhi_pci_err_handler, .driver.pm = &mhi_pci_pm_ops }; |