lkml.org 
[lkml]   [2011]   [Feb]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v5] EHCI bus glue for on-chip PMC MSP USB controller
    On Tue, Feb 22, 2011 at 09:05:33PM +0530, Anoop P.A wrote:
    > From: Anoop <paanoop1@paanoop1-desktop.(none)>
    >
    > This patch add bus glue for USB controller commonly found in PMC-Sierra MSP71xx family of SoC's.
    >
    >
    > Signed-off-by: Anoop P A <anoop.pa@gmail.com>
    > ---
    > Changes.
    > ehci-pmcmsp.c is based on latest ehci-pci.c.Addressed some stylistic issue pointed by Greg.
    > Addressed comments from Matthieu CASTET.

    Could you spell that out more completely next time?

    > +config USB_EHCI_HCD_PMC_MSP
    > + tristate "EHCI support for on-chip PMC MSP USB controller"

    Better to say "EHCI support for on-chip PMC-Sierra MSP71xx USB controllers"

    > + depends on USB_EHCI_HCD && MSP_HAS_USB
    > + default y

    New features always default to No.

    > +#include <msp_usb.h>

    Cannot find the msp_usb.h in linux-next. Doesn't compile.

    > +static void usb_hcd_tdi_set_mode(struct ehci_hcd *ehci)
    > +{
    > + u8 *base;
    > + u8 *statreg;
    > + u8 *fiforeg;
    > + u32 val;
    > + struct ehci_regs *reg_base = ehci->regs;
    > +
    > + /* get register base */
    > + base = (u8 *)reg_base + USB_EHCI_REG_USB_MODE;
    > + statreg = (u8 *)reg_base + USB_EHCI_REG_USB_STATUS;
    > + fiforeg = (u8 *)reg_base + USB_EHCI_REG_USB_FIFO;
    > +
    > + /* Disable controller mode stream */
    > + val = ehci_readl(ehci, (u32 *)base);

    It doesn't compile so I can't test this, but I think that this will
    cause a sparse warning. "base" should have an __iomem tag. Please
    run sparse on this driver.

    > +/* called after powerup, by probe or system-pm "wakeup" */
    > +static int ehci_msp_reinit(struct ehci_hcd *ehci)
    > +{
    > + ehci_port_power(ehci, 0);
    > +
    > + return 0;

    Better to make this function void.

    > +}
    > +
    > +/* called during probe() after chip reset completes */
    > +static int ehci_msp_setup(struct usb_hcd *hcd)
    > +{
    > + struct ehci_hcd *ehci = hcd_to_ehci(hcd);
    > + u32 temp;
    > + int retval;

    Needs a blank line here to separate declarations from code.

    > + ehci->big_endian_mmio = 1;
    > + ehci->big_endian_desc = 1;
    > +
    > + ehci->caps = hcd->regs;
    > + ehci->regs = hcd->regs +
    > + HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase));

    [snip]

    > + /* data structure init */
    > + retval = ehci_init(hcd);
    > + if (retval)
    > + return retval;
    > +
    > + temp = HCS_N_CC(ehci->hcs_params) * HCS_N_PCC(ehci->hcs_params);
    > + temp &= 0x0f;

    companion HCs * ports per CC & 0xf?

    What's the &= 0x0f for? It's left out of the printk.

    > + if (temp && HCS_N_PORTS(ehci->hcs_params) > temp) {
    > + ehci_dbg(ehci, "bogus port configuration: "
    > + "cc=%d x pcc=%d < ports=%d\n",
    > + HCS_N_CC(ehci->hcs_params),
    > + HCS_N_PCC(ehci->hcs_params),
    > + HCS_N_PORTS(ehci->hcs_params));
    > + }

    [snip]

    > +/*-------------------------------------------------------------------------*/

    No need for these blank comments.

    > +
    > +static void msp_start_hc(struct platform_device *dev)
    > +{
    > +}
    > +
    > +static void msp_stop_hc(struct platform_device *dev)
    > +{
    > +}
    > +

    I don't understand the point of these empty functions.

    > +static int ehci_msp_suspend(struct device *dev)
    > +{
    > + struct usb_hcd *hcd = dev_get_drvdata(dev);
    > + struct ehci_hcd *ehci = hcd_to_ehci(hcd);
    > + unsigned long flags;
    > + int rc;
    > +
    > + return 0;
    > + rc = 0;
    > +
    > + if (time_before(jiffies, ehci->next_statechange))
    > + usleep(10000);

    Is there still a usleep() function? Either way, can you send us
    something that compiles on linux-next?

    regards,
    dan carpenter




    \
     
     \ /
      Last update: 2011-02-22 21:07    [W:0.029 / U:122.132 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site