On Wed, 14 Mar 2007, Lei Sun wrote:

> Hi :
>   I have a customized xscale based board, with philips ISP1562 PCI USB 
> controller, I am using linux-2.6.17.8 without "CONFIG_PM" option.
>   When booting up with a flash drive plugged, the kernel seems to be able 
> detect and configure the host controller correctly, but it's not be able to 
> detect the flash device.
>   I added some debugging code in "ehci_irq" function, here is what happened.
> 
> 1. ehci_irq is called, with status = 0x00000004 , corresponds to "PCD: Port 
> Change Detected"
> 
> 2. read from command register returned 10009, corresponds to controller is 
> in "RUN" mode.
> 
> 3. Read port status register (2 ports total), port#1 return 0, port#2 
> returned 1002,  by looking at the code bellow:
> 
>             status = readl (&ehci->regs->port_status [i]);
>     634             if (status & PORT_OWNER)
>     635                 continue;
>     636             if (!(status & PORT_RESUME)
>     637                     || ehci->reset_done [i] != 0)
>     638                 continue;
>     639
>     640             /* start 20 msec resume signaling from this port,
>     641              * and make khubd collect PORT_STAT_C_SUSPEND to
>     642              * stop that signaling.
>     643              */
>     644             ehci->reset_done [i] = jiffies + msecs_to_jiffies (20);
>     645             ehci_dbg (ehci, "port %d remote wakeup\n", i + 1);
>     648             usb_hcd_resume_root_hub(hcd);
> 
> 
> The code expects the PORT_RESUME of the status register to be set, thus to 
> resume root hub, however that bit i read from status register is not set! 
> Could this related to hardware ?

This problem has been fixed in 2.6.20.

> Another question is, Do I HAVE TO enable "CONFIG_PM" to make this piece of 
> code working? Because if CONFIG_PM is not defined , the 
> "usb_hcd_resume_root_hub() " does nothing.

You don't need to have CONFIG_PM turned on.

> Onemore thing troubles me is that why the ports are powered down after ehci 
> driver is loaded , i didn't enable PM option!

What makes you think the port is powered down?  You said yourself that the 
status was 0x1002.  The 0x1000 bit is PORT POWER, so the port is powered 
on.

>  Bellow is the bootup log 
> related to EHCI portion. Please shed some lights on me , or direct me to the 
> right list!

You should test the ehci_hub_status_data() function.  That's where a 
newly-connected device gets reported.

Alan Stern


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Linux-usb-users@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to