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

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
...@@ -234,29 +234,9 @@ isp1301_clear_bits(struct isp1301 *isp, u8 reg, u8 bits) ...@@ -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) ...@@ -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) ...@@ -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
......
...@@ -82,40 +82,6 @@ static struct pci_driver otg_pci_driver = { ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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,
......
...@@ -64,3 +64,38 @@ int otg_set_transceiver(struct otg_transceiver *x) ...@@ -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);
...@@ -246,5 +246,6 @@ otg_unregister_notifier(struct otg_transceiver *otg, struct notifier_block *nb) ...@@ -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 */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment