qcacld-3.0: Add pld pcie code to handle hang event data info

Add code in pld pcie to handle hang event data and length received
from platform driver.

Change-Id: Ibc1b667b6127e2ce6b666e9007bf725ea7e07760
This commit is contained in:
Mohammed Siddiq 2020-04-20 20:04:10 +05:30 • committed by nshrivas
commit b59cdd31cd

View file

@ -266,6 +266,51 @@ out:
return;
}
/**
* pld_pcie_update_event() - update wlan driver status callback function
* @pdev: PCIE device
* @cnss_uevent_data: driver uevent data
*
* This function will be called when platform driver wants to update wlan
* driver's status.
*
* Return: void
*/
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0))
static int pld_pcie_update_event(struct pci_dev *pdev,
struct cnss_uevent_data *uevent_data)
{
struct pld_context *pld_context;
struct pld_uevent_data data = {0};
struct cnss_hang_event *hang_event;
pld_context = pld_get_global_context();
if (!pld_context || !uevent_data)
return -EINVAL;
switch (uevent_data->status) {
case CNSS_HANG_EVENT:
if (!uevent_data->data)
return -EINVAL;
hang_event = (struct cnss_hang_event *)uevent_data->data;
data.uevent = PLD_FW_HANG_EVENT;
data.hang_data.hang_event_data = hang_event->hang_event_data;
data.hang_data.hang_event_data_len =
hang_event->hang_event_data_len;
break;
default:
goto out;
}
if (pld_context->ops->uevent)
pld_context->ops->uevent(&pdev->dev, &data);
out:
return 0;
}
#endif
#ifdef FEATURE_RUNTIME_PM
/**
* pld_pcie_runtime_suspend() - PM runtime suspend
@ -536,6 +581,9 @@ struct cnss_wlan_driver pld_pcie_ops = {
.crash_shutdown = pld_pcie_crash_shutdown,
.modem_status = pld_pcie_notify_handler,
.update_status = pld_pcie_uevent,
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0))
.update_event = pld_pcie_update_event,
#endif
#ifdef CONFIG_PM
.suspend = pld_pcie_suspend,
.resume = pld_pcie_resume,