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 17/05/11 21:29, Alan Stern wrote:
> 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()?

The hardware allows reading both registers in one go with a 32-bit
access so the code above works. I used a 32-bit access since I had used
the same technique for a debug monitor where I was limited to 32-bit
accesses.

> 
> 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.

You are right that the comment could be shortened, but readw also
byteswaps so the remark about readl would just be changed to readw :-)

> 
> 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.
> 

Thank you. I want to test if I change to readw so that I don't make a
mistake with all the swaps that take place. I will resubmit this after
testing tomorrow - unless you can accept the use of readl() above.

Best regards,
  Jan
--
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