U-Boot DWC2 warning removal

Stephen Warren swarren at wwwdotorg.org
Tue Feb 4 01:42:20 EST 2014


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;




More information about the linux-rpi-kernel mailing list