mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 21:22:09 -04:00
Merge "cnss2: Add CNSS_BUS_EVENT to report bus info"
This commit is contained in:
commit
a90b2db054
2 changed files with 29 additions and 0 deletions
|
|
@ -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;
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
@ -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…
Reference in a new issue