usb: roles: add helper usb_role_string()

Introduces usb_role_string() function, which returns a
human-readable name of provided usb role, it's useful to
make the log readable.

Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Link: https://lore.kernel.org/r/1621932786-9335-1-git-send-email-chunfeng.yun@mediatek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Chunfeng Yun 2021-05-25 16:53:05 +08:00 committed by Greg Kroah-Hartman
parent a0765597c9
commit 73e33008e8
2 changed files with 15 additions and 0 deletions

View File

@ -214,6 +214,15 @@ static const char * const usb_roles[] = {
[USB_ROLE_DEVICE] = "device",
};
const char *usb_role_string(enum usb_role role)
{
if (role < 0 || role >= ARRAY_SIZE(usb_roles))
return "unknown";
return usb_roles[role];
}
EXPORT_SYMBOL_GPL(usb_role_string);
static ssize_t
role_show(struct device *dev, struct device_attribute *attr, char *buf)
{

View File

@ -65,6 +65,7 @@ void usb_role_switch_unregister(struct usb_role_switch *sw);
void usb_role_switch_set_drvdata(struct usb_role_switch *sw, void *data);
void *usb_role_switch_get_drvdata(struct usb_role_switch *sw);
const char *usb_role_string(enum usb_role role);
#else
static inline int usb_role_switch_set_role(struct usb_role_switch *sw,
enum usb_role role)
@ -109,6 +110,11 @@ static inline void *usb_role_switch_get_drvdata(struct usb_role_switch *sw)
return NULL;
}
static inline const char *usb_role_string(enum usb_role role)
{
return "unknown";
}
#endif
#endif /* __LINUX_USB_ROLE_H */