summaryrefslogtreecommitdiffstats
path: root/drivers/video/fbdev/omap2
AgeCommit message (Collapse)Author
2015-02-04omapfb: Return error code when applying overlay settings failsPeter Meerwald
the check of the return code is missing, user space does not get notified about the error condition: omapdss OVERLAY error: overlay 2 horizontally not inside the display area (403 + 800 >= 800) omapdss APPLY error: failed to apply settings: illegal configuration. Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-02-04OMAPDSS: DPI: DRA7xx supportTomi Valkeinen
Add support for DRA7xx DPI output. DRA7xx has three DPI outputs, each of which gets its input from a DISPC channel. However, DRA72x has only one video PLL, and DRA74x has two video PLLs. In both cases the video PLLs need to be shared between multiple outputs. The driver doesn't handle this at the moment. Also, DRA7xx requires configuring CONTROL module bits to route the clock from the PLL to the used DISPC channel. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-02-04OMAPDSS: HDMI: Add DRA7xx supportTomi Valkeinen
Add support for DRA7xx to the HDMI driver. The HDMI block on DRA7xx is the same as on OMAP5, except we need to enable and disable the HDMI PLL via the CONTROL module. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-02-04OMAPDSS: DISPC: program dispc polarities to control moduleTomi Valkeinen
On DRA7xx, DISPC needs to write output signal polarities not only to a DISPC register, like for all earlier DSS versions, but to control module's CTRL_CORE_SMA_SW_1 register. This patch adds support to write the polarities to control module. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-02-04OMAPDSS: DISPC: Add DRA7xx supportTomi Valkeinen
Add DRA7xx support to DISPC driver. The DISPC block is the same as on OMAP5, except the PLL's used for clocking are "videoX", not "dsiX". Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-02-04OMAPDSS: Add Video PLLs for DRA7xxTomi Valkeinen
DRA7xx SoCs have one (DRA72x) or two (DRA74x) video PLLs. They are basically the same as DSI PLLs on OMAPs, but without the rest of the DSI hardware. The video PLLs also require some configuration via the CONTROL module. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-02-04OMAPDSS: Add functions for external control of PLLTomi Valkeinen
Add functions which configure the control module register CTRL_CORE_DSS_PLL_CONTROL found in DRA7xx SoCs. This register configures whether the PLL registers are accessed internally by DSS, or externally using OCP2SCP interface. They also configure muxes which route the PLL output to a particular LCD overlay manager within DSS. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-02-04OMAPDSS: DSS: Add DRA7xx base supportTomi Valkeinen
Add base support for DRA7xx to DSS core. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-02-04OMAPDSS: encoder-tpd12s015: Fix race issue with LS_OETomi Valkeinen
A race issue has been observed with the encoder-tpd12s015 driver, which leads to errors when trying to read EDID. This has only now been observed, as OMAP4 and OMAP5 boards used SoC's GPIOs for LS_OE GPIO. On dra7-evm boards, the LS_OE is behind a i2c controlled GPIO expander, which increases the time to set the LS_OE. This patch simplifies the handling of the LS_OE gpio in the driver by removing the interrupt handling totally. The only time we actually need to enable LS_OE is when we are reading the EDID, and thus we can just set and clear the LS_OE gpio inside the read_edid() function. This also has the additional benefit of very slightly decreasing the power consumption. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-02-04OMAPDSS: OMAP5: fix digit output's allowed mgrsTomi Valkeinen
The OMAP5 HW supports directing DIGIT channel to DPI output, but the driver doesn't support that. However, we have marked that configuration as possible in the dss features, so in certain cases the driver tries to use that configuration, leading to broken display. Fix the problem by allowing DIGIT channel to go only to HDMI output. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-02-04OMAPDSS: constify port arraysTomi Valkeinen
The port arrays are constant data, so set them as 'const'. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-02-04OMAPDSS: PLL: add dss_pll_wait_reset_done()Tomi Valkeinen
Add a helper function to wait until the PLL's reset is done. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-02-04OMAPDSS: Add enum dss_pll_idTomi Valkeinen
In some cases we need global identifiers for the DSS PLLs, for example when configuring clock muxing on DRA7. For this purpose let's add a 'enum dss_pll_id'. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-01-13fbdev: omap2: Fix typo in tvc_probe_pdataRasmus Villemoes
Assigning ddata->invert_polarity to itself is not very useful; the context suggests that the right-hand side should have been pdata->invert_polarity. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-01-13video: omapdss: Add opa362 driverMarek Belisko
opa362 is amplifier for video and can be connected to the tvout pads of the OMAP3. It has one gpio control for enable/disable of the output (high impedance). Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com> Signed-off-by: Marek Belisko <marek@goldelico.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-30OMAPDSS: SDI: fix output port_numTomi Valkeinen
After the commit ef691ff48bc8 (OMAPDSS: DT: Get source endpoint by matching reg-id) we look for the SDI output using the port number. However, the SDI driver doesn't set the port number, which causes the SDI display to not initialize. Fix this by setting the SDI port number to 1. We use a hardcoded value, as SDI was used only on OMAP3 and it's always port number 1 there. Reported-by: Aaro Koskinen <aaro.koskinen@iki.fi> Reported-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-29OMAPDSS: pll: NULL dereference in error handlingDan Carpenter
The regulator_disable() doesn't accept NULL pointers. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-29OMAPDSS: HDMI: remove double initializer entriesTomi Valkeinen
HDMI hardware parameters structs for OMAP4 and OMAP5 contained two initializers for 'clkdco_max'. The first one was a remnant with wrong value. Remove the extra initializer entries. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-14Merge tag 'driver-core-3.19-rc1' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver core update from Greg KH: "Here's the set of driver core patches for 3.19-rc1. They are dominated by the removal of the .owner field in platform drivers. They touch a lot of files, but they are "simple" changes, just removing a line in a structure. Other than that, a few minor driver core and debugfs changes. There are some ath9k patches coming in through this tree that have been acked by the wireless maintainers as they relied on the debugfs changes. Everything has been in linux-next for a while" * tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (324 commits) Revert "ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries" fs: debugfs: add forward declaration for struct device type firmware class: Deletion of an unnecessary check before the function call "vunmap" firmware loader: fix hung task warning dump devcoredump: provide a one-way disable function device: Add dev_<level>_once variants ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries ath: use seq_file api for ath9k debugfs files debugfs: add helper function to create device related seq_file drivers/base: cacheinfo: remove noisy error boot message Revert "core: platform: add warning if driver has no owner" drivers: base: support cpu cache information interface to userspace via sysfs drivers: base: add cpu_device_create to support per-cpu devices topology: replace custom attribute macros with standard DEVICE_ATTR* cpumask: factor out show_cpumap into separate helper function driver core: Fix unbalanced device reference in drivers_probe driver core: fix race with userland in device_add() sysfs/kernfs: make read requests on pre-alloc files use the buffer. sysfs/kernfs: allow attributes to request write buffer be pre-allocated. fs: sysfs: return EGBIG on write if offset is larger than file size ...
2014-12-08Merge branches '3.19/omapdss' and '3.19/simplefb' into fbdevTomi Valkeinen
Merge fbdev topic branches.
2014-12-04video: fbdev-OMAP2: Deletion of unnecessary checks before the function call ↵Markus Elfring
"i2c_put_adapter" The i2c_put_adapter() function tests whether its argument is NULL and then returns immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-04OMAPDSS: hdmi5: Fix bit field for IEC958_AES2_CON_SOURCEJyri Sarha
The bit field for IEC958_AES2_CON_SOURCE is bits 3-0 in HDMI_CORE_FC_AUDSCHNLS2, not imaginary bits 3-4 (reverse order). Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-02OMAPDSS: hdmi: Remove __exit qualifier from hdmi_uninit_output()Jyri Sarha
Remove __exit qualifier from hdmi_uninit_output() because it is used also in omapdss_hdmihw_probe(). Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-01OMAPDSS: hdmi5: Change hdmi_wp idlemode to to no_idle for audio playbackJyri Sarha
Enabling idle mode during audio playback causes the glitches on OMAP5 HDMI. The TRM also suggests to use no-idle for HDMI audio playback. This patch sets HDMI idle mode to no-idle for the duration of the playback, and restores it back to original value afterwards. Signed-off-by: Jyri Sarha <jsarha@ti.com> Reviewed-by: Mark Brown <broonie@kernel.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-01OMAPDSS: Remove all references to obsolete HDMI audio callbacksJyri Sarha
In new model these callbacks are obsolete since the ASoC component drivers are integrated into the HDMI drivers and no callbacks are needed anymore. Signed-off-by: Jyri Sarha <jsarha@ti.com> Reviewed-by: Mark Brown <broonie@kernel.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-01OMAPDSS: hdmi5: Register ASoC platform device for omap hdmi audioJyri Sarha
Implements callbacks for OMAP HDMI audio platform driver and registers it in probe function. Unregistering is done in remove function. Signed-off-by: Jyri Sarha <jsarha@ti.com> Reviewed-by: Mark Brown <broonie@kernel.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-01OMAPDSS: hdmi5: Remove callbacks for the old ASoC DAI driverJyri Sarha
Removes the OMAP5 HDMI audio callbacks for the old external DAI driver. Signed-off-by: Jyri Sarha <jsarha@ti.com> Reviewed-by: Mark Brown <broonie@kernel.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-01OMAPDSS: hdmi4: Register ASoC platform device for omap hdmi audioJyri Sarha
Implements callbacks for OMAP HDMI audio platform driver and registers it in probe function. Unregistering is done in remove function. Signed-off-by: Jyri Sarha <jsarha@ti.com> Reviewed-by: Mark Brown <broonie@kernel.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-01OMAPDSS: hdmi4: Remove callbacks for the old ASoC DAI driverJyri Sarha
Removes the OMAP4 HDMI audio callbacks for the old external DAI driver. Signed-off-by: Jyri Sarha <jsarha@ti.com> Reviewed-by: Mark Brown <broonie@kernel.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-01OMAPDSS: hdmi: Make hdmi_mode_has_audio() more user friedlyJyri Sarha
Make hdmi_mode_has_audio() more user friedly by taking hdmi_config as parameter. Signed-off-by: Jyri Sarha <jsarha@ti.com> Reviewed-by: Mark Brown <broonie@kernel.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-12-01OMAPDSS: Kconfig: Remove HDMI audio booleans from KconfigJyri Sarha
The booleans are not used anymore. Just select SND_OMAP_SOC_HDMI_AUDIO to enable OMAP HDMI audio support. Signed-off-by: Jyri Sarha <jsarha@ti.com> Reviewed-by: Mark Brown <broonie@kernel.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-26OMAPDSS: hdmi.h: Add members to hdmi drvdata for audio implementationJyri Sarha
Adds display_enabled flag and audio_abort_cb callback to struct hdmi. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-26OMAPDSS: hdmi: Add pdev pointer for audio_pdev in HDMI DRV dataJyri Sarha
This is used to store omap-hdmi-audio pdev for unregistering it. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-26OMAPDSS: hdmi: Make hdmi structure publicJyri Sarha
Unify the private anonymous struct in hdmi4.c and hdmi5.c, name it as struct omap_hdmi, and make it public in hdmi.h. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-26OMAPDSS: hdmi_wp: Add function for getting audio dma addressJyri Sarha
The audio dma port is found in the hdmi_wp physical address space. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-26OMAPDSS: hdmi4_core: Remove unused hdmi4_audio_get_dma_port()Jyri Sarha
hdmi4_audio_get_dma_port() is unused and and broken. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-26OMAPDSS: hdmi: Remove most of OMAP[45]_DSS_HDMI_AUDIO ifdefsJyri Sarha
It does not waste too many bytes to compile all audio related core functions always in with HDMI support. It should help readability and in keeping the audio code in working shape. Leave the options just for disabling and enabling the functionality in hdmi[45].c. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-26OMAPDSS: hdmi.h: Add HDMI_AUDIO_LAYOUT_6CH enum valueJyri Sarha
The OMAP5 HDMI audio implementation needs HDMI_AUDIO_LAYOUT_6CH in hdmi_core_audio_layout enum. I found the correct value from ti-linux 3.8 tree. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-26OMAPDSS: hdmi5_core: Initialize mandatory sample_order parameterJyri Sarha
The hdmi_wp_audio_config_format() expects sample_order of struct hdmi_audio_format to be initialized. The only allowed value is HDMI_AUDIO_SAMPLE_LEFT_FIRST. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-26OMAPDSS: hdmi_wp: Protect reserved bits in hdmi_wp_audio_config_format()Jyri Sarha
Only OMAP4 DSS has non reserved bits above 6th bit in HDMI_WP_AUDIO_CFG. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-12OMAPDSS: features: remove unused DSI PLL featuresTomi Valkeinen
Now that the DSS has the common DSS PLL, we no longer use the DSI PLL feature flags from dss_features.c. Remove all the unused feature flags. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-12OMAPDSS: HDMI: use common DSS PLL supportTomi Valkeinen
Now that we have the common DSS PLL support, change HDMI to use it. This results in quite a lot of changes, but almost all of them are trivial name changes. The function to program the PLL settings can be removed from hdmi_pll.c, as the common PLL API contains the same functionality. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-12OMAPDSS: HDMI: remove extra poweroffTomi Valkeinen
hdmi_pll_enable powers off the PLL as the first thing it does. Right after that, it enables the PLL powers. The initial power-off is pointless, so let's remove it. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-12OMAPDSS: HDMI: split PLL enable & configTomi Valkeinen
At the moment we have one function, hdmi_pll_enable, which enables the PLL and writes the PLL configuration to registers. To make the HDMI PLL ahere to the DSS PLL API, split the hdmi_pll_enable into two parts: hdmi_pll_enable which enables the PLL HW, and hdmi_pll_set_config which writes the config. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-12OMAPDSS: HDMI: store WP pointer to hdmi_pll_dataTomi Valkeinen
HDMI PLL code needs the pointer to the WP block so that it can manage its power. Currently this is passed as a function parameter to hdmi_pll_enable and hdmi_pll_disable. To make the PLL function adhere to the DSS PLL API, we need to remove the WP parameter. This patch stores the WP pointer to hdmi_pll_data in hdmi_pll_init, so that it's available when needed. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-12OMAPDSS: HDMI: Remove HDMI PLL resetTomi Valkeinen
The SYSRESET bits in HDMI PLL do not reset the PLL itself, but only affect the power used for the PLL. Afaik there is no reason to use the SYSRESET bits, and we don't use it in the other PLLs, so let's remove the HDMI PLL reset to make the PLL code simpler and similar to other PLLs. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-12OMAPDSS: HDMI: rewrite HDMI PLL calculation codeTomi Valkeinen
The code calculating HDMI PLL parameters has always been very confusing. Now that we are implementing a common PLL library for the DSS, it's important that the PLL code is understandable. This patch rewrites the calculation code, and removes a few hacks that were used there. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-12OMAPDSS: HDMI5: disable interlace modesTomi Valkeinen
We don't support interlace modes properly on OMAP5+ HDMI, so we need to reject interlace timings. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-12OMAPDSS: HDMI: fix setting REFSELTomi Valkeinen
Only OMAP5+ has REFSEL field, but at the moment it's set also on OMAP4. Fix this by adding a "has_refsel" field, and setting the REFSEL based on that. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2014-11-12OMAPDSS: DSI: use common DSS PLL supportTomi Valkeinen
Now that we have the common DSS PLL support, change DSI to use it. This results in quite a lot of changes, but almost all of them are trivial name changes. The functions to calculate and program the PLL settings can be removed from dsi.c, as the common PLL API contains the same functionality. We also need to create struct dss_pll_hw entries for PLL hardware features for different OMAP platforms, instead of using the dss_features.c as the old code does. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>