Loading drivers/net/wireless/cnss2/pci.c +17 −0 Original line number Diff line number Diff line Loading @@ -1220,6 +1220,17 @@ void cnss_pci_allow_l1(struct device *dev) } EXPORT_SYMBOL(cnss_pci_allow_l1); static void cnss_pci_update_link_event(struct cnss_pci_data *pci_priv, enum cnss_bus_event_type type, void *data) { struct cnss_bus_event bus_event; bus_event.etype = type; bus_event.event_data = data; cnss_pci_call_driver_uevent(pci_priv, CNSS_BUS_EVENT, &bus_event); } static void cnss_pci_handle_linkdown(struct cnss_pci_data *pci_priv) { struct cnss_plat_data *plat_priv = pci_priv->plat_priv; Loading @@ -1242,6 +1253,12 @@ static void cnss_pci_handle_linkdown(struct cnss_pci_data *pci_priv) if (pci_dev->device == QCA6174_DEVICE_ID) disable_irq(pci_dev->irq); /* Notify bus related event. Now for all supported chips. * Here PCIe LINK_DOWN notification taken care. * uevent buffer can be extended later, to cover more bus info. */ cnss_pci_update_link_event(pci_priv, BUS_EVENT_PCI_LINK_DOWN, NULL); cnss_fatal_err("PCI link down, schedule recovery\n"); cnss_schedule_recovery(&pci_dev->dev, CNSS_REASON_LINK_DOWN); } Loading include/net/cnss2.h +12 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,13 @@ enum cnss_driver_status { CNSS_RECOVERY, CNSS_FW_DOWN, CNSS_HANG_EVENT, CNSS_BUS_EVENT, }; enum cnss_bus_event_type { BUS_EVENT_PCI_LINK_DOWN = 0, BUS_EVENT_INVALID = 0xFFFF, }; struct cnss_hang_event { Loading @@ -89,6 +96,11 @@ struct cnss_hang_event { u16 hang_event_data_len; }; struct cnss_bus_event { enum cnss_bus_event_type etype; void *event_data; }; struct cnss_uevent_data { enum cnss_driver_status status; void *data; Loading Loading
drivers/net/wireless/cnss2/pci.c +17 −0 Original line number Diff line number Diff line Loading @@ -1220,6 +1220,17 @@ void cnss_pci_allow_l1(struct device *dev) } EXPORT_SYMBOL(cnss_pci_allow_l1); static void cnss_pci_update_link_event(struct cnss_pci_data *pci_priv, enum cnss_bus_event_type type, void *data) { struct cnss_bus_event bus_event; bus_event.etype = type; bus_event.event_data = data; cnss_pci_call_driver_uevent(pci_priv, CNSS_BUS_EVENT, &bus_event); } static void cnss_pci_handle_linkdown(struct cnss_pci_data *pci_priv) { struct cnss_plat_data *plat_priv = pci_priv->plat_priv; Loading @@ -1242,6 +1253,12 @@ static void cnss_pci_handle_linkdown(struct cnss_pci_data *pci_priv) if (pci_dev->device == QCA6174_DEVICE_ID) disable_irq(pci_dev->irq); /* Notify bus related event. Now for all supported chips. * Here PCIe LINK_DOWN notification taken care. * uevent buffer can be extended later, to cover more bus info. */ cnss_pci_update_link_event(pci_priv, BUS_EVENT_PCI_LINK_DOWN, NULL); cnss_fatal_err("PCI link down, schedule recovery\n"); cnss_schedule_recovery(&pci_dev->dev, CNSS_REASON_LINK_DOWN); } Loading
include/net/cnss2.h +12 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,13 @@ enum cnss_driver_status { CNSS_RECOVERY, CNSS_FW_DOWN, CNSS_HANG_EVENT, CNSS_BUS_EVENT, }; enum cnss_bus_event_type { BUS_EVENT_PCI_LINK_DOWN = 0, BUS_EVENT_INVALID = 0xFFFF, }; struct cnss_hang_event { Loading @@ -89,6 +96,11 @@ struct cnss_hang_event { u16 hang_event_data_len; }; struct cnss_bus_event { enum cnss_bus_event_type etype; void *event_data; }; struct cnss_uevent_data { enum cnss_driver_status status; void *data; Loading