From bf7087941ff9dcaa41e6e9a79c532e8e6d18d8bc Mon Sep 17 00:00:00 2001 From: wadesong Date: Mon, 4 Sep 2017 15:55:43 +0800 Subject: [PATCH] qcacld-3.0: Enable SDIO based WLAN self-recovery WLAN self-recovery based on SDIO bus is currently missing in CLD3.x, resulting in crash injection to TF card taking no effect during some special case. Add the recovery feature back to CLD3.x based on the same logics in CLD2.0 Change-Id: I719b77ac9679a0449863a94b47ad22233bc9b574 CRs-fixed: 2103969 --- core/pld/src/pld_common.c | 1 + core/pld/src/pld_sdio.h | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/core/pld/src/pld_common.c b/core/pld/src/pld_common.c index 1ab13b87d550..d33d5a5b2012 100644 --- a/core/pld/src/pld_common.c +++ b/core/pld/src/pld_common.c @@ -669,6 +669,7 @@ void pld_device_self_recovery(struct device *dev, case PLD_BUS_TYPE_SNOC: break; case PLD_BUS_TYPE_SDIO: + pld_sdio_device_self_recovery(dev); break; default: pr_err("Invalid device type\n"); diff --git a/core/pld/src/pld_sdio.h b/core/pld/src/pld_sdio.h index 8814755e818e..2468a6d77cd7 100644 --- a/core/pld/src/pld_sdio.h +++ b/core/pld/src/pld_sdio.h @@ -19,6 +19,9 @@ #ifndef __PLD_SDIO_H__ #define __PLD_SDIO_H__ +#ifdef CONFIG_PLD_SDIO_CNSS +#include +#endif #include "pld_common.h" #ifdef MULTI_IF_NAME @@ -113,6 +116,11 @@ static inline bool pld_sdio_is_fw_dump_skipped(void) { return cnss_get_restart_level() == CNSS_RESET_SUBSYS_COUPLED; } + +static inline void pld_sdio_device_self_recovery(struct device *dev) +{ + cnss_common_device_self_recovery(dev); +} #else static inline void *pld_sdio_get_virt_ramdump_mem(struct device *dev, unsigned long *size) @@ -128,6 +136,9 @@ static inline bool pld_sdio_is_fw_dump_skipped(void) return false; } +static inline void pld_sdio_device_self_recovery(struct device *dev) +{ +} #endif #ifdef CONFIG_PLD_SDIO_CNSS