summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev/omap2
AgeCommit message (Collapse)AuthorFilesLines
2014-10-22OMAPDSS: HDMI: fix PLL GO bit handlingTomi Valkeinen1-2/+2
The PLL settings are committed by setting GO bit, which is then cleared by the HW when the settings have been taken into use. The current PLL code handles this wrong: instead of waiting for the bit to be cleared, it waits for the bit to be set. Usually, the bit is always set, as the CPU has just set it before. However, if the CPU takes enough time between setting the GO bit and checking it, the HW may already have cleared the bit and this leads to timeout error. Fix the wait to check the bit properly. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-10-22OMAPFB: fix releasing overlaysTomi Valkeinen1-0/+3
omapfb disables all the overlays when freeing resources, but it should also remove those overlays from overlay managers. Not doing so causes a crash if omapfb is unbound and bound, or omapfb module is removed and loaded, while keeping omapdss around. Fix this by calling unset_manager() for all overlays. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-10-22OMAPFB: fix overlay disable when freeing resources.Tomi Valkeinen1-7/+3
When omapfb is shutting down, it will disable all the overlays. However, instead of actually disabling all the overlays, it disables only all the overlays that are currently attached to framebuffers. On OMAP4+, this leaves the fourth overlay left enabled. Fix the loop so that we actually go through all the overlays. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-10-22OMAPDSS: apply: wait pending updates on manager disableTomi Valkeinen1-0/+2
We should wait for any pending updates when an overlay manager is about to be disabled, because the updates will never be finished if the manager is disabled too early. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-10-22OMAPFB: remove __exit annotationFelipe Balbi1-2/+2
If we leave __exit annotation, driver can't be unbound through sysfs. Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-10-22OMAPDSS: set suppress_bind_attrsTomi Valkeinen22-0/+22
omapdss drivers cannot handle devices being unbound while the devices are part of a connected display pipeline. Module refcounts are used to prevent unloading the modules, but one can still manually unbind the devices via sysfs, causing crash. Set suppress_bind_attrs to disable the bind/unbind support via sysfs. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-10-22OMAPFB: add missing MODULE_ALIAS()Felipe Balbi1-0/+1
without MODULE_ALIAS(), omapfb won't get loaded automatically. Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-10-20video: fbdev: omap2: omapfb: drop owner assignment from platform_driversWolfram Sang1-1/+0
A platform_driver does not need to set an owner, it will be populated by the driver core. Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2014-10-20video: fbdev: omap2: dss: drop owner assignment from platform_driversWolfram Sang10-10/+0
A platform_driver does not need to set an owner, it will be populated by the driver core. Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2014-10-20video: fbdev: omap2: displays-new: drop owner assignment from platform_driversWolfram Sang8-8/+0
A platform_driver does not need to set an owner, it will be populated by the driver core. Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2014-09-30arm, fbdev, omap2, LLVMLinux: Remove nested function from omapfbBehan Webster1-7/+7
Replace the use of nested functions where a normal function will suffice. Nested functions are not liked by upstream kernel developers in general. Their use breaks the use of clang as a compiler, and doesn't make the code any better. This code now works for both gcc and clang. Signed-off-by: Behan Webster <behanw@converseincode.com> Suggested-by: Arnd Bergmann <arnd@arndb.de> Cc: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-09-30arm, fbdev, omap2, LLVMLinux: Remove nested function from omap2 dssBehan Webster2-11/+14
Replace the use of nested functions where a normal function will suffice. Nested functions are not liked by upstream kernel developers in general. Their use breaks the use of clang as a compiler, and doesn't make the code any better. This code now works for both gcc and clang. Signed-off-by: Behan Webster <behanw@converseincode.com> Suggested-by: Arnd Bergmann <arnd@arndb.de> Cc: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-08-26OMAPDSS: DSI: use c99 initializers in structuresJulia Lawall1-2/+8
Use c99 initializers for structures. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @decl@ identifier i1,fld; type T; field list[n] fs; @@ struct i1 { fs T fld; ...}; @bad@ identifier decl.i1,i2; expression e; initializer list[decl.n] is; @@ struct i1 i2 = { is, + .fld = e - e ,...}; // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-08-09Merge tag 'fbdev-3.17' of ↵Linus Torvalds13-700/+194
git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull fbdev updates from Tomi Valkeinen: - much better HDMI infoframe support for OMAP - Cirrus Logic CLPS711X framebuffer driver - DT support for PL11x CLCD driver - various small fixes * tag 'fbdev-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (35 commits) OMAPDSS: DSI: fix depopulating dsi peripherals video: hyperv: hyperv_fb: refresh the VM screen by force on VM panic video: ARM CLCD: Fix DT-related build problems drivers: video: fbdev: atmel_lcdfb.c: Add ability to inverted backlight PWM. video: ARM CLCD: Add DT support drm/omap: Add infoframe & dvi/hdmi mode support OMAPDSS: HDMI: remove the unused code OMAPDSS: HDMI5: add support to set infoframe & HDMI mode OMAPDSS: HDMI4: add support to set infoframe & HDMI mode OMAPDSS: HDMI: add infoframe and hdmi_dvi_mode fields OMAPDSS: add hdmi ops to hdmi-connector and tpd12s015 OMAPDSS: add hdmi ops to hdmi_ops and omap_dss_driver OMAPDSS: HDMI: remove custom avi infoframe OMAPDSS: HDMI5: use common AVI infoframe support OMAPDSS: HDMI4: use common AVI infoframe support OMAPDSS: Kconfig: select HDMI OMAPDSS: HDMI: fix name conflict OMAPDSS: DISPC: clean up dispc_mgr_timings_ok OMAPDSS: DISPC: reject interlace for lcd out OMAPDSS: DISPC: fix debugfs reg dump ...
2014-08-08OMAPDSS: DSI: fix depopulating dsi peripheralsTomi Valkeinen1-8/+1
After v3.16-rc1, devices populated with of_platform_populate() should be depopulated using of_platform_depopulate(). Failure to do so prevents the devices from being populated again (e.g. when loading a module). This patch fixes the problem for the OMAP DSI driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: HDMI: remove the unused codeTomi Valkeinen2-327/+0
We no longer need the horrible driver internal videmode tables, which were used to decide if a given videomode is a HDMI or DVI mode. So remove all related code. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: HDMI5: add support to set infoframe & HDMI modeTomi Valkeinen2-56/+33
Instead of using hardcoded AVI infoframe, and a custom HDMI/DVI mode selection based in internal videomode tables, add support to set the infoframe and HDMI/DVI mode. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: HDMI4: add support to set infoframe & HDMI modeTomi Valkeinen2-74/+41
Instead of using hardcoded AVI infoframe, and a custom HDMI/DVI mode selection based in internal videomode tables, add support to set the infoframe and HDMI/DVI mode. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: HDMI: add infoframe and hdmi_dvi_mode fieldsTomi Valkeinen1-0/+2
Add infoframe and hdmi_dvi_mode fields to 'struct hdmi_config' which will be used in the following patches for OMAP4 and OMAP5 HDMI. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: add hdmi ops to hdmi-connector and tpd12s015Tomi Valkeinen2-0/+39
Add pass-through functions for set_infoframe and set_hdmi_mode to hdmi-connector and tpd12s015 drivers. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: HDMI: remove custom avi infoframeTomi Valkeinen1-90/+0
We now use the common AVI infoframe support, so the OMAP specific AVI infoframe code can be removed. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: HDMI5: use common AVI infoframe supportTomi Valkeinen1-57/+65
Instead of using OMAP specific AVI infoframe structs, use the common one from include/linux/hdmi.h. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: HDMI4: use common AVI infoframe supportTomi Valkeinen3-111/+28
Instead of using OMAP specific AVI infoframe structs, use the common one from include/linux/hdmi.h. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: Kconfig: select HDMITomi Valkeinen1-0/+1
Select HDMI support to be able to use HDMI infoframe helpers. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: HDMI: fix name conflictTomi Valkeinen1-2/+2
OMAP HDMI driver has an 'enum hdmi_audio_sample_size', which conflicts with the common include/linux/hdmi.h. Change the name of the OMAP specific enum with '_omap" postfix. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: DISPC: clean up dispc_mgr_timings_okTomi Valkeinen1-8/+10
dispc_mgr_timings_ok() is a bit confusing how it handles the return value. Change the function to just return immediately when a timing is deemed not valid, making the code much easier to follow. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: DISPC: reject interlace for lcd outTomi Valkeinen1-0/+3
OMAP2/3 does not support interlace for LCD out. OMAP4+ does, but is not supported by the driver at the moment. The driver still accepts interlaced mode for LCD out, causing broken display output. This patch makes dispc reject interlace for LCD out. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-07-04OMAPDSS: DISPC: fix debugfs reg dumpTomi Valkeinen1-3/+0
DISPC reg dump prints a few registers twice. Remove the extra prints. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-06-26video: omapdss: Fix potential null pointer dereferenceSachin Kamat1-3/+5
kmalloc can return null. Add a check to avoid potential null pointer dereference error when the pointer is accessed later. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-06-26drivers/video/fbdev : dereference without an error testHimangi Saraogi1-0/+5
After a variable is assigned the result of backlight_device_register, an error test should be performed before a dereference. A simplified version of the semantic match that finds this problem is as follows: // <smpl> @def0@ expression x; position p0; @@ x@p0 = backlight_device_register(...) @protected@ expression def0.x,E; position def0.p0; position p; statement S; @@ x@p0 ... when != x = E if (!IS_ERR(x) && ...) {<... x@p ...>} else S @unprotected@ expression def0.x,E; identifier fld; position def0.p0; position p != protected.p; @@ x@p0 ... when != x = E * x@p->fld // </smpl> Signed-off-by: Himangi Saraogi <himangi774@gmail.com> Acked-by: Julia Lawall <julia.lawall@lip6.fr> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-28OMAPDSS: move 'compatible' converter to omapdss driverTomi Valkeinen4-1/+235
Move the panel/encoder driver compatible-string converter from arch/arm/mach-omap2/display.c to omapdss driver. That is a more logical place for it, as it's really an omapdss internal hack. The code is rewritten to follow the video node graph, starting from omapdss. This removes the need to have the device compatible-string database. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-23OMAPDSS: HDMI: fix devm_ioremap_resource error checksTomi Valkeinen5-10/+10
devm_ioremap_resource returns ERR_PTR on error, not NULL. Fix the error checks in the driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-23OMAPDSS: HDMI: remove unused definesTomi Valkeinen4-11/+0
Remove some unused defines from the HDMI driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-23OMAPDSS: HDMI: cleanup WP ioremapsTomi Valkeinen1-18/+3
Commit 59b3d38a3691396783df108e6afbba30656edccb missed cleaning up the hdmi_wp.c file. Clean up hdmi_wp.c the same way as the others. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-20OMAPDSS: panel NEC-NL8048HL11 DT supportTomi Valkeinen1-1/+44
We don't have any working boards using this panel right now, and the panel driver looks odd compared to the panel specs. For example, the panel spec does not mention any QVGA pin. So, while this patch adds DT support to the driver, it's not really supported and there are not bindings documentation for the panel until someone can verify how the panel actually works. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: Erik Gilling <konkers@android.com>
2014-05-20OMAPDSS: Panel TPO-TD043MTEA1 DT supportTomi Valkeinen1-1/+41
Add DT support for panel TPO-TD043MTEA1. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: Grazvydas Ignotas <notasas@gmail.com>
2014-05-20OMAPDSS: panel sharp-ls037v7dw01 DT supportTony Lindgren1-3/+99
Add DT support for sharp-ls037v7dw01. Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-20OMAPDSS: panel-sharp-ls037v7dw01: update to use gpiodTony Lindgren1-54/+54
Using gpiod will make it easier to add device tree support for this panel in the following patches. Note that all the GPIOs for this panel are optional, any of the the GPIOs could be configured with external pulls instead of GPIOs, so let's not error out if GPIOs are not found to make the panel more generic. Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-20OMAPDSS: panel-lgphilips-lb035q02: Add DT supportTomi Valkeinen1-1/+44
Add DT support for panel-lgphilips-lb035q02. We disable the use of the backlight_gpio as it should be handled via backlight framework with DT boots. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Tested-by: Florian Vaussard <florian.vaussard@epfl.ch>
2014-05-20OMAPDSS: panel-lgphilips-lb035q02: use gpiod for enable gpioTomi Valkeinen1-14/+18
The new gpiod API supports automatic handling of active-high/active-low with DT. To make it possible to use that when booting with DT, change the driver's handling of the enable GPIO to use gpiod. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-19OMAPDSS: hdmi5_core: Fix compilation with OMAP5_DSS_HDMI_AUDIOJyri Sarha1-1/+1
Use correct variable name for base address. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-19OMAPDSS: panel-dpi: enable-gpioTomi Valkeinen1-3/+7
The enable gpio should be optional, but the driver returns an error if it doesn't get the gpio. So change the driver to accept -ENOENT error. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Tested-by: Joachim Eastwood <manabian@gmail.com>
2014-05-09OMAPDSS: Fix writes to DISPC_POL_FREQTomi Valkeinen1-7/+7
When omapdss writes to DISPC_POL_FREQ register, it always ORs the bits with the current contents of the register, never clearing the old ones, causing wrong signal polarity settings. As we write all the bits in DISPC_POL_FREQ, we don't need to care about the current contents of the register. So fix the issue by constructing new register value from scratch. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-09OMAPDSS: HDMI: cleanup ioremapsTomi Valkeinen4-55/+10
Now that all the boards using OMAP HDMI are using DT boot, we can remove the hacks for getting the ioresources with non-DT boot. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-09OMAPDSS: HDMI: Add OMAP5 HDMI supportTomi Valkeinen9-2/+2082
This adds a new driver to omapdss for OMAP5 HDMI. However, the new driver uses common HDMI files which are shared with OMAP4 HDMI driver. OMAP5 HDMI has a different HDMI core IP compared to OMAP4, but has very similar PLL and PHY IPs which can be handled with common code. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-09OMAPDSS: HDMI: PLL changes for OMAP5Archit Taneja1-2/+79
Add a features struct to differentiate between the HDMI PLLs on OMAP4 and OMAP5. The OMAP5 PLL is more sensitive when it comes to locking. We need to ensure that the DCO freq isn't too low for lower pixel clocks. Modify the PLL computation slightly to ensure the HDMI PLL locks for lower frequencies. This will be later replaced by a more complex computation which makes sure all the PLL constraints are met. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-09OMAPDSS: HDMI: PHY changes for OMAP5Archit Taneja2-2/+94
OMAP5 HDMI PHY has some differences compared to OMAP4 HDMI PHY. This patch creates a features struct which help the driver configure the PHY based on what SoC it is. Some of the features aren't currenlty used, but will come in use later. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-09OMAPDSS: HDMI: support larger register offsets for OMAP5 HDMI coreArchit Taneja1-2/+2
The HDMI core IP on OMAP5 has a wider address range for registers. The offsets for the later registers can't fit into the u16 type currently used for hdmi register read and write functions. Use u32 for offsets instead. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-09OMAPDSS: HDMI: move irq & phy pwr handlingTomi Valkeinen3-80/+71
HDMI IRQ handling was moved into hdmi_phy.c when restructuring the HDMI driver. While this worked fine, it's not correct. The HDMI IRQ handling should be either in the hdmi_wp, or in the main hdmi driver. This patch moves the handling to the main hdmi driver, as I feel it's a more appropriate choice. This move also requires changing the handling of the PHY power, as that was partly handled in the IRQ handler. The PHY power is handled via the WP module. An option would be to give HDMI PHY driver function pointers that it could use to manage the PHY power, but as the PHY power is not needed to access the PHY registers, the handling was also moved to the main HDMI driver. This could be changed later if need be. Note that there's slightly similar power issue with the PLL: the HDMI PLLs power is also handled via the WP module. For now, the PLL power handling is still done inside the PLL driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-05-09OMAPDSS: HDMI: improve MakefileTomi Valkeinen2-5/+9
We'll soon add support for OMAP5 HDMI, which uses some of the same files as OMAP4 HDMI does. This patch adds a new config entry "OMAP2_DSS_HDMI_COMMON", which both OMAP4 and OMAP5 HDMI config entries can select. OMAP2_DSS_HDMI_COMMON will cause the common HDMI files to be compiled. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>