- 16 Feb, 2011 4 commits
-
-
Hemant Pedanekar authored
This patch adds support for low level debugging on TI816X boards. Currently the support for UART3 console on TI816X EVM is added. Signed-off-by:
Hemant Pedanekar <hemantp@ti.com> Reviewed-by:
Kevin Hilman <khilman@ti.com> Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
Hemant Pedanekar authored
This patch adds minimal support and build configuration for TI816X EVM. Signed-off-by:
Hemant Pedanekar <hemantp@ti.com> Reviewed-by:
Kevin Hilman <khilman@ti.com> Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
Hemant Pedanekar authored
This patch updates the common machine specific source files with support for TI816X. Signed-off-by:
Hemant Pedanekar <hemantp@ti.com> Reviewed-by:
Kevin Hilman <khilman@ti.com> Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
Hemant Pedanekar authored
This patch updates the common platform files with TI816X support. The approach taken in this patch is to add TI816X as part of OMAP3 variant where the cpu class is considered as OMAP34XX and the type is TI816X. This means, both cpu_is_omap34xx() and cpu_is_ti816x() checks return success on TI816X. A kernel config option CONFIG_SOC_OMAPTI816X is added under OMAP3 to include support for TI816X build. Signed-off-by:
Hemant Pedanekar <hemantp@ti.com> Reviewed-by:
Kevin Hilman <khilman@ti.com> Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
- 14 Feb, 2011 4 commits
-
-
Tony Lindgren authored
Otherwise ioremap can fail with early_init patch unless we have a static mapping for everything. Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
Tony Lindgren authored
The new init_early hook happens at the end of setup_arch, which is too early for kzalloc. However, there's no need to call omap_serial_early_init that early, so fix this by setting it up as a core_initcall. Signed-off-by:
Tony Lindgren <tony@atomide.com> Tested-by:
Kevin Hilman <khilman@ti.com>
-
Tony Lindgren authored
Otherwise things will fail with early_init changes. Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
Russell King - ARM Linux authored
Move non-mapping and non-irq initialization code out of .map_io and .init_irq respectively into the new init_early hook. Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
- 07 Feb, 2011 2 commits
-
-
Russell King authored
Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
H. Peter Anvin authored
We reserve lowmem for the things that need it, like the ACPI wakeup code, way early to guarantee availability. This happens before we set up the proper pagetables, so set_memory_x() has no effect. Until we have a better solution, use an initcall to mark the wakeup code executable. Originally-by:
Matthieu Castet <castet.matthieu@free.fr> Signed-off-by:
H. Peter Anvin <hpa@zytor.com> Cc: Matthias Hopf <mhopf@suse.de> Cc: rjw@sisk.pl Cc: Suresh Siddha <suresh.b.siddha@intel.com> LKML-Reference: <4D4F8019.2090104@zytor.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
- 06 Feb, 2011 15 commits
-
-
Anton Blanchard authored
Spinlocks on shared processor partitions use H_YIELD to notify the hypervisor we are waiting on another virtual CPU. Unfortunately this means the hcall tracepoints can recurse. The patch below adds a percpu depth and checks it on both the entry and exit hcall tracepoints. Signed-off-by:
Anton Blanchard <anton@samba.org> Acked-by:
Steven Rostedt <rostedt@goodmis.org> Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org> CC: stable@kernel.org
-
Anton Blanchard authored
When converting to the new cpumask code I screwed up: - if (cpu_isset(cpu, numa_cpumask_lookup_table[node])) { - cpu_clear(cpu, numa_cpumask_lookup_table[node]); + if (cpumask_test_cpu(cpu, node_to_cpumask_map[node])) { + cpumask_set_cpu(cpu, node_to_cpumask_map[node]); This was introduced in commit 25863de0 (powerpc/cpumask: Convert NUMA code to new cpumask API) Fix it. Signed-off-by:
Anton Blanchard <anton@samba.org> Cc: <stable@kernel.org> Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
Anton Blanchard authored
There is no need to start up the timer and monitor topology changes on a dedicated processor partition, so disable it. Signed-off-by:
Anton Blanchard <anton@samba.org> Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
Anton Blanchard authored
The rest of the NUMA code expects an OF associativity property with the first cell containing the length. Without this fix all topology changes cause us to misparse the property and put the cpu into node 0. Signed-off-by:
Anton Blanchard <anton@samba.org> Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
Anton Blanchard authored
The hypervisor uses unsigned 1 byte counters to signal topology changes to the OS. Since they can wrap we need to check for any difference, not just if the hypervisor count is greater than the previous count. Signed-off-by:
Anton Blanchard <anton@samba.org> Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
Anton Blanchard authored
VPHN supports up to 8 distance fields but the number of entries in ibm,associativity-reference-points signifies how many are in use. Don't look at all the VPHN counts, only distance_ref_points_depth worth. Since we already cap our distance metrics at MAX_DISTANCE_REF_POINTS, use that to size the VPHN arrays and add a BUILD_BUG_ON to avoid it growing larger than the VPHN maximum of 8. Signed-off-by:
Anton Blanchard <anton@samba.org> Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
Jesse Larrew authored
Remove unnecessary variable initializations in VPHN functions. Signed-off-by:
Jesse Larrew <jlarrew@linux.vnet.ibm.com> Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
Jesse Larrew authored
Fix brace placement in VPHN code. Signed-off-by:
Jesse Larrew <jlarrew@linux.vnet.ibm.com> Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
Jesse Larrew authored
Correct a spelling error in VPHN comments in numa.c. Signed-off-by:
Jesse Larrew <jlarrew@linux.vnet.ibm.com> Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
Benjamin Herrenschmidt authored
Some of those functions try to adjust the CPU features, for example to remove NAP support on some revisions. However, they seem to use r5 as an index into the CPU table entry, which might have been right a long time ago but no longer is. r4 is the right register to use. This probably caused some off behaviours on some PowerMac variants using 750cx or 7455 processor revisions. Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org> CC: stable@kernel.org
-
Benjamin Herrenschmidt authored
When calling setup_cpu() on 64-bit, we pass a pointer to the cputable entry we have found. This used to be fine when cur_cpu_spec was a pointer to that entry, but nowadays, we copy the entry into a separate variable, and we do so before we call the setup_cpu() callback. That means that any attempt by that callback at patching the CPU table entry (to adjust CPU features for example) will patch the wrong table. Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
Scott Wood authored
Signed-off-by:
Scott Wood <scottwood@freescale.com> Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
Scott Wood authored
max_mapnr is a pfn, not an index innto mem_map[]. So don't add ARCH_PFN_OFFSET a second time. Signed-off-by:
Scott Wood <scottwood@freescale.com> Signed-off-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org>
-
Ben Hutchings authored
FREQ is a ridiculously short name for a platform-specific macro in a generic header, and it now conflicts with an enumeration in the gspca/ov519 driver. Also delete conditional reference to ixp4xx_get_board_tick_rate() which is not defined anywhere. Signed-off-by:
Ben Hutchings <ben@decadent.org.uk> Signed-off-by:
Krzysztof Hałasa <khc@pm.waw.pl>
-
Krzysztof Hałasa authored
Queues should be empty when released, if not, there is a safety valve. Make sure the queue is usable after it triggers. Signed-off-by:
Krzysztof Hałasa <khc@pm.waw.pl>
-
- 05 Feb, 2011 2 commits
-
-
Thomas Gleixner authored
Somehow I managed to miss the last __do_IRQ caller when I cleanup the remaining users. m32r is fully converted to the generic irq layer, but I managed to not commit the conversion of __do_IRQ() to generic_handle_irq() after compile testing the quilt series :( Pointed-out-by:
Christoph Hellwig <hch@lst.de> Signed-off-by:
Thomas Gleixner <tglx@linutronix.de> Cc: Hirokazu Takata <takata@linux-m32r.org> Cc: Paul Mundt <lethal@linux-sh.org>
-
Mika Westerberg authored
The last register is at offset 0xa8 making the resource end to be 0xac - 1 instead of 0xb0 - 1. Signed-off-by:
Mika Westerberg <mika.westerberg@iki.fi> Acked-by:
H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
- 04 Feb, 2011 1 commit
-
-
H. Peter Anvin authored
Since checkin ebba638a we call verify_cpu even in 32-bit mode. Unfortunately, calling a function means using the stack, and the stack pointer was not initialized in the 32-bit setup code! This code initializes the stack pointer, and simplifies the interface slightly since it is easier to rely on just a pointer value rather than a descriptor; we need to have different values for the segment register anyway. This retains start_stack as a virtual address, even though a physical address would be more convenient for 32 bits; the 64-bit code wants the other way around... Reported-by:
Matthieu Castet <castet.matthieu@free.fr> LKML-Reference: <4D41E86D.8060205@free.fr> Tested-by:
Kees Cook <kees.cook@canonical.com> Signed-off-by:
H. Peter Anvin <hpa@linux.intel.com>
-
- 03 Feb, 2011 2 commits
-
-
Suresh Siddha authored
Clearing the cpu in prev's mm_cpumask early will avoid the flush tlb IPI's while the cr3 is still pointing to the prev mm. And this window can lead to the possibility of bogus TLB fills resulting in strange failures. One such problematic scenario is mentioned below. T1. CPU-1 is context switching from mm1 to mm2 context and got a NMI etc between the point of clearing the cpu from the mm_cpumask(mm1) and before reloading the cr3 with the new mm2. T2. CPU-2 is tearing down a specific vma for mm1 and will proceed with flushing the TLB for mm1. It doesn't send the flush TLB to CPU-1 as it doesn't see that cpu listed in the mm_cpumask(mm1). T3. After the TLB flush is complete, CPU-2 goes ahead and frees the page-table pages associated with the removed vma mapping. T4. CPU-2 now allocates those freed page-table pages for something else. T5. As the CR3 and TLB caches for mm1 is still active on CPU-1, CPU-1 can potentially speculate and walk through the page-table caches and can insert new TLB entries. As the page-table pages are already freed and being used on CPU-2, this page walk can potentially insert a bogus global TLB entry depending on the (random) contents of the page that is being used on CPU-2. T6. This bogus TLB entry being global will be active across future CR3 changes and can result in weird memory corruption etc. To avoid this issue, for the prev mm that is handing over the cpu to another mm, clear the cpu from the mm_cpumask(prev) after the cr3 is changed. Marking it for -stable, though we haven't seen any reported failure that can be attributed to this. Signed-off-by:
Suresh Siddha <suresh.b.siddha@intel.com> Acked-by:
Ingo Molnar <mingo@elte.hu> Cc: stable@kernel.org [v2.6.32+] Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
Suresh Siddha authored
Markus Kohn ran into a hard hang regression on an acer aspire 1310, when acpi is enabled. git bisect showed the following commit as the bad one that introduced the boot regression. commit d0af9eed Author: Suresh Siddha <suresh.b.siddha@intel.com> Date: Wed Aug 19 18:05:36 2009 -0700 x86, pat/mtrr: Rendezvous all the cpus for MTRR/PAT init Because of the UP configuration of that platform, native_smp_prepare_cpus() bailed out (in smp_sanity_check()) before doing the set_mtrr_aps_delayed_init() Further down the boot path, native_smp_cpus_done() will call the delayed MTRR initialization for the AP's (mtrr_aps_init()) with mtrr_aps_delayed_init not set. This resulted in the boot processor reprogramming its MTRR's to the values seen during the start of the OS boot. While this is not needed ideally, this shouldn't have caused any side-effects. This is because the reprogramming of MTRR's (set_mtrr_state() that gets called via set_mtrr()) will check if the live register contents are different from what is being asked to write and will do the actual write only if they are different. BP's mtrr state is read during the start of the OS boot and typically nothing would have changed when we ask to reprogram it on BP again because of the above scenario on an UP platform. So on a normal UP platform no reprogramming of BP MTRR MSR's happens and all is well. However, on this platform, bios seems to be modifying the fixed mtrr range registers between the start of OS boot and when we double check the live registers for reprogramming BP MTRR registers. And as the live registers are modified, we end up reprogramming the MTRR's to the state seen during the start of the OS boot. During ACPI initialization, something in the bios (probably smi handler?) don't like this fact and results in a hard lockup. We didn't see this boot hang issue on this platform before the commit d0af9eed, because only the AP's (if any) will program its MTRR's to the value that BP had at the start of the OS boot. Fix this issue by checking mtrr_aps_delayed_init before continuing further in the mtrr_aps_init(). Now, only AP's (if any) will program its MTRR's to the BP values during boot. Addresses https://bugzilla.novell.com/show_bug.cgi?id=623393 [ By the way, this behavior of the bios modifying MTRR's after the start of the OS boot is not common and the kernel is not prepared to handle this situation well. Irrespective of this issue, during suspend/resume, linux kernel will try to reprogram the BP's MTRR values to the values seen during the start of the OS boot. So suspend/resume might be already broken on this platform for all linux kernel versions. ] Reported-and-bisected-by:
Markus Kohn <jabber@gmx.org> Tested-by:
Markus Kohn <jabber@gmx.org> Signed-off-by:
Suresh Siddha <suresh.b.siddha@intel.com> Cc: Thomas Renninger <trenn@novell.com> Cc: Rafael Wysocki <rjw@novell.com> Cc: Venkatesh Pallipadi <venki@google.com> Cc: stable@kernel.org # [v2.6.32+] LKML-Reference: <1296694975.4418.402.camel@sbsiddha-MOBL3.sc.intel.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
- 02 Feb, 2011 3 commits
-
-
Matthieu CASTET authored
Xen want page table pages read only. But the initial page table (from head_*.S) live in .data or .bss. That was broken by 64edc8ed . There is absolutely no reason to force these pages RW after they have already been marked RO. Signed-off-by:
Matthieu CASTET <castet.matthieu@free.fr> Tested-by:
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Signed-off-by:
H. Peter Anvin <hpa@linux.intel.com>
-
Ming Lei authored
Panda uses both twl6030 otg phy(vbus, id) and internal phy(data lines, DP/DM), so removes usb_nop_xceiv_register to make twl6030 otg driver working since current otg code only supports one global transceiver. Otherwise, musb doesn't work without the remove. Reviewd-by:
Felipe Balbi <balbi@ti.com> Signed-off-by:
Ming Lei <tom.leiming@gmail.com> Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
Marek Vasut authored
This patch fixes bug introduced in revision: f8e9e984 omap1: DMA: move LCD related code from plat-omap to mach-omap1 The code introduced by this patch didn't consider any other CPUs but OMAP1510, which rendered OMAP310 -- which has the same LCD controller -- non-working. Use cpu_is_omap15xx() instead of cpu_is_omap1510() to squash this issue. Bug found on Palm Zire 71 hardware. Signed-off-by:
Marek Vasut <marek.vasut@gmail.com> Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
- 01 Feb, 2011 6 commits
-
-
Thomas Weber authored
This patch fixes a wrongly used lcd enable pin. The Devkit8000 uses twl4030_ledA configured as output gpio only for the lcd enable line. twl4030_gpio.1 is used through the generic gpio functions while ledA is used via low level twl4030 calls. This patch removes the low level calls and use the generic gpio functions for initialization and use of ledA. This patch also fixes a bug where the lcd would not power down when blanking. Further this patch fixes an indentation issue. The comment line uses eight whitespace and is replaced with a hard tab. gpio_request + gpio_direction_output are replaced with gpio_request_one. The return value of gpio_request_one is used to set the value of the gpio to -EINVAL when unsuccessful, so that gpio_is_valid can detect the unsuccessful request. But already successful requested gpios are not freed. Reported-by:
Daniel Morsing <daniel.morsing@gmail.com> Signed-off-by:
Thomas Weber <weber@corscience.de> Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
Huang Weiyi authored
Remove duplicated #include('s) in arch/arm/mach-omap1/time.c Signed-off-by:
Huang Weiyi <weiyi.huang@gmail.com> Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
Aaro Koskinen authored
Free allocated memory on error exit. Signed-off-by:
Aaro Koskinen <aaro.koskinen@nokia.com> Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
Aaro Koskinen authored
With the commit 75790251 (regulator: Factor out voltage set operation into a separate function) fixed voltage regulator setup will fail if there are voltage constraints defined. This made MMC unusable on this board. Fix by just deleting those redundant constraints. Signed-off-by:
Aaro Koskinen <aaro.koskinen@nokia.com> Reviewed-by:
Jarkko Nikula <jhnikula@gmail.com> [tony@atomide.com: updated comments] Signed-off-by:
Tony Lindgren <tony@atomide.com>
-
Uwe Kleine-König authored
Commit b2878fa4 (ARM: mx28: update clock and device name for dual fec support) added only the new lookups without removing the old one. Cc: Shawn Guo <shawn.guo@freescale.com> Signed-off-by:
Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by:
Shawn Guo <shawn.guo@freescale.com> Signed-off-by:
Sascha Hauer <s.hauer@pengutronix.de>
-
Shawn Guo authored
Signed-off-by:
Shawn Guo <shawn.guo@freescale.com> Signed-off-by:
Sascha Hauer <s.hauer@pengutronix.de>
-
- 31 Jan, 2011 1 commit
-
-
Russell King authored
Allow non-ARM SMP processors to use the SMP_ON_UP feature. CPUs supporting SMP must have the new CPU ID format, so check for this first. Then check for ARM11MPCore, which fails the MPIDR check. Lastly check the MPIDR reports multiprocessing extensions and that the CPU is part of a multiprocessing system. Cc: <stable@kernel.org> Reported-and-Tested-by:
Stephen Boyd <sboyd@codeaurora.org> Acked-by:
Will Deacon <will.deacon@arm.com> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-