aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-06-02drm/exynos: add hdmiphy power on/off sequenceShirish S2-7/+40
This patch implements the power on/off sequence of HDMI PHY in exynos5420 and exynos5250 as provided by the hardware team. This has been verified for mulitple iterations of S2R. Signed-off-by: Shirish S <[email protected]> Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: ipp: remove description of non-existing fieldAndrzej Hajda1-1/+0
ipp_id field is removed from exynos_drm_ippdrv struct. The patch removes its description as well. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: ipp: update comment for struct drm_ipp_buf_infoYoungJun Cho1-1/+1
The attribute gem_objs in struct drm_exynos_ipp_buf_info was changed to handles. So the comment needs to be updated also. Signed-off-by: YoungJun Cho <[email protected]> Acked-by: Seong-Woo Kim <[email protected]> Acked-by: Kyungmin Park <[email protected]> Tested-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: ipp: rearrange c_node->event_lock using routineYoungJun Cho1-11/+14
The c_node->event_list should be protected with c_node->event_lock. Signed-off-by: YoungJun Cho <[email protected]> Acked-by: Seong-Woo Kim <[email protected]> Acked-by: Kyungmin Park <[email protected]> Tested-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: ipp: rearrange c_node->mem_lock using routinesYoungJun Cho1-38/+48
The c_node->mem_list[] should be protected with c_node->mem_lock. Signed-off-by: YoungJun Cho <[email protected]> Acked-by: Seong-Woo Kim <[email protected]> Acked-by: Kyungmin Park <[email protected]> Tested-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: ipp: add ipp_remove_id()YoungJun Cho1-11/+31
This patch adds ipp_remove_id() for idr resource free. Signed-off-by: YoungJun Cho <[email protected]> Acked-by: Seong-Woo Kim <[email protected]> Acked-by: Kyungmin Park <[email protected]> Tested-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: ipp: add cmd_lock for cmd_listYoungJun Cho2-2/+20
This patch adds cmd_lock for cmd_list synchronization. Signed-off-by: YoungJun Cho <[email protected]> Acked-by: Seong-Woo Kim <[email protected]> Acked-by: Kyungmin Park <[email protected]> Tested-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: ipp: rename cmd_lock to lockYoungJun Cho2-8/+8
The ippdrv->cmd_list requires cmd_lock. So renames cmd_lock to lock for context. Signed-off-by: YoungJun Cho <[email protected]> Acked-by: Seong-Woo Kim <[email protected]> Acked-by: Kyungmin Park <[email protected]> Tested-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: ipp: remove duplicated settingYoungJun Cho1-1/+1
This patch removes duplicated setting. Signed-off-by: YoungJun Cho <[email protected]> Acked-by: Seong-Woo Kim <[email protected]> Acked-by: Kyungmin Park <[email protected]> Tested-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: ipp: remove usless list_empty() functionsYoungJun Cho1-52/+9
list_for_each_entry() handles empty lists, so there is no need to check whether the list is empty first. Signed-off-by: YoungJun Cho <[email protected]> Acked-by: Seong-Woo Kim <[email protected]> Acked-by: Kyungmin Park <[email protected]> Tested-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: Use PTR_ERR_OR_ZERO in exynos_dp_core.cSachin Kamat1-4/+1
PTR_ERR_OR_ZERO simplifies the code. Signed-off-by: Sachin Kamat <[email protected]> Acked-by: Jingoo Han <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: remove hardware overlays disable from fimd probeRahul Sharma1-17/+0
System hangs when FIMD registers are accessed to disable hardware overlays. This is because of the clocks which are not enabled before register access. 'Hardware overlay disable' is cleaned from the FIMD probe. Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: Fix checkpatch warning in exynos_dp_reg.cSachin Kamat1-1/+1
Silences the following warning: WARNING: space prohibited before semicolon Signed-off-by: Sachin Kamat <[email protected]> Acked-by: Jingoo Han <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: add fimd dependency to fimd related encodersAndrzej Hajda1-3/+3
DPI, DSI and DP drivers will not work without FIMD. The patch adds appropriate dependencies in Kconfig. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: remove redundant mutex_unlockAndrzej Hajda1-1/+0
The patch fixes unlocking in exynos_drm_component_del. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos/fimc: simplify and rename fimc_dst_get_buf_seqAndrzej Hajda1-9/+5
fimc_dst_get_buf_seq returns number of buffers so the name should be fimc_dst_get_buf_count. Function body has been simplified. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos/fimc: replace mutex by spinlockAndrzej Hajda1-5/+6
Function fimc_dst_set_buf_seq is called by irq handler so it should not use mutexes. This patch fixes it. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos/fimc: replace hw access macros with functionsAndrzej Hajda1-161/+150
HW access macros implicitly depended on presence of ctx local variable. This patch replaces them with C functions. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos/fimc: simplify irq masking functionAndrzej Hajda1-16/+9
The name fimc_handle_irq suggests it is irq handler, but the function is for irq mask configuration. The patch renames the function to fimc_mask_irq and removes unused arguments. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos/fimc: simplify pre-scaler ratio calculationAndrzej Hajda1-43/+13
The patch replaces dedicated function for scaling ratio calculation by fls calls. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos/ipp: simplify property list allocationAndrzej Hajda5-26/+8
prop_list is always allocated, so instead of allocating it dynamically the pointer can be replaced by the structure itself. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos/ipp: correct ipp_id field initializationAndrzej Hajda2-9/+6
prop_list.ipp_id field is not initialized properly. The patch fixes it, additionally it removes redundant field from ippdrv. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos/ipp: fix get_property IOCTLAndrzej Hajda1-1/+1
Due to incorrect assignment in EXYNOS_IPP_GET_PROPERTY IOCTL handler this IOCTL did not work at all. The patch fixes it. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: Staticize local symbols in exynos_hdmi.cSachin Kamat1-3/+3
These symbols are local to this file. Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: Remove duplicate inclusion of i2c.hSachin Kamat1-1/+0
i2c.h was included twice. Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: Staticize exynos_dpi_of_find_panel_nodeSachin Kamat1-1/+1
exynos_dpi_of_find_panel_node is local to this file. Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: Inki Dae <inki.dae>
2014-06-02drm/exynos: Fix PTN3460 dependencyJean Delvare2-3/+3
The following configuration options combination: CONFIG_DRM_EXYNOS_DP=y CONFIG_DRM_PTN3460=m currently leads to the following linker failure: drivers/built-in.o: In function `exynos_drm_attach_lcd_bridge': .../drivers/gpu/drm/exynos/exynos_dp_core.c:1004: undefined reference to `ptn3460_init' This is because ptn3460_init can't be implemented in a module while its caller is built into the kernel. So add the proper dependency in Kconfig so that the above can't happen. I moved DRM_PTN3460 earlier in Kconfig, next to the I2C helper module section, so that the user has a chance to select it before moving to the Exynos-specific section. IMHO the proper way to solve the problem would be to turn ptn3460 into a clean I2C driver, similar to the other I2C helper chip drivers. It's the only way to not sink into impossible-to-guess dependencies. Then ptn3460 could even be moved together with the other I2C helper chip drivers. Signed-off-by: Jean Delvare <[email protected]> Reviewed-by: Thierry Reding <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: use 4WORD dma burst length for small fbsRahul Sharma1-0/+14
In case of exynos, setting dma-burst to 16Word causes permanent tearing for very small buffers, e.g. cursor buffer. Burst Mode switching, which is based on overlay size is not recommended as overlay size varies a lot towards the end of the screen. This causes unstable DMA which results into tearing again. Rendering small buffers with lower burst size doesn't cause any noticable performance overhead. 128 pixel width is selected based on mulitple experiments with exynos5 SoCs. Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Prathyush K <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: use regmap interface to set hdmiphy control bit in pmuRahul Sharma3-8/+25
Exynos drm hdmi driver used to get dummy hdmiphy clock to control the PMU bit for hdmiphy. This bit needs to be set before setting any resolution to hdmi hardware. This was handled using dummy hdmiphy clock which is removed here. PMU is already defined as system controller for exynos SoCs. Hdmi driver is modified to control the phy enable bit inside PMU using regmap interfaces. Devicetree binding document for hdmi is also updated. Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: allocate non-contigous buffers when iommu is enabledRahul Sharma1-12/+10
Allow to allocate non-contigous buffers when iommu is enabled. Currently, it tries to allocates contigous buffer which consistently fail for large buffers and then fall back to non contigous. Apart from being slow, this implementation is also very noisy and fills the screen with alloc fail logs. Signed-off-by: Rahul Sharma <[email protected]> Reviewed-by: Sachin Kamat <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: hdmi: consider legacy dt bindingInki Dae1-0/+30
This patch considers legacy dt binding, and resolves the issue that the use of existing dtb is broken. To resove the dt broken issue, this path tries to get legacy dt nodes from existing dtb directly prior to getting new dt nodes. Signed-off-by: Inki Dae <[email protected]> Acked-by: Kyungmin Park <[email protected]>
2014-06-02drm/exynos: restore core HDMI settingsShirish S1-0/+2
In DVI mode the video preamble and Guard band should be disabled whereas it should be applied in HDMI mode, the re-applying of preamble and guard band was missing, which resulted in display failures when switched to HDMI mode from DVI mode. This patch ensures the setting is applied in HDMI mode. Signed-off-by: Shirish S <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: hdmi: remove unnecessary dedicated i2c driversSeung-Woo Kim2-128/+0
The i2c drivers for ddc and hdmiphy are already removed from build and instead, i2c clients registered via devicetree are used. So this patch removes the unnecessary i2c drivers. Signed-off-by: Seung-Woo Kim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: enable support for exynos5420 hdmi deviceRahul Sharma2-0/+166
Enable support for hdmi for exynos5420 hdmiphy. Add compatible string in the of_match table. Also added hdmiphy configuration values for exynos5420. Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Shirish S <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: add support for apb mapped phys in hdmi driverRahul Sharma2-53/+96
Previous SoCs have hdmi phys which are accessible through dedicated i2c lines. Newer SoCs have Apb mapped hdmi phys. Hdmi driver is modified to support apb mapped phys. Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: remove unnecessary read for phy configuration valuesRahul Sharma1-10/+0
Cleaning up unnecessary i2c read call after hdmiphy configuration. This check is redundant since check for hdmiphy pll lock status confirms the correct settings for phy. Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Daniel Kurtz <[email protected]> Reviewed-by: Tomasz Figa <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: replace hdmi reset with hdmi disableRahul Sharma1-24/+16
Before setting the core and timing generation registers, hdmi driver resets the whole hdmi hardware, which also resets the audio related registers. Hdmi reset is replaced by hdmi disable which is called just before setting the core and timing registers. It also ensure that audio settings are not changed. Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Shirish S <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: Read hpd gpio in is_connected callbackSean Paul1-0/+2
This patch adds a gpio read of hpd during the is_connected callback. This fixes the case where hdmi is off going into suspend and the cable is plugged in while suspended. In this case, the hpd interrupt does not fire and is_connected will return false. Signed-off-by: Sean Paul <[email protected]> Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: hdmi: remove unnecessary memsetDaniel Kurtz1-2/+0
Our resources were just zalloc'ed as part of hdata. They are already 0. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: check for null pointers in error handlingPaul Taysom1-1/+2
Smatch error from arm build: drivers/gpu/drm/exynos/ exynos_hdmi.c:2374 hdmi_probe() error: potential NULL dereference 'hdata->hdmiphy_port'. Added check for hdata->hdmiphy_port that it is not NULL. Signed-off-by: Paul Taysom <[email protected]> Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: Debounce HDMI hotplug interruptsSean Paul1-2/+21
This patch debounces hotplug interrupts generated by the HDMI hotplug gpio. The reason this is needed is that we get multiple (5) interrupts every time a monitor is inserted which causes us to needlessly enable and disable the IP block. Signed-off-by: Sean Paul <[email protected]> Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: Don't reset hdmiphy on hdmi offSean Paul1-5/+0
This patch removes the hdmiphy reset in hdmi_poweroff. The hdmiphy reset was added to take advantage of exynos clockgating, doing it would gate the entire TV domain. Unfortunately, mixer is included in the TV domain and its vsync interrupts are stopped when TV is gated. Signed-off-by: Sean Paul <[email protected]> Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: Fix double locks at PM resumeTakashi Iwai1-1/+1
The recent commit [3ea87855: drm/helper: lock all around force mode restore] introduced drm_modeset_lock_all() in drm_helper_resume_force_mode() itself, while exynos driver takes this lock before calling it. Move the function call outside the lock for avoiding a deadlock. Signed-off-by: Takashi Iwai <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: dp: Use DPCD defines of drm_dp_helper.hJingoo Han3-104/+55
Use DPCD defines of drm_dp_helper.h; thus, duplicated DPCD defines of exynos_dp_core.h can be removed. Also, DP_TEST_EDID_CHECKSUM define is added to drm_dp_helper.h. There is no functional change. Signed-off-by: Jingoo Han <[email protected]> Reviewed-by: Sean Paul <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: update phy settings for RB resolutionsShirish S1-21/+12
This patch updates phy settings of the below mentioned pixel clocks in Exynos5250 and removes support for 88.75MHz, for it is not supported. 71 MHz - 1280x800@60Hz RB 73.25 MHz - 800x600@120Hz RB 115.5 MHz - 1024x768@120Hz RB 119 MHz - 1680x1050@60Hz RB Signed-off-by: Shirish S <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: dp: support hotplug detection via GPIOAndrew Bresticker4-15/+66
Certain bridge chips use a GPIO to indicate the cable status instead of the I_DP_HPD pin. This adds an optional device-tree property, "samsung,hpd-gpio", to the exynos-dp controller which indicates that the specified GPIO should be used for hotplug detection. The GPIO is then set up as an edge-triggered interrupt where the rising edge indicates hotplug-in and the falling edge indicates hotplug-out. Signed-off-by: Andrew Bresticker <[email protected]> Signed-off-by: Rahul Sharma <[email protected]> Signed-off-by: Ajay Kumar <[email protected]> Acked-by: Jingoo Han <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: dsi: remove unnecessary pm interfacesInki Dae1-31/+0
Exynos drm driver is a single driver so pm operation for kms drivers should be done by connector->dpms at top level driver. If kms driver has its own pm interfaces, single driver model would be broken so this patch removes unnecessary pm interfaces from dsi driver. Signed-off-by: Inki Dae <[email protected]> Signed-off-by: Kyungmin Park <[email protected]>
2014-06-02drm/exynos: remove unnecessary runtime pm interfacesInki Dae1-29/+0
Exyno drm driver has no real hardware device, and runtime pm operation should be done by sub drivers. Signed-off-by: Inki Dae <[email protected]> Signed-off-by: Kyungmin Park <[email protected]>
2014-06-02drm/exynos: separate dpi from fimdAndrzej Hajda3-95/+69
The patch separates dpi related routines from fimd. Changelog v2: - Rename ctx->dpi to ctx->display Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-06-02drm/exynos: fix comment to exynos_drm_device_subdrv_prove callInki Dae1-1/+1
subdrv_probe callback of virtual display driver will be called by exynos_drm_device_subdrv_probe() to create crtc and encoder/connector for virtual display driver. So it fixes comments to exynos_drm_device_subdrv probe call. Signed-off-by: Inki Dae <[email protected]> Signed-off-by: Kyungmin Park <[email protected]>