On Tue, 2004-11-30 at 09:40 +0200, Olav Kongas wrote: 
> Hi,
> 
> > ohci-isp1xxx-emu.c) in mine, but there still is something not going
> > well, that keeps me from reaching your status. I'll describe my problem,
> > hoping that someone has a better understanding of my situation:
> >
> > In summary, my HCD never reaches USBOperational state. I have a good IO
> 
> Just a wild guess - have you initialized the HCFMINTVL
> register.

Yes. I declared the following function:

static inline void ohci_write_fminterval(struct ohci_hcd *ohci, u32 val)
{
  unsigned long flags;
  
  local_irq_save(flags);
  __ohci_isp1160_write_reg(ohci, fminterval, HCFMINTVL, val);
  ohci->fminterval = val;
  local_irq_restore(flags);
}

I'm using it here:

static int ohci_isp1160_reset (struct usb_hcd *hcd)
{
  int retval;
  struct ohci_hcd *ohci = hcd_to_ohci(hcd);

  ohci->regs = hcd->regs;
  isp1160_reset_hc(hcd, 1); // initialize controller registers

  ohci_write_fminterval(ohci, DEFAULT_FMINTERVAL);

  retval = hc_reset(ohci);
  
  return retval;
}

The purpose for all of this is that when hc_reset() of ohci-hcd.c comes
to :

        if (!ohci->fminterval) {
                temp = ohci_readl (&ohci->regs->fminterval);
                if (temp & 0x3fff0000)
                        ohci->fminterval = temp;
                else
                        ohci->fminterval = DEFAULT_FMINTERVAL;
                /* also: power/overcurrent flags in roothub.a */
        }

everything would be already OK and it would keep on going? Do you thing
it's wrong?


-- 
Dimitris Lampridis <[EMAIL PROTECTED]>

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to