Loading drivers/soc/qcom/common_log.c +38 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <soc/qcom/memory_dump.h> #define MISC_DUMP_DATA_LEN 4096 #define PMIC_DUMP_DATA_LEN 4096 void register_misc_dump(void) { Loading Loading @@ -55,6 +56,42 @@ err0: } } static void register_pmic_dump(void) { static void *dump_addr; int ret; struct msm_dump_entry dump_entry; struct msm_dump_data *dump_data; if (MSM_DUMP_MAJOR(msm_dump_table_version()) > 1) { dump_data = kzalloc(sizeof(struct msm_dump_data), GFP_KERNEL); if (!dump_data) { pr_err("dump data structure allocation failed\n"); return; } dump_addr = kzalloc(PMIC_DUMP_DATA_LEN, GFP_KERNEL); if (!dump_addr) { pr_err("buffer space allocation failed\n"); goto err0; } dump_data->addr = virt_to_phys(dump_addr); dump_data->len = PMIC_DUMP_DATA_LEN; dump_entry.id = MSM_DUMP_DATA_PMIC; dump_entry.addr = virt_to_phys(dump_data); ret = msm_dump_data_register(MSM_DUMP_TABLE_APPS, &dump_entry); if (ret) { pr_err("Registering pmic dump region failed\n"); goto err1; } return; err1: kfree(dump_addr); err0: kfree(dump_data); } } static void __init common_log_register_log_buf(void) { char **log_bufp; Loading Loading @@ -122,6 +159,7 @@ static int __init msm_common_log_init(void) { common_log_register_log_buf(); register_misc_dump(); register_pmic_dump(); return 0; } late_initcall(msm_common_log_init); include/soc/qcom/memory_dump.h +1 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ enum msm_dump_data_ids { MSM_DUMP_DATA_L2_CACHE = 0xC0, MSM_DUMP_DATA_L3_CACHE = 0xD0, MSM_DUMP_DATA_OCMEM = 0xE0, MSM_DUMP_DATA_PMIC = 0xE4, MSM_DUMP_DATA_MISC = 0xE8, MSM_DUMP_DATA_TMC_ETF = 0xF0, MSM_DUMP_DATA_TMC_REG = 0x100, Loading Loading
drivers/soc/qcom/common_log.c +38 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <soc/qcom/memory_dump.h> #define MISC_DUMP_DATA_LEN 4096 #define PMIC_DUMP_DATA_LEN 4096 void register_misc_dump(void) { Loading Loading @@ -55,6 +56,42 @@ err0: } } static void register_pmic_dump(void) { static void *dump_addr; int ret; struct msm_dump_entry dump_entry; struct msm_dump_data *dump_data; if (MSM_DUMP_MAJOR(msm_dump_table_version()) > 1) { dump_data = kzalloc(sizeof(struct msm_dump_data), GFP_KERNEL); if (!dump_data) { pr_err("dump data structure allocation failed\n"); return; } dump_addr = kzalloc(PMIC_DUMP_DATA_LEN, GFP_KERNEL); if (!dump_addr) { pr_err("buffer space allocation failed\n"); goto err0; } dump_data->addr = virt_to_phys(dump_addr); dump_data->len = PMIC_DUMP_DATA_LEN; dump_entry.id = MSM_DUMP_DATA_PMIC; dump_entry.addr = virt_to_phys(dump_data); ret = msm_dump_data_register(MSM_DUMP_TABLE_APPS, &dump_entry); if (ret) { pr_err("Registering pmic dump region failed\n"); goto err1; } return; err1: kfree(dump_addr); err0: kfree(dump_data); } } static void __init common_log_register_log_buf(void) { char **log_bufp; Loading Loading @@ -122,6 +159,7 @@ static int __init msm_common_log_init(void) { common_log_register_log_buf(); register_misc_dump(); register_pmic_dump(); return 0; } late_initcall(msm_common_log_init);
include/soc/qcom/memory_dump.h +1 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ enum msm_dump_data_ids { MSM_DUMP_DATA_L2_CACHE = 0xC0, MSM_DUMP_DATA_L3_CACHE = 0xD0, MSM_DUMP_DATA_OCMEM = 0xE0, MSM_DUMP_DATA_PMIC = 0xE4, MSM_DUMP_DATA_MISC = 0xE8, MSM_DUMP_DATA_TMC_ETF = 0xF0, MSM_DUMP_DATA_TMC_REG = 0x100, Loading