usb/gadget: Add driver for Aspeed SoC virtual hub
PATCH v7 1/1 usb/gadget: Add driver for Aspeed SoC virtual hub
Quoted 46 lines · Felipe Balbi
Hi,
Benjamin Herrenschmidt <[email protected]> writes:
<snip>
Quoted 27 lines
(quoted diff) +27
-0+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 currentReview
Quoted 10 lines
(quoted diff) +10
-0+ * 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.
Quoted 2 lines
$ 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...
Quoted 7 lines
Quoted 7 lines
(quoted diff) +7
-0+ + /* 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);
Quoted 8 lines
Review
Quoted 5 lines
(quoted diff) +5
-0+} + +/* 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 ;-)
Quoted 5 lines
Review
Quoted 3 lines
(quoted diff) +3
-0+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