mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 06:09:23 -04:00
cnss2: Use proper flags to protect MSM memory dump APIs
This makes sure CNSS2 driver is able to work in non-MSM platforms which do not have memory dump and mini dump features. Change-Id: I5193deed941ff8e2e2ca2693150396a53eb3db7d Signed-off-by: Yue Ma <yuem@codeaurora.org>
This commit is contained in:
parent
e0af665bc1
commit
9c8b92051d
2 changed files with 35 additions and 9 deletions
|
|
@ -1,5 +1,5 @@
|
|||
// 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. */
|
||||
|
||||
#include <linux/delay.h>
|
||||
#include <linux/jiffies.h>
|
||||
|
|
@ -11,7 +11,9 @@
|
|||
#include <linux/rwsem.h>
|
||||
#include <linux/suspend.h>
|
||||
#include <linux/timer.h>
|
||||
#if IS_ENABLED(CONFIG_QCOM_MINIDUMP)
|
||||
#include <soc/qcom/minidump.h>
|
||||
#endif
|
||||
|
||||
#include "main.h"
|
||||
#include "bus.h"
|
||||
|
|
@ -1980,6 +1982,7 @@ void cnss_unregister_subsys(struct cnss_plat_data *plat_priv)
|
|||
cnss_pr_err("Failed to unregister panic handler\n");
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_QCOM_MEMORY_DUMP_V2)
|
||||
static void *cnss_create_ramdump_device(struct cnss_plat_data *plat_priv)
|
||||
{
|
||||
return &plat_priv->plat_dev->dev;
|
||||
|
|
@ -1989,6 +1992,7 @@ static void cnss_destroy_ramdump_device(struct cnss_plat_data *plat_priv,
|
|||
void *ramdump_dev)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#if IS_ENABLED(CONFIG_SUBSYSTEM_RAMDUMP)
|
||||
int cnss_do_ramdump(struct cnss_plat_data *plat_priv)
|
||||
|
|
@ -2071,6 +2075,7 @@ int cnss_do_elf_ramdump(struct cnss_plat_data *plat_priv)
|
|||
#endif /* CONFIG_SUBSYSTEM_RAMDUMP */
|
||||
#endif /* CONFIG_MSM_SUBSYSTEM_RESTART */
|
||||
|
||||
#if IS_ENABLED(CONFIG_QCOM_MEMORY_DUMP_V2)
|
||||
static int cnss_init_dump_entry(struct cnss_plat_data *plat_priv)
|
||||
{
|
||||
struct cnss_ramdump_info *ramdump_info;
|
||||
|
|
@ -2167,17 +2172,10 @@ static void cnss_unregister_ramdump_v1(struct cnss_plat_data *plat_priv)
|
|||
*
|
||||
* Return: Same given error code if mem dump feature enabled, 0 otherwise
|
||||
*/
|
||||
#ifdef CONFIG_QCOM_MEMORY_DUMP_V2
|
||||
static int cnss_ignore_dump_data_reg_fail(int ret)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
static int cnss_ignore_dump_data_reg_fail(int ret)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int cnss_register_ramdump_v2(struct cnss_plat_data *plat_priv)
|
||||
{
|
||||
|
|
@ -2287,7 +2285,16 @@ void cnss_unregister_ramdump(struct cnss_plat_data *plat_priv)
|
|||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
int cnss_register_ramdump(struct cnss_plat_data *plat_priv)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void cnss_unregister_ramdump(struct cnss_plat_data *plat_priv) {}
|
||||
#endif /* CONFIG_QCOM_MEMORY_DUMP_V2 */
|
||||
|
||||
#if IS_ENABLED(CONFIG_QCOM_MINIDUMP)
|
||||
int cnss_minidump_add_region(struct cnss_plat_data *plat_priv,
|
||||
enum cnss_fw_dump_type type, int seg_no,
|
||||
void *va, phys_addr_t pa, size_t size)
|
||||
|
|
@ -2368,6 +2375,21 @@ int cnss_minidump_remove_region(struct cnss_plat_data *plat_priv,
|
|||
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
int cnss_minidump_add_region(struct cnss_plat_data *plat_priv,
|
||||
enum cnss_fw_dump_type type, int seg_no,
|
||||
void *va, phys_addr_t pa, size_t size)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cnss_minidump_remove_region(struct cnss_plat_data *plat_priv,
|
||||
enum cnss_fw_dump_type type, int seg_no,
|
||||
void *va, phys_addr_t pa, size_t size)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_QCOM_MINIDUMP */
|
||||
|
||||
/**
|
||||
* cnss_register_bus_scale() - Setup interconnect voting data
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* 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_MAIN_H
|
||||
#define _CNSS_MAIN_H
|
||||
|
|
@ -13,7 +13,9 @@
|
|||
#include <linux/pm_qos.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <net/cnss2.h>
|
||||
#if IS_ENABLED(CONFIG_QCOM_MEMORY_DUMP_V2)
|
||||
#include <soc/qcom/memory_dump.h>
|
||||
#endif
|
||||
#if IS_ENABLED(CONFIG_MSM_SUBSYSTEM_RESTART) || \
|
||||
IS_ENABLED(CONFIG_SUBSYSTEM_RAMDUMP)
|
||||
#include <soc/qcom/ramdump.h>
|
||||
|
|
@ -106,7 +108,9 @@ struct cnss_ramdump_info {
|
|||
unsigned long ramdump_size;
|
||||
void *ramdump_va;
|
||||
phys_addr_t ramdump_pa;
|
||||
#if IS_ENABLED(CONFIG_QCOM_MEMORY_DUMP_V2)
|
||||
struct msm_dump_data dump_data;
|
||||
#endif
|
||||
};
|
||||
|
||||
struct cnss_dump_seg {
|
||||
|
|
|
|||
Loading…
Reference in a new issue