Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e332df6 authored by Roger Quadros's avatar Roger Quadros Committed by Peter Chen
Browse files

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: default avatarRoger Quadros <rogerq@ti.com>
Acked-by: default avatarPeter Chen <peter.chen@freescale.com>
Signed-off-by: default avatarPeter Chen <peter.chen@nxp.com>
parent fa59507f
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -61,8 +61,6 @@ static int otg_set_protocol(struct otg_fsm *fsm, int protocol)
	return 0;
}

static int state_changed;

/* Called when leaving a state.  Do state clean up jobs here */
static void otg_leave_state(struct otg_fsm *fsm, enum usb_otg_state old_state)
{
@@ -208,7 +206,6 @@ static void otg_start_hnp_polling(struct otg_fsm *fsm)
/* Called when entering a state */
static int otg_set_state(struct otg_fsm *fsm, enum usb_otg_state new_state)
{
	state_changed = 1;
	if (fsm->otg->state == new_state)
		return 0;
	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)
	}

	fsm->otg->state = new_state;
	fsm->state_changed = 1;
	return 0;
}

@@ -335,7 +333,7 @@ int otg_statemachine(struct otg_fsm *fsm)
	mutex_lock(&fsm->lock);

	state = fsm->otg->state;
	state_changed = 0;
	fsm->state_changed = 0;
	/* State machine state change judgement */

	switch (state) {
@@ -448,7 +446,7 @@ int otg_statemachine(struct otg_fsm *fsm)
	}
	mutex_unlock(&fsm->lock);

	VDBG("quit statemachine, changed = %d\n", state_changed);
	return state_changed;
	VDBG("quit statemachine, changed = %d\n", fsm->state_changed);
	return fsm->state_changed;
}
EXPORT_SYMBOL_GPL(otg_statemachine);
+1 −0
Original line number Diff line number Diff line
@@ -210,6 +210,7 @@ struct otg_fsm {
	struct mutex lock;
	u8 *host_req_flag;
	struct delayed_work hnp_polling_work;
	bool state_changed;
};

struct otg_fsm_ops {