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/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel