summaryrefslogtreecommitdiff
path: root/drivers/gpu
AgeCommit message (Collapse)AuthorFilesLines
2014-11-18gpu: arm: Add mali400 r4p0_rel0 versionJoonyoung Shim152-14/+38240
This comes from in-house kernel. Change-Id: Ic3f3516e44e71ea9ca2e0b5caa6a9e836ffa599c Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
2014-11-18drm/exynos: add has_vtsel flagJoonyoung Shim1-1/+5
The exynos fimd provides video type selection bits from system register but exynos3 series don't has it, so needs has_vtsel flag and we can distinguish whether set video type selection bits. Change-Id: Iacba73e8813454b04551c2617107786f2d59d6ab Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: move triggering checkingJoonyoung Shim1-7/+7
It's better to be checking whether triggerring in fimd_trigger function. Also it will return if in triggerring on fimd_te_handler, then it can't execute remain codes. Change-Id: If8dbcbd139908af330ad59b5d4a66435fe0d77c6 Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
2014-11-18Revert "drm/exynos: fimd: make a wait_for_vblank event to be handled in same ↵Inki Dae1-9/+0
period" This reverts commit d69e45dccaea2e2da28751e0bdaeae67bba1aa78. Change-Id: I3600f9fc2d29f21c3a0726902f78fcf8d5dcd3d0 Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/panel: s6e63j0x03: correct lcd power statusInki Dae1-2/+12
This patch makes sure for panel driver to have correct power status. Change-Id: I33e6e64969ab6f2679f5f1f889ccfde27d81c901 Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/panel: s6e63j0x03: Fix uninitialized power stateKrzysztof Kozlowski1-0/+7
Fix following DSI panel enable error (booted init=/bin/sh): echo 0 > /sys/devices/platform/exynos-drm/graphics/fb0/blank [ 55.708859] exynos-dsi 11c80000.dsi: PLL input frequency: 24000000 [ 55.709038] exynos-dsi 11c80000.dsi: PLL freq 250000000, (p 3, m 125, s 2) [ 55.709107] exynos-dsi 11c80000.dsi: band 4 [ 55.709929] exynos-dsi 11c80000.dsi: PLL failed to stabilize [ 55.709987] exynos-dsi 11c80000.dsi: failed to configure DSI PLL [ 56.007706] exynos-dsi 11c80000.dsi: timeout waiting for reset [ 56.030676] exynos-dsi 11c80000.dsi: waiting for bus lanes timed out [ 56.030804] exynos-dsi 11c80000.dsi: < xfer df45fda8: tx len 3, done 0, rx len 0, done 0 [ 56.127024] exynos-dsi 11c80000.dsi: xfer timed out: 03 00 f1 5a 5a [ 56.127125] panel_s6e63j0x03 11c80000.dsi.0: failed to dcs write: -110[f1 5a 5a] The panel power state was initialized by devm_kzalloc() to 0 which means FB_BLANK_UNBLANK. Request to unblank frame buffer from sysfs was triggering a call to panel set_brightness(). This lead to starting DSI transfers on disabled DSI/panel (no calls to exynos_dsi_enable, s6e63j0x03_prepare, s6e63j0x03_enable) Change-Id: I146d46c92c96112a6c616daf83edc57c5b889902 Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/panel: s6e63j0x03: add brightness featureInki Dae1-4/+189
Change-Id: I9b4b9060a9c8ef63f969951da4bd1b9cc26fa553 Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: fimd: make a wait_for_vblank event to be handled in same periodInki Dae1-0/+9
This patch makes sure for a wait_for_vblank event to be handled in same period. For this, it adds a new member, triggerred which means whether trigger request is completed or not since trigger request. So if there is a trigger request, update-request, then this patch makes a wait_for_vblank event to be handled after the trigger request is completed. Change-Id: If1a2491a323b637d20806373e0502b2b0a9ff810 Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: fimd: handle finish pageflip at irq handlerInki Dae1-4/+2
In case of all modes, i80 and rgb modes, finish page flip request could be handled at irq handler after framedone. This patch is just for cleanup. Change-Id: Idb56e1932fbe7e085be0384eb35b68f699547d18 Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: fimd: handle wait vsync event at irq handlerInki Dae1-11/+5
in case of all modes, i80 and rgb modes, wait vsync event should be handled at irq handler after framedone. Change-Id: I7dbd38119c5c27a694e3b1c7c160f8205a4b028c Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: fimd: do not call fimd_trigger in atomic contextInki Dae1-0/+3
spin lock, win_updated_lock, isn't related to fimd_trigger. Change-Id: Ia9dd215a2a4809726c357f9de4104c09ce08dc0c Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: fimd: move handle vblank position in TE handlerYoungJun Cho1-3/+3
For providing VBLANK information, drm_handle_vblank() should be called properly, but it is blocked by wait_vsync_event condition which is set by manager_ops->wait_for_vblank(). So moves it out from wait_vsync_event routine. Change-Id: Id5fc56f65d582fd90ef261f50b302f12ef890353 Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: correct connector->dpms field before resumingInki Dae1-2/+6
During system suspend after connector switch off its dpms field is set to connector previous dpms state. To properly resume dpms field should be set to its actual state (off) before resuming to previous dpms state. Change-Id: I80acefcd408279c3c1cf3b0e89133dc6899a6914 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: remove pm runtime interfacesInki Dae1-29/+0
These interfaces aren't used anymore. Change-Id: Ia02fbd60b329a3193bb2fe009f55e410031365ac Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: fimd: fix screen shaking issueInki Dae1-0/+19
This patch fixes the issue that the screen is shared once resume. The issue could be incurred when overlay registers are updated by win_commit while transmitting video data. So this patch makes win_commit function wait for vsync signal if fimd is still transmitting video data before updating overlay registers. Change-Id: Ia5efff85ccad91cd6e8ff7a5e167a883c8e8d4aa Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/ipp: add file checks for ioctlsAndrzej Hajda1-44/+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. Change-Id: If30f01d497a61792d0407821dfd7943075e49e48 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/ipp: remove file argument from node related functionsAndrzej Hajda1-8/+6
Since file pointer is preserved in c_node passing it as argument in node functions is redundant. Change-Id: I7a302822ab441a4a572962698c41be31bc360b03 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/fimc: fix source buffer registersAndrzej Hajda1-5/+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. Change-Id: I359cfbc5c80221904659848d09d3778094c6393f Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/fimc: simplify buffer queuingAndrzej Hajda1-49/+15
The patch removes redundant checks, redundant HW reads and simplifies code. Change-Id: Ieb4020ea24b3d648c0cab0b22f0b97d3dd956fa6 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/fimc: do not enable fimc twiceAndrzej Hajda1-4/+1
The patch removes redundant H/W activation. Change-Id: Ia8a465f8a31e735b403616f21f7594b29604a02e Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/fimc: avoid clearing overflow bitsAndrzej Hajda1-3/+0
Overflow bits shall be cleared by H/W. Change-Id: Ia8dfd96c9e78d24565a959a2e9c7ee770039ff91 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/ipp: remove events during command cleaningAndrzej Hajda1-78/+78
Events were removed only during stop command, as a result there were memory leaks if program prematurely exited. This patch fixes it. Change-Id: I763b05753eb6bebe7ac3dc74da76dd08b5972142 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/ipp: stop hardware before freeing memoryAndrzej Hajda1-9/+7
Memory shouldn't be freed when hardware is still running. Change-Id: I2ac15beee14bf3d952a15367bf2f4d1366445eac Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/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. Change-Id: I0bc76f41e3cf97ad5bd70ae89f01f092513feacf Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/ipp: clean memory nodes on command node cleaningAndrzej Hajda1-3/+9
The nodes should be removed before removing command node. Change-Id: Ib97b737c9578c912737827b666ab0d94395a5334 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/ipp: move nodes cleaning to separate functionAndrzej Hajda1-157/+127
The patch introduces ipp_clean_mem_nodes function which replaces redundant code. Additionally memory node function definitions are moved up to increase its visibility. Change-Id: I3143c773be9646f28f8f3c55b711e17e21f67a8a Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/ipp: free partially allocated resources on errorAndrzej Hajda1-39/+31
In case of allocation errors some already allocated buffers were not freed. The patch fixes it. Change-Id: I23447928fb497ad33324fc2affa430bd2de98122 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/ipp: remove unused field in command nodeAndrzej Hajda2-3/+0
Since command node have file pointer dev field became useless. Change-Id: I3ee97a701b9b032e329a59fcc0ed7c122440c9b7 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/ipp: remove only related commands on file closeAndrzej Hajda1-8/+2
On file close driver should remove only command nodes created via this file. Change-Id: I1063955f02af7f1cd456b5e31165fe64ed136788 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/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. Change-Id: I98938d16d323a5f83614ae87c84485f8fa4efc69 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/ipp: cancel works before command node cleanAndrzej Hajda1-0/+5
All pending works should be canceled prior to its removal. Change-Id: I6adaf0fcc447f3fdbed4dd8cfb873e1b5d1fdb84 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos/ipp: remove fake pm callbacksAndrzej Hajda1-51/+0
PM callbacks in ipp core do nothing, so the patch removes it. Change-Id: I3fd9eb622b7c29b956dcfeff390004e66ced7e9f Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: scaler: add exynos drm sc driverHyungwon Hwang7-0/+2230
This patch adds exynos drm sc driver for Exynos 3250. Change-Id: Ia71c5354390e67494fd4887c8861a624d21e3839 Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2014-11-18exynos/drm: gsc: fix build error related with write backHyungwon Hwang1-4/+4
Fix the variable type and the macro name to make this driver buildable. Change-Id: I14f95c66db7bcfc8170e330e065f3de80c34ada8 Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2014-11-18exynos/drm: ipp: fix to get null when the list is emptyHyungwon Hwang1-4/+4
list_first_entry does not return null, when the list is empty. Change-Id: I014e2ef5ba035db3b6fc97e6821bc9869143f867 Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2014-11-18drm: fimc: support ipp dynamic color rangeDonghwa Lee1-1/+14
This patch support dynamic range for color space conversion. COLOR_RANGE_LIMITED: selects narrow -> Y(16 to 235), Cb/Cr(16 to 240) COLOR_RANGE_FULL: selects wide -> Y/Cb/Cr(0 to 255), Wide default Change-Id: I7bb62883b497b5b6869108247cc33b09c07f470e Signed-off-by: Donghwa Lee <dh09.lee@samsung.com>
2014-11-18drm/exynos: gsc: add device tree supportHyungwon Hwang1-0/+7
This patch makes Exynos DRM GSC driver compatible with device tree. Change-Id: I0e1abed40778c97c15ed5d52fc4568f0ee105c57 Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2014-11-18drm/exynos: gsc: enable DRM_EXYNOS_GSC for Exynos 3 seriesHyungwon Hwang1-1/+1
This patch makes Exynos DRM GSC driver buildable with Exynos 3 series, not only with Exynos 5 series. Change-Id: Ib8cda001f7aee34c1584923c4be43a3ed77c6e6d Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2014-11-18drm: fimd: support display writeback modeDonghwa Lee4-21/+111
This patch supports exynos drm display writeback mode that clone the screen with fimd like below. FIMD----->FIMC H/W---->MEMORY Change-Id: I8172ec6ee157e2e48a23b9776e11543c33716dc5 Signed-off-by: Donghwa Lee <dh09.lee@samsung.com>
2014-11-18drm/exynos: hdmi: fix macros for audio registersRobert Baldyga2-5/+5
This patch fix two things: - Remove duplicated HDMI_I2S_SEL_SDATA2(x) macro definition, add missing HDMI_I2S_SEL_SDATA0(x) macro and fix macro usage. - Fix HDMI_I2S_IN_DISABLE and HDMI_I2S_IN_ENABLE values and fix macro usage. Change-Id: I172913a61011292c3c912a3e8ccd84109924b906 Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
2014-11-18drm/panel: s6e63j0x03: decrease TE signal rate to 30HzInki Dae1-1/+1
Change-Id: If5b327b3e33cc518c72003de0b3b0e643b43ff42 Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: fimd: add exynos3250 SoC supportInki Dae1-8/+13
Change-Id: I18cd6a16b9ef66797ceb9b72bb37f626ae1d3856 Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: mipi-dsi: add exynos3250 SoC support.Inki Dae1-0/+14
Change-Id: I2b2618cba75472e07f32a873ec516103a9e2b9d8 Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18gpu/mali: add exynos3250 SoC supportInki Dae1-22/+55
This path adds exynos3250 SoC support with mali-400mp2 core, and cleans up codes related to clock. Change-Id: Icbba8769a7389a6e2876a27add0767ec5b603c0a Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm: add checking DRM_FORMAT_NV12MTJoonyoung Shim1-0/+5
If user NV12MT uses as pixel format, the Addfb2 ioctl is failed because of missing to check DRM_FORMAT_NV12MT. The NV12MT pixel format is supported by exynos4 and some qualcomm chipset and it is used by exynos drm driver. Change-Id: I94435dc3bff96377b9dd295d469e862ac637c6bc Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
2014-11-18drm/exynos: control blending of mixer graphic layer 0Joonyoung Shim1-0/+5
The mixer graphic layer 0 isn't blended as default by commit 0377f4ed9f1aed30292c4e3c87f24e028ae26f36(drm/exynos: Don't blend mixer layer 0). But it needs to be blended with graphic layer 0 if video layer is enabled by vp because video layer is bottom. Change-Id: I3c4a18c569463fab5cd210e654428bfae8fd5e2d Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
2014-11-18drm/gpu: mipi: Remove build error of drm_mipi_dsi.cChanwoo Choi1-0/+1
This patch remove build error of drm_mipi_dsi.c as following log: CC kernel/trace/trace.o drivers/gpu/drm/drm_mipi_dsi.c: In function ‘mipi_dsi_device_alloc’: drivers/gpu/drm/drm_mipi_dsi.c:78:3: error: implicit declaration of function ‘ERR_PTR’ [-Werror=implicit-function-declaration] drivers/gpu/drm/drm_mipi_dsi.c:78:3: warning: return makes pointer from integer without a cast [enabled by default] drivers/gpu/drm/drm_mipi_dsi.c: In function ‘of_mipi_dsi_device_add’: drivers/gpu/drm/drm_mipi_dsi.c:111:3: warning: return makes pointer from integer without a cast [enabled by default] drivers/gpu/drm/drm_mipi_dsi.c:117:3: warning: return makes pointer from integer without a cast [enabled by default] drivers/gpu/drm/drm_mipi_dsi.c:121:2: error: implicit declaration of function ‘IS_ERR’ [-Werror=implicit-function-declaration] drivers/gpu/drm/drm_mipi_dsi.c:123:4: error: implicit declaration of function ‘PTR_ERR’ [-Werror=implicit-function-declaration] drivers/gpu/drm/drm_mipi_dsi.c:123:4: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘int’ [-Wformat] drivers/gpu/drm/drm_mipi_dsi.c:135:3: warning: return makes pointer from integer without a cast [enabled by default] cc1: some warnings being treated as errors make[3]: *** [drivers/gpu/drm/drm_mipi_dsi.o Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2014-11-18drm/panel: add S6E63J0x03 MIPI-DSI command mode panelInki Dae3-0/+535
This patch adds s6e63j0x03 MIPI-DSI command mode panel driver which is used for Gear 2 wearable device. Change-Id: If3c8046af224afe5e947819eeff545a5b9dc04fc Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: use a new anon file for exynos gem mmaperInki Dae4-62/+52
This patch resolves potential deadlock issue that can be incurred by changing file->f_op and filp->private_data to exynos specific mapper ops and gem object temporarily. To resolve this issue, this patch creates a new anon file dedicated to exynos specific mmaper, and making it used instead of existing one. Change-Id: I7e49302561385f4a2ce4e06980c25481d0d2e91c Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-18drm/exynos: dsi: add driver data to support Exynos5420YoungJun Cho1-22/+135
The offset of register DSIM_PLLTMR_REG in Exynos5420 is different from the one in Exynos4 SoC. In case of Exynos5420 SoC, there is no frequency band bit in DSIM_PLLCTRL_REG, and it uses DSIM_PHYCTRL_REG and DSIM_PHYTIMING*_REG instead. So this patch adds driver data to distinguish it. Change-Id: Id5fad2e6042d28a73ed38de8657db9599d2cb782 Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>