RE: [PATCH v9 5/6] usb:cdns3 Add Cadence USB3 DRD Driver
From: Felipe Balbi <hidden>
Date: 2019-07-08 11:15:53
Also in:
linux-usb, lkml
Hi, Pawel Laszczak [off-list ref] writes:
Please look at the changes in drivers/usb/common/common.c file. I'm going to add it as next patch to next version.quoted
Pawel Laszczak [off-list ref] writes:quoted
quoted
quoted
+void cdns3_role_stop(struct cdns3 *cdns)quoted
quoted
quoted
+static const char *const cdns3_mode[] = { + [USB_DR_MODE_UNKNOWN] = "unknown", + [USB_DR_MODE_OTG] = "otg", + [USB_DR_MODE_HOST] = "host", + [USB_DR_MODE_PERIPHERAL] = "device", +};don't we have a generic version of this under usb/common ?Yes, there is a similar array, but it is defined also as static and there is no function for converting value to string. There is only function for converting string to value.right. You can add the missing interface generically instead of duplicating the enumeration.quoted
There is also: [USB_DR_MODE_UNKNOWN] = "", Instead of: [USB_DR_MODE_UNKNOWN] = "unknown", So, for USB_DR_MODE_UNKNOWN user will not see anything information.But that's what "unknown" means :-) We don't know the information.////// start commit 607754c60fabc43408f4f2de82d3560c72870787 (HEAD) Author: Pawel Laszczak [off-list ref] Date: Mon Jul 8 12:53:47 2019 +0200 usb:common Added usb_get_dr_mode_from_string and usb_dr_mode_to_string.
This would read better as:
usb: common: Add usb_get_dr_mode_from_string and usb_dr_mode_to_string.
quoted hunk ↗ jump to hunk
Patch introduces new function usb_dr_mode_to_string for converting dual role mod to string and removes static from usb_dr_mode_to_string definition. Both changes have made to avoid duplication of code by cdns3 driver.diff --git a/drivers/usb/common/common.c b/drivers/usb/common/common.c index 18f5dcf58b0d..ab59954deff8 100644 --- a/drivers/usb/common/common.c +++ b/drivers/usb/common/common.c@@ -118,13 +118,20 @@ static const char *const usb_dr_modes[] = { [USB_DR_MODE_OTG] = "otg", }; -static enum usb_dr_mode usb_get_dr_mode_from_string(const char *str) +/** + * usb_get_dr_mode_from_string - Convert string to dual role mode. + * @str: Pointer to the given string + * + * The function gets string and returns the correspondig enum usb_dr_mode. + */ +enum usb_dr_mode usb_get_dr_mode_from_string(const char *str) { int ret; ret = match_string(usb_dr_modes, ARRAY_SIZE(usb_dr_modes), str); return (ret < 0) ? USB_DR_MODE_UNKNOWN : ret; } +EXPORT_SYMBOL_GPL(usb_get_dr_mode_from_string); enum usb_dr_mode usb_get_dr_mode(struct device *dev) {@@ -139,6 +146,21 @@ enum usb_dr_mode usb_get_dr_mode(struct device *dev) } EXPORT_SYMBOL_GPL(usb_get_dr_mode); +/** + * usb_dr_mode_to_string - Convert dual role mode to stringi.
s/stringi/string
+ * @dr_mode: Pointer to the given dual role mode
+ *
+ * The function gets enum usb_dr_mode, and returns the correspondig string.
+ */
+const *char usb_dr_mode_to_string(const enum usb_dr_mode dr_mode)
+{
+ if (dr_mode > USB_DR_MODE_UNKNOWN || dr_mode <= USB_DR_MODE_PERIPHERAL)
+ return usb_dr_modes[dr_mode];
+
+ return usb_dr_modes[USB_DR_MODE_UNKNOWN];
+}
+EXPORT_SYMBOL_GPL(usb_dr_mode_to_string);missing prototype in a header file. -- balbi
Attachments
- signature.asc [application/pgp-signature] 832 bytes