|
@@ -101,32 +101,31 @@ static void update_charger(void)
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
-static void supply_timer_func(unsigned long irq)
|
|
|
+static void supply_timer_func(unsigned long power_supply_ptr)
|
|
|
{
|
|
|
- if (ac_irq && irq == ac_irq->start)
|
|
|
- power_supply_changed(&pda_power_supplies[0]);
|
|
|
- else if (usb_irq && irq == usb_irq->start)
|
|
|
- power_supply_changed(&pda_power_supplies[1]);
|
|
|
+ void *power_supply = (void *)power_supply_ptr;
|
|
|
+
|
|
|
+ power_supply_changed(power_supply);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
-static void charger_timer_func(unsigned long irq)
|
|
|
+static void charger_timer_func(unsigned long power_supply_ptr)
|
|
|
{
|
|
|
update_charger();
|
|
|
|
|
|
/* Okay, charger set. Now wait a bit before notifying supplicants,
|
|
|
* charge power should stabilize. */
|
|
|
- supply_timer.data = irq;
|
|
|
+ supply_timer.data = power_supply_ptr;
|
|
|
mod_timer(&supply_timer,
|
|
|
jiffies + msecs_to_jiffies(pdata->wait_for_charger));
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
-static irqreturn_t power_changed_isr(int irq, void *unused)
|
|
|
+static irqreturn_t power_changed_isr(int irq, void *power_supply)
|
|
|
{
|
|
|
/* Wait a bit before reading ac/usb line status and setting charger,
|
|
|
* because ac/usb status readings may lag from irq. */
|
|
|
- charger_timer.data = irq;
|
|
|
+ charger_timer.data = (unsigned long)power_supply;
|
|
|
mod_timer(&charger_timer,
|
|
|
jiffies + msecs_to_jiffies(pdata->wait_for_status));
|
|
|
return IRQ_HANDLED;
|