Commit Graph

345718 Commits

Author SHA1 Message Date
Philip Rakity
1a8f85d402 regulator: add missing prototype for regulator_is_supported_voltage
avoids needs for CONFIG_REGULATOR in sdhci.c

Signed-off-by: Philip Rakity <prakity@nvidia.com>
Reviewed-by: Eric Miao <eric.y.miao@gmail.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-11-21 19:03:12 +09:00
Michal Simek
acda38aab6 ARM: zynq: Remove all unused mach headers
Remove empty unused mach/hardware.h.
mach/irqs.h is unused because SPARSE_IRQ are ON by default.
mach/timex.h is unused because of CONFIG_ARCH_MULTIPLATFORM.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Tested-by: Josh Cartwright <josh.cartwright@ni.com>
2012-11-21 10:52:21 +01:00
Josh Cartwright
9a45eb691d ARM: zynq: add support for ARCH_MULTIPLATFORM
The majority of changes are necessary to remove dependencies on header
files within arch/arm/mach-zynq/include/mach:

  uncompress.h
    - Deleted. It is unused for ARCH_MULTIPLATFORM builds.

  uart.h:
    - Move uart definitions out of uart.h into debug/zynq.S, which is
      now the only user

  zynq_soc.h:
    - Move SCU address definitions into common.c.
    - Other #defines, such as PERIPHERAL_CLOCK_RATE, TTC0_BASE, etc, are
      unused and can be dropped

Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
Tested-by: Michal Simek <michal.simek@xilinx.com>
2012-11-21 10:52:13 +01:00
Josh Cartwright
385f02b169 ARM: zynq: make use of debug_ll_io_init()
Convert low-level debugging routines to make use of debug_ll_io_init().
This is part of the preparation for ARCH_MULTIPLATFORM support for Zynq.

Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
Tested-by: Michal Simek <michal.simek@xilinx.com>
2012-11-21 10:52:05 +01:00
Josh Cartwright
667f2988e2 ARM: zynq: remove TTC early mapping
Now that the TTC driver has proper support for DT bindings, it is not
necessary for the registers to be mapped early.  They will be mapped
during clock initialization using of_iomap().  Remove the early mapping.

In addition, remove the extraneous zynq_soc.h include from the timer
driver.

Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
Tested-by: Michal Simek <michal.simek@xilinx.com>
2012-11-21 10:51:57 +01:00
Michal Simek
84d2e38e93 Merge branch 'devel/debug_ll_init' into zynq/multiplatform 2012-11-21 10:51:39 +01:00
Axel Lin
369cf602f3 regulator: da9055: Properly handle voltage range that doesn't start with 0 offset
This patch implements map_voltage and list_voltage callbacks to properly handle
the case voltage range that doesn't start with 0 offset.

Now we adjust the selector in map_voltage() before calling set_voltage_sel().
And return 0 in list_voltage() for invalid selectors.

With above change, we can remove da9055_regulator_set_voltage_bits function.

One tricky part is that we need adding voffset to n_voltages.
Although for the cases "selector < voffset" are invalid, we need add voffset to
n_voltage so regulator_list_voltage() won't fail while checking the boundary for
selector before calling list_voltage callback.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Tested-by: Ashish Jangam <ashish.jangam@kpitcummins.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-11-21 18:50:52 +09:00
Sachin Kamat
27b2a22c71 ALSA: usb/6fire: Fix potential NULL pointer dereference in comm.c
'rt' was dereferenced before the NULL check.
Moved the code after the check.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-11-21 10:43:52 +01:00
Sachin Kamat
6cf9515207 ALSA: pcm: Fix return code in pcm_native.c
Return the value obtained from snd_pcm_hw_constraint_minmax() instead
of -EINVAL. Silences the following smatch warning:
sound/core/pcm_native.c:2003 snd_pcm_hw_constraints_complete() info:
why not propagate 'err' from snd_pcm_hw_constraint_minmax() instead of -22?

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-11-21 10:43:35 +01:00
Sachin Kamat
51d503de02 ALSA: PCM: Remove redundant null check before kfree
kfree on a null pointer is a no-op.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-11-21 10:43:26 +01:00
Olof Johansson
02d1ea0d14 Merge branch 'ste-dt-for-next' of git://git.linaro.org/people/ljones/linux-3.0-ux500 into next/dt
From Lee Jones. It's an update of the previous ux500/dt branch with a few more
patches:

* 'ste-dt-for-next' of git://git.linaro.org/people/ljones/linux-3.0-ux500:
  ARM: ux500: Describe UART platform registering issues more accurately
  ARM: ux500: Enable all MMC devices on the u9540 when booting with DT
  ARM: ux500: Enable SDI4 port on the u9540 when booting with Device Tree
  ARM: ux500: Add UART support to the u9540 Device Tree
  ARM: ux500: Add skeleton DTS file for the u9540
  ARM: ux500: Add SDI (MMC) support to the HREF Device Tree
  ARM: ux500: Move regulator-name properties out to board DTS files

Signed-off-by: Olof Johansson <olof@lixom.net>
2012-11-21 01:18:57 -08:00
David Henningsson
34c3d1926b ALSA: hda - Cirrus: Correctly clear line_out_pins when moving to speaker
If this array is not cleared, the jack related code later might
fail to create "Internal Speaker Phantom Jack" on Dell Inspiron 3420 and
Dell Vostro 2420.

BugLink: https://bugs.launchpad.net/bugs/1076840
Cc: stable@vger.kernel.org (3.6+)
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-11-21 10:09:02 +01:00
Axel Lin
b4d4b1f087 gpiolib: Fix use after free in gpiochip_add_pin_range
This is introduced by commit 9ab6e988
"gpiolib: return any error code from range creation".

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2012-11-21 10:08:05 +01:00
Linus Walleij
316511c013 gpiolib: rename pin range arguments
To be crystal clear on what the arguments mean in this
funtion dealing with both GPIO and PIN ranges with confusing
naming, we now have gpio_offset and pin_offset and we are
on the clear that these are offsets into the specific GPIO
and pin controller respectively. The GPIO chip itself will
of course keep track of the base offset into the global
GPIO number space.

Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2012-11-21 10:07:48 +01:00
Olof Johansson
f09771bcd2 DTS updates for the LPC32xx Soc for 3.7
This time, only one patch: Adding the motor PWM to lpc32xx.dtsi
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iD8DBQBQqPx0caH/YBv43g8RAuzFAKCFpy/LcErik0mFUeyNJrPz3/l1gACgmng4
 SUDHt4IfsbL9iYlLIqkEIFM=
 =p23Y
 -----END PGP SIGNATURE-----

Merge tag 'lpc32xx-dts-for-3.7' of git://git.antcom.de/linux-2.6 into next/dt

From Roland Stigge:
DTS updates for the LPC32xx Soc for 3.7

This time, only one patch: Adding the motor PWM to lpc32xx.dtsi

* tag 'lpc32xx-dts-for-3.7' of git://git.antcom.de/linux-2.6:
  ARM: LPC32xx: Add the motor PWM to base dts file

Signed-off-by: Olof Johansson <olof@lixom.net>
2012-11-21 00:52:03 -08:00
Olof Johansson
8f3c5ba7ab ARM: bcm2835: cleanup
Just a few minor/trivial cleanups.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJQpwtvAAoJEJuNpwkmVCGcyVEP/jmRVGieSFf5w1MRvUyqQKqK
 3cK0LPqzI2EMsAUia5JsYQj9k+Tl7yeErd/Cj7tth1lRW9jVON2rvLt3MiHxsOQD
 y0vYjo/Y+yAtYFX0DuACammOIhMDkS019gkhTU+vHH9Kwi98OQvuuRQDCLAo/JkM
 /HtufuEbF4qeOlNUbbeXYWY3M4RlkZKGDo3t7Kryw2cbrKKNhUuK8FDRvuf+xaew
 eh7hAT4PuWWdUymSA1P51Zh+V3fxCg1xAJzev5uDxUJEzTzBoYpw8APaTtVB6mwg
 p/mUTAD/VvYs15+uCNmxxsxvf01HzYt7vM3nRjS93qaEO3EdJEtEi7sxM2l0Dr/s
 U7OSUSWosckBwTizH3IZUvCelNfMJNrWQuQk1GEu0mS/xi494mPUUE8kWC36MELC
 kotGoxGI3dLFHZ9jgKDDk6CCjCNJ2KJP8886OEV07f9AHViSIHUdv7yR6on0uYSn
 rwR5mDXaLSG5a2QbkTaH3S9lXfi2/0ezQnyWDT48KOjyp6lGDDrKOwEHDmrxSDj2
 RdfCaxL7sXYXRF9t6aHyyYnNVo8spODd/0mHec/EcEXkpWuL2Itd2g3Ldo+SOM1P
 JqpAJlIUKvh58OJLd7n7kQt26ks63mCmNR1QGqu5D78BTaC/gSM7eAjNlYYvhBG5
 zhH3GZ3c2bSHZmwJqGea
 =WX0V
 -----END PGP SIGNATURE-----

Merge tag 'bcm2835-for-3.8-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi into next/cleanup

From Stephen Warren:
ARM: bcm2835: cleanup

Just a few minor/trivial cleanups.

* tag 'bcm2835-for-3.8-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi:
  ARM: bcm2835: remove useless variables from Makefile.boot
  ARM: bcm2835: Fix typo in the error message
  ARM: bcm2835: Add missing static modifiers
2012-11-21 00:35:26 -08:00
Olof Johansson
46e8a79eb5 ARM: tegra: single-zImage preparation work
Various cleanups and enhancements are made to core Tegra code towards the
 aim of including Tegra in a multi-platform ARM kernel:
 
 RTC, timer, and TWD are configured via device tree.
 
 SPARSE_IRQ is enabled.
 
 Tegra's debug_ll options are simplified, and the macros brought into
 line with other multi-platform implementations, and moved to the new
 common location.
 
 Two headers still need to be eliminated in order to include Tegra in a
 multi-platform kernel/ <mach/{clk,powergate}.h>. A new common API needs
 to be invented to replace parts of clk.h. powergate.h might be replaced
 by regulators; this needs more investigation.
 
 This pull request is based on tegra-for-3.8-dt, followed by a merge of
 arm-soc's devel/debug_ll_init branch.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJQppQBAAoJEMzrak5tbycxoz0P/REooomHVeI5CNyKMxp0rzQv
 dSGfnWD2nuRJ3k36VOdGpa+BYW/xjYuYdIAKNrfAEnfeQRbYp1VGIfyjgMEcx7Yi
 TzNmangYj+9f60u1MQq2YQytFFtgfcG1utTIuvKKhuJ/pZEjCkYKBQjNOLFuetaI
 oCxNDklcnCn5zxUGsQwpxxMf+A1Ja6tPHkqdN2p+0OQpUpr0i2mCMMrSPEHY0RgV
 zRBhsIwwe9eTAOPkZmr6SnCVIAs2rANVnBfZGJC/k9bT7cckhmL/EcGZLBIvRe8L
 gD4HtZsltNwbCh/cV4qIvx/nUaW1No/iqvQERtgAGWQtCUp/Jgmy3roV4zzWBiOR
 /N88kBaO5fw7crVFDMLTlHVKc2IKWTzSnpEUIllLw/G8ySjW5tjXP57gaxb712BU
 KYmcl6KFZ8Uu8OfyDYR6dRPtk+ayqAhSqBql+NveOWLk+nYFFyoob62FPTFq64eu
 MwM1BKlFKxLmMUeBTpSJXG/rtVkE+kgocZrB6GEofhIn7gjELqsaWutOJ6LYQ4wY
 i4N0NcBA3/oFu7N9T7yY+mKJCwRovyrpqW3Lp62xvns8+Y2ziUNxY4e0NvopzIOi
 GYz+ktI3CT1cZv9zkdEI+TOnRrWze8N7Xzt9ii8SD456to5wcaRCjmpATnNIKTTi
 uLmNaB6M9+mTjIXR8MDb
 =qXVf
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-3.8-single-zimage' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/multiplatform

From Stephen Warren:
ARM: tegra: single-zImage preparation work

Various cleanups and enhancements are made to core Tegra code towards the
aim of including Tegra in a multi-platform ARM kernel:

RTC, timer, and TWD are configured via device tree.

SPARSE_IRQ is enabled.

Tegra's debug_ll options are simplified, and the macros brought into
line with other multi-platform implementations, and moved to the new
common location.

Two headers still need to be eliminated in order to include Tegra in a
multi-platform kernel/ <mach/{clk,powergate}.h>. A new common API needs
to be invented to replace parts of clk.h. powergate.h might be replaced
by regulators; this needs more investigation.

This pull request is based on tegra-for-3.8-dt, followed by a merge of
arm-soc's devel/debug_ll_init branch.

* tag 'tegra-for-3.8-single-zimage' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra: (58 commits)
  ARM: tegra: move debug-macro.S to include/debug
  ARM: tegra: don't include iomap.h from debug-macro.S
  ARM: tegra: decouple uncompress.h and debug-macro.S
  ARM: tegra: simplify DEBUG_LL UART selection options
  ARM: tegra: select SPARSE_IRQ
  ARM: tegra: enhance timer.c to get IO address from device tree
  ARM: tegra: enhance timer.c to get IRQ info from device tree
  ARM: timer: fix checkpatch warnings
  ARM: tegra: add TWD to device tree
  ARM: tegra: define DT bindings for and instantiate RTC
  ARM: tegra: define DT bindings for and instantiate timer
  ARM: tegra: whistler: enable HDMI port
  ARM: tegra: tec: Enable HDMI output
  ARM: tegra: plutux: Enable HDMI output
  ARM: tegra: tamonten: Add host1x support
  ARM: tegra: trimslice: enable HDMI port
  ARM: tegra: harmony: enable HDMI port
  ARM: tegra: Add Tegra30 host1x support
  ARM: tegra: Add Tegra20 host1x support
  ARM: tegra: trimslice: enable SPI flash
  ...
2012-11-21 00:31:08 -08:00
Olof Johansson
90919bf214 ARM: tegra: device tree changes
A wide variety of device tree additions are made across many Tegra
 boards:
 
 * WiFi is supported on Seaboard, Ventana, and Cardhu.
 * An I2C mux is added for Ventana, and Tamonten.
 * SPI flash is added to Cardhu, and TrimSlice.
 * Temperature sensors are added to Harmony, Tamonten, and Ventana.
 * host1x (graphics/display controller) is added to the SoC include files.
 * HDMI displays are enabled on Harmony, TrimSlice, Tamonten, Plutux, Tec,
   and Whistler.
 
 This pull request is based on tegra-for-3.8-soc.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJQppFoAAoJEMzrak5tbycx1WsQALzqZBCebkEIo0CfuYlVtZrX
 co2HBLsTis8KOI1lB5hZZdLvOD2sevwkw+YDtoG1k2ymZvR/Lpl3zdYdPCinA7gb
 Qzs+OlwnAla7J5BkgV0v69lZHBYd8jvxsFt9MZo1XkHjw2IRPyrzLhdmBHGLVj3J
 Tk7kk4OH64sDhDb+vZJXCtBJV0fvn10WNSskUHoQYZveGOCFGZXogrAht25tcoQO
 TM89tasMdRq3IhOxuzHHo/7AegyuTZdDzV4blNr1xOMzyz1b3P3sBh2ZiK+aBztX
 CCfpJ2ZUlRqTKSOU4qlM48dWffr/ZyP1u0VVi9Bu4Df/qBpS37NjagiVxMhiEasz
 0f3SZTAkZGh7yxi/BTmqu6vvQ0FWYgtOJPezK19RMXistdQkA/uiQDKqeBMTLTeA
 UXCnJdC05uBWhymy8DhJyryPQCJ1k3PJ+4pSmzemWIaAoQqpaH/q5yp4IAccr8wO
 pxZPtddD030iVdT5oYqBoAhn2W/mKtG1fShhp7wpj/qRYecUQICocTavuFG3DK0N
 k1OJ9rTxBZfnyeCBF/wdS/nNuI9xDk2WULVIya2cNu8I/te6QKp1fd4Jr3aPnZ/9
 4hiw5+L2dw2z7447EwlryC4sHttjVYEDHqsedR39YNPIn55D3mfsNX2iCczk1ZDU
 +OoRMiATrjILb1sOjJAs
 =ytxh
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-3.8-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/dt

From Stephen Warren:
ARM: tegra: device tree changes

A wide variety of device tree additions are made across many Tegra
boards:

* WiFi is supported on Seaboard, Ventana, and Cardhu.
* An I2C mux is added for Ventana, and Tamonten.
* SPI flash is added to Cardhu, and TrimSlice.
* Temperature sensors are added to Harmony, Tamonten, and Ventana.
* host1x (graphics/display controller) is added to the SoC include files.
* HDMI displays are enabled on Harmony, TrimSlice, Tamonten, Plutux, Tec,
  and Whistler.

This pull request is based on tegra-for-3.8-soc.

* tag 'tegra-for-3.8-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra: (47 commits)
  ARM: tegra: whistler: enable HDMI port
  ARM: tegra: tec: Enable HDMI output
  ARM: tegra: plutux: Enable HDMI output
  ARM: tegra: tamonten: Add host1x support
  ARM: tegra: trimslice: enable HDMI port
  ARM: tegra: harmony: enable HDMI port
  ARM: tegra: Add Tegra30 host1x support
  ARM: tegra: Add Tegra20 host1x support
  ARM: tegra: trimslice: enable SPI flash
  ARM: tegra: dts: add sflash controller dt entry
  ARM: tegra: ventana: Add NCT1008 temperature sensor
  ARM: tegra: tamonten: Add NCT1008 temperature sensor
  ARM: tegra: harmony: Add ADT7641 temperature sensor
  ARM: tegra: tec: Remove redundant DT properties
  ARM: tegra: tamonten: Add DDC/PTA pinmux
  ARM: tegra: dts: cardhu: enable SLINK4
  ARM: tegra: dts: add slink controller dt entry
  ARM: dt: tegra: ventana: define pinmux for ddc
  ARM: dt: t30 cardhu: set pinmux and power for wlan
  ARM: dt: t20 ventana: set pinmux and power for wlan
  ...
2012-11-21 00:29:21 -08:00
Maxime Ripard
67bea88dd8 ARM: sunxi: Add sunxi restart function via onchip watchdog
Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2012-11-21 09:25:25 +01:00
Olof Johansson
bcc5155d05 ARM: tegra: cleanup for 3.8
Various trivial cleanup changes of the Tegra code for 3.8.
 
 Many of the changes simply remove useless #include statements, which
 enable those headers to be removed or moved later, as work towards
 multi-platform zImage support.
 
 <mach/{iram,io}map.h> are moved up to arch/arm/mach-tegra to prevent
 any new code outside mach-tegra from using them.
 
 Finally, the regulator definitions in all board device tree files are
 updated to use the new simpler syntax that was agreed upon.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJQpo5eAAoJEMzrak5tbycxhpoQAIZPMMXemJP7Hqvtx0iza5jG
 LVbBqb+sTEhESpdd43XeMK8n9umjVszseRJYm3vbekJp3crVE/Z0ikTTzmDUiwIj
 iz1t9U1i+EsAVZ977DF68InA/lWociKVqaDO4WEN4YZ19zGQJbghFKVic5yVZvNq
 hRWNvDUkRi+9FJHS7wBHQNuRIghSDxh90zFoc0UUs12J2z2OjXKPYypU7Ttp6aUY
 rBvuDlqRQ9SjFxuE2dYDvEWnB69ONL7LauAkSkoqgXGGP1a6v5pphm+Y3badCOrO
 q5hGUpvzO+DTfOncj5dlZedRq9vjS/QEF+qJQFvMPrUpv8QkOulY4nf7w/sYmk9o
 Rhm9G6BxFGDMdxruA9SBkqjEzPcI9cT18FRYkMtsHfWwUgu6NUB6bMhc++R6rOJS
 JNkH+DoWuEsGP2RyopZZEjKlrCxPv3vNNOz4wkaLH+gEQvE9EZ5mkqy8xNYQbMBb
 Yv93TCADrX9tw/3JfWjB6/WhZ9GVBcSie0hcW+2Nm7lUzzQ8q9DKMZobG20+KHBZ
 /+L4NmK7DR5u8M6xnZqPat2VAraFxYZFjy3Xd50ul7PphfJnR4c7ITqt4u6lJ6hn
 Bnc7/DNM5hgAncH+APon1tffLMqgsJphC4Chn7y7Y/wSYi216IA21pmSrrmpKkh9
 OqBOasN9GVmmHVnxNzHn
 =aH3p
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-3.8-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/cleanup

From Stephen Warren:
ARM: tegra: cleanup for 3.8

Various trivial cleanup changes of the Tegra code for 3.8.

Many of the changes simply remove useless #include statements, which
enable those headers to be removed or moved later, as work towards
multi-platform zImage support.

<mach/{iram,io}map.h> are moved up to arch/arm/mach-tegra to prevent
any new code outside mach-tegra from using them.

Finally, the regulator definitions in all board device tree files are
updated to use the new simpler syntax that was agreed upon.

* tag 'tegra-for-3.8-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra:
  ARM: tegra: move irammap.h to mach-tegra
  ARM: tegra: move iomap.h to mach-tegra
  ARM: tegra: remove <mach/dma.h>
  ARM: tegra: move tegra-ahb.h out of arch/arm/mach-tegra/
  ARM: tegra: remove unnecessary includes of <mach/*.h>
  iommu: tegra: remove include of <mach/iomap.h>
  staging: nvec: remove include of <mach/iomap.h>
  crypto: tegra: remove include of <mach/clk.h>
  ARM: tegra: update *.dts for regulator-compatible deprecation
  usb: phy: tegra remove include of <mach/iomap.h>
  usb: host: tegra remove include of <mach/iomap.h>
2012-11-21 00:17:40 -08:00
David Henningsson
af02dde8a6 ALSA: hda - Add support for Realtek ALC292
We found a new codec ID 292, and that just a simple quirk would enable
sound output/input on this ALC292 chip.

BugLink: https://bugs.launchpad.net/bugs/1081466
Cc: stable@vger.kernel.org
Tested-by: Acelan Kao <acelan.kao@canonical.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-11-21 09:06:04 +01:00
Olof Johansson
2054271bb0 Merge branch 'armsoc/fix' of git://github.com/hzhuang1/linux into next/fixes-non-critical
From Haojian Zhuang:
* 'armsoc/fix' of git://github.com/hzhuang1/linux:
  ARM: pxa: fix pxa25x gpio wakeup setting
  + Linux 3.7-rc6
2012-11-21 00:01:51 -08:00
Olof Johansson
3f6f1cd6ff Merge branch 'armsoc/board' of git://github.com/hzhuang1/linux into next/boards
From Haojian Zhuang:
* 'armsoc/board' of git://github.com/hzhuang1/linux:
  ARM: mmp: select pinctrl driver
  + Linux 3.7-rc6
2012-11-21 00:00:25 -08:00
Haojian Zhuang
2e8b2eab94 pinctrl: single: support gpio request and free
Marvell's PXA/MMP silicon also match the behavior of pinctrl-single.
Each pin binds to one register. A lot of pins could be configured
as gpio.

GPIO range is defined as a child node of pinmux in .dtsi file. If those
pins are with the same gpio function configuration in the pinmux
register, they could be defined in the same GPIO range. For this new
child node, two properties are used.

reg = <the start of pinmux register in range, size of range>

pinctrl-single,gpio: <gpio base in range, the gpio function of the range
		in the pinmux register>

Signed-off-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2012-11-21 08:55:27 +01:00
Haojian Zhuang
2ccb0bcfb0 pinctrl: generic: add input schmitt disable parameter
In Marvell PXA/MMP silicons, input schmitt disable value is 0x40, not 0.
So append new config parameter -- input schmitt disable.

Signed-off-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2012-11-21 08:55:26 +01:00
Linus Walleij
8604ac34eb pinctrl/u300/coh901: stop spawning pinctrl from GPIO
Let's stop spawning the pinctrl driver from the GPIO driver,
we have these two mechanisms broken apart now, and they can
each probe in isolation. If the GPIO driver cannot find its
pin controller (pinctrl-u300), the pin controller core will
tell it to defer probing.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2012-11-21 08:55:22 +01:00
Linus Walleij
387923c585 pinctrl/u300/coh901: let the gpio_chip register the range
Instead of having the pinctrl driver register the GPIO range
for the gpio_chip, making it necessary to instantiate the
pin controller from the GPIO driver and pass the GPIO chip as
platform data, now let the GPIO chip driver register it's own
ranges and have the pinctrl driver look up the GPIO chip from
the pinctrl core as necessary.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2012-11-21 08:55:17 +01:00
Linus Walleij
9afbefb227 pinctrl: add function to retrieve range from pin
This adds a function to the pinctrl core to retrieve the GPIO
range associated with a certain pin for a certain controller.
This is needed when a pinctrl driver want to look up the
corresponding struct gpio_chip for a certain pin. As the
GPIO drivers can now create these ranges themselves, the
pinctrl driver no longer knows about all its associated GPIO
chips.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2012-11-21 08:55:12 +01:00
Linus Walleij
8f23ca1a73 gpiolib: return any error code from range creation
If we try to create a range for a certain GPIO chip and the
target pin controller is not yet available it may return
a probe deferral error code, so handle this all the way
our by checking the error code.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2012-11-21 08:55:11 +01:00
Linus Walleij
dfa9751548 pinctrl: make range registration defer properly
This makes the pinctrl_find_and_add_gpio_range() return
-EPROBE_DEFER if the range hosting pin controller cannot be
located. We may assume that the common case for why adding a
range fails is that the targe pin controller device has not
probed yet.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2012-11-21 08:55:10 +01:00
Linus Walleij
192c369c61 gpiolib: rename find_pinctrl_*
Rename the function find_pinctrl_and_add_gpio_range()
to pinctrl_find_and_add_gpio_range() so as to be consistent
with the rest of the functions.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2012-11-21 08:55:10 +01:00
Linus Walleij
3f0f867060 gpiolib: let gpiochip_add_pin_range() specify offset
Like with commit 3c739ad0df
it is not always enough to specify all the pins of a gpio_chip
from offset zero to be added to a pin map range, since the
mapping from GPIO to pin controller may not be linear at all,
but need to be broken into a few consecutive sub-ranges or
1-pin entries for complicated cases. The ranges may also be
sparse.

This alters the signature of the function to accept offsets
into both the GPIO-chip local pinspace and the pin controller
local pinspace.

Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2012-11-21 08:55:03 +01:00
Olof Johansson
d7460f4a3d Merge branch 'boards3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/boards2
From Simon Horman:
* 'boards3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: mackerel: Add FLCTL IRQ resource
2012-11-20 23:18:03 -08:00
Olof Johansson
6fe05f33da More DT material for AT91:
- conversion of watchdog to DT
 - usart definition for evk-pro3 board
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQEcBAABAgAGBQJQqm8pAAoJEAf03oE53VmQpEEH/00dsxSUrL06NzwP8Y1+UjW8
 OXJPJUU0Mor/b5zCp3wsxB4+imZ4y4oqJ42qvFZjRLHj0KMvVdnxm5SNIpbQtXxV
 jXPqXYk8yfH4YF3DDLuiD9wkXjwtgck7+D7ogcAIb9bbWyyGusKIcs72smvGanCd
 zZrWIOGwXlqgrF5CX8kl6SIhdnYvMtee7GlzbiFHlKr4CLPOIR3iahnHR26gkzLH
 cRjYVujYaHpQKBR8XvMgIl7brCUTX2KuMajvVOF8EShk8BU2MW1GHFY0cNfqaKRn
 R/Z9itXk6P/h3s/Wf+Qyfpuz3E0zbS80uN/NyrIbcGbAQQIesuo8pcd9xZZ5yg0=
 =whJu
 -----END PGP SIGNATURE-----

Merge tag 'at91-for-next-dt' of git://github.com/at91linux/linux-at91 into next/dt

From Nicolas Ferre:
More DT material for AT91:

- conversion of watchdog to DT
- usart definition for evk-pro3 board

* tag 'at91-for-next-dt' of git://github.com/at91linux/linux-at91:
  ARM: at91/dts: evk-pro3: enable watchdog
  ARM: at91/dts: add at91sam9_wdt driver to at91sam926x, at91sam9g45
  watchdog: at91sam9_wdt: add device tree support
  ARM: at91: dt: evk-pro3: enable uart0 and uart2
2012-11-20 23:11:45 -08:00
Olof Johansson
d4819dc969 Removing unneeded macro.
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQEcBAABAgAGBQJQqm4MAAoJEAf03oE53VmQ+QoIAL+g/aqAfC6bcuKjceFVLp7w
 p0CaYGv8DKz3ARTbboNcdno4PpJpvDfzhzAs03VsYZqEb1BVJr3fkFG/aUueBfyu
 QveDJSyBSAiH8ntv6zjAspEYkAMXx6PI/cwHRPPYMkxijgGYAg6hyu86mIEiNqv0
 K0Ux6CgdQgLKkQ8JMdDndOSqs0rjbXoHhsk2qI22uW86aS+fccvjMNWea9JywuXQ
 xU6hcCespbtKcr1TgW0SA7AoeOFcp5jNZ2Me7LHXVnCQYzJgq8NCd9TTMpQtNwXy
 MkZpcfjeqvO88Z7p9k1BxJMwTkzqprwHpMQgR7oACc14bIv6E1xyKkXfjryOXG0=
 =0pIN
 -----END PGP SIGNATURE-----

Merge tag 'at91-for-next-cleanup' of git://github.com/at91linux/linux-at91 into next/cleanup

From Nicolas Ferre:
Removing unneeded macro.

* tag 'at91-for-next-cleanup' of git://github.com/at91linux/linux-at91:
  ARM: at91/atmel-mci: remove unused setup_dma_addr() macro
2012-11-20 23:07:15 -08:00
Olof Johansson
fbac7d7d6c One fix related to UART for the "headers move" branch
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQEcBAABAgAGBQJQqmPJAAoJEAf03oE53VmQbHEIAL7sxxa70NAZu0RnFq3iM0ic
 B+zycq2wtVkjp1i9qWh47+xeF88JRINmYRjh4WIlnTJ3uDvK70H/dA7DUGQP0pbB
 nTbaKInPnp1SOhyhfV1+3qxw8VNzNlvUQPunCP5ux9DJ1cwpfGn+d676I7l9skbe
 91VEd+e9Sl1wdD6CfhtXGgAbi/y6UINj6CREK/HLVPzb6W2R6yFWDhKZLJRHKMCt
 DxWXvHP8Vh+5/A9UoLtVR3PzG8yLCLN6Ty8ca25O2y/yTiEd+PpdfgwTS3tkBJ74
 JhRl5pXdE7GmSvGvVdh1V3RN4anEKueJkuHnXomZiLR2E8mYg9S5ZmrScwQKpM4=
 =B3yD
 -----END PGP SIGNATURE-----

Merge tag 'at91-header' of git://github.com/at91linux/linux-at91 into next/headers

From Nicolas Ferre:
One fix related to UART for the "headers move" branch

* tag 'at91-header' of git://github.com/at91linux/linux-at91:
  atmel: move ATMEL_MAX_UART to platform_data/atmel.h
2012-11-20 23:04:40 -08:00
Jan Beulich
ee4eb87be2 x86-64: Fix ordering of CFI directives and recent ASM_CLAC additions
While these got added in the right place everywhere else, entry_64.S
is the odd one where they ended up before the initial CFI directive(s).
In order to cover the full code ranges, the CFI directive must be
first, though.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Link: http://lkml.kernel.org/r/5093BA1F02000078000A600E@nat28.tlf.novell.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2012-11-20 22:23:57 -08:00
Boris Ostrovsky
36c46ca4f3 x86, microcode, AMD: Add support for family 16h processors
Add valid patch size for family 16h processors.

[ hpa: promoting to urgent/stable since it is hw enabling and trivial ]

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@amd.com>
Acked-by: Andreas Herrmann <herrmann.der.user@googlemail.com>
Link: http://lkml.kernel.org/r/1353004910-2204-1-git-send-email-boris.ostrovsky@amd.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: <stable@vger.kernel.org>
2012-11-20 22:23:28 -08:00
H. Peter Anvin
cb57a2b4cf x86-32: Export kernel_stack_pointer() for modules
Modules, in particular oprofile (and possibly other similar tools)
need kernel_stack_pointer(), so export it using EXPORT_SYMBOL_GPL().

Cc: Yang Wei <wei.yang@windriver.com>
Cc: Robert Richter <robert.richter@amd.com>
Cc: Jun Zhang <jun.zhang@intel.com>
Cc: <stable@vger.kernel.org>
Link: http://lkml.kernel.org/r/20120912135059.GZ8285@erda.amd.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2012-11-20 22:23:23 -08:00
Robert Richter
1022623842 x86-32: Fix invalid stack address while in softirq
In 32 bit the stack address provided by kernel_stack_pointer() may
point to an invalid range causing NULL pointer access or page faults
while in NMI (see trace below). This happens if called in softirq
context and if the stack is empty. The address at &regs->sp is then
out of range.

Fixing this by checking if regs and &regs->sp are in the same stack
context. Otherwise return the previous stack pointer stored in struct
thread_info. If that address is invalid too, return address of regs.

 BUG: unable to handle kernel NULL pointer dereference at 0000000a
 IP: [<c1004237>] print_context_stack+0x6e/0x8d
 *pde = 00000000
 Oops: 0000 [#1] SMP
 Modules linked in:
 Pid: 4434, comm: perl Not tainted 3.6.0-rc3-oprofile-i386-standard-g4411a05 #4 Hewlett-Packard HP xw9400 Workstation/0A1Ch
 EIP: 0060:[<c1004237>] EFLAGS: 00010093 CPU: 0
 EIP is at print_context_stack+0x6e/0x8d
 EAX: ffffe000 EBX: 0000000a ECX: f4435f94 EDX: 0000000a
 ESI: f4435f94 EDI: f4435f94 EBP: f5409ec0 ESP: f5409ea0
  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
 CR0: 8005003b CR2: 0000000a CR3: 34ac9000 CR4: 000007d0
 DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
 DR6: ffff0ff0 DR7: 00000400
 Process perl (pid: 4434, ti=f5408000 task=f5637850 task.ti=f4434000)
 Stack:
  000003e8 ffffe000 00001ffc f4e39b00 00000000 0000000a f4435f94 c155198c
  f5409ef0 c1003723 c155198c f5409f04 00000000 f5409edc 00000000 00000000
  f5409ee8 f4435f94 f5409fc4 00000001 f5409f1c c12dce1c 00000000 c155198c
 Call Trace:
  [<c1003723>] dump_trace+0x7b/0xa1
  [<c12dce1c>] x86_backtrace+0x40/0x88
  [<c12db712>] ? oprofile_add_sample+0x56/0x84
  [<c12db731>] oprofile_add_sample+0x75/0x84
  [<c12ddb5b>] op_amd_check_ctrs+0x46/0x260
  [<c12dd40d>] profile_exceptions_notify+0x23/0x4c
  [<c1395034>] nmi_handle+0x31/0x4a
  [<c1029dc5>] ? ftrace_define_fields_irq_handler_entry+0x45/0x45
  [<c13950ed>] do_nmi+0xa0/0x2ff
  [<c1029dc5>] ? ftrace_define_fields_irq_handler_entry+0x45/0x45
  [<c13949e5>] nmi_stack_correct+0x28/0x2d
  [<c1029dc5>] ? ftrace_define_fields_irq_handler_entry+0x45/0x45
  [<c1003603>] ? do_softirq+0x4b/0x7f
  <IRQ>
  [<c102a06f>] irq_exit+0x35/0x5b
  [<c1018f56>] smp_apic_timer_interrupt+0x6c/0x7a
  [<c1394746>] apic_timer_interrupt+0x2a/0x30
 Code: 89 fe eb 08 31 c9 8b 45 0c ff 55 ec 83 c3 04 83 7d 10 00 74 0c 3b 5d 10 73 26 3b 5d e4 73 0c eb 1f 3b 5d f0 76 1a 3b 5d e8 73 15 <8b> 13 89 d0 89 55 e0 e8 ad 42 03 00 85 c0 8b 55 e0 75 a6 eb cc
 EIP: [<c1004237>] print_context_stack+0x6e/0x8d SS:ESP 0068:f5409ea0
 CR2: 000000000000000a
 ---[ end trace 62afee3481b00012 ]---
 Kernel panic - not syncing: Fatal exception in interrupt

V2:
* add comments to kernel_stack_pointer()
* always return a valid stack address by falling back to the address
  of regs

Reported-by: Yang Wei <wei.yang@windriver.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Robert Richter <robert.richter@amd.com>
Link: http://lkml.kernel.org/r/20120912135059.GZ8285@erda.amd.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: Jun Zhang <jun.zhang@intel.com>
2012-11-20 22:23:20 -08:00
Alexander Shiyan
49a88052b0 ARM: clps711x: p720t: Unneeded inclusion of head-sa1100.S removed
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
2012-11-20 22:21:52 -08:00
Alexander Shiyan
dd850f1223 ARM: clps711x: Transform clps711x-framebuffer to platform driver and use it
clps711x-framebuffer driver needs to be updated and this is a first step
to make driver better. With this patch we are convert clps711x-framebuffer
to platform device and load this driver from board code.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
2012-11-20 22:21:48 -08:00
Alexander Shiyan
b3a076dd02 ARM: clps711x: p720t: Using "leds-gpio" driver for LED control
Instead of manually create LED class device, we will use "leds-gpio"
driver for LED control.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
2012-11-20 22:21:43 -08:00
Alexander Shiyan
200daa367c ARM: clps711x: Using platform_driver for ethernet device
This patch removes static mappings for ethernet devices. Now we will use
platform_driver for ethernet devices.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
2012-11-20 22:21:39 -08:00
Olof Johansson
a93d620159 Merge branch 'clps711x/soc' into clps711x/soc2
Conflicts:
	arch/arm/Kconfig

Signed-off-by: Olof Johansson <olof@lixom.net>
2012-11-20 22:21:32 -08:00
Takashi Iwai
789e05275e ASoC: Fixes for v3.7
The biggest batch of fixes here is the Kirkwood DMA fixes, plus a couple
 of other small fixes.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJQrEALAAoJELSic+t+oim9BHgP/37A90Xw+cLnTNnr4BRYPl0b
 eeyaCiYxr1VEg11zz+hyID4dBfca+ijUUmEsL/gSMRXb2L228l7P5FcXEKOVac9d
 xqcq59ZFu3QA5m2CcachT0t9QXegFTMMlqJ4G2lp6RDoXeU+RpSxC/M28wdLpOt+
 CNV/qgptupEXTQJxLxyQ8B3rNU98yAWNruuZ2NWFeQxbxJZVFEHhQtBgAzOxPu2e
 aKMPt7NzV3KSYySOffwCCW0Pj1DC85oSQR0SzI8lcJd8FtmKxJS3wjpZyNwXb3tN
 D2o5MEuyHckJE3JHnmtfbj2VtD97EhiewSiAwqh6pCb8/qO7Pte/+5QVBNv0mBnk
 TIKN68YTeheNVP8v0C9baBW99bqFofGpA6nOw4v0G3k7B11GxtQ9lp5BdDH3tz8m
 lI1zJckAwuSfvC/H9xqS89GKaW3JBpu1nRuICBYGsbWAjPbLKr4i8YMJyVLi3CPN
 o+ocfC5ZT/TdICE7VW09+4viiVO+gg7Tvp5VndIZX5/rpJU1vmKc5ag149t+fhRt
 rmlGSumO9KyTVxEI8CnGsZJXYOF8kJ5BxvKJI7FFUjLa1pE6FYLa6kaaSDs0HGG9
 PdkoplCg7hVSaWSio5tzRfj5ObZWzIoiBBzLTp5PgBTL38YhCvVaK4aw0bjqWSJN
 d5ar1sD4uznNqkjYkdbv
 =V7+d
 -----END PGP SIGNATURE-----

Merge tag 'asoc-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v3.7

The biggest batch of fixes here is the Kirkwood DMA fixes, plus a couple
of other small fixes.
2012-11-21 07:18:11 +01:00
Olof Johansson
5ffd785402 Allwinner SoC support for 3.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAlCmwSAACgkQGxsu9jQV9nbssgCcChzwuFlPkP4sVdTtAGGh5mWD
 rNcAn3PfG1ByMR57GkDtdQiAjS5N2dME
 =Pi49
 -----END PGP SIGNATURE-----

Merge tag 'tags/sunxi-support-for-3.8' of git://github.com/mripard/linux into next/soc

From Maxime Ripard:
Allwinner SoC support for 3.8

* tag 'tags/sunxi-support-for-3.8' of git://github.com/mripard/linux:
  ARM: sunxi: Add entry to MAINTAINERS
  ARM: sunxi: Add device tree for the A13 and the Olinuxino board
  ARM: sunxi: Add earlyprintk support
  ARM: sunxi: Add basic support for Allwinner A1x SoCs
  irqchip: sunxi: Add irq controller driver
  clocksource: sunxi: Add Allwinner A1X Timer Driver
  clk: sunxi: Add dummy fixed rate clock for Allwinner A1X SoCs

Signed-off-by: Olof Johansson <olof@lixom.net>
2012-11-20 22:14:59 -08:00
Haojian Zhuang
b57870e28d ARM: mmp: select pinctrl driver
Pinctrl driver is necessary for MMP DT & MMP2 DT platforms.

Signed-off-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
2012-11-21 13:18:04 +08:00
Andrea Adami
8757e16819 ARM: pxa: fix pxa25x gpio wakeup setting
* Since 3.3 gpio wakeup is broken on pxa25x (tested on corgi and poodle).
* Use gpio_set_wake like done for pxa27x with commit id
* b95ace54a2

Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com>
2012-11-21 13:14:42 +08:00
Stephen Warren
50c8af4cf9 of: introduce for_each_matching_node_and_match()
The following pattern of code is tempting:

    for_each_matching_node(np, table) {
        match = of_match_node(table, np);

However, this results in iterating over table twice; the second time
inside of_match_node(). The implementation of for_each_matching_node()
already found the match, so this is redundant. Invent new function
of_find_matching_node_and_match() and macro
for_each_matching_node_and_match() to remove the double iteration,
thus transforming the above code to:

    for_each_matching_node_and_match(np, table, &match)

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
2012-11-20 22:58:55 -06:00