On Sat, 2009-03-07 at 13:01 +0300, Sergei Shtylyov wrote:
> Hello.
>
> Kevin Hickey wrote:
>
> > Adds support for USB 2.0 on the Au1300 SOC.
> >
> > Signed-off-by: Kevin Hickey <khickey@rmicorp.com>
> >
> [...]
> > diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
> > index 83babb0..a50d053 100644
> > --- a/drivers/usb/Kconfig
> > +++ b/drivers/usb/Kconfig
> > @@ -55,6 +55,7 @@ config USB_ARCH_HAS_EHCI
> > boolean
> > default y if PPC_83xx
> > default y if SOC_AU1200
> > + default y if SOC_AU13XX
> >
>
> Why not:
>
> default y if SOC_AU1200 || SOC_AU13XX
>
I was just following the pattern... there were already two other
explicit "default y if" lines.
>
> > diff --git a/drivers/usb/host/ehci-au13xx.c b/drivers/usb/host/ehci-au13xx.c
> > new file mode 100644
> > index 0000000..fe03667
> > --- /dev/null
> > +++ b/drivers/usb/host/ehci-au13xx.c
> > @@ -0,0 +1,213 @@
> > +/*
> > + * Copyright 2008 RMI Corporation
> > + * Author: Kevin Hickey <khickey@rmicorp.com>
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > it
> > + * under the terms of the GNU General Public License as published by
> > the
> > + * Free Software Foundation; either version 2 of the License, or (at
> > your
> > + * option) any later version.
> > + *
> > + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
> > + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> > OF
> > + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
> > IN
> > + * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
> > + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
> > BUT
> > + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
> > OF
> > + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> > ON
> > + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
> > TORT
> > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> > OF
> > + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> > + *
> > + * You should have received a copy of the GNU General Public License
> > along
> > + * with this program; if not, write to the Free Software Foundation,
> > Inc.,
> > + * 675 Mass Ave, Cambridge, MA 02139, USA.
> > + *
> > + * Based on ehci-au1xxx.c.
> > + */
> > +
> > +#include <linux/platform_device.h>
> > +#include <asm/mach-au1x00/au1000.h>
> > +
> > +
> > +extern int usb_disabled(void);
> > +
> > +static void au13xx_start_ehc(void)
> > +{
> > + AU13XX_USB* au13xx_usb = (AU13XX_USB*)(KSEG1 | USB_BASE_PHYS_ADDR);
> >
>
> Your coding style is not acceptable -- run your patched thru
> scruipts/checkpatch.pl please.
Sorry about that.
>
> > + /*
> > + * Enable clocks.
> > + */
> > + AU_SET_BITS_32(USB_DWC_CTRL3_EHC_CLKEN, &au13xx_usb->dwc_ctrl3);
> > +
> > + /*
> > + * Take the host controller block out of reset
> > + */
> > + AU_SET_BITS_32(USB_DWC_CTRL1_HSTRS, &au13xx_usb->dwc_ctrl1);
> > +
> > + /*
> > + * Enable all of the PHYs
> > + */
> > + AU_SET_BITS_32(USB_DWC_CTRL2_PHYRS | USB_DWC_CTRL2_PHY0RS |
> > USB_DWC_CTRL2_PH1RS,
> > + &au13xx_usb->dwc_ctrl2);
> > +
> > + /*
> > + * Enable interrupts
> > + */
> > + AU_SET_BITS_32(USB_INTR_EHCI, &au13xx_usb->intr_enable);
> > +
> > + /*
> > + * This bit enables coherent DMA.
> > + */
> > + AU_SET_BITS_32(USB_SBUS_CTRL_SBCA, &au13xx_usb->sbus_ctrl);
> > + asm("sync");
> >
>
> Don't we have au_sync()?
Yes, and I should have used it here :)
>
> > +static int ehci_hcd_au13xx_drv_probe(struct platform_device *pdev)
> > +{
> >
> [...]
> > + au13xx_start_ehc();
> > +
> > + ehci = hcd_to_ehci(hcd);
> > + ehci->caps = hcd->regs;
> > + ehci->regs = hcd->regs + HC_LENGTH(readl(&ehci->caps->hc_capbase));
> > + printk("ehci->regs = %p\n", ehci->regs);
> >
>
> printk() should have KERN_* facility.
Agreed. In fact this is probably just leftover bringup/debug code that
should be eliminated.
>
> > +static struct platform_driver ehci_hcd_au13xx_driver = {
> > + .probe = ehci_hcd_au13xx_drv_probe,
> > + .remove = ehci_hcd_au13xx_drv_remove,
> > + .shutdown = usb_hcd_platform_shutdown,
> > + .suspend = NULL,
> > + .resume = NULL,
> >
>
> No dire need to explicitly initializer these two...
Copy-paste laziness strikes again...
>
> WBR, Sergei
>
>
--
Kevin Hickey
Alchemy Solutions
RMI Corporation
khickey@rmicorp.com
P: 512.691.8044
|