On Sunday 20 May 2007, Pete Zaitcev wrote: > On Fri, 18 May 2007 14:23:43 -0700, "Mark Miesfeld" <[EMAIL PROTECTED]> wrote: > > And this is the part which implements poking: > > > +++ b/drivers/usb/host/ohci-ppc-soc.c > > @@ -20,6 +20,37 @@ #include <linux/signal.h> > > /* always called with process context; sleeping is OK */ > > > > +#ifdef CONFIG_USB_PPC440EPX_USBH_23_ERRATA > > +struct ohci_hcd *cached_ohci = NULL; > > +#define HCFS_SUSPEND 0 > > +#define HCFS_OPERATIONAL 1 > > > +void ohci_ppc_set_hcfs(int state) { > > + u32 hc_control; > > + > > + hc_control = (ohci_readl(cached_ohci, &cached_ohci->regs->control) > > + & ~OHCI_CTRL_HCFS); > > + > > + switch ( state ) { > > + case HCFS_SUSPEND: > > + hc_control |= OHCI_USB_SUSPEND; > > + break; > > + case HCFS_OPERATIONAL : > > + hc_control |= OHCI_USB_OPER;
So, basically you'll turn on OHCI hardware without having the driver know that it's on ... ? This looks almost certain to break something -- deeply. If you're going to turn on the OHCI hardware, do it the normal way; don't bypass its driver. - Dave > > + break; > > + default: > > + /* this is unexpected, shoud never happen */ > > + hc_control |= OHCI_USB_SUSPEND; > > + break; > > + } > > + > > + /* write the new state and flush the write. */ > > + ohci_writel(cached_ohci, hc_control, &cached_ohci->regs->control); > > + (void) ohci_readl(cached_ohci, &cached_ohci->regs->control); > > +} > > +EXPORT_SYMBOL (ohci_ppc_set_hcfs); > ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel