Commit Graph

159250 Commits

Author SHA1 Message Date
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
Matt Sealey
176792006f mx ata: add support for evil pata_platform while pata_fsl is not working. Note: this also does not work yet.
(cherry picked from commit 38b490f7a71d83f63fa7fc43cb16bf0f55a7b48e)
2010-12-22 02:32:44 -06:00
Matt Sealey
1d5faea6a6 siihdmi: Only initialize the DISP3 BG framebuffer to stop it from setting resolution twice on boot.
(cherry picked from commit fd46562598a3355ecbd8f568ad7b2745bfad8bfa)
2010-12-22 02:32:36 -06:00
Matt Sealey
b8d86a8db4 ata: remove redundant active/inactive functions as they do nothing
(cherry picked from commit 365802eb1356f9aa42fd4ae781315fe81247fa7f)
2010-12-22 02:32:28 -06:00
Matt Sealey
51456c12cf pata_fsl: sync changes to 10.10 BSP. Note that the new DMA scripts seem to have broken the driver before and after this change...
(cherry picked from commit f95119c0759e8c682b8277eb03bb7eb0ef67879a)
2010-12-22 02:32:21 -06:00
Matt Sealey
d93edc769d mx audio: restore headphone detect IOMUX setting (accidentally removed by clock pin change)
(cherry picked from commit 5734b93a12058164f8517eba0bc232af265de46b)
2010-12-22 02:32:11 -06:00
Matt Sealey
c883f26bb8 siihdmi: add a 10ms pause before setting resolution 2010-12-22 02:30:18 -06:00
Matt Sealey
231c914c9c audio: request gpio 1_9 before using it since iomux doesn't cover this pin as gpio 2010-12-21 17:51:37 -06:00
Matt Sealey
7c7569e082 ipu: don't look for lvds bridge clocks on systems that aren't using the lvds bridge 2010-12-21 17:47:30 -06:00
Matt Sealey
9a2cb63f4b sb: remove absolutely useless idle timer code 2010-12-21 17:12:45 -06:00
Matt Sealey
b9267874b6 overlay driver: remove unused platform device (it's in mach-mx5/devices.c now) 2010-12-21 17:08:58 -06:00
Matt Sealey
3fbb0547af hid: remove egregious idle timer stuff and clean up some whitespace 2010-12-21 17:03:59 -06:00
Matt Sealey
34626f4751 siihdmi: add CEA Data Block Collection definitions so we can parse them properly and accurately detect an HDMI sink 2010-12-21 12:43:08 -06:00