On Tue, 2018-03-27 at 10:30 +0300, Felipe Balbi wrote:
> Hi,
> 
> Benjamin Herrenschmidt <[email protected]> writes:
> 
> <snip>
> 
> > +static int ast_vhub_rep_desc(struct ast_vhub_ep *ep,
> > +                        u8 desc_type, u16 len)
> > +{
> > +   const void *desc;
> > +   size_t dsize;
> > +
> > +   EPDBG(ep, "GET_DESCRIPTOR(type:%d)\n", desc_type);
> > +   switch(desc_type) {
> > +   case USB_DT_DEVICE:
> > +           desc = &ast_vhub_dev_desc;
> > +           dsize = USB_DT_DEVICE_SIZE;
> > +           break;
> > +   case USB_DT_CONFIG:
> > +           desc = &ast_vhub_conf_desc;
> > +           dsize = AST_VHUB_CONF_DESC_SIZE;
> > +           break;
> > +   case USB_DT_HUB:
> > +           desc = &ast_vhub_hub_desc;
> > +           dsize = AST_VHUB_HUB_DESC_SIZE;
> > +           break;
> > +   default:
> > +           return std_req_stall;
> > +   }
> > +   if (dsize < len)
> > +           len = dsize;
> > +   /*
> > +    * This is our limit for hub replies in our current
> > +    * implementation, keeps things simpler.
> > +    */
> > +   if (WARN_ON(len >= AST_VHUB_EP0_MAX_PACKET))
> > +           len = AST_VHUB_EP0_MAX_PACKET - 1;
> > +
> > +   /*
> > +    * Copy first to EP buffer and send from there, so
> > +    * we can do some in-place patching if needed
> > +    */
> > +   memcpy(ep->buf, desc, len);
> 
> still fails to compile here the same way.
> 
> $ gcc --version
> gcc (Debian 7.3.0-12) 7.3.0

Hrm, no idea what to do about it short of installing myself a debian on
some machine here. Is that an x86 compiler or a cross compiler ?

It really looks like a compiler bug to me...

> > +
> > +   /* Patch it if forcing USB1 */
> > +   if (desc_type == USB_DT_DEVICE && ep->vhub->force_usb1)
> > +           ast_vhub_patch_dev_desc_usb1(ep->buf);
> > +
> > +   /* Shoot it from the EP buffer */
> > +   return ast_vhub_reply(ep, NULL, len);
> > +}
> > +
> > +/* copied from hdc.c */
> > +static unsigned
> > +ascii2desc(char const *s, u8 *buf, unsigned len)
> 
> seems it would be best to move this helper to usb common, or something
> like that. Copying is not a good idea.

Yeah I can do that, would have to pick a better name though ;-)

> > +static int ast_vhub_rep_string(struct ast_vhub_ep *ep,
> > +                          u8 string_id, u16 lang_id,
> > +                          u16 len)
> 
> spaces for indentation?

An accident, not sure how those snuck in, I'll fix.

Ben.

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to