diff --git a/drivers/power/ds2746_param.c b/drivers/power/ds2746_param.c index b881e113..07f78364 100644 --- a/drivers/power/ds2746_param.c +++ b/drivers/power/ds2746_param.c @@ -727,6 +727,13 @@ static BOOL __battery_param_udpate(struct battery_type *battery) /* calculate temperature*/ // battery->temp_01c = get_temp_c((float)temp_R_kohm / ((float)temp_adc_resl/battery->temp_adc - 1))*10; temp_01c = get_temp_01c(battery); + if(temp_01c == 700) + { + FL_25[battery->id_index] = 2350; + battery->charge_full_real_mAh = FL_25[battery->id_index]; + battery->charge_full_design_mAh = battery->charge_full_real_mAh; + temp_01c = 650 - battery->temp_adc*10; + } if (temp_01c >= TEMP_MIN*10) battery->temp_01c = temp_01c; else diff --git a/include/linux/ds2746_param_config.h b/include/linux/ds2746_param_config.h index 9779340f..ece34ee4 100644 --- a/include/linux/ds2746_param_config.h +++ b/include/linux/ds2746_param_config.h @@ -46,8 +46,8 @@ UINT32 ID_RANGE[] = 7150, 15500, /* Sony 1300mAh (Formosa) */ /* 7.1k~15k */ 27500, 49500, /* Sony 1300mAh (HTE) */ /* 28k~49.5k */ 15500, 27500, /* Sanyo 1300mAh (HTE) */ /* 16k~27k */ - 100, 7150, /* Samsung 1230mAh */ /* 1k~7k */ - 0, 100, /* HTC Extended 2300mAh */ /* 0k~1k */ + 100, 7150, /* Samsung 1230mAh */ /* 0.1k~7k */ + 0, 100, /* HTC Extended 2300mAh */ /* 0k~0.1k */ }; /*This table is calculated according to temp formula for temp mapping.