Loading drivers/power/qcom/debug_core.c +31 −20 Original line number Diff line number Diff line Loading @@ -84,15 +84,28 @@ static struct debugfs_blob_wrapper help_msg = { }; static void add_to_ptable(uint64_t *arg) static void add_to_ptable(unsigned int *arg) { struct core_debug *node; int i, cpu = arg[CPU_OFFSET]; uint32_t freq = arg[FREQ_OFFSET]; uint32_t power = arg[POWER_OFFSET]; if (!cpu_possible(cpu)) return; if ((freq == 0) || (power == 0)) { pr_warn("Incorrect power data\n"); return; } node = &per_cpu(c_dgfs, cpu); if (node->len >= MAX_PSTATES) { pr_warn("Dropped ptable update - no space left.\n"); return; } if (!node->head) { node->head = kzalloc(sizeof(struct cpu_pstate_pwr) * (MAX_PSTATES + 1), Loading @@ -100,24 +113,18 @@ static void add_to_ptable(uint64_t *arg) if (!node->head) return; } for (i = 0; i < MAX_PSTATES; i++) { if (node->head[i].freq == arg[FREQ_OFFSET]) { node->head[i].power = arg[POWER_OFFSET]; return; } if (node->head[i].freq == 0) break; } if (i == MAX_PSTATES) { pr_warn("Dropped ptable update - no space left.\n"); for (i = 0; i < node->len; i++) { if (node->head[i].freq == freq) { node->head[i].power = power; return; } } /* Insert a new frequency (may need to move things around to keep in ascending order). */ for (i = MAX_PSTATES - 1; i > 0; i--) { if (node->head[i-1].freq > arg[FREQ_OFFSET]) { if (node->head[i-1].freq > freq) { node->head[i].freq = node->head[i-1].freq; node->head[i].power = node->head[i-1].power; } else if (node->head[i-1].freq != 0) { Loading @@ -125,15 +132,17 @@ static void add_to_ptable(uint64_t *arg) } } node->head[i].freq = arg[FREQ_OFFSET]; node->head[i].power = arg[POWER_OFFSET]; if (node->len < MAX_PSTATES) { node->head[i].freq = freq; node->head[i].power = power; node->len++; } if (node->ptr) node->ptr->len = node->len; } static int split_ptable_args(char *line, uint64_t *arg, uint32_t n) static int split_ptable_args(char *line, unsigned int *arg, uint32_t n) { char *args; int i; Loading @@ -143,7 +152,9 @@ static int split_ptable_args(char *line, uint64_t *arg, uint32_t n) if (!line) break; args = strsep(&line, " "); ret = kstrtoull(args, 10, &arg[i]); ret = kstrtouint(args, 10, &arg[i]); if (ret) return ret; } return ret; } Loading @@ -153,7 +164,7 @@ static ssize_t msm_core_ptable_write(struct file *file, { char *kbuf; int ret; uint64_t arg[3]; unsigned int arg[3]; if (len == 0) return 0; Loading Loading @@ -205,7 +216,7 @@ static int msm_core_ptable_read(struct seq_file *m, void *data) seq_printf(m, "--- CPU%d - Live numbers at %ldC---\n", cpu, node->ptr->temp); print_table(m, msm_core_data[cpu].ptable, msm_core_data[cpu].len); node->driver_len); } } return 0; Loading @@ -216,7 +227,7 @@ static ssize_t msm_core_enable_write(struct file *file, { char *kbuf; int ret; uint64_t arg[3]; unsigned int arg[3]; int cpu; if (len == 0) Loading Loading
drivers/power/qcom/debug_core.c +31 −20 Original line number Diff line number Diff line Loading @@ -84,15 +84,28 @@ static struct debugfs_blob_wrapper help_msg = { }; static void add_to_ptable(uint64_t *arg) static void add_to_ptable(unsigned int *arg) { struct core_debug *node; int i, cpu = arg[CPU_OFFSET]; uint32_t freq = arg[FREQ_OFFSET]; uint32_t power = arg[POWER_OFFSET]; if (!cpu_possible(cpu)) return; if ((freq == 0) || (power == 0)) { pr_warn("Incorrect power data\n"); return; } node = &per_cpu(c_dgfs, cpu); if (node->len >= MAX_PSTATES) { pr_warn("Dropped ptable update - no space left.\n"); return; } if (!node->head) { node->head = kzalloc(sizeof(struct cpu_pstate_pwr) * (MAX_PSTATES + 1), Loading @@ -100,24 +113,18 @@ static void add_to_ptable(uint64_t *arg) if (!node->head) return; } for (i = 0; i < MAX_PSTATES; i++) { if (node->head[i].freq == arg[FREQ_OFFSET]) { node->head[i].power = arg[POWER_OFFSET]; return; } if (node->head[i].freq == 0) break; } if (i == MAX_PSTATES) { pr_warn("Dropped ptable update - no space left.\n"); for (i = 0; i < node->len; i++) { if (node->head[i].freq == freq) { node->head[i].power = power; return; } } /* Insert a new frequency (may need to move things around to keep in ascending order). */ for (i = MAX_PSTATES - 1; i > 0; i--) { if (node->head[i-1].freq > arg[FREQ_OFFSET]) { if (node->head[i-1].freq > freq) { node->head[i].freq = node->head[i-1].freq; node->head[i].power = node->head[i-1].power; } else if (node->head[i-1].freq != 0) { Loading @@ -125,15 +132,17 @@ static void add_to_ptable(uint64_t *arg) } } node->head[i].freq = arg[FREQ_OFFSET]; node->head[i].power = arg[POWER_OFFSET]; if (node->len < MAX_PSTATES) { node->head[i].freq = freq; node->head[i].power = power; node->len++; } if (node->ptr) node->ptr->len = node->len; } static int split_ptable_args(char *line, uint64_t *arg, uint32_t n) static int split_ptable_args(char *line, unsigned int *arg, uint32_t n) { char *args; int i; Loading @@ -143,7 +152,9 @@ static int split_ptable_args(char *line, uint64_t *arg, uint32_t n) if (!line) break; args = strsep(&line, " "); ret = kstrtoull(args, 10, &arg[i]); ret = kstrtouint(args, 10, &arg[i]); if (ret) return ret; } return ret; } Loading @@ -153,7 +164,7 @@ static ssize_t msm_core_ptable_write(struct file *file, { char *kbuf; int ret; uint64_t arg[3]; unsigned int arg[3]; if (len == 0) return 0; Loading Loading @@ -205,7 +216,7 @@ static int msm_core_ptable_read(struct seq_file *m, void *data) seq_printf(m, "--- CPU%d - Live numbers at %ldC---\n", cpu, node->ptr->temp); print_table(m, msm_core_data[cpu].ptable, msm_core_data[cpu].len); node->driver_len); } } return 0; Loading @@ -216,7 +227,7 @@ static ssize_t msm_core_enable_write(struct file *file, { char *kbuf; int ret; uint64_t arg[3]; unsigned int arg[3]; int cpu; if (len == 0) Loading