aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-03-28ARM: 6826/1: Merge v6 and v7 DEBUG_LL DCC supportrebuiltStephen Boyd
The inline assembly differences for v6 vs. v7 are purely optimizations. On a v7 processor, an mrc with the pc sets the condition codes to the 28-31 bits of the register being read. It just so happens that the TX/RX full bits the DCC support code is testing for are high enough in the register to be put into the condition codes. On a v6 processor, this "feature" isn't implemented and thus we have to do the usual read, mask, test operations to check for TX/RX full. Thus, we can drop the v7 implementation and just use the v6 implementation for both. Cc: Tony Lindgren <tony@atomide.com> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit dfad549d98b60160547d1b8299051b9456c8da85)
2011-03-28ARM: 6838/1: etm: fix section mismatch warningMing Lei
The patch fixes the warning below: WARNING: arch/arm/kernel/built-in.o(.data+0x27c): Section mismatch in reference from the variable etb_driver to the function .init.text:etb_probe() The variable etb_driver references the function __init etb_probe() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: arch/arm/kernel/built-in.o(.data+0x2cc): Section mismatch in reference from the variable etm_driver to the function .init.text:etm_probe() The variable etm_driver references the function __init etm_probe() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, Signed-off-by: Ming Lei <tom.leiming@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit 8e8806990cfd91a4ec25df6f00528008c4b0087a)
2011-03-28ARM: 6837/1: remove unused pci_fixup_prpmc1100Colin Cross
The PrPMC1100 machine was removed in 2.6.11, but left a reference to machine_is_prpmc1100 in arch/arm/kernel/bios32.c. 6f82f4db80189281a8ac42f2e72396accb719b57 removed the machine type, which causes a build failure: CC arch/arm/kernel/bios32.o arch/arm/kernel/bios32.c: In function 'pci_fixup_prpmc1100': arch/arm/kernel/bios32.c:174: error: implicit declaration of function 'machine_is_prpmc1100' Remove the unused pci_fixup_prpcm1100. Signed-off-by: Colin Cross <ccross@android.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit 7f479c64a52094354c10309fcacaa71de015dc9e)
2011-03-28ARM: 6836/1: kprobes/fix emulation of LDR/STR instruction when Rn == PCViktor Rosendahl
The Rn value from the emulation is unconditionally written back; this is fine as long as Rn != PC because in that case, even if the instruction isn't a write back instruction, it will only result in the same value being written back. In case Rn == PC, then the emulated instruction doesn't have the actual PC value in Rn but an adjusted value; when this is written back, it will result in the PC being incorrectly updated. An altenative solution would be to check bits 24 and 22 to see whether the instruction actually is a write back instruction or not. I think it's enough to check whether Rn != PC, because: - it's looks cheaper than the alternative - to my understaning it's not permitted to update the PC with a write back instruction, so we don't lose any ability to emulate legal instructions. - in case of writing back for non write back instructions where Rn != PC, it doesn't matter because the values are the same. Regarding the second point above, it would possibly be prudent to add some checking to prep_emulate_ldr_str(), so that instructions with both write back and Rn == PC would be rejected. Signed-off-by: Viktor Rosendahl <viktor.rosendahl@nokia.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit 0652f067360fc3be2c3e668085f5fb2b76402928)
2011-03-28mach-ux500: configure board for the TPS61052 regulator v2Linus Walleij
This registers the TPS61052 regulator to the ux500 MOP/HREF boards. Cc: Samuel Ortiz <samuel.ortiz@intel.com> Cc: Liam Girdwood <lrg@slimlogic.co.uk> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: Ola Lilja <ola.o.lilja@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> (cherry picked from commit fe67dfc874da094bbbfbb73e74924d414b96105b)
2011-03-28mach-ux500: provide ab8500 init vectorBengt Jonsson
This adds an ab8500 regulator initialization vector for the HREF/MOP500 series of boards. This also sets the display regulator to be on at boot so we don't loose our splash screen when the board comes up. Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> (cherry picked from commit dfa3a824de631e6833ffa9a7befc08186b027799)
2011-03-28mach-ux500: board support for AB8500 GPIO driverBibek Basu
This is the board support patch for ab8500 gpio driver on mach-ux500.Patch implements 16 virtual IRQ mapped to 16 interrupt capable AB8500 GPIOs. Signed-off-by: Bibek Basu <bibek.basu@stericsson.com> [Modify for header file placement] Signed-off-by: Linus Walleij <linus.walleij@linaro.org> (cherry picked from commit 3ef374a22bdf91fb3b4213200aadd054f81c3499)
2011-03-28gpio: driver for 42 AB8500 GPIO pinsBibek Basu
To get rid of port expanders, the free GPIOs of ab8500 can be used. There are 42 GPIO pins. Out of which 16 are interrupt capable.This patch implements 16 virtual IRQ mapped to 16 interrupt capable AB8500 GPIOs. Signed-off-by: Bibek Basu <bibek.basu@stericsson.com> Acked-by: Grant Likely <grant.likely@secretlab.ca> [Renamed header file as per MFD structure] Signed-off-by: Linus Walleij <linus.walleij@linaro.org> (cherry picked from commit 0cb3fcd72cc3e6dd88f0e769746d294e5e6bafa9)
2011-03-28ARM: Suspend: Fix dependency of ARCH_SUSPEND_POSSIBLEKukjin Kim
The current mainline codes of ARCH_S5P64X0 and ARCH_S5P6442 can not support suspend to ram. So needs this for preventing build error on them. Cc: Russell King <rmk+kernel@arm.linux.org.uk> Cc: Rafael J. Wysocki <rjw@sisk.pl> Cc: Len Brown <len.brown@intel.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com> (cherry picked from commit 3e1d9874b44212628b65ec4455d32cb4880b553f)
2011-03-28ARM: SAMSUNG: Fix CPU idmaskKukjin Kim
This patch fixes CPU idmask of S5P64X0 and EXYNOS4210 and its comparison method because just want to use CPU id for it. Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com> (cherry picked from commit 9d5fda6656fae8004deb81e91bbd144c8743e500)
2011-03-28ARM: EXYNOS4: Fix smsc9215 irq polarity on SMDKC210Jeongtae Park
This patch fixes smsc9215 irq ploarity configuration of SMDKC210. We can change type of EINT(5) as HIGH, but it's better to change IRQ output of smsc9215 as an active low because smsc's IRQ line has been pull-up. Signed-off-by: Jeongtae Park <jtp.park@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com> (cherry picked from commit 1af3c67212d1694977b6da47b4451a9b019e7606)
2011-03-28ARM: EXYNOS4: Fix smsc9215 irq polarity on SMDKV310Jeongtae Park
This patch fixes smsc9215 irq ploarity configuration of SMDKV310. We can change type of EINT(5) as HIGH, but it's better to change IRQ output of smsc9215 as an active low because smsc's IRQ line has been pull-up. Signed-off-by: Jeongtae Park <jtp.park@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com> (cherry picked from commit cd0527c25bfb1f30f6994744fb600c4a32ab5a4f)
2011-03-28ARM: EXYNOS4: Fix build warning on regarding SATA_AHCI_PLATFORMKukjin Kim
This patch fixes following build warnings. warning: (MACH_ARMLEX4210) selects SATA_AHCI_PLATFORM which has unmet direct dependencies (ATA) And adds EXYNOX4_DEV_AHCI for building machines which are not suppoort for AHCI feature on board. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com> (cherry picked from commit 94fc1d80d6df31e036f6dcc18e05b3ddb8dd790e)
2011-03-28ARM: S5PV210: Remove duplicated inclusionHuang Weiyi
Remove duplicated #include('s) in arch/arm/mach-s5pv210/mach-smdkv210.c Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com> (cherry picked from commit 768fe2c31fc48e63ff623393986eeb1ce27cc287)
2011-03-28ARM: S5PV210: Fix security engine interrupt namesVladimir Zapolskiy
This change is intended to correct security subsystem interrupt names for Samsung S5PV210 and S5PC110 SoCs. Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com> (cherry picked from commit 912003e8f1b23af65dd32f91c7e699c1f496b067)
2011-03-28ARM: S5P64X0: Fix iodesc array size for S5P6450Banajit Goswami
The array size parameter of iotable_init for S5P6450 is incorrect. Fix this by passing the correct length of s5p6450_iodesc table. Signed-off-by: Banajit Goswami <banajit.g@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com> (cherry picked from commit 3814554d11b3f677117ab048f147d207fd66f856)
2011-03-28regulator: add ab8500 enable and raise time delaysLinus Walleij
This uses the new infrastructure to provide proper delays when enabling or setting the voltage of one specific regulator. Cc: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> (cherry picked from commit 42ab616afe8844261828395cc2e4708c867412c2)
2011-03-28regulator: provide consumer interface for fall/rise timeLinus Walleij
This exposes the functionality for rise/fall fime when setting voltage to the consumers. Cc: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> (cherry picked from commit 88cd222b259d62148ab8c82398498b1a01314476)
2011-03-28regulator: add set_voltage_time_sel infrastructureLinus Walleij
This makes it possible to set the stabilization time for voltage regulators in the same manner as enable_time(). The interface only supports regulators that implements fixed selectors. Cc: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> (cherry picked from commit 77af1b2641faf45788a0d480db94082ebee931dc)
2011-03-28regulator: initialization for ab8500 regulatorsBengt Jonsson
The regulators on the AB8500 have a lot of custom hardware control settings pertaining to 8 external signals, settings which are board-specific and need be provided from the platform at startup. Initialization added for regulators Vana, VextSupply1, VextSupply2, VextSupply3, Vaux1, Vaux2, Vaux3, VTVout, Vintcore12, Vaudio, Vdmic, Vamic1, Vamic2, VrefDDR. Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Reviewed-by: Rickard Andersson <rickard.andersson@stericsson.com> Reviewed-by: Jonas Aberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> (cherry picked from commit 79568b941277b5986a8a7f0fb8578b2ccfc3e87e)
2011-03-28regulator: add support for USB voltage regulatorBengt Jonsson
Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> (cherry picked from commit ea05ef31f2aa98b25d14222300dc9c1d1eb59e41)
2011-03-28regulator: switch the ab3100 to use enable_time()Linus Walleij
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> This switches the ab3100 core to use the enable_time() infrastructure from the regulator core. Cc: Mattias Wallin <mattias.wallin@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> (cherry picked from commit 19c98825941cb10b59c9953665fc4495bc82c0ae)
2011-03-28Regulator: add suspend-finish API for regulator core.MyungJoo Ham
The regulator core had suspend-prepare that turns off the regulators when entering a system-wide suspend. However, it did not have suspend-finish that pairs with suspend-prepare and the regulator core has assumed that the regulator devices and their drivers support autonomous recover at resume. This patch adds regulator_suspend_finish that pairs with the previously-existed regulator_suspend_prepare. The function regulator_suspend_finish turns on the regulators that have always_on set or positive use_count so that we can reset the regulator states appropriately at resume. In regulator_suspend_finish, if has_full_constraints, it disables unnecessary regulators. Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> -- Updates v3 comments corrected (Thanks to Igor) v2 disable unnecessary regulators (Thanks to Mark) Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> (cherry picked from commit 7a32b589a9c856493bccb02db55047edc04eee7b)
2011-03-28regulator: fix typo in KconfigIgor Grinberg
Fix typo: s/TPS695x0/TPS659x0/ Signed-off-by: Igor Grinberg <grinberg@compulab.co.il> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> (cherry picked from commit fb7c18cac8608983168a7f4f55193cea190c83c8)
2011-03-28regulator: Convert WM831x regulators to genirqMark Brown
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> (cherry picked from commit dfda9c27ba15330f37453c389d775ecf9e981d05)
2011-03-28regulator: If we fail when setting up a supply say which supplyMark Brown
Makes it a bit easier to identify if it's a problem with the supplies, the usual error would be omitting the supply name entirely. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> (cherry picked from commit 23c2f041efa891e6ec0706dc9ad4f776a9aa8c14)
2011-03-27Merge commit 'v2.6.38.1' into linaro-2.6.38Nicolas Pitre
Conflicts: drivers/usb/core/hcd-pci.c drivers/usb/host/isp1760-hcd.c include/linux/usb/ch9.h
2011-03-27ARM: Add PI/robust mutexes support for SMP kernelsAnton Vorontsov
To support PI or robust mutexes, the kernel needs to perform some operations atomically on userspace addresses, and yet ARM lacked the support for the SMP case. ARMv6 adds exclusive access variants of ldr and str instructions, which means that support for PI/robust mutexes should now be relatively straightforward. Note that with this patch, if we run ARMv6 or greater, we'll use atomic instructions no matter if it's SMP or UP kernel (just as we do in atomic.h). This has been tested on an ARM11 MPCore machine (ARMv6K), but I also plan to test it with some Cortex-A9 (ARMv7) soon. Signed-off-by: Anton Vorontsov <avorontsov@mvista.com> [ np -- made it conditional on !CONFIG_CPU_USE_DOMAINS ] Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
2011-03-27ARM: Set bit 22 in the PL310 (cache controller) AuxCtlr registerCatalin Marinas
Clearing bit 22 in the PL310 Auxiliary Control register (shared attribute override enable) has the side effect of transforming Normal Shared Non-cacheable reads into Cacheable no-allocate reads. Coherent DMA buffers in Linux always have a Cacheable alias via the kernel linear mapping and the processor can speculatively load cache lines into the PL310 controller. With bit 22 cleared, Non-cacheable reads would unexpectedly hit such cache lines leading to buffer corruption. This patch ensures that bit 22 is set in the l2x0_init() function if PL310 and not rely on the platform code to specify it. It also modifies the 'aux' variable only if the actual register is written so that the final printk displays the real hardware value. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
2011-03-27OMAP2+: PANDA: Fix up random or missing MAC addresses for eth0 and wlan0Andy Green
This patch registers a network device notifier callback to set the mac addresses for the onboard network assets of Panda correctly, despite the drivers involved have used a random or all-zeros MAC address. The technique was suggested by Alan Cox on lkml. It works by device path so it corrects the MAC addresses even if the drivers are in modules loaded in an order that changes their interface name from usual (eg, the onboard module might be "wlan1" if there is a USB wireless stick plugged in and its module is inserted first.) Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andy Green <andy.green@linaro.org> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
2011-03-27OMAP2+: add cpu id register to MAC address helperAndy Green
Introduce a generic helper function that can set a MAC address using data from the OMAP unique CPU ID register. For comparison purposes this produces a MAC address of 2e:40:70:f0:12:06 for the ethernet device on my Panda. Signed-off-by: Andy Green <andy.green@linaro.org> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
2011-03-27usbnet: use eth%d name for known ethernet devicesArnd Bergmann
The documentation for the USB ethernet devices suggests that only some devices are supposed to use usb0 as the network interface name instead of eth0. The logic used there, and documented in Kconfig for CDC is that eth0 will be used when the mac address is a globally assigned one, but usb0 is used for the locally managed range that is typically used on point-to-point links. Unfortunately, this has caused a lot of pain on the smsc95xx device that is used on the popular pandaboard without an EEPROM to store the MAC address, which causes the driver to call random_ether_address(). Obviously, there should be a proper MAC addressed assigned to the device, and discussions are ongoing about how to solve this, but this patch at least makes sure that the default interface naming gets a little saner and matches what the user can expect based on the documentation, including for new devices. The approach taken here is to flag whether a device might be a point-to-point link with the new FLAG_POINTTOPOINT setting in the usbnet driver_info. A driver can set both FLAG_PTP and FLAG_ETHER if it is not sure (e.g. cdc_ether), or just one of the two. The usbnet framework only looks at the MAC address for device naming if both flags are set, otherwise it trusts the flag. Signed-off-by: Arnd Bergmann <arnd.bergmann@linaro.org> Cc: Andy Green <andy.green@linaro.org> Cc: patches@linaro.org Tested-by: Andy Green <andy.green@linaro.org> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
2011-03-27[CPUFREQ] Remove the pm_message_t argument from driver suspendRafael J. Wysocki
None of the existing cpufreq drivers uses the second argument of its .suspend() callback (which isn't useful anyway), so remove it. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Dave Jones <davej@redhat.com> (cherry-picked from 7ca64e2)
2011-03-27[CPUFREQ] Remove unneeded locksThomas Renninger
There cannot be any concurrent access to these through different cpu sysfs files anymore, because these tunables are now all global (not per cpu). I still have some doubts whether some of these locks were needed at all. Anyway, let's get rid of them. Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dave Jones <davej@redhat.com> CC: cpufreq@vger.kernel.org (cherry picked from commit 326c86deaed54ad1b364fcafe5073f563671eb58)
2011-03-27[CPUFREQ] Remove old, deprecated per cpu ondemand/conservative sysfs filesThomas Renninger
Marked deprecated for quite a whilte now... Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dave Jones <davej@redhat.com> CC: cpufreq@vger.kernel.org (cherry picked from commit e8951251b89440644a39f2512b4f265973926b41)
2011-03-27[CPUFREQ] Remove deprecated sysfs file sampling_rate_maxThomas Renninger
Marked deprecated for quite a while now... Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dave Jones <davej@redhat.com> CC: cpufreq@vger.kernel.org (cherry picked from commit ef598549b28014ec2ea7574d4e793728e0e33d02)
2011-03-27[CPUFREQ] calculate delay after dbs_check_cpuVincent Guittot
calculate ondemand delay after dbs_check_cpu call because it can modify rate_mult value use freq_lo_jiffies value for the sub sample period of powersave_bias mode Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org> Signed-off-by: Dave Jones <davej@redhat.com> (cherry picked from commit 5cb2c3bd0c5e0f3ced63f250ec2ad59d7c5c626a)
2011-03-27[CPUFREQ] Add documentation for sampling_down_factorVishwanath BS
Update cpufreq governor documentation for sampling_down_factor tunable parameter. Signed-off-by: Vishwanath BS <vishwanath.bs@ti.com> Signed-off-by: Dave Jones <davej@redhat.com> (cherry picked from commit 5b95364f6101d67a073a5ec18d726e94e02ca605)
2011-03-27[CPUFREQ] drivers/cpufreq: Remove unnecessary semicolonsJoe Perches
Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Dave Jones <davej@redhat.com> (cherry picked from commit 2feb690c20d52e22c7874a1e090245e6a4344ce6)
2011-03-27ARM: Thumb-2: Add local symbols to work around gas behaviourDave Martin
All current versions of gas at the time of writing have issues fixing up pc-relative instructions which reference global symbols, due to the potential need to support symbol preemption. Even though symbol preemption is not relevant to the Linux kernel, there is no way to inform the tools of this, so we get the problem. Most pc-relative forms in ARM, and all pc-relative forms in Thumb, will cause the assembler to fail with various fixup error messages when used to reference global symbols. The legacy behaviour is for ADR and plain LDR instructions in ARM which reference global symbols to be fixed up silently with no relocation emitted. This means that building the kernel in ARM currently works without problems, but this behaviour may be a bug. After discussion with Richard Earnshaw, it seems that there is no single obvious remedy for this inconsistent behaviour, so there is not likely to be a comprehensive upstream fix for a while. A workaround which should be valid for all past and all foreseeable future versions of gas is to express the need for a local fixup explicitly, by declaring a shadow local symbol for any global symbol which needs to be addressed using ADR or any pc-relative LDR variant. This patch implements this workaround for the one part of the main kernel currently known to be affected. The resulting code builds and works correctly in ARM and Thumb. Similar fixes may be needed in mach-specific assembler. Signed-off-by: Dave Martin <dave.martin@linaro.org> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
2011-03-27ARM: omap3: Fix assembler breakage in sleep34xx.SJohn Rigby
Assembler in latest binutils needs extra option to enable smc instructions introduced in: ARM: omap3: Remove hand-encoded SMC instructions Signed-off-by: John Rigby <john.rigby@linaro.org> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
2011-03-27ARM: 6835/1: perf: ensure overflows aren't missed due to IRQ latencyWill Deacon
If a counter overflows during a perf stat profiling run it may overtake the last known value of the counter: 0 prev new 0xffffffff |----------|-------|----------------------| In this case, the number of events that have occurred is (0xffffffff - prev) + new. Unfortunately, the event update code will not realise an overflow has occurred and will instead report the event delta as (new - prev) which may be considerably smaller than the real count. This patch adds an extra argument to armpmu_event_update which indicates whether or not an overflow has occurred. If an overflow has occurred then we use the maximum period of the counter to calculate the elapsed events. Acked-by: Jamie Iles <jamie@jamieiles.com> Reported-by: Ashwin Chaugule <ashwinc@codeaurora.org> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit a737823d37666255e3e74ce84bc9611a038e0888)
2011-03-27ARM: 6834/1: perf: reset counters on all CPUs during initialisationWill Deacon
ARMv7 dictates that the interrupt-enable and count-enable registers for each PMU counter are UNKNOWN following core reset. This patch adds a new (optional) function pointer to struct arm_pmu for resetting the PMU state during init. The reset function is called on each CPU via an arch_initcall in the generic ARM perf_event code and allows the PMU backend to write sane values to any UNKNOWN registers. Acked-by: Jean Pihet <j-pihet@ti.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit 574b69cbb633037a9c305d2993aeb680f4a8badd)
2011-03-27ARM: 6833/1: perf: add required isbs() to ARMv7 backendWill Deacon
The ARMv7 architecture does not guarantee that effects from co-processor writes are immediately visible to following instructions. This patch adds two isbs to the ARMv7 perf code: (1) Immediately after selecting an event register, so that the PMU state following this instruction is consistent with the new event. (2) Immediately before writing to the PMCR, so that any previous writes to the PMU have taken effect before (typically) enabling the counters. Acked-by: Jean Pihet <j-pihet@ti.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit d25d3b4c4d0e27975ee659a64b6d29f02fdbfde4)
2011-03-27ARM: 6825/1: kernel/sleep.S: fix Thumb2 compilation issuesNicolas Pitre
Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org> Reviewed-by: Dave Martin <dave.martin@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit fb4fe87d79511398a68000d2100c825f54b51652)
2011-03-27ARM: 6807/1: realview: Fix secondary GIC initialisation for EB with MPCore tilePawel Moll
The second GIC, present when EB board is used with a MPCore tile, was initialised starting with irq number 64, which made interrupts 64-95 in the primary GIC unusable. Signed-off-by: Pawel Moll <pawel.moll@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit 0efc48ecaf0f84430524a1759ab9c60aad8eab1e)
2011-03-27NET: smsc95xx: don't use stack for async writes to the deviceMarc Zyngier
The set_multicast operation performs asynchronous writes to the device, with some addresses pointing to the stack. Bad things may happen, and this is trapped CONFIG_DMA_API_DEBUG: [ 5.237762] WARNING: at /build/buildd/linux-linaro-omap-2.6.38/lib/dma-debug.c:867 check_for_stack+0xd4/0x100() [ 5.237792] ehci-omap ehci-omap.0: DMA-API: device driver maps memory fromstack [addr=d9c77dec] [ 5.237792] Modules linked in: smsc95xx(+) usbnet twl6030_usb twl4030_pwrbutton leds_gpio omap_wdt omap2_mcspi [ 5.237854] [<c006d618>] (unwind_backtrace+0x0/0xf8) from [<c00a6a14>] (warn_slowpath_common+0x54/0x64) [ 5.237884] [<c00a6a14>] (warn_slowpath_common+0x54/0x64) from [<c00a6ab8>] (warn_slowpath_fmt+0x30/0x40) [ 5.237915] [<c00a6ab8>] (warn_slowpath_fmt+0x30/0x40) from [<c034e9d8>] (check_for_stack+0xd4/0x100) [ 5.237915] [<c034e9d8>] (check_for_stack+0xd4/0x100) from [<c034fea8>] (debug_dma_map_page+0xb4/0xdc) [ 5.237976] [<c034fea8>] (debug_dma_map_page+0xb4/0xdc) from [<c04242f0>] (map_urb_for_dma+0x26c/0x304) [ 5.237976] [<c04242f0>] (map_urb_for_dma+0x26c/0x304) from [<c0424594>] (usb_hcd_submit_urb+0x78/0x19c) [ 5.238037] [<c0424594>] (usb_hcd_submit_urb+0x78/0x19c) from [<bf049c5c>] (smsc95xx_write_reg_async+0xb4/0x130 [smsc95xx]) [ 5.238067] [<bf049c5c>] (smsc95xx_write_reg_async+0xb4/0x130 [smsc95xx]) from [<bf049dd4>] (smsc95xx_set_multicast+0xfc/0x148 [smsc95xx]) [ 5.238098] [<bf049dd4>] (smsc95xx_set_multicast+0xfc/0x148 [smsc95xx]) from [<bf04a118>] (smsc95xx_reset+0x2f8/0x68c [smsc95xx]) [ 5.238128] [<bf04a118>] (smsc95xx_reset+0x2f8/0x68c [smsc95xx]) from [<bf04a8cc>] (smsc95xx_bind+0xcc/0x188 [smsc95xx]) [ 5.238159] [<bf04a8cc>] (smsc95xx_bind+0xcc/0x188 [smsc95xx]) from [<bf03ef1c>] (usbnet_probe+0x204/0x4c4 [usbnet]) [ 5.238220] [<bf03ef1c>] (usbnet_probe+0x204/0x4c4 [usbnet]) from [<c0429078>] (usb_probe_interface+0xe4/0x1c4) [ 5.238250] [<c0429078>] (usb_probe_interface+0xe4/0x1c4) from [<c03a8770>] (really_probe+0x64/0x160) [ 5.238250] [<c03a8770>] (really_probe+0x64/0x160) from [<c03a8a30>] (driver_probe_device+0x48/0x60) [ 5.238281] [<c03a8a30>] (driver_probe_device+0x48/0x60) from [<c03a8ad4>] (__driver_attach+0x8c/0x90) [ 5.238311] [<c03a8ad4>] (__driver_attach+0x8c/0x90) from [<c03a7b24>] (bus_for_each_dev+0x50/0x7c) [ 5.238311] [<c03a7b24>] (bus_for_each_dev+0x50/0x7c) from [<c03a82ec>] (bus_add_driver+0x190/0x250) [ 5.238311] [<c03a82ec>] (bus_add_driver+0x190/0x250) from [<c03a8cf8>] (driver_register+0x78/0x13c) [ 5.238433] [<c03a8cf8>] (driver_register+0x78/0x13c) from [<c0428040>] (usb_register_driver+0x78/0x13c) [ 5.238464] [<c0428040>] (usb_register_driver+0x78/0x13c) from [<c005b680>] (do_one_initcall+0x34/0x188) [ 5.238494] [<c005b680>] (do_one_initcall+0x34/0x188) from [<c00e11f0>] (sys_init_module+0xb0/0x1c0) [ 5.238525] [<c00e11f0>] (sys_init_module+0xb0/0x1c0) from [<c0065c40>] (ret_fast_syscall+0x0/0x30) Move the two offenders to the private structure which is kmalloc-ed, and thus safe. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Cc: Steve Glendinning <steve.glendinning@smsc.com> Signed-off-by: David S. Miller <davem@davemloft.net> (cherry picked from commit 3c0f3c605b2572c740f66ea39fe2d125399b20aa)
2011-03-27ARM: EXYNOS4: Fix addruart macroThomas Abraham
Fix incorrect conditional execution of ldr instructions in addruart macro. Signed-off-by: Thomas Abraham <thomas.abraham@samsung.com> Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
2011-03-27OMAP: Enable Magic SysRq on serial console ttyOxThomas Weber
Magic SysRq key is not working for OMAP on new serial console ttyOx because SUPPORT_SYSRQ is not defined for omap-serial. This patch defines SUPPORT_SYSRQ in omap-serial and enables handling of Magic SysRq character. Further there is an issue of losing first break character. Removing the reset of the lsr_break_flag fixes this issue. Signed-off-by: Thomas Weber <weber@corscience.de> Acked-by: Govindraj.R <govindraj.raja@ti.com> Tested-by: Manjunath G Kondaiah <manjugk@ti.com> Acked-by: Kevin Hilman <khilman@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> (cherry picked from commit 364a6ece62455f669336e50d5b00f14ba650da93)
2011-03-27I2C: OMAP1/OMAP2+: prepend I2C IP version to probed version shown in dev_infoAndy Green
The IP version is prepended to the existing printed probed version as an "epoch" version. Cc: patches@linaro.org Cc: Ben Dooks <ben-linux@fluff.org> Reported-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Andy Green <andy.green@linaro.org> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>