static int mtktsbattery_get_hw_temp(void) { int t_ret=0; static int battery[60]={0}; static int counter=0, first_time=0; if(ts_battery_at_boot_time==0) { ts_battery_at_boot_time=1; mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] at boot time, return 25000 as default\n"); battery[counter]=25000; counter++; return 25000; } mutex_lock(&Battery_lock); //get HW battery temp (TSBATTERY) //cat /sys/class/power_supply/battery/batt_temp t_ret = get_hw_battery_temp(); t_ret = t_ret * 100; mutex_unlock(&Battery_lock); if(t_ret) mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] counter=%d, first_time =%d\n", counter, first_time); mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] T_Battery, %d\n", t_ret); return t_ret; }
static int mtktsbattery_get_temp(struct thermal_zone_device *thermal, unsigned long *t) { *t = (unsigned long)get_hw_battery_temp() * 1000; mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] T_Battery, %d\n", *t); return 0; }
static int mtktsbattery_get_hw_temp(void) { int t_ret=0; static int battery[60]={0}; static int counter=0, first_time=0; int i=0; if(ts_battery_at_boot_time==0){ ts_battery_at_boot_time=1; mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] at boot time, return 25000 as default\n"); battery[counter]=25000; counter++; return 25000; } mutex_lock(&Battery_lock); //if(battery_write_flag==1) //{ // counter=0; // first_time=0; // battery_write_flag=0; //} //get HW battery temp (TSBATTERY) //cat /sys/class/power_supply/battery/batt_temp t_ret = get_hw_battery_temp(); t_ret = t_ret * 100; battery[counter]=t_ret; if(first_time!=0) { t_ret = 0; for(i=0; i<MA_len; i++) { t_ret += battery[i]; } t_ret = t_ret / MA_len; } counter++; if(counter==MA_len) { counter=0; first_time=1; } if(counter>MA_len) { counter=0; first_time=0; } mutex_unlock(&Battery_lock); mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] counter=%d, first_time =%d, MA_len=%d\n", counter, first_time, MA_len); mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] T_Battery, %d\n", t_ret); return t_ret; }