Re: [PATCH V5 5/5] USB: UHCI: Support big endian GRUSBHC HC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 17 May 2011, Jan Andersson wrote:

> This patch adds support for big endian GRUSBHC UHCI controllers.
> The HCD bus glue will probe the register interface to determine
> the endianness of the controller.
> 
> Tested on GR-LEON4-ITX board which has a controller with little endian
> interface and on custom LEON3 board with a BE controller.

...

> --- a/drivers/usb/host/uhci-grlib.c
> +++ b/drivers/usb/host/uhci-grlib.c
> @@ -25,6 +25,22 @@ static int uhci_grlib_init(struct usb_hcd *hcd)
>  {
>  	struct uhci_hcd *uhci = hcd_to_uhci(hcd);
>  
> +	/* Probe to see if we have a big or little endian controller. Bit 7
> +	 * of PORTSC is always 1 and 15:13 are always zero, so we have:
> +	 *
> +	 * 1------- 000----- -------- 000----- => Little endian mode HC
> +	 * 000----- 1------- 000----- -------- => Big endian mode HC
> +	 *
> +	 * We also need to take into account that readl will byte swap.
> +	 *
> +	 * If we detect a big endian register interface we also assume that
> +	 * the controller uses big endian descriptors.
> +	 */
> +	if (!(uhci_readl(uhci, USBPORTSC1) & 0x80)) {
> +		uhci->big_endian_mmio = 1;
> +		uhci->big_endian_desc = 1;
> +	}

Sorry for not noticing this earlier.  This is a 16-bit register, so
shouldn't you be accessing it with uhci_readw() instead of
uhci_readl()?

Then the comment could be shortened too, since only the first two byte 
values on each line would be needed and the line about readl could go 
away.

Apart from this minor detail, the patch series is fine with me.  You 
can resubmit this last patch if you want to fix it up, and Greg can add

Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>

to patches 1/5, 3/5, and 5/5.

Alan Stern


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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux