Hsiao Chien Sung
a4c9410b31
drm/mediatek: Set DRM mode configs accordingly
...
Set DRM mode configs limitation according to the hardware capabilities
and pass the IGT checks as below:
- The test "graphics.IgtKms.kms_plane" requires a frame buffer with
width of 4512 pixels (> 4096).
- The test "graphics.IgtKms.kms_cursor_crc" checks if the cursor size is
defined, and run the test with cursor size from 1x1 to 512x512.
Please notice that the test conditions may change as IGT is updated.
Reviewed-by: CK Hu <ck.hu@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Fixes: 119f517362 ("drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.")
Signed-off-by: Hsiao Chien Sung <shawn.sung@mediatek.com >
Link: https://patchwork.kernel.org/project/dri-devel/patch/20240620-igt-v3-10-a9d62d2e2c7e@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2024-06-20 13:57:36 +00:00
Hsiao Chien Sung
7026ee0b3d
drm/mediatek: Rename files "mtk_drm_ddp_comp.h" to "mtk_ddp_comp.h"
...
Rename files mtk_drm_ddp_comp.h to mtk_ddp_comp.h.
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Reviewed-by: CK Hu <ck.hu@mediatek.com >
Signed-off-by: Hsiao Chien Sung <shawn.sung@mediatek.corp-partner.google.com >
Link: https://patchwork.kernel.org/project/dri-devel/patch/20240322091232.26387-9-shawn.sung@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2024-04-01 15:26:45 +00:00
Hsiao Chien Sung
9e14987903
drm/mediatek: Rename "mtk_drm_crtc" to "mtk_crtc"
...
Rename all "mtk_drm_crtc" to "mtk_crtc" due to the following benefits:
- Lower the matches when searching the native drm_crtc* codes
- Reduce the code size
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Reviewed-by: CK Hu <ck.hu@mediatek.com >
Signed-off-by: Hsiao Chien Sung <shawn.sung@mediatek.corp-partner.google.com >
Link: https://patchwork.kernel.org/project/dri-devel/patch/20240322091232.26387-2-shawn.sung@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2024-04-01 15:05:32 +00:00
Hsiao Chien Sung
ba527e9a11
drm/mediatek: Support MT8188 Padding in display driver
...
Padding is a new display module on MT8188, it provides ability
to add pixels to width and height of a layer with specified colors.
Due to hardware design, Mixer in VDOSYS1 requires width of a layer
to be 2-pixel-align, or 4-pixel-align when ETHDR is enabled,
we need Padding to deal with odd width.
Reviewed-by: CK Hu <ck.hu@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Signed-off-by: Hsiao Chien Sung <shawn.sung@mediatek.com >
Link: https://patchwork.kernel.org/project/dri-devel/patch/20231214055847.4936-19-shawn.sung@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2023-12-14 14:45:36 +00:00
Jason-JH.Lin
01389b324c
drm/mediatek: Add connector dynamic selection capability
...
Add dynamic select available connector flow in mtk_drm_crtc_create()
and mtk_drm_crtc_atomic_enable().
In mtk_drm_crtc_create(), if there is a connector routes array in drm
driver data, all components definded in the connector routes array will
be checked and their encoder_index will be set.
In mtk_drm_crtc_atomic_enable(), crtc will check its encoder_index to
identify which componet in the connector routes array should append.
Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com >
Signed-off-by: Nancy Lin <nancy.lin@mediatek.com >
Signed-off-by: Nathan Lu <nathan.lu@mediatek.com >
Tested-by: Fei Shao <fshao@chromium.org >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Reviewed-by: CK Hu <ck.hu@mediatek.com >
Link: https://patchwork.kernel.org/project/dri-devel/patch/20231004024013.18956-6-jason-jh.lin@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2023-10-08 00:57:21 +00:00
Jason-JH.Lin
26c35d1d16
drm/mediatek: Add crtc path enum for all_drm_priv array
...
Add mtk_drm_crtc_path enum for each display path.
Instead of using array index of all_drm_priv in mtk_drm_kms_init(),
mtk_drm_crtc_path enum can make code more readable.
Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com >
Reviewed-by: Fei Shao <fshao@chromium.org >
Reviewed-by: CK Hu <ck.hu@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Tested-by: Fei Shao <fshao@chromium.org >
Link: https://patchwork.kernel.org/project/dri-devel/patch/20231004024013.18956-3-jason-jh.lin@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2023-10-08 00:47:58 +00:00
Nancy.Lin
0d9eee9118
drm/mediatek: Add drm ovl_adaptor sub driver for MT8195
...
Add drm ovl_adaptor sub driver. Bring up ovl_adaptor sub driver if
the component exists in the path.
Signed-off-by: Nancy.Lin <nancy.lin@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Tested-by: Bo-Chen Chen <rex-bc.chen@mediatek.com >
Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com >
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20230321121859.2355-7-nancy.lin@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2023-03-22 16:45:23 +00:00
Nancy.Lin
1ef7ed4835
drm/mediatek: Modify mediatek-drm for mt8195 multi mmsys support
...
MT8195 have two mmsys. Modify drm for MT8195 multi-mmsys support.
The two mmsys (vdosys0 and vdosys1) will bring up two drm drivers,
only one drm driver register as the drm device.
Each drm driver binds its own component. The last bind drm driver
allocates and registers the drm device to drm core.
Each crtc path is created with the corresponding drm driver data.
Signed-off-by: Nancy.Lin <nancy.lin@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Tested-by: Bo-Chen Chen <rex-bc.chen@mediatek.com >
Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com >
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20230321121859.2355-6-nancy.lin@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2023-03-22 16:33:42 +00:00
Nancy.Lin
453c336463
drm/mediatek: Add ovl_adaptor support for MT8195
...
Add ovl_adaptor driver for MT8195.
Ovl_adaptor is an encapsulated module and designed for simplified
DRM control flow. This module is composed of 8 RDMAs, 4 MERGEs and
an ETHDR. Two RDMAs merge into one layer, so this module support 4
layers.
Signed-off-by: Nancy.Lin <nancy.lin@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Tested-by: Bo-Chen Chen <rex-bc.chen@mediatek.com >
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20230321121859.2355-4-nancy.lin@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2023-03-22 16:25:16 +00:00
Nancy.Lin
d886c0009b
drm/mediatek: Add ETHDR support for MT8195
...
ETHDR is a part of ovl_adaptor.
ETHDR is designed for HDR video and graphics conversion in the external
display path. It handles multiple HDR input types and performs tone
mapping, color space/color format conversion, and then combine
different layers, output the required HDR or SDR signal to the
subsequent display path.
Signed-off-by: Nancy.Lin <nancy.lin@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Tested-by: Bo-Chen Chen <rex-bc.chen@mediatek.com >
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20230321121859.2355-3-nancy.lin@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2023-03-22 16:25:00 +00:00
Jason-JH.Lin
813420eb47
drm/mediatek: Change mmsys compatible for mt8195 mediatek-drm
...
Because compatible of mt8195 is changing from "mediatek,mt8195-mmsys"
to "mediatek,mt8195-vdosys0".
We have to revert the multiple compatible finding function and
add driver data of mt8195 vdosys0 to mediatek-drm and the sub driver.
Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20230306080659.15261-2-jason-jh.lin@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2023-03-06 15:01:10 +00:00
Nancy.Lin
f8946e2b6b
drm/mediatek: Add display MDP RDMA support for MT8195
...
Add MDP_RDMA driver for MT8195. MDP_RDMA is the DMA engine of
the ovl_adaptor component.
Signed-off-by: Nancy.Lin <nancy.lin@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Tested-by: Bo-Chen Chen <rex-bc.chen@mediatek.com >
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20220620091930.27797-4-nancy.lin@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2022-06-27 22:24:14 +08:00
jason-jh.lin
7266e90a51
drm/mediatek: Add mediatek-drm of vdosys0 support for mt8195
...
1. Add driver data of mt8195 vdosys0 to mediatek-drm and the sub driver.
2. Add get driver data function to identify which vdosys by io_start.
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20220526102126.19756-4-jason-jh.lin@mediatek.com/
Signed-off-by: jason-jh.lin <jason-jh.lin@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com >
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2022-06-06 21:19:17 +08:00
jason-jh.lin
bd448b8867
drm/mediatek: Add MERGE support for mediatek-drm
...
Add MERGE engine file:
MERGE module is used to merge two slice-per-line inputs
into one side-by-side output.
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20220526102126.19756-3-jason-jh.lin@mediatek.com/
Signed-off-by: jason-jh.lin <jason-jh.lin@mediatek.com >
Acked-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2022-06-06 21:16:02 +08:00
Yongqiang Niu
78d1783c32
drm/mediatek: Separate aal sub driver
...
MT8173 aal has gamma function but mt8183 aal has no gamma
function, so separate aal sub driver to have a private
data for different SoC.
Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com >
Tested-by: Hsin-Yi Wang <hsinyi@chromium.org >
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2021-07-25 08:25:45 +08:00
Yongqiang Niu
072a4cb512
drm/mediatek: Separate ccorr module
...
ccorr ctm matrix bits will be different in mt8192.
Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com >
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org >
Reviewed-by: CK Hu <ck.hu@mediatek.com >
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2021-02-04 22:55:46 +08:00
Yongqiang Niu
69a4237ab1
drm/mediatek: Separate gamma module
...
mt8183 gamma module will different with mt8173,
so separate gamma for adding private data.
Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com >
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org >
Reviewed-by: CK Hu <ck.hu@mediatek.com >
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2021-02-04 22:55:46 +08:00
CK Hu
e1e4f7fea3
soc / drm: mediatek: Move mtk mutex driver to soc folder
...
mtk mutex is used by DRM and MDP driver, and its function is SoC-specific,
so move it to soc folder.
Signed-off-by: CK Hu <ck.hu@mediatek.com >
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
Acked-by: Matthias Brugger <matthias.bgg@gmail.com >
2021-02-04 22:55:46 +08:00
CK Hu
4971593f8e
drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver
...
mtk mutex is used by both drm and mdp driver, so change disp/ddp term to
mutex to show that it's a common driver for drm and mdp.
Signed-off-by: CK Hu <ck.hu@mediatek.com >
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2021-02-04 22:55:46 +08:00
CK Hu
ff1395609e
drm/mediatek: Move mtk_ddp_comp_init() from sub driver to DRM driver
...
Some ddp component exist in both display path and other path, so
sub driver should not directly call DRM driver's function. Moving
mtk_ddp_comp_init() from sub driver to DRM driver to achieve this.
Signed-off-by: CK Hu <ck.hu@mediatek.com >
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2021-01-07 06:28:16 +08:00
Chun-Kuang Hu
c3c88422fa
drm/mediatek: Separate mtk_mipi_tx to an independent module
...
mtk_mipi_tx is a part of mtk_drm module, but phy driver should be an
independent module rather than be part of drm module, so separate the phy
driver to an independent module.
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2020-11-30 23:37:40 +08:00
Robin Murphy
31855cff03
drm/mediatek: Drop local dma_parms
...
Since commit 9495b7e92f ("driver core: platform: Initialize dma_parms
for platform devices"), struct platform_device already provides a
dma_parms structure, so we can save allocating another one.
Also the DMA segment size is simply a size, not a bitmask.
Signed-off-by: Robin Murphy <robin.murphy@arm.com >
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
2020-11-22 08:12:50 +08:00
Enric Balletbo i Serra
2c758e301e
soc / drm: mediatek: Move routing control to mmsys device
...
Provide a mtk_mmsys_ddp_connect() and mtk_mmsys_disconnect() functions to
replace mtk_ddp_add_comp_to_path() and mtk_ddp_remove_comp_from_path().
Those functions will allow DRM driver and others to control the data
path routing.
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com >
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com >
Reviewed-by: CK Hu <ck.hu@mediatek.com >
Acked-by: CK Hu <ck.hu@mediatek.com >
Tested-by: Anders Roxell <anders.roxell@linaro.org >
Reviewed-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com >
2020-04-13 13:01:16 +02:00
Bibby Hsieh
60b874f642
drm/mediatek: use DRM core's atomic commit helper
...
The DRM core atomic helper now supports asynchronous commits natively.
The custom drm implementation isn't needed anymore, remove it.
Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com >
Signed-off-by: CK Hu <ck.hu@mediatek.com >
2019-12-20 16:19:11 +08:00
Alexandre Courbot
070955558e
drm/mediatek: set DMA max segment size
...
This driver requires imported PRIME buffers to appear contiguously in
its IO address space. Make sure this is the case by setting the maximum
DMA segment size to a more suitable value than the default 64KB.
Signed-off-by: Alexandre Courbot <acourbot@chromium.org >
Reviewed-by: Tomasz Figa <tfiga@chromium.org >
Signed-off-by: CK Hu <ck.hu@mediatek.com >
2019-08-15 07:43:46 +08:00
Thomas Gleixner
1802d0beec
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174
...
Based on 1 normalized pattern(s):
this program is free software you can redistribute it and or modify
it under the terms of the gnu general public license version 2 as
published by the free software foundation this program is
distributed in the hope that it will be useful but without any
warranty without even the implied warranty of merchantability or
fitness for a particular purpose see the gnu general public license
for more details
extracted by the scancode license scanner the SPDX license identifier
GPL-2.0-only
has been chosen to replace the boilerplate/reference in 655 file(s).
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Allison Randal <allison@lohutok.net >
Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org >
Reviewed-by: Richard Fontana <rfontana@redhat.com >
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190527070034.575739538@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2019-05-30 11:26:41 -07:00
stu.hsieh@mediatek.com
561fad31e6
drm/mediatek: add third ddp path
...
This patch create third crtc by third ddp path
Signed-off-by: Stu Hsieh <stu.hsieh@mediatek.com >
Signed-off-by: CK Hu <ck.hu@mediatek.com >
2018-06-24 12:09:01 +08:00
yt.shen@mediatek.com
5ac5895a84
drm/mediatek: separate color module to fixup error memory reallocation
...
Previous patch (c5f228ef6c drm/mediatek: add *driver_data for different
hardware settings) calls devm_kfree() and then devm_kzalloc() to
reallocate color module data structure. But this reallocation cannnot
guarantee the new address is unchanged, but the caller will use the
old address, which is wrong.
Fix it by separate color module from general components, this patch
separate color module to independent files, like mtk_disp_ovl.c and
mtk_disp_rdma.c do
Fixes: c5f228ef6c ("drm/mediatek: add *driver_data for different hardware settings")
Signed-off-by: YT Shen <yt.shen@mediatek.com >
Tested-by: Bibby Hsieh <bibby.hsieh@mediatek.com >
Signed-off-by: CK Hu <ck.hu@mediatek>
2017-06-27 17:34:53 +08:00
yt.shen@mediatek.com
9dc84e98a3
drm/mediatek: add shadow register support
...
We need to acquire mutex before using the resources,
and need to release it after finished.
So we don't need to write registers in the blanking period.
Signed-off-by: YT Shen <yt.shen@mediatek.com >
Acked-by: CK Hu <ck.hu@mediatek.com >
2017-04-08 00:02:13 +08:00
yt.shen@mediatek.com
c5f228ef6c
drm/mediatek: add *driver_data for different hardware settings
...
There are some hardware settings changed, between MT8173 & MT2701:
DISP_OVL address offset changed, color format definition changed.
DISP_RDMA fifo size changed.
DISP_COLOR offset changed.
MIPI_TX pll setting changed.
And add prefix for mtk_ddp_main & mtk_ddp_ext & mutex_mod.
Signed-off-by: YT Shen <yt.shen@mediatek.com >
Acked-by: CK Hu <ck.hu@mediatek.com >
2017-04-08 00:02:12 +08:00
Shawn Guo
ffec892583
drm: mediatek: use crtc helper drm_crtc_from_index()
...
Use drm_crtc_from_index() to find drm_crtc for given index, so that we
do not need to maintain a pointer array in struct mtk_drm_private.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org >
Cc: CK Hu <ck.hu@mediatek.com >
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Link: http://patchwork.freedesktop.org/patch/msgid/1483961145-18453-4-git-send-email-shawnguo@kernel.org
2017-01-18 09:21:06 -05:00
Jie Qiu
9e629c17aa
drm/mediatek: Add DPI sub driver
...
Add DPI connector/encoder to support HDMI output via the
attached HDMI bridge.
Signed-off-by: Jie Qiu <jie.qiu@mediatek.com >
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de >
2016-05-06 17:47:38 +02:00
CK Hu
2e54c14e31
drm/mediatek: Add DSI sub driver
...
This patch add a drm encoder/connector driver for the MIPI DSI function
block of the Mediatek display subsystem and a phy driver for the MIPI TX
D-PHY control module.
Signed-off-by: Jitao Shi <jitao.shi@mediatek.com >
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de >
2016-05-06 17:47:37 +02:00
CK Hu
119f517362
drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.
...
This patch adds an initial DRM driver for the Mediatek MT8173 DISP
subsystem. It currently supports two fixed output streams from the
OVL0/OVL1 sources to the DSI0/DPI0 sinks, respectively.
Signed-off-by: CK Hu <ck.hu@mediatek.com >
Signed-off-by: YT Shen <yt.shen@mediatek.com >
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org >
Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com >
Signed-off-by: Mao Huang <littlecvr@chromium.org >
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de >
2016-05-06 17:47:35 +02:00