qcacmn: Add QDF infra for the minidump feature
Add QDF infra for minidump feature and define the minidump_log and minidump_remove functions. Change-Id: I875b991b7a7d9295f8b2acd95a7551a747ec962c CRs-Fixed: 2856193
Цей коміт міститься в:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2014-2021 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -32,6 +32,9 @@
|
||||
#ifdef CONFIG_QCA_MINIDUMP
|
||||
#include <linux/minidump_tlv.h>
|
||||
#endif
|
||||
#ifdef CONFIG_QCOM_MINIDUMP
|
||||
#include <soc/qcom/minidump.h>
|
||||
#endif
|
||||
|
||||
#if !defined(__printf)
|
||||
#define __printf(a, b)
|
||||
@@ -468,14 +471,48 @@ __qdf_minidump_log(void *start_addr, size_t size, const char *name)
|
||||
}
|
||||
|
||||
static inline void
|
||||
__qdf_minidump_remove(void *addr)
|
||||
__qdf_minidump_remove(void *addr, size_t size, const char *name)
|
||||
{
|
||||
minidump_remove_segments((const uintptr_t)addr);
|
||||
}
|
||||
#elif defined(CONFIG_QCOM_MINIDUMP)
|
||||
static inline void
|
||||
__qdf_minidump_log(void *start_addr, const size_t size,
|
||||
const char *name)
|
||||
{
|
||||
struct md_region md_entry;
|
||||
int ret;
|
||||
|
||||
snprintf(md_entry.name, sizeof(md_entry.name), name);
|
||||
md_entry.virt_addr = (uintptr_t)start_addr;
|
||||
md_entry.phys_addr = virt_to_phys(start_addr);
|
||||
md_entry.size = size;
|
||||
ret = msm_minidump_add_region(&md_entry);
|
||||
if (ret < 0) {
|
||||
QDF_TRACE_ERROR_NO_FL(QDF_MODULE_ID_QDF,
|
||||
"%s: failed to log %pK (%s)\n",
|
||||
__func__, start_addr, name);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
__qdf_minidump_remove(void *start_addr, const size_t size,
|
||||
const char *name)
|
||||
{
|
||||
struct md_region md_entry;
|
||||
|
||||
snprintf(md_entry.name, sizeof(md_entry.name), name);
|
||||
md_entry.virt_addr = (uintptr_t)start_addr;
|
||||
md_entry.phys_addr = virt_to_phys(start_addr);
|
||||
md_entry.size = size;
|
||||
msm_minidump_remove_region(&md_entry);
|
||||
}
|
||||
#else
|
||||
static inline void
|
||||
__qdf_minidump_log(void *start_addr, size_t size, const char *name) {}
|
||||
__qdf_minidump_log(void *start_addr,
|
||||
const size_t size, const char *name) {}
|
||||
static inline void
|
||||
__qdf_minidump_remove(void *addr) {}
|
||||
__qdf_minidump_remove(void *start_addr,
|
||||
const size_t size, const char *name) {}
|
||||
#endif
|
||||
#endif /* __I_QDF_TRACE_H */
|
||||
|
Посилання в новій задачі
Заблокувати користувача