openwrt/staging/blogic.git
16 years agoMerge branches 'at91', 'ixp', 'master', 'misc', 'pxa' and 'realview' into devel
Russell King [Mon, 4 Feb 2008 17:54:39 +0000 (17:54 +0000)]
Merge branches 'at91', 'ixp', 'master', 'misc', 'pxa' and 'realview' into devel

* at91:
  [ARM] 4802/1: Fix typo and remove vague comment
  [ARM] 4660/3: at91: allow selecting UART for early kernel messages
  [ARM] 4739/1: at91sam9263: make gpio bank C and D irqs work

* ixp:
  [ARM] 4809/2: ixp4xx: Merge dsmg600-power.c into dsmg600-setup.c
  [ARM] 4808/2: ixp4xx: Merge nas100d-power.c into nas100d-setup.c
  [ARM] 4807/2: ixp4xx: Merge nslu2-power.c into nslu2-setup.c
  [ARM] 4806/1: ixp4xx: Ethernet support for the nslu2 and nas100d boards
  [ARM] 4805/1: ixp4xx: Use leds-gpio driver instead of IXP4XX-GPIO-LED driver
  [ARM] 4715/2: Ethernet support for IXDP425 boards
  [ARM] 4714/2: Headers for IXP4xx built-in Ethernet and WAN drivers
  [ARM] 4713/3: Adds drivers for IXP4xx QMgr and NPE features
  [ARM] 4712/2: Adds functions to read and write IXP4xx "feature" bits
  [ARM] 4774/2: ixp4xx: Register dsmg600 rtc i2c_board_info
  [ARM] 4773/2: ixp4xx: Register nas100d rtc i2c_board_info
  [ARM] 4772/2: ixp4xx: Register nslu2 rtc i2c_board_info
  [ARM] 4769/2: ixp4xx: Button updates for the dsmg600 board
  [ARM] 4768/2: ixp4xx: Button and LED updates for the nas100d board
  [ARM] 4767/2: ixp4xx: Add bitops.h include to io.h
  [ARM] 4766/2: ixp4xx: Update ixp4xx_defconfig, enabling all supported boards

* master:
  [ARM] 4810/1: - Fix 'section mismatch' building warnings
  [ARM] xtime_seqlock: fix more ARM machines for xtime deadlocking
  [ARM] 21285 serial: fix build error

* misc:
  [ARM] 4736/1: Export atags to userspace and allow kexec to use customised atags

* pxa:
  [ARM] 4798/1: pcm027: fix missing header file
  [ARM] 4803/1: pxa: fix building issue of poodle.c caused by patch 4737/1
  [ARM] 4801/1: pxa: fix building issues of missing pxa2xx-regs.h
  [ARM] pxa: introduce sysdev for pxa3xx static memory controller
  [ARM] pxa: add preliminary suspend/resume code for pxa3xx
  [ARM] pxa: introduce sysdev for GPIO register saving/restoring
  [ARM] pxa: introduce sysdev for IRQ register saving/restoring
  [ARM] pxa: fix the warning of undeclared "struct pxaohci_platform_data"
  [ARM] pxa: change set_kset_name() to direct name assignment for MFP sysclass

* realview:
  [ARM] 4822/1: RealView: Change the REALVIEW_MPCORE configuration option
  [ARM] 4821/1: RealView: Remove the platform dependencies from localtimer.c
  [ARM] 4820/1: RealView: Select the timer IRQ at run-time
  [ARM] 4819/1: RealView: Fix entry-macro.S to work with multiple platforms
  [ARM] 4818/1: RealView: Add core-tile detection
  [ARM] 4817/1: RealView: Move the AMBA resource definitions to realview_eb.c
  [ARM] 4816/1: RealView: Move the platform-specific definitions into board-eb.h
  [ARM] 4815/1: RealView: Add clockevents suport for the local timers
  [ARM] 4814/1: RealView: Add broadcasting clockevents support for ARM11MPCore
  [ARM] 4813/1: Add SMP helper functions for clockevents support
  [ARM] 4812/1: RealView: clockevents support for the RealView platforms
  [ARM] 4811/1: RealView: clocksource support for the RealView platforms

16 years ago[ARM] 4822/1: RealView: Change the REALVIEW_MPCORE configuration option
Catalin Marinas [Mon, 4 Feb 2008 16:47:04 +0000 (17:47 +0100)]
[ARM] 4822/1: RealView: Change the REALVIEW_MPCORE configuration option

This patch changes the REALVIEW_MPCORE configuration option to
REALVIEW_EB_ARM11MP since this is only specific to RealView/EB.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4821/1: RealView: Remove the platform dependencies from localtimer.c
Catalin Marinas [Mon, 4 Feb 2008 16:45:03 +0000 (17:45 +0100)]
[ARM] 4821/1: RealView: Remove the platform dependencies from localtimer.c

This patch removes the TWD_BASE macro used to set up and configure the
local timers on ARM11MPCore. The twd_base_addr and twd_size variables
are defined in localtimer.c and set from the realview_eb_init function.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4820/1: RealView: Select the timer IRQ at run-time
Catalin Marinas [Mon, 4 Feb 2008 16:43:02 +0000 (17:43 +0100)]
[ARM] 4820/1: RealView: Select the timer IRQ at run-time

This patch sets the timer IRQ at run-time by moving the sys_timer
structure and the timer_init function to the realview_eb.c file. This
allows multiple RealView platforms to be compiled in the same kernel
image.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4819/1: RealView: Fix entry-macro.S to work with multiple platforms
Catalin Marinas [Mon, 4 Feb 2008 16:41:01 +0000 (17:41 +0100)]
[ARM] 4819/1: RealView: Fix entry-macro.S to work with multiple platforms

This patch modifies the get_irqnr_preamble macro to work with multiple
platforms at run-time by reading the address of the GIC controller from
the gic_cpu_base_addr variable. This variable is defined in core.c and
intialised in realview_eb.c (gic_init_irq).

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4818/1: RealView: Add core-tile detection
Catalin Marinas [Mon, 4 Feb 2008 16:39:00 +0000 (17:39 +0100)]
[ARM] 4818/1: RealView: Add core-tile detection

This patch adds the core-tile detection and only enables devices if the
corresponding tile is present. It currently detects the ARM11MPCore via
the core_tile_eb11mp() macro.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4817/1: RealView: Move the AMBA resource definitions to realview_eb.c
Catalin Marinas [Mon, 4 Feb 2008 16:36:59 +0000 (17:36 +0100)]
[ARM] 4817/1: RealView: Move the AMBA resource definitions to realview_eb.c

This patch moves the IRQ and DMA definitions from core.h into
realview_eb.c since they are platform-specific. It adds a
realview_eb11mp_fixup function to adjust the IRQ numbers if the
ARM11MPCore tile is fitted. The realview_smc91x_device is also moved
from core.c into realview_eb.c.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4816/1: RealView: Move the platform-specific definitions into board-eb.h
Catalin Marinas [Mon, 4 Feb 2008 16:34:58 +0000 (17:34 +0100)]
[ARM] 4816/1: RealView: Move the platform-specific definitions into board-eb.h

This patch moves the platform specific definitions from platform.h into
the board-eb.h file. It drops the INT_* definitions as they are no
longer used in irqs.h (moved to board-eb.h). It renames REALVIEW_*
macros to REALVIEW_EB_* or REALVIEW_EB11MP_* to distinguish between
standard EB and EB + the ARM11MPCore tile. The platform.h file contains
common definitions to the RealView platforms and it is only directly
included in board-*.h files.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4815/1: RealView: Add clockevents suport for the local timers
Catalin Marinas [Mon, 4 Feb 2008 16:32:57 +0000 (17:32 +0100)]
[ARM] 4815/1: RealView: Add clockevents suport for the local timers

This patch registers the local timers on ARM11MPCore as clock event
devices. The clock device can be set up as periodic or oneshot.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4814/1: RealView: Add broadcasting clockevents support for ARM11MPCore
Catalin Marinas [Mon, 4 Feb 2008 16:30:57 +0000 (17:30 +0100)]
[ARM] 4814/1: RealView: Add broadcasting clockevents support for ARM11MPCore

This patch adds dummy local timers for each CPU so that the board clock
device is used to broadcast events to the other CPUs. The patch also
adds the declaration for the dummy_timer_setup function (the equivalent
of local_timer_setup when CONFIG_LOCAL_TIMERS is not set).

Due to the way clockevents work, the dummy timer on the first CPU has to
be registered before the board timer.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4813/1: Add SMP helper functions for clockevents support
Catalin Marinas [Mon, 4 Feb 2008 16:28:56 +0000 (17:28 +0100)]
[ARM] 4813/1: Add SMP helper functions for clockevents support

This patch adds the smp_call_function_single and smp_timer_broadcast
functions and modifies ipi_timer to call the platform-specific function
local_timer_interrupt.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4812/1: RealView: clockevents support for the RealView platforms
Catalin Marinas [Mon, 4 Feb 2008 16:26:55 +0000 (17:26 +0100)]
[ARM] 4812/1: RealView: clockevents support for the RealView platforms

The patch updates the RealView code to the clockevents infrastructure.
The SMP support is implemented in subsequent patches. Based on the
Versatile implementation by Kevin Hilman.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4811/1: RealView: clocksource support for the RealView platforms
Catalin Marinas [Mon, 4 Feb 2008 16:24:54 +0000 (17:24 +0100)]
[ARM] 4811/1: RealView: clocksource support for the RealView platforms

The patch updates the RealView platform code to use the generic
clocksource infrastructure for basic time keeping. Based on the
Versatile implementation by Kevin Hilman.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4736/1: Export atags to userspace and allow kexec to use customised atags
Richard Purdie [Tue, 1 Jan 2008 23:56:46 +0000 (00:56 +0100)]
[ARM] 4736/1: Export atags to userspace and allow kexec to use customised atags

Currently, the atags used by kexec are fixed to the ones originally used
to boot the kernel. This is less than ideal as changing the commandline,
initrd and other options would be a useful feature.

This patch exports the atags used for the current kernel to userspace
through an "atags" file in procfs. The presence of the file is
controlled by its own Kconfig option and cleans up several ifdef blocks
into a separate file. The tags for the new kernel are assumed to be at
a fixed location before the kernel image itself. The location of the
tags used to boot the original kernel is unimportant and no longer
saved.

Based on a patch from Uli Luckas <u.luckas@road.de>

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Acked-by: Uli Luckas <u.luckas@road.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4798/1: pcm027: fix missing header file
Juergen Beisert [Tue, 29 Jan 2008 22:43:49 +0000 (23:43 +0100)]
[ARM] 4798/1: pcm027: fix missing header file

This patch adds a PXA2xx specific header file to control chip setup.
Without, the PCM027 BSP can't be built.

Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
Signed-off-by: Juergen Beisert <j.beisert@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4803/1: pxa: fix building issue of poodle.c caused by patch 4737/1
eric miao [Thu, 31 Jan 2008 01:41:16 +0000 (02:41 +0100)]
[ARM] 4803/1: pxa: fix building issue of poodle.c caused by patch 4737/1

The is caused by the patch below:

  [ARM] 4737/1: Refactor corgi_lcd to improve readability + bugfix

It renamed the confusing get_hsync_len() to get_hsync_invperiod(), which
unfortunately leaves poodle.c un-modified.

Signed-off-by: eric miao <eric.miao@marvell.com>
Acked-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4801/1: pxa: fix building issues of missing pxa2xx-regs.h
eric miao [Wed, 30 Jan 2008 08:39:48 +0000 (09:39 +0100)]
[ARM] 4801/1: pxa: fix building issues of missing pxa2xx-regs.h

Some machines are missing "pxa2xx-regs.h" due to the following patch:

  [ARM] pxa: move memory controller registers into pxa2xx-regs.h

This patch fixes the issue by including the pxa2xx-regs.h where necessary.

Signed-off-by: eric miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] pxa: introduce sysdev for pxa3xx static memory controller
eric miao [Mon, 28 Jan 2008 23:00:02 +0000 (23:00 +0000)]
[ARM] pxa: introduce sysdev for pxa3xx static memory controller

Introduce a sysdev for pxa3xx static memory controller, mainly
for register saving/restoring in PM

Signed-off-by: eric miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] pxa: add preliminary suspend/resume code for pxa3xx
eric miao [Mon, 28 Jan 2008 23:00:02 +0000 (23:00 +0000)]
[ARM] pxa: add preliminary suspend/resume code for pxa3xx

1. clear RDH bit after resuming back from D3, otherwise, the multi function
   pins will retain the low power state

2. save/restore essential system registers

Signed-off-by: eric miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] pxa: introduce sysdev for GPIO register saving/restoring
eric miao [Mon, 28 Jan 2008 23:00:02 +0000 (23:00 +0000)]
[ARM] pxa: introduce sysdev for GPIO register saving/restoring

Signed-off-by: eric miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] pxa: introduce sysdev for IRQ register saving/restoring
eric miao [Mon, 28 Jan 2008 23:00:02 +0000 (23:00 +0000)]
[ARM] pxa: introduce sysdev for IRQ register saving/restoring

Signed-off-by: eric miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] pxa: fix the warning of undeclared "struct pxaohci_platform_data"
eric miao [Tue, 29 Jan 2008 01:00:19 +0000 (09:00 +0800)]
[ARM] pxa: fix the warning of undeclared "struct pxaohci_platform_data"

The header file <asm/arch/ohci.h> was missing in the original file,
include it to fix the warning.

Signed-off-by: eric miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] pxa: change set_kset_name() to direct name assignment for MFP sysclass
eric miao [Tue, 29 Jan 2008 00:57:45 +0000 (08:57 +0800)]
[ARM] pxa: change set_kset_name() to direct name assignment for MFP sysclass

Signed-off-by: eric miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4802/1: Fix typo and remove vague comment
Marc Pignat [Wed, 30 Jan 2008 12:41:32 +0000 (13:41 +0100)]
[ARM] 4802/1: Fix typo and remove vague comment

Fix typo and remove vague comment

Signed-off-by: Marc Pignat <marc.pignat@hevs.ch>
Acked-by: Andrew Victor <linux@maxim.org.za>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4660/3: at91: allow selecting UART for early kernel messages
Guennadi Liakhovetski [Tue, 29 Jan 2008 14:43:13 +0000 (15:43 +0100)]
[ARM] 4660/3: at91: allow selecting UART for early kernel messages

Currently early kernel messages, i.e., those from uncompression, go to the
debugging UART. And if it is enabled in the platform configuration, but
not initialized by the bootloader, the machine hangs, waiting for UART
status change. Besides, having those messages on another UART - typically
the console UART - may be preferrable. This patch allows selecting the
UART in kernel configuration.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Acked-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4739/1: at91sam9263: make gpio bank C and D irqs work
David Brownell [Fri, 4 Jan 2008 17:30:24 +0000 (18:30 +0100)]
[ARM] 4739/1: at91sam9263: make gpio bank C and D irqs work

On the at91sam9263, IRQs for GPIO banks C and D don't currently work.
This is because banks C, D, and E share one clock and toplevel IRQ, but
the AT91 code setting up and handling GPIO IRQs expects no sharing.
This patch:

 - Fixes GPIO IRQ setup and handling to cope with GPIO banks that are
   shared like on sam9263 chips, by setting up a list of those banks
   and making the IRQ dispatching logic scan that list.

 - Precomputes the address of each bank's registers, saving it with
   other per-bank data so that it no longer needs to be constantly
   recomputed during IRQs and other GPIO operations.  That shrinks
   hot-path code, while helping the GPIO bank irq updates.

 - Fixes a minor bug where IRQ_TYPE_NONE was wrongly rejected (it just
   means "use the default", which is "both edges" here).

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4809/2: ixp4xx: Merge dsmg600-power.c into dsmg600-setup.c
Rod Whitby [Sun, 3 Feb 2008 11:05:55 +0000 (12:05 +0100)]
[ARM] 4809/2: ixp4xx: Merge dsmg600-power.c into dsmg600-setup.c

There is no reason to have power control in a separate file from the
board setup code.  Merge it back into the board setup file and remove
superfluous header includes.

--

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4808/2: ixp4xx: Merge nas100d-power.c into nas100d-setup.c
Rod Whitby [Sun, 3 Feb 2008 11:05:49 +0000 (12:05 +0100)]
[ARM] 4808/2: ixp4xx: Merge nas100d-power.c into nas100d-setup.c

There is no reason to have power control in a separate file from the
board setup code.  Merge it back into the board setup file and remove
superfluous header includes.

--

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4807/2: ixp4xx: Merge nslu2-power.c into nslu2-setup.c
Rod Whitby [Sun, 3 Feb 2008 11:05:42 +0000 (12:05 +0100)]
[ARM] 4807/2: ixp4xx: Merge nslu2-power.c into nslu2-setup.c

There is no reason to have power control in a separate file from the
board setup code.  Merge it back into the board setup file, removing
superfluous header includes and removing superfluous constants from
the machine header file.

--

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4806/1: ixp4xx: Ethernet support for the nslu2 and nas100d boards
Rod Whitby [Fri, 1 Feb 2008 23:04:05 +0000 (00:04 +0100)]
[ARM] 4806/1: ixp4xx: Ethernet support for the nslu2 and nas100d boards

Enables the new ixp4xx qmgr and npe drivers in ixp4xx_defconfig.

Sets up the corresponding platform data for the nslu2 and nas100d
boards, and reads the ethernet MAC address from the internal flash.

Tested on both little-endian and big-endian kernels.

Tested-by: Tom King <tom@websb.net>
Signed-off-by: Rod Whitby <rod@whitby.id.au>
Signed-off-by: Michael Westerhof <mwester@dls.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4805/1: ixp4xx: Use leds-gpio driver instead of IXP4XX-GPIO-LED driver
Rod Whitby [Fri, 1 Feb 2008 23:03:56 +0000 (00:03 +0100)]
[ARM] 4805/1: ixp4xx: Use leds-gpio driver instead of IXP4XX-GPIO-LED driver

These are the only three boards to use the IXP4XX-GPIO-LED driver, and
they can all use the new leds-gpio driver instead with no change in
functionality.

--

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4715/2: Ethernet support for IXDP425 boards
Rod Whitby [Thu, 31 Jan 2008 11:44:03 +0000 (12:44 +0100)]
[ARM] 4715/2: Ethernet support for IXDP425 boards

Adds IXDP425 platform support for two built-in 10/100 Ethernet ports.

This patch will do nothing until the actual Ethernet driver is
also included.

Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4714/2: Headers for IXP4xx built-in Ethernet and WAN drivers
Krzysztof Halasa [Tue, 29 Jan 2008 00:03:00 +0000 (01:03 +0100)]
[ARM] 4714/2: Headers for IXP4xx built-in Ethernet and WAN drivers

Adds platform structs and #defines required by drivers for
IXP4xx built-in Ethernet and WAN (sync serial) ports.

The actual drivers will reside in drivers/net/arm and
drivers/net/wan and will be submitted separately.

Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl>
Signed-off-by: Rod Whitby <rod@whitby.id.au>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4713/3: Adds drivers for IXP4xx QMgr and NPE features
Krzysztof Halasa [Tue, 1 Jan 2008 20:55:23 +0000 (21:55 +0100)]
[ARM] 4713/3: Adds drivers for IXP4xx QMgr and NPE features

This patch adds drivers for IXP4xx hardware Queue Manager and for
Network Processor Engines. Requires patch #4712 (reading/writing
CPU feature (aka fuse) bits).

Posted to linux-arm-kernel on 2 Dec 2007 and revised.

Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4712/2: Adds functions to read and write IXP4xx "feature" bits
Krzysztof Halasa [Tue, 18 Dec 2007 02:53:27 +0000 (03:53 +0100)]
[ARM] 4712/2: Adds functions to read and write IXP4xx "feature" bits

Adds functions to read and write IXP4xx "feature" (aka "fuse")
bits, containing information about available/enabled CPU features.

The uncompress.h included by boot/compressed/misc.c resides in
a different space than rest of the kernel and thus can't use
asm/hardware.h (including asm/arch/cpu.h - which, in turn, may use
EXPORTed symbol "processor_id").

Posted to linux-arm-kernel on 2 Dec 2007 and revised.

Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4774/2: ixp4xx: Register dsmg600 rtc i2c_board_info
Rod Whitby [Mon, 28 Jan 2008 23:40:02 +0000 (00:40 +0100)]
[ARM] 4774/2: ixp4xx: Register dsmg600 rtc i2c_board_info

Register the i2c board info related to the RTC chip on the dsmg600
board to allow it to be found automatically on boot.

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4773/2: ixp4xx: Register nas100d rtc i2c_board_info
Rod Whitby [Mon, 28 Jan 2008 23:38:44 +0000 (00:38 +0100)]
[ARM] 4773/2: ixp4xx: Register nas100d rtc i2c_board_info

Register the i2c board info related to the RTC chip on the nas100d
board to allow it to be found automatically on boot.

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4772/2: ixp4xx: Register nslu2 rtc i2c_board_info
Rod Whitby [Mon, 28 Jan 2008 23:36:12 +0000 (00:36 +0100)]
[ARM] 4772/2: ixp4xx: Register nslu2 rtc i2c_board_info

Register the i2c board info related to the RTC chip on the nslu2 board
to allow it to be found automatically on boot.

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4769/2: ixp4xx: Button updates for the dsmg600 board
Rod Whitby [Mon, 28 Jan 2008 23:30:54 +0000 (00:30 +0100)]
[ARM] 4769/2: ixp4xx: Button updates for the dsmg600 board

 * Remove the superfluous declaration of ctrl_alt_del().
 * Convert GPIO and IRQ handling to use the <asm/gpio.h> api.
 * Perform the reset on the release of the power button, so that
   NAS devices which have been set to auto-power-on (by solder
   bridging the power button) do not continuously power cycle.
 * Remove all superflous constants from dsmg600.h

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Acked-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4768/2: ixp4xx: Button and LED updates for the nas100d board
Rod Whitby [Mon, 28 Jan 2008 23:29:38 +0000 (00:29 +0100)]
[ARM] 4768/2: ixp4xx: Button and LED updates for the nas100d board

 * Convert GPIO and IRQ handling to use the <asm/gpio.h> api.
 * Perform the reset only after the power button has been held down
   for at least two seconds.  Do the reset on the release of the power
   button, so that NAS devices which have been set to auto-power-on (by
   solder bridging the power button) do not continuously power cycle.
 * Remove all superflous constants from nas100d.h
 * Add LED constants to nas100d.h while we're there.
 * Update the board LED setup code to use those constants.

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Acked-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4767/2: ixp4xx: Add bitops.h include to io.h
Rod Whitby [Mon, 28 Jan 2008 23:22:57 +0000 (00:22 +0100)]
[ARM] 4767/2: ixp4xx: Add bitops.h include to io.h

Add include of <linux/bitops.h> to io.h to solve compilations errors in
files such as drivers/w1/w1_io.c caused by the ixp4xx version of io.h
using the BIT() macro without including <linux/bitops.h> first.

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Acked-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4766/2: ixp4xx: Update ixp4xx_defconfig, enabling all supported boards
Rod Whitby [Mon, 28 Jan 2008 23:17:24 +0000 (00:17 +0100)]
[ARM] 4766/2: ixp4xx: Update ixp4xx_defconfig, enabling all supported boards

This updates the defconfig for the ixp4xx machine in arch/arm/config
taking all the defaults, with the following additions:

1) Enable support for the nslu2, loft, gateway7001, wg302v2,
   dsmg600, and gtwx5715 boards.
2) Enable EABI, OABI, HOTPLUG and FW_LOADER.
3) Enable the RTC subsystem, with drivers for the RTC chips on the
   nslu2 (x1205) and nas100d/dsmg600 (pcf8563) boards.
4) Enable the LEDS subsystem to support the nslu2, nas100d and
   dsmg600 boards.  Enable the ixp4xx beeper driver.
5) Enable the USB subsystem, USB host driver support and USB mass
   storage support (required for boot disk on nslu2 board).
6) Enable the ATA subsystem, with drivers for the nas100d/dsmg600
   (pata_artop) and avila (ixp4xx_cf) boards.

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Acked-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 4810/1: - Fix 'section mismatch' building warnings
Kristoffer Ericson [Sun, 3 Feb 2008 21:08:10 +0000 (22:08 +0100)]
[ARM] 4810/1: - Fix 'section mismatch' building warnings

Warning message :
WARNING: vmlinux.o(.text+0x9afc): Section mismatch: reference to .init.text:sa1110_mb_enable (between 'sa1111_probe' and 'sa1111_remove')
WARNING: vmlinux.o(.text+0x13b1ac): Section mismatch: reference to .init.text:pcmcia_jornada720_init (between 'pcmcia_probe' and 'pcmcia_remove')

* fixes the 'section mismatch' building warnings for target sa1100. Solution is __init -> __devinit. Thanks to Randy Dunlap for pointing out the solution.

Signed-off-by: Kristoffer Ericson <kristoffer.ericson@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] xtime_seqlock: fix more ARM machines for xtime deadlocking
Peter Zijlstra [Fri, 1 Feb 2008 21:27:02 +0000 (21:27 +0000)]
[ARM] xtime_seqlock: fix more ARM machines for xtime deadlocking

move update_process_times() out from under xtime_lock.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] 21285 serial: fix build error
Russell King [Thu, 31 Jan 2008 21:30:24 +0000 (21:30 +0000)]
[ARM] 21285 serial: fix build error

drivers/serial/21285.c: In function 'serial21285_set_termios':
drivers/serial/21285.c:280: error: 'tty' undeclared (first use in this function)
drivers/serial/21285.c:280: error: (Each undeclared identifier is reported only once
drivers/serial/21285.c:280: error: for each function it appears in.)

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years agoMerge git://git.infradead.org/battery-2.6
Linus Torvalds [Sat, 2 Feb 2008 04:13:05 +0000 (15:13 +1100)]
Merge git://git.infradead.org/battery-2.6

* git://git.infradead.org/battery-2.6:
  apm_power: check I.intval for zero value, we use it as the divisor
  MAINTAINERS: remove kernel-discuss@handhelds.org list
  pda_power: implement polling
  pda_power: various cleanups
  apm_power: support using VOLTAGE_* properties for apm calculations
  pda_power: add suspend/resume support
  power_supply: add few more values and props
  pda_power: only register available psu
  power: fix incorrect unregistration in power_supply_create_attrs error path
  power: remove POWER_SUPPLY_PROP_CAPACITY_LEVEL
  [BATTERY] power_supply_leds: use kasprintf
  [BATTERY] Every file should include the headers containing the prototypes for its global functions.

16 years agoMerge branch 'for-linus' of git://linux-nfs.org/~bfields/linux
Linus Torvalds [Sat, 2 Feb 2008 03:31:28 +0000 (14:31 +1100)]
Merge branch 'for-linus' of git://linux-nfs.org/~bfields/linux

* 'for-linus' of git://linux-nfs.org/~bfields/linux: (100 commits)
  SUNRPC: RPC program information is stored in unsigned integers
  SUNRPC: Move exported symbol definitions after function declaration part 2
  NLM: tear down RPC clients in nlm_shutdown_hosts
  SUNRPC: spin svc_rqst initialization to its own function
  nfsd: more careful input validation in nfsctl write methods
  lockd: minor log message fix
  knfsd: don't bother mapping putrootfh enoent to eperm
  rdma: makefile
  rdma: ONCRPC RDMA protocol marshalling
  rdma: SVCRDMA sendto
  rdma: SVCRDMA recvfrom
  rdma: SVCRDMA Core Transport Services
  rdma: SVCRDMA Transport Module
  rdma: SVCRMDA Header File
  svc: Add svc_xprt_names service to replace svc_sock_names
  knfsd: Support adding transports by writing portlist file
  svc: Add svc API that queries for a transport instance
  svc: Add /proc/sys/sunrpc/transport files
  svc: Add transport hdr size for defer/revisit
  svc: Move the xprt independent code to the svc_xprt.c file
  ...

16 years agoMerge branch 'suspend' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
Linus Torvalds [Sat, 2 Feb 2008 03:29:57 +0000 (14:29 +1100)]
Merge branch 'suspend' of git://git./linux/kernel/git/lenb/linux-acpi-2.6

* 'suspend' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (38 commits)
  suspend: cleanup reference to swsusp_pg_dir[]
  PM: Remove obsolete /sys/devices/.../power/state docs
  Hibernation: Invoke suspend notifications after console switch
  Suspend: Invoke suspend notifications after console switch
  Suspend: Clean up suspend_64.c
  Suspend: Add config option to disable the freezer if architecture wants that
  ACPI: Print message before calling _PTS
  ACPI hibernation: Call _PTS before suspending devices
  Hibernation: Introduce begin() and end() callbacks
  ACPI suspend: Call _PTS before suspending devices
  ACPI: Separate disabling of GPEs from _PTS
  ACPI: Separate invocations of _GTS and _BFS from _PTS and _WAK
  Suspend: Introduce begin() and end() callbacks
  suspend: fix ia64 allmodconfig build
  ACPI: clear GPE earily in resume to avoid warning
  Suspend: Clean up Kconfig (V2)
  Hibernation: Clean up Kconfig (V2)
  Hibernation: Update messages
  Suspend: Use common prefix in messages
  Hibernation: Remove unnecessary variable declaration
  ...

16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6
Linus Torvalds [Sat, 2 Feb 2008 03:29:33 +0000 (14:29 +1100)]
Merge git://git./linux/kernel/git/gregkh/pci-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6: (64 commits)
  PCI: make pci_bus a struct device
  PCI: fix codingstyle issues in include/linux/pci.h
  PCI: fix codingstyle issues in drivers/pci/pci.h
  PCI: PCIE ASPM support
  PCI: Fix fakephp deadlock
  PCI: modify SB700 SATA MSI quirk
  PCI: Run ACPI _OSC method on root bridges only
  PCI ACPI: AER driver should only register PCIe devices with _OSC
  PCI ACPI: Added a function to register _OSC with only PCIe devices.
  PCI: constify function pointer tables
  PCI: Convert drivers/pci/proc.c to use unlocked_ioctl
  pciehp: block new requests from the device before power off
  pciehp: workaround against Bad DLLP during power off
  pciehp: wait for 1000ms before LED operation after power off
  PCI: Remove pci_enable_device_bars() from documentation
  PCI: Remove pci_enable_device_bars()
  PCI: Remove users of pci_enable_device_bars()
  PCI: Add pci_enable_device_{io,mem} intefaces
  PCI: avoid save the same type of cap multiple times
  PCI: correctly initialize a structure for pcie_save_pcix_state()
  ...

16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
Linus Torvalds [Sat, 2 Feb 2008 03:28:57 +0000 (14:28 +1100)]
Merge git://git./linux/kernel/git/gregkh/usb-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (128 commits)
  USB: fix codingstyle issues in drivers/usb/core/*.c
  USB: fix codingstyle issues in drivers/usb/core/message.c
  USB: fix codingstyle issues in drivers/usb/core/hcd-pci.c
  USB: fix codingstyle issues in drivers/usb/core/devio.c
  USB: fix codingstyle issues in drivers/usb/core/devices.c
  USB: fix codingstyle issues in drivers/usb/core/*.h
  USB: fix codingstyle issues in include/linux/usb/
  USB: fix codingstyle issues in include/linux/usb.h
  USB: mark USB drivers as being GPL only
  USB: use a real vendor and product id for root hubs
  USB: mount options: fix usbfs
  USB: Fix usb_serial_driver structure for Kobil cardreader driver.
  usb: ehci should use u16 for isochronous intervals
  usb: ehci, remove false clear-reset path
  USB: Use menuconfig objects
  usb: ohci-sm501 driver
  usb: dma bounce buffer support
  USB: last abuses of intfdata in close for usb-serial drivers
  USB: kl5kusb105 don't flush to logically disconnected devices
  USB: oti6858: cleanup
  ...

16 years agodebug: softlockup looping fix
Peter Zijlstra [Fri, 1 Feb 2008 23:23:08 +0000 (00:23 +0100)]
debug: softlockup looping fix

Rafael J. Wysocki reported weird, multi-seconds delays during
suspend/resume and bisected it back to:

  commit 82a1fcb90287052aabfa235e7ffc693ea003fe69
  Author: Ingo Molnar <mingo@elte.hu>
  Date:   Fri Jan 25 21:08:02 2008 +0100

      softlockup: automatically detect hung TASK_UNINTERRUPTIBLE tasks

fix it:

 - restore the old wakeup mechanism
 - fix break usage in do_each_thread() { } while_each_thread().
 - fix the hotplug switch stmt, a fall-through case was broken.

Bisected-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Tested-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoapm_power: check I.intval for zero value, we use it as the divisor
Anton Vorontsov [Sat, 12 Jan 2008 23:44:54 +0000 (02:44 +0300)]
apm_power: check I.intval for zero value, we use it as the divisor

Signed-off-by: Anton Vorontsov <cbou@mail.ru>
16 years agoMAINTAINERS: remove kernel-discuss@handhelds.org list
Anton Vorontsov [Sat, 12 Jan 2008 23:44:54 +0000 (02:44 +0300)]
MAINTAINERS: remove kernel-discuss@handhelds.org list

kernel-discuss at handhelds.org is down for months, and nobody
knows why. So remove it for now.

Signed-off-by: Anton Vorontsov <cbou@mail.ru>
16 years agopda_power: implement polling
Anton Vorontsov [Sat, 12 Jan 2008 23:44:20 +0000 (02:44 +0300)]
pda_power: implement polling

Signed-off-by: Anton Vorontsov <cbou@mail.ru>
16 years agopda_power: various cleanups
Anton Vorontsov [Sat, 12 Jan 2008 23:39:17 +0000 (02:39 +0300)]
pda_power: various cleanups

- handle spurious interrupts correctly;
- get rid of pda_power_supplies array, use two variables instead;
- factor out psy_changed() function, it will be used for polling.

Signed-off-by: Anton Vorontsov <cbou@mail.ru>
16 years agoapm_power: support using VOLTAGE_* properties for apm calculations
Dmitry Baryshkov [Sat, 12 Jan 2008 23:39:16 +0000 (02:39 +0300)]
apm_power: support using VOLTAGE_* properties for apm calculations

It's pretty dummy, but useful for batteries for which we can only
get voltages.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Signed-off-by: Anton Vorontsov <cbou@mail.ru>
16 years agopda_power: add suspend/resume support
Dmitry Baryshkov [Sat, 12 Jan 2008 23:35:43 +0000 (02:35 +0300)]
pda_power: add suspend/resume support

Add suspend/resume/wakeup support for pda_power.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Signed-off-by: Anton Vorontsov <cbou@mail.ru>
16 years agopower_supply: add few more values and props
Dmitry Baryshkov [Mon, 7 Jan 2008 01:12:41 +0000 (04:12 +0300)]
power_supply: add few more values and props

Add LiMn (one of the most common for small non-rechargable batteries)
battery technology and voltage_min/_max properties support.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Signed-off-by: Anton Vorontsov <cbou@mail.ru>
16 years agopda_power: only register available psu
Dmitry Baryshkov [Mon, 7 Jan 2008 01:12:39 +0000 (04:12 +0300)]
pda_power: only register available psu

Currently pda-power adds both ac and usb power supply units.
This patch fixes it so that psu are added only if they are enabled.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Signed-off-by: Anton Vorontsov <cbou@mail.ru>
16 years agopower: fix incorrect unregistration in power_supply_create_attrs error path
Andres Salomon [Wed, 12 Dec 2007 19:12:59 +0000 (14:12 -0500)]
power: fix incorrect unregistration in power_supply_create_attrs error path

In power_supply_create_attrs(), we create static attributes as referenced
by power_supply_static_attrs[i].  After that, if we fail, we unregister
via power_supply_static_attrs[psy->properties[i]].  This is incorrect, as
psy->properties has absolutely no bearing on static attribs.  This patch
fixes it to unregister the correct attrib.

Another line which was unnecessarily line wrapped is also unwrapped.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
16 years agopower: remove POWER_SUPPLY_PROP_CAPACITY_LEVEL
Andres Salomon [Wed, 12 Dec 2007 19:12:56 +0000 (14:12 -0500)]
power: remove POWER_SUPPLY_PROP_CAPACITY_LEVEL

The CAPACITY_LEVEL stuff defines various levels of charge; however, what
is the difference between them?  What differentiates between HIGH and NORMAL,
LOW and CRITICAL, etc?

As it appears that these are fairly arbitrary, we end up making such policy
decisions in the kernel (or in hardware).  This is the sort of decision that
should be made in userspace, not in the kernel.

If the hardware does not support _CAPACITY and it cannot be easily calculated,
then perhaps the driver should register a custom CAPACITY_LEVEL attribute;
however, userspace should not become accustomed to looking for such a thing,
and we should certainly not encourage drivers to provide CAPACITY_LEVEL
stubs.

The following removes support for POWER_SUPPLY_PROP_CAPACITY_LEVEL.  The
OLPC battery driver is the only driver making use of this, so it's
removed from there as well.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
16 years ago[BATTERY] power_supply_leds: use kasprintf
Akinobu Mita [Sat, 17 Nov 2007 10:55:58 +0000 (19:55 +0900)]
[BATTERY] power_supply_leds: use kasprintf

Use kasprintf instead of kmalloc()-strcpy()-strcat().

Cc: Anton Vorontsov <cbou@mail.ru>
Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Anton Vorontsov <cbou@mail.ru>
16 years ago[BATTERY] Every file should include the headers containing the prototypes for its...
Adrian Bunk [Sun, 25 Nov 2007 21:25:45 +0000 (00:25 +0300)]
[BATTERY] Every file should include the headers containing the prototypes for its global functions.

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Anton Vorontsov <cbou@mail.ru>
16 years agosuspend: cleanup reference to swsusp_pg_dir[]
Rafael J. Wysocki [Fri, 1 Feb 2008 14:28:16 +0000 (15:28 +0100)]
suspend: cleanup reference to swsusp_pg_dir[]

swsusp_pg_dir[] is used for suspend, but not for hibernation.
clean-up the ifdefs which worked by accident, while implying the opposite.
Delete the __nosavedata, which also implied the opposite.

Some day we may optimize CONFIG_ACPI_SLEEP to build minimal kernels
for just hibernate or just suspend but not both,
but today isn't that day.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoPM: Remove obsolete /sys/devices/.../power/state docs
David Brownell [Fri, 11 Jan 2008 00:26:57 +0000 (01:26 +0100)]
PM: Remove obsolete /sys/devices/.../power/state docs

The /sys/devices/.../power/state files have been gone for a while
now, but I just noticed some documentation that still refers to
them.  (Fortunately described as DEPRECATED and WILL REMOVE).

Time to remove that obsolete documentation too ...

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Invoke suspend notifications after console switch
Rafael J. Wysocki [Fri, 11 Jan 2008 00:25:21 +0000 (01:25 +0100)]
Hibernation: Invoke suspend notifications after console switch

Following the recent change in the suspend code path, switch consoles before
calling PM notifiers during hibernation.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoSuspend: Invoke suspend notifications after console switch
Johannes Berg [Fri, 11 Jan 2008 00:22:23 +0000 (01:22 +0100)]
Suspend: Invoke suspend notifications after console switch

In order to fix APM emulation it is necessary to enable apm-emulation
notifications for suspends triggered in various ways via the suspend
notifiers.  However, this will cause the systems using APM emulation
to lock up between X being needed to switch away from the VT and X
already waiting for resume in the APM ioctl.

This patch moves the console switch (if enabled) before the suspend
notification (and after the resume notification) to avoid this issue.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoSuspend: Clean up suspend_64.c
Borislav Petkov [Sun, 16 Dec 2007 23:30:22 +0000 (00:30 +0100)]
Suspend: Clean up suspend_64.c

There's a freakishly long comment in suspend_64.c, shorten it.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoSuspend: Add config option to disable the freezer if architecture wants that
Johannes Berg [Wed, 16 Jan 2008 04:17:00 +0000 (23:17 -0500)]
Suspend: Add config option to disable the freezer if architecture wants that

This patch makes the freezer optional for suspend to allow the
system to work (or not work) like the original PMU suspend.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: Print message before calling _PTS
Rafael J. Wysocki [Mon, 7 Jan 2008 23:10:57 +0000 (00:10 +0100)]
ACPI: Print message before calling _PTS

Make acpi_sleep_prepare() static and cause it to print a message
specifying the ACPI system sleep state to be entered (helpful for
debugging the suspend/hibernation code).

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI hibernation: Call _PTS before suspending devices
Rafael J. Wysocki [Mon, 7 Jan 2008 23:09:58 +0000 (00:09 +0100)]
ACPI hibernation: Call _PTS before suspending devices

The ACPI 1.0 specification wants us to put devices into low power
states after executing the _PTS global control method, while ACPI
2.0 and later want us to do that in the reverse order.  The current
hibernation code follows ACPI 2.0 in that respect which may cause some
ACPI 1.0x systems to hang during hibernation (ref.
http://bugzilla.kernel.org/show_bug.cgi?id=9528).

Make the hibernation code execute _PTS before putting devices into
low power states (ie. in accordance with ACPI 1.0x) with the
possibility to override that using the 'acpi_new_pts_ordering' kernel
command line option.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Introduce begin() and end() callbacks
Rafael J. Wysocki [Mon, 7 Jan 2008 23:08:44 +0000 (00:08 +0100)]
Hibernation: Introduce begin() and end() callbacks

Introduce global hibernation callback .end() and rename global
hibernation callback .start() to .begin(), in analogy with the
recent modifications of the global suspend callbacks.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI suspend: Call _PTS before suspending devices
Rafael J. Wysocki [Mon, 7 Jan 2008 23:07:39 +0000 (00:07 +0100)]
ACPI suspend: Call _PTS before suspending devices

The ACPI 1.0 specification wants us to put devices into low power
states after executing the _PTS global control method, while ACPI
2.0 and later want us to do that in the reverse order.  The current
suspend code follows ACPI 2.0 in that respect which causes some
ACPI 1.0x systems to hang during suspend (ref.
http://bugzilla.kernel.org/show_bug.cgi?id=9528).

Make the suspend code execute _PTS before putting devices into low
power states (ie. in accordance with ACPI 1.0x) and provide a command
line option to override the default if need be.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: Separate disabling of GPEs from _PTS
Rafael J. Wysocki [Mon, 7 Jan 2008 23:06:16 +0000 (00:06 +0100)]
ACPI: Separate disabling of GPEs from _PTS

The preparation to enter an ACPI system sleep state is now tied to
the disabling of GPEs, but the GPEs should not be disabled before
suspending devices.  Since on ACPI 1.0x systems the _PTS global
control method should be executed before suspending devices, we
need to disable GPEs separately.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: Separate invocations of _GTS and _BFS from _PTS and _WAK
Rafael J. Wysocki [Mon, 7 Jan 2008 23:05:21 +0000 (00:05 +0100)]
ACPI: Separate invocations of _GTS and _BFS from _PTS and _WAK

The execution of ACPI global control methods _GTS and _BFS is
currently tied to the preparation to enter a sleep state and to the
leaving of the sleep state, respectively.  However, these functions
are called before disabling the nonboot CPUs and after enabling
them, respectively (in fact, on ACPI 1.0x systems the first of them
ought to be called before suspending devices), while according to the
ACPI specification, _GTS is to be executed right prior to entering
the system sleep state and _BFS is to be executed right after the
platfor firmware has returned control to the OS on wake up.

Move the execution of _GTS and _BFS to the right places.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoSuspend: Introduce begin() and end() callbacks
Rafael J. Wysocki [Mon, 7 Jan 2008 23:04:17 +0000 (00:04 +0100)]
Suspend: Introduce begin() and end() callbacks

On ACPI systems the target state set by acpi_pm_set_target() is
reset by acpi_pm_finish(), but that need not be called if the
suspend fails.  All platforms that use the .set_target() global
suspend callback are affected by analogous issues.

For this reason, we need an additional global suspend callback that
will reset the target state regardless of whether or not the suspend
is successful.  Also, it is reasonable to rename the .set_target()
callback, since it will be used for a different purpose on ACPI
systems (due to ACPI 1.0x code ordering requirements).

Introduce the global suspend callback .end() to be executed at the
end of the suspend sequence and rename the .set_target() global
suspend callback to .begin().

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agosuspend: fix ia64 allmodconfig build
Rafael J. Wysocki [Fri, 14 Dec 2007 00:07:13 +0000 (01:07 +0100)]
suspend: fix ia64 allmodconfig build

kernel/power/main.c:488: error: ‘pm_test_attr’ undeclared here (not in a function)

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: clear GPE earily in resume to avoid warning
Shaohua Li [Wed, 20 Jun 2007 01:17:58 +0000 (09:17 +0800)]
ACPI: clear GPE earily in resume to avoid warning

Wakeup GPE hasn't a handler. If system is waked up by such GPE like a
USB hotplug, I saw a lot of error reporting the GPE hasn't handler.
acpi_leave_sleep_state will clear the GPE but it's too late, we should
do it before interrupt is re-enabled.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoSuspend: Clean up Kconfig (V2)
Johannes Berg [Sat, 8 Dec 2007 01:14:00 +0000 (02:14 +0100)]
Suspend: Clean up Kconfig (V2)

This cleans up the suspend Kconfig and removes the need to
declare centrally which architectures support suspend. All
architectures that currently support suspend are modified
accordingly.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Acked-by: Russell King <rmk@arm.linux.org.uk>
Acked-by: Paul Mackerras <paulus@samba.org>
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Cc: Pavel Machek <pavel@suse.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Clean up Kconfig (V2)
Johannes Berg [Sat, 8 Dec 2007 01:12:39 +0000 (02:12 +0100)]
Hibernation: Clean up Kconfig (V2)

This cleans up the hibernation Kconfig and removes the need to
declare centrally which architectures support hibernation. All
architectures that currently support hibernation are modified
accordingly.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Acked-by: Paul Mackerras <paulus@samba.org>
Cc: Pavel Machek <pavel@suse.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Update messages
Rafael J. Wysocki [Sat, 8 Dec 2007 01:09:43 +0000 (02:09 +0100)]
Hibernation: Update messages

Make hibernation messages start with one common prefix "PM: " and use
the word "hibernation" in the messages as a synonym of "suspend to
disk".

Turn some KERN_INFO messages into debug ones.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoSuspend: Use common prefix in messages
Rafael J. Wysocki [Sat, 8 Dec 2007 01:08:38 +0000 (02:08 +0100)]
Suspend: Use common prefix in messages

Make suspend messages start with one common prefix "PM: ".

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Remove unnecessary variable declaration
Rafael J. Wysocki [Sat, 8 Dec 2007 01:07:40 +0000 (02:07 +0100)]
Hibernation: Remove unnecessary variable declaration

Remove the unnecessary extern declaration of resume_file[]
from kernel/power/swap.c .

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Fix comment in disk.c
Rafael J. Wysocki [Sat, 8 Dec 2007 01:06:57 +0000 (02:06 +0100)]
Hibernation: Fix comment in disk.c

Fix a comment in kernel/power/disk.c so that it doesn't contain lines
longer that 80 characters.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoSuspend: Fix comment in main.c
Rafael J. Wysocki [Sat, 8 Dec 2007 01:06:00 +0000 (02:06 +0100)]
Suspend: Fix comment in main.c

Fix a comment in kernel/power/main.c so that it doesn't contain lines
longer that 80 characters.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Move low level resume to disk.c
Rafael J. Wysocki [Sat, 8 Dec 2007 01:04:21 +0000 (02:04 +0100)]
Hibernation: Move low level resume to disk.c

Move the low level restore code to kernel/power/disk.c , since the
corresponding low level hibernation code is already there.

Make restore fail if device_power_down(PMSG_PRETHAW) returns an
error.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoSuspend: Fix compilation warning for CONFIG_SUSPEND unset
Rafael J. Wysocki [Sat, 8 Dec 2007 01:03:26 +0000 (02:03 +0100)]
Suspend: Fix compilation warning for CONFIG_SUSPEND unset

Suspend: Make debug facility depend on CONFIG_SUSPEND

Make the new suspend debug facility code depend on CONFIG_SUSPEND,
as appropriate, to remove the compiler warning printed when CONFIG_PM is set
and CONFIG_SUSPEND is not set.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoPM: Convert PM notifiers to out-of-line code
Alan Stern [Mon, 19 Nov 2007 22:49:18 +0000 (23:49 +0100)]
PM: Convert PM notifiers to out-of-line code

This patch (as1008b) converts the PM notifier routines from inline
calls to out-of-line code.  It also prevents pm_chain_head from
being created when CONFIG_PM_SLEEP isn't enabled, and EXPORTs the
notifier registration and unregistration routines.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoPM: Make PM_TRACE more architecture independent
Johannes Berg [Mon, 19 Nov 2007 22:46:16 +0000 (23:46 +0100)]
PM: Make PM_TRACE more architecture independent

When trying to debug a suspend failure I started implementing
PM_TRACE for powerpc. I then noticed that I'm debugging a suspend
failure and so PM_TRACE isn't useful at all, but thought that
nonetheless this could be useful in the future.

Basically, to support PM_TRACE, you add a Kconfig option that
selects PM_TRACE and provides the infrastructure as per the
help text of PM_TRACE.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoPM: Suspend/hibernation debug documentation update (rev. 2)
Rafael J. Wysocki [Mon, 19 Nov 2007 22:43:34 +0000 (23:43 +0100)]
PM: Suspend/hibernation debug documentation update (rev. 2)

Update the suspend/hibernation debugging and testing documentation to describe
the newly introduced testing facilities.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: New testing facility (rev. 2)
Rafael J. Wysocki [Mon, 19 Nov 2007 22:42:31 +0000 (23:42 +0100)]
Hibernation: New testing facility (rev. 2)

Make it possible to test the hibernation core code with the help of the
/sys/power/pm_test attribute introduced for suspend testing in the previous
patch.

Writing an appropriate string to this file causes the hibernation code to work
in one of the test modes defined as follows:

freezer
- test the freezing of processes

devices
- test the freezing of processes and suspending of devices

platform
- test the freezing of processes, suspending of devices and platform global
  control methods(*)

processors
- test the freezing of processes, suspending of devices, platform global
  control methods(*) and the disabling of nonboot CPUs

core
- test the freezing of processes, suspending of devices, platform global
  control methods(*), the disabling of nonboot CPUs and suspending of
  platform/system devices

(*) - the platform global control methods are only available on ACPI systems
      and are only tested if the hibernation mode is set to "platform"

Then, if a hibernation is started by normal means, the hibernation core will
perform its normal operations up to the point indicated by given test level.
Next, it will wait for 5 seconds and carry out the resume operations needed to
transition the system back to the fully functional state.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agosuspend: build fix responding to 2.6.25 kset change
Rafael J. Wysocki [Mon, 28 Jan 2008 23:29:06 +0000 (00:29 +0100)]
suspend: build fix responding to 2.6.25 kset change

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoSuspend: Testing facility (rev. 2)
Rafael J. Wysocki [Mon, 19 Nov 2007 22:41:19 +0000 (23:41 +0100)]
Suspend: Testing facility (rev. 2)

Introduce sysfs attribute /sys/power/pm_test allowing one to test the suspend
core code.  Namely, writing one of the strings:

freezer
devices
platform
processors
core

to this file causes the suspend code to work in one of the test modes defined as
follows:

freezer
- test the freezing of processes

devices
- test the freezing of processes and suspending of devices

platform
- test the freezing of processes, suspending of devices and platform global
  control methods(*)

processors
- test the freezing of processes, suspending of devices, platform global
  control methods and the disabling of nonboot CPUs

core
- test the freezing of processes, suspending of devices, platform global
  control methods, the disabling of nonboot CPUs and suspending of
  platform/system devices

(*) These are ACPI global control methods on ACPI systems

Then, if a suspend is started by normal means, the suspend core will perform
its normal operations up to the point indicated by given test level.  Next, it
will wait for 5 seconds and carry out the resume operations needed to transition
the system back to the fully functional state.

Writing "none" to /sys/power/pm_test turns the testing off.

When open for reading, /sys/power/pm_test contains a space-separated list of all
available tests (including "none" that represents the normal functionality) in
which the current test level is indicated by square brackets.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Add PM_RESTORE_PREPARE and PM_POST_RESTORE notifiers (rev. 2)
Alan Stern [Mon, 19 Nov 2007 22:38:25 +0000 (23:38 +0100)]
Hibernation: Add PM_RESTORE_PREPARE and PM_POST_RESTORE notifiers (rev. 2)

Add PM_RESTORE_PREPARE and PM_POST_RESTORE notifiers to the PM core, to be used
in analogy with the existing PM_HIBERNATION_PREPARE and PM_POST_HIBERNATION
notifiers.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: "Rafael J. Wysocki" <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Move function prototypes to header
Adrian Bunk [Mon, 19 Nov 2007 22:36:20 +0000 (23:36 +0100)]
Hibernation: Move function prototypes to header

This patch moves the prototypes of count_highmem_pages() and
restore_highmem() to kernel/power/power.h

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: Fix mismerge in acpi_hibernation_finish
Rafael J. Wysocki [Mon, 19 Nov 2007 22:33:59 +0000 (23:33 +0100)]
ACPI: Fix mismerge in acpi_hibernation_finish

Some code in acpi_hibernation_finish() was moved to acpi_hibernation_leave(),
but the old copy had been left (it's harmless, but also useless).  Remove it.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Introduce exportable suspend ioctls header (rev. 2)
Rafael J. Wysocki [Thu, 25 Oct 2007 23:05:05 +0000 (01:05 +0200)]
Hibernation: Introduce exportable suspend ioctls header (rev. 2)

Move the definitions of hibernation ioctls to a separate header file in
include/linux, which can be exported to the user space.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Correct definitions of some ioctls (rev. 2)
Rafael J. Wysocki [Thu, 25 Oct 2007 23:03:33 +0000 (01:03 +0200)]
Hibernation: Correct definitions of some ioctls (rev. 2)

Three ioctl numbers belonging to the hibernation userland interface,
SNAPSHOT_ATOMIC_SNAPSHOT, SNAPSHOT_AVAIL_SWAP, SNAPSHOT_GET_SWAP_PAGE,
are defined in a wrong way (eg. not portable).  Provide new ioctl numbers for
these ioctls and mark the existing ones as deprecated.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Mark SNAPSHOT_SET_SWAP_FILE ioctl as deprecated (rev. 2)
Rafael J. Wysocki [Thu, 25 Oct 2007 23:02:15 +0000 (01:02 +0200)]
Hibernation: Mark SNAPSHOT_SET_SWAP_FILE ioctl as deprecated (rev. 2)

Mark the SNAPSHOT_SET_SWAP_FILE ioctl belonging to the hibernation userland
interface as deprecated.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoHibernation: Rework platform support ioctls (rev. 2)
Rafael J. Wysocki [Thu, 25 Oct 2007 23:01:10 +0000 (01:01 +0200)]
Hibernation: Rework platform support ioctls (rev. 2)

Modify the hibernation userland interface by adding two new ioctls to it,
SNAPSHOT_PLATFORM_SUPPORT and SNAPSHOT_POWER_OFF, that can be used,
respectively, to switch the hibernation platform support on/off and to make the
kernel transition the system to the hibernation state (eg. ACPI S4) using the
platform (eg. ACPI) driver.

These ioctls are intended to replace the misdesigned SNAPSHOT_PMOPS ioctl,
which from now is regarded as obsolete and will be removed in the future.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Len Brown <len.brown@intel.com>