aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/common
diff options
context:
space:
mode:
authorRoger Quadros <rogerq@ti.com>2016-03-30 05:56:29 -0400
committerPeter Chen <peter.chen@nxp.com>2016-04-06 05:15:03 -0400
commit4e332df63487418ec512c3c376c07df9ab3ae035 (patch)
tree05b27c723055b5aaa579243ea197a5a81e772bb1 /drivers/usb/common
parentfa59507f720077a856c9952a31cfd45cd97ef6f9 (diff)
usb: otg-fsm: support multiple instances
Move the state_changed variable into struct otg_fsm so that we can support multiple instances. Signed-off-by: Roger Quadros <rogerq@ti.com> Acked-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Peter Chen <peter.chen@nxp.com>
Diffstat (limited to 'drivers/usb/common')
-rw-r--r--drivers/usb/common/usb-otg-fsm.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/usb/common/usb-otg-fsm.c b/drivers/usb/common/usb-otg-fsm.c
index 504708f59b93..9059b7dc185e 100644
--- a/drivers/usb/common/usb-otg-fsm.c
+++ b/drivers/usb/common/usb-otg-fsm.c
@@ -61,8 +61,6 @@ static int otg_set_protocol(struct otg_fsm *fsm, int protocol)
61 return 0; 61 return 0;
62} 62}
63 63
64static int state_changed;
65
66/* Called when leaving a state. Do state clean up jobs here */ 64/* Called when leaving a state. Do state clean up jobs here */
67static void otg_leave_state(struct otg_fsm *fsm, enum usb_otg_state old_state) 65static void otg_leave_state(struct otg_fsm *fsm, enum usb_otg_state old_state)
68{ 66{
@@ -208,7 +206,6 @@ static void otg_start_hnp_polling(struct otg_fsm *fsm)
208/* Called when entering a state */ 206/* Called when entering a state */
209static int otg_set_state(struct otg_fsm *fsm, enum usb_otg_state new_state) 207static int otg_set_state(struct otg_fsm *fsm, enum usb_otg_state new_state)
210{ 208{
211 state_changed = 1;
212 if (fsm->otg->state == new_state) 209 if (fsm->otg->state == new_state)
213 return 0; 210 return 0;
214 VDBG("Set state: %s\n", usb_otg_state_string(new_state)); 211 VDBG("Set state: %s\n", usb_otg_state_string(new_state));
@@ -324,6 +321,7 @@ static int otg_set_state(struct otg_fsm *fsm, enum usb_otg_state new_state)
324 } 321 }
325 322
326 fsm->otg->state = new_state; 323 fsm->otg->state = new_state;
324 fsm->state_changed = 1;
327 return 0; 325 return 0;
328} 326}
329 327
@@ -335,7 +333,7 @@ int otg_statemachine(struct otg_fsm *fsm)
335 mutex_lock(&fsm->lock); 333 mutex_lock(&fsm->lock);
336 334
337 state = fsm->otg->state; 335 state = fsm->otg->state;
338 state_changed = 0; 336 fsm->state_changed = 0;
339 /* State machine state change judgement */ 337 /* State machine state change judgement */
340 338
341 switch (state) { 339 switch (state) {
@@ -448,7 +446,7 @@ int otg_statemachine(struct otg_fsm *fsm)
448 } 446 }
449 mutex_unlock(&fsm->lock); 447 mutex_unlock(&fsm->lock);
450 448
451 VDBG("quit statemachine, changed = %d\n", state_changed); 449 VDBG("quit statemachine, changed = %d\n", fsm->state_changed);
452 return state_changed; 450 return fsm->state_changed;
453} 451}
454EXPORT_SYMBOL_GPL(otg_statemachine); 452EXPORT_SYMBOL_GPL(otg_statemachine);