summaryrefslogtreecommitdiff
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorLiangwei Dong <liangwei@codeaurora.org>2016-01-13 03:28:12 -0500
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:17:11 -0700
commit6a42808462ec2727953e51c4a78ee68f56316334 (patch)
tree10a0f5e589acc4b53eccb998dc0e9e402c3b1de1 /drivers/net/wireless
parent57296d9eaf2361f5a3c4010529e107305f836dbc (diff)
Net: CNSS_SDIO: Add cnss_get_restart_level CNSS API
export cnss_get_restart_level cnss API for wlan driver to get current subsystem restart level. Change-Id: I7e5d9b0055707bbad06b6cd1496723da6c28d4d5 CRs-Fixed: 961579 Signed-off-by: Liangwei Dong <liangwei@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/cnss/cnss_sdio.c33
1 files changed, 32 insertions, 1 deletions
diff --git a/drivers/net/wireless/cnss/cnss_sdio.c b/drivers/net/wireless/cnss/cnss_sdio.c
index 8c052b0d97b1..13bc3aa63dc8 100644
--- a/drivers/net/wireless/cnss/cnss_sdio.c
+++ b/drivers/net/wireless/cnss/cnss_sdio.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -558,6 +558,37 @@ void cnss_device_crashed(void)
}
EXPORT_SYMBOL(cnss_device_crashed);
+/**
+ * cnss_get_restart_level() - cnss get restart level API
+ *
+ * Wlan sdio function driver uses this API to get the current
+ * subsystem restart level.
+ *
+ * Return: CNSS_RESET_SOC - "SYSTEM", restart system
+ * CNSS_RESET_SUBSYS_COUPLED - "RELATED",restart subsystem
+ */
+int cnss_get_restart_level(void)
+{
+ struct cnss_ssr_info *ssr_info;
+ int level;
+
+ if (!cnss_pdata)
+ return CNSS_RESET_SOC;
+ ssr_info = &cnss_pdata->ssr_info;
+ if (!ssr_info->subsys)
+ return CNSS_RESET_SOC;
+ level = subsys_get_restart_level(ssr_info->subsys);
+ switch (level) {
+ case RESET_SOC:
+ return CNSS_RESET_SOC;
+ case RESET_SUBSYS_COUPLED:
+ return CNSS_RESET_SUBSYS_COUPLED;
+ default:
+ return CNSS_RESET_SOC;
+ }
+}
+EXPORT_SYMBOL(cnss_get_restart_level);
+
static int cnss_sdio_wlan_inserted(
struct sdio_func *func,
const struct sdio_device_id *id)