cnss2: Fix MHI state mismatch for MHI INIT

MHI INIT called during host driver registration leads to MHI state
mismatch because MHI is already in INIT state due to power up of
device as part of ongoing self recovery.
To fix this issue, avoid powering up device during recovery if host
driver is not registered. Device would be powered up later during
host driver registration.

Change-Id: I534dfc0e389ba97a6e2c4869d42be5ecff9609b3
CRs-Fixed: 3476947
Cette révision appartient à :
Naman Padhiar
2023-04-27 04:49:10 -07:00
révisé par Madan Koyyalamudi
Parent 693e91a938
révision a232234d41
3 fichiers modifiés avec 42 ajouts et 4 suppressions

Voir le fichier

@@ -5942,7 +5942,13 @@ void cnss_pci_device_crashed(struct cnss_pci_data *pci_priv)
if (plat_priv->recovery_enabled)
cnss_pci_collect_host_dump_info(pci_priv);
cnss_device_crashed(&pci_priv->pci_dev->dev);
/* Call recovery handler in the DRIVER_RECOVERY event context
* instead of scheduling work. In that way complete recovery
* will be done as part of DRIVER_RECOVERY event and get
* serialized with other events.
*/
cnss_recovery_handler(plat_priv);
}
static int cnss_mhi_pm_runtime_get(struct mhi_controller *mhi_ctrl)