lkml.org 
[lkml]   [2007]   [Sep]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Sleep problems with kernels >= 2.6.21 on powerpc
    Andrew Morton wrote:
    >> On 30 Aug 2007 22:42:46 +0200 "Tim Teulings" <rael@edge.ping.de> wrote:
    >> Hello!
    >>
    >>> I don't have traces at hand and due to lack of time cannot reproduce it
    >>> up to tomorrow. However this hint may speed up your analysis!
    >> Sorry for the delay, but my desktop PC had an urgent hard disk problem I
    >> had to fix ASASP.
    >>
    >> So here is the output from dmesg that suggested to me that firewire
    >> might be a problem:
    >
    > Straightforward regression, two reporters, nothing happening.

    Thanks for CCing me. I'm also adding the CC of Kristian, author and
    other maintainer of the code in question.

    >>> usb_endpoint usbdev2.2_ep81: PM: suspend 0->2, parent 2-1:1.0 already 2
    >>> usb_device usbdev1.1: PM: suspend 0->2, parent usb1 already 2
    >>> usb_endpoint usbdev1.1_ep81: PM: suspend 0->2, parent 1-0:1.0 already 2
    >>> hub 1-0:1.0: PM: suspend 2->2, parent usb1 already 2
    >>> usb_endpoint usbdev1.1_ep00: PM: suspend 0->2, parent usb1 already 2
    >>> eth2: Airport entering sleep mode
    >>> eth0: suspending, WakeOnLan disabled
    >>> pci_set_power_state(): 0002:20:0e.0: state=3, current state=5
    >>> firewire_ohci: pci_set_power_state failed with -22<3>pci_device_suspend(): pci_suspend+0x0/0x9c [firewire_ohci]() returns -22
    >>> suspend_device(): pci_device_suspend+0x0/0x98() returns -22
    >>> Could not suspend device 0002:20:0e.0: error -22
    >>> eth0: resuming
    >>> PHY ID: 4061e4, addr: 0
    >>> eth2: Airport waking up
    >>> eth2: New link status: Connected (0001)
    >>> hda: Enabling Ultra DMA 2
    >>> eth0: Link is up at 100 Mbps, full-duplex.
    >>> eth0: Pause is disabled
    >>> ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    >>> hdb: Enabling Ultra DMA 2
    >>> usb_endpoint usbdev1.1_ep00: PM: resume from 0, parent usb1 still 2
    >>> usb_endpoint usbdev1.1_ep81: PM: resume from 0, parent 1-0:1.0 still 2
    >>> usb_device usbdev1.1: PM: resume from 0, parent usb1 still 2
    >>> Driver sleep failed
    >>> Sleep rejected by devices
    >>> adb: starting probe task...
    >>> adb devices: [2]: 2 c4 [3]: 3 1 [7]: 7 1f
    >>> ADB keyboard at 2, handler 1
    >>> ADB mouse at 3, handler set to 4 (trackpad)
    >>> adb: finished probe task...
    >>> usb_device usbdev1.1: PM: suspend 0->2, parent usb1 already 2
    >>> usb_endpoint usbdev1.1_ep81: PM: suspend 0->2, parent 1-0:1.0 already 2
    >>> hub 1-0:1.0: PM: suspend 2->2, parent usb1 already 2
    >>> usb_endpoint usbdev1.1_ep00: PM: suspend 0->2, parent usb1 already 2
    >>> eth2: Airport entering sleep mode
    >>> eth0: suspending, WakeOnLan disabled
    >>> Trying to free already-free IRQ 40
    >>> pci_set_power_state(): 0002:20:0e.0: state=3, current state=5
    >>> firewire_ohci: pci_set_power_state failed with -22<3>pci_device_suspend(): pci_suspend+0x0/0x9c [firewire_ohci]() returns -22
    >
    > I grepped the whole tree for firewire_ohci and came up blank. What is it?

    drivers/firewire/fw-ohci.c -> fw-ohci.o -> firewire-ohci.o ->
    firewire-ohci.ko

    > But yes, a failed pci_set_power_state() will hurt. Perhaps this is
    > a result of some recently-added return-value checking fix but as I
    > cannot find the dang code I cannot tell.

    The old ohci1394.c used to ignore pci_set_power_state's return value.
    In the pre 2.6.19-rc1 commit ea6104c22468239083857fa07425c312b1ecb424, I
    added a fail-on-error. This was toned down to a printk-on-err by pre
    2.6.19-rc4 commit 346f5c7ee7fa4ebee0e4c96415a7e59716bfa1d0.

    This was because of Benjamin Herrenschmidt's regression report:
    http://lkml.org/lkml/2006/10/24/13

    So, we went into the same trap again with fw-ohci. I should have
    noticed how fw-ohci treats pci_set_power_state when I signed off the
    commit which added the suspend/resume methods to fw-ohci --- but somehow
    I didn't.

    >>> suspend_device(): pci_device_suspend+0x0/0x98() returns -22
    >>> Could not suspend device 0002:20:0e.0: error -22
    >>> eth0: resuming
    >>> PHY ID: 4061e4, addr: 0
    >>> eth2: Airport waking up
    >>> eth2: New link status: Connected (0001)
    >>> hda: Enabling Ultra DMA 2
    >>> hdb: Enabling Ultra DMA 2
    >>> eth0: Link is up at 100 Mbps, full-duplex.
    >>> eth0: Pause is disabled
    >> The problem wa sinitiated by closing the lid. The iBook then seems to
    >> permanetly try to go to sleep (I can hear the cd-rom drive get
    >> periodically initialized). So above contains more than one iteration.
    >>
    >> The kernel is:
    >>> Linux kismet 2.6.22-1-powerpc #1 Sun Jul 29 13:58:06 CEST 2007 ppc GNU/Linux
    >> The relveant debian package:
    >>> linux-image-2.6.22-1-powerpc_2.6.22-3_powerpc.deb
    >> I'm running a mixture of debian testing/unstable.
    >>
    >> The firewire and the USB connector were unused, the network connector
    >> was used.
    >>
    >> If there are questions regarding other packages, or somebody wants me to
    >> test a fix (I would prever a debian package), don't hesitate - I would
    >> like to get the bug fixed :-)
    >>

    A trivial post -rc1 compatible fix is coming in a minute.
    --
    Stefan Richter
    -=====-=-=== =--= --=-=
    http://arcgraph.de/sr/
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-09-05 19:51    [W:0.031 / U:119.652 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site