pandora-kernel.git
15 years agoLinux-omap rebuilt: Fixed omap4 kernel panic without nosmp, updated to -rc7
Tony Lindgren [Thu, 7 Oct 2010 00:11:24 +0000 (17:11 -0700)]
Linux-omap rebuilt: Fixed omap4 kernel panic without nosmp, updated to -rc7

$ git checkout -b tmp-rebuild-1286410261 linus
$ git merge -m "Merge cbus" cbus
$ git merge -m "Merge omap-fixes" omap-fixes
$ git merge -m "Merge omap-testing" omap-testing
$ git merge -m "Merge for-next" for-next
$ git pull ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm.git pm-hwmod-i2c
$ git merge -s ours master
$ git checkout master
$ git merge tmp-rebuild-1286410261

To view the changes since the last rebuild, please do
$ git diff 3c037e41ff7f7356a23316dc5bf3dcef6d2dfac5..cb5c3db11fe39f155d81239664f35ec1c852640e arch/arm/*omap*/

15 years agoMerge branch 'pm-hwmod-i2c' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilm...
Tony Lindgren [Thu, 7 Oct 2010 00:11:15 +0000 (17:11 -0700)]
Merge branch 'pm-hwmod-i2c' of ssh:///linux/kernel/git/khilman/linux-omap-pm into tmp-rebuild-1286410261

15 years agoMerge for-next
Tony Lindgren [Thu, 7 Oct 2010 00:11:08 +0000 (17:11 -0700)]
Merge for-next

15 years agoMerge omap-testing
Tony Lindgren [Thu, 7 Oct 2010 00:11:07 +0000 (17:11 -0700)]
Merge omap-testing

15 years agoMerge omap-fixes
Tony Lindgren [Thu, 7 Oct 2010 00:11:05 +0000 (17:11 -0700)]
Merge omap-fixes

15 years agoMerge cbus
Tony Lindgren [Thu, 7 Oct 2010 00:11:02 +0000 (17:11 -0700)]
Merge cbus

15 years agoARM: Fix HWCAP_TLS flag for ARM11MPCore/Cortex-A9
Tony Lindgren [Thu, 7 Oct 2010 00:01:16 +0000 (17:01 -0700)]
ARM: Fix HWCAP_TLS flag for ARM11MPCore/Cortex-A9

Commit 14eff1812679c76564b775aa95cdd378965f6cfb added proper
detection for ARM11MPCore/Cortex-A9 instead of detecting them
as ARMv7. However, it was missing the HWCAP_TLS flags.

HWCAP_TLS is needed if support for earlier ARMv6 is compiled
into the same kernel. Without HWCAP_TLS flags the userspace
won't work unless nosmp is specified:

Kernel panic - not syncing: Attempted to kill init!
CPU0: stopping
<c005d5e4>] (unwind_backtrace+0x0/0xec) from [<c004c2f8>] (do_IPI+0xfc/0x184)
<c004c2f8>] (do_IPI+0xfc/0x184) from [<c03f25bc>] (__irq_svc+0x9c/0x160)
Exception stack(0xc0565f80 to 0xc0565fc8)
5f80: 00000001 c05772a0 00000000 00003a61 c0564000 c05cf500 c003603c c0578600
5fa0: 80033ef0 410fc091 0000001f 00000000 00000000 c0565fc8 c00b91f8 c0057cb4
5fc0: 20000013 ffffffff
[<c03f25bc>] (__irq_svc+0x9c/0x160) from [<c0057cb4>] (default_idle+0x30/0x38)
[<c0057cb4>] (default_idle+0x30/0x38) from [<c005829c>] (cpu_idle+0x9c/0xf8)
[<c005829c>] (cpu_idle+0x9c/0xf8) from [<c0008d48>] (start_kernel+0x2a4/0x300)
[<c0008d48>] (start_kernel+0x2a4/0x300) from [<80008084>] (0x80008084)

Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoI2C: runtime: Fix checks which make legacy suspend to never get called
Rajendra Nayak [Wed, 29 Sep 2010 21:20:34 +0000 (14:20 -0700)]
I2C: runtime: Fix checks which make legacy suspend to never get called

For devices which are not adapted to runtime PM a call to
pm_runtime_suspended always returns true.

Hence the pm_runtime_suspended checks below prevent legacy
suspend from getting called.

So do a pm_runtime_suspended check only for devices with a
dev_pm_ops populated (which hence do not rely on the legacy
suspend)

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Ben Dooks <ben-linux@fluff.org>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Jean Delvare <khali@linux-fr.org>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
15 years agocrypto: omap-aes - OMAP2/3 AES hw accelerator driver
Dmitry Kasatkin [Wed, 29 Sep 2010 17:12:03 +0000 (10:12 -0700)]
crypto: omap-aes - OMAP2/3 AES hw accelerator driver

Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@nokia.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
15 years agoARM: add cpu_idle_wait() to support CPUidle on SMP systems.
Kevin Hilman [Tue, 28 Sep 2010 16:43:12 +0000 (09:43 -0700)]
ARM: add cpu_idle_wait() to support CPUidle on SMP systems.

In order for CPUidle to work on SMP systems, an implementation of
cpu_idle_wait() is needed.

This patch duplicates the x86 implementation of cpu_idle_wait() for
ARM.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
15 years agoi2c: Fix for suspend/resume issue
Vishwanath BS [Tue, 28 Sep 2010 00:14:58 +0000 (17:14 -0700)]
i2c: Fix for suspend/resume issue

In current i2c core driver, call to pm_runtime_set_active from
i2c_device_pm_resume will unconditionally enable i2c module and
increment child count of the parent. Because of this, in CPU Idle
path, i2c does not idle, preventing Core to enter retention. Also i2c
module will not be suspended upon system suspend as
pm_runtime_set_suspended is not called from i2c_device_pm_suspend.

This issue is fixed by removing pm_runtime_set_active call from resume
path which is not necessary.
This fix has been tested on OMAP4430.

Signed-off-by: Partha Basak <p-basak2@ti.com>
Signed-off-by: Vishwanath BS <vishwanath.bs@ti.com>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Cc: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
15 years agoPM / Runtime: Lenient generic runtime pm callbacks
Ohad Ben-Cohen [Tue, 28 Sep 2010 00:14:44 +0000 (17:14 -0700)]
PM / Runtime: Lenient generic runtime pm callbacks

Allow drivers, that belong to subsystems which use the generic
runtime pm callbacks, not to define runtime pm suspend/resume handlers,
by implicitly assuming success in such cases.

This is needed to eliminate nop handlers that would otherwise be
necessary by drivers which enable runtime pm, but don't need
to do anything when their devices are runtime-suspended/resumed.

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
15 years agoARM: Handle __flush_icache_all for CONFIG_SMP_ON_UP
Tony Lindgren [Wed, 22 Sep 2010 17:31:21 +0000 (10:31 -0700)]
ARM: Handle __flush_icache_all for CONFIG_SMP_ON_UP

Do this by adding flush_icache_all to cache_fns for ARMv6 and 7.
As flush_icache_all may neeed to be called from flush_kern_cache_all,
add it as the first entry in the cache_fns.

Note that now we can remove the ARM_ERRATA_411920 dependency
to !SMP so it can be selected on UP ARMv6 processors, such
as omap2.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
15 years agoLinux 2.6.36-rc7 v2.6.36-rc7
Linus Torvalds [Wed, 6 Oct 2010 20:39:52 +0000 (13:39 -0700)]
Linux 2.6.36-rc7

15 years agoMerge branch 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus
Linus Torvalds [Wed, 6 Oct 2010 20:27:19 +0000 (13:27 -0700)]
Merge branch 'upstream' of git://git.linux-mips.org/upstream-linus

* 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus:
  MIPS: Octeon: Place cnmips_cu2_setup in __init memory.
  MIPS: Don't place cu2 notifiers in __cpuinitdata
  MIPS: Calculate VMLINUZ_LOAD_ADDRESS based on the length of vmlinux.bin
  MIPS: Alchemy: Resolve prom section mismatches
  MIPS: Fix syscall 64 bit number comments.
  MIPS: Hookup fanotify_init, fanotify_mark, and prlimit64 syscalls.
  MIPS: TX49xx: Rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN
  MIPS: N32: Fix getdents64 syscall for n32
  MIPS: Remove pr_<level> uses of KERN_<level>
  MIPS: PNX8550: Sort out machine halt, restart and powerdown functions.
  MIPS: GIC: Remove dependencies from Malta files.
  MIPS: Kconfig: Fix and clarify kconfig help text for VSMP and SMTC.
  MIPS: DMA: Fix computation of DMA flags from device's coherent_dma_mask.
  MIPS: Audit: Fix hang in entry.S.
  MIPS: Document why RELOC_HIDE is there.
  MIPS: Octeon: Determine if helper needs to be built
  MIPS: Use generic atomic64 for 32-bit kernels
  MIPS: RM7000: Symbol should be static
  MIPS: kspd: Adjust confusing if indentation
  MIPS: Fix a typo.

15 years agoLinux-omap rebuilt: omap-for-linus updated, pm-hwmods merged for testing
Tony Lindgren [Wed, 6 Oct 2010 19:55:42 +0000 (12:55 -0700)]
Linux-omap rebuilt: omap-for-linus updated, pm-hwmods merged for testing

$ git checkout -b tmp-rebuild-1286394925 linus
$ git merge -m "Merge cbus" cbus
$ git merge -m "Merge omap-fixes" omap-fixes
$ git merge -m "Merge omap-testing" omap-testing
$ git merge -m "Merge for-next" for-next
$ git pull ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm.git pm-hwmod-i2c
$ git merge -s ours master
$ git checkout master
$ git merge tmp-rebuild-1286394925

To view the changes since the last rebuild, please do
$ git diff d1f5295de78f2d327d60eb1d070da4c8c37fe457..c1c3b118f134acc87578516fa9551ce05510c44c arch/arm/*omap*/

15 years agoMerge branch 'pm-hwmod-i2c' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilm...
Tony Lindgren [Wed, 6 Oct 2010 19:55:36 +0000 (12:55 -0700)]
Merge branch 'pm-hwmod-i2c' of ssh:///linux/kernel/git/khilman/linux-omap-pm into tmp-rebuild-1286394925

15 years agoMerge for-next
Tony Lindgren [Wed, 6 Oct 2010 19:55:32 +0000 (12:55 -0700)]
Merge for-next

15 years agoMerge omap-testing
Tony Lindgren [Wed, 6 Oct 2010 19:55:31 +0000 (12:55 -0700)]
Merge omap-testing

15 years agoMerge omap-fixes
Tony Lindgren [Wed, 6 Oct 2010 19:55:29 +0000 (12:55 -0700)]
Merge omap-fixes

15 years agoMerge cbus
Tony Lindgren [Wed, 6 Oct 2010 19:55:27 +0000 (12:55 -0700)]
Merge cbus

15 years agoMerge branches 'omap-fixes', 'omap-for-linus' and 'devel-pending' into for-next
Tony Lindgren [Wed, 6 Oct 2010 19:51:45 +0000 (12:51 -0700)]
Merge branches 'omap-fixes', 'omap-for-linus' and 'devel-pending' into for-next

15 years agoomap: Fix spotty MMC voltages
Tony Lindgren [Tue, 5 Oct 2010 17:02:39 +0000 (10:02 -0700)]
omap: Fix spotty MMC voltages

As noted by Michał Mirosław <mirqus@gmail.com>, the voltages should
cover the supported voltage range, or support only one voltage.

As all these boards are using a GPIO to enable the power, chances
are that only 3.3V cards are supported on these boards.

Reported-by: Michał Mirosław <mirqus@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap: Update omap2plus_defconfig to use ttyO instead ttyS
Tony Lindgren [Tue, 5 Oct 2010 17:09:03 +0000 (10:09 -0700)]
omap: Update omap2plus_defconfig to use ttyO instead ttyS

With the omap-serial the device has changed from ttyS to ttyO as
the system may have both omap-serial and 8250 ports.

Note that systems using omap-serial need to be updated to use ttyO[012]
instead of ttyS[012] in the bootloader, CONFIG_CMDLINE, /etc/inittab,
and the root file system with mknod. Also you may need to add ttyO[012]
to /etc/securetty.

Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoMerge branch 'control_mcbsp_fix_2.6.37' of git://git.pwsan.com/linux-2.6 into omap...
Tony Lindgren [Wed, 6 Oct 2010 19:42:25 +0000 (12:42 -0700)]
Merge branch 'control_mcbsp_fix_2.6.37' of git://git.pwsan.com/linux-2.6 into omap-for-linus

15 years agoOMAP2: PM: check UART status before trying to idle
Kevin Hilman [Wed, 6 Oct 2010 15:52:18 +0000 (15:52 +0000)]
OMAP2: PM: check UART status before trying to idle

As is done on OMAP3, check omap_uart_can_sleep() as one of the
pre-conditions for entering the idle loop.  Without this check,
entering idle introduces large latencies on active UARTs, and is
especially noticable on serial console.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoOMAP: McBSP: Remove null omap44xx ops comment
Jarkko Nikula [Wed, 6 Oct 2010 05:50:42 +0000 (08:50 +0300)]
OMAP: McBSP: Remove null omap44xx ops comment

It seems these comments where accidentally added so remove them.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
15 years agoOMAP: McBSP: Swap CLKS source definition
Jarkko Nikula [Wed, 6 Oct 2010 05:50:41 +0000 (08:50 +0300)]
OMAP: McBSP: Swap CLKS source definition

This is just a readability and debugging improvement. As selection bit in
DEVCONF register is cleared when using 96 MHz PRCM source and set when using
external CLKS pin, change definitions to be sync with these.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
15 years agoOMAP: McBSP: Fix CLKR and FSR signal muxing
Jarkko Nikula [Wed, 6 Oct 2010 05:50:40 +0000 (08:50 +0300)]
OMAP: McBSP: Fix CLKR and FSR signal muxing

Fix bit clear. Now it clears all other bits than mask bit where it should
clear only it.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
15 years agoOMAP2+: clock: reduce the amount of standard debugging while disabling unused clocks
Paul Walmsley [Fri, 1 Oct 2010 21:46:44 +0000 (15:46 -0600)]
OMAP2+: clock: reduce the amount of standard debugging while disabling unused clocks

Reduce the amount of debugging generated by default when unused clocks
are being disabled by the clock code.  The previous code would only
generate debug-level messages, but some people who wished to run
production kernels with debug-level messages enabled reported that the
large number of clock disable messages were slowing boot.  Now to
enable clock-by-clock disable messages, DEBUG needs to be defined in
mach-omap2/clock.c.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Tuukka Tikkanen <tuukka.tikkanen@nokia.com>
Cc: Tim Bird <tim.bird@am.sony.com>
15 years agoOMAP: control: move plat-omap/control.h to mach-omap2/control.h
Paul Walmsley [Fri, 1 Oct 2010 21:46:44 +0000 (15:46 -0600)]
OMAP: control: move plat-omap/control.h to mach-omap2/control.h

Only OMAP2+ platforms have the System Control Module (SCM) IP block.
In the past, we've kept the SCM header file in plat-omap.  This has
led to abuse - device drivers including it; includes being added that
create implicit dependencies on OMAP2+ builds; etc.

In response, move the SCM headers into mach-omap2/.

As part of this, remove the direct SCM access from the OMAP UDC
driver.  It was clearly broken.  The UDC code needs an indepth review for
use on OMAP2+ chips.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Cory Maccarrone <darkstar6262@gmail.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
15 years agoOMAP: split plat-omap/common.c
Paul Walmsley [Wed, 6 Oct 2010 17:33:23 +0000 (11:33 -0600)]
OMAP: split plat-omap/common.c

Split plat-omap/common.c into three pieces:

1. the 32KiHz sync timer and clocksource code, which now lives in
   plat-omap/counter_32k.c;

2. the OMAP2+ common code, which has been moved to mach-omap2/common.c;

3. and the remainder of the OMAP-wide common code, which includes the
   deprecated ATAGs code and a deprecated video RAM reservation function.

The primary motivation for doing this is to move the OMAP2+-specific parts
into an OMAP2+-specific file, so that build breakage related to the
System Control Module code can be resolved.

Benoît Cousson <b-cousson@ti.com> suggested a new filename and found
some bugs in the counter_32k.c comments - thanks Benoît.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Benoît Cousson <b-cousson@ti.com>
15 years agoOMAP: McBSP: implement functional clock switching via clock framework
Paul Walmsley [Wed, 6 Oct 2010 17:33:23 +0000 (11:33 -0600)]
OMAP: McBSP: implement functional clock switching via clock framework

Previously the OMAP McBSP ASoC driver implemented CLKS switching by
using omap_ctrl_{read,write}l() directly.  This is against policy; the OMAP
System Control Module functions are not intended to be exported to drivers.
These symbols are no longer exported, so as a result, the OMAP McBSP ASoC
driver does not build as a module.

Resolve the CLKS clock changing portion of this problem by creating a
clock parent changing function that lives in
arch/arm/mach-omap2/mcbsp.c, and modify the ASoC driver to use it.
Due to the unfortunate way that McBSP support is implemented in ASoC
and the OMAP tree, this symbol must be exported for use by
sound/soc/omap/omap-mcbsp.c.

Going forward, the McBSP device driver should be moved from
arch/arm/*omap* into drivers/ or sound/soc/* and the CPU DAI driver
should be implemented as a platform_driver as many other ASoC CPU DAI
drivers are.  These two steps should resolve many of the layering
problems, which will rapidly reappear during a McBSP hwmod/PM runtime
conversions.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoOMAP: McBSP: implement McBSP CLKR and FSR signal muxing via mach-omap2/mcbsp.c
Paul Walmsley [Wed, 6 Oct 2010 17:33:22 +0000 (11:33 -0600)]
OMAP: McBSP: implement McBSP CLKR and FSR signal muxing via mach-omap2/mcbsp.c

The OMAP ASoC McBSP code implemented CLKR and FSR signal muxing via
direct System Control Module writes on OMAP2+.  This required the
omap_ctrl_{read,write}l() functions to be exported, which is against
policy: the only code that should call those functions directly is
OMAP core code, not device drivers.  omap_ctrl_{read,write}*() are no
longer exported, so the driver no longer builds as a module.

Fix the pinmuxing part of the problem by removing calls to
omap_ctrl_{read,write}l() from the OMAP ASoC McBSP code and
implementing signal muxing functions in arch/arm/mach-omap2/mcbsp.c.
Due to the unfortunate way that McBSP support is implemented in ASoC
and the OMAP tree, these symbols must be exported for use by
sound/soc/omap/omap-mcbsp.c.

Going forward, the McBSP device driver should be moved from
arch/arm/*omap* into drivers/ or sound/soc/*, and the CPU DAI driver
should be implemented as a platform_driver as many other ASoC CPU DAI
drivers are.  These two steps should resolve many of the layering
problems, which will rapidly reappear during a McBSP hwmod/PM runtime
conversion.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoOMAP3xxx: clock: add clkdev aliases for McBSP fclk source switching
Paul Walmsley [Wed, 6 Oct 2010 17:33:22 +0000 (11:33 -0600)]
OMAP3xxx: clock: add clkdev aliases for McBSP fclk source switching

The OMAP3 clock tree already contains the infrastructure to support
clock framework-based McBSP functional clock source switching.  But it
did not contain the clkdev aliases for the McBSP code to refer to the
parent clocks in an SoC integration-neutral way.  So, add the clkdev
aliases for the parent clocks.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
15 years agoOMAP2430: clock: add MCBSP_CLKS node and clkdev aliases
Paul Walmsley [Wed, 6 Oct 2010 17:33:22 +0000 (11:33 -0600)]
OMAP2430: clock: add MCBSP_CLKS node and clkdev aliases

Add the MCBSP_CLKS clock and the clksel structures needed to support clock
framework-based source switching for McBSPs 1-5.  Also, add clkdev
aliases on the parent clocks for the McBSP source switching code, added
in a subsequent patch.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
15 years agoOMAP2420: clock: add MCBSP_CLKS node and clkdev aliases
Paul Walmsley [Wed, 6 Oct 2010 17:33:21 +0000 (11:33 -0600)]
OMAP2420: clock: add MCBSP_CLKS node and clkdev aliases

Add the MCBSP_CLKS clock and the clksel structures needed to support clock
framework-based source switching for McBSP 1 and 2.  Also, add clkdev
aliases on the parent clocks for the McBSP source switching code, added
in a subsequent patch.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
15 years agoOMAP2420: CTRL: fix OMAP242X_CTRL_REGADDR macro
Paul Walmsley [Wed, 6 Oct 2010 17:33:21 +0000 (11:33 -0600)]
OMAP2420: CTRL: fix OMAP242X_CTRL_REGADDR macro

Conform the OMAP2420_CTRL_BASE macro name to the standard of the rest of the
OMAP*_CTRL_BASE macro names.  This fixes a bug in the OMAP2420 SCM code that
prevented OMAP242X_CTRL_REGADDR from working.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
15 years agoOMAP2+: Kconfig: disallow builds for boards that don't use the currently-selected SoC
Paul Walmsley [Wed, 6 Oct 2010 17:33:20 +0000 (11:33 -0600)]
OMAP2+: Kconfig: disallow builds for boards that don't use the currently-selected SoC

Currently, if, for example, CONFIG_ARCH_OMAP2420 is not selected, OMAP2420
board files can still be included in the build.  This results in link errors:

arch/arm/mach-omap2/built-in.o: In function `omap_generic_map_io':
.../arch/arm/mach-omap2/board-generic.c:51: undefined reference to `omap2_set_globals_242x'
arch/arm/mach-omap2/built-in.o: In function `omap_h4_init':
.../arch/arm/mach-omap2/board-h4.c:330: undefined reference to `omap2420_mux_init'
arch/arm/mach-omap2/built-in.o: In function `omap_h4_map_io':
.../arch/arm/mach-omap2/board-h4.c:373: undefined reference to `omap2_set_globals_242x'
arch/arm/mach-omap2/built-in.o: In function `omap_apollon_init':
.../arch/arm/mach-omap2/board-apollon.c:325: undefined reference to `omap2420_mux_init'
arch/arm/mach-omap2/built-in.o: In function `omap_apollon_map_io':
.../arch/arm/mach-omap2/board-apollon.c:353: undefined reference to `omap2_set_globals_242x'
make: *** [.tmp_vmlinux1] Error 1

Fix this by making the boards depend on the Kconfig option for the
specific SoC that they use.

Also, while here, fix the mach-omap2/board-generic.c file to remove the
dependency on OMAP2420.

Charulatha Varadarajan <charu@ti.com> caught a typo - thanks Charu.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Charulatha Varadarajan <charu@ti.com>
15 years agoMerge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
Linus Torvalds [Wed, 6 Oct 2010 18:11:18 +0000 (11:11 -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:
  writeback: always use sb->s_bdi for writeback purposes

15 years agoomap: hwmod: Handle modules with 16bit registers
Rajendra Nayak [Tue, 5 Oct 2010 16:59:44 +0000 (16:59 +0000)]
omap: hwmod: Handle modules with 16bit registers

Some modules which have 16bit registers can cause imprecise
aborts if a __raw_readl/writel is used to read/write 32 bits.

Add an additional flag to identify modules which have such
hard requirement, and handle it in the hwmod framework.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Tested-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoarm/omap: remove duplicated include
Nicolas Kaiser [Mon, 4 Oct 2010 10:39:37 +0000 (10:39 +0000)]
arm/omap: remove duplicated include

Remove duplicated include.

Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoOMAP2PLUS: WDT: Fix: Disable WDT after reset during init
Charulatha V [Sat, 2 Oct 2010 10:36:11 +0000 (10:36 +0000)]
OMAP2PLUS: WDT: Fix: Disable WDT after reset during init

Inorder to avoid any assumptions from bootloader, the watchdog
timer module is reset during init. This enables the watchdog
timer.

Therefore, it is required to disable WDT after it is reset
during init. Otherwise the system would reboot as per the default
watchdog timer registers settings.

Later, when the watchdog driver is loaded, the watchdog timer settings
is adjusted as per the default timer_margin set in the driver and the
driver would supports the normal operations supported by OMAP watchdog
timer.

Signed-off-by: Charulatha V <charu@ti.com>
Reported-by: Kevin Hilman <khilman@deeprootsystems.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: Remove VMMC2 regulator on IGEP v2
Enric Balletbo i Serra [Tue, 5 Oct 2010 14:15:22 +0000 (14:15 +0000)]
omap3: Remove VMMC2 regulator on IGEP v2

VMMC2 regulator is configured but it's not used for the IGEP v2, so
remove this regulator from board.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: Add i2c eeprom driver to read EDID on IGEP v2
Enric Balletbo i Serra [Tue, 5 Oct 2010 14:15:21 +0000 (14:15 +0000)]
omap3: Add i2c eeprom driver to read EDID on IGEP v2

Add i2c eeprom driver to access monitor EDID binary information
from user space, something that is required by 'decode-edid' and
'parse-edid'.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: Fix handling some GPIO's for WLAN-BT combo on IGEP v2
Enric Balletbo i Serra [Tue, 5 Oct 2010 14:15:20 +0000 (14:15 +0000)]
omap3: Fix handling some GPIO's for WLAN-BT combo on IGEP v2

Some GPIO's used by WLAN-BT combo on IGEP v2 depends on hardware
revision. This patch handles these GPIO's.

  ----------------------------------------------------------
 |       Hw Rev.       | WIFI_NPD | WIFI_NRESET | BT_NRESET |
  ----------------------------------------------------------
 |  B                  | gpio94  |   gpio95    |     -      |
 |  B/C (B-compatible) | gpio94  |   gpio95    |  gpio137   |
 |  C                  | gpio138 |   gpio139   |  gpio137   |
  ----------------------------------------------------------

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: Introduce function to detect the IGEP v2 hardwarerevision
Enric Balletbo i Serra [Tue, 5 Oct 2010 14:15:19 +0000 (14:15 +0000)]
omap3: Introduce function to detect the IGEP v2 hardwarerevision

There are currently two versions of IGEP v2 board, this patch introduces a
function to detect the hardware revision of IGEP board.

  --------------------------
 | Id. | Hw Rev. | GPIO 28  |
  --------------------------
 |  0  |   B/C   |   high   |
 |  1  |   C     |   low    |
  --------------------------

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: fix and improve the LED handling on IGEP v2 board
Enric Balletbo i Serra [Tue, 5 Oct 2010 14:15:18 +0000 (14:15 +0000)]
omap3: fix and improve the LED handling on IGEP v2 board

The IGEP v2 board has four leds, this patch allows control all
of these LEDs using the LED class if CONFIG_LEDS_GPIO is selected
or using the General Purpose Input/Output (GPIO) interface if
CONFIG_LEDS_GPIO is not selected.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: Add external VBUS power switch and overcurrent detect onIGEP v2 board
Enric Balletbo i Serra [Tue, 5 Oct 2010 14:15:17 +0000 (14:15 +0000)]
omap3: Add external VBUS power switch and overcurrent detect onIGEP v2 board

GPIO for various devices are missing from the board initialization.
This patch adds support for the VBUS and over current gpios.  Without this
patch, input/outputs from these two sources are ignored.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: Add minimal OMAP3 IGEP module support
Enric Balletbo i Serra [Sat, 2 Oct 2010 22:06:15 +0000 (22:06 +0000)]
omap3: Add minimal OMAP3 IGEP module support

The OMAP3 IGEP module is a low-power, high performance production-ready
system-on-module (SOM) based on TI's OMAP3 family. More about this
board at www.igep.es.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
[tony@atomide.com: updated for the mmc changes and to be selected by default]
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoMerge branch 'pm-hwmods' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman...
Tony Lindgren [Wed, 6 Oct 2010 17:09:33 +0000 (10:09 -0700)]
Merge branch 'pm-hwmods' of ssh:///linux/kernel/git/khilman/linux-omap-pm into omap-for-linus

15 years agoMerge branches 'devel-omap1' and 'devel-omap2plus' into omap-for-linus
Tony Lindgren [Wed, 6 Oct 2010 17:05:40 +0000 (10:05 -0700)]
Merge branches 'devel-omap1' and 'devel-omap2plus' into omap-for-linus

15 years agoMerge branch 'pm-next-2' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman...
Tony Lindgren [Wed, 6 Oct 2010 17:04:46 +0000 (10:04 -0700)]
Merge branch 'pm-next-2' of ssh:///linux/kernel/git/khilman/linux-omap-pm into omap-for-linus

15 years agoMerge branch 'omap_sparse_fixesv2' of git://dev.omapzoom.org/pub/scm/manju/kernel...
Tony Lindgren [Wed, 6 Oct 2010 17:03:22 +0000 (10:03 -0700)]
Merge branch 'omap_sparse_fixesv2' of git://dev.omapzoom.org/manju/kernel-omap3-dev into omap-for-linus

15 years agoMerge branch 'v2.6.36-rc6-urgent-fixes' of git://xenbits.xen.org/people/sstabellini...
Linus Torvalds [Wed, 6 Oct 2010 16:51:28 +0000 (09:51 -0700)]
Merge branch 'v2.6.36-rc6-urgent-fixes' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm

* 'v2.6.36-rc6-urgent-fixes' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm:
  xen: do not initialize PV timers on HVM if !xen_have_vector_callback
  xen: do not set xenstored_ready before xenbus_probe on hvm

15 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi...
Linus Torvalds [Wed, 6 Oct 2010 16:50:41 +0000 (09:50 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/mszeredi/fuse

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
  fuse: Initialize total_len in fuse_retrieve()

15 years agopowerpc: remove unused variable
Stephen Rothwell [Wed, 6 Oct 2010 00:06:44 +0000 (11:06 +1100)]
powerpc: remove unused variable

Since powerpc uses -Werror on arch powerpc, the build was broken like
this:

  cc1: warnings being treated as errors
  arch/powerpc/kernel/module.c: In function 'module_finalize':
  arch/powerpc/kernel/module.c:66: error: unused variable 'err'

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoMerge branch 'pm-hwmod-i2c' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilm...
Tony Lindgren [Tue, 5 Oct 2010 23:09:55 +0000 (16:09 -0700)]
Merge branch 'pm-hwmod-i2c' of ssh:///linux/kernel/git/khilman/linux-omap-pm

15 years agoLinux-omap rebuilt: Merged in updated for-next
Tony Lindgren [Tue, 5 Oct 2010 21:56:18 +0000 (14:56 -0700)]
Linux-omap rebuilt: Merged in updated for-next

$ git checkout -b tmp-rebuild-1286315758 linus
$ git merge -m "Merge cbus" cbus
$ git merge -m "Merge omap-fixes" omap-fixes
$ git merge -m "Merge omap-testing" omap-testing
$ git merge -m "Merge for-next" for-next
$ git pull ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm.git pm-hwmods
$ git merge -s ours master
$ git checkout master
$ git merge tmp-rebuild-1286315758

To view the changes since the last rebuild, please do
$ git diff e1db73912a2f1855926a81394bfc8b987617c11e..699447917fa0273fae9c1d2b74ca6cd8ee306b21 arch/arm/*omap*/

15 years agoMerge for-next
Tony Lindgren [Tue, 5 Oct 2010 21:56:06 +0000 (14:56 -0700)]
Merge for-next

15 years agoMerge omap-testing
Tony Lindgren [Tue, 5 Oct 2010 21:56:04 +0000 (14:56 -0700)]
Merge omap-testing

15 years agoMerge omap-fixes
Tony Lindgren [Tue, 5 Oct 2010 21:56:02 +0000 (14:56 -0700)]
Merge omap-fixes

15 years agoMerge cbus
Tony Lindgren [Tue, 5 Oct 2010 21:55:59 +0000 (14:55 -0700)]
Merge cbus

15 years agoI2C: runtime: Fix checks which make legacy suspend to never get called
Rajendra Nayak [Wed, 29 Sep 2010 21:20:34 +0000 (14:20 -0700)]
I2C: runtime: Fix checks which make legacy suspend to never get called

For devices which are not adapted to runtime PM a call to
pm_runtime_suspended always returns true.

Hence the pm_runtime_suspended checks below prevent legacy
suspend from getting called.

So do a pm_runtime_suspended check only for devices with a
dev_pm_ops populated (which hence do not rely on the legacy
suspend)

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Ben Dooks <ben-linux@fluff.org>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Jean Delvare <khali@linux-fr.org>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
15 years agocrypto: omap-aes - OMAP2/3 AES hw accelerator driver
Dmitry Kasatkin [Wed, 29 Sep 2010 17:12:03 +0000 (10:12 -0700)]
crypto: omap-aes - OMAP2/3 AES hw accelerator driver

Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@nokia.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
15 years agoARM: add cpu_idle_wait() to support CPUidle on SMP systems.
Kevin Hilman [Tue, 28 Sep 2010 16:43:12 +0000 (09:43 -0700)]
ARM: add cpu_idle_wait() to support CPUidle on SMP systems.

In order for CPUidle to work on SMP systems, an implementation of
cpu_idle_wait() is needed.

This patch duplicates the x86 implementation of cpu_idle_wait() for
ARM.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
15 years agoi2c: Fix for suspend/resume issue
Vishwanath BS [Tue, 28 Sep 2010 00:14:58 +0000 (17:14 -0700)]
i2c: Fix for suspend/resume issue

In current i2c core driver, call to pm_runtime_set_active from
i2c_device_pm_resume will unconditionally enable i2c module and
increment child count of the parent. Because of this, in CPU Idle
path, i2c does not idle, preventing Core to enter retention. Also i2c
module will not be suspended upon system suspend as
pm_runtime_set_suspended is not called from i2c_device_pm_suspend.

This issue is fixed by removing pm_runtime_set_active call from resume
path which is not necessary.
This fix has been tested on OMAP4430.

Signed-off-by: Partha Basak <p-basak2@ti.com>
Signed-off-by: Vishwanath BS <vishwanath.bs@ti.com>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Cc: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
15 years agoPM / Runtime: Lenient generic runtime pm callbacks
Ohad Ben-Cohen [Tue, 28 Sep 2010 00:14:44 +0000 (17:14 -0700)]
PM / Runtime: Lenient generic runtime pm callbacks

Allow drivers, that belong to subsystems which use the generic
runtime pm callbacks, not to define runtime pm suspend/resume handlers,
by implicitly assuming success in such cases.

This is needed to eliminate nop handlers that would otherwise be
necessary by drivers which enable runtime pm, but don't need
to do anything when their devices are runtime-suspended/resumed.

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
15 years agoARM: Handle __flush_icache_all for CONFIG_SMP_ON_UP
Tony Lindgren [Wed, 22 Sep 2010 17:31:21 +0000 (10:31 -0700)]
ARM: Handle __flush_icache_all for CONFIG_SMP_ON_UP

Do this by adding flush_icache_all to cache_fns for ARMv6 and 7.
As flush_icache_all may neeed to be called from flush_kern_cache_all,
add it as the first entry in the cache_fns.

Note that now we can remove the ARM_ERRATA_411920 dependency
to !SMP so it can be selected on UP ARMv6 processors, such
as omap2.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
15 years agoOMAP: I2C: Convert i2c driver to use PM runtime api's
Rajendra Nayak [Tue, 28 Sep 2010 15:32:58 +0000 (21:02 +0530)]
OMAP: I2C: Convert i2c driver to use PM runtime api's

This patch converts the i2c driver to use PM runtime apis

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Jean Delvare <khali@linux-fr.org>
Acked-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
15 years agoOMAP: I2C: split device registration and convert OMAP2+ to omap_device
Paul Walmsley [Tue, 21 Sep 2010 14:07:15 +0000 (19:37 +0530)]
OMAP: I2C: split device registration and convert OMAP2+ to omap_device

Split the OMAP1 and OMAP2+ platform_device build and register code.
Convert the OMAP2+ variant to use omap_device.

This patch was developed in collaboration with Rajendra Nayak
<rnayak@ti.com>.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
15 years agoOMAP4: hwmod: add I2C hwmods for OMAP4430
Benoit Cousson [Tue, 21 Sep 2010 14:07:14 +0000 (19:37 +0530)]
OMAP4: hwmod: add I2C hwmods for OMAP4430

Add hwmod structures for I2C controllers on OMAP4430.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
15 years agoOMAP3: hwmod: add I2C hwmods for OMAP3430
Rajendra Nayak [Tue, 21 Sep 2010 14:07:13 +0000 (19:37 +0530)]
OMAP3: hwmod: add I2C hwmods for OMAP3430

Add hwmod structures for I2C controllers on OMAP3430.

This patch was developed in collaboration with Paul Walmsley <paul@pwsan.com>.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
15 years agoOMAP2xxx: hwmod: add I2C hwmods for OMAP2420, 2430
Paul Walmsley [Wed, 29 Sep 2010 21:10:12 +0000 (02:40 +0530)]
OMAP2xxx: hwmod: add I2C hwmods for OMAP2420, 2430

Add hwmod structures for I2C controllers on OMAP2420/2430.

NOTE: I2C module on OMAP2420 has 16bit registers and causes imprecise
aborts if 32bits are read/written to it.  Use the HWMOD_16BIT_REG flag
to notify the hmwod framework of this hard requirement so that
__raw_writew/readw is used to read /write the mdoule registers.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
15 years agoMerge branches 'omap-fixes', 'omap-for-linus' and 'devel-pending' into for-next
Tony Lindgren [Tue, 5 Oct 2010 20:22:09 +0000 (13:22 -0700)]
Merge branches 'omap-fixes', 'omap-for-linus' and 'devel-pending' into for-next

15 years agoomap: hwmod: Handle modules with 16bit registers
Rajendra Nayak [Tue, 5 Oct 2010 16:59:44 +0000 (16:59 +0000)]
omap: hwmod: Handle modules with 16bit registers

Some modules which have 16bit registers can cause imprecise
aborts if a __raw_readl/writel is used to read/write 32 bits.

Add an additional flag to identify modules which have such
hard requirement, and handle it in the hwmod framework.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Tested-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoMerge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Tue, 5 Oct 2010 20:07:43 +0000 (13:07 -0700)]
Merge branch 'core-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  rcu: rcu_read_lock_bh_held(): disabling irqs also disables bh
  generic-ipi: Fix deadlock in __smp_call_function_single

15 years agoarm/omap: remove duplicated include
Nicolas Kaiser [Mon, 4 Oct 2010 10:39:37 +0000 (10:39 +0000)]
arm/omap: remove duplicated include

Remove duplicated include.

Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoMerge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Tue, 5 Oct 2010 18:57:37 +0000 (11:57 -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:
  perf trace scripting: Fix extern struct definitions
  perf ui hist browser: Fix segfault on 'a' for annotate
  perf tools: Fix build breakage
  perf, x86: Handle in flight NMIs on P4 platform
  oprofile, ARM: Release resources on failure
  oprofile: Add Support for Intel CPU Family 6 / Model 29

15 years agowait: using uninitialized member of wait queue
Evgeny Kuznetsov [Tue, 5 Oct 2010 08:47:57 +0000 (12:47 +0400)]
wait: using uninitialized member of wait queue

The "flags" member of "struct wait_queue_t" is used in several places in
the kernel code without beeing initialized by init_wait().  "flags" is
used in bitwise operations.

If "flags" not initialized then unexpected behaviour may take place.
Incorrect flags might used later in code.

Added initialization of "wait_queue_t.flags" with zero value into
"init_wait".

Signed-off-by: Evgeny Kuznetsov <EXT-Eugeny.Kuznetsov@nokia.com>
[ The bit we care about does end up being initialized by both
   prepare_to_wait() and add_to_wait_queue(), so this doesn't seem to
   cause actual bugs, but is definitely the right thing to do -Linus ]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agomodules: Fix module_bug_list list corruption race
Linus Torvalds [Tue, 5 Oct 2010 18:29:27 +0000 (11:29 -0700)]
modules: Fix module_bug_list list corruption race

With all the recent module loading cleanups, we've minimized the code
that sits under module_mutex, fixing various deadlocks and making it
possible to do most of the module loading in parallel.

However, that whole conversion totally missed the rather obscure code
that adds a new module to the list for BUG() handling.  That code was
doubly obscure because (a) the code itself lives in lib/bugs.c (for
dubious reasons) and (b) it gets called from the architecture-specific
"module_finalize()" rather than from generic code.

Calling it from arch-specific code makes no sense what-so-ever to begin
with, and is now actively wrong since that code isn't protected by the
module loading lock any more.

So this commit moves the "module_bug_{finalize,cleanup}()" calls away
from the arch-specific code, and into the generic code - and in the
process protects it with the module_mutex so that the list operations
are now safe.

Future fixups:
 - move the module list handling code into kernel/module.c where it
   belongs.
 - get rid of 'module_bug_list' and just use the regular list of modules
   (called 'modules' - imagine that) that we already create and maintain
   for other reasons.

Reported-and-tested-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Adrian Bunk <bunk@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoOMAP2PLUS: WDT: Fix: Disable WDT after reset during init
Tony Lindgren [Sat, 2 Oct 2010 10:36:11 +0000 (10:36 +0000)]
OMAP2PLUS: WDT: Fix: Disable WDT after reset during init

Inorder to avoid any assumptions from bootloader, the watchdog
timer module is reset during init. This enables the watchdog
timer.

Therefore, it is required to disable WDT after it is reset
during init. Otherwise the system would reboot as per the default
watchdog timer registers settings.

Later, when the watchdog driver is loaded, the watchdog timer settings
is adjusted as per the default timer_margin set in the driver and the
driver would supports the normal operations supported by OMAP watchdog
timer.

Signed-off-by: Charulatha V <charu@ti.com>
Reported-by: Kevin Hilman <khilman@deeprootsystems.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: Remove VMMC2 regulator on IGEP v2
Enric Balletbo i Serra [Tue, 5 Oct 2010 14:15:22 +0000 (14:15 +0000)]
omap3: Remove VMMC2 regulator on IGEP v2

VMMC2 regulator is configured but it's not used for the IGEP v2, so
remove this regulator from board.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: Add i2c eeprom driver to read EDID on IGEP v2
Enric Balletbo i Serra [Tue, 5 Oct 2010 14:15:21 +0000 (14:15 +0000)]
omap3: Add i2c eeprom driver to read EDID on IGEP v2

Add i2c eeprom driver to access monitor EDID binary information
from user space, something that is required by 'decode-edid' and
'parse-edid'.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: Fix handling some GPIO's for WLAN-BT combo on IGEP v2
Enric Balletbo i Serra [Tue, 5 Oct 2010 14:15:20 +0000 (14:15 +0000)]
omap3: Fix handling some GPIO's for WLAN-BT combo on IGEP v2

Some GPIO's used by WLAN-BT combo on IGEP v2 depends on hardware
revision. This patch handles these GPIO's.

  ----------------------------------------------------------
 |       Hw Rev.       | WIFI_NPD | WIFI_NRESET | BT_NRESET |
  ----------------------------------------------------------
 |  B                  | gpio94  |   gpio95    |     -      |
 |  B/C (B-compatible) | gpio94  |   gpio95    |  gpio137   |
 |  C                  | gpio138 |   gpio139   |  gpio137   |
  ----------------------------------------------------------

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: Introduce function to detect the IGEP v2 hardwarerevision
Enric Balletbo i Serra [Tue, 5 Oct 2010 14:15:19 +0000 (14:15 +0000)]
omap3: Introduce function to detect the IGEP v2 hardwarerevision

There are currently two versions of IGEP v2 board, this patch introduces a
function to detect the hardware revision of IGEP board.

  --------------------------
 | Id. | Hw Rev. | GPIO 28  |
  --------------------------
 |  0  |   B/C   |   high   |
 |  1  |   C     |   low    |
  --------------------------

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: fix and improve the LED handling on IGEP v2 board
Enric Balletbo i Serra [Tue, 5 Oct 2010 14:15:18 +0000 (14:15 +0000)]
omap3: fix and improve the LED handling on IGEP v2 board

The IGEP v2 board has four leds, this patch allows control all
of these LEDs using the LED class if CONFIG_LEDS_GPIO is selected
or using the General Purpose Input/Output (GPIO) interface if
CONFIG_LEDS_GPIO is not selected.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: Add external VBUS power switch and overcurrent detect onIGEP v2 board
Enric Balletbo i Serra [Tue, 5 Oct 2010 14:15:17 +0000 (14:15 +0000)]
omap3: Add external VBUS power switch and overcurrent detect onIGEP v2 board

GPIO for various devices are missing from the board initialization.
This patch adds support for the VBUS and over current gpios.  Without this
patch, input/outputs from these two sources are ignored.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap3: Add minimal OMAP3 IGEP module support
Enric Balletbo i Serra [Sat, 2 Oct 2010 22:06:15 +0000 (22:06 +0000)]
omap3: Add minimal OMAP3 IGEP module support

The OMAP3 IGEP module is a low-power, high performance production-ready
system-on-module (SOM) based on TI's OMAP3 family. More about this
board at www.igep.es.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
[tony@atomide.com: updated for the mmc changes and to be selected by default]
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoOMAP3: DMA: Errata i541: sDMA FIFO draining does not finish
Peter Ujfalusi [Tue, 5 Oct 2010 06:45:40 +0000 (06:45 +0000)]
OMAP3: DMA: Errata i541: sDMA FIFO draining does not finish

Implement the suggested workaround for OMAP3 regarding to sDMA draining
issue, when the channel is disabled on the fly.
This errata affects the following configuration:
sDMA transfer is source synchronized
Buffering is enabled
SmartStandby is selected.

The issue can be easily reproduced by creating overrun situation while
recording audio.
Either introduce load to the CPU:
nice -19 arecord -D hw:0 -M -B 10000 -F 5000 -f dat > /dev/null & \
dd if=/dev/urandom of=/dev/null

or suspending the arecord, and resuming it:
arecord -D hw:0 -M -B 10000 -F 5000 -f dat > /dev/null
CTRL+Z; fg; CTRL+Z; fg; ...

In case of overrun audio stops DMA, and restarts it (without reseting
the sDMA channel). When we hit this errata in stop case (sDMA drain did
not complete), at the coming start the sDMA will not going to be
operational (it is still draining).
This leads to DMA stall condition.
On OMAP3 we can recover with sDMA channel reset, it has been observed
that by introducing unrelated sDMA activity might also help (reading
from MMC for example).

The same errata exists for OMAP2, where the suggestion is to disable the
buffering to avoid this type of error.
On OMAP3 the suggestion is to set sDMA to NoStandby before disabling
the channel, and wait for the drain to finish, than configure sDMA to
SmartStandby again.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by : Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by : Manjunath Kondaiah G <manjugk@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap: dma: Fix buffering disable bit setting for omap24xx
Jarkko Nikula [Tue, 5 Oct 2010 06:45:39 +0000 (06:45 +0000)]
omap: dma: Fix buffering disable bit setting for omap24xx

An errata workaround for omap24xx is not setting the buffering disable bit
25 what is the purpose but channel enable bit 7 instead.

Background for this fix is the DMA stalling issue with ASoC omap-mcbsp
driver. Peter Ujfalusi <peter.ujfalusi@nokia.com> has found an issue in
recording that the DMA stall could happen if there were a buffer overrun
detected by ALSA and the DMA was stopped and restarted due that. This
problem is known to occur on both OMAP2420 and OMAP3. It can recover on
OMAP3 after dma free, dma request and reconfiguration cycle. However, on
OMAP2420 it seems that only way to recover is a reset.

Problem was not visible before the commit c12abc0. That commit changed that
the McBSP transmitter/receiver is released from reset only when needed. That
is, only enabled McBSP transmitter without transmission was able to prevent
this DMA stall problem in receiving side and underlying problem did not show
up until now. McBSP transmitter itself seems to no be reason since DMA
stall does not recover by enabling the transmission after stall.

Debugging showed that there were a DMA write active during DMA stop time and
it never completed even when restarting the DMA. Experimenting showed that
the DMA buffering disable bit could be used to avoid stalling when using
source synchronized transfers. However that could have performance hit and
OMAP3 TRM states that buffering disable is not allowed for destination
synchronized transfers so subsequent patch will implement a method to
complete DMA writes when stopping.

This patch is based on assumtion that complete lock-up on OMAP2420 is
different but related problem. I don't have access to OMAP2420 errata but
I believe this old workaround here is put for a reason but unfortunately
a wrong bit was typed and problem showed up only now.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Manjunath Kondaiah G <manjugk@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap: iommu-load cam register before flushing the entry
Hari Kanigeri [Fri, 20 Aug 2010 13:50:18 +0000 (13:50 +0000)]
omap: iommu-load cam register before flushing the entry

The flush_iotlb_page is not loading the cam register before flushing
the cam entry. This causes wrong entry to be flushed out from the TLB, and
if the entry happens to be a locked TLB entry it would lead to MMU faults.

The fix is to load the cam register with the address to be flushed before
flushing the TLB entry.

Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Acked-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap: Update omap2plus_defconfig to use ttyO instead ttyS
Tony Lindgren [Tue, 5 Oct 2010 17:09:03 +0000 (10:09 -0700)]
omap: Update omap2plus_defconfig to use ttyO instead ttyS

With the omap-serial the device has changed from ttyS to ttyO as
the system may have both omap-serial and 8250 ports.

Note that systems using omap-serial need to be updated to use ttyO[012]
instead of ttyS[012] in the bootloader, CONFIG_CMDLINE, /etc/inittab,
and the root file system with mknod.

Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoomap: Fix spotty MMC voltages
Tony Lindgren [Tue, 5 Oct 2010 17:02:39 +0000 (10:02 -0700)]
omap: Fix spotty MMC voltages

As noted by Michał Mirosław <mirqus@gmail.com>, the voltages should
cover the supported voltage range, or support only one voltage.

As all these boards are using a GPIO to enable the power, chances
are that only 3.3V cards are supported on these boards.

Reported-by: Michał Mirosław <mirqus@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoMerge branch 'pm-hwmods' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman...
Tony Lindgren [Tue, 5 Oct 2010 17:00:40 +0000 (10:00 -0700)]
Merge branch 'pm-hwmods' of ssh:///linux/kernel/git/khilman/linux-omap-pm into omap-for-linus

Conflicts:
arch/arm/mach-omap2/serial.c
arch/arm/plat-omap/common.c

15 years agoxen: do not initialize PV timers on HVM if !xen_have_vector_callback
Stefano Stabellini [Fri, 1 Oct 2010 16:35:46 +0000 (17:35 +0100)]
xen: do not initialize PV timers on HVM if !xen_have_vector_callback

if !xen_have_vector_callback do not initialize PV timer unconditionally
because we still don't know how many cpus are available and if there is
more than one we won't be able to receive the timer interrupts on
cpu > 0.

This patch fixes an hang at boot when Xen does not support vector
callbacks and the guest has multiple vcpus.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Jeremy Fitzhardinge <jeremy@goop.org>
15 years agoxen: do not set xenstored_ready before xenbus_probe on hvm
Stefano Stabellini [Mon, 4 Oct 2010 15:10:06 +0000 (16:10 +0100)]
xen: do not set xenstored_ready before xenbus_probe on hvm

Register_xenstore_notifier should guarantee that the caller gets
notified even if xenstore is already up.
Therefore we revert "do not notify callers from
register_xenstore_notifier" and set xenstored_read at the right time for
PV on HVM guests too.
In fact in case of PV on HVM guests xenstored is ready only after the
platform pci driver has completed the initialization, so do not set
xenstored_ready before the call to xenbus_probe().

This patch fixes a shutdown_event watcher registration bug that causes
"xm shutdown" not to work properly.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Jeremy Fitzhardinge <jeremy@goop.org>
15 years agoomap: Fix build after merging in hwmod support for testing
Tony Lindgren [Sat, 2 Oct 2010 00:23:48 +0000 (17:23 -0700)]
omap: Fix build after merging in hwmod support for testing

I've merged in the hwmod support from Kevin's tree for omap2+ machines,
so you need to update your serial port names to use ttyO instead of ttyS:

- u-boot bootargs for kernel cmdline needs to change with setenv
- if you use hardcoded CONFIG_CMDLINE, change it in your .config
- /etc/inittab in your omap root file system if using serial console

This should not affect omap1 machines. Please test and post issues
to the linux-omap mailing list!

Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoLinux-omap rebuilt: Merged updated for-next branches
Tony Lindgren [Tue, 5 Oct 2010 01:51:54 +0000 (18:51 -0700)]
Linux-omap rebuilt: Merged updated for-next branches

$ git checkout -b tmp-rebuild-1286243480 linus
$ git merge -m "Merge cbus" cbus
$ git merge -m "Merge omap-fixes" omap-fixes
$ git merge -m "Merge omap-testing" omap-testing
$ git merge -m "Merge for-next" for-next
$ git pull ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm.git pm-hwmods
$ git merge -s ours master
$ git checkout master
$ git merge tmp-rebuild-1286243480

To view the changes since the last rebuild, please do
$ git diff 0882b1455797b0a104978000a622c3f2412e7cf5..de28b66e667c0df66c536ac2ce773cafb93878ef arch/arm/*omap*/

15 years agoMerge branch 'pm-hwmods' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman...
Tony Lindgren [Tue, 5 Oct 2010 01:51:38 +0000 (18:51 -0700)]
Merge branch 'pm-hwmods' of ssh:///linux/kernel/git/khilman/linux-omap-pm into tmp-rebuild-1286243480

Conflicts:
arch/arm/mach-omap2/serial.c
arch/arm/plat-omap/common.c