summaryrefslogtreecommitdiff
path: root/drivers/video/mxc
AgeCommit message (Collapse)Author
2012-03-27ENGR00178118-1 fix some build warnings when using GCC 4.6.2Jason Liu
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>
2012-03-27ENGR00178031 IPUv3 FB:Fix a typo in a kernel logLiu Ying
This patch fixes a typo in a kernel log. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
2012-03-23ENGR00177737-1 change the drv name to sii902x_hdmiHake Huang
so that system can use 2 type of HDMI device driver sii902x and on chip one Signed-off-by: Hake Huang <b20222@freescale.com>
2012-03-14ENGR00174923 - EPDC fb: Stress Test Failure FixedDanny Nold
- 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>
2012-03-09ENGR00176504 - EPDC fb: Reduce number of PxP output buffers to 2Danny Nold
- 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>
2012-03-07ENGR00175446 ldb: avoid NULL pointer when ldb driver is probed but not inited.Wayne Zou
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>
2012-03-06ENGR00176159 video: ipuv3-fb: change to timeout semaphore to wait on irq.Zhang Jiejing
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>
2012-03-01ENGR00175261 - EPDC fb: Remove warning messages from EPDC initDanny Nold
- 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>
2012-02-23ENGR00175222-2 IPUv3 fb:Check mem resource start addressLiu Ying
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)
2012-02-20ENGR00174634 MIPI DSI: Add MIPI LCD ID detect and disable clock when no panel.Wayne Zou
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>
2012-02-15ENGR00174106-3 - EPDC fb: Support EPDC v2.0Danny Nold
- 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>
2012-02-13ENGR00174243 MIPI_DSI: mipi dsi panel enable should be after IPU initWayne Zou
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>
2012-02-08ENGR00172342-2 EDID parse audio data blocksAlan Tull
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>
2012-02-08ENGR00171353 MIPI_DSI: mipi display blank and unblank fail fixedWayne Zou
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>
2012-02-08ENGR00173962 Added HDMI enable functionSandor Yu
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>
2012-02-07ENGR00173869-9: i.mx6dl: add the misc drivers supportJason Liu
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>
2012-02-01ENGR00171987 ipuv3 fb: add error handler for mxcfb_blankJason Chen
add error handler for mxcfb_blank. Signed-off-by: Jason Chen <b02280@freescale.com> (cherry picked from commit 1999793303187b4aa9ccbdfc53f9a4c6ab59e749)
2012-01-31ENGR00171746 LVDS: Disable channel mode to enter low power when suspendWayne Zou
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>
2012-01-09ENGR00169872-2 rework hdmi initialization and hotplug sequenceAlan Tull
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>
2012-01-09ENGR00170168-1 ipuv3 fb: add non FB_VMODE_YWRAP supportJason Chen
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>
2012-01-09ENGR00170145-2 ipuv3 fb: reserve overlay fb buffer with valid resourceXinyu Chen
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>
2012-01-09mxcfb: add BACKLIGHT_RAW type for kernel upgradeWayne Zou
Signed-off-by: Wayne Zou <b36644@freescale.com>
2012-01-09ENGR00169657 mxc_edid: no aspect vmode setting for detailed timing blockJason Chen
Add aspect ratio setting into vmode for detailed timing block. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00163669-3 mipi_dsi: Add blank/unblank support for mipi dsi displayWayne Zou
mipi_dsi: Add blank/unblank support for mipi dsi display Signed-off-by: Wayne Zou <b36644@freescale.com>
2012-01-09ENGR00163669-1 mxc fb: remove FB_EVENT_PREMODE_CHANGE for mxc fb driversWayne Zou
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>
2012-01-09ENGR00169509-2 ipuv3 fb: change wait for vsync ioctl irq from eof to nfackJason Chen
change wait for vsync ioctl irq from eof to nfack Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00162665 ipuv3 fb: fix non-interleave format wrong color issueJason Chen
fix fb offset base address under non-interleave format. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00162663 ipuv3 fb: add vertical flip supportJason Chen
support vertical flip for fb. just set it by: echo 1 > /sys/class/graphics/fb0/rotate Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00162475 ipuv3 fb: fix camera preview failureYuxi Sun
fix camera preview failure when using double buffer mode for frame buffer Signed-off-by: Yuxi Sun <b36102@freescale.com>
2012-01-09ENGR00162358 ipuv3 fb: only check pos when fb is unblankJason Chen
only check pos when fb is unblank Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00161948 mxc v4l2 output: fix case of input crop with xoffsetJason Chen
run test like: /unit_tests//mxc_v4l2_output.out -iw 1280 -ih 720 -cr 1024 700 40 0 -ow 1024 -oh 700 /unit_tests/720p.yuv Under IPU IC bypass mode, the output color is not correct. And sometimes come out tearing issue. Fix them by modify fb driver adding xpanstep support and set vb->state to DONE after it finish show. When previous videobuf finish show and next videobuf ready to show, set VIDEOBUF_DONE state to avoid tearing issue, which make sure showing buffer will not be dequeue to write new data. It also bring side-effect that the last buffer can not be dequeue correctly, app need take care about it. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00143921-1 - EPDC/MAX17135: Add controls for V3P3 regulatorDanny Nold
- Added V3P3 regulator to max17135 - Added calls to enable/disable V3P3 regulator from EPDC driver - Improved Kconfig detail for max17135 MFD and HWMON entries Signed-off-by: Danny Nold <dannynold@freescale.com>
2012-01-09ENGR00161757 imx: add i2c depends of some driversJason Chen
add i2c depends for mxc edid/dvi/hdmi driver. add i2c depends for codec soc sgtl5000 and cs42888. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00161526 mxc v4l2 output: 720p ic bypass output may failed in blockJason Chen
Repeat play with below cmdline: /unit_tests/mxc_v4l2_output.out -iw 1280 -ih 720 -ow 1280 -oh 720 -fr 10 -l 1 /unit_tests/720p.yuv Found the ipu update offset function cause this issue, it can be work-around by setting it only when value changed. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00160878-2 mxc v4l2 output: new mxc v4l2 output driver based on videobufJason Chen
This new v4l2 output driver is based on videobuf, using dma contig alloc method. It creates video dev node for each display framebuffer begin from /dev/video16 by default. If need post-processing, this driver will do it by ipu pp driver which support: - resizing - CSC - rotate - deinterlacing If no need post-processing, the IPU IC will be bypassed as old driver, the buf will be set to fb buffer directly by crack fb smem_start. The user should do setting before streamon like below: 1. set output crop 2. set ctrl like rotate/vflip/hflip/deinterlacing motion 3. set fmt 4. reqbuf The new features compare to old driver: - support multi-instance - support user point buffer - runtime suspend/resume For suspend/resume, still has chance to meet issue on mx6q, will fix later. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00159981-2 MIPI DSI: Add MIPI DSI driver and support TRULY WVGA LCD panelWayne Zou
MIPI DSI: Add MIPI DSI driver and support for TRULY WVGA LCD panel Signed-off-by: Wayne Zou <b36644@freescale.com>
2012-01-09ENGR00156420 - EPDC/PxP: Add support for color mapDanny Nold
- Add support for 8-bit grayscale colormaps to be used during EPDC update processing - Add support in PxP for programming of colormaps Signed-off-by: Danny Nold <dannynold@freescale.com>
2012-01-09ENGR00156319-2 mxc edid: use vmode as aspect rate flagJason Chen
Use vmode as aspect rate flag. which is more easier to use. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00156300 - EPDC fb: Move ISR code to work Q & replace spinlocks with mutexesDanny Nold
- Move the majority of code from the IRQ handler routine into a workqueue routine. This should improve system interrupt latency. - Change the spin_lock protecting EPDC queues into a mutex and change all associated spin_lock calls into mutex calls. Signed-off-by: Danny Nold <dannynold@freescale.com>
2012-01-09ENGR00154436-2 - MXC HDMI: Support complete feature setDanny Nold
- Cleaned up video mode configuration in HDMI driver - Add support for configurable ipu-to-hdmi mappings - Add hotplug support. - Adapt interrupt handling to account for sharing interrupt with HDMI audio - Remove audio configuration - Change code to only use CEA HDMI modes - Add support for AVI InfoFrame - Add aspect ratio to EDID mode data - Add rounding support to IPU pix clk setup - Add powerdown/powerup flow - Support FB notifications - Remove build warnings Signed-off-by: Danny Nold <dannynold@freescale.com>
2012-01-09ENGR00154437 mxc edid: add cea extend revision 1 and 2 supportJason Chen
Add cea extend revision 1 and 2 support. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00154431 - MXCFB_SET_WAVEFORMS ioctl brokenDanny Nold
- Fixed bug in how new waveform set is copied into EPDC driver internal copy of waveform modes. Signed-off-by: Danny Nold <dannynold@freescale.com>
2012-01-09ENGR00154108-3 mxc ldb: make ldb support two ipu in separate modeJason Chen
make ldb support two ipu in separate mode cmdline option changed: "ldb=spl0/1" -- split mode on DI0/1 "ldb=dul0/1" -- dual mode on DI0/1 "ldb=sin0/1" -- single mode on LVDS0/1 "ldb=sep0/1" -- separate mode begin from LVDS0/1 there are two LVDS channels(LVDS0 and LVDS1) which can transfer video datas, there two channels can be used as split/dual/single/separate mode. split mode means display data from DI0 or DI1 will send to both channels LVDS0+LVDS1. dual mode means display data from DI0 or DI1 will be duplicated on LVDS0 and LVDS1, it said, LVDS0 and LVDS1 has the same content. single mode means only work for DI0/DI1->LVDS0 or DI0/DI1->LVDS1. separate mode means you can make DI0/DI1->LVDS0 and DI0/DI1->LVDS1 work at the same time. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00154135 sii902x hdmi: should not init twiceJason Chen
sii902x hdmi can only support one display, so second time init function should return -EBUSY. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00154132 ipuv3 fb: add fb unblank event after set varJason Chen
1. some display dev need unblank event to power up. 2. add EOF to disp dev string to avoid overflow error. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00153578 tve-vga: set vga output gain to improve qualityJason Chen
set vga output gain to improve quality. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00153217-2 mxc_dispdrv: add sii902x hdmi driver supportJason Chen
Add sii902x display driver to mxc_dispdrv. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00153216-2 mxc_dispdrv: add dvi display driver supportJason Chen
change dvi display driver to mxc_dispdrv. Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00152359-3 sii902x hdmi: add AVI and AIF support for common changesJason Chen
1.add AVI and AIF support. 2.add edid 4-block reading support.(not test) For RGB input fmt support, pls input cmdline like: video=mxcdixfb:RGB24,1024x768M@60 For YUV input fmt support, pls input cmdline like: video=mxcdixfb:VYU444,1024x768M@60 Signed-off-by: Jason Chen <b02280@freescale.com>
2012-01-09ENGR00152845-8 mxc_dispdrv: add support for mxc_dispdrv.Jason Chen
add dispdrv support. add dispdrv sub-driver ldb/lcdif/tve support. change ipuv3 fb driver for new ipu and dispdrv framework. Signed-off-by: Jason Chen <jason.chen@freescale.com>