static void cw_bat_work(struct work_struct *work) { struct delayed_work *delay_work; struct cw_battery *cw_bat; int ret; delay_work = container_of(work, struct delayed_work, work); cw_bat = container_of(delay_work, struct cw_battery, battery_delay_work); ret = rk_ac_update_online(cw_bat); if (ret == 1) { power_supply_changed(&cw_bat->rk_ac); } if (cw_bat->plat_data->is_usb_charge == 1) { ret = rk_usb_update_online(cw_bat); if (ret == 1) { power_supply_changed(&cw_bat->rk_usb); power_supply_changed(&cw_bat->rk_ac); } } rk_bat_update_status(cw_bat); rk_bat_update_capacity(cw_bat); rk_bat_update_vol(cw_bat); rk_bat_update_time_to_empty(cw_bat); if (cw_bat->bat_change) { power_supply_changed(&cw_bat->rk_bat); cw_bat->bat_change = 0; } queue_delayed_work(cw_bat->battery_workqueue, &cw_bat->battery_delay_work, msecs_to_jiffies(1000)); dev_dbg(&cw_bat->client->dev, "cw_bat->bat_change = %d, cw_bat->time_to_empty = %d, cw_bat->capacity = %d, cw_bat->voltage = %d, cw_bat->dc_online = %d, cw_bat->usb_online = %d\n",\ cw_bat->bat_change, cw_bat->time_to_empty, cw_bat->capacity, cw_bat->voltage, cw_bat->dc_online, cw_bat->usb_online); }
static void cw_bat_work(struct work_struct *work) { struct delayed_work *delay_work; struct cw_battery *cw_bat; delay_work = container_of(work, struct delayed_work, work); cw_bat = container_of(delay_work, struct cw_battery, battery_delay_work); rk_bat_update_status(cw_bat); rk_bat_update_capacity(cw_bat); rk_bat_update_vol(cw_bat); rk_bat_update_time_to_empty(cw_bat); if (cw_bat->bat_change) { power_supply_changed(&cw_bat->rk_bat); cw_bat->bat_change = 0; } queue_delayed_work(cw_bat->battery_workqueue, &cw_bat->battery_delay_work, msecs_to_jiffies(10000)); dev_dbg(&cw_bat->client->dev, "cw_bat->bat_change = %d, cw_bat->time_to_empty = %d, cw_bat->capacity = %d, cw_bat->voltage = %d\n", \ cw_bat->bat_change, cw_bat->time_to_empty, cw_bat->capacity, cw_bat->voltage); }