aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/mxc
Commit message (Collapse)AuthorAge
* ENGR00323172 EPDC: there will be garbage when doing rotation unit testFancy Fang2014-07-17
| | | | | | | | Just as what the V4L2 PXP does, we should pass the drect w/h and output w/h accroding to the rotation angle. Signed-off-by: Fancy Fang <chen.fang@freescale.com> (cherry picked from commit bf95e3ee4131ce3ee78050f098704588766e8b07)
* ENGR00321817-01 HDMI: Dispaly blank after resumeSandor Yu2014-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Issue reproduce steps: 1. Boot up without HDMI cable plugin 2. Insert the HDMI cable. 3. echo mem > /sys/power/state , enter suspend, 4. resume it, System can resume from suspend but display is blank. Error log: mxc_sdc_fb fb.31: Unable to allocate framebuffer memory detected fb_set_par error, error code: -12 In mxc hdmi driver, if system bootup without hdmi cable plugin, driver will create a default modelist. In fbcon driver, array fb_display[] initialized when system bootup and save current mode pointer that point to default modelist. When hdmi cable is plugin the modelist will rebuild according edid data, but the pointer of video mode in fb_display[] is not updated. When system resume, fbcon will use the invalidate pointer to configured framebuffer, framebuffer will crash. Add function fb_new_modelist() after modelist is rebuild to fix the issue. Signed-off-by: Sandor Yu <R01008@freescale.com>
* ENGR00322272-2: video: mxc ldb: remove ldb_di_sel from pixel rate setupShawn Guo2014-07-11
| | | | | | | | | | | | | | | | | Since commit 0bec46131d88 (ENGR00318063-8: ARM: imx6q: hide buggy ldb_di_sel from clk API), the mux clock ldb_di_sel becomes unavailable from the clock tree. The LDB driver sets up its pixel clock rate with the help of ldb_di_sel knowledge, and thus causes problem. The net result is the LDB pixel clock rate slows down to 50 MHz (50285714) from the original 64 MHz (64653061) on imx6q. The patch fixes the problem by removing the ldb_di_sel knowledge from the clock configuration path and just setting the rate on div_sel[chno] clock. The bonus point is that we can use chan.vm.pixelclock directly instead of calculating the required rate we need to set on ldb_di_sel_parent. Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
* ENGR00317086-3 dcic: Add dcic driver source codeSandor Yu2014-07-03
| | | | | | | | Add dcic driver source code. Support two instance dcic1 and dcic2. Signed-off-by: Sandor Yu <R01008@freescale.com> (cherry picked from commit 5dd90299f33e93252bd1cc7a9704adb9f469fa66)
* ENGR00307848 MXC IPUv3 fb: Fix MXCFB_CSC_UPDATE ioctl()Julien Olivain2014-04-16
| | | | | | | | Add a missing 'break' in the MXCFB_CSC_UPDATE case in mxcfb_ioctl(), to prevent it to always return EINVAL (Invalid argument). Acked-by: Liu Ying <Ying.Liu@freescale.com> Signed-off-by: Julien Olivain <julien.olivain@freescale.com>
* ENGR00306875-2 video: mxc_hdmi: Set hdmi cable state a bit earilierNicolin Chen2014-04-16
| | | | | | | | | | | | | | | | | During hdmi hotplug test, there's a possibility that X-server unblanks the frame buffer while HDMI-audio just gets the signal to start playback. Then audio would get an unblanked state right before the playback and bypassed the DMA enabling code. So this issue is caused by the race between unblank and set_cable_state(). This patch sets the hdmi cable state a bit earilier so as to let audio play first. If unblank happens later, the hdmi core and hdmi audio would be robust enough to handle that case as long as it's not racing with the other parts. Acked-by: Sandor Yu <R01008@freescale.com> Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com> (cherry picked from commit 2917061c498a97e3c3b99ac616b6f3202f8a0499)
* ENGR00305369 video: mxc ldb: disable channel in setup callbackLiu Ying2014-04-16
| | | | | | | | | | In order to avoid any pixelation issue, we should disable a LVDS channel before its relevant display controlled is enabled. This patch adds logics to disable the LVDS channel in the setup() callback which is invoked before the IPUv3 display controller is disabled and re-enabled. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00305465 MXC IPUv3 fb: Fix permissions of fsl_disp_property sysfs entryJulien Olivain2014-04-16
| | | | | | | Set the correct permissions of the fsl_disp_property sysfs entry. Acked-by: Liu Ying <Ying.Liu@freescale.com> Signed-off-by: Julien Olivain <julien.olivain@freescale.com>
* ENGR00303308 hdmi:update default video mode setting required by xserverSandor Yu2014-04-16
| | | | | | | | | | | | | xserver will read default video mode in command line by sysfs node /sys/class/graphics/fb0/mode, but the sysfs node is not initialized when system bootup without hdmi cable plugin or frame buffer register in blank state. Fixed: - Remove unused previous_mode - Add default_mode, initialize in disp_init function. - Initialize fbi->mode in disp_init function and hdmi_setup function. Signed-off-by: Sandor Yu <R01008@freescale.com>
* ENGR00302472-16 video: mxc ipuv3 fb: Report registered disp drv nicelyLiu Ying2014-04-16
| | | | | | | | | The mxc ipuv3 fb driver would report any display driver name that it is trying to register. To suppress the report, this patch has the driver provide the registered display driver name after register finishes. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00302472-11 video: mxc LDB: Add FB_MXS to Kconfig dependencyLiu Ying2014-04-16
| | | | | | | Since LCDIF may drive LDB, let's add FB_MXS to LDB Kconfig dependency. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00302472-9 video: mxc disp: Drop post_init callbackLiu Ying2014-04-16
| | | | | | | Since there is no encoder driver using the post_init callback, let's drop it. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00302472-6 video: mxc: LDB driver refactorLiu Ying2014-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | This patch almost reworks the LDB driver to make the implementation simpler and clearer. The new version should support all the LDB modules embedded in imx53, imx6qdl and imx6sx. The lvds-channel subsidiary DT node is introduced to represent each LVDS channel. People may specify a channel's CRTC, working mode(dual mode or split mode), data width, data mapping, display timing and if it is a primary channel in the node. Change logs: * Use CTRC concept so that the driver may support both IPU and LCDIF as the display engines. * Add mxc dispdrv enable() callback. * Cache LDB ctrl register value at probe()/setup()/ enable() stages and finally write to the register at enable() stage. * Simplify logics for setting ctrl/bus muxing/clocks. * Use regmap to write crtl and bus muxing registers. * Remove LDB description in DT binding doc fsl_ipuv3_fb.txt. Instead, add a new one in fsl,ldb.txt. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00302472-5 video: mxc disp: Let encoder know fbi when enable/disableLiu Ying2014-04-16
| | | | | | | | | | | This patch adds framebuffer info structure to the mxc display driver enable/disable callback parameters so that the encoder drivers may know the framebuffer information. In this way, the encoder drivers which may deal with more than one framebuffer are able to figure out the one it is handling. A real example is the LDB encoder, which may deal with two standalone framebuffers at most. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00302472-4 video: mxc ipuv3 fb: Don't bail out if no DT mode strLiu Ying2014-04-16
| | | | | | | | The encoder drivers should decide if they need mode string for initialization or not. So, we don't have to provide mode string in the device tree node. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00302472-3 video: mxc: Introduce CRTC conceptLiu Ying2014-04-16
| | | | | | | | | | | As the mxc display system is getting more and more complex, various CRTCs(CRT controllers), such as IPUx DIy and LCDIFz, may drive various encoders. For example, imx6sx/imx6dl LCDIF may drive LDB while imx6dl IPU0 DI0/1 may drive LDB as well. This patch introduces CRTC concept to the display framework so that the core logic could be less IPU specific. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00299600 hdmi:yocto gui can not show to some TV on ard boardSandor Yu2014-04-16
| | | | | | | | | | | | | | | | For i.MX6 ARD board, the board not support read EDID from TV, so HDMI driver will create a default support mode list when system bootup. Because yocto xserver can not get video mode information from framebuffer now, and xserver will set default video mode XGA to framebuffer, but XGA mode is not support by hdmi. Remove XGA and SXGA from default support list. HDMI driver will find a nearest match video mode in support list. It is VGA mode. HDMI support VGA mode well. Issue is fixed. Signed-off-by: Sandor Yu <R01008@freescale.com>
* ENGR00298052-1 video: mxc: add Hannstar CABC driverLiu Ying2014-04-16
| | | | | | | | | This patch adds Hannstar CABC driver support. The CABC function turns the backlight density of a display panel automatically according to the content shown on the panel. It is controlled(enabled/disabled) by a GPIO. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00290361-2 MXC IPUv3 fb:Add check for a IDMAC errataLiu Ying2014-04-16
| | | | | | | | | | | The IPUv3 IDMAC has a bug to read 32bpp pixels from a graphics plane whose alpha component is at the most significant 8 bits. The bug only impacts on cases in which the relevant separate alpha channel is enabled. This patch adds check for the errata so that the bad cases won't be triggered. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00288972 HDMI: unmask overflow interrupter when HDMI phy power onSandor Yu2014-04-16
| | | | | | | | | Clean HDMI overflow bit need pixel clock on. HDMI phy power state is align with pixel clock, so move HDMI overflow bit mask/unmask code to hdmi phy powerdown/powerup function. Signed-off-by: Sandor Yu <R01008@freescale.com>
* ENGR00286462 mx6sl fb: fix runtime pm not work at probe timeRobby Cai2014-04-16
| | | | | | | | | | | | | | For mxsfb, the lcdif controller is enabled (with clock enabled as well) at probe time, but pm_runtime_enable() is called after its enablement, thus runtime pm function only works at next enablement. The root cause is that pm_runtime_get_sync() function need to be called after pm_runtime_enable(). This patch fixes the problem by moving the position of pm_runtime_enable() ahead. For epdc fb, runtime pm may not work at probe time if DEFAULT_PANEL_HW_INIT is turned on (off by default). Fix it for safety. Signed-off-by: Robby Cai <R63905@freescale.com>
* ENGR00283216 media: imx6sl: add runtime pm support for busfreqRobby Cai2014-04-16
| | | | | | add runtime pm implementation for eLCDIF/EPDC/PxP Signed-off-by: Robby Cai <R63905@freescale.com>
* ENGR00280689-01 i.MX6 HDMI: Remove HDCP register access from driverSandor Yu2014-04-16
| | | | | | Remove HDCP register access from HDMI driver. Signed-off-by: Sandor Yu <R01008@freescale.com>
* ENGR00279373 epdc: add GFP_KERNEL flag to make dma memory allocated from cmaRobby Cai2014-04-16
| | | | | | | | | Add GFP_KERNEL flag for dma_alloc_writecombine() and dma_alloc_coherent() to make dma memory allocated via cma. Otherwise it's from dma pool whose size is too small by default (256KB) and will cause allocation failure unless use 'coherent_pool=xxM' in cmdline. We prefer cma now. Signed-off-by: Robby Cai <R63905@freescale.com>
* ENGR00277843-02 imx6sl: Enable sii902x hdmi functionSandor Yu2014-04-16
| | | | | | | | | | | | - Add sii902x hdmi chip driver. - Sii902x initialized as I2C device. - Support resolution change by application or FB command line. - Max support resolution 1080p60. - Support read EDID from hdmi sink. - Support hdmi cable hotplug. - Support default video mode read from dts. Signed-off-by: Sandor Yu <R01008@freescale.com>
* ENGR00276832-6 epdc: move timing paramater into the driverRobby Cai2014-04-16
| | | | | | | | Although now in 3.10 there's display timing dts framework but for epdc driver there are other timing parameters besides the fb_videomode. It also makes sense to move the timing parameters in epdc driver. Signed-off-by: Robby Cai <R63905@freescale.com>
* ENGR00276832-4 epdc: port the driver to 3.10 kernelRobby Cai2014-04-16
| | | | | | | | | | | | merge the mach/epdc.h into linux/mxcfb_epdc.h drop VM_RESERVED flag as deprecated. drop VM_IO flag as it's automatically set in remap_pfn_range() use <linux/platform_data/dma-imx.h> instead of <mach/dma.h> use module_platform_driver() add binding dts document for epdc fb driver change the devname for interrupt from 'fb_dma' to 'epdc' to make it clear Signed-off-by: Robby Cai <R63905@freescale.com>
* ENGR00276224-01 MX6 HDMI CEC: Enable HDMI CEC functionSandor Yu2014-04-16
| | | | | | | - Add hdmi cec source code. - Remove dead code from hdmi driver. Signed-off-by: Sandor Yu <R01008@freescale.com>
* ENGR00276321 HDMI Audio: Set HDMI event as SDMA event2Sandor Yu2014-04-16
| | | | | | | - Remove chip revision check code. - Set HDMI event as SDMA event2 for HDMI audio. Signed-off-by: Sandor Yu <R01008@freescale.com>
* ENGR00274172-3 mxcfb: ldb: correct the ldb di clock treesLiu Ying2014-04-16
| | | | | | | | | In ldb split mode, the ldb_di[0|1]_ipu_div should be configured as clock dividers of 1/3.5, while in others ldb modes of 1/7. This patch sets the di[0|1]_div_3_5 or di[0|1]_div_7 clocks to be the parents of di[0|1]_div_sel clocks according to the ldb mode. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00275832 mxcfb: ldb: replace ioremap/iounmap with devm_ioremapLiu Ying2014-04-16
| | | | | | | This patch replaces ioremap()/iounmap() with devm_ioremap() to simplify the code. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00275483-2 mxc fb: port mipi dsi drivers from 3.0.35 to 3.10Liu Ying2014-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is a fastforward porting for mipi dsi driver and TRULY-WVGA mipi panel driver. * Add devicetree support for the mipi dsi driver. * Get mipi config clock source in the mipi dsi driver. * Change clk_enable()/clk_disable() to clk_prepare_enable()/ clk_disable_unprepare(). * Move mipi dsi driver initialization stuff to mipi_dsi_probe() from mipi_dsi_disp_init(). * Move mach/mipi_dsi.h to linux/mipi_dsi.h. * Remove __devexit_p and __devexit since 3.10 kernel doesn't support them. * Remove struct mipi_dsi_platform_data from mach/mipi_dsi.h. * Remove mach/hardware.h, mach/clock.h, linux/fsl_device.h and linux/regulator/consumer.h in the drivers. * Remove special pixel clock setting for imx6sdl since no issue is found without it. * Remove unused reset, lcd_power and backlight_power interfaces in struct mipi_dsi_info. * Remove unused regulator related entries in struct mipi_dsi_info. * Remove the IOMUX_GPR3_OFFSET macro from mipi dsi driver since the muxing is done with common regmap APIs. * Rename ipu_id to dev_id since i.MX6DL RM tells that lcdif can connect with mipi dsi. * Add mipi dsi related information in the devicetree binding documentation. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00275419-3 mxc fb: ldb: defer some init operationsLiu Ying2014-04-16
| | | | | | | | | | | This patch defers some ldb initialization operations in the post init interface so that the drive won't overwrite or damage a registered display device's setup with the same dev_id and disp_id. The deferred operations are the parent setting for ipu_dix_clk and the fb notifier client register. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00275419-2 mxc ipuv3 fb: call necessary post init interfaceLiu Ying2014-04-16
| | | | | | | | | This patch adds the post init mxc display driver function call in the .probe() function to give a chance to display encoders to defer necessary opertions after their dev_ids and disp_ids pass usage check. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00275419-1 mxc dispdrv: introduce post init interfaceLiu Ying2014-04-16
| | | | | | | | | | | This patch adds a new post init interface in the mxc display driver. It may do necessary deferred operations after a display device's dev_id and disp_id pass usage check. This is a feasible way to avoid any setup being overwitten or damaged by a late coming display device which uses the same dev_id and disp_id with a display already registered. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00274059-01 MX6 HDMI: Add fsl,hdcp propertySandor Yu2014-04-16
| | | | | | | | - Initialize hdmi driver to support hdcp according dts property fsl,hdcp. - Remove unused code. - Add fsl,hdcp property description in mxc_hdmi_video.txt Signed-off-by: Sandor Yu <R01008@freescale.com>
* ENGR00274226-02 MX6 HDMI: Add prefix "fsl" to mxc specific dts properties.Sandor Yu2014-04-16
| | | | | | | - Add prefix "fsl" to mxc specific dts properties. - imx_hdmi_type will been referenced by app move it to mxc_hdmi.h. Signed-off-by: Sandor Yu <R01008@freescale.com>
* ENGR00273848-02 iMX6Q/DL HDMI: Enable HDMI functionSandor Yu2014-04-16
| | | | | | | Add MX6Q/DL HDMI core and video driver source code. Add MXC edid data read and parse source code. Signed-off-by: Sandor Yu <R01008@freescale.com>
* ENGR00240987: video: port LDB and LCD FB display drivers from 3.5.7 kernelShawn Guo2014-04-16
This is a fast-forward porting of LDB and LCD frame buffer drivers from 3.5.7 kernel to kernel 3.10. The change set is kept as minimum as possible with only making necessary code changes, which are mostly for solving compile problems. * Remove <mach/*> inclusions * Drop __devinit and __devexit * Drop vm flag VM_RESERVED * Protect ldb_setup() with #ifndef MODULE to fix "warning: ‘ldb_setup’ defined but not used" in module build * Remove fb_prepare_logo() and fb_show_logo() calls, because it breaks module build, and penguin logo works fine without the calls in mxc_ipuv3_fb.c Signed-off-by: Shawn Guo <shawn.guo@freescale.com>