pandora-kernel.git
13 years agomx25/clocks: match esdhc-clocks to platform device
Wolfram Sang [Mon, 11 Oct 2010 13:04:53 +0000 (15:04 +0200)]
mx25/clocks: match esdhc-clocks to platform device

So the correct clock will be taken for each of the two independent
controllers.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Cc: Eric Bénard <eric@eukrea.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agomxc/gpio: make _set_value work with values != 0/1
Peter Korsgaard [Mon, 11 Oct 2010 13:02:06 +0000 (15:02 +0200)]
mxc/gpio: make _set_value work with values != 0/1

Documentation/gpio.txt specifies that the value argument to
gpio_set_value() should be handled as a boolean (E.G. != 0 is high),
so use the same logic as in _set_direction().

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoMX35: Fix bogus L2 cache settings
Juergen Beisert [Wed, 22 Sep 2010 07:42:15 +0000 (09:42 +0200)]
MX35: Fix bogus L2 cache settings

i.MX35 CPUs marked with "MCIMX357CJQ5C M99V CTHA0943B" are coming with bogus
L2 cache settings. If these settings are kept unmodified prior enabling the L2
cache the CPU runs amok immediately when its enabled.

This fix should not hurt already working CPUs, as they are using the written
register value already.

Its currently unknown if its possible to detect the production lot from the
software to fix only affected CPUs.

While at it, make sure that mxc_init_l2x0 is only executed on i.MX31/35

Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx3/cpuimx35: mark otg_pdata and usbh1_pdata as maybe unused
Uwe Kleine-König [Wed, 6 Oct 2010 10:00:19 +0000 (12:00 +0200)]
ARM: mx3/cpuimx35: mark otg_pdata and usbh1_pdata as maybe unused

This fixes

arch/arm/mach-mx3/mach-cpuimx35.c:143: warning: 'otg_pdata' defined but not used
arch/arm/mach-mx3/mach-cpuimx35.c:148: warning: 'usbh1_pdata' defined but not used

when USB_ULPI is not selected.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: imx: dynamically register fec devices
Uwe Kleine-König [Wed, 6 Oct 2010 10:00:18 +0000 (12:00 +0200)]
ARM: imx: dynamically register fec devices

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: imx: fix/define clocks and create devices for imx dma
Uwe Kleine-König [Fri, 8 Oct 2010 14:00:11 +0000 (16:00 +0200)]
ARM: imx: fix/define clocks and create devices for imx dma

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx35: Add mx35_revision function to query the silicon revision
Eric Bénard [Fri, 8 Oct 2010 14:00:10 +0000 (16:00 +0200)]
ARM: mx35: Add mx35_revision function to query the silicon revision

Based on work done earlier by Sascha Hauer

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Eric Bénard <eric@eukrea.com>
[ukl: actually squash the two approaches together]
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx3: use MX3x_ prefixed version of CHIP_REV_x
Sascha Hauer [Fri, 8 Oct 2010 14:00:09 +0000 (16:00 +0200)]
ARM: mx3: use MX3x_ prefixed version of CHIP_REV_x

Also, remove the deprecated symbols from arch/arm/mach-mx3/cpu.c

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoeukrea_mbimxsd for cpuimx25: add CAN & SDCard support
Eric Bénard [Sat, 2 Oct 2010 15:15:29 +0000 (17:15 +0200)]
eukrea_mbimxsd for cpuimx25: add CAN & SDCard support

Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoi.mx25: add esdhc support
Eric Bénard [Sat, 2 Oct 2010 15:15:28 +0000 (17:15 +0200)]
i.mx25: add esdhc support

Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoeukrea_mbimxsd for cpuimx35: add CAN & SDCard support
Eric Bénard [Sat, 2 Oct 2010 15:15:27 +0000 (17:15 +0200)]
eukrea_mbimxsd for cpuimx35: add CAN & SDCard support

Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoarm: pcm043: add esdhc-device to boardconfig
Wolfram Sang [Mon, 11 Oct 2010 10:55:23 +0000 (12:55 +0200)]
arm: pcm043: add esdhc-device to boardconfig

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoarm: imx35: add esdhc-device to MX35-platform
Wolfram Sang [Mon, 11 Oct 2010 10:55:22 +0000 (12:55 +0200)]
arm: imx35: add esdhc-device to MX35-platform

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoarm: imx: add generic esdhc device
Wolfram Sang [Mon, 11 Oct 2010 10:55:21 +0000 (12:55 +0200)]
arm: imx: add generic esdhc device

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agomach-cpuimx35: remove unecessary tsc2007 functions + style cleanup
Eric Bénard [Sat, 2 Oct 2010 15:15:26 +0000 (17:15 +0200)]
mach-cpuimx35: remove unecessary tsc2007 functions + style cleanup

- remove functions which are no more necessary for tsc2007
- indent platform_data for better readability

Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: imx/pca100: only specify i2c device type once
Uwe Kleine-König [Tue, 28 Sep 2010 20:04:01 +0000 (22:04 +0200)]
ARM: imx/pca100: only specify i2c device type once

The first argument to I2C_BOARD_INFO is used to assign .type, so it should
not be specified a second time.

For the rtc-pcf8563/pcf8563 entry gcc preferred pcf8563, so did I.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: imx/pcm970: make platform_data static
Uwe Kleine-König [Tue, 28 Sep 2010 19:55:22 +0000 (21:55 +0200)]
ARM: imx/pcm970: make platform_data static

This fixes the following sparse warning:

arch/arm/mach-imx/pcm970-baseboard.c:224:13: warning: symbol 'pcm970_baseboard_init' was not declared. Should it be static?

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: imx: make all pin lists const and signed, move to .init where possible
Uwe Kleine-König [Tue, 28 Sep 2010 19:53:31 +0000 (21:53 +0200)]
ARM: imx: make all pin lists const and signed, move to .init where possible

Making the lists signed fixes sparse warnings like:

arch/arm/mach-imx/mach-mx27_3ds.c:94:31: warning: incorrect type in argument 1 (different signedness)
arch/arm/mach-imx/mach-mx27_3ds.c:94:31:    expected int const *pin_list
arch/arm/mach-imx/mach-mx27_3ds.c:94:31:    got unsigned int static [toplevel] *<noident>

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: imx/pcm038: make regulator platform data static
Uwe Kleine-König [Tue, 28 Sep 2010 19:39:49 +0000 (21:39 +0200)]
ARM: imx/pcm038: make regulator platform data static

This fixes the following sparse warning:

arch/arm/mach-imx/pcm970-baseboard.c:203:30: warning: symbol 'pcm970_sja1000_platform_data' was not declared. Should it be static?

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: imx/clock-imx27: Pass NULL as function callback, not 0
Uwe Kleine-König [Tue, 28 Sep 2010 19:37:20 +0000 (21:37 +0200)]
ARM: imx/clock-imx27: Pass NULL as function callback, not 0

This fixes many sparse warnings like:

arch/arm/mach-imx/clock-imx27.c:597:1: warning: Using plain integer as NULL pointer

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5: clock-imx51: make *ipg clocks secondary clocks of their corresponding perip...
Sascha Hauer [Wed, 25 Aug 2010 09:56:26 +0000 (11:56 +0200)]
ARM: mx5: clock-imx51: make *ipg clocks secondary clocks of their corresponding peripheral clocks

Currently the uarts and timer only work because they are
turned on by reset default. Make them secondary clocks
of their corresponding peripheral clocks to make sure they
are turned on when necessary. Also, register some clocks
to get rid of compiler warnings

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5: dynamically register mxc-nand device
Sascha Hauer [Tue, 3 Aug 2010 09:59:46 +0000 (11:59 +0200)]
ARM: mx5: dynamically register mxc-nand device

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: imx: reorganize nand registration to use a struct
Uwe Kleine-König [Mon, 23 Aug 2010 09:25:52 +0000 (11:25 +0200)]
ARM: imx: reorganize nand registration to use a struct

Addiontionally make the interrupt #defines match the base address
defines MX.._NFC_BASE_ADDR.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx51: Add audmux support
Sascha Hauer [Fri, 20 Aug 2010 14:44:34 +0000 (16:44 +0200)]
ARM: mx51: Add audmux support

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx51: add imx-ssi devices
Sascha Hauer [Fri, 20 Aug 2010 14:43:54 +0000 (16:43 +0200)]
ARM: mx51: add imx-ssi devices

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx51: dynamically register imx-uart devices
Uwe Kleine-König [Wed, 11 Aug 2010 20:23:06 +0000 (22:23 +0200)]
ARM: mx51: dynamically register imx-uart devices

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5: Add Nand clock support
Sascha Hauer [Tue, 3 Aug 2010 09:59:07 +0000 (11:59 +0200)]
ARM: mx5: Add Nand clock support

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5/iomux-mx51: Fix input path of some pins in gpio mode
Sascha Hauer [Tue, 24 Aug 2010 12:49:09 +0000 (14:49 +0200)]
ARM: mx5/iomux-mx51: Fix input path of some pins in gpio mode

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5/iomux-mx51: Add aud3 primary function defines
Sascha Hauer [Fri, 20 Aug 2010 16:35:51 +0000 (18:35 +0200)]
ARM: mx5/iomux-mx51: Add aud3 primary function defines

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5/iomux-mx51: Add SPI controller pads
Sascha Hauer [Fri, 20 Aug 2010 08:45:11 +0000 (10:45 +0200)]
ARM: mx5/iomux-mx51: Add SPI controller pads

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5/mx51_3ds: add SPI NOR flash in the board init stage
Jason Wang [Thu, 2 Sep 2010 07:52:04 +0000 (15:52 +0800)]
ARM: mx5/mx51_3ds: add SPI NOR flash in the board init stage

A 2M bytes SPI NOR flash(sst25vf016b) is soldered on the mx51_3ds
board.  So add the corresponding device for it.

Signed-off-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5/mx51_3ds: add eCSPI2 support on the imx51_3ds board
Jason Wang [Thu, 2 Sep 2010 07:52:03 +0000 (15:52 +0800)]
ARM: mx5/mx51_3ds: add eCSPI2 support on the imx51_3ds board

Signed-off-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5/iomux-mx51: add iomux definitions for eCSPI2 on the imx51_3ds board
Jason Wang [Thu, 2 Sep 2010 07:52:02 +0000 (15:52 +0800)]
ARM: mx5/iomux-mx51: add iomux definitions for eCSPI2 on the imx51_3ds board

On the imx51_3ds board, eCSPI2 is connected to a SPI NOR flash,
now add iomux definitions for those used pins.

Signed-off-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5/clock-mx51: add spi clocks
Jason Wang [Thu, 2 Sep 2010 07:52:00 +0000 (15:52 +0800)]
ARM: mx5/clock-mx51: add spi clocks

Signed-off-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5/clock-mx51: new macro that defines a clk with all members
Uwe Kleine-König [Fri, 10 Sep 2010 15:01:26 +0000 (17:01 +0200)]
ARM: mx5/clock-mx51: new macro that defines a clk with all members

Acked-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5/clock-mx51: refactor ccgr callbacks to use common code
Uwe Kleine-König [Fri, 10 Sep 2010 14:58:42 +0000 (16:58 +0200)]
ARM: mx5/clock-mx51: refactor ccgr callbacks to use common code

Acked-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5: add spi_imx device registration
Uwe Kleine-König [Fri, 10 Sep 2010 14:57:07 +0000 (16:57 +0200)]
ARM: mx5: add spi_imx device registration

Acked-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: imx: use platform ids for spi_imx devices
Uwe Kleine-König [Thu, 9 Sep 2010 19:02:02 +0000 (21:02 +0200)]
ARM: imx: use platform ids for spi_imx devices

The driver recently learned to handle platform ids.  Make use of this
new feature.  The up side is that the driver needs less knowledge about
the spi interfaces used on different SoCs.

Acked-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agospi/imx: add support for imx51's eCSPI and CSPI
Uwe Kleine-König [Thu, 9 Sep 2010 19:02:48 +0000 (21:02 +0200)]
spi/imx: add support for imx51's eCSPI and CSPI

i.MX51 comes with two eCSPI interfaces (that are quite different from
what was known before---the tried and tested Freescale way) and a CSPI
interface that is identical to the devices found on i.MX25 and i.MX35.

This patch is a merge of two very similar patches (by Jason Wang and Sascha
Hauer resp.) plus a (now hopefully correct) reimplementation of the
clock calculation.

Acked-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agospi/imx: save the spi chip select in config struct, not the gpio to use
Uwe Kleine-König [Fri, 10 Sep 2010 07:42:29 +0000 (09:42 +0200)]
spi/imx: save the spi chip select in config struct, not the gpio to use

This prepares adding support for imx51's eCSPI.  This IP has seperate
control and config bits for all four supported chip selects, so the
config routine needs to know which chip select is being used even if
the chipselect is realized by a gpio.

Acked-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agospi/imx: get rid of more ifs depending on the used cpu
Uwe Kleine-König [Fri, 10 Sep 2010 07:19:18 +0000 (09:19 +0200)]
spi/imx: get rid of more ifs depending on the used cpu

Nearly everything that is needed is provided by the version of the SPI IP.
Now the only checks left using cpu_is_... are clk divider tuning on mx21/mx27
and autodetection (which will die soon).

Acked-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agospi/imx: convert driver to use platform ids
Uwe Kleine-König [Thu, 9 Sep 2010 13:29:01 +0000 (15:29 +0200)]
spi/imx: convert driver to use platform ids

This has the advantage not to need to much cpu_is_... macros.  Still more
when imx51 support is added which has two different spi interfaces which
would introduce additional checks on the device id.

With this setup it's not possible for the compiler anymore to detect the
unused functions, so four additional kconfig symbols are introduced to
ifdef out the unneeded functions in the callback array and all these
functions are marked with __maybe_unused to suppress the corresponding
gcc warnings.

Comparing the driver footprint with and without the patch for a mx27
kernel yields:

add/remove: 2/0 grow/shrink: 2/0 up/down: 280/0 (280)
function                                     old     new   delta
spi_imx_devtype                                -     192    +192
spi_imx_probe                                980    1032     +52
spi_imx_devtype_data                           -      32     +32
spi_imx_setupxfer                            276     280      +4

Later when the platform code is updated to use the platform ids, the
autodetection can be removed which will make the driver a bit smaller
again.  (~60 Bytes in my test.)

Acked-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agospi/imx: default to m on platforms that have such devices
Uwe Kleine-König [Thu, 9 Sep 2010 09:12:12 +0000 (11:12 +0200)]
spi/imx: default to m on platforms that have such devices

Acked-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: imx: fix name of macros to add imx-i2c devices
Uwe Kleine-König [Wed, 25 Aug 2010 10:19:50 +0000 (12:19 +0200)]
ARM: imx: fix name of macros to add imx-i2c devices

This is a follow up to

c698715 (ARM: imx: dynamically register imx-i2c devices (imx27))
2b92084 (ARM: imx: dynamically register imx-i2c devices (imx21))
6348e6b (ARM: imx: dynamically register imx-i2c devices (imx1))

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: mx5: dynamically register imx-i2c devices
Uwe Kleine-König [Thu, 30 Sep 2010 14:44:53 +0000 (16:44 +0200)]
ARM: mx5: dynamically register imx-i2c devices

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
13 years agoARM: imx: reorganize imx-i2c device registration to use a struct per SoC
Uwe Kleine-König [Tue, 21 Sep 2010 10:13:34 +0000 (12:13 +0200)]
ARM: imx: reorganize imx-i2c device registration to use a struct per SoC

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: imx: dynamically allocate imx-ssi devices
Uwe Kleine-König [Wed, 25 Aug 2010 15:37:45 +0000 (17:37 +0200)]
ARM: imx: dynamically allocate imx-ssi devices

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: imx: change the way imx-uarts are registered
Uwe Kleine-König [Tue, 10 Aug 2010 20:57:24 +0000 (22:57 +0200)]
ARM: imx: change the way imx-uarts are registered

For mx1_defconfig this yields:

add/remove: 1/0 grow/shrink: 1/4 up/down: 49/-108 (-59)
function                                     old     new   delta
imx1_imx_uart_data                             -      48     +48
kernel_config_data                          7277    7278      +1
imx_add_imx_uart_1irq                        132     128      -4
imx_add_imx_uart_3irq                        164     156      -8
scb9328_init                                  96      64     -32
mx1ads_init                                  220     156     -64

for mx21_defconfig this yields:

add/remove: 1/0 grow/shrink: 0/3 up/down: 64/-52 (12)
function                                     old     new   delta
imx21_imx_uart_data                            -      64     +64
imx_add_imx_uart_3irq                        160     156      -4
imx_add_imx_uart_1irq                        140     136      -4
mx21ads_board_init                           220     176     -44

for a random mx25 config this yields:

add/remove: 1/0 grow/shrink: 0/5 up/down: 80/-56 (24)
function                                     old     new   delta
imx25_imx_uart_data                            -      80     +80
imx_add_imx_uart_3irq                        160     156      -4
imx_add_imx_uart_1irq                        140     136      -4
mx25pdk_init                                 288     272     -16
eukrea_mbimxsd_baseboard_init                272     256     -16
eukrea_cpuimx25_init                         252     236     -16

for mx27_defconfig this yields:

add/remove: 1/0 grow/shrink: 0/10 up/down: 96/-280 (-184)
function                                     old     new   delta
imx27_imx_uart_data                            -      96     +96
imx_add_imx_uart_3irq                        160     156      -4
imx_add_imx_uart_1irq                        140     136      -4
pca100_init                                  560     544     -16
mx27pdk_init                                 112      96     -16
mx27lite_init                                 92      76     -16
eukrea_cpuimx27_init                         332     316     -16
pcm038_init                                  388     348     -40
mxt_td60_board_init                          320     280     -40
eukrea_mbimx27_baseboard_init                476     436     -40
mx27ads_board_init                           368     280     -88

and finally for mx3_defconfig:

add/remove: 2/0 grow/shrink: 0/9 up/down: 128/-344 (-216)
function                                     old     new   delta
imx31_imx_uart_data                            -      80     +80
imx35_imx_uart_data                            -      48     +48
imx_add_imx_uart_1irq                        132     128      -4
imx_add_imx_uart_3irq                        164     152     -12
mx31moboard_devboard_init                    360     344     -16
mx31lite_db_init                             176     160     -16
mx31moboard_smartbot_init                    384     360     -24
kzm_board_init                               232     208     -24
armadillo5x0_init                            392     364     -28
mx31lilly_db_init                            248     208     -40
mxc_board_init                              3760    3580    -180

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: imx: change the way spi-imx devices are registered
Uwe Kleine-König [Thu, 9 Sep 2010 19:02:02 +0000 (21:02 +0200)]
ARM: imx: change the way spi-imx devices are registered

Group soc specific data in a global struct instead of repeating it for
each call to imxXX_add_spi_imxX.  The structs holding the actual data
are placed in .init.constdata and so don't do much harm.  Compared to
the previous approach this reduces code size to call imx_add_spi_imx.

Acked-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx51: use IMX_IO_ADDRESS to define MX51_IO_ADDRESS
Uwe Kleine-König [Tue, 3 Aug 2010 14:09:35 +0000 (16:09 +0200)]
ARM: mx51: use IMX_IO_ADDRESS to define MX51_IO_ADDRESS

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx51: fix naming of spi related defines
Uwe Kleine-König [Tue, 3 Aug 2010 14:15:29 +0000 (16:15 +0200)]
ARM: mx51: fix naming of spi related defines

The names used now match the processor's reference manual.  Also remove
MXC from the interrupt defines to match the other imx platforms.

Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Acked-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx51: clean up mx51 header
Uwe Kleine-König [Tue, 3 Aug 2010 14:03:26 +0000 (16:03 +0200)]
ARM: mx51: clean up mx51 header

This makes the header more look like the other ones, i.e.

 - sort #defines by value
 - use lowercase hex constants
 - use a consistently named header guard

Acked-by: Jason Wang <jason77.wang@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx51_defconfig: add new boards MACH_MX51_3DS and MACH_EUKREA_CPUIMX51
Uwe Kleine-König [Tue, 21 Sep 2010 08:46:15 +0000 (10:46 +0200)]
ARM: mx51_defconfig: add new boards MACH_MX51_3DS and MACH_EUKREA_CPUIMX51

Further remove FIXED_PHY as it breaks the ethernet.
VGA_CONSOLE isn't selectable anymore since fb78b51cb11e.
EXT3_DEFAULTS_TO_ORDERED defaults to y since aa32a796389b.
INOTIFY is gone since 2dfc1cae4c42.
CONFIG_DETECT_SOFTLOCKUP is gone since e16bb1d7fe07.
Enable TMPFS for udev.
KEYS is selected by NFS_USE_KERNEL_DNS

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: remove mx31pdk_defconfig
Uwe Kleine-König [Wed, 11 Aug 2010 05:32:33 +0000 (07:32 +0200)]
ARM: remove mx31pdk_defconfig

This machine is enabled in mx3_defconfig and so mx31pdk_defconfig isn't
really useful.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx3_defconfig: add new machine MACH_EUKREA_CPUIMX35
Uwe Kleine-König [Fri, 13 Aug 2010 10:38:56 +0000 (12:38 +0200)]
ARM: mx3_defconfig: add new machine MACH_EUKREA_CPUIMX35

Furthermore INOTIFY is gone since

2dfc1ca (inotify: remove inotify in kernel interface)

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx27_defconfig: enable switches used in mx27 code
Uwe Kleine-König [Tue, 21 Sep 2010 10:35:41 +0000 (12:35 +0200)]
ARM: mx27_defconfig: enable switches used in mx27 code

- enable all mx27 machines (MACH_CPUIMX27, MACH_IMX27_VISSTRIM_M10,
  MACH_PCA100, MACH_MXT_TD60) including optional features for
  CPUIMX27
- eukrea_mbimx27-baseboard.c uses TOUCHSCREEN_ADS7846
- mach-cpuimx27.c uses SERIAL_8250
- several machines make use of SPI_IMX (selects SPI_BITBANG)
- drop VGA_CONSOLE as this isn't selectable anymore since fb78b51cb11e
- several machines make use of USB_ULPI (depends on USB, but don't
  enable USB_DEVICE_CLASS as it's deprecated)

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx5/mx51_babbage: don't use PHYS_OFFSET
Uwe Kleine-König [Tue, 24 Aug 2010 10:33:23 +0000 (12:33 +0200)]
ARM: mx5/mx51_babbage: don't use PHYS_OFFSET

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx5/mx51_babbage: fix compiler warnings
Sascha Hauer [Thu, 19 Aug 2010 09:37:31 +0000 (11:37 +0200)]
ARM: mx5/mx51_babbage: fix compiler warnings

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: imx: ehci: use void __iomem * to hold i/o addresses
Uwe Kleine-König [Fri, 13 Aug 2010 15:34:05 +0000 (17:34 +0200)]
ARM: imx: ehci: use void __iomem * to hold i/o addresses

This fixes:

arch/arm/plat-mxc/ehci.c: In function 'mxc_initialize_usb_hw':
arch/arm/plat-mxc/ehci.c:260: warning: assignment makes integer from pointer without a cast
arch/arm/plat-mxc/ehci.c:263: warning: assignment makes integer from pointer without a cast
arch/arm/plat-mxc/ehci.c:270: warning: assignment makes integer from pointer without a cast

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: imx: remove #ifdefery for unmerged flexcan driver
Uwe Kleine-König [Sat, 14 Aug 2010 12:00:16 +0000 (14:00 +0200)]
ARM: imx: remove #ifdefery for unmerged flexcan driver

The flexcan driver was merged as e955cead.

Cc: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx5/mx51_babbage: Add FEC support
Fabio Estevam [Mon, 23 Aug 2010 14:32:09 +0000 (07:32 -0700)]
ARM: mx5/mx51_babbage: Add FEC support

Tested it by booting a rootfs via NFS.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx3/imx35: Add EPIT support
Sascha Hauer [Thu, 19 Aug 2010 12:08:05 +0000 (14:08 +0200)]
ARM: mx3/imx35: Add EPIT support

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: imx: Add EPIT support
Sascha Hauer [Thu, 19 Aug 2010 12:08:04 +0000 (14:08 +0200)]
ARM: imx: Add EPIT support

The Enhanced Periodic Interrupt Timer (EPIT) is found on newer
i.MX SoCs and can be used as an alternative system timer.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx3/mx35_3ds: add usb host2 support
Marc Kleine-Budde [Wed, 18 Aug 2010 16:26:42 +0000 (18:26 +0200)]
ARM: mx3/mx35_3ds: add usb host2 support

we still have to toggle two pins on the mc9sdz60:

/* MUX3_CTR to be low for USB Host2 DP&DM */
pmic_gpio_set_bit_val(MCU_GPIO_REG_GPIO_CONTROL_2, 6, 0);

/* CAN_PWDN to be high for USB Host2 Power&OC */
pmic_gpio_set_bit_val(MCU_GPIO_REG_GPIO_CONTROL_2, 1, 1);

until we've a proper driver for the mx9sdz60 in linux we'll do this in
barebox (a.k.a. u-boot-v2)

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx3/mx35_3ds: rename usb otg platform data variable name
Marc Kleine-Budde [Wed, 18 Aug 2010 15:56:44 +0000 (17:56 +0200)]
ARM: mx3/mx35_3ds: rename usb otg platform data variable name

Rename the variable holding the usb otg platform data to avoid clash
with usb host platform data variable.

usb_pdata -> usb_otg_pdata

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx3/mx35_3ds: add NAND flash
Marc Kleine-Budde [Wed, 18 Aug 2010 16:22:59 +0000 (18:22 +0200)]
ARM: mx3/mx35_3ds: add NAND flash

The mx35_3ds comes with 2 GiByte NAND flash.  This adds the
corresponding platform device.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: mx3/mx35_3ds: add physmap-flash NOR at CS0
Marc Kleine-Budde [Wed, 18 Aug 2010 16:20:24 +0000 (18:20 +0200)]
ARM: mx3/mx35_3ds: add physmap-flash NOR at CS0

The mx35_3ds comes with 64 MiByte for NOR flash at CS0, add physmap-flash
platform device for it.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoARM: imx: Add support for Vista Silicon Visstrim_m10 board
Javier Martin [Fri, 30 Jul 2010 08:06:01 +0000 (10:06 +0200)]
ARM: imx: Add support for Vista Silicon Visstrim_m10 board

Vista Silicon Visstrim_m10 i.MX27 based board is used
as multimedia streaming server, access control and other
custom applications.

Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoLinux 2.6.36-rc4 v2.6.36-rc4
Linus Torvalds [Sun, 12 Sep 2010 23:07:37 +0000 (16:07 -0700)]
Linux 2.6.36-rc4

13 years agodocbook: skip files with no docs since they generate scary warnings
Randy Dunlap [Sat, 11 Sep 2010 22:55:26 +0000 (15:55 -0700)]
docbook: skip files with no docs since they generate scary warnings

Fix docbook templates that reference files that do not contain the
expected kernel-doc notation.

Fixes these warnings:

  Warning(arch/x86/include/asm/unaligned.h): no structured comments found
  Warning(lib/vsprintf.c): no structured comments found

These cause errors in the generated html output, like below, so drop
these lines.

  Name
  arch/x86/include/asm/unaligned.h - Document generation inconsistency
  Oops
  Warning
  The template for this document tried to insert the structured comment from the file arch/x86/include/asm/unaligned.h at this point, but none was found. This dummy section is inserted to allow generation to continue.

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agodocbook: warn on unused doc entries
Johannes Berg [Sat, 11 Sep 2010 22:55:22 +0000 (15:55 -0700)]
docbook: warn on unused doc entries

When you don't use !E or !I but only !F, then it's very easy to miss
including some functions, structs etc.  in documentation.  To help
finding which ones were missed, allow printing out the unused ones as
warnings.

For example, using this on mac80211 yields a lot of warnings like this:

  Warning: didn't use docs for DOC: mac80211 workqueue
  Warning: didn't use docs for ieee80211_max_queues
  Warning: didn't use docs for ieee80211_bss_change
  Warning: didn't use docs for ieee80211_bss_conf

when generating the documentation for it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agokernel-doc: ignore case when stripping attributes
Johannes Berg [Sat, 11 Sep 2010 22:55:12 +0000 (15:55 -0700)]
kernel-doc: ignore case when stripping attributes

There are valid attributes that could have upper case letters, but we
still want to remove, like for example
__attribute__((aligned(NETDEV_ALIGN)))
as encountered in the wireless code.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoMerge branch 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspe...
Linus Torvalds [Sat, 11 Sep 2010 22:50:53 +0000 (15:50 -0700)]
Merge branch 'pm-fixes' of git://git./linux/kernel/git/rafael/suspend-2.6

* 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
  PM / Hibernate: Avoid hitting OOM during preallocation of memory
  PM QoS: Correct pr_debug() misuse and improve parameter checks
  PM: Prevent waiting forever on asynchronous resume after failing suspend

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
Linus Torvalds [Sat, 11 Sep 2010 19:17:02 +0000 (12:17 -0700)]
Merge git://git./linux/kernel/git/jejb/scsi-rc-fixes-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
  [SCSI] fix use-after-free in scsi_init_io()
  [SCSI] sd: fix medium-removal bug
  [SCSI] qla2xxx: Update version number to 8.03.04-k0.
  [SCSI] qla2xxx: Check for empty slot in request queue before posting Command type 6 request.
  [SCSI] qla2xxx: Cover UNDERRUN case where SCSI status is set.
  [SCSI] qla2xxx: Correctly set fw hung and complete only waiting mbx.
  [SCSI] qla2xxx: Reset seconds_since_last_heartbeat correctly.
  [SCSI] qla2xxx: make rport deletions explicit during vport removal
  [SCSI] qla2xxx: Fix vport delete issues
  [SCSI] sd, sym53c8xx: Remove warnings after vsprintf %pV introducation.
  [SCSI] Fix warning: zero-length gnu_printf format string
  [SCSI] hpsa: disable doorbell reset on reset_devices
  [SCSI] be2iscsi: Fix for Login failure
  [SCSI] fix bio.bi_rw handling

13 years agoPM / Hibernate: Avoid hitting OOM during preallocation of memory
Rafael J. Wysocki [Sat, 11 Sep 2010 18:58:27 +0000 (20:58 +0200)]
PM / Hibernate: Avoid hitting OOM during preallocation of memory

There is a problem in hibernate_preallocate_memory() that it calls
preallocate_image_memory() with an argument that may be greater than
the total number of available non-highmem memory pages.  If that's
the case, the OOM condition is guaranteed to trigger, which in turn
can cause significant slowdown to occur during hibernation.

To avoid that, make preallocate_image_memory() adjust its argument
before calling preallocate_image_pages(), so that the total number of
saveable non-highem pages left is not less than the minimum size of
a hibernation image.  Change hibernate_preallocate_memory() to try to
allocate from highmem if the number of pages allocated by
preallocate_image_memory() is too low.

Modify free_unnecessary_pages() to take all possible memory
allocation patterns into account.

Reported-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Tested-by: M. Vefa Bicakci <bicave@superonline.com>
13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Sat, 11 Sep 2010 15:06:38 +0000 (08:06 -0700)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (28 commits)
  ipheth: remove incorrect devtype to WWAN
  MAINTAINERS: Add CAIF
  sctp: fix test for end of loop
  KS8851: Correct RX packet allocation
  udp: add rehash on connect()
  net: blackhole route should always be recalculated
  ipv4: Suppress lockdep-RCU false positive in FIB trie (3)
  niu: Fix kernel buffer overflow for ETHTOOL_GRXCLSRLALL
  ipvs: fix active FTP
  gro: Re-fix different skb headrooms
  via-velocity: Turn scatter-gather support back off.
  ipv4: Fix reverse path filtering with multipath routing.
  UNIX: Do not loop forever at unix_autobind().
  PATCH: b44 Handle RX FIFO overflow better (simplified)
  irda: off by one
  3c59x: Fix deadlock in vortex_error()
  netfilter: discard overlapping IPv6 fragment
  ipv6: discard overlapping fragment
  net: fix tx queue selection for bridged devices implementing select_queue
  bonding: Fix jiffies overflow problems (again)
  ...

Fix up trivial conflicts due to the same cgroup API thinko fix going
through both Andrew and the networking tree.  However, there were small
differences between the two, with Andrew's version generally being the
nicer one, and the one I merged first. So pick that one.

Conflicts in: include/linux/cgroup.h and kernel/cgroup.c

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Sat, 11 Sep 2010 15:01:09 +0000 (08:01 -0700)]
Merge git://git./linux/kernel/git/davem/sparc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  sparc: Kill all BKL usage.

13 years agoMerge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Sat, 11 Sep 2010 14:59:49 +0000 (07:59 -0700)]
Merge branch 'sched-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, tsc: Fix a preemption leak in restore_sched_clock_state()
  sched: Move sched_avg_update() to update_cpu_load()

13 years agox86, tsc: Fix a preemption leak in restore_sched_clock_state()
Peter Zijlstra [Fri, 10 Sep 2010 20:32:53 +0000 (22:32 +0200)]
x86, tsc: Fix a preemption leak in restore_sched_clock_state()

Doh, a real life genuine preemption leak..

This caused a suspend failure.

Reported-bisected-and-tested-by-the-invaluable: Jeff Chua <jeff.chua.linux@gmail.com>
Acked-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Nico Schottelius <nico-linux-20100709@schottelius.org>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Florian Pritz <flo@xssn.at>
Cc: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Len Brown <lenb@kernel.org>
Cc: <stable@kernel.org> # Greg, please apply after: cd7240c ("x86, tsc, sched: Recompute cyc2ns_offset's during resume from")
sleep states
LKML-Reference: <1284150773.402.122.camel@laptop>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
13 years agoMerge branch 'drm-intel-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ickle...
Linus Torvalds [Sat, 11 Sep 2010 01:19:43 +0000 (18:19 -0700)]
Merge branch 'drm-intel-fixes' of git://git./linux/kernel/git/ickle/drm-intel

* 'drm-intel-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel:
  drm/i915: don't enable self-refresh on Ironlake
  drm/i915: Double check that the wait_request is not pending before warning
  Revert "drm/i915: Warn if we run out of FIFO space for a mode"
  Revert "drm/i915: Allow LVDS on pipe A on gen4+"
  Revert "drm/i915: Enable RC6 on Ironlake."

13 years agoMerge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
Linus Torvalds [Sat, 11 Sep 2010 01:19:26 +0000 (18:19 -0700)]
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs

* 'for-linus' of git://oss.sgi.com/xfs/xfs:
  xfs: log IO completion workqueue is a high priority queue
  xfs: prevent reading uninitialized stack memory

13 years agox86, tsc: Fix a preemption leak in restore_sched_clock_state()
Peter Zijlstra [Fri, 10 Sep 2010 20:32:53 +0000 (22:32 +0200)]
x86, tsc: Fix a preemption leak in restore_sched_clock_state()

A real life genuine preemption leak..

Reported-and-tested-by: Jeff Chua <jeff.chua.linux@gmail.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoPM QoS: Correct pr_debug() misuse and improve parameter checks
mark gross [Thu, 9 Sep 2010 21:20:09 +0000 (23:20 +0200)]
PM QoS: Correct pr_debug() misuse and improve parameter checks

Correct some pr_debug() misuse and add a stronger parameter check to
pm_qos_write() for the ASCII hex value case.  Thanks to Dan Carpenter
for pointing out the problem!

Signed-off-by: mark gross <markgross@thegnar.org>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
13 years agoxfs: log IO completion workqueue is a high priority queue
Dave Chinner [Wed, 8 Sep 2010 09:00:22 +0000 (09:00 +0000)]
xfs: log IO completion workqueue is a high priority queue

The workqueue implementation in 2.6.36-rcX has changed, resulting
in the workqueues no longer having dedicated threads for work
processing. This has caused severe livelocks under heavy parallel
create workloads because the log IO completions have been getting
held up behind metadata IO completions.  Hence log commits would
stall, memory allocation would stall because pages could not be
cleaned, and lock contention on the AIL during inode IO completion
processing was being seen to slow everything down even further.

By making the log Io completion workqueue a high priority workqueue,
they are queued ahead of all data/metadata IO completions and
processed before the data/metadata completions. Hence the log never
gets stalled, and operations needed to clean memory can continue as
quickly as possible. This avoids the livelock conditions and allos
the system to keep running under heavy load as per normal.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Elder <aelder@sgi.com>
13 years agoexecve: make responsive to SIGKILL with large arguments
Roland McGrath [Wed, 8 Sep 2010 02:37:06 +0000 (19:37 -0700)]
execve: make responsive to SIGKILL with large arguments

An execve with a very large total of argument/environment strings
can take a really long time in the execve system call.  It runs
uninterruptibly to count and copy all the strings.  This change
makes it abort the exec quickly if sent a SIGKILL.

Note that this is the conservative change, to interrupt only for
SIGKILL, by using fatal_signal_pending().  It would be perfectly
correct semantics to let any signal interrupt the string-copying in
execve, i.e. use signal_pending() instead of fatal_signal_pending().
We'll save that change for later, since it could have user-visible
consequences, such as having a timer set too quickly make it so that
an execve can never complete, though it always happened to work before.

Signed-off-by: Roland McGrath <roland@redhat.com>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoexecve: improve interactivity with large arguments
Roland McGrath [Wed, 8 Sep 2010 02:36:28 +0000 (19:36 -0700)]
execve: improve interactivity with large arguments

This adds a preemption point during the copying of the argument and
environment strings for execve, in copy_strings().  There is already
a preemption point in the count() loop, so this doesn't add any new
points in the abstract sense.

When the total argument+environment strings are very large, the time
spent copying them can be much more than a normal user time slice.
So this change improves the interactivity of the rest of the system
when one process is doing an execve with very large arguments.

Signed-off-by: Roland McGrath <roland@redhat.com>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agosetup_arg_pages: diagnose excessive argument size
Roland McGrath [Wed, 8 Sep 2010 02:35:49 +0000 (19:35 -0700)]
setup_arg_pages: diagnose excessive argument size

The CONFIG_STACK_GROWSDOWN variant of setup_arg_pages() does not
check the size of the argument/environment area on the stack.
When it is unworkably large, shift_arg_pages() hits its BUG_ON.
This is exploitable with a very large RLIMIT_STACK limit, to
create a crash pretty easily.

Check that the initial stack is not too large to make it possible
to map in any executable.  We're not checking that the actual
executable (or intepreter, for binfmt_elf) will fit.  So those
mappings might clobber part of the initial stack mapping.  But
that is just userland lossage that userland made happen, not a
kernel problem.

Signed-off-by: Roland McGrath <roland@redhat.com>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoMerge branch 'kvm-updates/2.6.36' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Linus Torvalds [Fri, 10 Sep 2010 15:02:45 +0000 (08:02 -0700)]
Merge branch 'kvm-updates/2.6.36' of git://git./virt/kvm/kvm

* 'kvm-updates/2.6.36' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
  KVM: x86: Perform hardware_enable in CPU_STARTING callback
  KVM: i8259: fix migration
  KVM: fix i8259 oops when no vcpus are online
  KVM: x86 emulator: fix regression with cmpxchg8b on i386 hosts

13 years agoMerge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Fri, 10 Sep 2010 14:31:24 +0000 (07:31 -0700)]
Merge branch 'perf-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  tracing: t_start: reset FTRACE_ITER_HASH in case of seek/pread
  perf symbols: Fix multiple initialization of symbol system
  perf: Fix CPU hotplug
  perf, trace: Fix module leak
  tracing/kprobe: Fix handling of C-unlike argument names
  tracing/kprobes: Fix handling of argument names
  perf probe: Fix handling of arguments names
  perf probe: Fix return probe support
  tracing/kprobe: Fix a memory leak in error case
  tracing: Do not allow llseek to set_ftrace_filter

13 years agoKEYS: Fix bug in keyctl_session_to_parent() if parent has no session keyring
David Howells [Fri, 10 Sep 2010 08:59:51 +0000 (09:59 +0100)]
KEYS: Fix bug in keyctl_session_to_parent() if parent has no session keyring

Fix a bug in keyctl_session_to_parent() whereby it tries to check the ownership
of the parent process's session keyring whether or not the parent has a session
keyring [CVE-2010-2960].

This results in the following oops:

  BUG: unable to handle kernel NULL pointer dereference at 00000000000000a0
  IP: [<ffffffff811ae4dd>] keyctl_session_to_parent+0x251/0x443
  ...
  Call Trace:
   [<ffffffff811ae2f3>] ? keyctl_session_to_parent+0x67/0x443
   [<ffffffff8109d286>] ? __do_fault+0x24b/0x3d0
   [<ffffffff811af98c>] sys_keyctl+0xb4/0xb8
   [<ffffffff81001eab>] system_call_fastpath+0x16/0x1b

if the parent process has no session keyring.

If the system is using pam_keyinit then it mostly protected against this as all
processes derived from a login will have inherited the session keyring created
by pam_keyinit during the log in procedure.

To test this, pam_keyinit calls need to be commented out in /etc/pam.d/.

Reported-by: Tavis Ormandy <taviso@cmpxchg8b.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Tavis Ormandy <taviso@cmpxchg8b.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoKEYS: Fix RCU no-lock warning in keyctl_session_to_parent()
David Howells [Fri, 10 Sep 2010 08:59:46 +0000 (09:59 +0100)]
KEYS: Fix RCU no-lock warning in keyctl_session_to_parent()

There's an protected access to the parent process's credentials in the middle
of keyctl_session_to_parent().  This results in the following RCU warning:

  ===================================================
  [ INFO: suspicious rcu_dereference_check() usage. ]
  ---------------------------------------------------
  security/keys/keyctl.c:1291 invoked rcu_dereference_check() without protection!

  other info that might help us debug this:

  rcu_scheduler_active = 1, debug_locks = 0
  1 lock held by keyctl-session-/2137:
   #0:  (tasklist_lock){.+.+..}, at: [<ffffffff811ae2ec>] keyctl_session_to_parent+0x60/0x236

  stack backtrace:
  Pid: 2137, comm: keyctl-session- Not tainted 2.6.36-rc2-cachefs+ #1
  Call Trace:
   [<ffffffff8105606a>] lockdep_rcu_dereference+0xaa/0xb3
   [<ffffffff811ae379>] keyctl_session_to_parent+0xed/0x236
   [<ffffffff811af77e>] sys_keyctl+0xb4/0xb6
   [<ffffffff81001eab>] system_call_fastpath+0x16/0x1b

The code should take the RCU read lock to make sure the parents credentials
don't go away, even though it's holding a spinlock and has IRQ disabled.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoMerge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
Linus Torvalds [Fri, 10 Sep 2010 14:26:27 +0000 (07:26 -0700)]
Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block

* 'for-linus' of git://git.kernel.dk/linux-2.6-block:
  block: Range check cpu in blk_cpu_to_group
  scatterlist: prevent invalid free when alloc fails
  writeback: Fix lost wake-up shutting down writeback thread
  writeback: do not lose wakeup events when forking bdi threads
  cciss: fix reporting of max queue depth since init
  block: switch s390 tape_block and mg_disk to elevator_change()
  block: add function call to switch the IO scheduler from a driver
  fs/bio-integrity.c: return -ENOMEM on kmalloc failure
  bio-integrity.c: remove dependency on __GFP_NOFAIL
  BLOCK: fix bio.bi_rw handling
  block: put dev->kobj in blk_register_queue fail path
  cciss: handle allocation failure
  cfq-iosched: Documentation help for new tunables
  cfq-iosched: blktrace print per slice sector stats
  cfq-iosched: Implement tunable group_idle
  cfq-iosched: Do group share accounting in IOPS when slice_idle=0
  cfq-iosched: Do not idle if slice_idle=0
  cciss: disable doorbell reset on reset_devices
  blkio: Fix return code for mkdir calls

13 years agoMerge branch 'at91-fixes-for-linus' of git://github.com/at91linux/linux-2.6-at91
Linus Torvalds [Fri, 10 Sep 2010 14:24:51 +0000 (07:24 -0700)]
Merge branch 'at91-fixes-for-linus' of git://github.com/at91linux/linux-2.6-at91

* 'at91-fixes-for-linus' of git://github.com/at91linux/linux-2.6-at91:
  AT91: at91sam9261ek: remove C99 comments but keep information
  AT91: at91sam9261ek board: remove warnings related to use of SPI or SD/MMC
  AT91: dm9000 initialization update
  AT91: SAM9G45 - add a separate clock entry for every single TC block
  AT91: clock: peripheral clocks can have other parent than mck
  AT91: change dma resource index

13 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
Linus Torvalds [Fri, 10 Sep 2010 14:23:45 +0000 (07:23 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
  ALSA: rawmidi: fix the get next midi device ioctl
  ALSA: hda - Fix wrong HP pin detection in snd_hda_parse_pin_def_config()
  ALSA: seq/oss - Fix double-free at error path of snd_seq_oss_open()
  ALSA: msnd-classic: Fix invalid cfg parameter
  ALSA: hda - Enable PC-beep for EeePC with ALC269 codec
  ALSA: hda - Add errata initverb sequence for CS42xx codecs
  ALSA: usb - Release capture substream URBs properly
  ALSA: virtuoso: fix setting of Xonar DS line-in/mic-in controls
  ALSA: virtuoso: work around missing reset in the Xonar DS Windows driver
  ALSA: hda - Add quirk for Lenovo T400s
  ALSA: usb-audio: fix detection of vendor-specific device protocol settings
  ALSA: usb-audio: Assume first control interface is for audio
  ALSA: hda - Add a new hp-laptop model for Conexant 5066, tested on HP G60

13 years agodrm/i915: don't enable self-refresh on Ironlake
Jesse Barnes [Thu, 9 Sep 2010 18:58:02 +0000 (11:58 -0700)]
drm/i915: don't enable self-refresh on Ironlake

We don't know how to enable it safely, especially as outputs turn on and
off.  When disabling LP1 we also need to make sure LP2 and 3 are already
disabled.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=29173
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=29082
Reported-by: Chris Lord <chris@linux.intel.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Tested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: stable@kernel.org
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
13 years agoxfs: prevent reading uninitialized stack memory
Dan Rosenberg [Mon, 6 Sep 2010 22:24:57 +0000 (18:24 -0400)]
xfs: prevent reading uninitialized stack memory

The XFS_IOC_FSGETXATTR ioctl allows unprivileged users to read 12
bytes of uninitialized stack memory, because the fsxattr struct
declared on the stack in xfs_ioc_fsgetxattr() does not alter (or zero)
the 12-byte fsx_pad member before copying it back to the user.  This
patch takes care of it.

Signed-off-by: Dan Rosenberg <dan.j.rosenberg@gmail.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Alex Elder <aelder@sgi.com>
13 years agoAT91: at91sam9261ek: remove C99 comments but keep information
Nicolas Ferre [Fri, 10 Sep 2010 12:36:06 +0000 (14:36 +0200)]
AT91: at91sam9261ek: remove C99 comments but keep information

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
13 years agoAT91: at91sam9261ek board: remove warnings related to use of SPI or SD/MMC
Nicolas Ferre [Fri, 10 Sep 2010 09:26:42 +0000 (11:26 +0200)]
AT91: at91sam9261ek board: remove warnings related to use of SPI or SD/MMC

The sd/mmc data structure is not used if SPI is selected. The configuration
of PIO on the board prevent from using both interfaces at the same time
(board dependent).
Remove the warnings at compilation time adding a preprocessor condition.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
13 years agoAT91: dm9000 initialization update
Nicolas Ferre [Fri, 10 Sep 2010 09:38:43 +0000 (11:38 +0200)]
AT91: dm9000 initialization update

Add information in dm9000 mac/phy chip initialization:
- irq resource details
- platform data details

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
13 years agoblock: Range check cpu in blk_cpu_to_group
Brian King [Fri, 10 Sep 2010 07:03:21 +0000 (09:03 +0200)]
block: Range check cpu in blk_cpu_to_group

While testing CPU DLPAR, the following problem was discovered.
We were DLPAR removing the first CPU, which in this case was
logical CPUs 0-3. CPUs 0-2 were already marked offline and
we were in the process of offlining CPU 3. After marking
the CPU inactive and offline in cpu_disable, but before the
cpu was completely idle (cpu_die), we ended up in __make_request
on CPU 3. There we looked at the topology map to see which CPU
to complete the I/O on and found no CPUs in the cpu_sibling_map.
This resulted in the block layer setting the completion cpu
to be NR_CPUS, which then caused an oops when we tried to
complete the I/O.

Fix this by sanity checking the value we return from blk_cpu_to_group
to be a valid cpu value.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>