Age | Commit message (Collapse) | Author |
|
We only needs the dma buffer, don't care if it is from DMA Zone on i.mx SOC.
To fix the following bug:
mxc_ipudev_test: page allocation failure: order:13, mode:0x1
[<80042e08>] (unwind_backtrace+0x0/0xfc) from [<800b4dd8>]
(warn_alloc_failed+0x9c/0x118)
[<800b4dd8>] (warn_alloc_failed+0x9c/0x118) from [<800b5ac4>]
(__alloc_pages_nodemask+0x494/0x6ec)
[<800b5ac4>] (__alloc_pages_nodemask+0x494/0x6ec) from [<80046154>]
(__dma_alloc+0xd4/0x2fc)
[<80046154>] (__dma_alloc+0xd4/0x2fc) from [<800463a0>]
(dma_alloc_writecombine+0x24/0x2c)
[<800463a0>] (dma_alloc_writecombine+0x24/0x2c) from [<8024be34>]
(mxcfb_set_par+0x3e4/0x4c0)
[<8024be34>] (mxcfb_set_par+0x3e4/0x4c0) from [<80235f08>]
(fb_set_var+0x168/0x2a4)
[<80235f08>] (fb_set_var+0x168/0x2a4) from [<802363f8>](do_fb_ioctl+0x3b4/0x5f0)
[<802363f8>] (do_fb_ioctl+0x3b4/0x5f0) from[<800f58d0>](do_vfs_ioctl+0x80/0x5e4)
[<800f58d0>] (do_vfs_ioctl+0x80/0x5e4) from [<800f5e6c>] (sys_ioctl+0x38/0x60)
[<800f5e6c>] (sys_ioctl+0x38/0x60) from [<8003d500>] (ret_fast_syscall+0x0/0x30)
mxc_sdc_fb mxc_sdc_fb.0: Unable to allocate framebuffer memory
detected fb_set_par error, error code: -12
Signed-off-by: Wayne Zou <b36644@freescale.com>
|
|
If TV's EDID indicates that deep color is not supported, then
write color depth field of HDMI_VP_PR_CD register to zero.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
- Added clean-up for new PxP output buffer allocation scheme. Clean-up
covers cases where probe fails and where module is removed.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
This patch changes IPUv3 fb probe function logic to
unblank the primary fb only by default so that the
secondary fb using IPU DP BG channel won't be unblanked
when system boot-ups. This avoids the HDMI fb(as the
secondary fb using IPU DP BG channel) is unblanked
accidentally without plugging in HDMI cable.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 2c8188de61f84e40e26e662138af5ef4f81a0969)
|
|
fix some build warnings when using GCC 4.6.2:
drivers/cpufreq/cpufreq_interactive.c:127:6:
warning:'irq_count' may be used uninitialized in this function [-Wuninitialized]
drivers/media/video/mxc/output/mxc_vout.c:1346:5:
warning: 'ret' may be used uninitialized in this function [-Wuninitialized]
drivers/video/mxc/mxc_ipuv3_fb.c:1329:23:
warning: operation on 'mxc_fbi->cur_ipu_buf' may be undefined [-Wsequence-point]
drivers/video/mxc/mxc_ipuv3_fb.c:1376:24:
warning: operation on 'mxc_fbi->cur_ipu_buf' may be undefined [-Wsequence-point]
drivers/video/mxc/mxc_ipuv3_fb.c:1377:24:
warning: operation on 'mxc_fbi->cur_ipu_buf' may be undefined [-Wsequence-point]
Signed-off-by: Jason Liu <r64343@freescale.com>
|
|
This patch fixes a typo in a kernel log.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
hotplug_worker can't assume that the iahb_clk is enabled if the
irq_enabled flag is set.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
so that system can use 2 type of HDMI device driver sii902x and on chip one
Signed-off-by: Hake Huang <b20222@freescale.com>
|
|
Signed-off-by: Jason Chen <jason.chen@linaro.org>
|
|
- Changed workqueues to use strict ordering and one process at a time
- Changed mutex ordering in IRQ handler to avoid race condition
- Updated 64-bit logic operation to ensure proper logic
- Fixed bug in how LUT cancellation case is handled. The wrong
index was being used to clear LUT IRQ and IRQ_MASK.
- Increased flush_updates timeout to 8s, since it may take several
seconds if a long queue of updates is waiting.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
Change the vide mode from XGA to 1080P when display blank,
the system will hang.
It is cause by overflow interrupt will trigger when the video mode change,
but clean the interrupt status bit depend on pixewl clock.
In blank state the pixel clock is gating so the HDMI PHY can't work.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
- Changed from one-buffer-per-LUT (up to 16 for EPDCv1.0 and 64 for EPDCv2.0)
to using 2 static buffers for PxP output. This is facilitated by the switch
to using a single-threaded workqueue to process each update, which
guarantees that we can use just 2 buffers without clobbering concurrent
updates.
- One known limitation: This restricts the SNAPSHOT update scheme to only 2
concurrent updates. So if a user intends to use SNAPSHOT scheme, the
EPDC_MAX_NUM_BUFFERS #define should be increased based on the desired number
of allowable concurrent updates (with a corresponding penalty in static
memory allocation).
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
ldb: avoid NULL pointer when ldb driver is probed but not inited.
It can lead to kernel crash when framebuffer on LVDS panel is not inited.
Signed-off-by: Wayne Zou <b36644@freescale.com>
|
|
change to timeout semaphore to wait on irq.
use no timeout semaphore have below issues:
1. since fbmem.c will hold the console_lock() before call PAN_DISPLAY ioictl,
if have wrong happens on IPU, IRQ not come, any log printk will not ouput,
it will become like a system hang, and developer don't know what's wrong.
2. semaphore don't have timeout, here we can't know irq not come,
so hang it infintly.
3. semaphore lock and unlock in different context is a dangous operation.
To fix these issue, use timedout version to wait on irq.
But for better coding stly to align Kernel Coding Style Doc,
better use complete to wait on irq, use semaphre little ugly.
Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
|
|
- Remove screen update from probe function. This update is redundant.
The update in mxc_epdc_fb_fw_handler() will update and show the tux
logo if FB console is added, so this achieves the same effect as the
update invocation that was removed.
- Remove dmaengine_get(), because SDMA driver returns a failure when
cycling through DMA channels. Since it is not essential to register
with this call, it has been removed. dmaengine_put() also removed.
- Added hw_inialization variable to track whether HW is in process
of being initialized. In which case, we do not print an error
message when an update is received.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
This patch checks memory resource start address before
using the memory resource.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 2d16313abad65330cb03d365d307f2d0caafe955)
|
|
Added FB suspend/resume event process in HDMI driver.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
It is cause by fb driver to init HDMI PHY
when HDMI driver not register.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Origin HDMI default video mode is setting to VGA.
But the HDMI will change to the vide mode setting in bootloader
command line when the first time HDMI cable plugin.
It will cause GUI sometime can't not get correct FB video mode
when system bootup without HDMI cable plugout.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
1. Add MIPI LCD ID detection.
2. Disable MIPI clock when no MIPI LCD panel deteced.
3. Add timeout feature for register read/write to improve error handle.
Signed-off-by: Wayne Zou <b36644@freescale.com>
|
|
Don't show hdmi as an audio playback device if hdmi isn't
configured on the command line.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
- Added new register definitions for EPDCv2.0
- Added support for 64 LUTs
- Conditionalized code for EPDC versions 1.0, 2.0, and 2.1
- Support for EPDC auto-waveform selection
- Support for collision test mode
- Support for PxP bypassing
- Support for LUT cancellation
- Support for new PxP limitations
- Support for collision minimization EPDC feature
- Added workaround for collision status bug (can't clear
IRQ before reading collision status for LUTs 16-63)
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
MIPI_DSI: mipi dsi panel enable should be after IPU init,
due to ENGR00173962 change in the mxc_ipuv3_fb.c
Signed-off-by: Wayne Zou <b36644@freescale.com>
|
|
Add functionality to parse Audio Data Blocks from EDID data to
find out what modes of LPCM are suppored by the HDMI sink device.
The parsed settings are saved in the hdmi mfd. The HDMI audio driver
will check the settings when the audio stream is opened and will
then apply appropriate constraints.
If we are unable to read from the EDID, then we default to supporting
Basic Audio as defined by the HDMI specification (stereo, 16 bit,
32KHz, 44.1KHz, 48KHz PCM).
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
mipi display blank and unblank fail on HW board: MX6Q_ARM2 1G SN 0112
The host processor sends PCLK, HS and VS information to display modules
two frames before sleep-out command is sent.
Signed-off-by: Wayne Zou <b36644@freescale.com>
|
|
Whenever IPU clock change or gating, the HDMI PHY should reset or config again,
otherwise the HDMI PHY will not work.
It is the root cause for Ubuntu can't show GUI to HDMI device when bootup
and GPU application tutorial4_es20 no output to HDMI device.
Added enable function in mxcfb_set_par() to fix aboved two issue.
Added HDMI initialization check, only one HDMI instanse supported.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
This patch change is very trivial and simply just add
cpu_is_mx6dl() or using cpu_is_mx6 to replace cpu_is_mx6q
each driver owner will check it and adjust it accordingly later,
such as sdhc etc.
Signed-off-by: Jason Liu <r64343@freescale.com>
|
|
add error handler for mxcfb_blank.
Signed-off-by: Jason Chen <b02280@freescale.com>
(cherry picked from commit 1999793303187b4aa9ccbdfc53f9a4c6ab59e749)
|
|
1. During suspend, LVDS didn't enter low power status.
It needs to disable channel mode and mux control.
It can save ~8mA@3.2V.
2. Clean up the LDB route function for better readability.
3. Fix lvds clk_enable/disable bug,
clk_enable/disable should base on setting_idx variable.
Signed-off-by: Wayne Zou <b36644@freescale.com>
|
|
It cause by HDMI Blank/Unblank function not implement.
Implement the HDMI blank/unblank function.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
There are two couples register for HDMI PHY interrupt/mask:
HDMI_FC_INT2, HDMI_FC_MASK2 and HDMI_IH_FC_STAT2, HDMI_IH_MUTE_FC_STAT2.
The register can not mixed use it, otherwise the interrupt will missing
and not clean.
Mask interrupt with HDMI_IH_MUTE_FC_STAT2 so check interrupt
should use register HDMI_IH_FC_STAT2.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
System will hang at PHY PLL lock wating loop, if HDMI PHY is down.
Added timeout check for HDMI PHY PLL lock waiting.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Move HDMI csc clock setting to fucntion mxc_hdmi_enable_video_path.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Enable HDMI output CSC.
Enable HDMI under scan.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Add all non-interlaced CEA mode to default modelist
Add XGA and SXGA video mode to default modelist
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
1. create sys node for fb name, cable state, edid data
2. call kobject_uevent_env pass cable state
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
This commit intends to implement the flowchart and details
documented in the HDMI Transmitter Controller User Guide
section entitled "Programming Model".
Some input is also from the Synopsys API code.
The HDMI specification requires HDMI to set itself to VGA DVI mode
before reading the EDID.
So follow this sequence when HDMI is hotplugged:
1. Hdmi connector is plugged in, HDMI video gets an interrupt.
2. Clear out video mode list. Add only VGA DVI mode to list.
3. Request VGA DVI mode (call fb_set_var())
4. HDMI video driver will get FB_EVENT_MODE_CHANGE callback and
call mxc_hdmi_setup() to set up HDMI.
5. Read the edid and add video modes from edid. Select the video
mode that is similar to the command line default.
6. Request VGA DVI mode (call fb_set_var())
7. HDMI video driver will get FB_EVENT_MODE_CHANGE callback and
do mxc_hdmi_setup().
Also included is a workaround for an overflow condition in the HDMI.
The frame composer has an arithmetic unit that gets updated every time
we write to one of the FC registers. But sometimes, depending on the
relation between the tmds and sfr clocks, it may happen that this unit
doesn't get updated, even though the registers are holding correct
values. The workaround for this is, after completing the controller
configuration, to rewrite one of the FC registers (i.e. FC_INVIDCONF)
three or four times with the same value, and then follow it up by a SW
reset to the TMDS clock domain (MC_SWRSTZ).
We clear the overflow condition as described above every time we
change video mode. Also an overflow interupt handler will clear the
overflow condition if it happens again. This overflow condition is
expected (and not a problem) when we are in DVI (non-HDMI) mode, so
we do not worry about it in that case.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
|
|
when use pan display, the case could be:
1. a small window wrap in a big frame buffer
2. a frame switch in a serial buffers
the ipuv3 fb driver used to support case 1, and for case 2,
if the fb format is interleaved, there is no problem, but for
non-interleaved format (like I420), there will be a display bug.
Signed-off-by: Jason Chen <b02280@freescale.com>
|
|
Reserve the overlay fb triple buffer when we have a valid
resource for start and end.
Clear the GB fb buffers when we reserve memory for it.
Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
|
|
Signed-off-by: Wayne Zou <b36644@freescale.com>
|
|
Add aspect ratio setting into vmode for detailed timing block.
Signed-off-by: Jason Chen <b02280@freescale.com>
|
|
mipi_dsi: Add blank/unblank support for mipi dsi display
Signed-off-by: Wayne Zou <b36644@freescale.com>
|
|
remove FB_EVENT_PREMODE_CHANGE for mxc ldb/tve drivers
add dispdrv setup interface for ldb/tve drivers
re-structure the dispdrv framework for display devices
Signed-off-by: Wayne Zou <b36644@freescale.com>
|
|
change wait for vsync ioctl irq from eof to nfack
Signed-off-by: Jason Chen <b02280@freescale.com>
|
|
make sure the pointer is valid before accessing
Signed-off-by: Tony Lin <tony.lin@freescale.com>
|
|
make all display can control pwm backlight.
NOTE!!!:
it's not a good solution, will bring side-affect of no backlight display
device can disable pwm backlight of other display device.
Signed-off-by: Jason Chen <b02280@freescale.com>
|
|
HDMI video mode setting in command line will not work if no EDID data
reading from HDMI sink.
Creat a default modelist for HDMI video mode when no EDID data.
Then default video mode can work even if no EDID data.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
fix fb offset base address under non-interleave format.
Signed-off-by: Jason Chen <b02280@freescale.com>
|
|
support vertical flip for fb.
just set it by:
echo 1 > /sys/class/graphics/fb0/rotate
Signed-off-by: Jason Chen <b02280@freescale.com>
|
|
fix camera preview failure when using double buffer mode for frame
buffer
Signed-off-by: Yuxi Sun <b36102@freescale.com>
|