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

Commit 3dacdf11 authored by Anatolij Gustschin's avatar Anatolij Gustschin Committed by Greg Kroah-Hartman
Browse files

usb: factor out state_string() on otg drivers



Provide common otg_state_string() and use
it in drivers.

Signed-off-by: default avatarAnatolij Gustschin <agust@denx.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 67e7d64b
Loading
Loading
Loading
Loading
+3 −23
Original line number Original line Diff line number Diff line
@@ -234,29 +234,9 @@ isp1301_clear_bits(struct isp1301 *isp, u8 reg, u8 bits)


/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/


static const char *state_string(enum usb_otg_state state)
{
	switch (state) {
	case OTG_STATE_A_IDLE:		return "a_idle";
	case OTG_STATE_A_WAIT_VRISE:	return "a_wait_vrise";
	case OTG_STATE_A_WAIT_BCON:	return "a_wait_bcon";
	case OTG_STATE_A_HOST:		return "a_host";
	case OTG_STATE_A_SUSPEND:	return "a_suspend";
	case OTG_STATE_A_PERIPHERAL:	return "a_peripheral";
	case OTG_STATE_A_WAIT_VFALL:	return "a_wait_vfall";
	case OTG_STATE_A_VBUS_ERR:	return "a_vbus_err";
	case OTG_STATE_B_IDLE:		return "b_idle";
	case OTG_STATE_B_SRP_INIT:	return "b_srp_init";
	case OTG_STATE_B_PERIPHERAL:	return "b_peripheral";
	case OTG_STATE_B_WAIT_ACON:	return "b_wait_acon";
	case OTG_STATE_B_HOST:		return "b_host";
	default:			return "UNDEFINED";
	}
}

static inline const char *state_name(struct isp1301 *isp)
static inline const char *state_name(struct isp1301 *isp)
{
{
	return state_string(isp->otg.state);
	return otg_state_string(isp->otg.state);
}
}


/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
@@ -501,7 +481,7 @@ static void check_state(struct isp1301 *isp, const char *tag)
	if (isp->otg.state == state && !extra)
	if (isp->otg.state == state && !extra)
		return;
		return;
	pr_debug("otg: %s FSM %s/%02x, %s, %06x\n", tag,
	pr_debug("otg: %s FSM %s/%02x, %s, %06x\n", tag,
		state_string(state), fsm, state_name(isp),
		otg_state_string(state), fsm, state_name(isp),
		omap_readl(OTG_CTRL));
		omap_readl(OTG_CTRL));
}
}


@@ -1095,7 +1075,7 @@ static void isp_update_otg(struct isp1301 *isp, u8 stat)


	if (state != isp->otg.state)
	if (state != isp->otg.state)
		pr_debug("  isp, %s -> %s\n",
		pr_debug("  isp, %s -> %s\n",
				state_string(state), state_name(isp));
				otg_state_string(state), state_name(isp));


#ifdef	CONFIG_USB_OTG
#ifdef	CONFIG_USB_OTG
	/* update the OTG controller state to match the isp1301; may
	/* update the OTG controller state to match the isp1301; may
+3 −37
Original line number Original line Diff line number Diff line
@@ -82,40 +82,6 @@ static struct pci_driver otg_pci_driver = {
	.resume =	langwell_otg_resume,
	.resume =	langwell_otg_resume,
};
};


static const char *state_string(enum usb_otg_state state)
{
	switch (state) {
	case OTG_STATE_A_IDLE:
		return "a_idle";
	case OTG_STATE_A_WAIT_VRISE:
		return "a_wait_vrise";
	case OTG_STATE_A_WAIT_BCON:
		return "a_wait_bcon";
	case OTG_STATE_A_HOST:
		return "a_host";
	case OTG_STATE_A_SUSPEND:
		return "a_suspend";
	case OTG_STATE_A_PERIPHERAL:
		return "a_peripheral";
	case OTG_STATE_A_WAIT_VFALL:
		return "a_wait_vfall";
	case OTG_STATE_A_VBUS_ERR:
		return "a_vbus_err";
	case OTG_STATE_B_IDLE:
		return "b_idle";
	case OTG_STATE_B_SRP_INIT:
		return "b_srp_init";
	case OTG_STATE_B_PERIPHERAL:
		return "b_peripheral";
	case OTG_STATE_B_WAIT_ACON:
		return "b_wait_acon";
	case OTG_STATE_B_HOST:
		return "b_host";
	default:
		return "UNDEFINED";
	}
}

/* HSM timers */
/* HSM timers */
static inline struct langwell_otg_timer *otg_timer_initializer
static inline struct langwell_otg_timer *otg_timer_initializer
(void (*function)(unsigned long), unsigned long expires, unsigned long data)
(void (*function)(unsigned long), unsigned long expires, unsigned long data)
@@ -968,7 +934,7 @@ static void langwell_otg_work(struct work_struct *work)
	pdev = to_pci_dev(lnw->dev);
	pdev = to_pci_dev(lnw->dev);


	dev_dbg(lnw->dev, "%s: old state = %s\n", __func__,
	dev_dbg(lnw->dev, "%s: old state = %s\n", __func__,
			state_string(iotg->otg.state));
			otg_state_string(iotg->otg.state));


	switch (iotg->otg.state) {
	switch (iotg->otg.state) {
	case OTG_STATE_UNDEFINED:
	case OTG_STATE_UNDEFINED:
@@ -1703,7 +1669,7 @@ static void langwell_otg_work(struct work_struct *work)
	}
	}


	dev_dbg(lnw->dev, "%s: new state = %s\n", __func__,
	dev_dbg(lnw->dev, "%s: new state = %s\n", __func__,
			state_string(iotg->otg.state));
			otg_state_string(iotg->otg.state));
}
}


static ssize_t
static ssize_t
@@ -1789,7 +1755,7 @@ show_hsm(struct device *_dev, struct device_attribute *attr, char *buf)
		"b_bus_req = \t%d\n"
		"b_bus_req = \t%d\n"
		"b_bus_suspend_tmout = \t%d\n"
		"b_bus_suspend_tmout = \t%d\n"
		"b_bus_suspend_vld = \t%d\n",
		"b_bus_suspend_vld = \t%d\n",
		state_string(iotg->otg.state),
		otg_state_string(iotg->otg.state),
		iotg->hsm.a_bus_resume,
		iotg->hsm.a_bus_resume,
		iotg->hsm.a_bus_suspend,
		iotg->hsm.a_bus_suspend,
		iotg->hsm.a_conn,
		iotg->hsm.a_conn,
+35 −0
Original line number Original line Diff line number Diff line
@@ -64,3 +64,38 @@ int otg_set_transceiver(struct otg_transceiver *x)
	return 0;
	return 0;
}
}
EXPORT_SYMBOL(otg_set_transceiver);
EXPORT_SYMBOL(otg_set_transceiver);

const char *otg_state_string(enum usb_otg_state state)
{
	switch (state) {
	case OTG_STATE_A_IDLE:
		return "a_idle";
	case OTG_STATE_A_WAIT_VRISE:
		return "a_wait_vrise";
	case OTG_STATE_A_WAIT_BCON:
		return "a_wait_bcon";
	case OTG_STATE_A_HOST:
		return "a_host";
	case OTG_STATE_A_SUSPEND:
		return "a_suspend";
	case OTG_STATE_A_PERIPHERAL:
		return "a_peripheral";
	case OTG_STATE_A_WAIT_VFALL:
		return "a_wait_vfall";
	case OTG_STATE_A_VBUS_ERR:
		return "a_vbus_err";
	case OTG_STATE_B_IDLE:
		return "b_idle";
	case OTG_STATE_B_SRP_INIT:
		return "b_srp_init";
	case OTG_STATE_B_PERIPHERAL:
		return "b_peripheral";
	case OTG_STATE_B_WAIT_ACON:
		return "b_wait_acon";
	case OTG_STATE_B_HOST:
		return "b_host";
	default:
		return "UNDEFINED";
	}
}
EXPORT_SYMBOL(otg_state_string);
+1 −0
Original line number Original line Diff line number Diff line
@@ -246,5 +246,6 @@ otg_unregister_notifier(struct otg_transceiver *otg, struct notifier_block *nb)


/* for OTG controller drivers (and maybe other stuff) */
/* for OTG controller drivers (and maybe other stuff) */
extern int usb_bus_start_enum(struct usb_bus *bus, unsigned port_num);
extern int usb_bus_start_enum(struct usb_bus *bus, unsigned port_num);
extern const char *otg_state_string(enum usb_otg_state state);


#endif /* __LINUX_USB_OTG_H */
#endif /* __LINUX_USB_OTG_H */