Re: [PATCH 1/2] USB: Rework OHCI PPC OF for new bindings

Matt Sealey <[email protected]>
Newsgroups gmane.linux.usb.devel,gmane.linux.ports.ppc64.devel
Message-ID <[email protected]>
Valentine Barshak wrote:
> Rework ohci-ppc-of driver to use big-endian property instead of
> ohci-be/ohci-le compatible strings. Also remove unnecessary
> user-selectable USB_OHCI_HCD_PPC_OF_LE/BE stuff, because
> USB_OHCI_BIG_ENDIAN_DESC/MMIO should always be enabled for ppc
> and USB_OHCI_LITTLE_ENDIAN is selected for USB_OHCI_HCD_PCI by default.
> 
> Signed-off-by: Valentine Barshak <[email protected]>
> ---

[snip]

>  
>  config USB_UHCI_HCD
> diff -pruN linux-2.6.orig/drivers/usb/host/ohci-ppc-of.c linux-2.6/drivers/usb/host/ohci-ppc-of.c
> --- linux-2.6.orig/drivers/usb/host/ohci-ppc-of.c	2007-10-24 18:44:25.000000000 +0400
> +++ linux-2.6/drivers/usb/host/ohci-ppc-of.c	2007-10-24 19:32:21.000000000 +0400
> @@ -15,8 +15,8 @@
>  
>  #include <linux/signal.h>
>  
> -#include <asm/of_platform.h>
> -#include <asm/prom.h>
> +#include <linux/of.h>
> +#include <linux/of_platform.h>
>  
>  
>  static int __devinit
> @@ -91,15 +91,10 @@ ohci_hcd_ppc_of_probe(struct of_device *
>  	int irq;
>  
>  	int rv;
> -	int is_bigendian;
>  
>  	if (usb_disabled())
>  		return -ENODEV;
>  
> -	is_bigendian =
> -		of_device_is_compatible(dn, "ohci-bigendian") ||
> -		of_device_is_compatible(dn, "ohci-be");
> -
>  	dev_dbg(&op->dev, "initializing PPC-OF USB Controller\n");
>  
>  	rv = of_address_to_resource(dn, 0, &res);
> @@ -134,9 +129,10 @@ ohci_hcd_ppc_of_probe(struct of_device *
>  	}
>  
>  	ohci = hcd_to_ohci(hcd);
> -	if (is_bigendian) {
> +
> +	if (of_get_property(dn, "big-endian", NULL)) {
>  		ohci->flags |= OHCI_QUIRK_BE_MMIO | OHCI_QUIRK_BE_DESC;
> -		if (of_device_is_compatible(dn, "mpc5200-ohci"))
> +		if (of_device_is_compatible(dn, "mpc5200-usb-ohci"))
>  			ohci->flags |= OHCI_QUIRK_FRAME_NO;
>  	}

Just a note, this is a fairly destructive change and will stop the Efika
from having it's USB ports detected.

I've updated the Efika Device Tree Supplement script internally, but I
would really rather not have users be forced to update their kernel and
firmware quite so often just for what is, here, a merely aesthetic
change.

Can we just make sure real quickly that the changing of compatibles
doesn't break existing, not-easily-flashable firmwares?

At least work in 'mpc5200-ohci' for the endian check (it's always big
endian, but our device tree has no big-endian property by default and
does not contain mpc5200-usb-ohci or usb-ohci properties) otherwise we are
going to have users complain. To you guys.

-- 
Matt Sealey <[email protected]>
Genesi, Manager, Developer Relations

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.