cnss2: Add update_uevent API to notify CNSS event

cnss_bus_update_uevent() API added, to notify CNSS platform
information to CLD driver.

Change-Id: I7c26c9df91e0c1e8fd02c6d6ab64b932bd11b4dd
Signed-off-by: Lin Bai <lbai@codeaurora.org>
This commit is contained in:
Lin Bai 2021-04-12 12:37:29 +08:00
parent f3a2701398
commit 3144c1d49d
4 changed files with 27 additions and 8 deletions

View File

@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. */
/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. */
#include "bus.h"
#include "debug.h"
@ -435,6 +435,23 @@ int cnss_bus_update_status(struct cnss_plat_data *plat_priv,
}
}
int cnss_bus_update_uevent(struct cnss_plat_data *plat_priv,
enum cnss_driver_status status, void *data)
{
if (!plat_priv)
return -ENODEV;
switch (plat_priv->bus_type) {
case CNSS_BUS_PCI:
return cnss_pci_call_driver_uevent(plat_priv->bus_priv,
status, data);
default:
cnss_pr_err("Unsupported bus type: %d\n",
plat_priv->bus_type);
return -EINVAL;
}
}
int cnss_bus_is_device_down(struct cnss_plat_data *plat_priv)
{
if (!plat_priv)

View File

@ -1,5 +1,5 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. */
/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. */
#ifndef _CNSS_BUS_H
#define _CNSS_BUS_H
@ -50,6 +50,8 @@ int cnss_bus_call_driver_modem_status(struct cnss_plat_data *plat_priv,
int modem_current_status);
int cnss_bus_update_status(struct cnss_plat_data *plat_priv,
enum cnss_driver_status status);
int cnss_bus_update_uevent(struct cnss_plat_data *plat_priv,
enum cnss_driver_status status, void *data);
int cnss_bus_is_device_down(struct cnss_plat_data *plat_priv);
int cnss_bus_check_link_status(struct cnss_plat_data *plat_priv);
int cnss_bus_recover_link_down(struct cnss_plat_data *plat_priv);

View File

@ -4240,8 +4240,8 @@ static void cnss_pci_remove_dump_seg(struct cnss_pci_data *pci_priv,
cnss_minidump_remove_region(plat_priv, type, seg_no, va, pa, size);
}
int cnss_call_driver_uevent(struct cnss_pci_data *pci_priv,
enum cnss_driver_status status, void *data)
int cnss_pci_call_driver_uevent(struct cnss_pci_data *pci_priv,
enum cnss_driver_status status, void *data)
{
struct cnss_uevent_data uevent_data;
struct cnss_wlan_driver *driver_ops;
@ -4301,7 +4301,7 @@ static void cnss_pci_send_hang_event(struct cnss_pci_data *pci_priv)
}
}
cnss_call_driver_uevent(pci_priv, CNSS_HANG_EVENT, &hang_event);
cnss_pci_call_driver_uevent(pci_priv, CNSS_HANG_EVENT, &hang_event);
kfree(hang_event.hang_event_data);
hang_event.hang_event_data = NULL;

View File

@ -1,5 +1,5 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. */
/* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. */
#ifndef _CNSS_PCI_H
#define _CNSS_PCI_H
@ -228,8 +228,8 @@ void cnss_pci_pm_runtime_put_noidle(struct cnss_pci_data *pci_priv,
void cnss_pci_pm_runtime_mark_last_busy(struct cnss_pci_data *pci_priv);
int cnss_pci_update_status(struct cnss_pci_data *pci_priv,
enum cnss_driver_status status);
int cnss_call_driver_uevent(struct cnss_pci_data *pci_priv,
enum cnss_driver_status status, void *data);
int cnss_pci_call_driver_uevent(struct cnss_pci_data *pci_priv,
enum cnss_driver_status status, void *data);
int cnss_pcie_is_device_down(struct cnss_pci_data *pci_priv);
int cnss_pci_suspend_bus(struct cnss_pci_data *pci_priv);
int cnss_pci_resume_bus(struct cnss_pci_data *pci_priv);