Oleksandr, I made the following changes to remove some warnings from your DWC2 driver. I'm not sure they're correct; perhaps they expose some bugs...
> diff --git a/drivers/usb/host/dwc_otg-hcd.c b/drivers/usb/host/dwc_otg-hcd.c > index a964681..e3c26f3 100644 > --- a/drivers/usb/host/dwc_otg-hcd.c > +++ b/drivers/usb/host/dwc_otg-hcd.c > @@ -249,7 +249,6 @@ static int dwc_otg_submit_rh_msg(struct usb_device *dev, > unsigned long pipe, > int stat = 0; > __u16 bmRType_bReq; > __u16 wValue; > - __u16 wIndex; > __u16 wLength; > unsigned char data[32]; > hprt0_data_t hprt0 = {.d32 = 0 }; > @@ -261,7 +260,6 @@ static int dwc_otg_submit_rh_msg(struct usb_device *dev, > unsigned long pipe, > > bmRType_bReq = cmd->requesttype | (cmd->request << 8); > wValue = cpu_to_le16 (cmd->value); > - wIndex = cpu_to_le16 (cmd->index); > wLength = cpu_to_le16 (cmd->length); > > switch (bmRType_bReq) { Perhaps wIndex should be used? > @@ -598,7 +596,6 @@ int submit_control_msg(struct usb_device *dev, unsigned > long pipe, void *buffer, > hctsiz_data_t hctsiz; > dwc_otg_host_if_t *host_if = g_core_if.host_if; > dwc_otg_hc_regs_t *hc_regs = host_if->hc_regs[CHANNEL]; > - hcint_data_t hcint; > hcint_data_t hcint_new; > /* For CONTROL endpoint pid should start with DATA1 */ > int status_direction; > @@ -632,9 +629,6 @@ int submit_control_msg(struct usb_device *dev, unsigned > long pipe, void *buffer, > hcchar.d32 = dwc_read_reg32(&hc_regs->hcchar); > hcchar.b.multicnt = 1; > > - /* Remember original int status */ > - hcint.d32 = dwc_read_reg32(&hc_regs->hcint); Does this read have a side-effect; should I keep the call to dwc_read_reg32(), but just remove the assignment? The comment implies this value is saved so that it can be restored later. However, I don't see anywhere that restores it; does that code need to be added? > - > /* Set host channel enable after all other setup is complete. */ > hcchar.b.chen = 1; > hcchar.b.chdis = 0; > @@ -677,8 +671,6 @@ int submit_control_msg(struct usb_device *dev, unsigned > long pipe, void *buffer, > hcchar.d32 = dwc_read_reg32(&hc_regs->hcchar); > hcchar.b.multicnt = 1; > > - hcint.d32 = dwc_read_reg32(&hc_regs->hcint); > - > /* Set host channel enable after all other setup is complete. */ > hcchar.b.chen = 1; > hcchar.b.chdis = 0; > @@ -731,8 +723,6 @@ int submit_control_msg(struct usb_device *dev, unsigned > long pipe, void *buffer, > hcchar.d32 = dwc_read_reg32(&hc_regs->hcchar); > hcchar.b.multicnt = 1; > > - hcint.d32 = dwc_read_reg32(&hc_regs->hcint); > - > /* Set host channel enable after all other setup is complete. */ > hcchar.b.chen = 1; > hcchar.b.chdis = 0; _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot