|
@@ -60,16 +60,16 @@ static int sharpsl_ac_check(void);
|
|
static int sharpsl_fatal_check(void);
|
|
static int sharpsl_fatal_check(void);
|
|
static int sharpsl_average_value(int ad);
|
|
static int sharpsl_average_value(int ad);
|
|
static void sharpsl_average_clear(void);
|
|
static void sharpsl_average_clear(void);
|
|
-static void sharpsl_charge_toggle(void *private_);
|
|
|
|
-static void sharpsl_battery_thread(void *private_);
|
|
|
|
|
|
+static void sharpsl_charge_toggle(struct work_struct *private_);
|
|
|
|
+static void sharpsl_battery_thread(struct work_struct *private_);
|
|
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
* Variables
|
|
* Variables
|
|
*/
|
|
*/
|
|
struct sharpsl_pm_status sharpsl_pm;
|
|
struct sharpsl_pm_status sharpsl_pm;
|
|
-DECLARE_WORK(toggle_charger, sharpsl_charge_toggle, NULL);
|
|
|
|
-DECLARE_WORK(sharpsl_bat, sharpsl_battery_thread, NULL);
|
|
|
|
|
|
+DECLARE_DELAYED_WORK(toggle_charger, sharpsl_charge_toggle);
|
|
|
|
+DECLARE_DELAYED_WORK(sharpsl_bat, sharpsl_battery_thread);
|
|
DEFINE_LED_TRIGGER(sharpsl_charge_led_trigger);
|
|
DEFINE_LED_TRIGGER(sharpsl_charge_led_trigger);
|
|
|
|
|
|
|
|
|
|
@@ -116,7 +116,7 @@ void sharpsl_battery_kick(void)
|
|
EXPORT_SYMBOL(sharpsl_battery_kick);
|
|
EXPORT_SYMBOL(sharpsl_battery_kick);
|
|
|
|
|
|
|
|
|
|
-static void sharpsl_battery_thread(void *private_)
|
|
|
|
|
|
+static void sharpsl_battery_thread(struct work_struct *private_)
|
|
{
|
|
{
|
|
int voltage, percent, apm_status, i = 0;
|
|
int voltage, percent, apm_status, i = 0;
|
|
|
|
|
|
@@ -128,7 +128,7 @@ static void sharpsl_battery_thread(void *private_)
|
|
/* Corgi cannot confirm when battery fully charged so periodically kick! */
|
|
/* Corgi cannot confirm when battery fully charged so periodically kick! */
|
|
if (!sharpsl_pm.machinfo->batfull_irq && (sharpsl_pm.charge_mode == CHRG_ON)
|
|
if (!sharpsl_pm.machinfo->batfull_irq && (sharpsl_pm.charge_mode == CHRG_ON)
|
|
&& time_after(jiffies, sharpsl_pm.charge_start_time + SHARPSL_CHARGE_ON_TIME_INTERVAL))
|
|
&& time_after(jiffies, sharpsl_pm.charge_start_time + SHARPSL_CHARGE_ON_TIME_INTERVAL))
|
|
- schedule_work(&toggle_charger);
|
|
|
|
|
|
+ schedule_delayed_work(&toggle_charger, 0);
|
|
|
|
|
|
while(1) {
|
|
while(1) {
|
|
voltage = sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT);
|
|
voltage = sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT);
|
|
@@ -212,7 +212,7 @@ static void sharpsl_charge_off(void)
|
|
sharpsl_pm_led(SHARPSL_LED_OFF);
|
|
sharpsl_pm_led(SHARPSL_LED_OFF);
|
|
sharpsl_pm.charge_mode = CHRG_OFF;
|
|
sharpsl_pm.charge_mode = CHRG_OFF;
|
|
|
|
|
|
- schedule_work(&sharpsl_bat);
|
|
|
|
|
|
+ schedule_delayed_work(&sharpsl_bat, 0);
|
|
}
|
|
}
|
|
|
|
|
|
static void sharpsl_charge_error(void)
|
|
static void sharpsl_charge_error(void)
|
|
@@ -222,7 +222,7 @@ static void sharpsl_charge_error(void)
|
|
sharpsl_pm.charge_mode = CHRG_ERROR;
|
|
sharpsl_pm.charge_mode = CHRG_ERROR;
|
|
}
|
|
}
|
|
|
|
|
|
-static void sharpsl_charge_toggle(void *private_)
|
|
|
|
|
|
+static void sharpsl_charge_toggle(struct work_struct *private_)
|
|
{
|
|
{
|
|
dev_dbg(sharpsl_pm.dev, "Toogling Charger at time: %lx\n", jiffies);
|
|
dev_dbg(sharpsl_pm.dev, "Toogling Charger at time: %lx\n", jiffies);
|
|
|
|
|
|
@@ -254,7 +254,7 @@ static void sharpsl_ac_timer(unsigned long data)
|
|
else if (sharpsl_pm.charge_mode == CHRG_ON)
|
|
else if (sharpsl_pm.charge_mode == CHRG_ON)
|
|
sharpsl_charge_off();
|
|
sharpsl_charge_off();
|
|
|
|
|
|
- schedule_work(&sharpsl_bat);
|
|
|
|
|
|
+ schedule_delayed_work(&sharpsl_bat, 0);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -279,10 +279,10 @@ static void sharpsl_chrg_full_timer(unsigned long data)
|
|
sharpsl_charge_off();
|
|
sharpsl_charge_off();
|
|
} else if (sharpsl_pm.full_count < 2) {
|
|
} else if (sharpsl_pm.full_count < 2) {
|
|
dev_dbg(sharpsl_pm.dev, "Charge Full: Count too low\n");
|
|
dev_dbg(sharpsl_pm.dev, "Charge Full: Count too low\n");
|
|
- schedule_work(&toggle_charger);
|
|
|
|
|
|
+ schedule_delayed_work(&toggle_charger, 0);
|
|
} else if (time_after(jiffies, sharpsl_pm.charge_start_time + SHARPSL_CHARGE_FINISH_TIME)) {
|
|
} else if (time_after(jiffies, sharpsl_pm.charge_start_time + SHARPSL_CHARGE_FINISH_TIME)) {
|
|
dev_dbg(sharpsl_pm.dev, "Charge Full: Interrupt generated too slowly - retry.\n");
|
|
dev_dbg(sharpsl_pm.dev, "Charge Full: Interrupt generated too slowly - retry.\n");
|
|
- schedule_work(&toggle_charger);
|
|
|
|
|
|
+ schedule_delayed_work(&toggle_charger, 0);
|
|
} else {
|
|
} else {
|
|
sharpsl_charge_off();
|
|
sharpsl_charge_off();
|
|
sharpsl_pm.charge_mode = CHRG_DONE;
|
|
sharpsl_pm.charge_mode = CHRG_DONE;
|