int __devinit msm_thermal_init(struct msm_thermal_data *pdata) { int ret = 0; BUG_ON(!pdata); tsens_get_max_sensor_num(&max_tsens_num); memcpy(&msm_thermal_info, pdata, sizeof(struct msm_thermal_data)); if (create_sensor_id_map()) return -EINVAL; if (check_sensor_id(msm_thermal_info.sensor_id)) return -EINVAL; enabled = 1; ret = cpufreq_register_notifier(&msm_thermal_cpufreq_notifier, CPUFREQ_POLICY_NOTIFIER); if (ret) pr_err("%s: cannot register cpufreq notifier\n", KBUILD_MODNAME); INIT_DELAYED_WORK(&check_temp_work, check_temp); schedule_delayed_work(&check_temp_work, 0); if (num_possible_cpus() > 1) register_cpu_notifier(&msm_thermal_cpu_notifier); return ret; }
int __devinit msm_thermal_init(struct msm_thermal_data *pdata) { int ret = 0; BUG_ON(!pdata); tsens_get_max_sensor_num(&max_tsens_num); memcpy(&msm_thermal_info, pdata, sizeof(struct msm_thermal_data)); if (create_sensor_id_map()) return -EINVAL; if (check_sensor_id(msm_thermal_info.sensor_id)) return -EINVAL; enabled = 1; INIT_DELAYED_WORK(&check_temp_work, check_temp); schedule_delayed_work(&check_temp_work, 0); if (num_possible_cpus() > 1) { mutex_lock(&core_control_mutex); core_control_enabled = 1; register_cpu_notifier(&msm_thermal_cpu_notifier); update_offline_cores(cpus_offlined); mutex_unlock(&core_control_mutex); } return ret; }
int __devinit msm_thermal_init(struct msm_thermal_data *pdata) { int ret = 0; BUG_ON(!pdata); tsens_get_max_sensor_num(&max_tsens_num); BUG_ON(msm_thermal_info.sensor_id >= max_tsens_num); memcpy(&msm_thermal_info, pdata, sizeof(struct msm_thermal_data)); enabled = 1; core_control_enabled = 1; INIT_DELAYED_WORK(&check_temp_work, check_temp); schedule_delayed_work(&check_temp_work, 0); register_cpu_notifier(&msm_thermal_cpu_notifier); return ret; }
static void __ref msm_therm_temp_log(struct work_struct *work) { struct tsens_device tsens_dev; long temp = 0; uint32_t max_sensors = 0; if(!(tsens_get_max_sensor_num(&max_sensors))) { int i ,added = 0; char buffer[500]; for (i = 0 ; i< max_sensors;i++) { int ret = 0; tsens_dev.sensor_num = i; tsens_get_temp(&tsens_dev,&temp); ret = sprintf(buffer + added , "(%d --- %ld)", i ,temp ); added += ret; } pr_debug("%s: Debug Temp for Sensors %s",KBUILD_MODNAME,buffer); } schedule_delayed_work(&temp_log_work, HZ*5); }