From ffc22e043856183ae4efb6c04d574ba4a8142fe4 Mon Sep 17 00:00:00 2001 From: lifeng Date: Fri, 12 May 2017 12:56:52 +0800 Subject: qcacld-2.0: Disable pm qos in LL during ramdump collecting Disable the kernel panic and then trigger system crash manually, but the system still shutdown and reboot. It's caused by the pm qos mechnasim involved during ramdump collecting in the flow of pci wlan driver crash_shutdown callback. The fix is to disable the pm qos mechnasim when collecting ramdump in pci platform. Change-Id: I5af39803c335b65d79b1a0d28a121a02c7625646 CRs-Fixed: 2040230 --- CORE/SERVICES/BMI/ol_fw.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/CORE/SERVICES/BMI/ol_fw.c b/CORE/SERVICES/BMI/ol_fw.c index df0652cceda4..4780acc42a65 100644 --- a/CORE/SERVICES/BMI/ol_fw.c +++ b/CORE/SERVICES/BMI/ol_fw.c @@ -1001,6 +1001,7 @@ u_int32_t ol_fw_iram_size; u_int32_t ol_fw_axi_size; #endif +#if defined(HIF_SDIO) int ol_copy_ramdump(struct ol_softc *scn) { int ret; @@ -1023,6 +1024,27 @@ int ol_copy_ramdump(struct ol_softc *scn) out: return ret; } +#else +int ol_copy_ramdump(struct ol_softc *scn) +{ + int ret; + + if (!vos_is_ssr_fw_dump_required()) + return 0; + + if (!scn->ramdump_base || !scn->ramdump_size) { + pr_info("%s: No RAM dump will be collected since ramdump_base " + "is NULL or ramdump_size is 0!\n", __func__); + ret = -EACCES; + goto out; + } + + ret = ol_target_coredump(scn, scn->ramdump_base, scn->ramdump_size); + +out: + return ret; +} +#endif static void ramdump_work_handler(struct work_struct *ramdump) { -- cgit v1.2.3