Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3144c1d4 authored by Lin Bai's avatar Lin Bai
Browse files

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: default avatarLin Bai <lbai@codeaurora.org>
parent f3a27013
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
// 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)
+3 −1
Original line number Diff line number Diff line
/* 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);
+3 −3
Original line number Diff line number Diff line
@@ -4240,7 +4240,7 @@ 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,
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;
@@ -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;
+3 −3
Original line number Diff line number Diff line
/* 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,7 +228,7 @@ 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,
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);