static ssize_t acpi_processor_write_performance(struct file *file, const char __user * buffer, size_t count, loff_t * data) { int result = 0; struct seq_file *m = file->private_data; struct acpi_processor *pr = m->private; struct acpi_processor_performance *perf; char state_string[12] = { '\0' }; unsigned int new_state = 0; struct cpufreq_policy policy; if (!pr || (count > sizeof(state_string) - 1)) return -EINVAL; perf = pr->performance; if (!perf) return -EINVAL; if (copy_from_user(state_string, buffer, count)) return -EFAULT; state_string[count] = '\0'; new_state = simple_strtoul(state_string, NULL, 0); if (new_state >= perf->state_count) return -EINVAL; cpufreq_get_policy(&policy, pr->id); policy.cpu = pr->id; policy.min = perf->states[new_state].core_frequency * 1000; policy.max = perf->states[new_state].core_frequency * 1000; result = cpufreq_set_policy(&policy); if (result) return result; return count; }
void msm_camio_disable(struct platform_device *pdev) { struct msm_camera_device_platform_data *camdev = pdev->dev.platform_data; iounmap(mdcbase); release_mem_region(camio_ext.mdcphy, camio_ext.mdcsz); iounmap(appbase); release_mem_region(camio_ext.appphy, camio_ext.appsz); camdev->camera_gpio_off(); gpio_direction_output(17, 0); //RESET msm_camio_clk_disable(CAMIO_VFE_CLK); msm_camio_clk_disable(CAMIO_MDC_CLK); msm_camio_clk_disable(CAMIO_VFE_MDC_CLK); gpio_direction_output(76, 0); //CAM ON msm_camio_clk_sel(MSM_CAMIO_CLK_SRC_INTERNAL); cpufreq_set_policy(0, "ondemand"); }