mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 07:00:48 +00:00
usb: factor out state_string() on otg drivers
Provide common otg_state_string() and use it in drivers. Signed-off-by: Anatolij Gustschin <agust@denx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
67e7d64bce
commit
3dacdf11f1
@ -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
|
||||||
|
@ -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,
|
||||||
|
@ -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)
|
|||||||
|
|
||||||
/* 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 */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user