2007-10-28 00:00:40

by Oliver Martin

[permalink] [raw]
Subject: USB_SUSPEND needs SUSPEND?

Hello,

it seems that there is some dependency missing for CONFIG_USB_SUSPEND.
When I compile a kernel without CONFIG_SUSPEND, USB suspend doesn't work
(or at least doesn't expose its interface to userspace).
/sys/bus/usb/devices/.../power doesn't exist, but it is there when I
enable CONFIG_SUSPEND. So should CONFIG_USB_SUSPEND depend on
CONFIG_SUSPEND (or something selected by CONFIG_SUSPEND)?

diff between the two configs follows, full config and dmesg for both
kernels is available at http://stud4.tuwien.ac.at/~e0626486/usb_suspend/
(though the dmesg diff doesn't seem to be all that interesting).


--- /boot/config-2.6.23.1-nosuspend
+++ /boot/config-2.6.23.1-suspend
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.23.1
-# Sat Oct 27 23:59:11 2007
+# Sat Oct 27 22:45:27 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
@@ -30,7 +30,7 @@
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION="-nosuspend"
+CONFIG_LOCALVERSION="-suspend"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
@@ -229,11 +229,13 @@
CONFIG_PM=y
CONFIG_PM_LEGACY=y
# CONFIG_PM_DEBUG is not set
+CONFIG_PM_SLEEP=y
CONFIG_SUSPEND_UP_POSSIBLE=y
-# CONFIG_SUSPEND is not set
+CONFIG_SUSPEND=y
CONFIG_HIBERNATION_UP_POSSIBLE=y
# CONFIG_HIBERNATION is not set
CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=m
@@ -255,6 +257,7 @@
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=m
CONFIG_ACPI_SBS=m
+# CONFIG_APM is not set

#
# CPU Frequency scaling


--
Oliver


2007-10-28 13:19:25

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: USB_SUSPEND needs SUSPEND?

On Sunday, 28 October 2007 02:00, Oliver Martin wrote:
> Hello,
>
> it seems that there is some dependency missing for CONFIG_USB_SUSPEND.
> When I compile a kernel without CONFIG_SUSPEND, USB suspend doesn't work
> (or at least doesn't expose its interface to userspace).
> /sys/bus/usb/devices/.../power doesn't exist, but it is there when I
> enable CONFIG_SUSPEND. So should CONFIG_USB_SUSPEND depend on
> CONFIG_SUSPEND (or something selected by CONFIG_SUSPEND)?
>
> diff between the two configs follows, full config and dmesg for both
> kernels is available at http://stud4.tuwien.ac.at/~e0626486/usb_suspend/
> (though the dmesg diff doesn't seem to be all that interesting).

Some CCs added.

> --- /boot/config-2.6.23.1-nosuspend
> +++ /boot/config-2.6.23.1-suspend
> @@ -1,7 +1,7 @@
> #
> # Automatically generated make config: don't edit
> # Linux kernel version: 2.6.23.1
> -# Sat Oct 27 23:59:11 2007
> +# Sat Oct 27 22:45:27 2007
> #
> CONFIG_X86_32=y
> CONFIG_GENERIC_TIME=y
> @@ -30,7 +30,7 @@
> CONFIG_EXPERIMENTAL=y
> CONFIG_BROKEN_ON_SMP=y
> CONFIG_INIT_ENV_ARG_LIMIT=32
> -CONFIG_LOCALVERSION="-nosuspend"
> +CONFIG_LOCALVERSION="-suspend"
> # CONFIG_LOCALVERSION_AUTO is not set
> CONFIG_SWAP=y
> CONFIG_SYSVIPC=y
> @@ -229,11 +229,13 @@
> CONFIG_PM=y
> CONFIG_PM_LEGACY=y
> # CONFIG_PM_DEBUG is not set
> +CONFIG_PM_SLEEP=y
> CONFIG_SUSPEND_UP_POSSIBLE=y
> -# CONFIG_SUSPEND is not set
> +CONFIG_SUSPEND=y
> CONFIG_HIBERNATION_UP_POSSIBLE=y
> # CONFIG_HIBERNATION is not set
> CONFIG_ACPI=y
> +CONFIG_ACPI_SLEEP=y
> CONFIG_ACPI_PROCFS=y
> CONFIG_ACPI_PROC_EVENT=y
> CONFIG_ACPI_AC=m
> @@ -255,6 +257,7 @@
> CONFIG_X86_PM_TIMER=y
> CONFIG_ACPI_CONTAINER=m
> CONFIG_ACPI_SBS=m
> +# CONFIG_APM is not set
>
> #
> # CPU Frequency scaling
>
>

2007-10-28 16:50:26

by Alan Stern

[permalink] [raw]
Subject: Re: USB_SUSPEND needs SUSPEND?

On Sun, 28 Oct 2007, Rafael J. Wysocki wrote:

> On Sunday, 28 October 2007 02:00, Oliver Martin wrote:
> > Hello,
> >
> > it seems that there is some dependency missing for CONFIG_USB_SUSPEND.
> > When I compile a kernel without CONFIG_SUSPEND, USB suspend doesn't work
> > (or at least doesn't expose its interface to userspace).
> > /sys/bus/usb/devices/.../power doesn't exist, but it is there when I
> > enable CONFIG_SUSPEND. So should CONFIG_USB_SUSPEND depend on
> > CONFIG_SUSPEND (or something selected by CONFIG_SUSPEND)?
> >
> > diff between the two configs follows, full config and dmesg for both
> > kernels is available at http://stud4.tuwien.ac.at/~e0626486/usb_suspend/
> > (though the dmesg diff doesn't seem to be all that interesting).

Actually I think the problem is the other way around. /sys/.../power
should exist whenever CONFIG_PM is defined, not just when
CONFIG_SUSPEND is enabled.

Alan Stern

2007-10-28 18:32:39

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: USB_SUSPEND needs SUSPEND?

On Sunday, 28 October 2007 17:50, Alan Stern wrote:
> On Sun, 28 Oct 2007, Rafael J. Wysocki wrote:
>
> > On Sunday, 28 October 2007 02:00, Oliver Martin wrote:
> > > Hello,
> > >
> > > it seems that there is some dependency missing for CONFIG_USB_SUSPEND.
> > > When I compile a kernel without CONFIG_SUSPEND, USB suspend doesn't work
> > > (or at least doesn't expose its interface to userspace).
> > > /sys/bus/usb/devices/.../power doesn't exist, but it is there when I
> > > enable CONFIG_SUSPEND. So should CONFIG_USB_SUSPEND depend on
> > > CONFIG_SUSPEND (or something selected by CONFIG_SUSPEND)?
> > >
> > > diff between the two configs follows, full config and dmesg for both
> > > kernels is available at http://stud4.tuwien.ac.at/~e0626486/usb_suspend/
> > > (though the dmesg diff doesn't seem to be all that interesting).
>
> Actually I think the problem is the other way around. /sys/.../power
> should exist whenever CONFIG_PM is defined, not just when
> CONFIG_SUSPEND is enabled.

Agreed.