pandora-kernel.git
13 years agoMerge fixes fixes-non-critical cleanup dt soc omap1 omap4 board hsmmc testing-board...
Tony Lindgren [Fri, 9 Dec 2011 21:42:24 +0000 (13:42 -0800)]
Merge fixes fixes-non-critical cleanup dt soc omap1 omap4 board hsmmc testing-board testing-misc cbus

Merge branches 'fixes', 'fixes-non-critical', 'cleanup', 'dt', 'soc', 'omap1', 'omap4', 'board', 'hsmmc', 'testing-board', 'testing-misc' and 'cbus' into tmp-rebuild-1323466941

13 years agoARM: OMAP2+: DMA: Workaround for invalid destination position
Peter Ujfalusi [Fri, 9 Dec 2011 21:38:00 +0000 (13:38 -0800)]
ARM: OMAP2+: DMA: Workaround for invalid destination position

If the DMA destination position has been asked before the
first actual data transfer has been done, the CDAC
register still contains 0 (it is initialized to 0 at
omsp_dma_start).
If CDAC == 0, return the programmed start address.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Reviewed-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP2+: DMA: Workaround for invalid source position
Peter Ujfalusi [Fri, 9 Dec 2011 21:38:00 +0000 (13:38 -0800)]
ARM: OMAP2+: DMA: Workaround for invalid source position

If the DMA source position has been asked before the
first actual data transfer has been done, the CSAC
register does not contain valid information.
We can identify this situation by checking the CDAC
register:
CDAC != 0 indicates that the DMA transfer on the channel has
been started already.
When CDAC == 0 we can not trust the CSAC value since it has
not been updated, and can contain random number.
Return the start address in case the DMA has not jet started.

Note: The CDAC register has been initialized to 0 at dma_start
time.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Reviewed-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP4: board-4430sdp: Register platform device for digimic codec
Peter Ujfalusi [Mon, 28 Nov 2011 13:45:42 +0000 (15:45 +0200)]
ARM: OMAP4: board-4430sdp: Register platform device for digimic codec

OMAP4 SDP/Blaze boards have onboard digital microphones.
Register the platform device for the dmic-codec to be
able to use the microphones.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP4: devices: Register OMAP4 DMIC platform device
Peter Ujfalusi [Mon, 28 Nov 2011 13:45:41 +0000 (15:45 +0200)]
ARM: OMAP4: devices: Register OMAP4 DMIC platform device

Add platform device registration for OMAP4 DMIC.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoMerge branch 'for_3.3/cleanup/pm' of git://git.kernel.org/pub/scm/linux/kernel/git...
Tony Lindgren [Fri, 9 Dec 2011 20:53:29 +0000 (12:53 -0800)]
Merge branch 'for_3.3/cleanup/pm' of git://git./linux/kernel/git/khilman/linux-omap-pm into cleanup

13 years agoOMAP4: ID: Chip detection for OMAP4470
Leonid Iziumtsev [Fri, 9 Dec 2011 20:51:11 +0000 (12:51 -0800)]
OMAP4: ID: Chip detection for OMAP4470

Add support for detection of the next chip in the OMAP4 family: OMAP4470 ES1.0

For more details on OMAP4470, visit:
http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&navigationId=12869&contentId=123362

Signed-off-by: Leonid Iziumtsev <x0153368@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM OMAP: id: add chip id recognition for omap4430 es2.3
David Anders [Fri, 9 Dec 2011 20:51:10 +0000 (12:51 -0800)]
ARM OMAP: id: add chip id recognition for omap4430 es2.3

allow for the omap4430 es2.3 revision to be recognized in the
omap4_check_revision() function.

most aspects of all omap4430 es2.x versions are identical, however
a number of small variations such as default pullup or pulldown
resistor configurations vary between revisions.

detailed information on silicon errata for omap4430 revisions can
be found at http://focus.ti.com/pdfs/wtbu/swpz009D.pdf

Signed-off-by: David Anders <x0132446@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: am33xx: Update common OMAP machine specific sources
Afzal Mohammed [Fri, 9 Dec 2011 20:51:09 +0000 (12:51 -0800)]
ARM: OMAP: am33xx: Update common OMAP machine specific sources

This patch updates the common machine specific source files for
support for AM33XX/AM335x with cpu type, macros for identification of
AM33XX/AM335X device.

Signed-off-by: Afzal Mohammed <afzal@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Kevin Hilman <khilman@ti.com>
[tony@atomide.com: updated for map_io and common.h changes, dropped CK_AM33XX]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: am33xx: Update common omap platform files
Afzal Mohammed [Fri, 9 Dec 2011 20:51:08 +0000 (12:51 -0800)]
ARM: OMAP: am33xx: Update common omap platform files

This patch updates the common platform files with AM335X device
support (AM33XX family).

The approach taken in this patch is,
AM33XX device will be considered as OMAP3 variant, and a separate
SoC class created for AM33XX family of devices with a subclass type
for AM335X device, which is newly added device in the family.

This means, cpu_is_omap34xx(), cpu_is_am33xx() and cpu_is_am335x()
checks will return success on AM335X device.
A kernel config option CONFIG_SOC_OMAPAM33XX is added under OMAP3
to include support for AM33XX build.

Also, cpu_mask and RATE_IN_XXX flags have crossed 8 bit hence
struct clksel_rate.flags, struct prcm_config.flags and cpu_mask
are changed to u16 from u8.

Signed-off-by: Afzal Mohammed <afzal@ti.com>
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
Cc: Hemant Pedanekar <hemantp@ti.com>
[tony@atomide.com: left out CK_AM33XX for now]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoarm: mach-omap2: sdram-nokia: add 200 MHz memory timings info
Igor Dmitriev [Fri, 9 Dec 2011 15:06:50 +0000 (17:06 +0200)]
arm: mach-omap2: sdram-nokia: add 200 MHz memory timings info

Add memory timing info regarding the 200 MHz memory in sdram-nokia.
Note that 100 MHz mode uses these same timings too.

Signed-off-by: Igor Dmitriev <ext-dmitriev.igor@nokia.com>
Signed-off-by: Eduardo Valentin <eduardo.valentin@nokia.com>
Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
[tony@atomide.com: updated comments for 100 MHz timings]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP3: rx51: enable tsc2005 touchscreen
Aaro Koskinen [Fri, 2 Dec 2011 16:29:13 +0000 (18:29 +0200)]
ARM: OMAP3: rx51: enable tsc2005 touchscreen

Enable TSC2005 touchscreen driver on the RX-51 board by providing the
needed platform data.

Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Reviewed-by: Sebastian Reichel <sre@debian.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP3: cm-t35: fix mux mode for DSS pins
Igor Grinberg [Wed, 7 Dec 2011 21:15:07 +0000 (13:15 -0800)]
ARM: OMAP3: cm-t35: fix mux mode for DSS pins

OMAP pin mux configuration API has been used incorrectly resulting
in wrong mux mode set for several DSS pins.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP3: cm-t35: Add reset for USB hub
Igor Grinberg [Wed, 7 Dec 2011 21:15:06 +0000 (13:15 -0800)]
ARM: OMAP3: cm-t35: Add reset for USB hub

USB hub is not functional until is reset.
Reset the USB hub on SB-T35.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
[tony@atomide.com: updated subject]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP3: cm-t35: enable audio
Igor Grinberg [Wed, 7 Dec 2011 21:15:06 +0000 (13:15 -0800)]
ARM: OMAP3: cm-t35: enable audio

TWL4030 audio codec is not being registered if no platform data is
supplied. Provide platform data for the TWL4030 audio codec.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
[tony@atomide.com: updated subject]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP3: cm-t35: Use correct DSS regulator supply
Igor Grinberg [Wed, 7 Dec 2011 21:15:06 +0000 (13:15 -0800)]
ARM: OMAP3: cm-t35: Use correct DSS regulator supply

cm-t35 DSS suplies are connected to VIO.
In fact, TPS65930 does not have VPLL2.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
[tony@atomide.com: updated subject]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP3: cm-t35: Add regulator for ads7846 touchscreen
Igor Grinberg [Wed, 7 Dec 2011 21:15:05 +0000 (13:15 -0800)]
ARM: OMAP3: cm-t35: Add regulator for ads7846 touchscreen

ads7846 driver fails to find the regulator supply and
as a result the touchscreen is not working.
Fix this by adding a regulator supply for the ads7846 driver.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
[tony@atomide.com: updated subject]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: hsmmc: Add support for AM3517EVM base-board MMC slot
Vaibhav Hiremath [Fri, 9 Dec 2011 20:27:55 +0000 (12:27 -0800)]
ARM: OMAP: hsmmc: Add support for AM3517EVM base-board MMC slot

Add support for base-board MMC slot

Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
Signed-off-by: Abhilash K V <abhilash.kv@ti.com>
[tony@atomide.com: updated subject]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: hsmmc: Support for AM3517 MMC1 voltages
Abhilash K V [Fri, 9 Dec 2011 20:27:36 +0000 (12:27 -0800)]
ARM: OMAP: hsmmc: Support for AM3517 MMC1 voltages

This patch fixes the following error message which appears
while intializing MMC1 on the AM3517 EVM base-board:
    mmc0: host doesn't support card's voltages
    mmc0: error -22 whilst initialising SD card
The ocr_mask, which enumerates the volatges supported by the
MMC card was not being indicated before, assuming that a separate
Vcc regulator maybe another controllable regulator driver would be
doing this. This patch statically specifies a subset of the voltages
supported by the MMC driver, which are provided by the current fixed
voltage regulator on AM3517 EVM.

Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
Signed-off-by: Abhilash K V <abhilash.kv@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: hsmmc: Add support for non-OMAP pins
Thomas Weber [Thu, 17 Nov 2011 21:39:40 +0000 (22:39 +0100)]
ARM: OMAP: hsmmc: Add support for non-OMAP pins

The Devkit8000 uses a TWL4030 pin for card detection.
Thats why the error:
_omap_mux_init_gpio: Could not set gpio192
occurs.

This patch checks that the pin is on OMAP before
calling omap_mux_init_gpio.

Signed-off-by: Thomas Weber <weber@corscience.de>
[tony@atomide.com: updated comments]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: hsmmc: Add support for MMC 2 setup for AM35x
Igor Grinberg [Tue, 29 Nov 2011 09:37:48 +0000 (11:37 +0200)]
ARM: OMAP: hsmmc: Add support for MMC 2 setup for AM35x

AM35x MMC 2 controller has internal clock loopback setting which cannot
be utilized without this patch and thus SDIO devices connected to this
controller and depend on this setting will fail to initialize.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
[tony@atomide.com: updated comments]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: hsmmc: board-sdp4430: declare support for MMC_PM_KEEP_POWER
Eliad Peller [Tue, 22 Nov 2011 14:02:19 +0000 (16:02 +0200)]
ARM: OMAP: hsmmc: board-sdp4430: declare support for MMC_PM_KEEP_POWER

Declare support for keeping the power of the wlan chip
while suspended. this is needed for Wakeup-On-Wireless.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP1: Always reprogram dpll1 rate at boot
Janusz Krzysztofik [Sun, 4 Dec 2011 15:07:47 +0000 (16:07 +0100)]
ARM: OMAP1: Always reprogram dpll1 rate at boot

DPLL1 reprogramming to a different rate is actually blocked inside
omap1_select_table_rate(). However, it is already forced at boot, for
boards which boot at unusable clock rates, and this seems to work
correctly.

OTOH, we now have a fine, run time performed clock selection algorithm
implemented, which prevents less powerfull SoCs from being overclocked
unintentionally.

Allow reprogramming of dpll1 by default, and use it for switching to the
higest supported clock rate with all boards, including those already
booting at a usable rate of 60 MHz or above.

Created against linux-omap/master tip as of Thu Dec 1,
commit f83c2a8cbb59981722d1ab610c79adfd034a2667. Requires the just
submitted patch "ARM: OMAP1: Move dpll1 rates selection from config to
runtime" to prevent from unintentional overclocking. Tested on Amstrad
Delta.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP1: Update dpll1 default rate reprogramming method
Janusz Krzysztofik [Thu, 1 Dec 2011 21:16:26 +0000 (22:16 +0100)]
ARM: OMAP1: Update dpll1 default rate reprogramming method

According to comments in omap1_select_table_rate(), reprogramming dpll1
is tricky, and should always be done from SRAM.

While being at it, move OMAP730 special case handling inside
omap_sram_reprogram_clock().

Created on top of version 2 of the series "ARM: OMAP1: Fix dpll1
reprogramming related issues", which it depends on.
Tested on Amstrad Delta.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP1: Move dpll1 rates selection from config to runtime
Janusz Krzysztofik [Fri, 9 Dec 2011 02:01:41 +0000 (18:01 -0800)]
ARM: OMAP1: Move dpll1 rates selection from config to runtime

For still better multi-OMAP1 support, expand omap1_rate_table with flags
for different SoC types and match them while selecting clock rates. The
idea is stolen from current omap24xx clock rate selection algorithm.

Since clkdev platform flag definitions are reused here, those had to be
expanded with one extra entry for OMAP1710 subtype, as this is the only
SoC for which we allow selection of the highest, 216 MHz rate.

Once done, remove no longer needed clock rate configure time options.

Tested on Amstrad Delta.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
[tony@atomide.com: updated comments]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP1: Set the omap1623 sram size to 16K
Tony Lindgren [Thu, 8 Dec 2011 22:58:38 +0000 (14:58 -0800)]
ARM: OMAP1: Set the omap1623 sram size to 16K

Now that we're always reprogramming the core clock we must make
sure SRAM works. It seems that neither omap1621 or omap1623
has 256K of SRAM. Set the SRAM size to safe value of 16K.

Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoarm/dts: OMAP: Remove bootargs node from board files
Benoit Cousson [Tue, 6 Dec 2011 16:49:08 +0000 (17:49 +0100)]
arm/dts: OMAP: Remove bootargs node from board files

Since 3.2, the CONFIG_ARM_ATAG_DTB_COMPAT config allows
an old bootloader to still use ATAG to provide cmdline.

Remove chosen/bootargs from the DTS board files.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Cc: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP2+: kconfig: Enable devicetree by default for OMAP2+ systems
Benoit Cousson [Tue, 6 Dec 2011 16:49:07 +0000 (17:49 +0100)]
ARM: OMAP2+: kconfig: Enable devicetree by default for OMAP2+ systems

devicetree will become the mandatory boot method for OMAP2+.
In order to avoid cluttering the OMAP code with #ifdef CONFIG_OF,
select USE_OF by default for every OMAP2+ systems.
Select as well the APPENDED_DTB and ATAG_DTB_COMPAT to allow legacy
boot loader to keep working properly.

Enable PROC_DEVICETREE as well.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP: hsmmc: add pm_caps field
Eliad Peller [Tue, 22 Nov 2011 14:02:18 +0000 (16:02 +0200)]
ARM: OMAP: hsmmc: add pm_caps field

Add pm_caps field to omap2_hsmmc_info and omap_mmc_slot_data
structs, so we will be able to indicate mmc pm capabilities
in the board file.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoomap_hsmmc: consider MMC_PM_KEEP_POWER on suspend/resume
Eliad Peller [Tue, 22 Nov 2011 14:02:17 +0000 (16:02 +0200)]
omap_hsmmc: consider MMC_PM_KEEP_POWER on suspend/resume

When an mmc card has the MMC_PM_KEEP_POWER flag, it shouldn't
be powered off on suspend (and thus doesn't have to be powered-on
on resume)

While on it, change the suspend flow a bit, to make it a bit
easier to follow.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Acked-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoMerge branch 'for_3.3/pm/omap4-mpuss' of git://git.kernel.org/pub/scm/linux/kernel...
Tony Lindgren [Thu, 8 Dec 2011 21:22:57 +0000 (13:22 -0800)]
Merge branch 'for_3.3/pm/omap4-mpuss' of git://git./linux/kernel/git/khilman/linux-omap-pm into omap4

13 years agoARM: OMAP3: CPUidle: Make use of CPU PM notifiers
Santosh Shilimkar [Sat, 3 Sep 2011 17:08:27 +0000 (22:38 +0530)]
ARM: OMAP3: CPUidle: Make use of CPU PM notifiers

Save VFP CPU context using CPU PM notifier chain. VFP context
is lost when CPU hits OFF state.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: cpuidle: Switch to gptimer from twd in deeper C-states.
Santosh Shilimkar [Sat, 15 Jan 2011 19:12:31 +0000 (00:42 +0530)]
ARM: OMAP4: cpuidle: Switch to gptimer from twd in deeper C-states.

CPU local timer(TWD) stops when the CPU is transitioning into
deeper C-States. Since these timers are not wakeup capable, we
need the wakeup capable global timer to program the wakeup time
depending on the next timer expiry.

It can be handled by registering a global wakeup capable timer along
with local timers marked with (mis)feature flag CLOCK_EVT_FEAT_C3STOP.
Then notify the clock events layer from idle code using
CLOCK_EVT_NOTIFY_BROADCAST_ENTER/EXIT).

ARM local timers are already marked with C3STOP feature. Add the
notifiers to OMAP4 CPU idle code for the broadcast entry and exit.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Acked-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Add CPUidle support
Santosh Shilimkar [Tue, 16 Aug 2011 12:01:40 +0000 (17:31 +0530)]
ARM: OMAP4: PM: Add CPUidle support

Add OMAP4 CPUIDLE support. CPU1 is left with defualt idle and
the low power state for it is managed via cpu-hotplug.

This patch adds MPUSS low power states in cpuidle.

C1 - CPU0 ON + CPU1 ON + MPU ON
C2 - CPU0 OFF + CPU1 OFF + MPU CSWR
C3 - CPU0 OFF + CPU1 OFF + MPU OSWR

OMAP4460 onwards, MPUSS power domain doesn't support OFF state any more
anymore just like CORE power domain. The deepest state supported is OSWr.
Ofcourse when MPUSS and CORE PD transitions to OSWR along with device
off mode, even the memory contemts are lost which is as good as
the PD off state.

On OMAP4 because of hardware constraints, no low power states are
targeted when both CPUs are online and in SMP mode. The low power
states are attempted only when secondary CPU gets offline to OFF
through hotplug infrastructure.

Thanks to Nicole Chalhoub <n-chalhoub@ti.com> for doing exhaustive
C-state latency profiling.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: Fix errata i688 with MPU interconnect barriers.
Santosh Shilimkar [Sun, 26 Jun 2011 01:04:31 +0000 (18:04 -0700)]
ARM: OMAP4: Fix errata i688 with MPU interconnect barriers.

On OMAP4 SOC, intecronnects has many write buffers in the async bridges
and they need to be drained before CPU enters into standby state.

Patch 'OMAP4: PM: Add CPUX OFF mode support' added CPU PM support
but OMAP errata i688 (Async Bridge Corruption) needs to be taken
care to avoid issues like system freeze, CPU deadlocks, random
crashes with register accesses, synchronisation loss on initiators
operating on both interconnect port simultaneously.

As per the errata, if a data is stalled inside asynchronous bridge
because of back pressure, it may be accepted multiple times, creating
pointer misalignment that will corrupt next transfers on that data
path until next reset of the system (No recovery procedure once
the issue is hit, the path remains consistently broken).
Async bridge can be found on path between MPU to EMIF and
MPU to L3 interconnect. This situation can happen only when the
idle is initiated by a Master Request Disconnection (which is
trigged by software when executing WFI on CPU).

The work-around for this errata needs all the initiators
connected through async bridge must ensure that data path
is properly drained before issuing WFI. This condition will be
met if one Strongly ordered access is performed to the
target right before executing the WFI. In MPU case, L3 T2ASYNC
FIFO and DDR T2ASYNC FIFO needs to be drained. IO barrier ensure
that there is no synchronisation loss on initiators operating
on both interconnect port simultaneously.

Thanks to Russell for a tip to conver assembly function to
C fuction there by reducing 40 odd lines of code from the patch.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Richard Woodruff <r-woodruff2@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Add power domain statistics support
Santosh Shilimkar [Sun, 9 Jan 2011 19:32:15 +0000 (01:02 +0530)]
ARM: OMAP4: PM: Add power domain statistics support

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Add MPUSS power domain OSWR support
Santosh Shilimkar [Mon, 6 Jun 2011 09:03:29 +0000 (14:33 +0530)]
ARM: OMAP4: PM: Add MPUSS power domain OSWR support

This patch adds the MPUSS OSWR (Open Switch Retention) support. The MPUSS
OSWR configuration is as below.
- CPUx L1 and logic lost, MPUSS logic lost, L2 memory is retained

OMAP4460 onwards, MPUSS power domain doesn't support OFF state any more
anymore just like CORE power domain. The deepest state supported is OSWR.
On OMAP4430 secure devices too, MPUSS off mode can't be used because of
a bug which alters Ducati and Tesla states. Hence MPUSS off mode as an
independent state isn't supported on OMAP44XX devices.

Ofcourse when MPUSS power domain transitions to OSWR along
with device off mode, it eventually hits off state since memory
contents are lost.

Hence the MPUSS off mode independent state is not attempted without
device off mode. All the necessary infrastructure code for MPUSS
off mode is in place as part of this series.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Add L2X0 cache lowpower support
Santosh Shilimkar [Sat, 8 Jan 2011 21:29:09 +0000 (02:59 +0530)]
ARM: OMAP4: PM: Add L2X0 cache lowpower support

When MPUSS hits off-mode, L2 cache is lost. This patch adds L2X0
necessary maintenance operations and context restoration in the
low power code.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Add WakeupGen and secure GIC low power support
Santosh Shilimkar [Wed, 16 Jun 2010 17:59:31 +0000 (23:29 +0530)]
ARM: OMAP4: PM: Add WakeupGen and secure GIC low power support

Add WakeupGen and secure GIC low power support to save and restore
it's registers. WakeupGen Registers are saved to pre-defined SAR RAM layout
and the restore is automatically done by hardware(ROM code) while coming
out of MPUSS OSWR or Device off state. Secure GIC is saved using secure
API and restored by hardware like WakeupGen.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: Remove un-used do_wfi() macro.
Santosh Shilimkar [Mon, 25 Jul 2011 10:52:34 +0000 (16:22 +0530)]
ARM: OMAP4: Remove un-used do_wfi() macro.

With OMAP4 suspend, idle and hotplug series, we no longer need
do_wfi() macro.

Remove the same.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: suspend: Add MPUSS power domain RETENTION support
Santosh Shilimkar [Wed, 16 Jun 2010 16:49:49 +0000 (22:19 +0530)]
ARM: OMAP4: suspend: Add MPUSS power domain RETENTION support

This patch adds MPUSS(MPU Sub System) power domain
CSWR(Close Switch Retention) support to system wide suspend.
For MPUSS power domain to hit retention(CSWR or OSWR), both
CPU0 and CPU1 power domains need to be in OFF or DORMANT state,
since CPU power domain CSWR is not supported by hardware

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Use custom omap_do_wfi() for default idle.
Santosh Shilimkar [Mon, 18 Jul 2011 06:55:10 +0000 (12:25 +0530)]
ARM: OMAP4: PM: Use custom omap_do_wfi() for default idle.

Default arch_idle() isn't good enough for OMAP4 because of aync bridge errata
and necessity of NOPs post WFI to avoid speculative prefetch aborts.
Hence Use OMAP4 custom omap_do_wfi() hook for default idle.

Later in the series, async bridge errata work-around patch updates the
omap_do_wfi() with necessary interconnects barriers.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: CPU1 wakeup workaround from Low power modes
Santosh Shilimkar [Wed, 16 Jun 2010 16:49:49 +0000 (22:19 +0530)]
ARM: OMAP4: PM: CPU1 wakeup workaround from Low power modes

The SGI(Software Generated Interrupts) are not wakeup capable from
low power states. This is known limitation on OMAP4 and needs to be
worked around by using software forced clockdomain wake-up. CPU0 forces
the CPU1 clockdomain to software force wakeup.

More details can be found in OMAP4430 TRM - Version J
Section :
4.3.4.2 Power States of CPU0 and CPU1

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Program CPU1 to hit OFF when off-lined
Santosh Shilimkar [Wed, 16 Jun 2010 16:49:48 +0000 (22:19 +0530)]
ARM: OMAP4: PM: Program CPU1 to hit OFF when off-lined

Program non-boot CPUs to hit lowest supported power state
when it is off-lined using cpu hotplug framework.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: Remove __INIT from omap_secondary_startup() to re-use it for hotplug.
Santosh Shilimkar [Sun, 4 Sep 2011 07:40:32 +0000 (13:10 +0530)]
ARM: OMAP4: Remove __INIT from omap_secondary_startup() to re-use it for hotplug.

Remove the __INIT from omap_secondary_startup() so that it can
be re-used for CPU hotplug.

While at this, remove the un-used AUXBOOT register reference.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Add CPUX OFF mode support
Santosh Shilimkar [Wed, 16 Jun 2010 16:49:48 +0000 (22:19 +0530)]
ARM: OMAP4: PM: Add CPUX OFF mode support

This patch adds the CPU0 and CPU1 off mode support. CPUX close switch
retention (CSWR) is not supported by hardware design.

The CPUx OFF mode isn't supported on OMAP4430 ES1.0

CPUx sleep code is common for hotplug, suspend and CPUilde.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Add WakeupGen module as OMAP gic_arch_extn
Santosh Shilimkar [Wed, 16 Jun 2010 16:49:47 +0000 (22:19 +0530)]
ARM: OMAP4: PM: Add WakeupGen module as OMAP gic_arch_extn

OMAP WakeupGen is the interrupt controller extension used along
with ARM GIC to wake the CPU out from low power states on
external interrupts.

The WakeupGen unit is responsible for generating the wakeup event
from the incoming interrupts and enable bits. It is implemented
in the MPU always ON power domain. During normal operation,
WakeupGen delivers the external interrupts directly to the GIC.

WakeupGen specification has one restriction as per Veyron version 1.6.
It is SW responsibility to program interrupt enabling/disabling
coherently in the GIC and in the WakeupGen enable registers. That is, a
given interrupt for a given CPU is either enable at both GIC and WakeupGen,
or disable at both, but no mix. That's the reason the WakeupGen is
implemented as an extension of GIC.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP: PM: Add support to allocate the memory for secure RAM
Santosh Shilimkar [Mon, 6 Jun 2011 14:58:23 +0000 (20:28 +0530)]
ARM: OMAP: PM: Add support to allocate the memory for secure RAM

Allocate the memory to save secure ram context which needs
to be done when MPU is hitting OFF mode.

The ROM code expects a physical address to this memory
and hence use memblock APIs to reserve this memory as part
of .reserve() callback. Maximum size as per secure RAM requirements
is allocated.

To keep omap1 build working, omap-secure.h file is created
under plat-omap directory.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP: Add Secure HAL and monitor mode API infrastructure.
Santosh Shilimkar [Mon, 6 Jun 2011 12:26:49 +0000 (17:56 +0530)]
ARM: OMAP: Add Secure HAL and monitor mode API infrastructure.

On OMAP secure/emulation devices, certain APIs are exported by secure
code. Add an infrastructure so that relevant operations on secure
devices can be implemented using it.

While at this, rename omap44xx-smc.S to omap-smc.S since the common APIs
can be used on other OMAP's too.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Initialise all the clockdomains to supported states
Santosh Shilimkar [Wed, 5 Jan 2011 16:33:17 +0000 (22:03 +0530)]
ARM: OMAP4: PM: Initialise all the clockdomains to supported states

Initialise hardware supervised mode for all clockdomains if it's
supported. Initiate sleep transition for other clockdomains,
if they are not being used.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Avoid omap4_pm_init() on OMAP4430 ES1.0
Santosh Shilimkar [Fri, 11 Mar 2011 10:43:09 +0000 (16:13 +0530)]
ARM: OMAP4: PM: Avoid omap4_pm_init() on OMAP4430 ES1.0

On OMAP4430 ES1.0, Power Management features are not supported.
Avoid omap4_pm_init() on ES1.0 silicon so that we can continue
to use same kernel binary to boot on all OMAP4 silicons.

The ES1.0 boot failure with OMAP4 PM series was because of
the clockdomain initialisation code. Hardware supervised
clockdomain mode isn't functional for all clockdomains
on OMAP4430 ES1.0 silicon so avoid the same.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Reported-by: Kevin Hilman <khilman@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Keep static dep between MPUSS-EMIF and MPUSS-L3/L4 and DUCATI-L3
Santosh Shilimkar [Tue, 8 Mar 2011 12:54:30 +0000 (18:24 +0530)]
ARM: OMAP4: PM: Keep static dep between MPUSS-EMIF and MPUSS-L3/L4 and DUCATI-L3

As per OMAP4430 TRM, the dynamic dependency between MPUSS -> EMIF
and MPUSS -> L4PER/L3_* and DUCATI -> L3_* clockdomains is enable
by default. Refer register CM_MPU_DYNAMICDEP description for details.

But these dynamic dependencies doesn't work as expected. The hardware
recommendation is to enable static dependencies for above clockdomains.
Without this, system locks up or randomly crashes.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: PM: Add SAR RAM support
Santosh Shilimkar [Sat, 1 Jan 2011 14:26:04 +0000 (19:56 +0530)]
ARM: OMAP4: PM: Add SAR RAM support

This patch adds SAR RAM support on OMAP4430. SAR RAM used to save
and restore the HW context in low power modes.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: Export omap4_get_base*() rather than global address pointers
Santosh Shilimkar [Thu, 3 Mar 2011 12:33:25 +0000 (18:03 +0530)]
ARM: OMAP4: Export omap4_get_base*() rather than global address pointers

This patch exports APIs to get base address for GIC
distributor, CPU interface, SCU and PL310 L2 Cache which
are used in OMAP4 PM code.

This was suggested by Kevin Hilman <khilman@ti.com> during
OMAP4 PM code review.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP4: Use WARN_ON() instead of BUG_ON() with graceful exit
Santosh Shilimkar [Thu, 3 Mar 2011 12:06:52 +0000 (17:36 +0530)]
ARM: OMAP4: Use WARN_ON() instead of BUG_ON() with graceful exit

OMAP4 L2X0 initialisation code uses BUG_ON() for the ioremap()
failure scenarios.

Use WARN_ON() instead and allow graceful function exits.

This was suggsted by Kevin Hilman <khilman@ti.com> during
OMAP4 PM code review.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agocbus: tahvo: move irq_chip to our context structure
Felipe Balbi [Wed, 23 Nov 2011 14:00:47 +0000 (16:00 +0200)]
cbus: tahvo: move irq_chip to our context structure

in theory, we could have many tahvo devices connected
to different CBUS buses. Let's allow that to happen.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agocbus: retu: move irq_chip to our context structure
Felipe Balbi [Wed, 23 Nov 2011 14:00:46 +0000 (16:00 +0200)]
cbus: retu: move irq_chip to our context structure

in theory, we could have many retu devices connected
to different CBUS buses. The only thing preventing
that is the poweroff() function pointer which we need
to set.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agocbus: fix very old compile warning
Felipe Balbi [Wed, 23 Nov 2011 14:00:45 +0000 (16:00 +0200)]
cbus: fix very old compile warning

platform_driver.remove returns an 'int'.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agocbus: move the module_platform_driver where possible
Felipe Balbi [Wed, 23 Nov 2011 14:00:44 +0000 (16:00 +0200)]
cbus: move the module_platform_driver where possible

this allows us to delete a bunch of boilerplate code
from the drivers. While at that, also add missing
MODULE_ALIAS().

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agocbus: fix compile breakage
Felipe Balbi [Wed, 23 Nov 2011 14:00:43 +0000 (16:00 +0200)]
cbus: fix compile breakage

we need to include <linux/export.h> and <linux/module.h>

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM:OMAP4 add Phytec phyCORE-OMAP4 board
Jan Weitzel [Wed, 7 Dec 2011 20:21:22 +0000 (12:21 -0800)]
ARM:OMAP4 add Phytec phyCORE-OMAP4 board

This adds support for the Phytec OMAP4430 board called phyCORE-OMAP4 PCM049.

Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>
[tony@atomide.com: updated for timer and twl cleanup, and to select the board by default]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoInitial B&N Nook Color (encore) support
Oleg Drokin [Wed, 7 Dec 2011 20:21:21 +0000 (12:21 -0800)]
Initial B&N Nook Color (encore) support

Bare-bones board file, comes with serial console, gpio keys,
MMC/SDCard and USB (peripheral) support.

Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
[tony@atomide.com: updated for irq and timer cleanup and to select the board by default]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP2+ i2c NACK without STP
Jan Weitzel [Wed, 7 Dec 2011 19:50:16 +0000 (11:50 -0800)]
ARM: OMAP2+ i2c NACK without STP

On OMAP4 OMAP_I2C_STAT_NACK is causing a timeout on the next access.
The isr cleans all flags in OMAP_I2C_CON_REG by setting OMAP_I2C_CON_STP
OMAP_I2C_CON_STP is also set in omap_i2c_xfer_msg on the last message.

According to the TI TSR the sequence for OMAP_I2C_STAT_NACK and
OMAP_I2C_STAT_AL are nearly the same.
Removing the OMAP_I2C_CON_STP part in the isr fix the problem.
Tested on OMAP4430 and OMAP3530 (here NACK was not a problem)
Fixes also booting on 2430sdp.

Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>
Acked-by: Tony Lindgren <tony@atomide.com>
13 years agocpufreq: OMAP: fixup for omap_device changes, include <linux/module.h>
Kevin Hilman [Wed, 7 Dec 2011 20:09:42 +0000 (12:09 -0800)]
cpufreq: OMAP: fixup for omap_device changes, include <linux/module.h>

Minor fixups to work starting with v3.2:
- use the new omap_device API for getting a device by name.
- need to include <linux/module.h>

Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agocpufreq: OMAP: fix freq_table leak
Nishanth Menon [Wed, 7 Dec 2011 20:09:38 +0000 (12:09 -0800)]
cpufreq: OMAP: fix freq_table leak

We use a single frequency table for multiple CPUs. But, with
OMAP4, since we have multiple CPUs, the cpu_init call for CPU1
causes freq_table previously allocated for CPU0 to be overwritten.
In addition, we dont free the table on exit path.

We solve this by maintaining an atomic type counter to ensure
just a single table exists at a given time.

Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agocpufreq: OMAP: put clk if cpu_init failed
Nishanth Menon [Wed, 7 Dec 2011 20:09:20 +0000 (12:09 -0800)]
cpufreq: OMAP: put clk if cpu_init failed

Release the mpu_clk in fail paths.

Reported-by: Todd Poynor <toddpoynor@google.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agocpufreq: OMAP: only supports OPP library
Nishanth Menon [Wed, 7 Dec 2011 20:08:57 +0000 (12:08 -0800)]
cpufreq: OMAP: only supports OPP library

OMAP2 is the only family using clk_[init|exit]_cpufreq_table, however,
the cpufreq code does not currently use clk_init_cpufreq_table. As a
result, it is unusuable for OMAP2 and only usable only on platforms
using OPP library.

Remove the unbalanced clk_exit_cpufreq_table().  Any platforms where
OPPs are not availble will fail on init because a freq table will not
be properly initialized.

Signed-off-by: Nishanth Menon <nm@ti.com>
[khilman@ti.com: changelog edits, and graceful failure mode changes]
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agocpufreq: OMAP: dont support !freq_table
Nishanth Menon [Wed, 7 Dec 2011 20:08:50 +0000 (12:08 -0800)]
cpufreq: OMAP: dont support !freq_table

OMAP2+ all have frequency tables, hence the hacks we had for older
silicon do not need to be carried forward. As part of this change,
use cpufreq_frequency_table_target to find the best match for
frequency requested.

Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agocpufreq: OMAP: deny initialization if no mpudev
Nishanth Menon [Wed, 7 Dec 2011 20:08:45 +0000 (12:08 -0800)]
cpufreq: OMAP: deny initialization if no mpudev

if we do not have mpu_dev we normally fail in cpu_init. It is better
to fail driver registration if the devices are not available.

Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agocpufreq: OMAP: move clk name decision to init
Nishanth Menon [Wed, 7 Dec 2011 20:08:40 +0000 (12:08 -0800)]
cpufreq: OMAP: move clk name decision to init

Clk name does'nt need to dynamically detected during clk init.
move them off to driver initialization, if we dont have a clk name,
there is no point in registering the driver anyways. The actual clk
get and put is left at cpu_init and exit functions.

Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agocpufreq: OMAP: notify even with bad boot frequency
Colin Cross [Wed, 7 Dec 2011 20:08:35 +0000 (12:08 -0800)]
cpufreq: OMAP: notify even with bad boot frequency

Sometimes, bootloaders starts up with a frequency which is not
in the OPP table. At cpu_init, policy->cur contains the frequency
we pick at boot.  It is possible that system might have fixed
it's boot frequency later on as part of power initialization.
After this condition, the first call to omap_target results in the
following:

omap_getspeed(actual device frequency) != policy->cur(frequency that
cpufreq thinks that the system is at), and it is possible that
freqs.old == freqs.new (because the governor requested a scale down).

We exit without triggering the notifiers in the current code, which
does'nt let code which depends on cpufreq_notify_transition to have
accurate information as to what the system frequency is.

Instead, we do a normal transition if policy->cur is wrong, then,
freqs.old will be the actual cpu frequency, freqs.new will be the
actual new cpu frequency and all required notifiers have the accurate
information.

Acked-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Colin Cross <ccross@google.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agocpufreq: OMAP: Enable all CPUs in shared policy mask
Todd Poynor [Wed, 7 Dec 2011 20:08:31 +0000 (12:08 -0800)]
cpufreq: OMAP: Enable all CPUs in shared policy mask

Enable all CPUs in the shared policy in the CPU init callback.
Otherwise, the governor CPUFREQ_GOV_START event is invoked with
a policy that only includes the first CPU, leaving other CPUs
uninitialized by the governor.

Signed-off-by: Todd Poynor <toddpoynor@google.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agocpufreq: OMAP: Add SMP support for OMAP4+
Russell King [Wed, 7 Dec 2011 20:08:25 +0000 (12:08 -0800)]
cpufreq: OMAP: Add SMP support for OMAP4+

On OMAP SMP configuartion, both processors share the voltage
and clock. So both CPUs needs to be scaled together and hence
needs software co-ordination.

Also, update lpj with reference value to avoid progressive error.

Adjust _both_ the per-cpu loops_per_jiffy and global lpj. Calibrate
them with with reference to the initial values to avoid a
progressively bigger and bigger error in the value over time.

While at this, re-use the notifiers for UP/SMP since on UP machine or
UP_ON_SMP policy->cpus mask would contain only the boot CPU.

Based on initial SMP support by Santosh Shilimkar.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
[khilman@ti.com: due to overlap/rework, combined original Santosh patch
                 and Russell's rework]
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agocpufreq: OMAP: cleanup for multi-SoC support, move into drivers/cpufreq
Santosh Shilimkar [Wed, 7 Dec 2011 20:08:18 +0000 (12:08 -0800)]
cpufreq: OMAP: cleanup for multi-SoC support, move into drivers/cpufreq

Move OMAP cpufreq driver from arch/arm/mach-omap2 into
drivers/cpufreq, along with a few cleanups:

- generalize support for better handling of different SoCs in the OMAP
- use OPP layer instead of OMAP clock internals for frequency table init

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
[khilman@ti.com: move to drivers]
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: OMAP2+: board-generic: Add missing handle_irq callbacks
Benoit Cousson [Wed, 7 Dec 2011 19:47:40 +0000 (11:47 -0800)]
ARM: OMAP2+: board-generic: Add missing handle_irq callbacks

The following commit: 6b2f55d7851aa358d3a99cff344c560c4967f042,
is adding the support for the CONFIG_MULTI_IRQ_HANDLER but did
not update all the machine descriptors supported in the DT
board-generic.c file.
It thus break the DT boot on OMAP3 and OMAP4 boards.

Add the proper handle_irq callbacks for OMAP3 and OMAP4 generic
machine descriptors.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: 7194/1: OMAP: Fix build after a merge between v3.2-rc4 and ARM restart changes
Tony Lindgren [Tue, 6 Dec 2011 16:50:42 +0000 (17:50 +0100)]
ARM: 7194/1: OMAP: Fix build after a merge between v3.2-rc4 and ARM restart changes

ARM restart changes needed changes to common.h to make it local.
This conflicted with v3.2-rc4 DSS related hwmod changes that
git mergetool was not able to handle.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: OMAP: omap_device: Expose omap_device_{alloc, delete, register}
Ohad Ben-Cohen [Mon, 17 Oct 2011 11:41:02 +0000 (13:41 +0200)]
ARM: OMAP: omap_device: Expose omap_device_{alloc, delete, register}

Expose omap_device_{alloc, delete, register} so we can use them outside
of omap_device.c.

This approach allows users, which need to manipulate an archdata member
of a device before it is registered, to do so. This is also useful
for users who have their devices created very early so they can be used
at ->reserve() time to reserve CMA memory.

The immediate use case for this is to set the private iommu archdata
member, which binds a device to its associated iommu controller.
This way, generic code will be able to attach omap devices to their
iommus, without calling any omap-specific API.

With this in hand, we can further clean the existing mainline OMAP iommu
driver and its mainline users, and focus on generic IOMMU approaches
for future users (rpmsg/remoteproc and the upcoming generic DMA API).

This patch is still considered an interim solution until DT fully materializes
for omap; at that point, this functionality will be removed as DT will
take care of creating the devices and configuring them correctly.

Tested on OMAP4 with a generic rpmsg/remoteproc that doesn't use any
omap-specific IOMMU API anymore.

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
13 years agoARM: 7192/1: OMAP: Fix build error for omap1_defconfig
Tony Lindgren [Tue, 6 Dec 2011 04:45:37 +0000 (05:45 +0100)]
ARM: 7192/1: OMAP: Fix build error for omap1_defconfig

Otherwise we get the following error:

In function 'omap_init_consistent_dma_size':
error: implicit declaration of function 'init_consistent_dma_size'

Signed-off-by: Tony Lindgren <tony@atomide.com>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoMerge branch 'vmalloc' of git://git.linaro.org/people/nico/linux into devel-stable
Russell King [Mon, 5 Dec 2011 23:27:54 +0000 (23:27 +0000)]
Merge branch 'vmalloc' of git://git.linaro.org/people/nico/linux into devel-stable

13 years agoMerge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux...
Russell King [Mon, 5 Dec 2011 23:20:17 +0000 (23:20 +0000)]
Merge branch 'for-rmk' of git://git./linux/kernel/git/will/linux into devel-stable

Conflicts:
arch/arm/common/gic.c
arch/arm/plat-omap/include/plat/common.h

13 years agoARM: 7189/1: OMAP3: Fix build break in cpuidle34xx.c because of irq function
Santosh Shilimkar [Mon, 5 Dec 2011 08:46:24 +0000 (09:46 +0100)]
ARM: 7189/1: OMAP3: Fix build break in cpuidle34xx.c because of irq function

Fix the below build break by including common.h

arch/arm/mach-omap2/cpuidle34xx.c: In function 'omap3_enter_idle':
arch/arm/mach-omap2/cpuidle34xx.c:117: error: implicit declaration of function 'omap_irq_pending'
make[1]: *** [arch/arm/mach-omap2/cpuidle34xx.o] Error 1
make: *** [arch/arm/mach-omap2] Error 2

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: 7188/1: OMAP2PLUS: Fix build error: 'omap2/omap3_intc_handle_irq' undeclared.
Santosh Shilimkar [Mon, 5 Dec 2011 08:44:58 +0000 (09:44 +0100)]
ARM: 7188/1: OMAP2PLUS: Fix build error: 'omap2/omap3_intc_handle_irq' undeclared.

Fix the build break by adding the necessary irq functions to
common header.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: OMAP1: recalculate loops per jiffy after dpll1 reprogram
Janusz Krzysztofik [Thu, 1 Dec 2011 20:13:02 +0000 (21:13 +0100)]
ARM: OMAP1: recalculate loops per jiffy after dpll1 reprogram

Otherwise timing is inaccurate, resulting in devices which depend on it,
like omap-keypad, broken.

Tested on Amstrad Delta.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
[tony@atomide.com: removed comment referencing a development branch]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoMerge branch 'irqchip-consolidation' of git://git.kernel.org/pub/scm/linux/kernel...
Russell King [Sat, 3 Dec 2011 09:11:54 +0000 (09:11 +0000)]
Merge branch 'irqchip-consolidation' of git://git./linux/kernel/git/maz/arm-platforms into devel-stable

13 years agoMerge branches 'perf/event-nos', 'perf/updates' and 'perf/omap4' into for-rmk
Will Deacon [Fri, 2 Dec 2011 15:22:18 +0000 (15:22 +0000)]
Merge branches 'perf/event-nos', 'perf/updates' and 'perf/omap4' into for-rmk

13 years agoarm: pmu: allow platform specific irq enable/disable handling
Ming Lei [Wed, 2 Mar 2011 07:00:08 +0000 (15:00 +0800)]
arm: pmu: allow platform specific irq enable/disable handling

This patch introduces .enable_irq and .disable_irq into
struct arm_pmu_platdata, so platform specific irq enablement
can be handled after request_irq, and platform specific irq
disablement can be handled before free_irq.

This patch is for support of  pmu irq routed from CTI on omap4.

Acked-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
13 years agoarm: introduce cross trigger interface helpers
Ming Lei [Mon, 24 Oct 2011 14:45:53 +0000 (15:45 +0100)]
arm: introduce cross trigger interface helpers

OMAP4 uses cross trigger interface(CTI) to route
performance monitor irq to GIC, so introduce cti
helpers to make access for cti easily.

Acked-by: Jean Pihet <j-pihet@ti.com>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
13 years agoARM: perf: remove unused armpmu_get_max_events
Will Deacon [Mon, 14 Nov 2011 10:33:05 +0000 (10:33 +0000)]
ARM: perf: remove unused armpmu_get_max_events

armpmu_get_max_events is only called from perf_num_counters, so we can
inline it there. It existed as a separate entity as a hangover from
the original perf-based oprofile implementation.

Signed-off-by: Will Deacon <will.deacon@arm.com>
13 years agoARM: perf: add support for stalled cycle ABI events
Will Deacon [Thu, 29 Sep 2011 17:23:39 +0000 (18:23 +0100)]
ARM: perf: add support for stalled cycle ABI events

Commit 8f622422 ("perf events: Add generic front-end and back-end
stalled cycle event definitions") added two new ABI events for counting
stalled cycles.

This patch adds support for these new events to the ARM perf
implementation.

Cc: Jamie Iles <jamie@jamieiles.com>
Cc: Jean Pihet <j-pihet@ti.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
13 years agoARM: perf: clean and update ARMv7 event numbers
Will Deacon [Thu, 29 Sep 2011 14:29:02 +0000 (15:29 +0100)]
ARM: perf: clean and update ARMv7 event numbers

This patch updates the ARMv7 perf event numbers so that:

(1) A consistent naming scheme is used between different CPUs.

(2) Only events actually used by Linux are described.

(3) Where possible, architected events are used in preference to
    CPU-specific events.

This results in the removal of a load of unused, hardcoded data and
makes it more clear as to which events are supported on each PMU.

Cc: Jean Pihet <j-pihet@ti.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
13 years agoARM: exynos4: Fix build error
Axel Lin [Thu, 1 Dec 2011 15:25:45 +0000 (23:25 +0800)]
ARM: exynos4: Fix build error

Trivial fix to fix below build error:

  CC      arch/arm/mach-exynos/mach-universal_c210.o
arch/arm/mach-exynos/mach-universal_c210.c:24: error: expected identifier or '(' before '<' token

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
13 years agoARM: exynos4: Fix build error due to 'gic_bank_offset' undeclared
Axel Lin [Thu, 1 Dec 2011 15:24:30 +0000 (23:24 +0800)]
ARM: exynos4: Fix build error due to 'gic_bank_offset' undeclared

Fix below build error:
  CC      arch/arm/mach-exynos/cpu.o
arch/arm/mach-exynos/cpu.c: In function 'exynos4_init_irq':
arch/arm/mach-exynos/cpu.c:245: error: 'gic_bank_offset' undeclared (first use in this function)
arch/arm/mach-exynos/cpu.c:245: error: (Each undeclared identifier is reported only once
arch/arm/mach-exynos/cpu.c:245: error: for each function it appears in.)
arch/arm/mach-exynos/cpu.c:243: warning: unused variable 'bank_offset'
make[1]: *** [arch/arm/mach-exynos/cpu.o] Error 1
make: *** [arch/arm/mach-exynos] Error 2

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
13 years agoARM: OMAP1: Fix ckctl value used for dpll1 defualt rate
Janusz Krzysztofik [Thu, 1 Dec 2011 20:13:01 +0000 (21:13 +0100)]
ARM: OMAP1: Fix ckctl value used for dpll1 defualt rate

Use the exact value found in omap1_rate_table, otherwise I have been
experiencing issues with correct timekeeping on my Amstrad Delta.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
[tony@atomide.com: removed comment referencing a development branch]
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP1: Remove unsafe clock values from omap1_defconfig
Janusz Krzysztofik [Thu, 1 Dec 2011 20:30:39 +0000 (21:30 +0100)]
ARM: OMAP1: Remove unsafe clock values from omap1_defconfig

DPLL1 reprogramming to a different rate is actually blocked inside
omap1_select_table_rate(), resulting in the defalut rate of 60 MHz
always used instead of the one selected in .config. OTOH, in
omap1_defconfig we currently rely on Kconfig options for the supported
MHz rates in case of boards which boot with dpll1 not set correctly by
their boot loaders.

This means that before we allow for reprogramming of dpll1 rate, we
should remove all unsafe clock selections from omap1_defconfig,
otherwise it will stop booting on boards with imperfect boot loaders,
as it would always try to change to 216MHz.

Keep only one safe clock rate per each supported xtal frequency, i.e.
60MHZ dpll1 for 12MHz xtal and 182MHz dpll1 for 13MHz xtal.

BTW, this change goes into the direction of removing all OMAP1 clock
rate options, planned for next merge window.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoARM: OMAP1: Fix reprogramming of DPLL1 for systems that boot at rates below 60MHz
Tony Lindgren [Fri, 2 Dec 2011 01:47:06 +0000 (17:47 -0800)]
ARM: OMAP1: Fix reprogramming of DPLL1 for systems that boot at rates below 60MHz

Commit e9b7086b80c4d9e354f4edc9e280ae85a60df408 (ARM: OMAP: Fix
reprogramming of dpll1 rate) fixed a regression for systems that
did not rely on bootloader set rates.

However, it also introduced a new problem where the rates selected
in .config would not take affect as omap1_select_table_rate
currently refuses to reprogram DPLL1 if it's already initialized.

This was not a problem earlier, as the reprogramming was done
earlier with ck_dpll1_p->rate uninitialized.

Fix this by forcing the reprogramming on systems booting at rates
below 60MHz. Note that the long term fix is to make the rates
SoC specific later on.

Thanks for Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> for figuring
this one out.

Reported-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Acked-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Tony Lindgren <tony@atomide.com>
13 years agoLinux 3.2-rc4 v3.2-rc4
Linus Torvalds [Thu, 1 Dec 2011 22:56:01 +0000 (14:56 -0800)]
Linux 3.2-rc4

13 years agoMerge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec...
Linus Torvalds [Thu, 1 Dec 2011 22:55:34 +0000 (14:55 -0800)]
Merge branch 'upstream-linus' of git://git./linux/kernel/git/jlbec/ocfs2

* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (31 commits)
  ocfs2: avoid unaligned access to dqc_bitmap
  ocfs2: Use filemap_write_and_wait() instead of write_inode_now()
  ocfs2: honor O_(D)SYNC flag in fallocate
  ocfs2: Add a missing journal credit in ocfs2_link_credits() -v2
  ocfs2: send correct UUID to cleancache initialization
  ocfs2: Commit transactions in error cases -v2
  ocfs2: make direntry invalid when deleting it
  fs/ocfs2/dlm/dlmlock.c: free kmem_cache_zalloc'd data using kmem_cache_free
  ocfs2: Avoid livelock in ocfs2_readpage()
  ocfs2: serialize unaligned aio
  ocfs2: Implement llseek()
  ocfs2: Fix ocfs2_page_mkwrite()
  ocfs2: Add comment about orphan scanning
  ocfs2: Clean up messages in the fs
  ocfs2/cluster: Cluster up now includes network connections too
  ocfs2/cluster: Add new function o2net_fill_node_map()
  ocfs2/cluster: Fix output in file elapsed_time_in_ms
  ocfs2/dlm: dlmlock_remote() needs to account for remastery
  ocfs2/dlm: Take inflight reference count for remotely mastered resources too
  ocfs2/dlm: Cleanup dlm_wait_for_node_death() and dlm_wait_for_node_recovery()
  ...

13 years agoocfs2: avoid unaligned access to dqc_bitmap
Akinobu Mita [Tue, 15 Nov 2011 22:56:34 +0000 (14:56 -0800)]
ocfs2: avoid unaligned access to dqc_bitmap

The dqc_bitmap field of struct ocfs2_local_disk_chunk is 32-bit aligned,
but not 64-bit aligned.  The dqc_bitmap is accessed by ocfs2_set_bit(),
ocfs2_clear_bit(), ocfs2_test_bit(), or ocfs2_find_next_zero_bit().  These
are wrapper macros for ext2_*_bit() which need to take an unsigned long
aligned address (though some architectures are able to handle unaligned
address correctly)

So some 64bit architectures may not be able to access the dqc_bitmap
correctly.

This avoids such unaligned access by using another wrapper functions for
ext2_*_bit().  The code is taken from fs/ext4/mballoc.c which also need to
handle unaligned bitmap access.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Acked-by: Joel Becker <jlbec@evilplan.org>
Cc: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Joel Becker <jlbec@evilplan.org>
13 years agoMerge branch 'fixes' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur...
Linus Torvalds [Thu, 1 Dec 2011 19:53:54 +0000 (11:53 -0800)]
Merge branch 'fixes' of ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm

* 'fixes' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm:
  ARM: 7182/1: ARM cpu topology: fix warning
  ARM: 7181/1: Restrict kprobes probing SWP instructions to ARMv5 and below
  ARM: 7180/1: Change kprobes testcase with unpredictable STRD instruction
  ARM: 7177/1: GIC: avoid skipping non-existent PPIs in irq_start calculation
  ARM: 7176/1: cpu_pm: register GIC PM notifier only once
  ARM: 7175/1: add subname parameter to mfp_set_groupg callers
  ARM: 7174/1: Fix build error in kprobes test code on Thumb2 kernels
  ARM: 7172/1: dma: Drop GFP_COMP for DMA memory allocations
  ARM: 7171/1: unwind: add unwind directives to bitops assembly macros
  ARM: 7170/2: fix compilation breakage in entry-armv.S
  ARM: 7168/1: use cache type functions for arch_get_unmapped_area
  ARM: perf: check that we have a platform device when reserving PMU
  ARM: 7166/1: Use PMD_SHIFT instead of PGDIR_SHIFT in dma-consistent.c
  ARM: 7165/2: PL330: Fix typo in _prepare_ccr()
  ARM: 7163/2: PL330: Only register usable channels
  ARM: 7162/1: errata: tidy up Kconfig options for PL310 errata workarounds
  ARM: 7161/1: errata: no automatic store buffer drain
  ARM: perf: initialise used_mask for fake PMU during validation
  ARM: PMU: remove pmu_init declaration
  ARM: PMU: re-export release_pmu symbol to modules

13 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux...
Linus Torvalds [Thu, 1 Dec 2011 16:28:53 +0000 (08:28 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/mason/linux-btrfs

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
  Btrfs: fix meta data raid-repair merge problem
  Btrfs: skip allocation attempt from empty cluster
  Btrfs: skip block groups without enough space for a cluster
  Btrfs: start search for new cluster at the beginning
  Btrfs: reset cluster's max_size when creating bitmap
  Btrfs: initialize new bitmaps' list
  Btrfs: fix oops when calling statfs on readonly device
  Btrfs: Don't error on resizing FS to same size
  Btrfs: fix deadlock on metadata reservation when evicting a inode
  Fix URL of btrfs-progs git repository in docs
  btrfs scrub: handle -ENOMEM from init_ipath()