static void sec_fg_isr_work(struct work_struct *work) { struct sec_fuelgauge_info *fuelgauge = container_of(work, struct sec_fuelgauge_info, isr_work.work); bool is_fuel_alerted_now; is_fuel_alerted_now = sec_hal_fg_is_fuelalerted(fuelgauge->client); dev_info(&fuelgauge->client->dev, "%s: Fuel-alert %salerted!\n", __func__, is_fuel_alerted_now ? "" : "NOT "); if (is_fuel_alerted_now) wake_lock(&fuelgauge->fuel_alert_wake_lock); else wake_unlock(&fuelgauge->fuel_alert_wake_lock); if (!(fuelgauge->pdata->repeated_fuelalert) && (fuelgauge->is_fuel_alerted == is_fuel_alerted_now)) { dev_dbg(&fuelgauge->client->dev, "%s: Fuel-alert Repeated (%d)\n", __func__, fuelgauge->is_fuel_alerted); return; } /* process for fuel gauge chip */ sec_hal_fg_fuelalert_process(fuelgauge, is_fuel_alerted_now); /* process for others */ fuelgauge->pdata->fuelalert_process(is_fuel_alerted_now); fuelgauge->is_fuel_alerted = is_fuel_alerted_now; }
static void sec_fg_isr_work(struct work_struct *work) { struct sec_fuelgauge_info *fuelgauge = container_of(work, struct sec_fuelgauge_info, isr_work.work); /* process for fuel gauge chip */ sec_hal_fg_fuelalert_process(fuelgauge, fuelgauge->is_fuel_alerted); /* process for others */ fuelgauge->pdata->fuelalert_process(fuelgauge->is_fuel_alerted); }