aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-09-20drm/exynos: use drm generic mmap interfaceInki Dae5-132/+16
This patch removes DRM_EXYNOS_GEM_MMAP ictrl feature specific to Exynos drm and instead uses drm generic mmap. We had used the interface specific to Exynos drm to do mmap directly, not to use demand paging which maps each page with physical memory at page fault handler. We don't need the specific mmap interface because the drm generic mmap which uses vm offset manager stuff can also do mmap directly. This patch makes a userspace region to be mapped with whole physical memory region allocated by userspace request when mmap system call is requested. Changelog v2: - do not set VM_IO, VM_DONTEXPEND and VM_DONTDUMP. These flags were already set by drm_gem_mmap - do not include <linux/anon_inodes.h>, which isn't needed anymore. Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos: remove DRM_EXYNOS_GEM_MAP_OFFSET ioctlInki Dae4-42/+0
This interface and relevant codes aren't used anymore. Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos: factor out initial setting of each driverJoonyoung Shim3-34/+17
From fimd driver and vidi driver, dev->irq_enabled and dev->vblank_disable_allowed are set and also mixer needs them even if missed. It's duplicated so set them when loads drm driver. Signed-off-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/hdmi: unregister connector on removalAndrzej Hajda1-1/+3
During component removal driver should unregister connector. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/dp: unregister connector on removalAndrzej Hajda1-1/+3
During component removal driver should unregister connector. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/dpi: unregister connector and panel on removalAndrzej Hajda1-1/+5
During component removal it should unregister connector and optionally detach the panel. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/dsi: unregister connector on removalAndrzej Hajda1-3/+6
During component unbind connector should be unregistered. Also DSI host should be unregistered after KMS cleanup. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/fb: free exynos framebuffer on errorAndrzej Hajda1-0/+1
In case drm_framebuffer_init fails exynos_fb should be freed before returning an error. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/fbdev: fix fbdev gem object cleanupAndrzej Hajda1-3/+0
exynos_gem_obj is used by exynos_drm_fbdev_destroy so it cannot be destroyed before calling the latter. exynos_gem_obj will be destroyed anyway by exynos_drm_fbdev_destroy->...->exynos_drm_fb_destroy. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos: fix drm driver de-initialization orderAndrzej Hajda1-4/+4
Since components have their own cleanup routines calling drm_mode_config_cleanup before component_unbind_all causes errors due to double free of KMS objects. The patch fixes it by changing de-initialization order. Now it is exactly opposite to init order. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: traverse ipp drivers list safelyAndrzej Hajda1-2/+2
On ipp subsystem removal list of ipp drivers is traversed and their members are deleted. To do it properly safe version of list_for_each* should be used. Signed-off-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos: update to use component match supportInki Dae1-22/+22
Update Exynos's DRM driver to use component match support rater than add_components. Changelog v2: - release devices and drivers if failed. - change compare_of to compare_dev. Signed-off-by: Inki Dae <[email protected]> Tested-by: Andrzej Hajda <[email protected]>
2014-09-20drm/exynos/ipp: add file checks for ioctlsAndrzej Hajda1-47/+22
Process should not have access to ipp nodes created by another process. The patch adds necessary checks. It also simplifies lookup for command node. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: remove file argument from node related functionsAndrzej Hajda1-7/+5
Since file pointer is preserved in c_node passing it as argument in node functions is redundant. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/fimc: fix source buffer registersAndrzej Hajda1-8/+8
FIMC in default mode of operation uses only one input buffer, but the driver used also second buffer, as a result only the first frame was processed correctly. The patch fixes it. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/fimc: simplify buffer queuingAndrzej Hajda1-49/+15
The patch removes redundant checks, redundant HW reads and simplifies code. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/fimc: do not enable fimc twiceAndrzej Hajda1-4/+1
The patch removes redundant H/W activation. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/fimc: avoid clearing overflow bitsAndrzej Hajda1-3/+0
Overflow bits shall be cleared by H/W. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: remove events during command cleaningAndrzej Hajda1-77/+78
Events were removed only during stop command, as a result there were memory leaks if program prematurely exited. This patch fixes it. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: stop hardware before freeing memoryAndrzej Hajda1-9/+6
Memory shouldn't be freed when hardware is still running. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: replace work_struct casting with better constructsAndrzej Hajda4-8/+6
Type casting should be avoided if possible. In case of work_struct it can be simply replaced by reference to member field. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: clean memory nodes on command node cleaningAndrzej Hajda1-0/+5
The nodes should be removed before removing command node. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: move nodes cleaning to separate functionAndrzej Hajda1-123/+106
The patch introduces ipp_clean_mem_nodes function which replaces redundant code. Additionally memory node function definitions are moved up to increase its visibility. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: free partially allocated resources on errorAndrzej Hajda1-35/+32
In case of allocation errors some already allocated buffers were not freed. The patch fixes it. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: remove unused field in command nodeAndrzej Hajda2-3/+0
Since command node have file pointer dev field became useless. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: remove only related commands on file closeAndrzej Hajda1-4/+1
On file close driver should remove only command nodes created via this file. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: move file reference from memory to command nodeAndrzej Hajda2-3/+4
Command node should contain file reference to distinguish commands created by different processes. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: cancel works before command node cleanAndrzej Hajda1-0/+5
All pending works should be canceled prior to its removal. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/ipp: remove fake pm callbacksAndrzej Hajda1-51/+0
PM callbacks in ipp core do nothing, so the patch removes it. Signed-off-by: Andrzej Hajda <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos: fimd: fix window clear codeMarek Szyprowski1-6/+19
To correctly disable hardware window during driver init, both enable bits (WINCONx_ENWIN in WINCON and SHADOWCON_CHx_ENABLE in SHADOWCON) must be cleared, otherwise hardware fails to re-enable such window later. While touching this function, also temporarily disable ctx->suspended flag to let fimd_wait_for_vblank function really to do its job. Signed-off-by: Marek Szyprowski <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos/fbdev: set smem_len for fbdevDaniel Kurtz1-0/+1
Commit [0] stopped setting fix.smem_start and fix.smem_len when creating the fbdev. [0] 2f1eab8d8ab59e799f7d51d62410b398607a7bc3 drm/exynos/fbdev: don't set fix.smem/mmio_{start,len} However, smem_len is used by some userland applications to calculate the size for mmap. In particular, it is used by xf86-video-fbdev: http://cgit.freedesktop.org/xorg/xserver/tree/hw/xfree86/fbdevhw/fbdevhw.c?id=xorg-server-1.15.99.903#n571 So, let's restore setting the smem_len to unbreak things for these users. Note: we are still leaving smem_start set to 0. Reported-by: Siarhei Siamashka <[email protected]> Reported-by: Gunther Noack <[email protected]> Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-20ARM: dts: add mipi dsi device node to exynos3250.dtsiInki Dae1-0/+15
Signed-off-by: Inki Dae <[email protected]> Reviewed-by: Andrzej Hajda <[email protected]>
2014-09-20ARM: dts: add mipi_phy device node to exynos3250.dtsiInki Dae1-0/+6
This patch adds mipi_phy device node to reset, disable and enable DSIM and CSIS PHY. Signed-off-by: Inki Dae <[email protected]> Reviewed-by: Andrzej Hajda <[email protected]>
2014-09-20ARM: dts: add fimd device node to exynos3250.dstiInki Dae1-0/+12
Signed-off-by: Inki Dae <[email protected]> Reviewed-by: Andrzej Hajda <[email protected]>
2014-09-20drm/exynos: fimd: add Exynos3 SoC supportInki Dae2-0/+11
Signed-off-by: Inki Dae <[email protected]> Reviewed-by: Andrzej Hajda <[email protected]>
2014-09-20drm/exynos: mipi-dsi: add Exynos3 SoC supportInki Dae2-0/+9
This patch adds Exynos3250/3472 SoCs support. Signed-off-by: Inki Dae <[email protected]> Reviewed-by: Andrzej Hajda <[email protected]>
2014-09-20drm/exynos: mipi-dsi: consider non-continuous clock modeInki Dae1-0/+19
This patch adds non-continuous clock mode support Clock mode on Clock Lane is continuous clock by default. So if we want to transmit data in non-continuous clock mode to reduce power consumption, then host driver should set DSIM_CLKLANE_STOP bit. In this case, host controller turns off HS clock between high speed transmissions. For this, this patch adds a new bit, DSIM_CLKLANE_STOP, and makes the host driver sets this bit only in case that dsi->mode_flags has MIPI_DSI_CLOCK_NON_CONTINUOUS flag. Signed-off-by: Inki Dae <[email protected]> Reviewed-by: Andrzej Hajda <[email protected]>
2014-09-20drm/mipi-dsi: consider low power transmissionInki Dae2-0/+8
This patch adds a new flag, MIPI_DSI-MODE_LPM, to transmit data in low power. With this flag, msg.flags has MIPI_DSI_MSG_USE_LPM so that host driver of each SoC can clear or set relevant register bit for low power transmission. All host drivers shall support continuous clock behavior on the Clock Lane, and optionally may support non-continuous clock behavior. Both of them can transmit data in high speed of low power. With each clock behavior, non-continuous or continuous clock mode, host controller will transmit data in high speed by default so if peripheral wants to receive data in low power, the peripheral driver should set MIPI_DSI_MODE_LPM flag. Signed-off-by: Inki Dae <[email protected]>
2014-09-20drm/exynos: dsi: fix exynos_dsi_set_pll() wrong return valueYoungJun Cho1-2/+2
The type of this function is unsigned long, and it is expected to return proper fout value or zero if something is wrong. So this patch fixes wrong return value for error cases. Signed-off-by: YoungJun Cho <[email protected]> Acked-by: Inki Dae <[email protected]> Acked-by: Kyungmin Park <[email protected]> Acked-by: Andrzej Hajda <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2014-09-18Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev into drm-nextDave Airlie41-198/+645
Commit "drm/rcar-du: Use struct videomode in platform data" touches board code in arch/arm/mach-shmobile. There is, to the best of my knowledge, no risk of conflict for v3.18. Simon, are you fine with getting those changes merged through Dave's tree (and could you confirm that no conflict should occur) ? Simon acked the merge: Acked-by: Simon Horman <[email protected]> * 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev: drm/rcar-du: Add OF support drm/rcar-du: Use struct videomode in platform data video: Add DT bindings for the R-Car Display Unit video: Add THC63LVDM83D DT bindings documentation video: Add ADV7123 DT bindings documentation video: Add DT binding documentation for VGA connector devicetree: Add vendor prefix "thine" to vendor-prefixes.txt devicetree: Add vendor prefix "mitsubishi" to vendor-prefixes.txt drm/shmob: Update copyright notice drm/rcar-du: Update copyright notice
2014-09-17drm/ttm: make sure format string cannot leak inKees Cook1-1/+2
While zone->name is currently hard coded, the call to kobject_init_and_add() should follow the more defensive argument list usage (as already done in other places in ttm_memory.c) where "%s" is used instead of directly passing in a variable as a format string. Signed-off-by: Kees Cook <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-17drm/tilcdc: panel: Add support for enable GPIOEzequiel Garcia2-5/+34
In order to support the "enable GPIO" available in many panel devices, this commit adds a proper devicetree binding. By providing an enable GPIO in the devicetree, the driver can now turn off and on the panel device, and/or the backlight device. Both the backlight and the GPIO are optional properties. Tested-by: Darren Etheridge <[email protected]> Tested-by: Johannes Pointner <[email protected]> Signed-off-by: Ezequiel Garcia <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-17drm/tilcdc: panel: Set return value explicitlyEzequiel Garcia1-1/+3
Instead of setting an initial value for the return code, set it explicitly on each error path. This is just a cosmetic cleanup, as preparation for the enable GPIO support. Tested-by: Darren Etheridge <[email protected]> Tested-by: Johannes Pointner <[email protected]> Signed-off-by: Ezequiel Garcia <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-17drm/tilcdc: panel: Fix backlight devicetree supportEzequiel Garcia2-5/+23
The current backlight support is broken; the driver expects a backlight-class in the panel devicetree node. Fix this by implementing it properly, getting an optional backlight from a phandle. This shouldn't cause any backward-compatibility DT issue because the current implementation doesn't work and is not even documented. Tested-by: Darren Etheridge <[email protected]> Tested-by: Johannes Pointner <[email protected]> Signed-off-by: Ezequiel Garcia <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-17drm/tilcdc: panel: Use devm_kzalloc to simplify the error pathEzequiel Garcia1-3/+1
Using the managed variant to allocate the resource makes the code simpler and less error-prone. Tested-by: Darren Etheridge <[email protected]> Tested-by: Johannes Pointner <[email protected]> Signed-off-by: Ezequiel Garcia <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-17drm/tilcdc: panel: Spurious whitespace removalEzequiel Garcia1-1/+0
Just a cosmetic cleanup. Tested-by: Darren Etheridge <[email protected]> Tested-by: Johannes Pointner <[email protected]> Signed-off-by: Ezequiel Garcia <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-17drm/tilcdc: panel: Remove unused variableEzequiel Garcia1-2/+0
Just a trivial cleanup to remove the variable. Tested-by: Darren Etheridge <[email protected]> Tested-by: Johannes Pointner <[email protected]> Signed-off-by: Ezequiel Garcia <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-17drm/tilcdc: panel: Add missing of_node_putEzequiel Garcia1-0/+3
This commit adds the missing calls to of_node_put to release the node that's currently held by the of_get_child_by_name() call in the panel info parsing code. Tested-by: Darren Etheridge <[email protected]> Tested-by: Johannes Pointner <[email protected]> Signed-off-by: Ezequiel Garcia <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-17drm/tilcdc: Fix the error path in tilcdc_load()Ezequiel Garcia1-10/+50
The current error path calls tilcdc_unload() in case of an error to release the resources. However, this is wrong because not all resources have been allocated by the time an error occurs in tilcdc_load(). To fix it, this commit adds proper labels to bail out at the different stages in the load function, and release only the resources actually allocated. Tested-by: Darren Etheridge <[email protected]> Tested-by: Johannes Pointner <[email protected]> Signed-off-by: Ezequiel Garcia <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-16Merge tag 'drm-intel-next-2014-09-05' of ↵Dave Airlie40-1488/+2911
git://anongit.freedesktop.org/drm-intel into drm-next - final bits (again) for the rotation support (Sonika Jindal) - support bl_power in the intel backlight (Jani) - vdd handling improvements from Ville - i830M fixes from Ville - piles of prep work all over to make skl enabling just plug in (Damien, Sonika) - rename DP training defines to reflect latest edp standards, this touches all drm drivers supporting DP (Sonika Jindal) - cache edids during single detect cycle to avoid re-reading it for e.g. audio, from Chris - move w/a for registers which are stored in the hw context to the context init code (Arun&Damien) - edp panel power sequencer fixes, helps chv a lot (Ville) - piles of other chv fixes all over - much more paranoid pageflip handling with stall detection and better recovery from Chris - small things all over, as usual * tag 'drm-intel-next-2014-09-05' of git://anongit.freedesktop.org/drm-intel: (114 commits) drm/i915: Update DRIVER_DATE to 20140905 drm/i915: Decouple the stuck pageflip on modeset drm/i915: Check for a stalled page flip after each vblank drm/i915: Introduce a for_each_plane() macro drm/i915: Rewrite ABS_DIFF() in a safer manner drm/i915: Add comments explaining the vdd on/off functions drm/i915: Move DP port disable to post_disable for pch platforms drm/i915: Enable DP port earlier drm/i915: Turn on panel power before doing aux transfers drm/i915: Be more careful when picking the initial power sequencer pipe drm/i915: Reset power sequencer pipe tracking when disp2d is off drm/i915: Track which port is using which pipe's power sequencer drm/i915: Fix edp vdd locking drm/i915: Reset the HEAD pointer for the ring after writing START drm/i915: Fix unsafe vma iteration in i915_drop_caches drm/i915: init sprites with univeral plane init function drm/i915: Check of !HAS_PCH_SPLIT() in PCH transcoder funcs drm/i915: Use HAS_GMCH_DISPLAY un underrun reporting code drm/i915: Use IS_BROADWELL() instead of IS_GEN8() in forcewake code drm/i915: Don't call gen8_fbc_sw_flush() on chv ...