summaryrefslogtreecommitdiffstats
path: root/drivers/video
Commit message (Collapse)AuthorAgeFilesLines
* bcm2835: introduce mach-bcm283xAlexander Aring2016-01-042-5/+5
| | | | | | | | | | | | This patch changes the most part of mach-bcm2835 to mach-bcm283x. This prepares to add RPi2 support which is a bcm2836. This patch changes the Kconfig entry namens to BCM283X for drivers only. These drivers should working the same in bcm2836. While updating defconfig I added LED support/trigger option. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/imx'Sascha Hauer2015-12-081-4/+22
|\
| * video: i.MX IPUv3: Set ldb clocks correctlySascha Hauer2015-11-301-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | The clocks for the LVDS display bridge have a fixed /3.5 and a configurable /1,/2 divider in their path. The configurable divider has to be explicitly configured for single/dual channel support, so we can't rely on clock rate parent propagation here. Clear the CLK_SET_RATE_PARENT flag for the configurable divider and configure the clock explicitly in the ldb driver. Tested on a custom i.MX6 board, currently untested on i.MX53. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: pwm-backlight: Honour discrete brightness levels from dtSascha Hauer2015-11-231-7/+20
| | | | | | | | | | | | | | | | | | If probed from device tree we have an array of pwm duty cycle levels in the brightness-levels property. Although the driver parsed the property, the values have been ignored. Make use of these flags so that the driver can work for example with inverted PWMs. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | font: fbconsole: add custom font supportsDu Huanpeng2015-11-231-2/+3
| | | | | | | | | | Signed-off-by: Du Huanpeng <u74147@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | fbconsole: move font variable into struct font_descDu Huanpeng2015-11-091-19/+17
|/ | | | | | | | replace font related variables with a struct pointer, font_desc. Signed-off-by: Du Huanpeng <u74147@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/misc'Sascha Hauer2015-11-062-5/+13
|\
| * fb: alloc or free shadowfb whether fb enabled or disabledAleksey Kuleshov2015-11-061-2/+2
| | | | | | | | | | | | | | | | Resolution can't be changed anyway once fb_enable() has been called, since no corresponding fb_disable() call appears in the code. Signed-off-by: Aleksey Kuleshov <rndfax@yandex.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * fb: satisfy semantics for shadowfb's alloc/freeAleksey Kuleshov2015-11-061-2/+9
| | | | | | | | | | | | | | | | | | Console enable -> alloc shadowfb. Console disable -> free shadowfb. Otherwise, if resolution gets changed, shadowfb will not be affected. Signed-off-by: Aleksey Kuleshov <rndfax@yandex.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * fbconsole: no need to copy extra lineAleksey Kuleshov2015-11-061-1/+2
| | | | | | | | | | Signed-off-by: Aleksey Kuleshov <rndfax@yandex.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/memtest'Sascha Hauer2015-11-063-9/+6
|\ \
| * | rework remap_rangeSascha Hauer2015-11-033-9/+6
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | remap_range is for remapping regions with different cache attributes. It is implemented for ARM and PowerPC only, the other architectures only provide stubs. Currently the new cache attributes are passed in an architecture specific way and the attributes have to be retrieved by calls to mmu_get_pte_cached_flags() and mmu_get_pte_uncached_flags(). Make this simpler by providing architecture independent flags which can be directly passed to remap_range() Also provide a MAP_ARCH_DEFAULT flag and a arch_can_remap() function. The MAP_ARCH_DEFAULT defaults to whatever caching type the architecture has as default. the arch_can_remap() function returns true if the architecture can change the cache attributes, false otherwise. This allows the memtest code to better find out what it has to do. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/imx'Sascha Hauer2015-11-061-1/+1
|\ \ | |/ |/|
| * video: ipuv3: Silence VPL messageSascha Hauer2015-10-271-1/+1
| | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: simple-panel: depend on OFDEVICELucas Stach2015-10-141-1/+1
|/ | | | | | | | | Fixes: In function `simple_panel_ioctl': undefined reference to `of_get_display_timings' Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/misc'Sascha Hauer2015-10-074-5/+8
|\
| * video: imx-hdmi: Remove unused 'regmap' structureFabio Estevam2015-10-011-1/+0
| | | | | | | | | | | | | | | | As regmap is not used in Barebox we can remove this field from the imx_hdmi struct. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * introduce strerrorpSascha Hauer2015-09-231-4/+4
| | | | | | | | | | | | | | | | | | | | putting an error pointer into strerror can be a bit confusing since strerror takes a positive error code but PTR_ERR returns a negative number, so we have to do strerror(-PTR_ERR(errp)). Some places got this wrong already, so introduce a strerrorp function which directly takes an error pointer. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * video: imx-hdmi: depend on EDID supportLucas Stach2015-09-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | HDMI support is not generally useful without EDID support. Fixes: In function `imx_hdmi_ioctl': undefined reference to `edid_read_i2c' undefined reference to `edid_to_display_timings' Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * video: vpl: depend on OFTREELucas Stach2015-09-041-0/+3
| | | | | | | | | | | | | | | | | | | | VPL uses the of_graph bindings, which are only available if OFTREE support is compiled in. Also fix the drivers using VPL to depend on OFTREE. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: backlight-pwm: Add regulator supportSascha Hauer2015-10-011-0/+13
| | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: backlight-pwm: Add error messageSascha Hauer2015-10-011-1/+3
| | | | | | | | | | | | Inform the user when we can't find a pwm for the backlight driver. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: ipuv3: print error message when no modes are foundSascha Hauer2015-10-011-1/+3
| | | | | | | | | | | | | | This is a common error, so print a message to inform the user what went wrong. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: simple-panel: Add support for device tree provided nodesSascha Hauer2015-10-011-0/+8
| | | | | | | | | | | | This adds support for display timings provided from device tree. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: simple-panel: Add debug/error messagesSascha Hauer2015-10-011-5/+23
| | | | | | | | | | | | Let the driver be more informative when something goes wrong. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: ipuv3: imx-ldb: Support video modes in ldb nodeSascha Hauer2015-10-011-28/+27
| | | | | | | | | | | | | | | | | | | | | | | | We used to support video modes directly in the ldb device node, that was lost in: 5bda17e video: ipuv3: Replace ipu_output with VPL. Add this support back. Also drop duplicate vpl ioctl forwarding for several calls. With this patch modes can either be retrieved from the ldb node as originally done or from the panel remote port. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: ipuv3: imx-ldb: remove unused variableSascha Hauer2015-10-011-7/+0
| | | | | | | | | | | | endpoint is set but not used. Remove the code. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: ipuv3: Do not crash when no mode is foundSascha Hauer2015-10-011-0/+5
| | | | | | | | | | | | | | | | When something is missing in the device tree or not all necessary drivers are compiled in it may happen that no valid mode is found. Do not crash in this case but print an error message. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: imx: assert that image buffer doesn't cross a 4 MiB boundaryUwe Kleine-König2015-09-211-10/+39
|/ | | | | | | | | | | | | | The reference manual (for the i.MX25 in my case) states: This field must start at a location that enables a complete picture to be stored in a 4 Mbyte memory boundary (A [21:0]). A [31:22] has a fixed value for a picture’s image. Check this condition for user-supplied framebuffer values and enforce it for driver-allocated buffers. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/fb-imx-ipu-v3'Sascha Hauer2015-09-016-152/+273
|\
| * video: simple-panel: mode support depends on I2C and EDIDLucas Stach2015-08-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reading modes from EDID EEPROMs requires both I2C and EDID support to be available. As the simple panel driver is also useful without mode reading support, only built it in if the requirements are met. Fixes: In function `simple_panel_get_modes': simple-panel.c:88: undefined reference to `of_find_i2c_adapter_by_node' simple-panel.c:91: undefined reference to `edid_read_i2c' simple-panel.c:95: undefined reference to `edid_to_display_timings' Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * video: MTL017: depend on I2CLucas Stach2015-08-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | This driver uses I2C functions and isn't useful without them. Fixes: In function `mtl017_init': drivers/video/mtl017.c:278: undefined reference to `i2c_bus' Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * video: ipu-fb: mark internally used functions as staticLucas Stach2015-08-191-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes symbol clashes with the IPUv3 driver: In function `ipu_ch_param_write_field': drivers/video/imx-ipu-v3/ipu-common.c:103: multiple definition of `ipu_ch_param_write_field' drivers/video/imx-ipu-fb.c:359: first defined here In function `ipu_cpmem_set_format_rgb': drivers/video/imx-ipu-v3/ipu-common.c:155: multiple definition of `ipu_cpmem_set_format_rgb' drivers/video/imx-ipu-fb.c:504: first defined here Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * fb: imx-ipu-v3: Use writecombine memory for fbSascha Hauer2015-08-071-1/+1
| | | | | | | | | | | | To speed up copying to the framebuffer. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * video: ipuv3: Adjust videomode to IPU limitationsSascha Hauer2015-08-071-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | The IPU needs an upper margin >= 2. Make this sure. This is based on Linux commit: commit 6541d71082fdb91f862c92920c6530e4e0548d6f Author: Jiada Wang <jiada_wang@mentor.com> Date: Thu Dec 18 18:00:20 2014 -0800 gpu: ipu-di: Add ipu_di_adjust_videomode() Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * video: imx-hdmi: sync with kernelSascha Hauer2015-08-072-148/+235
| | | | | | | | | | | | | | | | | | This syncs the imx-hdmi driver with Linux 4.2-rc1 where it makes sense. This makes it easier to compare the driver with the kernel. This also adds hdmi_av_composer which is mandatory. Somehow the driver worked without it in lower resolutions, but now it also works for higher resolutions. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: fbcon: needs console supportLucas Stach2015-08-201-0/+1
| | | | | | | | | | | | | | | | | | Fixes: In function `register_fbconsole': drivers/video/fbconsole.c:425: undefined reference to `console_register Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | fb: fbconsole: Add missing blitsSascha Hauer2015-08-201-1/+8
| | | | | | | | | | | | | | When using offscreen rendering we need some more points where we blit the offscreen buffer to the screen. Add them. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | fb: fbconsole: print cursor after clearing the screenSascha Hauer2015-08-201-0/+1
| | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | gui: Use fb provided shadowfb for offscreen renderingSascha Hauer2015-08-201-1/+1
| | | | | | | | | | | | | | The fb core now has builtin support for offscreen rendering, use this and drop offscreen handling in the gui code. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | fb: Add shadowfb supportSascha Hauer2015-08-201-0/+47
| | | | | | | | | | | | | | | | | | | | | | | | For speeding up rendering we need shadow framebuffers. This is currently implemented in the gui functions. This does not work properly when two users (splash and fbconsole) use the same framebuffer since in this case two different shadow framebuffers will be used. This patch implements shadowfb handling in the fb core directly. With this the fb device gets a parameter 'shadowfb'. When this is true the fb core will allocate a shadow fb and provide it to the users. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | fb: return original fb_info in FBIOGET_SCREENINFOSascha Hauer2015-08-201-1/+3
| | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | video: fbconsole: do not enter when we are already in fbconsoleSascha Hauer2015-08-201-0/+6
|/ | | | | | | Make it possible to issue console messages from inside the fbconsole code without entering the fbconsole again. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/vpl'Sascha Hauer2015-08-0711-182/+778
|\
| * video: Add simple-panel supportSascha Hauer2015-07-133-0/+170
| | | | | | | | | | | | | | | | | | | | This adds support for simple panels. These are panels which don't need special handling but can have enable gpios and such. Unlike the Linux kernel implementation this one is able to understand display-timings nodes so that it's not necessary to keep a list of all known displays with their corresponding timings in barebox. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * video: ipuv3: match ipu_di_signal_cfg's clk_pol with its descriptionSascha Hauer2015-07-132-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From this Linux commit: commit 85de9d17c485c4196f74d45de2206d4802f8a3be Author: Denis Carikli <denis@eukrea.com> Date: Mon Apr 7 14:44:43 2014 +0200 imx-drm: match ipu_di_signal_cfg's clk_pol with its description. According to the datasheet, setting the di0_polarity_disp_clk field in the GENERAL di register sets the output clock polarity to active high. Signed-off-by: Denis Carikli <denis@eukrea.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * video: ipuv3: Replace ipu_output with VPLSascha Hauer2015-07-135-178/+197
| | | | | | | | | | | | | | | | The ipuv3 makes heavy use of video encoders internally to the SoC but also external encoders are common. Switch to VPL support to be able to handle these properly. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * video: ipuv3: remove unused variableSascha Hauer2015-07-132-2/+0
| | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * video: Add MTL017 LVDS encoder supportSascha Hauer2015-07-133-0/+290
| | | | | | | | | | | | | | | | The MTL017 is found on the Efika Smartbook. Not much is known about this chip, so this driver only programs a register dump which is suitable for some panels. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * video: Add Video Pipeline (VPL) supportSascha Hauer2015-07-133-0/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Complex video pipelines are modelled with the of_graph bindings in the devicetree. This patch adds a ioctl infrastructure to issue commands to the remote endpoint of a of_graph. Currently defined ioctls are prepare/unprepare, enable/disable and get_modes. This is enough to control LVDS or HDMI encoder or simple panels. A device node which contains of_graph endpoints can be registered as a VPL entity. An entity can receive ioctls via the .ioctl callback and also issue ioctls by calling vpl_ioctl. The core itself will never iterate over the entire pipeline. Instead, the different VPL entities should forward an ioctl to the next instance in the pipeline whenever necessary. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>