|
@@ -87,9 +87,10 @@ static void mv_otg_run_state_machine(struct mv_otg *mvotg,
|
|
queue_delayed_work(mvotg->qwork, &mvotg->work, delay);
|
|
queue_delayed_work(mvotg->qwork, &mvotg->work, delay);
|
|
}
|
|
}
|
|
|
|
|
|
-static void mv_otg_timer_await_bcon(unsigned long data)
|
|
|
|
|
|
+static void mv_otg_timer_await_bcon(struct timer_list *t)
|
|
{
|
|
{
|
|
- struct mv_otg *mvotg = (struct mv_otg *) data;
|
|
|
|
|
|
+ struct mv_otg *mvotg = from_timer(mvotg, t,
|
|
|
|
+ otg_ctrl.timer[A_WAIT_BCON_TIMER]);
|
|
|
|
|
|
mvotg->otg_ctrl.a_wait_bcon_timeout = 1;
|
|
mvotg->otg_ctrl.a_wait_bcon_timeout = 1;
|
|
|
|
|
|
@@ -117,8 +118,7 @@ static int mv_otg_cancel_timer(struct mv_otg *mvotg, unsigned int id)
|
|
}
|
|
}
|
|
|
|
|
|
static int mv_otg_set_timer(struct mv_otg *mvotg, unsigned int id,
|
|
static int mv_otg_set_timer(struct mv_otg *mvotg, unsigned int id,
|
|
- unsigned long interval,
|
|
|
|
- void (*callback) (unsigned long))
|
|
|
|
|
|
+ unsigned long interval)
|
|
{
|
|
{
|
|
struct timer_list *timer;
|
|
struct timer_list *timer;
|
|
|
|
|
|
@@ -131,9 +131,6 @@ static int mv_otg_set_timer(struct mv_otg *mvotg, unsigned int id,
|
|
return -EBUSY;
|
|
return -EBUSY;
|
|
}
|
|
}
|
|
|
|
|
|
- init_timer(timer);
|
|
|
|
- timer->data = (unsigned long) mvotg;
|
|
|
|
- timer->function = callback;
|
|
|
|
timer->expires = jiffies + interval;
|
|
timer->expires = jiffies + interval;
|
|
add_timer(timer);
|
|
add_timer(timer);
|
|
|
|
|
|
@@ -459,8 +456,7 @@ run:
|
|
if (old_state != OTG_STATE_A_HOST)
|
|
if (old_state != OTG_STATE_A_HOST)
|
|
mv_otg_start_host(mvotg, 1);
|
|
mv_otg_start_host(mvotg, 1);
|
|
mv_otg_set_timer(mvotg, A_WAIT_BCON_TIMER,
|
|
mv_otg_set_timer(mvotg, A_WAIT_BCON_TIMER,
|
|
- T_A_WAIT_BCON,
|
|
|
|
- mv_otg_timer_await_bcon);
|
|
|
|
|
|
+ T_A_WAIT_BCON);
|
|
/*
|
|
/*
|
|
* Now, we directly enter A_HOST. So set b_conn = 1
|
|
* Now, we directly enter A_HOST. So set b_conn = 1
|
|
* here. In fact, it need host driver to notify us.
|
|
* here. In fact, it need host driver to notify us.
|
|
@@ -722,7 +718,8 @@ static int mv_otg_probe(struct platform_device *pdev)
|
|
otg->set_vbus = mv_otg_set_vbus;
|
|
otg->set_vbus = mv_otg_set_vbus;
|
|
|
|
|
|
for (i = 0; i < OTG_TIMER_NUM; i++)
|
|
for (i = 0; i < OTG_TIMER_NUM; i++)
|
|
- init_timer(&mvotg->otg_ctrl.timer[i]);
|
|
|
|
|
|
+ timer_setup(&mvotg->otg_ctrl.timer[i],
|
|
|
|
+ mv_otg_timer_await_bcon, 0);
|
|
|
|
|
|
r = platform_get_resource_byname(mvotg->pdev,
|
|
r = platform_get_resource_byname(mvotg->pdev,
|
|
IORESOURCE_MEM, "phyregs");
|
|
IORESOURCE_MEM, "phyregs");
|