162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2014 Intel Corporation 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Authors: 662306a36Sopenharmony_ci * Chen, Gong <gong.chen@linux.intel.com> 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <linux/init.h> 1062306a36Sopenharmony_ci#include <linux/ras.h> 1162306a36Sopenharmony_ci#include <linux/uuid.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#define CREATE_TRACE_POINTS 1462306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH ../../include/ras 1562306a36Sopenharmony_ci#include <ras/ras_event.h> 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_civoid log_non_standard_event(const guid_t *sec_type, const guid_t *fru_id, 1862306a36Sopenharmony_ci const char *fru_text, const u8 sev, const u8 *err, 1962306a36Sopenharmony_ci const u32 len) 2062306a36Sopenharmony_ci{ 2162306a36Sopenharmony_ci trace_non_standard_event(sec_type, fru_id, fru_text, sev, err, len); 2262306a36Sopenharmony_ci} 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_civoid log_arm_hw_error(struct cper_sec_proc_arm *err) 2562306a36Sopenharmony_ci{ 2662306a36Sopenharmony_ci trace_arm_event(err); 2762306a36Sopenharmony_ci} 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_cistatic int __init ras_init(void) 3062306a36Sopenharmony_ci{ 3162306a36Sopenharmony_ci int rc = 0; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci ras_debugfs_init(); 3462306a36Sopenharmony_ci rc = ras_add_daemon_trace(); 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci return rc; 3762306a36Sopenharmony_ci} 3862306a36Sopenharmony_cisubsys_initcall(ras_init); 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci#if defined(CONFIG_ACPI_EXTLOG) || defined(CONFIG_ACPI_EXTLOG_MODULE) 4162306a36Sopenharmony_ciEXPORT_TRACEPOINT_SYMBOL_GPL(extlog_mem_event); 4262306a36Sopenharmony_ci#endif 4362306a36Sopenharmony_ciEXPORT_TRACEPOINT_SYMBOL_GPL(mc_event); 4462306a36Sopenharmony_ciEXPORT_TRACEPOINT_SYMBOL_GPL(non_standard_event); 4562306a36Sopenharmony_ciEXPORT_TRACEPOINT_SYMBOL_GPL(arm_event); 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_cistatic int __init parse_ras_param(char *str) 4862306a36Sopenharmony_ci{ 4962306a36Sopenharmony_ci#ifdef CONFIG_RAS_CEC 5062306a36Sopenharmony_ci parse_cec_param(str); 5162306a36Sopenharmony_ci#endif 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci return 1; 5462306a36Sopenharmony_ci} 5562306a36Sopenharmony_ci__setup("ras", parse_ras_param); 56