lkml.org 
[lkml]   [2011]   [Apr]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 4/5] usb/gadget: don't deploy SS descriptors if SS is not enabled.
Hello.

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

> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> ---
> 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


\
 
 \ /
  Last update: 2011-04-13 12:51    [W:0.089 / U:0.236 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site