Commit Graph

69412 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
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
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
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
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
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
c883f26bb8 siihdmi: add a 10ms pause before setting resolution 2010-12-22 02:30:18 -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
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
Robert P. J. Day
954ac1046f Staging: usbip: Fix typo "Contoroller".
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-18 14:17:27 -06:00
Shan Wei
25672dfd6f Staging: usb-ip: vhci_hdc:Fix the returned error value
Compared with other drivers, the "ret" should be nagative and
returned. But in vhci_hdc, it always return 0;

I dont't use the driver, and I'm not familiar with the code.
Hope the patch is helpful.

Signed-off-by: Shan Wei <shanwei@cn.fujitsu.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-18 14:17:12 -06:00
Brian G. Merrell
e2db8f3dcc Staging: USB-IP code cleanup
This includes fixes for all of the legit checkpatch.pl errors and
warnings.  I have also included several of the suggestions from the
linux-kernel mailing list when the USB-IP code was first added.

Signed-off-by: Brian G. Merrell <bgmerrell@novell.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-18 14:14:52 -06:00
Matt Sealey
f6ecf7665b drag mxc_v4l2_output video overlay code into the modern world (BSP 10.11.01)
drag mxc_ipuv3_fb with it (remove final efikamx specific stuff)
update some IPU stuff and ioctls for it all to interoperate

notes:
	that line_length bug is still there, I really can't find why it's 0...
	doesn't register because the platform_device isn't in a/a/p-mxc/devices.?
2010-12-18 01:09:45 -06:00
Matt Sealey
f63b8eb795 Bring IPU up to latest BSP, including these fixes:
ENGR00133954 ipuv3: remove FB_SYNC_EXT flag
ENGR00133034 ipuv3: fix black flash issue during high resolution video playback
ENGR00134076 ipuv3: should not set burst size again
ENGR00133345 IPUv3 VDI:Support bottom field first setting
ENGR00131660 ipuv3: left stripe output column should be set to zero

This actually fixes the clock sync problem with the AOC HDMI monitor we have (perfectly
working display but "input not support" floating around). Happily, the boot splash
actually works, too (previously it would not work until the second set of the display
when GDM booted). Hopefully IPU support is nice and stable now.
2010-12-14 00:45:28 -06:00
Sammy He
bbaaecc647 ENGR00132971 Workaround for imx5x M4IF burst len errata for armv7 neon
Workaround for imx5x M4IF burst len errata when armv7 neon enabled, use
pgprot_writecombine instead of pgprot_noncached, to avoid burst len > 8.

Signed-off-by: Sammy He <r62914@freescale.com>
2010-12-13 14:01:20 -06:00
Zhang Jiejing
850d7f76ce ENGR00133590 UART: let user control HW flow control
HW flow control should be enable/disable by userspace.
It can be set by tty option: options.c_cflag of  CRTSCTS
bit.

This bug is found by testing UART BT AR3001 chip,
this chip will wake up the chip by set RTS to high,
it needs frist disable HW flow control, set RTS,
then disable HW flow control.

Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
2010-12-13 13:58:29 -06:00
Matt Sealey
6942fd4666 ENGR00133681 VPU:Fix kernel dump when VPU doesn't use IRAM
If VPU doesn't use IRAM, there will be a kernel dump when
we enter VPU driver probe function.
This issue is caused by allocating IRAM with zero buffer
size.

Signed-off-by: Liu Ying <b17645@freescale.com>
2010-12-13 12:14:16 -06:00
Matt Sealey
9fb3a4d079 ENGR00132543 v4l2 output: fill black in streamoff
Fill black data in streamoff, otherwise the last frame will keep in fb.

Signed-off-by: Jason Chen <b02280@freescale.com>
2010-12-13 09:57:03 -06:00
Matt Sealey
6f660227c7 siihdmi: add hdmi hotplug event handler (only registers the event, doesn't do anything yet) 2010-12-13 09:11:52 -06:00
Matt Sealey
9f8576bec1 experimental: more generic sii hdmi driver 2010-12-11 15:46:40 -06:00
Saleem Abdulrasool
23ef239303 remove unnecessary magic number usage 2010-12-09 22:02:39 -08:00
Matt Sealey
288a3a32bd sii9022: rename notifier block structure item from "fb" to "nb" 2010-12-07 06:33:41 -06:00
Matt Sealey
c282fb0194 spi_imx: clock hack 2010-12-06 00:20:38 -06:00
Matt Sealey
9430ce486b framebuffer: Remove pixel clock setting hack 2010-12-05 20:09:24 -06:00
Matt Sealey
27c3096d91 sii9022: Add a tiny delay to the setup and mode change in the hope we avoid IPU_INT_STAT errors 2010-12-05 20:06:52 -06:00
Jason Chen
d74111ac5b ENGR00127358 ipuv3: make display data signal negative during blanking period
make display data signal negative during blanking period.

Signed-off-by: Jason Chen <b02280@freescale.com>
2010-12-03 10:42:46 -06:00
Jason Chen
1b4a64e634 ENGR00127332 ipuv3: change the disalbe dp-dc timming
disable dp-dc in the display flow end irq handler, otherwise,
ipu may get NFB4EOF error for next fb enabling under big resolution(like 1080p).

Signed-off-by: Jason Chen <b02280@freescale.com>
2010-12-03 10:42:15 -06:00
Matt Sealey
816d9d06f2 Remove custom clock setting code as FSL fixed that bug in 10.09.00 2010-12-03 10:41:13 -06:00