Re: [PATCH 4/5] usb/gadget: don't deploy SS descriptors if SS is not enabled.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello.

On 12-04-2011 23:34, Sebastian Andrzej Siewior wrote:

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
---
  drivers/usb/gadget/composite.c |    4 ++++
  1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 92cc238..ac30e2f 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -74,10 +74,12 @@ MODULE_PARM_DESC(iSerialNumber, "SerialNumber string");
  static char composite_manufacturer[50];

  /* Default endpoint companion descriptor */
+#ifdef CONFIG_USB_GADGET_SUPERSPEED
  static struct usb_ss_ep_comp_descriptor default_ep_comp_desc = {
  		.bDescriptorType = USB_DT_SS_ENDPOINT_COMP,
  		.bLength = sizeof(struct usb_ss_ep_comp_descriptor),
  };
+#endif

  /**
   * usb_create_ss_descriptors() - Generate SuperSpeed descriptors
@@ -93,6 +95,7 @@ static struct usb_ss_ep_comp_descriptor default_ep_comp_desc = {
   */
  void usb_create_ss_descriptors(struct usb_function *f)
  {
+#ifdef CONFIG_USB_GADGET_SUPERSPEED
  	struct usb_ss_ep_comp_descriptor	*ep_comp_desc;
  	struct usb_endpoint_descriptor		*ep_desc;
  	struct usb_descriptor_header		**src = f->hs_descriptors;
@@ -185,6 +188,7 @@ void usb_create_ss_descriptors(struct usb_function *f)
  	 */
  	*tmp = NULL;
  	f->ss_desc_allocated = true;
+#endif

   Documentation/SubmittingPatches says this:

2) #ifdefs are ugly

Code cluttered with ifdefs is difficult to read and maintain.  Don't do
it.  Instead, put your ifdefs in a header, and conditionally define
'static inline' functions, or macros, which are used in the code.
Let the compiler optimize away the "no-op" case.

Simple example, of poor code:

	dev = alloc_etherdev (sizeof(struct funky_private));
	if (!dev)
		return -ENODEV;
	#ifdef CONFIG_NET_FUNKINESS
	init_funky_net(dev);
	#endif

Cleaned-up example:

(in header)
	#ifndef CONFIG_NET_FUNKINESS
	static inline void init_funky_net (struct net_device *d) {}
	#endif

(in the code itself)
	dev = alloc_etherdev (sizeof(struct funky_private));
	if (!dev)
		return -ENODEV;
	init_funky_net(dev);

WBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux