static int _create_procfs(void) { struct proc_dir_entry *dir = NULL; int i; const struct { const char *name; const struct file_operations *fops; } entries[] = { PROC_ENTRY(cpu_ss_debug_mode), PROC_ENTRY(cpu_ss_period_mode), PROC_ENTRY(cpu_ss_period), PROC_ENTRY(cpu_ss_mode), }; dir = proc_mkdir("cpu_ss", NULL); if (!dir) { printk(KERN_ERR "fail to create /proc/cpu_ss @ %s()\n", __func__); return -ENOMEM; } for (i = 0; i < ARRAY_SIZE(entries); i++) { if (!proc_create(entries[i].name, S_IRUGO | S_IWUSR | S_IWGRP, dir, entries[i].fops)) printk(KERN_ERR "%s(), create /proc/cpu_ss/%s failed\n", __func__, entries[i].name); } return 0; }
static int _create_procfs(void) { struct proc_dir_entry *dir = NULL; int i; struct pentry { const char *name; const struct file_operations *fops; }; const struct pentry entries[] = { PROC_ENTRY(ptp2_lo_enable), PROC_ENTRY(ptp2_ctrl_lo_0), PROC_ENTRY(ptp2_ctrl_lo_1), PROC_ENTRY(ptp2_dump), }; dir = proc_mkdir("ptp2", NULL); if (!dir) { ptp2_err("fail to create /proc/ptp2 @ %s()\n", __func__); return -ENOMEM; } for (i = 0; i < ARRAY_SIZE(entries); i++) { if (!proc_create(entries[i].name, S_IRUGO | S_IWUSR | S_IWGRP, dir, entries[i].fops)) ptp2_err("%s(), create /proc/ptp2/%s failed\n", __func__, entries[i].name); } return 0; }
static int __init ppm_ut_policy_init(void) { int i, ret = 0; struct pentry { const char *name; const struct file_operations *fops; }; const struct pentry entries[] = { PROC_ENTRY(ut_fix_core_num), PROC_ENTRY(ut_fix_freq_idx), }; FUNC_ENTER(FUNC_LV_POLICY); /* create procfs */ for (i = 0; i < ARRAY_SIZE(entries); i++) { if (!proc_create(entries[i].name, S_IRUGO | S_IWUSR | S_IWGRP, policy_dir, entries[i].fops)) { ppm_err("%s(), create /proc/ppm/policy/%s failed\n", __func__, entries[i].name); ret = -EINVAL; goto out; } } ut_data.limit = kcalloc(ppm_main_info.cluster_num, sizeof(*ut_data.limit), GFP_KERNEL); if (!ut_data.limit) { ret = -ENOMEM; goto out; } /* init ut_data */ ut_data.is_freq_idx_fixed = false; ut_data.is_core_num_fixed = false; for (i = 0; i < ppm_main_info.cluster_num; i++) { ut_data.limit[i].freq_idx = -1; ut_data.limit[i].core_num = -1; } if (ppm_main_register_policy(&ut_policy)) { ppm_err("@%s: UT policy register failed\n", __func__); ret = -EINVAL; kfree(ut_data.limit); goto out; } ppm_info("@%s: register %s done!\n", __func__, ut_policy.name); out: FUNC_EXIT(FUNC_LV_POLICY); return ret; }
static int mt_pbm_create_procfs(void) { struct proc_dir_entry *dir = NULL; int i; struct pentry { const char *name; const struct file_operations *fops; }; const struct pentry entries[] = { PROC_ENTRY(pbm_debug), }; dir = proc_mkdir("pbm", NULL); if (!dir) { pbm_err("fail to create /proc/pbm @ %s()\n", __func__); return -ENOMEM; } for (i = 0; i < ARRAY_SIZE(entries); i++) { if (!proc_create (entries[i].name, S_IRUGO | S_IWUSR | S_IWGRP, dir, entries[i].fops)) pbm_err("@%s: create /proc/pbm/%s failed\n", __func__, entries[i].name); } return 0; }
static int mt_golden_setting_init(void) { #if defined(CONFIG_MT_ENG_BUILD) #define GOLDEN_SETTING_BUF_SIZE (2 * PAGE_SIZE) unsigned int *buf; buf = kmalloc(GOLDEN_SETTING_BUF_SIZE, GFP_KERNEL); if (NULL != buf) { _golden_setting_init(&_golden, buf, GOLDEN_SETTING_BUF_SIZE); #ifdef CONFIG_OF _golden.phy_base = 0; _golden.io_base = 0; #endif { struct proc_dir_entry *dir = NULL; int i; const struct { const char *name; const struct file_operations *fops; } entries[] = { PROC_ENTRY(golden_test), }; dir = proc_mkdir("golden", NULL); if (!dir) { clk_err("[%s]: fail to mkdir /proc/golden\n", __func__); EXIT_FUNC(FUNC_LV_API); return -ENOMEM; } for (i = 0; i < ARRAY_SIZE(entries); i++) { if (!proc_create(entries[i].name, S_IRUGO | S_IWUSR | S_IWGRP, dir, entries[i].fops)) clk_err("[%s]: fail to mkdir /proc/golden/%s\n", __func__, entries[i].name); } } } #endif // CONFIG_MT_ENG_BUILD return 0; }
static int __init ppm_thermal_policy_init(void) { int i, ret = 0; struct pentry { const char *name; const struct file_operations *fops; }; const struct pentry entries[] = { PROC_ENTRY(thermal_limit), }; FUNC_ENTER(FUNC_LV_POLICY); /* create procfs */ for (i = 0; i < ARRAY_SIZE(entries); i++) { if (!proc_create(entries[i].name, S_IRUGO | S_IWUSR | S_IWGRP, policy_dir, entries[i].fops)) { ppm_err("%s(), create /proc/ppm/policy/%s failed\n", __func__, entries[i].name); ret = -EINVAL; goto out; } } if (ppm_main_register_policy(&thermal_policy)) { ppm_err("@%s: thermal policy register failed\n", __func__); ret = -EINVAL; goto out; } ppm_info("@%s: register %s done!\n", __func__, thermal_policy.name); out: FUNC_EXIT(FUNC_LV_POLICY); return ret; }
PROC_FOPS_RO(lk_version); PROC_FOPS_RO(lk_mode); PROC_FOPS_RO(hw_version); PROC_FOPS_RO(sw_version); PROC_FOPS_RO(sn); PROC_FOPS_RO(psn); PROC_FOPS_RO(rtx); PROC_FOPS_RO(sec); PROC_FOPS_RO(lcd_id); struct pentry { const char *name; const struct file_operations *fops; }; const struct pentry lk_info_entries[] = { PROC_ENTRY(lk_version), PROC_ENTRY(lk_mode), PROC_ENTRY(hw_version), PROC_ENTRY(sw_version), PROC_ENTRY(sn), PROC_ENTRY(psn), PROC_ENTRY(rtx), PROC_ENTRY(sec), PROC_ENTRY(lcd_id), }; unsigned int mz_system_root_flag = 0; EXPORT_SYMBOL_GPL(mz_system_root_flag); static int __init proc_lk_info_init(void) { struct proc_dir_entry *dir_entry = NULL;