diff options
author | Liangwei Dong <liangwei@codeaurora.org> | 2016-01-13 03:28:12 -0500 |
---|---|---|
committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 21:17:11 -0700 |
commit | 6a42808462ec2727953e51c4a78ee68f56316334 (patch) | |
tree | 10a0f5e589acc4b53eccb998dc0e9e402c3b1de1 /drivers/net/wireless | |
parent | 57296d9eaf2361f5a3c4010529e107305f836dbc (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.c | 33 |
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) |