On Monday 10 July 2006 9:16 am, Alan Stern wrote:
> Dave:
>
> It seems to me that none of the calls to usb_resume_root_hub() below are
> really needed. Is there any reason not to remove them?
I'll have to re-test a lot of configurations to be sure, but the basic
reason for having those calls is to make sure khubd does its part of
re-activating the root hub. Even in "selective suspend" scenarios, the
kind that are mostly triggered through /sys/devices/.../power/state writes.
The reason not to remove them is lack of time to test all the various
configurations of half a dozen different drivers, several including
hardware I don't have (and with infrequent maintainance). Plus, even
if those calls aren't needed, it's not like it hurts anything to have
khubd look at a root hub now and then!
- Dave
> Alan Stern
>
>
>
> Index: usb-2.6/drivers/usb/host/ehci-pci.c
> ===================================================================
> --- usb-2.6.orig/drivers/usb/host/ehci-pci.c
> +++ usb-2.6/drivers/usb/host/ehci-pci.c
> @@ -277,10 +277,8 @@ static int ehci_pci_resume(struct usb_hc
> status = readl(&ehci->regs->port_status [port]);
> if (!(status & PORT_POWER))
> continue;
> - if (status & (PORT_SUSPEND | PORT_RESUME | PORT_OWNER)) {
> - usb_hcd_resume_root_hub(hcd);
> + if (status & (PORT_SUSPEND | PORT_RESUME | PORT_OWNER))
> return 0;
> - }
> }
>
> restart:
> Index: usb-2.6/drivers/usb/host/ohci-hub.c
> ===================================================================
> --- usb-2.6.orig/drivers/usb/host/ohci-hub.c
> +++ usb-2.6/drivers/usb/host/ohci-hub.c
> @@ -567,9 +564,6 @@ static int ohci_hub_control (
> break;
> case USB_PORT_FEAT_SUSPEND:
> temp = RH_PS_POCI;
> - if ((ohci->hc_control & OHCI_CTRL_HCFS)
> - != OHCI_USB_OPER)
> - usb_hcd_resume_root_hub(hcd);
> break;
> case USB_PORT_FEAT_C_SUSPEND:
> temp = RH_PS_PSSC;
> Index: usb-2.6/drivers/usb/host/ohci-omap.c
> ===================================================================
> --- usb-2.6.orig/drivers/usb/host/ohci-omap.c
> +++ usb-2.6/drivers/usb/host/ohci-omap.c
> @@ -487,7 +487,6 @@ static int ohci_omap_resume(struct platf
>
> omap_ohci_clock_power(1);
> dev->power.power_state = PMSG_ON;
> - usb_hcd_resume_root_hub(dev_get_drvdata(dev));
> return 0;
> }
>
> Index: usb-2.6/drivers/usb/host/ohci-pxa27x.c
> ===================================================================
> --- usb-2.6.orig/drivers/usb/host/ohci-pxa27x.c
> +++ usb-2.6/drivers/usb/host/ohci-pxa27x.c
> @@ -348,7 +348,6 @@ static int ohci_hcd_pxa27x_drv_resume(st
> return status;
>
> pdev->dev.power.power_state = PMSG_ON;
> - usb_hcd_resume_root_hub(hcd);
>
> return 0;
> }
> Index: usb-2.6/drivers/usb/host/ohci-pci.c
> ===================================================================
> --- usb-2.6.orig/drivers/usb/host/ohci-pci.c
> +++ usb-2.6/drivers/usb/host/ohci-pci.c
> @@ -146,7 +146,6 @@ static int ohci_pci_suspend (struct usb_
> static int ohci_pci_resume (struct usb_hcd *hcd)
> {
> set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
> - usb_hcd_resume_root_hub(hcd);
> return 0;
> }
>
> Index: usb-2.6/drivers/usb/host/ohci-ep93xx.c
> ===================================================================
> --- usb-2.6.orig/drivers/usb/host/ohci-ep93xx.c
> +++ usb-2.6/drivers/usb/host/ohci-ep93xx.c
> @@ -192,7 +192,6 @@ static int ohci_hcd_ep93xx_drv_resume(st
>
> ep93xx_start_hc(&pdev->dev);
> pdev->dev.power.power_state = PMSG_ON;
> - usb_hcd_resume_root_hub(hcd);
>
> return 0;
> }
>
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel