summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-04-30drm/exynos: hdmi: fix dt broken issuemainline_backport_20140430sandbox/daeinki/tizenInki Dae1-18/+70
This patch resolves the issue that the use of existing dtb is broken. This patch gets existing dt nodes directly and checks if existing dtb should be supported or not. For this, it adds a soc_ver varable to hdmi_context structure to distinguish SoC version because it should get dt node corresponding to SoC correctly. Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-30Revert "drm/exynos: add mout_hdmi clock in hdmi driver to change parent"Tomasz Stanislawski1-7/+1
Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-29drm/exynos: release unhandled page flip events at postclose.Inki Dae1-13/+22
This patch resolves a dead lock issue that could be incurred when exynos_drm_crtc_dpms function was called. The exynos_drm_crtc_dpms function waits for the completion of pended page flip events. However, preclose callback - this releases all unhandled page flip events - is called prior to the exynos_drm_crtc_dpms function call when drm is closed. So at this time, this will make the exynos_drm_crtc_dpms to wait infiniately for the completion of the page flip events. This patch releases the unhandled page flip events at postclose instead of preclose so that exynos_drm_crtc_dpms function can be waked up. Changelog v2: - fix a memory leak when drm is closed. . it has a memory leak when a requeste page flip is handled after drm_events_release() is called and before drm_fb_release() is called. At this time, a drm_pending_event will not be freed. So also this chage releases the drm_pending_event at postclose(). And it calls drm_vblank_put() for pair if there is any unhandled page flip event. Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
2014-04-29ARM: config: tizen: update defconfigInki Dae1-9/+17
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-29drm/exynos: fimd: clear channel before enabling iommuAkshu Agrawal1-20/+50
If any fimd channel was already active, initializing iommu will result in a PAGE FAULT (e.e. u-boot could have turned on the display and not disabled it before the kernel starts). This patch checks if any channel is active before initializing iommu and disables it. Changelog v2: - consider SoC without SHADOWCON register Signed-off-by: Akshu Agrawal <akshu.a@samsung.com> Signed-off-by: Prathyush K <prathyush.k@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-29ARM: dts: universal: fix display dt bindingsInki Dae1-21/+60
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-29ARM: dts: trats: fix display dt bindingsInki Dae1-44/+52
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-29ARM: dts: trats2: fix display dt bindingsInki Dae1-42/+52
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-29drm/exynos: fimd: update dt bindingsInki Dae1-39/+4
This patch removes wrong dt bindings and adds new ones. Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-29drm/panel: add S6E8AA0 driverAndrzej Hajda3-0/+1076
The patch adds MIPI-DSI based S6E8AA0 AMOLED LCD panel driver. Driver uses mipi_dsi bus to communicate with panel and exposes drm_panel interface. v2 - added bus error handling, - set maxmimum DSI packet size on init, - removed unsupported brightness drm_panel callbacks, - minor improvements v3 - switched to gpiod framework, - minor fixes in error handling Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-29drm/panel: add ld9040 driverAndrzej Hajda3-0/+388
The patch adds LD9040 parallel RGB panel driver with SPI control interface. The driver uses drm_panel framework. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: remove MODULE_DEVICE_TABLE definitionsInki Dae1-1/+0
This patch removes MODULE_DEVICE_TABLE definition to of_device_id of MIPI-DSI driver. Eyxnos drm should be built as single module so these definitions should be removed. Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: add DSIM driverAndrzej Hajda5-0/+1539
The patch adds driver for Exynos DSI master (DSIM). It is a platform driver which is registered as exynos_drm_display sub-driver of exynos_drm framework and implements DRM encoder/connector pair. It is also MIPI-DSI host driver and provides DSI bus for panels. It interacts with its panel(s) using drm_panel framework. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm: add MIPI DSI encoder and connector typesShobhit Kumar2-0/+4
Signed-off-by: Shobhit Kumar <shobhit.kumar@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Acked-by: Dave Airlie <airlied@gmail.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/mipi_dsi: add flags to DSI messagesAndrzej Hajda1-0/+6
This patch adds flags field to mipi_dsi_msg structure and two flags: - MIPI_DSI_MSG_REQ_ACK - request ACK from peripheral for given message, - MIPI_DSI_MSG_USE_LPM - use Low Power Mode to transmit message. The first flag is usually helpful during DSI diagnostic, the second flag is required by some peripherals during configuration phase. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: disallow fbdev initialization if no device is connectedAndrzej Hajda1-0/+21
This patch adds explicit check if there is a connector with connected status before fbdev initialization. It prevents creation of default fbdev 1024x768 which is unusable on panels with bigger resolutions. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: Replace DRM_LOG_KMS() by DRM_DEBUG_KMS()Lespiau, Damien2-2/+2
There are only a few users of the DRM_LOG_KMS() macro. We can simplify the DRM code a bit by replacing them by DRM_DEBUG_KMS(). Cc: Inki Dae <inki.dae@samsung.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: fimd: remove unused variableAndrzej Hajda1-14/+6
The patch removes unused vidcon0 field from fimd_context structure. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: restore parallel output interface supportAndrzej Hajda5-0/+360
The patch adds parallel output interface to FIMD device driver. It also restores support for panels initialized by boot loader, but without proper kernel driver. Driver uses video interface bindings to find connected panel. It uses drm_panel interface to interact with the panel. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: select DRM_PANELInki Dae1-0/+1
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/panel: fix build errorInki Dae1-12/+14
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/mipi_dsi: create dsi devices only for nodes with reg propertyAndrzej Hajda1-1/+5
MIPI DSI host node can contain child nodes which are not DSI devices. Checking for existence of reg property can be used to distinguish such nodes. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm: Add MIPI DSI bus supportAndrzej Hajda4-0/+478
MIPI DSI bus allows to model DSI hosts and DSI peripherals using the Linux driver model. DSI hosts are registered by the DSI host drivers. During registration DSI peripherals will be created from the children of the DSI host's device tree node. Support for registration from board-setup code will be added later when needed. DSI hosts expose operations which can be used by DSI peripheral drivers to access associated devices. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/panel: add support for LG LD070WX3-SL01 panelAlexandre Courbot2-0/+37
This panel is used by Tegra Note 7 and supported by the simple-panel driver. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/panel: add support for LG LH500WX1-SD03 panelAlexandre Courbot2-0/+37
This panel is used by the NVIDIA SHIELD and supported by the simple-panel driver. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/panel: simple: Allow DSI panels to provide mode flagsThierry Reding1-0/+3
In order to differentiate between the different video modes (burst vs. non-burst, sync pulses vs. sync events) supported by peripherals, pass the flags that specify this mode in the panel description to the DSI peripheral device when probed. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Ddae <inki.dae@samsung.com>
2014-04-28drm/panel: simple: Allow GPIO accesses to sleepThierry Reding1-2/+2
The enable GPIO for panels may be provided by GPIO expanders on slow busses (such as I2C), and therefore toggling the GPIO may sleep. Since these accesses don't happen in interrupt context, use the *_cansleep() variants of the GPIO API. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/panel: remove redundant regulator_disable()Alexandre Courbot1-2/+0
regulator_disable() is already performed by panel_simple_disable(), which is called by panel_simple_remove(). Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/panel: use gpiod interface for enable GPIOAlexandre Courbot1-49/+18
Use the new GPIO descriptor interface to handle the panel's enable GPIO. This considerably simplifies the code. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> [treding@nvidia.com: rework to improve readability] Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/panel: Add LG 12.9" LCD panelThierry Reding2-0/+32
The LP129QE LCD has an LED backlight and a display resolution of 2560x1700 pixels. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/panel: update EDID BLOB in panel_simple_get_modes()Stephen Warren1-0/+1
This stashes away the EDID data so that the sysfs per-connector file "edid" can display it. Without this change, the "edid" file is always empty. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/panel: Add support for Chunghwa CLAA101WA01A panelStephen Warren2-0/+32
The Chunghwa CLAA101WA01A is a 10.1" 1366x768 panel, which can be supported by the simple panel driver. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/panel: Add support for Samsung LTN101NT05 panelMarc Dietrich2-0/+32
The Samsung LNT101NT05 10.1" WXVGA panel can be supported by the simple panel driver. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/panel: Add support for Panasonic VVX10F004B0Thierry Reding1-7/+87
The Panasonic VVX10F004B0 is a 10.1" WUXGA TFT LCD panel connected using four DSI lanes. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/panel: Add simple panel supportThierry Reding4-0/+433
Add a driver for simple panels. Such panels can have a regulator that provides the supply voltage and a separate GPIO to enable the panel. Optionally the panels can have a backlight associated with them so it can be enabled or disabled according to the panel's power management mode. Support is added for two panels: An AU Optronics 10.1" WSVGA and a Chunghwa Picture Tubes 10.1" WXGA panel. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm: Add panel supportThierry Reding5-0/+190
Add a very simple framework to register and lookup panels. Panel drivers can initialize a DRM panel and register it with the framework, allowing them to be retrieved and used by display drivers. Currently only support for DPMS and obtaining panel modes is provided. However it should be sufficient to enable a large number of panels. The framework should also be easily extensible to support more sophisticated kinds of panels such as DSI. The framework hasn't been tied into the DRM core, even though it should be easily possible to do so if that's what we want. In the current implementation, display drivers can simple make use of it to retrieve a panel, obtain its modes and control its DPMS mode. Note that this is currently only tested on systems that boot from a device tree. No glue code has been written yet for systems that use platform data, but it should be easy to add. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: correct timing porch conversionAndrzej Hajda1-7/+5
The patch corrects porch calculation. It should be calculated as a difference between adjacent respective fields of drm_display_mode. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Daniel Kurtz <djkurtz@chromium.org> Reviewed-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: init kms poll after creation of connectorsAndrzej Hajda1-3/+3
KMS poll init helper should be run when connectors are created, otherwise it will not schedule connection detector. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: delay fbdev initialization until an output is connectedAndrzej Hajda2-12/+6
In case fbdev is initialized before any output is connected, fb resolution defaults to 1024x768. After that any output with bigger resolution is ignored and fbdev is not displayed. The patch postpones fbdev initialization to avoid such situation. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: call drm_put_dev directly from ->removeDaniel Vetter1-1/+3
I didn't find any user of the driver data yet, so store the drm_device pointer in there. Cc: Inki Dae <inki.dae@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Dave Airlie <airlied@redhat.com>
2014-04-28drm/exynos: fix unnecessary resource cleanupInki Dae1-3/+2
This patch removes unnecessary drm_mode_config_cleanup call. Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
2014-04-28drm/exynos: hdmi: use i2c_adapter instead of i2c_clientInki Dae1-12/+11
This patch changes i2c_client for ddc to i2c_adapter because ddc needs only i2c_adapter. Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: fimd: remove unnecessary display relevant codesInki Dae1-37/+0
This patch removes unnecessary display relevent codes from fimd driver because display will be registed by each encoder/connector driver. Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: hdmi: consider APB PHYInki Dae1-4/+28
This patch returns error in case of using APB PHY. Exynos5420 SoC and maybe later would use APB PHY instead of I2C PHY so such case should be considered. Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: Remove the exynos_drm_connector shimSean Paul4-29/+6
This path removes the exynos_drm_connector code since it was just passing hooks through display_ops. The individual device drivers are now responsible for implementing drm_connector directly. Signed-off-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: Implement drm_connector directly in vidi driverSean Paul1-56/+108
This patch implements drm_connector directly in the vidi driver, this will allow us to move away from the exynos_drm_connector layer. Signed-off-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: Implement drm_connector in hdmi directlySean Paul1-41/+85
This patch implements drm_connector in the hdmi driver directly, instead of using exynos_drm_connector. Signed-off-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: Add create_connector callbackSean Paul2-0/+5
This creates a new display hook called create_connector. The purpose is to allow the display driver to create its own drm_connector instead of using the exynos_drm_connector. This moves things closer to completely removing the exynos_drm_connector abstraction. Signed-off-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: Consolidate suspend/resume in drm_drvSean Paul5-288/+170
This patch removes all of the suspend/resume logic from the individual drivers and consolidates it in drm_drv. This consolidation reduces the number of functions which enable/disable the hardware to just one -- the dpms callback. This ensures that we always power up/down in a consistent manner. Signed-off-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-28drm/exynos: Clean up FIMD power on/off routinesSean Paul1-112/+134
This patch separates the fimd_activate function into poweron/poweroff functions to be more consistent with the other drivers in exynos drm. It also properly cleans up after failures in poweron. The functions have also been shuffled around such that they are all in the same spot in the file and poweron/poweroff can be called from the dpms function. Signed-off-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>