linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] usb: introduce usb_ep_type_string() function
@ 2019-03-19  7:44 Chunfeng Yun
  2019-03-19  7:54 ` Chunfeng Yun
  0 siblings, 1 reply; 6+ messages in thread
From: Chunfeng Yun @ 2019-03-19  7:44 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Felipe Balbi, Mathias Nyman
  Cc: Joel Stanley, Andrew Jeffery, Matthias Brugger, Chunfeng Yun,
	Yoshihiro Shimoda, Arnd Bergmann, Roger Quadros, Alan Stern,
	Gustavo A. R. Silva, Martin Blumenstingl,
	Sebastian Andrzej Siewior, Miquel Raynal, Dmitry Torokhov,
	Johan Hovold, Benjamin Herrenschmidt, Colin Ian King,
	Matteo Croce, linux-usb, linux-kernel, linux-arm-kernel,
	linux-aspeed, linux-mediatek

In some places, the code prints a human-readable USB endpoint
transfer type (e.g. "Bulk"). This involves a switch statement
sometimes wrapped around in ({ ... }) block leading to code
repetition.
To make this scenario easier, here introduces usb_ep_type_string()
function, which returns a human-readable name of provided
endpoint type.
It also changes a few places switch was used to use this
new function.

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
---
v2 changes:
    1. keep type string consistent with type_show() used in endpoint.c
---
 drivers/usb/common/common.c              | 16 ++++++++++++++++
 drivers/usb/core/endpoint.c              | 18 ++----------------
 drivers/usb/core/hcd.c                   | 17 ++---------------
 drivers/usb/dwc3/debugfs.c               | 23 ++++-------------------
 drivers/usb/gadget/udc/aspeed-vhub/epn.c |  6 +-----
 drivers/usb/gadget/udc/dummy_hcd.c       | 16 +---------------
 drivers/usb/host/xhci-trace.h            | 19 ++-----------------
 include/linux/usb/ch9.h                  |  8 ++++++++
 8 files changed, 36 insertions(+), 87 deletions(-)

diff --git a/drivers/usb/common/common.c b/drivers/usb/common/common.c
index 48277bbc15e4..529b01e786fd 100644
--- a/drivers/usb/common/common.c
+++ b/drivers/usb/common/common.c
@@ -16,6 +16,22 @@
 #include <linux/usb/otg.h>
 #include <linux/of_platform.h>
 
+static const char *const ep_type_names[] = {
+	[USB_ENDPOINT_XFER_CONTROL] = "Control",
+	[USB_ENDPOINT_XFER_ISOC] = "Isoc",
+	[USB_ENDPOINT_XFER_BULK] = "Bulk",
+	[USB_ENDPOINT_XFER_INT] = "Interrupt",
+};
+
+const char *usb_ep_type_string(int ep_type)
+{
+	if (ep_type < 0 || ep_type >= ARRAY_SIZE(ep_type_names))
+		return "unknown";
+
+	return ep_type_names[ep_type];
+}
+EXPORT_SYMBOL_GPL(usb_ep_type_string);
+
 const char *usb_otg_state_string(enum usb_otg_state state)
 {
 	static const char *const names[] = {
diff --git a/drivers/usb/core/endpoint.c b/drivers/usb/core/endpoint.c
index 1c2c04079676..afa43f9a47b2 100644
--- a/drivers/usb/core/endpoint.c
+++ b/drivers/usb/core/endpoint.c
@@ -60,23 +60,9 @@ static ssize_t type_show(struct device *dev, struct device_attribute *attr,
 			 char *buf)
 {
 	struct ep_device *ep = to_ep_device(dev);
-	char *type = "unknown";
+	int ep_type = usb_endpoint_type(ep->desc);
 
-	switch (usb_endpoint_type(ep->desc)) {
-	case USB_ENDPOINT_XFER_CONTROL:
-		type = "Control";
-		break;
-	case USB_ENDPOINT_XFER_ISOC:
-		type = "Isoc";
-		break;
-	case USB_ENDPOINT_XFER_BULK:
-		type = "Bulk";
-		break;
-	case USB_ENDPOINT_XFER_INT:
-		type = "Interrupt";
-		break;
-	}
-	return sprintf(buf, "%s\n", type);
+	return sprintf(buf, "%s\n", usb_ep_type_string(ep_type));
 }
 static DEVICE_ATTR_RO(type);
 
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 3189181bb628..0ccf2efeb40b 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1878,23 +1878,10 @@ void usb_hcd_flush_endpoint(struct usb_device *udev,
 		/* kick hcd */
 		unlink1(hcd, urb, -ESHUTDOWN);
 		dev_dbg (hcd->self.controller,
-			"shutdown urb %pK ep%d%s%s\n",
+			"shutdown urb %pK ep%d%s-%s\n",
 			urb, usb_endpoint_num(&ep->desc),
 			is_in ? "in" : "out",
-			({	char *s;
-
-				 switch (usb_endpoint_type(&ep->desc)) {
-				 case USB_ENDPOINT_XFER_CONTROL:
-					s = ""; break;
-				 case USB_ENDPOINT_XFER_BULK:
-					s = "-bulk"; break;
-				 case USB_ENDPOINT_XFER_INT:
-					s = "-intr"; break;
-				 default:
-					s = "-iso"; break;
-				};
-				s;
-			}));
+			usb_ep_type_string(usb_endpoint_type(&ep->desc)));
 		usb_put_urb (urb);
 
 		/* list contents may have changed */
diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c
index 1c792710348f..d9e2a63835fe 100644
--- a/drivers/usb/dwc3/debugfs.c
+++ b/drivers/usb/dwc3/debugfs.c
@@ -750,28 +750,13 @@ static int dwc3_transfer_type_show(struct seq_file *s, void *unused)
 	unsigned long		flags;
 
 	spin_lock_irqsave(&dwc->lock, flags);
-	if (!(dep->flags & DWC3_EP_ENABLED) ||
-			!dep->endpoint.desc) {
-		seq_printf(s, "--\n");
+	if (!(dep->flags & DWC3_EP_ENABLED) || !dep->endpoint.desc) {
+		seq_puts(s, "unknown\n");
 		goto out;
 	}
 
-	switch (usb_endpoint_type(dep->endpoint.desc)) {
-	case USB_ENDPOINT_XFER_CONTROL:
-		seq_printf(s, "control\n");
-		break;
-	case USB_ENDPOINT_XFER_ISOC:
-		seq_printf(s, "isochronous\n");
-		break;
-	case USB_ENDPOINT_XFER_BULK:
-		seq_printf(s, "bulk\n");
-		break;
-	case USB_ENDPOINT_XFER_INT:
-		seq_printf(s, "interrupt\n");
-		break;
-	default:
-		seq_printf(s, "--\n");
-	}
+	seq_printf(s, "%s\n",
+		   usb_ep_type_string(usb_endpoint_type(dep->endpoint.desc)));
 
 out:
 	spin_unlock_irqrestore(&dwc->lock, flags);
diff --git a/drivers/usb/gadget/udc/aspeed-vhub/epn.c b/drivers/usb/gadget/udc/aspeed-vhub/epn.c
index 83340f4fdc6e..35941dc125f9 100644
--- a/drivers/usb/gadget/udc/aspeed-vhub/epn.c
+++ b/drivers/usb/gadget/udc/aspeed-vhub/epn.c
@@ -593,10 +593,6 @@ static int ast_vhub_epn_disable(struct usb_ep* u_ep)
 static int ast_vhub_epn_enable(struct usb_ep* u_ep,
 			       const struct usb_endpoint_descriptor *desc)
 {
-	static const char *ep_type_string[] __maybe_unused = { "ctrl",
-							       "isoc",
-							       "bulk",
-							       "intr" };
 	struct ast_vhub_ep *ep = to_ast_ep(u_ep);
 	struct ast_vhub_dev *dev;
 	struct ast_vhub *vhub;
@@ -646,7 +642,7 @@ static int ast_vhub_epn_enable(struct usb_ep* u_ep,
 	ep->epn.wedged = false;
 
 	EPDBG(ep, "Enabling [%s] %s num %d maxpacket=%d\n",
-	      ep->epn.is_in ? "in" : "out", ep_type_string[type],
+	      ep->epn.is_in ? "in" : "out", usb_ep_type_string(type),
 	      usb_endpoint_num(desc), maxpacket);
 
 	/* Can we use DMA descriptor mode ? */
diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
index baf72f95f0f1..40c6a484e232 100644
--- a/drivers/usb/gadget/udc/dummy_hcd.c
+++ b/drivers/usb/gadget/udc/dummy_hcd.c
@@ -617,21 +617,7 @@ static int dummy_enable(struct usb_ep *_ep,
 		_ep->name,
 		desc->bEndpointAddress & 0x0f,
 		(desc->bEndpointAddress & USB_DIR_IN) ? "in" : "out",
-		({ char *val;
-		 switch (usb_endpoint_type(desc)) {
-		 case USB_ENDPOINT_XFER_BULK:
-			 val = "bulk";
-			 break;
-		 case USB_ENDPOINT_XFER_ISOC:
-			 val = "iso";
-			 break;
-		 case USB_ENDPOINT_XFER_INT:
-			 val = "intr";
-			 break;
-		 default:
-			 val = "ctrl";
-			 break;
-		 } val; }),
+		usb_ep_type_string(usb_endpoint_type(desc)),
 		max, ep->stream_en ? "enabled" : "disabled");
 
 	/* at this point real hardware should be NAKing transfers
diff --git a/drivers/usb/host/xhci-trace.h b/drivers/usb/host/xhci-trace.h
index 88b427434bd8..bac73d688f11 100644
--- a/drivers/usb/host/xhci-trace.h
+++ b/drivers/usb/host/xhci-trace.h
@@ -289,23 +289,8 @@ DECLARE_EVENT_CLASS(xhci_log_urb,
 	),
 	TP_printk("ep%d%s-%s: urb %p pipe %u slot %d length %d/%d sgs %d/%d stream %d flags %08x",
 			__entry->epnum, __entry->dir_in ? "in" : "out",
-			({ char *s;
-			switch (__entry->type) {
-			case USB_ENDPOINT_XFER_INT:
-				s = "intr";
-				break;
-			case USB_ENDPOINT_XFER_CONTROL:
-				s = "control";
-				break;
-			case USB_ENDPOINT_XFER_BULK:
-				s = "bulk";
-				break;
-			case USB_ENDPOINT_XFER_ISOC:
-				s = "isoc";
-				break;
-			default:
-				s = "UNKNOWN";
-			} s; }), __entry->urb, __entry->pipe, __entry->slot_id,
+			usb_ep_type_string(__entry->type),
+			__entry->urb, __entry->pipe, __entry->slot_id,
 			__entry->actual, __entry->length, __entry->num_mapped_sgs,
 			__entry->num_sgs, __entry->stream, __entry->flags
 		)
diff --git a/include/linux/usb/ch9.h b/include/linux/usb/ch9.h
index 523aa088f6ab..da82606be605 100644
--- a/include/linux/usb/ch9.h
+++ b/include/linux/usb/ch9.h
@@ -36,6 +36,14 @@
 #include <linux/device.h>
 #include <uapi/linux/usb/ch9.h>
 
+/**
+ * usb_ep_type_string() - Returns human readable-name of the endpoint type.
+ * @ep_type: The endpoint type to return human-readable name for.  If it's not
+ *   any of the types: USB_ENDPOINT_XFER_{CONTROL, ISOC, BULK, INT},
+ *   usually got by usb_endpoint_type(), the string 'unknown' will be returned.
+ */
+extern const char *usb_ep_type_string(int ep_type);
+
 /**
  * usb_speed_string() - Returns human readable-name of the speed.
  * @speed: The speed to return human-readable name for.  If it's not
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] usb: introduce usb_ep_type_string() function
  2019-03-19  7:44 [PATCH v2] usb: introduce usb_ep_type_string() function Chunfeng Yun
@ 2019-03-19  7:54 ` Chunfeng Yun
  2019-03-19  9:23   ` Greg Kroah-Hartman
  0 siblings, 1 reply; 6+ messages in thread
From: Chunfeng Yun @ 2019-03-19  7:54 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Felipe Balbi, Mathias Nyman, Joel Stanley, Andrew Jeffery,
	Matthias Brugger, Yoshihiro Shimoda, Arnd Bergmann,
	Roger Quadros, Alan Stern, Gustavo A. R. Silva,
	Martin Blumenstingl, Sebastian Andrzej Siewior, Miquel Raynal,
	Dmitry Torokhov, Johan Hovold, Benjamin Herrenschmidt,
	Colin Ian King, Matteo Croce, linux-usb, linux-kernel,
	linux-arm-kernel, linux-aspeed, linux-mediatek


Hi Felipe & Mathias,

Could you please comment this patch, if there is some-effect on dwc3 and
xhci, I'll remove its change.

Sorry for bothering you


On Tue, 2019-03-19 at 15:44 +0800, Chunfeng Yun wrote:
> In some places, the code prints a human-readable USB endpoint
> transfer type (e.g. "Bulk"). This involves a switch statement
> sometimes wrapped around in ({ ... }) block leading to code
> repetition.
> To make this scenario easier, here introduces usb_ep_type_string()
> function, which returns a human-readable name of provided
> endpoint type.
> It also changes a few places switch was used to use this
> new function.
> 
> Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
> ---
> v2 changes:
>     1. keep type string consistent with type_show() used in endpoint.c
> ---
>  drivers/usb/common/common.c              | 16 ++++++++++++++++
>  drivers/usb/core/endpoint.c              | 18 ++----------------
>  drivers/usb/core/hcd.c                   | 17 ++---------------
>  drivers/usb/dwc3/debugfs.c               | 23 ++++-------------------
>  drivers/usb/gadget/udc/aspeed-vhub/epn.c |  6 +-----
>  drivers/usb/gadget/udc/dummy_hcd.c       | 16 +---------------
>  drivers/usb/host/xhci-trace.h            | 19 ++-----------------
>  include/linux/usb/ch9.h                  |  8 ++++++++
>  8 files changed, 36 insertions(+), 87 deletions(-)
> 
> diff --git a/drivers/usb/common/common.c b/drivers/usb/common/common.c
> index 48277bbc15e4..529b01e786fd 100644
> --- a/drivers/usb/common/common.c
> +++ b/drivers/usb/common/common.c
> @@ -16,6 +16,22 @@
>  #include <linux/usb/otg.h>
>  #include <linux/of_platform.h>
>  
> +static const char *const ep_type_names[] = {
> +	[USB_ENDPOINT_XFER_CONTROL] = "Control",
> +	[USB_ENDPOINT_XFER_ISOC] = "Isoc",
> +	[USB_ENDPOINT_XFER_BULK] = "Bulk",
> +	[USB_ENDPOINT_XFER_INT] = "Interrupt",
> +};
> +
> +const char *usb_ep_type_string(int ep_type)
> +{
> +	if (ep_type < 0 || ep_type >= ARRAY_SIZE(ep_type_names))
> +		return "unknown";
> +
> +	return ep_type_names[ep_type];
> +}
> +EXPORT_SYMBOL_GPL(usb_ep_type_string);
> +
>  const char *usb_otg_state_string(enum usb_otg_state state)
>  {
>  	static const char *const names[] = {
> diff --git a/drivers/usb/core/endpoint.c b/drivers/usb/core/endpoint.c
> index 1c2c04079676..afa43f9a47b2 100644
> --- a/drivers/usb/core/endpoint.c
> +++ b/drivers/usb/core/endpoint.c
> @@ -60,23 +60,9 @@ static ssize_t type_show(struct device *dev, struct device_attribute *attr,
>  			 char *buf)
>  {
>  	struct ep_device *ep = to_ep_device(dev);
> -	char *type = "unknown";
> +	int ep_type = usb_endpoint_type(ep->desc);
>  
> -	switch (usb_endpoint_type(ep->desc)) {
> -	case USB_ENDPOINT_XFER_CONTROL:
> -		type = "Control";
> -		break;
> -	case USB_ENDPOINT_XFER_ISOC:
> -		type = "Isoc";
> -		break;
> -	case USB_ENDPOINT_XFER_BULK:
> -		type = "Bulk";
> -		break;
> -	case USB_ENDPOINT_XFER_INT:
> -		type = "Interrupt";
> -		break;
> -	}
> -	return sprintf(buf, "%s\n", type);
> +	return sprintf(buf, "%s\n", usb_ep_type_string(ep_type));
>  }
>  static DEVICE_ATTR_RO(type);
>  
> diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
> index 3189181bb628..0ccf2efeb40b 100644
> --- a/drivers/usb/core/hcd.c
> +++ b/drivers/usb/core/hcd.c
> @@ -1878,23 +1878,10 @@ void usb_hcd_flush_endpoint(struct usb_device *udev,
>  		/* kick hcd */
>  		unlink1(hcd, urb, -ESHUTDOWN);
>  		dev_dbg (hcd->self.controller,
> -			"shutdown urb %pK ep%d%s%s\n",
> +			"shutdown urb %pK ep%d%s-%s\n",
>  			urb, usb_endpoint_num(&ep->desc),
>  			is_in ? "in" : "out",
> -			({	char *s;
> -
> -				 switch (usb_endpoint_type(&ep->desc)) {
> -				 case USB_ENDPOINT_XFER_CONTROL:
> -					s = ""; break;
> -				 case USB_ENDPOINT_XFER_BULK:
> -					s = "-bulk"; break;
> -				 case USB_ENDPOINT_XFER_INT:
> -					s = "-intr"; break;
> -				 default:
> -					s = "-iso"; break;
> -				};
> -				s;
> -			}));
> +			usb_ep_type_string(usb_endpoint_type(&ep->desc)));
>  		usb_put_urb (urb);
>  
>  		/* list contents may have changed */
> diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c
> index 1c792710348f..d9e2a63835fe 100644
> --- a/drivers/usb/dwc3/debugfs.c
> +++ b/drivers/usb/dwc3/debugfs.c
> @@ -750,28 +750,13 @@ static int dwc3_transfer_type_show(struct seq_file *s, void *unused)
>  	unsigned long		flags;
>  
>  	spin_lock_irqsave(&dwc->lock, flags);
> -	if (!(dep->flags & DWC3_EP_ENABLED) ||
> -			!dep->endpoint.desc) {
> -		seq_printf(s, "--\n");
> +	if (!(dep->flags & DWC3_EP_ENABLED) || !dep->endpoint.desc) {
> +		seq_puts(s, "unknown\n");
>  		goto out;
>  	}
>  
> -	switch (usb_endpoint_type(dep->endpoint.desc)) {
> -	case USB_ENDPOINT_XFER_CONTROL:
> -		seq_printf(s, "control\n");
> -		break;
> -	case USB_ENDPOINT_XFER_ISOC:
> -		seq_printf(s, "isochronous\n");
> -		break;
> -	case USB_ENDPOINT_XFER_BULK:
> -		seq_printf(s, "bulk\n");
> -		break;
> -	case USB_ENDPOINT_XFER_INT:
> -		seq_printf(s, "interrupt\n");
> -		break;
> -	default:
> -		seq_printf(s, "--\n");
> -	}
> +	seq_printf(s, "%s\n",
> +		   usb_ep_type_string(usb_endpoint_type(dep->endpoint.desc)));
>  
>  out:
>  	spin_unlock_irqrestore(&dwc->lock, flags);
> diff --git a/drivers/usb/gadget/udc/aspeed-vhub/epn.c b/drivers/usb/gadget/udc/aspeed-vhub/epn.c
> index 83340f4fdc6e..35941dc125f9 100644
> --- a/drivers/usb/gadget/udc/aspeed-vhub/epn.c
> +++ b/drivers/usb/gadget/udc/aspeed-vhub/epn.c
> @@ -593,10 +593,6 @@ static int ast_vhub_epn_disable(struct usb_ep* u_ep)
>  static int ast_vhub_epn_enable(struct usb_ep* u_ep,
>  			       const struct usb_endpoint_descriptor *desc)
>  {
> -	static const char *ep_type_string[] __maybe_unused = { "ctrl",
> -							       "isoc",
> -							       "bulk",
> -							       "intr" };
>  	struct ast_vhub_ep *ep = to_ast_ep(u_ep);
>  	struct ast_vhub_dev *dev;
>  	struct ast_vhub *vhub;
> @@ -646,7 +642,7 @@ static int ast_vhub_epn_enable(struct usb_ep* u_ep,
>  	ep->epn.wedged = false;
>  
>  	EPDBG(ep, "Enabling [%s] %s num %d maxpacket=%d\n",
> -	      ep->epn.is_in ? "in" : "out", ep_type_string[type],
> +	      ep->epn.is_in ? "in" : "out", usb_ep_type_string(type),
>  	      usb_endpoint_num(desc), maxpacket);
>  
>  	/* Can we use DMA descriptor mode ? */
> diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
> index baf72f95f0f1..40c6a484e232 100644
> --- a/drivers/usb/gadget/udc/dummy_hcd.c
> +++ b/drivers/usb/gadget/udc/dummy_hcd.c
> @@ -617,21 +617,7 @@ static int dummy_enable(struct usb_ep *_ep,
>  		_ep->name,
>  		desc->bEndpointAddress & 0x0f,
>  		(desc->bEndpointAddress & USB_DIR_IN) ? "in" : "out",
> -		({ char *val;
> -		 switch (usb_endpoint_type(desc)) {
> -		 case USB_ENDPOINT_XFER_BULK:
> -			 val = "bulk";
> -			 break;
> -		 case USB_ENDPOINT_XFER_ISOC:
> -			 val = "iso";
> -			 break;
> -		 case USB_ENDPOINT_XFER_INT:
> -			 val = "intr";
> -			 break;
> -		 default:
> -			 val = "ctrl";
> -			 break;
> -		 } val; }),
> +		usb_ep_type_string(usb_endpoint_type(desc)),
>  		max, ep->stream_en ? "enabled" : "disabled");
>  
>  	/* at this point real hardware should be NAKing transfers
> diff --git a/drivers/usb/host/xhci-trace.h b/drivers/usb/host/xhci-trace.h
> index 88b427434bd8..bac73d688f11 100644
> --- a/drivers/usb/host/xhci-trace.h
> +++ b/drivers/usb/host/xhci-trace.h
> @@ -289,23 +289,8 @@ DECLARE_EVENT_CLASS(xhci_log_urb,
>  	),
>  	TP_printk("ep%d%s-%s: urb %p pipe %u slot %d length %d/%d sgs %d/%d stream %d flags %08x",
>  			__entry->epnum, __entry->dir_in ? "in" : "out",
> -			({ char *s;
> -			switch (__entry->type) {
> -			case USB_ENDPOINT_XFER_INT:
> -				s = "intr";
> -				break;
> -			case USB_ENDPOINT_XFER_CONTROL:
> -				s = "control";
> -				break;
> -			case USB_ENDPOINT_XFER_BULK:
> -				s = "bulk";
> -				break;
> -			case USB_ENDPOINT_XFER_ISOC:
> -				s = "isoc";
> -				break;
> -			default:
> -				s = "UNKNOWN";
> -			} s; }), __entry->urb, __entry->pipe, __entry->slot_id,
> +			usb_ep_type_string(__entry->type),
> +			__entry->urb, __entry->pipe, __entry->slot_id,
>  			__entry->actual, __entry->length, __entry->num_mapped_sgs,
>  			__entry->num_sgs, __entry->stream, __entry->flags
>  		)
> diff --git a/include/linux/usb/ch9.h b/include/linux/usb/ch9.h
> index 523aa088f6ab..da82606be605 100644
> --- a/include/linux/usb/ch9.h
> +++ b/include/linux/usb/ch9.h
> @@ -36,6 +36,14 @@
>  #include <linux/device.h>
>  #include <uapi/linux/usb/ch9.h>
>  
> +/**
> + * usb_ep_type_string() - Returns human readable-name of the endpoint type.
> + * @ep_type: The endpoint type to return human-readable name for.  If it's not
> + *   any of the types: USB_ENDPOINT_XFER_{CONTROL, ISOC, BULK, INT},
> + *   usually got by usb_endpoint_type(), the string 'unknown' will be returned.
> + */
> +extern const char *usb_ep_type_string(int ep_type);
> +
>  /**
>   * usb_speed_string() - Returns human readable-name of the speed.
>   * @speed: The speed to return human-readable name for.  If it's not



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] usb: introduce usb_ep_type_string() function
  2019-03-19  7:54 ` Chunfeng Yun
@ 2019-03-19  9:23   ` Greg Kroah-Hartman
  2019-03-20  1:16     ` Chunfeng Yun
  0 siblings, 1 reply; 6+ messages in thread
From: Greg Kroah-Hartman @ 2019-03-19  9:23 UTC (permalink / raw)
  To: Chunfeng Yun
  Cc: Felipe Balbi, Mathias Nyman, Joel Stanley, Andrew Jeffery,
	Matthias Brugger, Yoshihiro Shimoda, Arnd Bergmann,
	Roger Quadros, Alan Stern, Gustavo A. R. Silva,
	Martin Blumenstingl, Sebastian Andrzej Siewior, Miquel Raynal,
	Dmitry Torokhov, Johan Hovold, Benjamin Herrenschmidt,
	Colin Ian King, Matteo Croce, linux-usb, linux-kernel,
	linux-arm-kernel, linux-aspeed, linux-mediatek

On Tue, Mar 19, 2019 at 03:54:19PM +0800, Chunfeng Yun wrote:
> 
> Hi Felipe & Mathias,
> 
> Could you please comment this patch, if there is some-effect on dwc3 and
> xhci, I'll remove its change.

To be specific, you are changing the string values for things that might
care about it and are seen by userspace.

Please be explicit about this, as it could cause problems.

greg k-h

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] usb: introduce usb_ep_type_string() function
  2019-03-19  9:23   ` Greg Kroah-Hartman
@ 2019-03-20  1:16     ` Chunfeng Yun
  2019-03-20  6:55       ` Felipe Balbi
  0 siblings, 1 reply; 6+ messages in thread
From: Chunfeng Yun @ 2019-03-20  1:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Felipe Balbi, Mathias Nyman, Joel Stanley, Andrew Jeffery,
	Matthias Brugger, Yoshihiro Shimoda, Arnd Bergmann,
	Roger Quadros, Alan Stern, Gustavo A. R. Silva,
	Martin Blumenstingl, Sebastian Andrzej Siewior, Miquel Raynal,
	Dmitry Torokhov, Johan Hovold, Benjamin Herrenschmidt,
	Colin Ian King, Matteo Croce, linux-usb, linux-kernel,
	linux-arm-kernel, linux-aspeed, linux-mediatek

Hi Greg,

On Tue, 2019-03-19 at 10:23 +0100, Greg Kroah-Hartman wrote:
> On Tue, Mar 19, 2019 at 03:54:19PM +0800, Chunfeng Yun wrote:
> > 
> > Hi Felipe & Mathias,
> > 
> > Could you please comment this patch, if there is some-effect on dwc3 and
> > xhci, I'll remove its change.
typo: some-effect/side-effect
> 
> To be specific, you are changing the string values for things that might
> care about it and are seen by userspace.
> 
> Please be explicit about this, as it could cause problems.
Thank you for making it more clearer

> 
> greg k-h



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] usb: introduce usb_ep_type_string() function
  2019-03-20  1:16     ` Chunfeng Yun
@ 2019-03-20  6:55       ` Felipe Balbi
  2019-03-20  7:49         ` Chunfeng Yun
  0 siblings, 1 reply; 6+ messages in thread
From: Felipe Balbi @ 2019-03-20  6:55 UTC (permalink / raw)
  To: Chunfeng Yun, Greg Kroah-Hartman
  Cc: Mathias Nyman, Joel Stanley, Andrew Jeffery, Matthias Brugger,
	Yoshihiro Shimoda, Arnd Bergmann, Roger Quadros, Alan Stern,
	Gustavo A. R. Silva, Martin Blumenstingl,
	Sebastian Andrzej Siewior, Miquel Raynal, Dmitry Torokhov,
	Johan Hovold, Benjamin Herrenschmidt, Colin Ian King,
	Matteo Croce, linux-usb, linux-kernel, linux-arm-kernel,
	linux-aspeed, linux-mediatek

[-- Attachment #1: Type: text/plain, Size: 719 bytes --]

Chunfeng Yun <chunfeng.yun@mediatek.com> writes:

> Hi Greg,
>
> On Tue, 2019-03-19 at 10:23 +0100, Greg Kroah-Hartman wrote:
>> On Tue, Mar 19, 2019 at 03:54:19PM +0800, Chunfeng Yun wrote:
>> > 
>> > Hi Felipe & Mathias,
>> > 
>> > Could you please comment this patch, if there is some-effect on dwc3 and
>> > xhci, I'll remove its change.
> typo: some-effect/side-effect

well, we don't really know if there are tools parsing the output. The
side-effect _does_ exist (i.e. you change the string :-), what we don't
know is if this will cause problems to possibly existing tools.

Personally, I don't mind the patch, but if it breaks existing parsers,
that would be a little annoying.

-- 
balbi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] usb: introduce usb_ep_type_string() function
  2019-03-20  6:55       ` Felipe Balbi
@ 2019-03-20  7:49         ` Chunfeng Yun
  0 siblings, 0 replies; 6+ messages in thread
From: Chunfeng Yun @ 2019-03-20  7:49 UTC (permalink / raw)
  To: Felipe Balbi
  Cc: Greg Kroah-Hartman, Mathias Nyman, Joel Stanley, Andrew Jeffery,
	Matthias Brugger, Yoshihiro Shimoda, Arnd Bergmann,
	Roger Quadros, Alan Stern, Gustavo A. R. Silva,
	Martin Blumenstingl, Sebastian Andrzej Siewior, Miquel Raynal,
	Dmitry Torokhov, Johan Hovold, Benjamin Herrenschmidt,
	Colin Ian King, Matteo Croce, linux-usb, linux-kernel,
	linux-arm-kernel, linux-aspeed, linux-mediatek

Hi Felipe,

On Wed, 2019-03-20 at 08:55 +0200, Felipe Balbi wrote:
> Chunfeng Yun <chunfeng.yun@mediatek.com> writes:
> 
> > Hi Greg,
> >
> > On Tue, 2019-03-19 at 10:23 +0100, Greg Kroah-Hartman wrote:
> >> On Tue, Mar 19, 2019 at 03:54:19PM +0800, Chunfeng Yun wrote:
> >> > 
> >> > Hi Felipe & Mathias,
> >> > 
> >> > Could you please comment this patch, if there is some-effect on dwc3 and
> >> > xhci, I'll remove its change.
> > typo: some-effect/side-effect
> 
> well, we don't really know if there are tools parsing the output. The
> side-effect _does_ exist (i.e. you change the string :-), what we don't
> know is if this will cause problems to possibly existing tools.
> 
> Personally, I don't mind the patch, but if it breaks existing parsers,
> that would be a little annoying.
Thank you for the feedback.

I'll abandon the changes about dwc3 & xhci
> 



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-03-20  7:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-19  7:44 [PATCH v2] usb: introduce usb_ep_type_string() function Chunfeng Yun
2019-03-19  7:54 ` Chunfeng Yun
2019-03-19  9:23   ` Greg Kroah-Hartman
2019-03-20  1:16     ` Chunfeng Yun
2019-03-20  6:55       ` Felipe Balbi
2019-03-20  7:49         ` Chunfeng Yun

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).