Commit Graph

159262 Commits

Author SHA1 Message Date
Uwe Kleine-König
a85f67d5e7 [ARM] 5613/1: implement CALLER_ADDRESSx
From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

As __builtin_return_address(n) doesn't work for ARM with n > 0, the
kernel needs its own implementation.

This fixes many warnings saying:

	warning: unsupported argument to '__builtin_return_address'

The new methods and walk_stackframe must not be instrumented because
CALLER_ADDRESSx is used in the various tracers and tracing the tracer is
a bad idea.

What's currently missing is an implementation using unwind tables.  This
is not fatal though, it's just that the tracers don't get enough
information to be really useful.

Note that if both ARM_UNWIND and FRAME_POINTER are enabled,
walk_stackframe uses unwind information.  So in this case the same
implementation is used as when FRAME_POINTER is disabled.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-01-21 22:15:08 -06:00
Phil Carmody
6f7f785421 ARM: 6341/1: unwind - optimise linked-list searches for modules
With several sections per module, and dozens of modules, the
searches down the linked list of sections would dominate the
lookup time, dwarfing any savings from the binary search
within the section.

A simple move-to-front optimisation exploits the commonality
of the code paths taken, and in simple real-world tests reduces
the number of steps in the search to barely more than 1.

Signed-off-by: Phil Carmody <ext-phil.2.carmody@nokia.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-01-21 22:11:31 -06:00
Alexander Shishkin
c3346b9078 ARM: 6140/1: silence a bogus sparse warning in unwind.c
The check for compiler which is supposed to miscompile unwind tables
clearly has nothing to do with sparse (which does not define necessary
macros anyway), so simply silence it.

Signed-off-by: Alexander Shishkin <virtuoso@slind.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-01-21 22:11:07 -06:00
Claudio Scordino
317bf667ed ARM: 5776/1: Check compiler version and EABI support when adding ARM unwind support.
ARM unwind is known to compile only with EABI and not-buggy compilers.
The problem is not the unwinding information but the -fno-frame-pointer
option added as a result of !CONFIG_FRAME_POINTER.  Now we check the
compiler and raise a #warning in case of wrong compiler.

Signed-off-by: Claudio Scordino <claudio@evidence.eu.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-01-21 22:10:01 -06:00
Matt Sealey
e7750c729d sched: update load count only once per cpu in 10 tick update window (v2 -> v3) 2011-01-21 22:04:22 -06:00
Matt Sealey
87576c788f IPU updates from latest FSL BSP, seemingly all related to burst sizes and so on. New pixel format. 2011-01-21 21:43:30 -06:00
Matt Sealey
bf190a0707 siihdmi: remove sii9022 from Kconfig for video for Smartbook too 2011-01-21 15:57:14 -06:00
Matt Sealey
772aec7ed7 efikamx: remove redundant crap from display platform file 2011-01-21 15:40:57 -06:00
Matt Sealey
310992eb26 bump to .14 for PD release 2011-01-21 15:23:06 -06:00
Matt Sealey
bd9d5d59ab siihdmi: native panel resolution and mode culling support
* Will now parse the mode list to:
 - Remove pixel clocks above 133MHz which the MX51 IPU DI cannot display (PLL limitation)
 - Remove modes from mode list that are interlaced (cannot display)
 - Find and save the best (native) panel mode and try and match a mode as close as possible instead of
   arbitrarily trying 1280x720 (unless EDID failed for some reason)
* Reduce bus timeout default to 10ms as it always takes less (<4ms or so, but we want to handle slow monitors)
* Comment out instrumentation until it returns reasonable values (jiffies aren't accurate enough)
* Some variable renames for clearer code
2011-01-21 15:19:15 -06:00
Matt Sealey
9f773d15cf dvfs-per: fix references to pixel clocks 2011-01-21 15:17:55 -06:00
Matt Sealey
4bfeea650d siihdmi: fix edid reference, use usecs for instrumentation 2011-01-20 12:57:01 -06:00
Saleem Abdulrasool
26b05ab66a siihdmi: inline siihdmi_detect_sink
The framebuffer routines also work with the cea861 data.  Move the edid reading
into the function itself, which avoids us having to read the EDID data multiple
times and allows us to pass the full EDID data to the framebuffer routines.

We always have to read the first block to determine the actual length of the
EDID data.  In order to keep the reading logic the same all the time, we simply
re-read the EDID data always (even if there are no extension blocks).  This
hopefully will help keep timing issues similar across all devices.
2011-01-20 12:03:04 -06:00
Matt Sealey
9660c7cc1b Merge branch 'efikasb-10.08.00' of gitorious.org:efikamx/linux-kernel into efikasb-10.08.00 2011-01-20 11:04:13 -06:00
Matt Sealey
8d61b989fb Some backports from FSL tree: lost the ENGR numbers but in summary:
* fix bus frequency driver check for frequency (> instead of !=)
* fix VPU lockup due to misassigning a clock
* stop dvfs before reboots (otherwise it might not reboot)
* small cleanups in DVFS code for frequency changing and added spinlock
2011-01-20 10:23:28 -06:00
Saleem Abdulrasool
4e355880b6 siihdmi: fix up cea861 header parsing
The data block collection can be arbitrarily ordered.  We need to iterate over
all the blocks and check them.
2011-01-19 20:44:57 -08:00
Richard Zhao
62cc8b2320 ENGR00135971 GPU: move clk_enable/disable out of timer handler
For timer based power autogating, we have to move clk_enable/disable out of
timer handler, because they become may sleep.

Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
2011-01-18 09:37:44 -06:00
Jie Zhou
95ee853082 ENGR00134150 GPU: destroy device in workqueue for error interrupts
If GPU error interrupt detected, related device will be destroyed.
In the destory function, device_idle and mutex_lock may cause sleep,
which may cause kernel crash, so delay the device destroy to the
workqueue to avoid this.

Signed-off-by: Jie Zhou <b30303@freescale.com>
2011-01-18 09:37:34 -06:00
Matt Sealey
c8e1a1fd2c config: re-enable DVFS-PER 2011-01-17 14:28:54 -06:00
Matt Sealey
2f3c0a4225 mtl017: fix mode data for AUO panel in SB, upper margin 24 -> 21 2011-01-17 10:36:13 -06:00
Saleem Abdulrasool
25054f8e22 siihdmi: various cleanups
Cleanup the siihdmi header (which really is pointless to split out...), redefine
the fields for the sii info frame packets, and restructure sizes to be in terms
of registers.
2011-01-16 16:41:45 -08:00
Saleem Abdulrasool
0f7c600578 siihdmi: fixup tmds_state handling
tmds_state is really a boolean, so rename it to tmds_enabled.  Furthermore, use
boolean values to interact with the boolean type.
2011-01-16 14:04:25 -08:00
Saleem Abdulrasool
627ffc6e91 siihdmi: simplify resolution setting
The allocations are no longer done in the info frame setting, DVI can transmit
the info frames, and the cost is simply the i2c writes.  This is an infrequent
operation, so just absorb the cost regardless of the connection type.
2011-01-16 14:02:00 -08:00
Saleem Abdulrasool
b9b3689853 cea861: improve CEA EDID extension block definition
Improve the CEA861 EDID block definition so that we can use it ot properly
identify a HDMI sink.
2011-01-16 13:57:57 -08:00
Saleem Abdulrasool
b8276b737b edid: improve edid parsing
Use a proper edid structure definition rather than indexing into a data blob.
This also adds additional helper functions to work with the returned edid data.

There is much room for further improvements still.  We should simply read the
first block, then use that to actually determine the number of blocks we need to
read from the device.  We cant simply read all the potential blocks as that can
be up to 32K of data.

Once we are reading all the EDID extensions, we should iterate over the blocks
to find the CEA block rather than assuming that the device is sending the CEA
block as the first block (especially given that the VESA spec calls for block 1
to be an extension map if there are more than 1 block present).
2011-01-16 13:41:26 -08:00
Saleem Abdulrasool
749bfcef01 make bus_timeout a module parameter
bus_timeout depends somewhat on the output device for certain operations.  As
such, it can be useful to actually change the value at runtime.  To that end,
make the value a module parameter.

Bonus whitespace cleanups and centralises the value to a single location.
2011-01-15 15:22:01 -08:00
Saleem Abdulrasool
6f1fcd9297 refactor info frame management
info frame checksumming is defined by the CEA861-E standard, and is not specific
to SII9xxx, so move that into the CEA861 header.

Don't bother allocating the info frame structures off the heap.  That causes
unnecessary fragmentation and complexity.  Allocate them off the stack as they
are small enough.  This also helps keep everything simple.

As a bonus, fixed up the SII HDMI structures and the CEA861 InfoFrame structures
in the process as well.  Also clean up the magic number in the AVI InfoFrame
assertion.
2011-01-15 14:43:51 -08:00
Saleem Abdulrasool
b1a5944cac cleanup unused variable warning 2011-01-15 09:57:12 -08:00
Saleem Abdulrasool
47d6ea7017 fix irq leak 2011-01-15 09:55:22 -08:00
Saleem Abdulrasool
327f785563 avoid unnecessary string allocation 2011-01-15 09:29:15 -08:00
Saleem Abdulrasool
6c9f4fe62f move edid definitions into an external header 2011-01-15 09:29:14 -08:00
Saleem Abdulrasool
f5fd774dae some whitespace fixes 2011-01-15 09:29:14 -08:00
Matt Sealey
25033f1ff4 siihdmi: instrument the i2c timeouts so that we can reduce the timeout values. We need to pull down some of the 100ms ones more importantly but this is a good start on working out how fast your monitor responds. 2011-01-15 11:09:14 -06:00
Matt Sealey
450483c85e siihdmi: make hotplugging and interrupt usage a configuration option, and turn it off while it's broken 2011-01-14 21:07:12 -06:00
Matt Sealey
40b3a1aa6f siihdmi: embed delayed_work into the structure instead of trying to allocate it
also make kmalloc/memset into kzalloc in probe
2011-01-14 14:18:18 -06:00
Matt Sealey
1daf20abcc siihdmi: improve irq handler, edge trigger it. change the way the workqueue works. retries->timeouts. general cleanliness updates. 2011-01-14 12:16:07 -06:00
Matt Sealey
242f37fea5 siihdmi: disable irq handler as it is blocking boot now that the interrupt is it's own and it does not clear the SII9022 2011-01-13 17:39:19 -06:00
Matt Sealey
40b9ebc8a6 Added missing include mach/irqs.h 2011-01-13 17:15:07 -06:00
Matt Sealey
2b550492ee Correct hdmi irq value (TO_IRQ not TO_GPIO). I owe Michal Schultz a beer. 2011-01-13 16:59:35 -06:00
Matt Sealey
f6b065ff7d ARM: VFP: Fix vfp_put_double() for d16-d31
vfp_put_double() takes the double value in r0,r1 not r1,r2.

Reported-by: Tarun Kanti DebBarma <tarun.kanti@ti.com>
Cc: <stable@kernel.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-01-12 21:14:14 -06:00
Matt Sealey
40d4738110 ata: cleanup init and exit for Smartbook to unify the code 2011-01-11 20:35:29 -06:00
Matt Sealey
fb6e89f9ac config: move to new hdmi driver 2011-01-10 21:17:37 -06:00
Matt Sealey
b46c2bb023 naive attempt at tuning for cortex-a8 2011-01-10 21:14:50 -06:00
Matt Sealey
1849719eec new year, new configs
put pata_fsl and mx_sdhci back in the kernel because module probing is a bitch
add dual fifo for audio
2011-01-10 20:45:57 -06:00
Matt Sealey
35b23a2011 platforms -> smarttop for this kernel version, it'll merge back later 2011-01-10 20:41:34 -06:00
Matt Sealey
afa07323c3 pata_platform: set up ATA before registering the device 2010-12-30 11:51:30 -06:00
Matt Sealey
db772e6a6d battery: SBS gives times in minutes, power_supply class specifies seconds. Multiple values by 60. 2010-12-23 11:42:34 -06:00
Matt Sealey
e333b4c99b pata_fsl: Don't disable "regulators" that are in fact NULL pointers. 2010-12-22 20:06:15 -06:00
Matt Sealey
0e40d58807 pata_platform: fix platform resource values for ATA SFF standard registers (maybe?) 2010-12-22 02:45:20 -06:00
Matt Sealey
3c0c41c42a spi_imx: free gpio for chipselects before registering platform driver or it will fail
(cherry picked from commit 7909dd00e5ef8f6dd16d736bf43b80ad3a1f5fde)
2010-12-22 02:32:52 -06:00