aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/fbdev/omap2
Commit message (Collapse)AuthorAge
* OMAPDSS: fix regression with display sysfs filesTomi Valkeinen2015-02-26
| | | | | | | | | | | | | | | | | | omapdss's sysfs directories for displays used to have 'name' file, giving the name for the display. This file was later renamed to 'display_name' to avoid conflicts with i2c sysfs 'name' file. Looks like at least xserver-xorg-video-omap3 requires the 'name' file to be present. To fix the regression, this patch creates new kobjects for each display, allowing us to create sysfs directories for the displays. This way we have the whole directory for omapdss, and there will be no sysfs file clashes with the underlying display device's sysfs files. We can thus add the 'name' sysfs file back. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Tested-by: NeilBrown <neilb@suse.de>
* omapfb: Return error code when applying overlay settings failsPeter Meerwald2015-02-04
| | | | | | | | | | | 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>
* OMAPDSS: DPI: DRA7xx supportTomi Valkeinen2015-02-04
| | | | | | | | | | | | | | 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>
* OMAPDSS: HDMI: Add DRA7xx supportTomi Valkeinen2015-02-04
| | | | | | | | | 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>
* OMAPDSS: DISPC: program dispc polarities to control moduleTomi Valkeinen2015-02-04
| | | | | | | | | | 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>
* OMAPDSS: DISPC: Add DRA7xx supportTomi Valkeinen2015-02-04
| | | | | | | 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>
* OMAPDSS: Add Video PLLs for DRA7xxTomi Valkeinen2015-02-04
| | | | | | | | | 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>
* OMAPDSS: Add functions for external control of PLLTomi Valkeinen2015-02-04
| | | | | | | | | | 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>
* OMAPDSS: DSS: Add DRA7xx base supportTomi Valkeinen2015-02-04
| | | | | | Add base support for DRA7xx to DSS core. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
* OMAPDSS: encoder-tpd12s015: Fix race issue with LS_OETomi Valkeinen2015-02-04
| | | | | | | | | | | | | | | | | | 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>
* OMAPDSS: OMAP5: fix digit output's allowed mgrsTomi Valkeinen2015-02-04
| | | | | | | | | | | 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>
* OMAPDSS: constify port arraysTomi Valkeinen2015-02-04
| | | | | | The port arrays are constant data, so set them as 'const'. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
* OMAPDSS: PLL: add dss_pll_wait_reset_done()Tomi Valkeinen2015-02-04
| | | | | | Add a helper function to wait until the PLL's reset is done. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
* OMAPDSS: Add enum dss_pll_idTomi Valkeinen2015-02-04
| | | | | | | | 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>
* fbdev: omap2: Fix typo in tvc_probe_pdataRasmus Villemoes2015-01-13
| | | | | | | | | 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>
* video: omapdss: Add opa362 driverMarek Belisko2015-01-13
| | | | | | | | | | 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>
* OMAPDSS: SDI: fix output port_numTomi Valkeinen2014-12-30
| | | | | | | | | | | | | | 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>
* OMAPDSS: pll: NULL dereference in error handlingDan Carpenter2014-12-29
| | | | | | | 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>
* OMAPDSS: HDMI: remove double initializer entriesTomi Valkeinen2014-12-29
| | | | | | | | | | 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>
* Merge tag 'driver-core-3.19-rc1' of ↵Linus Torvalds2014-12-14
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ...
| * Merge branch 'platform/remove_owner' of ↵Greg Kroah-Hartman2014-11-03
| |\ | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux into driver-core-next Remove all .owner fields from platform drivers
| | * video: fbdev: omap2: omapfb: drop owner assignment from platform_driversWolfram Sang2014-10-20
| | | | | | | | | | | | | | | | | | | | | 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>
| | * video: fbdev: omap2: dss: drop owner assignment from platform_driversWolfram Sang2014-10-20
| | | | | | | | | | | | | | | | | | | | | 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>
| | * video: fbdev: omap2: displays-new: drop owner assignment from platform_driversWolfram Sang2014-10-20
| | | | | | | | | | | | | | | | | | | | | 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>
| | |
| \ \
*-. | | Merge branches '3.19/omapdss' and '3.19/simplefb' into fbdevTomi Valkeinen2014-12-08
|\ \| | | | | | | | | | | | | | Merge fbdev topic branches.
| * | | OMAPDSS: hdmi5: Fix bit field for IEC958_AES2_CON_SOURCEJyri Sarha2014-12-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi: Remove __exit qualifier from hdmi_uninit_output()Jyri Sarha2014-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi5: Change hdmi_wp idlemode to to no_idle for audio playbackJyri Sarha2014-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: Remove all references to obsolete HDMI audio callbacksJyri Sarha2014-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi5: Register ASoC platform device for omap hdmi audioJyri Sarha2014-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi5: Remove callbacks for the old ASoC DAI driverJyri Sarha2014-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi4: Register ASoC platform device for omap hdmi audioJyri Sarha2014-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi4: Remove callbacks for the old ASoC DAI driverJyri Sarha2014-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi: Make hdmi_mode_has_audio() more user friedlyJyri Sarha2014-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: Kconfig: Remove HDMI audio booleans from KconfigJyri Sarha2014-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi.h: Add members to hdmi drvdata for audio implementationJyri Sarha2014-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi: Add pdev pointer for audio_pdev in HDMI DRV dataJyri Sarha2014-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi: Make hdmi structure publicJyri Sarha2014-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi_wp: Add function for getting audio dma addressJyri Sarha2014-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi4_core: Remove unused hdmi4_audio_get_dma_port()Jyri Sarha2014-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi: Remove most of OMAP[45]_DSS_HDMI_AUDIO ifdefsJyri Sarha2014-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi.h: Add HDMI_AUDIO_LAYOUT_6CH enum valueJyri Sarha2014-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi5_core: Initialize mandatory sample_order parameterJyri Sarha2014-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: hdmi_wp: Protect reserved bits in hdmi_wp_audio_config_format()Jyri Sarha2014-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: features: remove unused DSI PLL featuresTomi Valkeinen2014-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: HDMI: use common DSS PLL supportTomi Valkeinen2014-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: HDMI: remove extra poweroffTomi Valkeinen2014-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: HDMI: split PLL enable & configTomi Valkeinen2014-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: HDMI: store WP pointer to hdmi_pll_dataTomi Valkeinen2014-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | OMAPDSS: HDMI: Remove HDMI PLL resetTomi Valkeinen2014-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>