On Wed, 2011-02-09 at 16:10 +0100, Matthieu CASTET wrote: > Anoop P.A a Ãcrit : > > > config XPS_USB_HCD_XILINX > > diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c > > index 6fee3cd..a591890 100644 > > --- a/drivers/usb/host/ehci-hcd.c > > +++ b/drivers/usb/host/ehci-hcd.c > > @@ -262,6 +262,8 @@ static void tdi_reset (struct ehci_hcd *ehci) > > if (ehci_big_endian_mmio(ehci)) > > tmp |= USBMODE_BE; > > ehci_writel(ehci, tmp, reg_ptr); > > + if (ehci->pmc_msp_tdi) > > + usb_hcd_tdi_set_mode(ehci); > > } > This is ugly to add callback to your driver here. > How this will build on other platform, usb_hcd_tdi_set_mode is only > defined on ehci-pmcmsp.c I got that will remove it from patch and resend.the patch got carried from an older kernel :( . Thanks > > > > +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; > > + > > + /* set the controller to host mode and BIG ENDIAN */ > > + ehci_writel(ehci, (USB_CTRL_MODE_HOST | USB_CTRL_MODE_BIG_ENDIAN > > + | USB_CTRL_MODE_STREAM_DISABLE), (u32 *)base); > > + > We have done that in tdi_reset, why do you do it again ? > > > Matthieu