* [PATCH v2 0/5] Share mtk mutex driver for both DRM and MDP @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: linux-kernel, dri-devel, linux-mediatek, linux-arm-kernel, Chun-Kuang Hu mtk mutex is a driver used by DRM and MDP [1], so this series move mtk mutex driver from DRM folder to soc folder, so it could be used by DRM and MDP. Changes in v2: 1. Rebase onto mediatek-drm-next [2]. 2. Export symbol for mtk-mutex API. [1] https://patchwork.kernel.org/patch/11140751/ [2] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next CK Hu (5): drm/mediatek: Remove redundant file including drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver drm/mediatek: Automatically search unclaimed mtk mutex in mtk_mutex_get() soc / drm: mediatek: Move mtk mutex driver to soc folder drivers/gpu/drm/mediatek/Makefile | 1 - drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 32 +- drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 28 -- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 3 - drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - drivers/soc/mediatek/Makefile | 1 + .../mediatek/mtk-mutex.c} | 328 +++++++++--------- include/linux/soc/mediatek/mtk-mutex.h | 26 ++ 8 files changed, 212 insertions(+), 208 deletions(-) delete mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp.h rename drivers/{gpu/drm/mediatek/mtk_drm_ddp.c => soc/mediatek/mtk-mutex.c} (53%) create mode 100644 include/linux/soc/mediatek/mtk-mutex.h -- 2.17.1 ^ permalink raw reply [flat|nested] 50+ messages in thread
* [PATCH v2 0/5] Share mtk mutex driver for both DRM and MDP @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: linux-arm-kernel, Chun-Kuang Hu, linux-mediatek, linux-kernel, dri-devel mtk mutex is a driver used by DRM and MDP [1], so this series move mtk mutex driver from DRM folder to soc folder, so it could be used by DRM and MDP. Changes in v2: 1. Rebase onto mediatek-drm-next [2]. 2. Export symbol for mtk-mutex API. [1] https://patchwork.kernel.org/patch/11140751/ [2] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next CK Hu (5): drm/mediatek: Remove redundant file including drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver drm/mediatek: Automatically search unclaimed mtk mutex in mtk_mutex_get() soc / drm: mediatek: Move mtk mutex driver to soc folder drivers/gpu/drm/mediatek/Makefile | 1 - drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 32 +- drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 28 -- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 3 - drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - drivers/soc/mediatek/Makefile | 1 + .../mediatek/mtk-mutex.c} | 328 +++++++++--------- include/linux/soc/mediatek/mtk-mutex.h | 26 ++ 8 files changed, 212 insertions(+), 208 deletions(-) delete mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp.h rename drivers/{gpu/drm/mediatek/mtk_drm_ddp.c => soc/mediatek/mtk-mutex.c} (53%) create mode 100644 include/linux/soc/mediatek/mtk-mutex.h -- 2.17.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 50+ messages in thread
* [PATCH v2 0/5] Share mtk mutex driver for both DRM and MDP @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: linux-arm-kernel, Chun-Kuang Hu, linux-mediatek, linux-kernel, dri-devel mtk mutex is a driver used by DRM and MDP [1], so this series move mtk mutex driver from DRM folder to soc folder, so it could be used by DRM and MDP. Changes in v2: 1. Rebase onto mediatek-drm-next [2]. 2. Export symbol for mtk-mutex API. [1] https://patchwork.kernel.org/patch/11140751/ [2] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next CK Hu (5): drm/mediatek: Remove redundant file including drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver drm/mediatek: Automatically search unclaimed mtk mutex in mtk_mutex_get() soc / drm: mediatek: Move mtk mutex driver to soc folder drivers/gpu/drm/mediatek/Makefile | 1 - drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 32 +- drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 28 -- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 3 - drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - drivers/soc/mediatek/Makefile | 1 + .../mediatek/mtk-mutex.c} | 328 +++++++++--------- include/linux/soc/mediatek/mtk-mutex.h | 26 ++ 8 files changed, 212 insertions(+), 208 deletions(-) delete mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp.h rename drivers/{gpu/drm/mediatek/mtk_drm_ddp.c => soc/mediatek/mtk-mutex.c} (53%) create mode 100644 include/linux/soc/mediatek/mtk-mutex.h -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 50+ messages in thread
* [PATCH v2 0/5] Share mtk mutex driver for both DRM and MDP @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: linux-arm-kernel, Chun-Kuang Hu, linux-mediatek, linux-kernel, dri-devel mtk mutex is a driver used by DRM and MDP [1], so this series move mtk mutex driver from DRM folder to soc folder, so it could be used by DRM and MDP. Changes in v2: 1. Rebase onto mediatek-drm-next [2]. 2. Export symbol for mtk-mutex API. [1] https://patchwork.kernel.org/patch/11140751/ [2] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next CK Hu (5): drm/mediatek: Remove redundant file including drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver drm/mediatek: Automatically search unclaimed mtk mutex in mtk_mutex_get() soc / drm: mediatek: Move mtk mutex driver to soc folder drivers/gpu/drm/mediatek/Makefile | 1 - drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 32 +- drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 28 -- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 3 - drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - drivers/soc/mediatek/Makefile | 1 + .../mediatek/mtk-mutex.c} | 328 +++++++++--------- include/linux/soc/mediatek/mtk-mutex.h | 26 ++ 8 files changed, 212 insertions(+), 208 deletions(-) delete mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp.h rename drivers/{gpu/drm/mediatek/mtk_drm_ddp.c => soc/mediatek/mtk-mutex.c} (53%) create mode 100644 include/linux/soc/mediatek/mtk-mutex.h -- 2.17.1 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 50+ messages in thread
* [PATCH v2 1/5] drm/mediatek: Remove redundant file including 2021-01-06 23:17 ` Chun-Kuang Hu (?) (?) @ 2021-01-06 23:17 ` Chun-Kuang Hu -1 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: linux-kernel, dri-devel, linux-mediatek, linux-arm-kernel, CK Hu, Chun-Kuang Hu From: CK Hu <ck.hu@mediatek.com> Those file includings are useless, so remove them. Signed-off-by: CK Hu <ck.hu@mediatek.com> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 2 -- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h b/drivers/gpu/drm/mediatek/mtk_drm_ddp.h index 6b691a57be4a..a1ee21d15334 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.h @@ -6,8 +6,6 @@ #ifndef MTK_DRM_DDP_H #define MTK_DRM_DDP_H -#include "mtk_drm_ddp_comp.h" - struct regmap; struct device; struct mtk_disp_mutex; diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index 8514d68bde32..25a24f69b986 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -10,7 +10,6 @@ #include <linux/of_address.h> #include <linux/of_platform.h> #include <linux/pm_runtime.h> -#include <linux/soc/mediatek/mtk-mmsys.h> #include <linux/dma-mapping.h> #include <drm/drm_atomic.h> @@ -26,7 +25,6 @@ #include <drm/drm_vblank.h> #include "mtk_drm_crtc.h" -#include "mtk_drm_ddp.h" #include "mtk_drm_ddp_comp.h" #include "mtk_drm_drv.h" #include "mtk_drm_gem.h" -- 2.17.1 ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 1/5] drm/mediatek: Remove redundant file including @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> Those file includings are useless, so remove them. Signed-off-by: CK Hu <ck.hu@mediatek.com> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 2 -- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h b/drivers/gpu/drm/mediatek/mtk_drm_ddp.h index 6b691a57be4a..a1ee21d15334 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.h @@ -6,8 +6,6 @@ #ifndef MTK_DRM_DDP_H #define MTK_DRM_DDP_H -#include "mtk_drm_ddp_comp.h" - struct regmap; struct device; struct mtk_disp_mutex; diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index 8514d68bde32..25a24f69b986 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -10,7 +10,6 @@ #include <linux/of_address.h> #include <linux/of_platform.h> #include <linux/pm_runtime.h> -#include <linux/soc/mediatek/mtk-mmsys.h> #include <linux/dma-mapping.h> #include <drm/drm_atomic.h> @@ -26,7 +25,6 @@ #include <drm/drm_vblank.h> #include "mtk_drm_crtc.h" -#include "mtk_drm_ddp.h" #include "mtk_drm_ddp_comp.h" #include "mtk_drm_drv.h" #include "mtk_drm_gem.h" -- 2.17.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 1/5] drm/mediatek: Remove redundant file including @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, CK Hu, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> Those file includings are useless, so remove them. Signed-off-by: CK Hu <ck.hu@mediatek.com> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 2 -- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h b/drivers/gpu/drm/mediatek/mtk_drm_ddp.h index 6b691a57be4a..a1ee21d15334 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.h @@ -6,8 +6,6 @@ #ifndef MTK_DRM_DDP_H #define MTK_DRM_DDP_H -#include "mtk_drm_ddp_comp.h" - struct regmap; struct device; struct mtk_disp_mutex; diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index 8514d68bde32..25a24f69b986 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -10,7 +10,6 @@ #include <linux/of_address.h> #include <linux/of_platform.h> #include <linux/pm_runtime.h> -#include <linux/soc/mediatek/mtk-mmsys.h> #include <linux/dma-mapping.h> #include <drm/drm_atomic.h> @@ -26,7 +25,6 @@ #include <drm/drm_vblank.h> #include "mtk_drm_crtc.h" -#include "mtk_drm_ddp.h" #include "mtk_drm_ddp_comp.h" #include "mtk_drm_drv.h" #include "mtk_drm_gem.h" -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 1/5] drm/mediatek: Remove redundant file including @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, CK Hu, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> Those file includings are useless, so remove them. Signed-off-by: CK Hu <ck.hu@mediatek.com> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 2 -- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h b/drivers/gpu/drm/mediatek/mtk_drm_ddp.h index 6b691a57be4a..a1ee21d15334 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.h @@ -6,8 +6,6 @@ #ifndef MTK_DRM_DDP_H #define MTK_DRM_DDP_H -#include "mtk_drm_ddp_comp.h" - struct regmap; struct device; struct mtk_disp_mutex; diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index 8514d68bde32..25a24f69b986 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -10,7 +10,6 @@ #include <linux/of_address.h> #include <linux/of_platform.h> #include <linux/pm_runtime.h> -#include <linux/soc/mediatek/mtk-mmsys.h> #include <linux/dma-mapping.h> #include <drm/drm_atomic.h> @@ -26,7 +25,6 @@ #include <drm/drm_vblank.h> #include "mtk_drm_crtc.h" -#include "mtk_drm_ddp.h" #include "mtk_drm_ddp_comp.h" #include "mtk_drm_drv.h" #include "mtk_drm_gem.h" -- 2.17.1 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 2/5] drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex 2021-01-06 23:17 ` Chun-Kuang Hu (?) (?) @ 2021-01-06 23:17 ` Chun-Kuang Hu -1 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: linux-kernel, dri-devel, linux-mediatek, linux-arm-kernel, CK Hu, Chun-Kuang Hu From: CK Hu <ck.hu@mediatek.com> After mmsys routing function is moved out of mtk_drm_ddp.c, mtk_drm_ddp.c has only mtk mutex function, so rename it to match the function in it. Signed-off-by: CK Hu <ck.hu@mediatek.com> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/gpu/drm/mediatek/Makefile | 4 ++-- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- drivers/gpu/drm/mediatek/{mtk_drm_ddp.c => mtk_mutex.c} | 2 +- drivers/gpu/drm/mediatek/{mtk_drm_ddp.h => mtk_mutex.h} | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) rename drivers/gpu/drm/mediatek/{mtk_drm_ddp.c => mtk_mutex.c} (99%) rename drivers/gpu/drm/mediatek/{mtk_drm_ddp.h => mtk_mutex.h} (92%) diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile index a892edec5563..09979c4c340a 100644 --- a/drivers/gpu/drm/mediatek/Makefile +++ b/drivers/gpu/drm/mediatek/Makefile @@ -4,13 +4,13 @@ mediatek-drm-y := mtk_disp_color.o \ mtk_disp_ovl.o \ mtk_disp_rdma.o \ mtk_drm_crtc.o \ - mtk_drm_ddp.o \ mtk_drm_ddp_comp.o \ mtk_drm_drv.o \ mtk_drm_gem.o \ mtk_drm_plane.o \ mtk_dsi.o \ - mtk_dpi.o + mtk_dpi.o \ + mtk_mutex.o obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index bf44a14ea0b6..fd97b7d195e3 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -19,10 +19,10 @@ #include "mtk_drm_drv.h" #include "mtk_drm_crtc.h" -#include "mtk_drm_ddp.h" #include "mtk_drm_ddp_comp.h" #include "mtk_drm_gem.h" #include "mtk_drm_plane.h" +#include "mtk_mutex.h" /* * struct mtk_drm_crtc - MediaTek specific crtc structure. diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c b/drivers/gpu/drm/mediatek/mtk_mutex.c similarity index 99% rename from drivers/gpu/drm/mediatek/mtk_drm_ddp.c rename to drivers/gpu/drm/mediatek/mtk_mutex.c index 1f99db6b1a42..1c8a253f4788 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c @@ -10,8 +10,8 @@ #include <linux/platform_device.h> #include <linux/regmap.h> -#include "mtk_drm_ddp.h" #include "mtk_drm_ddp_comp.h" +#include "mtk_mutex.h" #define MT2701_DISP_MUTEX0_MOD0 0x2c #define MT2701_DISP_MUTEX0_SOF0 0x30 diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h b/drivers/gpu/drm/mediatek/mtk_mutex.h similarity index 92% rename from drivers/gpu/drm/mediatek/mtk_drm_ddp.h rename to drivers/gpu/drm/mediatek/mtk_mutex.h index a1ee21d15334..3abcc20e88fb 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h +++ b/drivers/gpu/drm/mediatek/mtk_mutex.h @@ -3,8 +3,8 @@ * Copyright (c) 2015 MediaTek Inc. */ -#ifndef MTK_DRM_DDP_H -#define MTK_DRM_DDP_H +#ifndef MTK_MUTEX_H +#define MTK_MUTEX_H struct regmap; struct device; @@ -23,4 +23,4 @@ void mtk_disp_mutex_put(struct mtk_disp_mutex *mutex); void mtk_disp_mutex_acquire(struct mtk_disp_mutex *mutex); void mtk_disp_mutex_release(struct mtk_disp_mutex *mutex); -#endif /* MTK_DRM_DDP_H */ +#endif /* MTK_MUTEX_H */ -- 2.17.1 ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 2/5] drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> After mmsys routing function is moved out of mtk_drm_ddp.c, mtk_drm_ddp.c has only mtk mutex function, so rename it to match the function in it. Signed-off-by: CK Hu <ck.hu@mediatek.com> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/gpu/drm/mediatek/Makefile | 4 ++-- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- drivers/gpu/drm/mediatek/{mtk_drm_ddp.c => mtk_mutex.c} | 2 +- drivers/gpu/drm/mediatek/{mtk_drm_ddp.h => mtk_mutex.h} | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) rename drivers/gpu/drm/mediatek/{mtk_drm_ddp.c => mtk_mutex.c} (99%) rename drivers/gpu/drm/mediatek/{mtk_drm_ddp.h => mtk_mutex.h} (92%) diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile index a892edec5563..09979c4c340a 100644 --- a/drivers/gpu/drm/mediatek/Makefile +++ b/drivers/gpu/drm/mediatek/Makefile @@ -4,13 +4,13 @@ mediatek-drm-y := mtk_disp_color.o \ mtk_disp_ovl.o \ mtk_disp_rdma.o \ mtk_drm_crtc.o \ - mtk_drm_ddp.o \ mtk_drm_ddp_comp.o \ mtk_drm_drv.o \ mtk_drm_gem.o \ mtk_drm_plane.o \ mtk_dsi.o \ - mtk_dpi.o + mtk_dpi.o \ + mtk_mutex.o obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index bf44a14ea0b6..fd97b7d195e3 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -19,10 +19,10 @@ #include "mtk_drm_drv.h" #include "mtk_drm_crtc.h" -#include "mtk_drm_ddp.h" #include "mtk_drm_ddp_comp.h" #include "mtk_drm_gem.h" #include "mtk_drm_plane.h" +#include "mtk_mutex.h" /* * struct mtk_drm_crtc - MediaTek specific crtc structure. diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c b/drivers/gpu/drm/mediatek/mtk_mutex.c similarity index 99% rename from drivers/gpu/drm/mediatek/mtk_drm_ddp.c rename to drivers/gpu/drm/mediatek/mtk_mutex.c index 1f99db6b1a42..1c8a253f4788 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c @@ -10,8 +10,8 @@ #include <linux/platform_device.h> #include <linux/regmap.h> -#include "mtk_drm_ddp.h" #include "mtk_drm_ddp_comp.h" +#include "mtk_mutex.h" #define MT2701_DISP_MUTEX0_MOD0 0x2c #define MT2701_DISP_MUTEX0_SOF0 0x30 diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h b/drivers/gpu/drm/mediatek/mtk_mutex.h similarity index 92% rename from drivers/gpu/drm/mediatek/mtk_drm_ddp.h rename to drivers/gpu/drm/mediatek/mtk_mutex.h index a1ee21d15334..3abcc20e88fb 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h +++ b/drivers/gpu/drm/mediatek/mtk_mutex.h @@ -3,8 +3,8 @@ * Copyright (c) 2015 MediaTek Inc. */ -#ifndef MTK_DRM_DDP_H -#define MTK_DRM_DDP_H +#ifndef MTK_MUTEX_H +#define MTK_MUTEX_H struct regmap; struct device; @@ -23,4 +23,4 @@ void mtk_disp_mutex_put(struct mtk_disp_mutex *mutex); void mtk_disp_mutex_acquire(struct mtk_disp_mutex *mutex); void mtk_disp_mutex_release(struct mtk_disp_mutex *mutex); -#endif /* MTK_DRM_DDP_H */ +#endif /* MTK_MUTEX_H */ -- 2.17.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 2/5] drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, CK Hu, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> After mmsys routing function is moved out of mtk_drm_ddp.c, mtk_drm_ddp.c has only mtk mutex function, so rename it to match the function in it. Signed-off-by: CK Hu <ck.hu@mediatek.com> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/gpu/drm/mediatek/Makefile | 4 ++-- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- drivers/gpu/drm/mediatek/{mtk_drm_ddp.c => mtk_mutex.c} | 2 +- drivers/gpu/drm/mediatek/{mtk_drm_ddp.h => mtk_mutex.h} | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) rename drivers/gpu/drm/mediatek/{mtk_drm_ddp.c => mtk_mutex.c} (99%) rename drivers/gpu/drm/mediatek/{mtk_drm_ddp.h => mtk_mutex.h} (92%) diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile index a892edec5563..09979c4c340a 100644 --- a/drivers/gpu/drm/mediatek/Makefile +++ b/drivers/gpu/drm/mediatek/Makefile @@ -4,13 +4,13 @@ mediatek-drm-y := mtk_disp_color.o \ mtk_disp_ovl.o \ mtk_disp_rdma.o \ mtk_drm_crtc.o \ - mtk_drm_ddp.o \ mtk_drm_ddp_comp.o \ mtk_drm_drv.o \ mtk_drm_gem.o \ mtk_drm_plane.o \ mtk_dsi.o \ - mtk_dpi.o + mtk_dpi.o \ + mtk_mutex.o obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index bf44a14ea0b6..fd97b7d195e3 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -19,10 +19,10 @@ #include "mtk_drm_drv.h" #include "mtk_drm_crtc.h" -#include "mtk_drm_ddp.h" #include "mtk_drm_ddp_comp.h" #include "mtk_drm_gem.h" #include "mtk_drm_plane.h" +#include "mtk_mutex.h" /* * struct mtk_drm_crtc - MediaTek specific crtc structure. diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c b/drivers/gpu/drm/mediatek/mtk_mutex.c similarity index 99% rename from drivers/gpu/drm/mediatek/mtk_drm_ddp.c rename to drivers/gpu/drm/mediatek/mtk_mutex.c index 1f99db6b1a42..1c8a253f4788 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c @@ -10,8 +10,8 @@ #include <linux/platform_device.h> #include <linux/regmap.h> -#include "mtk_drm_ddp.h" #include "mtk_drm_ddp_comp.h" +#include "mtk_mutex.h" #define MT2701_DISP_MUTEX0_MOD0 0x2c #define MT2701_DISP_MUTEX0_SOF0 0x30 diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h b/drivers/gpu/drm/mediatek/mtk_mutex.h similarity index 92% rename from drivers/gpu/drm/mediatek/mtk_drm_ddp.h rename to drivers/gpu/drm/mediatek/mtk_mutex.h index a1ee21d15334..3abcc20e88fb 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h +++ b/drivers/gpu/drm/mediatek/mtk_mutex.h @@ -3,8 +3,8 @@ * Copyright (c) 2015 MediaTek Inc. */ -#ifndef MTK_DRM_DDP_H -#define MTK_DRM_DDP_H +#ifndef MTK_MUTEX_H +#define MTK_MUTEX_H struct regmap; struct device; @@ -23,4 +23,4 @@ void mtk_disp_mutex_put(struct mtk_disp_mutex *mutex); void mtk_disp_mutex_acquire(struct mtk_disp_mutex *mutex); void mtk_disp_mutex_release(struct mtk_disp_mutex *mutex); -#endif /* MTK_DRM_DDP_H */ +#endif /* MTK_MUTEX_H */ -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 2/5] drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, CK Hu, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> After mmsys routing function is moved out of mtk_drm_ddp.c, mtk_drm_ddp.c has only mtk mutex function, so rename it to match the function in it. Signed-off-by: CK Hu <ck.hu@mediatek.com> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/gpu/drm/mediatek/Makefile | 4 ++-- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- drivers/gpu/drm/mediatek/{mtk_drm_ddp.c => mtk_mutex.c} | 2 +- drivers/gpu/drm/mediatek/{mtk_drm_ddp.h => mtk_mutex.h} | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) rename drivers/gpu/drm/mediatek/{mtk_drm_ddp.c => mtk_mutex.c} (99%) rename drivers/gpu/drm/mediatek/{mtk_drm_ddp.h => mtk_mutex.h} (92%) diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile index a892edec5563..09979c4c340a 100644 --- a/drivers/gpu/drm/mediatek/Makefile +++ b/drivers/gpu/drm/mediatek/Makefile @@ -4,13 +4,13 @@ mediatek-drm-y := mtk_disp_color.o \ mtk_disp_ovl.o \ mtk_disp_rdma.o \ mtk_drm_crtc.o \ - mtk_drm_ddp.o \ mtk_drm_ddp_comp.o \ mtk_drm_drv.o \ mtk_drm_gem.o \ mtk_drm_plane.o \ mtk_dsi.o \ - mtk_dpi.o + mtk_dpi.o \ + mtk_mutex.o obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index bf44a14ea0b6..fd97b7d195e3 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -19,10 +19,10 @@ #include "mtk_drm_drv.h" #include "mtk_drm_crtc.h" -#include "mtk_drm_ddp.h" #include "mtk_drm_ddp_comp.h" #include "mtk_drm_gem.h" #include "mtk_drm_plane.h" +#include "mtk_mutex.h" /* * struct mtk_drm_crtc - MediaTek specific crtc structure. diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c b/drivers/gpu/drm/mediatek/mtk_mutex.c similarity index 99% rename from drivers/gpu/drm/mediatek/mtk_drm_ddp.c rename to drivers/gpu/drm/mediatek/mtk_mutex.c index 1f99db6b1a42..1c8a253f4788 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c @@ -10,8 +10,8 @@ #include <linux/platform_device.h> #include <linux/regmap.h> -#include "mtk_drm_ddp.h" #include "mtk_drm_ddp_comp.h" +#include "mtk_mutex.h" #define MT2701_DISP_MUTEX0_MOD0 0x2c #define MT2701_DISP_MUTEX0_SOF0 0x30 diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h b/drivers/gpu/drm/mediatek/mtk_mutex.h similarity index 92% rename from drivers/gpu/drm/mediatek/mtk_drm_ddp.h rename to drivers/gpu/drm/mediatek/mtk_mutex.h index a1ee21d15334..3abcc20e88fb 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.h +++ b/drivers/gpu/drm/mediatek/mtk_mutex.h @@ -3,8 +3,8 @@ * Copyright (c) 2015 MediaTek Inc. */ -#ifndef MTK_DRM_DDP_H -#define MTK_DRM_DDP_H +#ifndef MTK_MUTEX_H +#define MTK_MUTEX_H struct regmap; struct device; @@ -23,4 +23,4 @@ void mtk_disp_mutex_put(struct mtk_disp_mutex *mutex); void mtk_disp_mutex_acquire(struct mtk_disp_mutex *mutex); void mtk_disp_mutex_release(struct mtk_disp_mutex *mutex); -#endif /* MTK_DRM_DDP_H */ +#endif /* MTK_MUTEX_H */ -- 2.17.1 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver 2021-01-06 23:17 ` Chun-Kuang Hu (?) (?) @ 2021-01-06 23:17 ` Chun-Kuang Hu -1 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: linux-kernel, dri-devel, linux-mediatek, linux-arm-kernel, CK Hu, Chun-Kuang Hu From: CK Hu <ck.hu@mediatek.com> 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> --- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- 5 files changed, 182 insertions(+), 183 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index fd97b7d195e3..bba87a036fa8 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -55,7 +55,7 @@ struct mtk_drm_crtc { #endif struct device *mmsys_dev; - struct mtk_disp_mutex *mutex; + struct mtk_mutex *mutex; unsigned int ddp_comp_nr; struct mtk_ddp_comp **ddp_comp; @@ -107,7 +107,7 @@ static void mtk_drm_crtc_destroy(struct drm_crtc *crtc) { struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); - mtk_disp_mutex_put(mtk_crtc->mutex); + mtk_mutex_put(mtk_crtc->mutex); drm_crtc_cleanup(crtc); } @@ -265,7 +265,7 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) return ret; } - ret = mtk_disp_mutex_prepare(mtk_crtc->mutex); + ret = mtk_mutex_prepare(mtk_crtc->mutex); if (ret < 0) { DRM_ERROR("Failed to enable mutex clock: %d\n", ret); goto err_pm_runtime_put; @@ -281,11 +281,11 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) mtk_mmsys_ddp_connect(mtk_crtc->mmsys_dev, mtk_crtc->ddp_comp[i]->id, mtk_crtc->ddp_comp[i + 1]->id); - mtk_disp_mutex_add_comp(mtk_crtc->mutex, + mtk_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); } - mtk_disp_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); - mtk_disp_mutex_enable(mtk_crtc->mutex); + mtk_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); + mtk_mutex_enable(mtk_crtc->mutex); for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) { struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[i]; @@ -314,7 +314,7 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) return 0; err_mutex_unprepare: - mtk_disp_mutex_unprepare(mtk_crtc->mutex); + mtk_mutex_unprepare(mtk_crtc->mutex); err_pm_runtime_put: pm_runtime_put(crtc->dev->dev); return ret; @@ -333,19 +333,19 @@ static void mtk_crtc_ddp_hw_fini(struct mtk_drm_crtc *mtk_crtc) } for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) - mtk_disp_mutex_remove_comp(mtk_crtc->mutex, + mtk_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); - mtk_disp_mutex_disable(mtk_crtc->mutex); + mtk_mutex_disable(mtk_crtc->mutex); for (i = 0; i < mtk_crtc->ddp_comp_nr - 1; i++) { mtk_mmsys_ddp_disconnect(mtk_crtc->mmsys_dev, mtk_crtc->ddp_comp[i]->id, mtk_crtc->ddp_comp[i + 1]->id); - mtk_disp_mutex_remove_comp(mtk_crtc->mutex, + mtk_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); } - mtk_disp_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); + mtk_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); mtk_crtc_ddp_clk_disable(mtk_crtc); - mtk_disp_mutex_unprepare(mtk_crtc->mutex); + mtk_mutex_unprepare(mtk_crtc->mutex); pm_runtime_put(drm->dev); @@ -457,9 +457,9 @@ static void mtk_drm_crtc_hw_config(struct mtk_drm_crtc *mtk_crtc) mtk_crtc->pending_async_planes = true; if (priv->data->shadow_register) { - mtk_disp_mutex_acquire(mtk_crtc->mutex); + mtk_mutex_acquire(mtk_crtc->mutex); mtk_crtc_ddp_config(crtc, NULL); - mtk_disp_mutex_release(mtk_crtc->mutex); + mtk_mutex_release(mtk_crtc->mutex); } #if IS_REACHABLE(CONFIG_MTK_CMDQ) if (mtk_crtc->cmdq_client) { @@ -773,7 +773,7 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, if (!mtk_crtc->ddp_comp) return -ENOMEM; - mtk_crtc->mutex = mtk_disp_mutex_get(priv->mutex_dev, pipe); + mtk_crtc->mutex = mtk_mutex_get(priv->mutex_dev, pipe); if (IS_ERR(mtk_crtc->mutex)) { ret = PTR_ERR(mtk_crtc->mutex); dev_err(dev, "Failed to get mutex: %d\n", ret); diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index 25a24f69b986..b99a06e6834e 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -588,7 +588,7 @@ static struct platform_driver mtk_drm_platform_driver = { }; static struct platform_driver * const mtk_drm_drivers[] = { - &mtk_ddp_driver, + &mtk_mutex_driver, &mtk_disp_color_driver, &mtk_disp_ovl_driver, &mtk_disp_rdma_driver, diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h index 690e92e9eff9..ae366868d01a 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h @@ -46,7 +46,7 @@ struct mtk_drm_private { struct drm_atomic_state *suspend_state; }; -extern struct platform_driver mtk_ddp_driver; +extern struct platform_driver mtk_mutex_driver; extern struct platform_driver mtk_disp_color_driver; extern struct platform_driver mtk_disp_ovl_driver; extern struct platform_driver mtk_disp_rdma_driver; diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c index 1c8a253f4788..98a060bf225d 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.c +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c @@ -9,12 +9,12 @@ #include <linux/of_device.h> #include <linux/platform_device.h> #include <linux/regmap.h> +#include <linux/soc/mediatek/mtk-mmsys.h> -#include "mtk_drm_ddp_comp.h" #include "mtk_mutex.h" -#define MT2701_DISP_MUTEX0_MOD0 0x2c -#define MT2701_DISP_MUTEX0_SOF0 0x30 +#define MT2701_MUTEX0_MOD0 0x2c +#define MT2701_MUTEX0_SOF0 0x30 #define DISP_REG_MUTEX_EN(n) (0x20 + 0x20 * (n)) #define DISP_REG_MUTEX(n) (0x24 + 0x20 * (n)) @@ -79,33 +79,32 @@ #define MT2701_MUTEX_MOD_DISP_RDMA0 10 #define MT2701_MUTEX_MOD_DISP_RDMA1 12 -#define MUTEX_SOF_SINGLE_MODE 0 -#define MUTEX_SOF_DSI0 1 -#define MUTEX_SOF_DSI1 2 -#define MUTEX_SOF_DPI0 3 -#define MUTEX_SOF_DPI1 4 -#define MUTEX_SOF_DSI2 5 -#define MUTEX_SOF_DSI3 6 -#define MT8167_MUTEX_SOF_DPI0 2 -#define MT8167_MUTEX_SOF_DPI1 3 - - -struct mtk_disp_mutex { +#define MT2712_MUTEX_SOF_SINGLE_MODE 0 +#define MT2712_MUTEX_SOF_DSI0 1 +#define MT2712_MUTEX_SOF_DSI1 2 +#define MT2712_MUTEX_SOF_DPI0 3 +#define MT2712_MUTEX_SOF_DPI1 4 +#define MT2712_MUTEX_SOF_DSI2 5 +#define MT2712_MUTEX_SOF_DSI3 6 +#define MT8167_MUTEX_SOF_DPI0 2 +#define MT8167_MUTEX_SOF_DPI1 3 + +struct mtk_mutex { int id; bool claimed; }; -enum mtk_ddp_mutex_sof_id { - DDP_MUTEX_SOF_SINGLE_MODE, - DDP_MUTEX_SOF_DSI0, - DDP_MUTEX_SOF_DSI1, - DDP_MUTEX_SOF_DPI0, - DDP_MUTEX_SOF_DPI1, - DDP_MUTEX_SOF_DSI2, - DDP_MUTEX_SOF_DSI3, +enum mtk_mutex_sof_id { + MUTEX_SOF_SINGLE_MODE, + MUTEX_SOF_DSI0, + MUTEX_SOF_DSI1, + MUTEX_SOF_DPI0, + MUTEX_SOF_DPI1, + MUTEX_SOF_DSI2, + MUTEX_SOF_DSI3, }; -struct mtk_ddp_data { +struct mtk_mutex_data { const unsigned int *mutex_mod; const unsigned int *mutex_sof; const unsigned int mutex_mod_reg; @@ -113,12 +112,12 @@ struct mtk_ddp_data { const bool no_clk; }; -struct mtk_ddp { +struct mtk_mutex_ctx { struct device *dev; struct clk *clk; void __iomem *regs; - struct mtk_disp_mutex mutex[10]; - const struct mtk_ddp_data *data; + struct mtk_mutex mutex[10]; + const struct mtk_mutex_data *data; }; static const unsigned int mt2701_mutex_mod[DDP_COMPONENT_ID_MAX] = { @@ -183,150 +182,150 @@ static const unsigned int mt8173_mutex_mod[DDP_COMPONENT_ID_MAX] = { [DDP_COMPONENT_WDMA1] = MT8173_MUTEX_MOD_DISP_WDMA1, }; -static const unsigned int mt2712_mutex_sof[DDP_MUTEX_SOF_DSI3 + 1] = { - [DDP_MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, - [DDP_MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, - [DDP_MUTEX_SOF_DSI1] = MUTEX_SOF_DSI1, - [DDP_MUTEX_SOF_DPI0] = MUTEX_SOF_DPI0, - [DDP_MUTEX_SOF_DPI1] = MUTEX_SOF_DPI1, - [DDP_MUTEX_SOF_DSI2] = MUTEX_SOF_DSI2, - [DDP_MUTEX_SOF_DSI3] = MUTEX_SOF_DSI3, +static const unsigned int mt2712_mutex_sof[MUTEX_SOF_DSI3 + 1] = { + [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, + [MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, + [MUTEX_SOF_DSI1] = MUTEX_SOF_DSI1, + [MUTEX_SOF_DPI0] = MUTEX_SOF_DPI0, + [MUTEX_SOF_DPI1] = MUTEX_SOF_DPI1, + [MUTEX_SOF_DSI2] = MUTEX_SOF_DSI2, + [MUTEX_SOF_DSI3] = MUTEX_SOF_DSI3, }; -static const unsigned int mt8167_mutex_sof[DDP_MUTEX_SOF_DSI3 + 1] = { - [DDP_MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, - [DDP_MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, - [DDP_MUTEX_SOF_DPI0] = MT8167_MUTEX_SOF_DPI0, - [DDP_MUTEX_SOF_DPI1] = MT8167_MUTEX_SOF_DPI1, +static const unsigned int mt8167_mutex_sof[MUTEX_SOF_DSI3 + 1] = { + [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, + [MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, + [MUTEX_SOF_DPI0] = MT8167_MUTEX_SOF_DPI0, + [MUTEX_SOF_DPI1] = MT8167_MUTEX_SOF_DPI1, }; -static const struct mtk_ddp_data mt2701_ddp_driver_data = { +static const struct mtk_mutex_data mt2701_mutex_driver_data = { .mutex_mod = mt2701_mutex_mod, .mutex_sof = mt2712_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -static const struct mtk_ddp_data mt2712_ddp_driver_data = { +static const struct mtk_mutex_data mt2712_mutex_driver_data = { .mutex_mod = mt2712_mutex_mod, .mutex_sof = mt2712_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -static const struct mtk_ddp_data mt8167_ddp_driver_data = { +static const struct mtk_mutex_data mt8167_mutex_driver_data = { .mutex_mod = mt8167_mutex_mod, .mutex_sof = mt8167_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, .no_clk = true, }; -static const struct mtk_ddp_data mt8173_ddp_driver_data = { +static const struct mtk_mutex_data mt8173_mutex_driver_data = { .mutex_mod = mt8173_mutex_mod, .mutex_sof = mt2712_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -struct mtk_disp_mutex *mtk_disp_mutex_get(struct device *dev, unsigned int id) +struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id) { - struct mtk_ddp *ddp = dev_get_drvdata(dev); + struct mtk_mutex_ctx *mtx = dev_get_drvdata(dev); if (id >= 10) return ERR_PTR(-EINVAL); - if (ddp->mutex[id].claimed) + if (mtx->mutex[id].claimed) return ERR_PTR(-EBUSY); - ddp->mutex[id].claimed = true; + mtx->mutex[id].claimed = true; - return &ddp->mutex[id]; + return &mtx->mutex[id]; } -void mtk_disp_mutex_put(struct mtk_disp_mutex *mutex) +void mtk_mutex_put(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); mutex->claimed = false; } -int mtk_disp_mutex_prepare(struct mtk_disp_mutex *mutex) +int mtk_mutex_prepare(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); - return clk_prepare_enable(ddp->clk); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); + return clk_prepare_enable(mtx->clk); } -void mtk_disp_mutex_unprepare(struct mtk_disp_mutex *mutex) +void mtk_mutex_unprepare(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); - clk_disable_unprepare(ddp->clk); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); + clk_disable_unprepare(mtx->clk); } -void mtk_disp_mutex_add_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id) +void mtk_mutex_add_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); unsigned int reg; unsigned int sof_id; unsigned int offset; - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); switch (id) { case DDP_COMPONENT_DSI0: - sof_id = DDP_MUTEX_SOF_DSI0; + sof_id = MUTEX_SOF_DSI0; break; case DDP_COMPONENT_DSI1: - sof_id = DDP_MUTEX_SOF_DSI0; + sof_id = MUTEX_SOF_DSI0; break; case DDP_COMPONENT_DSI2: - sof_id = DDP_MUTEX_SOF_DSI2; + sof_id = MUTEX_SOF_DSI2; break; case DDP_COMPONENT_DSI3: - sof_id = DDP_MUTEX_SOF_DSI3; + sof_id = MUTEX_SOF_DSI3; break; case DDP_COMPONENT_DPI0: - sof_id = DDP_MUTEX_SOF_DPI0; + sof_id = MUTEX_SOF_DPI0; break; case DDP_COMPONENT_DPI1: - sof_id = DDP_MUTEX_SOF_DPI1; + sof_id = MUTEX_SOF_DPI1; break; default: - if (ddp->data->mutex_mod[id] < 32) { - offset = DISP_REG_MUTEX_MOD(ddp->data->mutex_mod_reg, + if (mtx->data->mutex_mod[id] < 32) { + offset = DISP_REG_MUTEX_MOD(mtx->data->mutex_mod_reg, mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg |= 1 << ddp->data->mutex_mod[id]; - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg |= 1 << mtx->data->mutex_mod[id]; + writel_relaxed(reg, mtx->regs + offset); } else { offset = DISP_REG_MUTEX_MOD2(mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg |= 1 << (ddp->data->mutex_mod[id] - 32); - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg |= 1 << (mtx->data->mutex_mod[id] - 32); + writel_relaxed(reg, mtx->regs + offset); } return; } - writel_relaxed(ddp->data->mutex_sof[sof_id], - ddp->regs + - DISP_REG_MUTEX_SOF(ddp->data->mutex_sof_reg, mutex->id)); + writel_relaxed(mtx->data->mutex_sof[sof_id], + mtx->regs + + DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); } -void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id) +void mtk_mutex_remove_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); unsigned int reg; unsigned int offset; - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); switch (id) { case DDP_COMPONENT_DSI0: @@ -336,129 +335,129 @@ void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex, case DDP_COMPONENT_DPI0: case DDP_COMPONENT_DPI1: writel_relaxed(MUTEX_SOF_SINGLE_MODE, - ddp->regs + - DISP_REG_MUTEX_SOF(ddp->data->mutex_sof_reg, + mtx->regs + + DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); break; default: - if (ddp->data->mutex_mod[id] < 32) { - offset = DISP_REG_MUTEX_MOD(ddp->data->mutex_mod_reg, + if (mtx->data->mutex_mod[id] < 32) { + offset = DISP_REG_MUTEX_MOD(mtx->data->mutex_mod_reg, mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg &= ~(1 << ddp->data->mutex_mod[id]); - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg &= ~(1 << mtx->data->mutex_mod[id]); + writel_relaxed(reg, mtx->regs + offset); } else { offset = DISP_REG_MUTEX_MOD2(mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg &= ~(1 << (ddp->data->mutex_mod[id] - 32)); - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg &= ~(1 << (mtx->data->mutex_mod[id] - 32)); + writel_relaxed(reg, mtx->regs + offset); } break; } } -void mtk_disp_mutex_enable(struct mtk_disp_mutex *mutex) +void mtk_mutex_enable(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); - writel(1, ddp->regs + DISP_REG_MUTEX_EN(mutex->id)); + writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } -void mtk_disp_mutex_disable(struct mtk_disp_mutex *mutex) +void mtk_mutex_disable(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); - writel(0, ddp->regs + DISP_REG_MUTEX_EN(mutex->id)); + writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } -void mtk_disp_mutex_acquire(struct mtk_disp_mutex *mutex) +void mtk_mutex_acquire(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); u32 tmp; - writel(1, ddp->regs + DISP_REG_MUTEX_EN(mutex->id)); - writel(1, ddp->regs + DISP_REG_MUTEX(mutex->id)); - if (readl_poll_timeout_atomic(ddp->regs + DISP_REG_MUTEX(mutex->id), + writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); + writel(1, mtx->regs + DISP_REG_MUTEX(mutex->id)); + if (readl_poll_timeout_atomic(mtx->regs + DISP_REG_MUTEX(mutex->id), tmp, tmp & INT_MUTEX, 1, 10000)) pr_err("could not acquire mutex %d\n", mutex->id); } -void mtk_disp_mutex_release(struct mtk_disp_mutex *mutex) +void mtk_mutex_release(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - writel(0, ddp->regs + DISP_REG_MUTEX(mutex->id)); + writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); } -static int mtk_ddp_probe(struct platform_device *pdev) +static int mtk_mutex_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; - struct mtk_ddp *ddp; + struct mtk_mutex_ctx *mtx; struct resource *regs; int i; - ddp = devm_kzalloc(dev, sizeof(*ddp), GFP_KERNEL); - if (!ddp) + mtx = devm_kzalloc(dev, sizeof(*mtx), GFP_KERNEL); + if (!mtx) return -ENOMEM; for (i = 0; i < 10; i++) - ddp->mutex[i].id = i; + mtx->mutex[i].id = i; - ddp->data = of_device_get_match_data(dev); + mtx->data = of_device_get_match_data(dev); - if (!ddp->data->no_clk) { - ddp->clk = devm_clk_get(dev, NULL); - if (IS_ERR(ddp->clk)) { - if (PTR_ERR(ddp->clk) != -EPROBE_DEFER) + if (!mtx->data->no_clk) { + mtx->clk = devm_clk_get(dev, NULL); + if (IS_ERR(mtx->clk)) { + if (PTR_ERR(mtx->clk) != -EPROBE_DEFER) dev_err(dev, "Failed to get clock\n"); - return PTR_ERR(ddp->clk); + return PTR_ERR(mtx->clk); } } regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); - ddp->regs = devm_ioremap_resource(dev, regs); - if (IS_ERR(ddp->regs)) { + mtx->regs = devm_ioremap_resource(dev, regs); + if (IS_ERR(mtx->regs)) { dev_err(dev, "Failed to map mutex registers\n"); - return PTR_ERR(ddp->regs); + return PTR_ERR(mtx->regs); } - platform_set_drvdata(pdev, ddp); + platform_set_drvdata(pdev, mtx); return 0; } -static int mtk_ddp_remove(struct platform_device *pdev) +static int mtk_mutex_remove(struct platform_device *pdev) { return 0; } -static const struct of_device_id ddp_driver_dt_match[] = { +static const struct of_device_id mutex_driver_dt_match[] = { { .compatible = "mediatek,mt2701-disp-mutex", - .data = &mt2701_ddp_driver_data}, + .data = &mt2701_mutex_driver_data}, { .compatible = "mediatek,mt2712-disp-mutex", - .data = &mt2712_ddp_driver_data}, + .data = &mt2712_mutex_driver_data}, { .compatible = "mediatek,mt8167-disp-mutex", - .data = &mt8167_ddp_driver_data}, + .data = &mt8167_mutex_driver_data}, { .compatible = "mediatek,mt8173-disp-mutex", - .data = &mt8173_ddp_driver_data}, + .data = &mt8173_mutex_driver_data}, {}, }; -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); -struct platform_driver mtk_ddp_driver = { - .probe = mtk_ddp_probe, - .remove = mtk_ddp_remove, +struct platform_driver mtk_mutex_driver = { + .probe = mtk_mutex_probe, + .remove = mtk_mutex_remove, .driver = { - .name = "mediatek-ddp", + .name = "mediatek-mutex", .owner = THIS_MODULE, - .of_match_table = ddp_driver_dt_match, + .of_match_table = mutex_driver_dt_match, }, }; diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/drivers/gpu/drm/mediatek/mtk_mutex.h index 3abcc20e88fb..b678e0988a37 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.h +++ b/drivers/gpu/drm/mediatek/mtk_mutex.h @@ -8,19 +8,19 @@ struct regmap; struct device; -struct mtk_disp_mutex; +struct mtk_mutex; -struct mtk_disp_mutex *mtk_disp_mutex_get(struct device *dev, unsigned int id); -int mtk_disp_mutex_prepare(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_add_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id); -void mtk_disp_mutex_enable(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_disable(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id); -void mtk_disp_mutex_unprepare(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_put(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_acquire(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_release(struct mtk_disp_mutex *mutex); +struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id); +int mtk_mutex_prepare(struct mtk_mutex *mutex); +void mtk_mutex_add_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id); +void mtk_mutex_enable(struct mtk_mutex *mutex); +void mtk_mutex_disable(struct mtk_mutex *mutex); +void mtk_mutex_remove_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id); +void mtk_mutex_unprepare(struct mtk_mutex *mutex); +void mtk_mutex_put(struct mtk_mutex *mutex); +void mtk_mutex_acquire(struct mtk_mutex *mutex); +void mtk_mutex_release(struct mtk_mutex *mutex); #endif /* MTK_MUTEX_H */ -- 2.17.1 ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> 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> --- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- 5 files changed, 182 insertions(+), 183 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index fd97b7d195e3..bba87a036fa8 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -55,7 +55,7 @@ struct mtk_drm_crtc { #endif struct device *mmsys_dev; - struct mtk_disp_mutex *mutex; + struct mtk_mutex *mutex; unsigned int ddp_comp_nr; struct mtk_ddp_comp **ddp_comp; @@ -107,7 +107,7 @@ static void mtk_drm_crtc_destroy(struct drm_crtc *crtc) { struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); - mtk_disp_mutex_put(mtk_crtc->mutex); + mtk_mutex_put(mtk_crtc->mutex); drm_crtc_cleanup(crtc); } @@ -265,7 +265,7 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) return ret; } - ret = mtk_disp_mutex_prepare(mtk_crtc->mutex); + ret = mtk_mutex_prepare(mtk_crtc->mutex); if (ret < 0) { DRM_ERROR("Failed to enable mutex clock: %d\n", ret); goto err_pm_runtime_put; @@ -281,11 +281,11 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) mtk_mmsys_ddp_connect(mtk_crtc->mmsys_dev, mtk_crtc->ddp_comp[i]->id, mtk_crtc->ddp_comp[i + 1]->id); - mtk_disp_mutex_add_comp(mtk_crtc->mutex, + mtk_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); } - mtk_disp_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); - mtk_disp_mutex_enable(mtk_crtc->mutex); + mtk_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); + mtk_mutex_enable(mtk_crtc->mutex); for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) { struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[i]; @@ -314,7 +314,7 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) return 0; err_mutex_unprepare: - mtk_disp_mutex_unprepare(mtk_crtc->mutex); + mtk_mutex_unprepare(mtk_crtc->mutex); err_pm_runtime_put: pm_runtime_put(crtc->dev->dev); return ret; @@ -333,19 +333,19 @@ static void mtk_crtc_ddp_hw_fini(struct mtk_drm_crtc *mtk_crtc) } for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) - mtk_disp_mutex_remove_comp(mtk_crtc->mutex, + mtk_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); - mtk_disp_mutex_disable(mtk_crtc->mutex); + mtk_mutex_disable(mtk_crtc->mutex); for (i = 0; i < mtk_crtc->ddp_comp_nr - 1; i++) { mtk_mmsys_ddp_disconnect(mtk_crtc->mmsys_dev, mtk_crtc->ddp_comp[i]->id, mtk_crtc->ddp_comp[i + 1]->id); - mtk_disp_mutex_remove_comp(mtk_crtc->mutex, + mtk_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); } - mtk_disp_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); + mtk_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); mtk_crtc_ddp_clk_disable(mtk_crtc); - mtk_disp_mutex_unprepare(mtk_crtc->mutex); + mtk_mutex_unprepare(mtk_crtc->mutex); pm_runtime_put(drm->dev); @@ -457,9 +457,9 @@ static void mtk_drm_crtc_hw_config(struct mtk_drm_crtc *mtk_crtc) mtk_crtc->pending_async_planes = true; if (priv->data->shadow_register) { - mtk_disp_mutex_acquire(mtk_crtc->mutex); + mtk_mutex_acquire(mtk_crtc->mutex); mtk_crtc_ddp_config(crtc, NULL); - mtk_disp_mutex_release(mtk_crtc->mutex); + mtk_mutex_release(mtk_crtc->mutex); } #if IS_REACHABLE(CONFIG_MTK_CMDQ) if (mtk_crtc->cmdq_client) { @@ -773,7 +773,7 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, if (!mtk_crtc->ddp_comp) return -ENOMEM; - mtk_crtc->mutex = mtk_disp_mutex_get(priv->mutex_dev, pipe); + mtk_crtc->mutex = mtk_mutex_get(priv->mutex_dev, pipe); if (IS_ERR(mtk_crtc->mutex)) { ret = PTR_ERR(mtk_crtc->mutex); dev_err(dev, "Failed to get mutex: %d\n", ret); diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index 25a24f69b986..b99a06e6834e 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -588,7 +588,7 @@ static struct platform_driver mtk_drm_platform_driver = { }; static struct platform_driver * const mtk_drm_drivers[] = { - &mtk_ddp_driver, + &mtk_mutex_driver, &mtk_disp_color_driver, &mtk_disp_ovl_driver, &mtk_disp_rdma_driver, diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h index 690e92e9eff9..ae366868d01a 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h @@ -46,7 +46,7 @@ struct mtk_drm_private { struct drm_atomic_state *suspend_state; }; -extern struct platform_driver mtk_ddp_driver; +extern struct platform_driver mtk_mutex_driver; extern struct platform_driver mtk_disp_color_driver; extern struct platform_driver mtk_disp_ovl_driver; extern struct platform_driver mtk_disp_rdma_driver; diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c index 1c8a253f4788..98a060bf225d 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.c +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c @@ -9,12 +9,12 @@ #include <linux/of_device.h> #include <linux/platform_device.h> #include <linux/regmap.h> +#include <linux/soc/mediatek/mtk-mmsys.h> -#include "mtk_drm_ddp_comp.h" #include "mtk_mutex.h" -#define MT2701_DISP_MUTEX0_MOD0 0x2c -#define MT2701_DISP_MUTEX0_SOF0 0x30 +#define MT2701_MUTEX0_MOD0 0x2c +#define MT2701_MUTEX0_SOF0 0x30 #define DISP_REG_MUTEX_EN(n) (0x20 + 0x20 * (n)) #define DISP_REG_MUTEX(n) (0x24 + 0x20 * (n)) @@ -79,33 +79,32 @@ #define MT2701_MUTEX_MOD_DISP_RDMA0 10 #define MT2701_MUTEX_MOD_DISP_RDMA1 12 -#define MUTEX_SOF_SINGLE_MODE 0 -#define MUTEX_SOF_DSI0 1 -#define MUTEX_SOF_DSI1 2 -#define MUTEX_SOF_DPI0 3 -#define MUTEX_SOF_DPI1 4 -#define MUTEX_SOF_DSI2 5 -#define MUTEX_SOF_DSI3 6 -#define MT8167_MUTEX_SOF_DPI0 2 -#define MT8167_MUTEX_SOF_DPI1 3 - - -struct mtk_disp_mutex { +#define MT2712_MUTEX_SOF_SINGLE_MODE 0 +#define MT2712_MUTEX_SOF_DSI0 1 +#define MT2712_MUTEX_SOF_DSI1 2 +#define MT2712_MUTEX_SOF_DPI0 3 +#define MT2712_MUTEX_SOF_DPI1 4 +#define MT2712_MUTEX_SOF_DSI2 5 +#define MT2712_MUTEX_SOF_DSI3 6 +#define MT8167_MUTEX_SOF_DPI0 2 +#define MT8167_MUTEX_SOF_DPI1 3 + +struct mtk_mutex { int id; bool claimed; }; -enum mtk_ddp_mutex_sof_id { - DDP_MUTEX_SOF_SINGLE_MODE, - DDP_MUTEX_SOF_DSI0, - DDP_MUTEX_SOF_DSI1, - DDP_MUTEX_SOF_DPI0, - DDP_MUTEX_SOF_DPI1, - DDP_MUTEX_SOF_DSI2, - DDP_MUTEX_SOF_DSI3, +enum mtk_mutex_sof_id { + MUTEX_SOF_SINGLE_MODE, + MUTEX_SOF_DSI0, + MUTEX_SOF_DSI1, + MUTEX_SOF_DPI0, + MUTEX_SOF_DPI1, + MUTEX_SOF_DSI2, + MUTEX_SOF_DSI3, }; -struct mtk_ddp_data { +struct mtk_mutex_data { const unsigned int *mutex_mod; const unsigned int *mutex_sof; const unsigned int mutex_mod_reg; @@ -113,12 +112,12 @@ struct mtk_ddp_data { const bool no_clk; }; -struct mtk_ddp { +struct mtk_mutex_ctx { struct device *dev; struct clk *clk; void __iomem *regs; - struct mtk_disp_mutex mutex[10]; - const struct mtk_ddp_data *data; + struct mtk_mutex mutex[10]; + const struct mtk_mutex_data *data; }; static const unsigned int mt2701_mutex_mod[DDP_COMPONENT_ID_MAX] = { @@ -183,150 +182,150 @@ static const unsigned int mt8173_mutex_mod[DDP_COMPONENT_ID_MAX] = { [DDP_COMPONENT_WDMA1] = MT8173_MUTEX_MOD_DISP_WDMA1, }; -static const unsigned int mt2712_mutex_sof[DDP_MUTEX_SOF_DSI3 + 1] = { - [DDP_MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, - [DDP_MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, - [DDP_MUTEX_SOF_DSI1] = MUTEX_SOF_DSI1, - [DDP_MUTEX_SOF_DPI0] = MUTEX_SOF_DPI0, - [DDP_MUTEX_SOF_DPI1] = MUTEX_SOF_DPI1, - [DDP_MUTEX_SOF_DSI2] = MUTEX_SOF_DSI2, - [DDP_MUTEX_SOF_DSI3] = MUTEX_SOF_DSI3, +static const unsigned int mt2712_mutex_sof[MUTEX_SOF_DSI3 + 1] = { + [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, + [MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, + [MUTEX_SOF_DSI1] = MUTEX_SOF_DSI1, + [MUTEX_SOF_DPI0] = MUTEX_SOF_DPI0, + [MUTEX_SOF_DPI1] = MUTEX_SOF_DPI1, + [MUTEX_SOF_DSI2] = MUTEX_SOF_DSI2, + [MUTEX_SOF_DSI3] = MUTEX_SOF_DSI3, }; -static const unsigned int mt8167_mutex_sof[DDP_MUTEX_SOF_DSI3 + 1] = { - [DDP_MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, - [DDP_MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, - [DDP_MUTEX_SOF_DPI0] = MT8167_MUTEX_SOF_DPI0, - [DDP_MUTEX_SOF_DPI1] = MT8167_MUTEX_SOF_DPI1, +static const unsigned int mt8167_mutex_sof[MUTEX_SOF_DSI3 + 1] = { + [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, + [MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, + [MUTEX_SOF_DPI0] = MT8167_MUTEX_SOF_DPI0, + [MUTEX_SOF_DPI1] = MT8167_MUTEX_SOF_DPI1, }; -static const struct mtk_ddp_data mt2701_ddp_driver_data = { +static const struct mtk_mutex_data mt2701_mutex_driver_data = { .mutex_mod = mt2701_mutex_mod, .mutex_sof = mt2712_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -static const struct mtk_ddp_data mt2712_ddp_driver_data = { +static const struct mtk_mutex_data mt2712_mutex_driver_data = { .mutex_mod = mt2712_mutex_mod, .mutex_sof = mt2712_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -static const struct mtk_ddp_data mt8167_ddp_driver_data = { +static const struct mtk_mutex_data mt8167_mutex_driver_data = { .mutex_mod = mt8167_mutex_mod, .mutex_sof = mt8167_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, .no_clk = true, }; -static const struct mtk_ddp_data mt8173_ddp_driver_data = { +static const struct mtk_mutex_data mt8173_mutex_driver_data = { .mutex_mod = mt8173_mutex_mod, .mutex_sof = mt2712_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -struct mtk_disp_mutex *mtk_disp_mutex_get(struct device *dev, unsigned int id) +struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id) { - struct mtk_ddp *ddp = dev_get_drvdata(dev); + struct mtk_mutex_ctx *mtx = dev_get_drvdata(dev); if (id >= 10) return ERR_PTR(-EINVAL); - if (ddp->mutex[id].claimed) + if (mtx->mutex[id].claimed) return ERR_PTR(-EBUSY); - ddp->mutex[id].claimed = true; + mtx->mutex[id].claimed = true; - return &ddp->mutex[id]; + return &mtx->mutex[id]; } -void mtk_disp_mutex_put(struct mtk_disp_mutex *mutex) +void mtk_mutex_put(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); mutex->claimed = false; } -int mtk_disp_mutex_prepare(struct mtk_disp_mutex *mutex) +int mtk_mutex_prepare(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); - return clk_prepare_enable(ddp->clk); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); + return clk_prepare_enable(mtx->clk); } -void mtk_disp_mutex_unprepare(struct mtk_disp_mutex *mutex) +void mtk_mutex_unprepare(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); - clk_disable_unprepare(ddp->clk); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); + clk_disable_unprepare(mtx->clk); } -void mtk_disp_mutex_add_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id) +void mtk_mutex_add_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); unsigned int reg; unsigned int sof_id; unsigned int offset; - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); switch (id) { case DDP_COMPONENT_DSI0: - sof_id = DDP_MUTEX_SOF_DSI0; + sof_id = MUTEX_SOF_DSI0; break; case DDP_COMPONENT_DSI1: - sof_id = DDP_MUTEX_SOF_DSI0; + sof_id = MUTEX_SOF_DSI0; break; case DDP_COMPONENT_DSI2: - sof_id = DDP_MUTEX_SOF_DSI2; + sof_id = MUTEX_SOF_DSI2; break; case DDP_COMPONENT_DSI3: - sof_id = DDP_MUTEX_SOF_DSI3; + sof_id = MUTEX_SOF_DSI3; break; case DDP_COMPONENT_DPI0: - sof_id = DDP_MUTEX_SOF_DPI0; + sof_id = MUTEX_SOF_DPI0; break; case DDP_COMPONENT_DPI1: - sof_id = DDP_MUTEX_SOF_DPI1; + sof_id = MUTEX_SOF_DPI1; break; default: - if (ddp->data->mutex_mod[id] < 32) { - offset = DISP_REG_MUTEX_MOD(ddp->data->mutex_mod_reg, + if (mtx->data->mutex_mod[id] < 32) { + offset = DISP_REG_MUTEX_MOD(mtx->data->mutex_mod_reg, mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg |= 1 << ddp->data->mutex_mod[id]; - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg |= 1 << mtx->data->mutex_mod[id]; + writel_relaxed(reg, mtx->regs + offset); } else { offset = DISP_REG_MUTEX_MOD2(mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg |= 1 << (ddp->data->mutex_mod[id] - 32); - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg |= 1 << (mtx->data->mutex_mod[id] - 32); + writel_relaxed(reg, mtx->regs + offset); } return; } - writel_relaxed(ddp->data->mutex_sof[sof_id], - ddp->regs + - DISP_REG_MUTEX_SOF(ddp->data->mutex_sof_reg, mutex->id)); + writel_relaxed(mtx->data->mutex_sof[sof_id], + mtx->regs + + DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); } -void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id) +void mtk_mutex_remove_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); unsigned int reg; unsigned int offset; - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); switch (id) { case DDP_COMPONENT_DSI0: @@ -336,129 +335,129 @@ void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex, case DDP_COMPONENT_DPI0: case DDP_COMPONENT_DPI1: writel_relaxed(MUTEX_SOF_SINGLE_MODE, - ddp->regs + - DISP_REG_MUTEX_SOF(ddp->data->mutex_sof_reg, + mtx->regs + + DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); break; default: - if (ddp->data->mutex_mod[id] < 32) { - offset = DISP_REG_MUTEX_MOD(ddp->data->mutex_mod_reg, + if (mtx->data->mutex_mod[id] < 32) { + offset = DISP_REG_MUTEX_MOD(mtx->data->mutex_mod_reg, mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg &= ~(1 << ddp->data->mutex_mod[id]); - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg &= ~(1 << mtx->data->mutex_mod[id]); + writel_relaxed(reg, mtx->regs + offset); } else { offset = DISP_REG_MUTEX_MOD2(mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg &= ~(1 << (ddp->data->mutex_mod[id] - 32)); - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg &= ~(1 << (mtx->data->mutex_mod[id] - 32)); + writel_relaxed(reg, mtx->regs + offset); } break; } } -void mtk_disp_mutex_enable(struct mtk_disp_mutex *mutex) +void mtk_mutex_enable(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); - writel(1, ddp->regs + DISP_REG_MUTEX_EN(mutex->id)); + writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } -void mtk_disp_mutex_disable(struct mtk_disp_mutex *mutex) +void mtk_mutex_disable(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); - writel(0, ddp->regs + DISP_REG_MUTEX_EN(mutex->id)); + writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } -void mtk_disp_mutex_acquire(struct mtk_disp_mutex *mutex) +void mtk_mutex_acquire(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); u32 tmp; - writel(1, ddp->regs + DISP_REG_MUTEX_EN(mutex->id)); - writel(1, ddp->regs + DISP_REG_MUTEX(mutex->id)); - if (readl_poll_timeout_atomic(ddp->regs + DISP_REG_MUTEX(mutex->id), + writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); + writel(1, mtx->regs + DISP_REG_MUTEX(mutex->id)); + if (readl_poll_timeout_atomic(mtx->regs + DISP_REG_MUTEX(mutex->id), tmp, tmp & INT_MUTEX, 1, 10000)) pr_err("could not acquire mutex %d\n", mutex->id); } -void mtk_disp_mutex_release(struct mtk_disp_mutex *mutex) +void mtk_mutex_release(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - writel(0, ddp->regs + DISP_REG_MUTEX(mutex->id)); + writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); } -static int mtk_ddp_probe(struct platform_device *pdev) +static int mtk_mutex_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; - struct mtk_ddp *ddp; + struct mtk_mutex_ctx *mtx; struct resource *regs; int i; - ddp = devm_kzalloc(dev, sizeof(*ddp), GFP_KERNEL); - if (!ddp) + mtx = devm_kzalloc(dev, sizeof(*mtx), GFP_KERNEL); + if (!mtx) return -ENOMEM; for (i = 0; i < 10; i++) - ddp->mutex[i].id = i; + mtx->mutex[i].id = i; - ddp->data = of_device_get_match_data(dev); + mtx->data = of_device_get_match_data(dev); - if (!ddp->data->no_clk) { - ddp->clk = devm_clk_get(dev, NULL); - if (IS_ERR(ddp->clk)) { - if (PTR_ERR(ddp->clk) != -EPROBE_DEFER) + if (!mtx->data->no_clk) { + mtx->clk = devm_clk_get(dev, NULL); + if (IS_ERR(mtx->clk)) { + if (PTR_ERR(mtx->clk) != -EPROBE_DEFER) dev_err(dev, "Failed to get clock\n"); - return PTR_ERR(ddp->clk); + return PTR_ERR(mtx->clk); } } regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); - ddp->regs = devm_ioremap_resource(dev, regs); - if (IS_ERR(ddp->regs)) { + mtx->regs = devm_ioremap_resource(dev, regs); + if (IS_ERR(mtx->regs)) { dev_err(dev, "Failed to map mutex registers\n"); - return PTR_ERR(ddp->regs); + return PTR_ERR(mtx->regs); } - platform_set_drvdata(pdev, ddp); + platform_set_drvdata(pdev, mtx); return 0; } -static int mtk_ddp_remove(struct platform_device *pdev) +static int mtk_mutex_remove(struct platform_device *pdev) { return 0; } -static const struct of_device_id ddp_driver_dt_match[] = { +static const struct of_device_id mutex_driver_dt_match[] = { { .compatible = "mediatek,mt2701-disp-mutex", - .data = &mt2701_ddp_driver_data}, + .data = &mt2701_mutex_driver_data}, { .compatible = "mediatek,mt2712-disp-mutex", - .data = &mt2712_ddp_driver_data}, + .data = &mt2712_mutex_driver_data}, { .compatible = "mediatek,mt8167-disp-mutex", - .data = &mt8167_ddp_driver_data}, + .data = &mt8167_mutex_driver_data}, { .compatible = "mediatek,mt8173-disp-mutex", - .data = &mt8173_ddp_driver_data}, + .data = &mt8173_mutex_driver_data}, {}, }; -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); -struct platform_driver mtk_ddp_driver = { - .probe = mtk_ddp_probe, - .remove = mtk_ddp_remove, +struct platform_driver mtk_mutex_driver = { + .probe = mtk_mutex_probe, + .remove = mtk_mutex_remove, .driver = { - .name = "mediatek-ddp", + .name = "mediatek-mutex", .owner = THIS_MODULE, - .of_match_table = ddp_driver_dt_match, + .of_match_table = mutex_driver_dt_match, }, }; diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/drivers/gpu/drm/mediatek/mtk_mutex.h index 3abcc20e88fb..b678e0988a37 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.h +++ b/drivers/gpu/drm/mediatek/mtk_mutex.h @@ -8,19 +8,19 @@ struct regmap; struct device; -struct mtk_disp_mutex; +struct mtk_mutex; -struct mtk_disp_mutex *mtk_disp_mutex_get(struct device *dev, unsigned int id); -int mtk_disp_mutex_prepare(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_add_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id); -void mtk_disp_mutex_enable(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_disable(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id); -void mtk_disp_mutex_unprepare(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_put(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_acquire(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_release(struct mtk_disp_mutex *mutex); +struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id); +int mtk_mutex_prepare(struct mtk_mutex *mutex); +void mtk_mutex_add_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id); +void mtk_mutex_enable(struct mtk_mutex *mutex); +void mtk_mutex_disable(struct mtk_mutex *mutex); +void mtk_mutex_remove_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id); +void mtk_mutex_unprepare(struct mtk_mutex *mutex); +void mtk_mutex_put(struct mtk_mutex *mutex); +void mtk_mutex_acquire(struct mtk_mutex *mutex); +void mtk_mutex_release(struct mtk_mutex *mutex); #endif /* MTK_MUTEX_H */ -- 2.17.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, CK Hu, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> 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> --- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- 5 files changed, 182 insertions(+), 183 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index fd97b7d195e3..bba87a036fa8 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -55,7 +55,7 @@ struct mtk_drm_crtc { #endif struct device *mmsys_dev; - struct mtk_disp_mutex *mutex; + struct mtk_mutex *mutex; unsigned int ddp_comp_nr; struct mtk_ddp_comp **ddp_comp; @@ -107,7 +107,7 @@ static void mtk_drm_crtc_destroy(struct drm_crtc *crtc) { struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); - mtk_disp_mutex_put(mtk_crtc->mutex); + mtk_mutex_put(mtk_crtc->mutex); drm_crtc_cleanup(crtc); } @@ -265,7 +265,7 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) return ret; } - ret = mtk_disp_mutex_prepare(mtk_crtc->mutex); + ret = mtk_mutex_prepare(mtk_crtc->mutex); if (ret < 0) { DRM_ERROR("Failed to enable mutex clock: %d\n", ret); goto err_pm_runtime_put; @@ -281,11 +281,11 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) mtk_mmsys_ddp_connect(mtk_crtc->mmsys_dev, mtk_crtc->ddp_comp[i]->id, mtk_crtc->ddp_comp[i + 1]->id); - mtk_disp_mutex_add_comp(mtk_crtc->mutex, + mtk_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); } - mtk_disp_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); - mtk_disp_mutex_enable(mtk_crtc->mutex); + mtk_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); + mtk_mutex_enable(mtk_crtc->mutex); for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) { struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[i]; @@ -314,7 +314,7 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) return 0; err_mutex_unprepare: - mtk_disp_mutex_unprepare(mtk_crtc->mutex); + mtk_mutex_unprepare(mtk_crtc->mutex); err_pm_runtime_put: pm_runtime_put(crtc->dev->dev); return ret; @@ -333,19 +333,19 @@ static void mtk_crtc_ddp_hw_fini(struct mtk_drm_crtc *mtk_crtc) } for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) - mtk_disp_mutex_remove_comp(mtk_crtc->mutex, + mtk_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); - mtk_disp_mutex_disable(mtk_crtc->mutex); + mtk_mutex_disable(mtk_crtc->mutex); for (i = 0; i < mtk_crtc->ddp_comp_nr - 1; i++) { mtk_mmsys_ddp_disconnect(mtk_crtc->mmsys_dev, mtk_crtc->ddp_comp[i]->id, mtk_crtc->ddp_comp[i + 1]->id); - mtk_disp_mutex_remove_comp(mtk_crtc->mutex, + mtk_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); } - mtk_disp_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); + mtk_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); mtk_crtc_ddp_clk_disable(mtk_crtc); - mtk_disp_mutex_unprepare(mtk_crtc->mutex); + mtk_mutex_unprepare(mtk_crtc->mutex); pm_runtime_put(drm->dev); @@ -457,9 +457,9 @@ static void mtk_drm_crtc_hw_config(struct mtk_drm_crtc *mtk_crtc) mtk_crtc->pending_async_planes = true; if (priv->data->shadow_register) { - mtk_disp_mutex_acquire(mtk_crtc->mutex); + mtk_mutex_acquire(mtk_crtc->mutex); mtk_crtc_ddp_config(crtc, NULL); - mtk_disp_mutex_release(mtk_crtc->mutex); + mtk_mutex_release(mtk_crtc->mutex); } #if IS_REACHABLE(CONFIG_MTK_CMDQ) if (mtk_crtc->cmdq_client) { @@ -773,7 +773,7 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, if (!mtk_crtc->ddp_comp) return -ENOMEM; - mtk_crtc->mutex = mtk_disp_mutex_get(priv->mutex_dev, pipe); + mtk_crtc->mutex = mtk_mutex_get(priv->mutex_dev, pipe); if (IS_ERR(mtk_crtc->mutex)) { ret = PTR_ERR(mtk_crtc->mutex); dev_err(dev, "Failed to get mutex: %d\n", ret); diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index 25a24f69b986..b99a06e6834e 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -588,7 +588,7 @@ static struct platform_driver mtk_drm_platform_driver = { }; static struct platform_driver * const mtk_drm_drivers[] = { - &mtk_ddp_driver, + &mtk_mutex_driver, &mtk_disp_color_driver, &mtk_disp_ovl_driver, &mtk_disp_rdma_driver, diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h index 690e92e9eff9..ae366868d01a 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h @@ -46,7 +46,7 @@ struct mtk_drm_private { struct drm_atomic_state *suspend_state; }; -extern struct platform_driver mtk_ddp_driver; +extern struct platform_driver mtk_mutex_driver; extern struct platform_driver mtk_disp_color_driver; extern struct platform_driver mtk_disp_ovl_driver; extern struct platform_driver mtk_disp_rdma_driver; diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c index 1c8a253f4788..98a060bf225d 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.c +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c @@ -9,12 +9,12 @@ #include <linux/of_device.h> #include <linux/platform_device.h> #include <linux/regmap.h> +#include <linux/soc/mediatek/mtk-mmsys.h> -#include "mtk_drm_ddp_comp.h" #include "mtk_mutex.h" -#define MT2701_DISP_MUTEX0_MOD0 0x2c -#define MT2701_DISP_MUTEX0_SOF0 0x30 +#define MT2701_MUTEX0_MOD0 0x2c +#define MT2701_MUTEX0_SOF0 0x30 #define DISP_REG_MUTEX_EN(n) (0x20 + 0x20 * (n)) #define DISP_REG_MUTEX(n) (0x24 + 0x20 * (n)) @@ -79,33 +79,32 @@ #define MT2701_MUTEX_MOD_DISP_RDMA0 10 #define MT2701_MUTEX_MOD_DISP_RDMA1 12 -#define MUTEX_SOF_SINGLE_MODE 0 -#define MUTEX_SOF_DSI0 1 -#define MUTEX_SOF_DSI1 2 -#define MUTEX_SOF_DPI0 3 -#define MUTEX_SOF_DPI1 4 -#define MUTEX_SOF_DSI2 5 -#define MUTEX_SOF_DSI3 6 -#define MT8167_MUTEX_SOF_DPI0 2 -#define MT8167_MUTEX_SOF_DPI1 3 - - -struct mtk_disp_mutex { +#define MT2712_MUTEX_SOF_SINGLE_MODE 0 +#define MT2712_MUTEX_SOF_DSI0 1 +#define MT2712_MUTEX_SOF_DSI1 2 +#define MT2712_MUTEX_SOF_DPI0 3 +#define MT2712_MUTEX_SOF_DPI1 4 +#define MT2712_MUTEX_SOF_DSI2 5 +#define MT2712_MUTEX_SOF_DSI3 6 +#define MT8167_MUTEX_SOF_DPI0 2 +#define MT8167_MUTEX_SOF_DPI1 3 + +struct mtk_mutex { int id; bool claimed; }; -enum mtk_ddp_mutex_sof_id { - DDP_MUTEX_SOF_SINGLE_MODE, - DDP_MUTEX_SOF_DSI0, - DDP_MUTEX_SOF_DSI1, - DDP_MUTEX_SOF_DPI0, - DDP_MUTEX_SOF_DPI1, - DDP_MUTEX_SOF_DSI2, - DDP_MUTEX_SOF_DSI3, +enum mtk_mutex_sof_id { + MUTEX_SOF_SINGLE_MODE, + MUTEX_SOF_DSI0, + MUTEX_SOF_DSI1, + MUTEX_SOF_DPI0, + MUTEX_SOF_DPI1, + MUTEX_SOF_DSI2, + MUTEX_SOF_DSI3, }; -struct mtk_ddp_data { +struct mtk_mutex_data { const unsigned int *mutex_mod; const unsigned int *mutex_sof; const unsigned int mutex_mod_reg; @@ -113,12 +112,12 @@ struct mtk_ddp_data { const bool no_clk; }; -struct mtk_ddp { +struct mtk_mutex_ctx { struct device *dev; struct clk *clk; void __iomem *regs; - struct mtk_disp_mutex mutex[10]; - const struct mtk_ddp_data *data; + struct mtk_mutex mutex[10]; + const struct mtk_mutex_data *data; }; static const unsigned int mt2701_mutex_mod[DDP_COMPONENT_ID_MAX] = { @@ -183,150 +182,150 @@ static const unsigned int mt8173_mutex_mod[DDP_COMPONENT_ID_MAX] = { [DDP_COMPONENT_WDMA1] = MT8173_MUTEX_MOD_DISP_WDMA1, }; -static const unsigned int mt2712_mutex_sof[DDP_MUTEX_SOF_DSI3 + 1] = { - [DDP_MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, - [DDP_MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, - [DDP_MUTEX_SOF_DSI1] = MUTEX_SOF_DSI1, - [DDP_MUTEX_SOF_DPI0] = MUTEX_SOF_DPI0, - [DDP_MUTEX_SOF_DPI1] = MUTEX_SOF_DPI1, - [DDP_MUTEX_SOF_DSI2] = MUTEX_SOF_DSI2, - [DDP_MUTEX_SOF_DSI3] = MUTEX_SOF_DSI3, +static const unsigned int mt2712_mutex_sof[MUTEX_SOF_DSI3 + 1] = { + [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, + [MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, + [MUTEX_SOF_DSI1] = MUTEX_SOF_DSI1, + [MUTEX_SOF_DPI0] = MUTEX_SOF_DPI0, + [MUTEX_SOF_DPI1] = MUTEX_SOF_DPI1, + [MUTEX_SOF_DSI2] = MUTEX_SOF_DSI2, + [MUTEX_SOF_DSI3] = MUTEX_SOF_DSI3, }; -static const unsigned int mt8167_mutex_sof[DDP_MUTEX_SOF_DSI3 + 1] = { - [DDP_MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, - [DDP_MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, - [DDP_MUTEX_SOF_DPI0] = MT8167_MUTEX_SOF_DPI0, - [DDP_MUTEX_SOF_DPI1] = MT8167_MUTEX_SOF_DPI1, +static const unsigned int mt8167_mutex_sof[MUTEX_SOF_DSI3 + 1] = { + [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, + [MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, + [MUTEX_SOF_DPI0] = MT8167_MUTEX_SOF_DPI0, + [MUTEX_SOF_DPI1] = MT8167_MUTEX_SOF_DPI1, }; -static const struct mtk_ddp_data mt2701_ddp_driver_data = { +static const struct mtk_mutex_data mt2701_mutex_driver_data = { .mutex_mod = mt2701_mutex_mod, .mutex_sof = mt2712_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -static const struct mtk_ddp_data mt2712_ddp_driver_data = { +static const struct mtk_mutex_data mt2712_mutex_driver_data = { .mutex_mod = mt2712_mutex_mod, .mutex_sof = mt2712_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -static const struct mtk_ddp_data mt8167_ddp_driver_data = { +static const struct mtk_mutex_data mt8167_mutex_driver_data = { .mutex_mod = mt8167_mutex_mod, .mutex_sof = mt8167_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, .no_clk = true, }; -static const struct mtk_ddp_data mt8173_ddp_driver_data = { +static const struct mtk_mutex_data mt8173_mutex_driver_data = { .mutex_mod = mt8173_mutex_mod, .mutex_sof = mt2712_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -struct mtk_disp_mutex *mtk_disp_mutex_get(struct device *dev, unsigned int id) +struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id) { - struct mtk_ddp *ddp = dev_get_drvdata(dev); + struct mtk_mutex_ctx *mtx = dev_get_drvdata(dev); if (id >= 10) return ERR_PTR(-EINVAL); - if (ddp->mutex[id].claimed) + if (mtx->mutex[id].claimed) return ERR_PTR(-EBUSY); - ddp->mutex[id].claimed = true; + mtx->mutex[id].claimed = true; - return &ddp->mutex[id]; + return &mtx->mutex[id]; } -void mtk_disp_mutex_put(struct mtk_disp_mutex *mutex) +void mtk_mutex_put(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); mutex->claimed = false; } -int mtk_disp_mutex_prepare(struct mtk_disp_mutex *mutex) +int mtk_mutex_prepare(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); - return clk_prepare_enable(ddp->clk); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); + return clk_prepare_enable(mtx->clk); } -void mtk_disp_mutex_unprepare(struct mtk_disp_mutex *mutex) +void mtk_mutex_unprepare(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); - clk_disable_unprepare(ddp->clk); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); + clk_disable_unprepare(mtx->clk); } -void mtk_disp_mutex_add_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id) +void mtk_mutex_add_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); unsigned int reg; unsigned int sof_id; unsigned int offset; - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); switch (id) { case DDP_COMPONENT_DSI0: - sof_id = DDP_MUTEX_SOF_DSI0; + sof_id = MUTEX_SOF_DSI0; break; case DDP_COMPONENT_DSI1: - sof_id = DDP_MUTEX_SOF_DSI0; + sof_id = MUTEX_SOF_DSI0; break; case DDP_COMPONENT_DSI2: - sof_id = DDP_MUTEX_SOF_DSI2; + sof_id = MUTEX_SOF_DSI2; break; case DDP_COMPONENT_DSI3: - sof_id = DDP_MUTEX_SOF_DSI3; + sof_id = MUTEX_SOF_DSI3; break; case DDP_COMPONENT_DPI0: - sof_id = DDP_MUTEX_SOF_DPI0; + sof_id = MUTEX_SOF_DPI0; break; case DDP_COMPONENT_DPI1: - sof_id = DDP_MUTEX_SOF_DPI1; + sof_id = MUTEX_SOF_DPI1; break; default: - if (ddp->data->mutex_mod[id] < 32) { - offset = DISP_REG_MUTEX_MOD(ddp->data->mutex_mod_reg, + if (mtx->data->mutex_mod[id] < 32) { + offset = DISP_REG_MUTEX_MOD(mtx->data->mutex_mod_reg, mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg |= 1 << ddp->data->mutex_mod[id]; - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg |= 1 << mtx->data->mutex_mod[id]; + writel_relaxed(reg, mtx->regs + offset); } else { offset = DISP_REG_MUTEX_MOD2(mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg |= 1 << (ddp->data->mutex_mod[id] - 32); - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg |= 1 << (mtx->data->mutex_mod[id] - 32); + writel_relaxed(reg, mtx->regs + offset); } return; } - writel_relaxed(ddp->data->mutex_sof[sof_id], - ddp->regs + - DISP_REG_MUTEX_SOF(ddp->data->mutex_sof_reg, mutex->id)); + writel_relaxed(mtx->data->mutex_sof[sof_id], + mtx->regs + + DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); } -void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id) +void mtk_mutex_remove_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); unsigned int reg; unsigned int offset; - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); switch (id) { case DDP_COMPONENT_DSI0: @@ -336,129 +335,129 @@ void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex, case DDP_COMPONENT_DPI0: case DDP_COMPONENT_DPI1: writel_relaxed(MUTEX_SOF_SINGLE_MODE, - ddp->regs + - DISP_REG_MUTEX_SOF(ddp->data->mutex_sof_reg, + mtx->regs + + DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); break; default: - if (ddp->data->mutex_mod[id] < 32) { - offset = DISP_REG_MUTEX_MOD(ddp->data->mutex_mod_reg, + if (mtx->data->mutex_mod[id] < 32) { + offset = DISP_REG_MUTEX_MOD(mtx->data->mutex_mod_reg, mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg &= ~(1 << ddp->data->mutex_mod[id]); - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg &= ~(1 << mtx->data->mutex_mod[id]); + writel_relaxed(reg, mtx->regs + offset); } else { offset = DISP_REG_MUTEX_MOD2(mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg &= ~(1 << (ddp->data->mutex_mod[id] - 32)); - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg &= ~(1 << (mtx->data->mutex_mod[id] - 32)); + writel_relaxed(reg, mtx->regs + offset); } break; } } -void mtk_disp_mutex_enable(struct mtk_disp_mutex *mutex) +void mtk_mutex_enable(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); - writel(1, ddp->regs + DISP_REG_MUTEX_EN(mutex->id)); + writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } -void mtk_disp_mutex_disable(struct mtk_disp_mutex *mutex) +void mtk_mutex_disable(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); - writel(0, ddp->regs + DISP_REG_MUTEX_EN(mutex->id)); + writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } -void mtk_disp_mutex_acquire(struct mtk_disp_mutex *mutex) +void mtk_mutex_acquire(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); u32 tmp; - writel(1, ddp->regs + DISP_REG_MUTEX_EN(mutex->id)); - writel(1, ddp->regs + DISP_REG_MUTEX(mutex->id)); - if (readl_poll_timeout_atomic(ddp->regs + DISP_REG_MUTEX(mutex->id), + writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); + writel(1, mtx->regs + DISP_REG_MUTEX(mutex->id)); + if (readl_poll_timeout_atomic(mtx->regs + DISP_REG_MUTEX(mutex->id), tmp, tmp & INT_MUTEX, 1, 10000)) pr_err("could not acquire mutex %d\n", mutex->id); } -void mtk_disp_mutex_release(struct mtk_disp_mutex *mutex) +void mtk_mutex_release(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - writel(0, ddp->regs + DISP_REG_MUTEX(mutex->id)); + writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); } -static int mtk_ddp_probe(struct platform_device *pdev) +static int mtk_mutex_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; - struct mtk_ddp *ddp; + struct mtk_mutex_ctx *mtx; struct resource *regs; int i; - ddp = devm_kzalloc(dev, sizeof(*ddp), GFP_KERNEL); - if (!ddp) + mtx = devm_kzalloc(dev, sizeof(*mtx), GFP_KERNEL); + if (!mtx) return -ENOMEM; for (i = 0; i < 10; i++) - ddp->mutex[i].id = i; + mtx->mutex[i].id = i; - ddp->data = of_device_get_match_data(dev); + mtx->data = of_device_get_match_data(dev); - if (!ddp->data->no_clk) { - ddp->clk = devm_clk_get(dev, NULL); - if (IS_ERR(ddp->clk)) { - if (PTR_ERR(ddp->clk) != -EPROBE_DEFER) + if (!mtx->data->no_clk) { + mtx->clk = devm_clk_get(dev, NULL); + if (IS_ERR(mtx->clk)) { + if (PTR_ERR(mtx->clk) != -EPROBE_DEFER) dev_err(dev, "Failed to get clock\n"); - return PTR_ERR(ddp->clk); + return PTR_ERR(mtx->clk); } } regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); - ddp->regs = devm_ioremap_resource(dev, regs); - if (IS_ERR(ddp->regs)) { + mtx->regs = devm_ioremap_resource(dev, regs); + if (IS_ERR(mtx->regs)) { dev_err(dev, "Failed to map mutex registers\n"); - return PTR_ERR(ddp->regs); + return PTR_ERR(mtx->regs); } - platform_set_drvdata(pdev, ddp); + platform_set_drvdata(pdev, mtx); return 0; } -static int mtk_ddp_remove(struct platform_device *pdev) +static int mtk_mutex_remove(struct platform_device *pdev) { return 0; } -static const struct of_device_id ddp_driver_dt_match[] = { +static const struct of_device_id mutex_driver_dt_match[] = { { .compatible = "mediatek,mt2701-disp-mutex", - .data = &mt2701_ddp_driver_data}, + .data = &mt2701_mutex_driver_data}, { .compatible = "mediatek,mt2712-disp-mutex", - .data = &mt2712_ddp_driver_data}, + .data = &mt2712_mutex_driver_data}, { .compatible = "mediatek,mt8167-disp-mutex", - .data = &mt8167_ddp_driver_data}, + .data = &mt8167_mutex_driver_data}, { .compatible = "mediatek,mt8173-disp-mutex", - .data = &mt8173_ddp_driver_data}, + .data = &mt8173_mutex_driver_data}, {}, }; -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); -struct platform_driver mtk_ddp_driver = { - .probe = mtk_ddp_probe, - .remove = mtk_ddp_remove, +struct platform_driver mtk_mutex_driver = { + .probe = mtk_mutex_probe, + .remove = mtk_mutex_remove, .driver = { - .name = "mediatek-ddp", + .name = "mediatek-mutex", .owner = THIS_MODULE, - .of_match_table = ddp_driver_dt_match, + .of_match_table = mutex_driver_dt_match, }, }; diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/drivers/gpu/drm/mediatek/mtk_mutex.h index 3abcc20e88fb..b678e0988a37 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.h +++ b/drivers/gpu/drm/mediatek/mtk_mutex.h @@ -8,19 +8,19 @@ struct regmap; struct device; -struct mtk_disp_mutex; +struct mtk_mutex; -struct mtk_disp_mutex *mtk_disp_mutex_get(struct device *dev, unsigned int id); -int mtk_disp_mutex_prepare(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_add_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id); -void mtk_disp_mutex_enable(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_disable(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id); -void mtk_disp_mutex_unprepare(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_put(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_acquire(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_release(struct mtk_disp_mutex *mutex); +struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id); +int mtk_mutex_prepare(struct mtk_mutex *mutex); +void mtk_mutex_add_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id); +void mtk_mutex_enable(struct mtk_mutex *mutex); +void mtk_mutex_disable(struct mtk_mutex *mutex); +void mtk_mutex_remove_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id); +void mtk_mutex_unprepare(struct mtk_mutex *mutex); +void mtk_mutex_put(struct mtk_mutex *mutex); +void mtk_mutex_acquire(struct mtk_mutex *mutex); +void mtk_mutex_release(struct mtk_mutex *mutex); #endif /* MTK_MUTEX_H */ -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, CK Hu, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> 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> --- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- 5 files changed, 182 insertions(+), 183 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index fd97b7d195e3..bba87a036fa8 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -55,7 +55,7 @@ struct mtk_drm_crtc { #endif struct device *mmsys_dev; - struct mtk_disp_mutex *mutex; + struct mtk_mutex *mutex; unsigned int ddp_comp_nr; struct mtk_ddp_comp **ddp_comp; @@ -107,7 +107,7 @@ static void mtk_drm_crtc_destroy(struct drm_crtc *crtc) { struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); - mtk_disp_mutex_put(mtk_crtc->mutex); + mtk_mutex_put(mtk_crtc->mutex); drm_crtc_cleanup(crtc); } @@ -265,7 +265,7 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) return ret; } - ret = mtk_disp_mutex_prepare(mtk_crtc->mutex); + ret = mtk_mutex_prepare(mtk_crtc->mutex); if (ret < 0) { DRM_ERROR("Failed to enable mutex clock: %d\n", ret); goto err_pm_runtime_put; @@ -281,11 +281,11 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) mtk_mmsys_ddp_connect(mtk_crtc->mmsys_dev, mtk_crtc->ddp_comp[i]->id, mtk_crtc->ddp_comp[i + 1]->id); - mtk_disp_mutex_add_comp(mtk_crtc->mutex, + mtk_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); } - mtk_disp_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); - mtk_disp_mutex_enable(mtk_crtc->mutex); + mtk_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); + mtk_mutex_enable(mtk_crtc->mutex); for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) { struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[i]; @@ -314,7 +314,7 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) return 0; err_mutex_unprepare: - mtk_disp_mutex_unprepare(mtk_crtc->mutex); + mtk_mutex_unprepare(mtk_crtc->mutex); err_pm_runtime_put: pm_runtime_put(crtc->dev->dev); return ret; @@ -333,19 +333,19 @@ static void mtk_crtc_ddp_hw_fini(struct mtk_drm_crtc *mtk_crtc) } for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) - mtk_disp_mutex_remove_comp(mtk_crtc->mutex, + mtk_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); - mtk_disp_mutex_disable(mtk_crtc->mutex); + mtk_mutex_disable(mtk_crtc->mutex); for (i = 0; i < mtk_crtc->ddp_comp_nr - 1; i++) { mtk_mmsys_ddp_disconnect(mtk_crtc->mmsys_dev, mtk_crtc->ddp_comp[i]->id, mtk_crtc->ddp_comp[i + 1]->id); - mtk_disp_mutex_remove_comp(mtk_crtc->mutex, + mtk_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); } - mtk_disp_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); + mtk_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); mtk_crtc_ddp_clk_disable(mtk_crtc); - mtk_disp_mutex_unprepare(mtk_crtc->mutex); + mtk_mutex_unprepare(mtk_crtc->mutex); pm_runtime_put(drm->dev); @@ -457,9 +457,9 @@ static void mtk_drm_crtc_hw_config(struct mtk_drm_crtc *mtk_crtc) mtk_crtc->pending_async_planes = true; if (priv->data->shadow_register) { - mtk_disp_mutex_acquire(mtk_crtc->mutex); + mtk_mutex_acquire(mtk_crtc->mutex); mtk_crtc_ddp_config(crtc, NULL); - mtk_disp_mutex_release(mtk_crtc->mutex); + mtk_mutex_release(mtk_crtc->mutex); } #if IS_REACHABLE(CONFIG_MTK_CMDQ) if (mtk_crtc->cmdq_client) { @@ -773,7 +773,7 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, if (!mtk_crtc->ddp_comp) return -ENOMEM; - mtk_crtc->mutex = mtk_disp_mutex_get(priv->mutex_dev, pipe); + mtk_crtc->mutex = mtk_mutex_get(priv->mutex_dev, pipe); if (IS_ERR(mtk_crtc->mutex)) { ret = PTR_ERR(mtk_crtc->mutex); dev_err(dev, "Failed to get mutex: %d\n", ret); diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index 25a24f69b986..b99a06e6834e 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -588,7 +588,7 @@ static struct platform_driver mtk_drm_platform_driver = { }; static struct platform_driver * const mtk_drm_drivers[] = { - &mtk_ddp_driver, + &mtk_mutex_driver, &mtk_disp_color_driver, &mtk_disp_ovl_driver, &mtk_disp_rdma_driver, diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h index 690e92e9eff9..ae366868d01a 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h @@ -46,7 +46,7 @@ struct mtk_drm_private { struct drm_atomic_state *suspend_state; }; -extern struct platform_driver mtk_ddp_driver; +extern struct platform_driver mtk_mutex_driver; extern struct platform_driver mtk_disp_color_driver; extern struct platform_driver mtk_disp_ovl_driver; extern struct platform_driver mtk_disp_rdma_driver; diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c index 1c8a253f4788..98a060bf225d 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.c +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c @@ -9,12 +9,12 @@ #include <linux/of_device.h> #include <linux/platform_device.h> #include <linux/regmap.h> +#include <linux/soc/mediatek/mtk-mmsys.h> -#include "mtk_drm_ddp_comp.h" #include "mtk_mutex.h" -#define MT2701_DISP_MUTEX0_MOD0 0x2c -#define MT2701_DISP_MUTEX0_SOF0 0x30 +#define MT2701_MUTEX0_MOD0 0x2c +#define MT2701_MUTEX0_SOF0 0x30 #define DISP_REG_MUTEX_EN(n) (0x20 + 0x20 * (n)) #define DISP_REG_MUTEX(n) (0x24 + 0x20 * (n)) @@ -79,33 +79,32 @@ #define MT2701_MUTEX_MOD_DISP_RDMA0 10 #define MT2701_MUTEX_MOD_DISP_RDMA1 12 -#define MUTEX_SOF_SINGLE_MODE 0 -#define MUTEX_SOF_DSI0 1 -#define MUTEX_SOF_DSI1 2 -#define MUTEX_SOF_DPI0 3 -#define MUTEX_SOF_DPI1 4 -#define MUTEX_SOF_DSI2 5 -#define MUTEX_SOF_DSI3 6 -#define MT8167_MUTEX_SOF_DPI0 2 -#define MT8167_MUTEX_SOF_DPI1 3 - - -struct mtk_disp_mutex { +#define MT2712_MUTEX_SOF_SINGLE_MODE 0 +#define MT2712_MUTEX_SOF_DSI0 1 +#define MT2712_MUTEX_SOF_DSI1 2 +#define MT2712_MUTEX_SOF_DPI0 3 +#define MT2712_MUTEX_SOF_DPI1 4 +#define MT2712_MUTEX_SOF_DSI2 5 +#define MT2712_MUTEX_SOF_DSI3 6 +#define MT8167_MUTEX_SOF_DPI0 2 +#define MT8167_MUTEX_SOF_DPI1 3 + +struct mtk_mutex { int id; bool claimed; }; -enum mtk_ddp_mutex_sof_id { - DDP_MUTEX_SOF_SINGLE_MODE, - DDP_MUTEX_SOF_DSI0, - DDP_MUTEX_SOF_DSI1, - DDP_MUTEX_SOF_DPI0, - DDP_MUTEX_SOF_DPI1, - DDP_MUTEX_SOF_DSI2, - DDP_MUTEX_SOF_DSI3, +enum mtk_mutex_sof_id { + MUTEX_SOF_SINGLE_MODE, + MUTEX_SOF_DSI0, + MUTEX_SOF_DSI1, + MUTEX_SOF_DPI0, + MUTEX_SOF_DPI1, + MUTEX_SOF_DSI2, + MUTEX_SOF_DSI3, }; -struct mtk_ddp_data { +struct mtk_mutex_data { const unsigned int *mutex_mod; const unsigned int *mutex_sof; const unsigned int mutex_mod_reg; @@ -113,12 +112,12 @@ struct mtk_ddp_data { const bool no_clk; }; -struct mtk_ddp { +struct mtk_mutex_ctx { struct device *dev; struct clk *clk; void __iomem *regs; - struct mtk_disp_mutex mutex[10]; - const struct mtk_ddp_data *data; + struct mtk_mutex mutex[10]; + const struct mtk_mutex_data *data; }; static const unsigned int mt2701_mutex_mod[DDP_COMPONENT_ID_MAX] = { @@ -183,150 +182,150 @@ static const unsigned int mt8173_mutex_mod[DDP_COMPONENT_ID_MAX] = { [DDP_COMPONENT_WDMA1] = MT8173_MUTEX_MOD_DISP_WDMA1, }; -static const unsigned int mt2712_mutex_sof[DDP_MUTEX_SOF_DSI3 + 1] = { - [DDP_MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, - [DDP_MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, - [DDP_MUTEX_SOF_DSI1] = MUTEX_SOF_DSI1, - [DDP_MUTEX_SOF_DPI0] = MUTEX_SOF_DPI0, - [DDP_MUTEX_SOF_DPI1] = MUTEX_SOF_DPI1, - [DDP_MUTEX_SOF_DSI2] = MUTEX_SOF_DSI2, - [DDP_MUTEX_SOF_DSI3] = MUTEX_SOF_DSI3, +static const unsigned int mt2712_mutex_sof[MUTEX_SOF_DSI3 + 1] = { + [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, + [MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, + [MUTEX_SOF_DSI1] = MUTEX_SOF_DSI1, + [MUTEX_SOF_DPI0] = MUTEX_SOF_DPI0, + [MUTEX_SOF_DPI1] = MUTEX_SOF_DPI1, + [MUTEX_SOF_DSI2] = MUTEX_SOF_DSI2, + [MUTEX_SOF_DSI3] = MUTEX_SOF_DSI3, }; -static const unsigned int mt8167_mutex_sof[DDP_MUTEX_SOF_DSI3 + 1] = { - [DDP_MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, - [DDP_MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, - [DDP_MUTEX_SOF_DPI0] = MT8167_MUTEX_SOF_DPI0, - [DDP_MUTEX_SOF_DPI1] = MT8167_MUTEX_SOF_DPI1, +static const unsigned int mt8167_mutex_sof[MUTEX_SOF_DSI3 + 1] = { + [MUTEX_SOF_SINGLE_MODE] = MUTEX_SOF_SINGLE_MODE, + [MUTEX_SOF_DSI0] = MUTEX_SOF_DSI0, + [MUTEX_SOF_DPI0] = MT8167_MUTEX_SOF_DPI0, + [MUTEX_SOF_DPI1] = MT8167_MUTEX_SOF_DPI1, }; -static const struct mtk_ddp_data mt2701_ddp_driver_data = { +static const struct mtk_mutex_data mt2701_mutex_driver_data = { .mutex_mod = mt2701_mutex_mod, .mutex_sof = mt2712_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -static const struct mtk_ddp_data mt2712_ddp_driver_data = { +static const struct mtk_mutex_data mt2712_mutex_driver_data = { .mutex_mod = mt2712_mutex_mod, .mutex_sof = mt2712_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -static const struct mtk_ddp_data mt8167_ddp_driver_data = { +static const struct mtk_mutex_data mt8167_mutex_driver_data = { .mutex_mod = mt8167_mutex_mod, .mutex_sof = mt8167_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, .no_clk = true, }; -static const struct mtk_ddp_data mt8173_ddp_driver_data = { +static const struct mtk_mutex_data mt8173_mutex_driver_data = { .mutex_mod = mt8173_mutex_mod, .mutex_sof = mt2712_mutex_sof, - .mutex_mod_reg = MT2701_DISP_MUTEX0_MOD0, - .mutex_sof_reg = MT2701_DISP_MUTEX0_SOF0, + .mutex_mod_reg = MT2701_MUTEX0_MOD0, + .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -struct mtk_disp_mutex *mtk_disp_mutex_get(struct device *dev, unsigned int id) +struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id) { - struct mtk_ddp *ddp = dev_get_drvdata(dev); + struct mtk_mutex_ctx *mtx = dev_get_drvdata(dev); if (id >= 10) return ERR_PTR(-EINVAL); - if (ddp->mutex[id].claimed) + if (mtx->mutex[id].claimed) return ERR_PTR(-EBUSY); - ddp->mutex[id].claimed = true; + mtx->mutex[id].claimed = true; - return &ddp->mutex[id]; + return &mtx->mutex[id]; } -void mtk_disp_mutex_put(struct mtk_disp_mutex *mutex) +void mtk_mutex_put(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); mutex->claimed = false; } -int mtk_disp_mutex_prepare(struct mtk_disp_mutex *mutex) +int mtk_mutex_prepare(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); - return clk_prepare_enable(ddp->clk); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); + return clk_prepare_enable(mtx->clk); } -void mtk_disp_mutex_unprepare(struct mtk_disp_mutex *mutex) +void mtk_mutex_unprepare(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); - clk_disable_unprepare(ddp->clk); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); + clk_disable_unprepare(mtx->clk); } -void mtk_disp_mutex_add_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id) +void mtk_mutex_add_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); unsigned int reg; unsigned int sof_id; unsigned int offset; - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); switch (id) { case DDP_COMPONENT_DSI0: - sof_id = DDP_MUTEX_SOF_DSI0; + sof_id = MUTEX_SOF_DSI0; break; case DDP_COMPONENT_DSI1: - sof_id = DDP_MUTEX_SOF_DSI0; + sof_id = MUTEX_SOF_DSI0; break; case DDP_COMPONENT_DSI2: - sof_id = DDP_MUTEX_SOF_DSI2; + sof_id = MUTEX_SOF_DSI2; break; case DDP_COMPONENT_DSI3: - sof_id = DDP_MUTEX_SOF_DSI3; + sof_id = MUTEX_SOF_DSI3; break; case DDP_COMPONENT_DPI0: - sof_id = DDP_MUTEX_SOF_DPI0; + sof_id = MUTEX_SOF_DPI0; break; case DDP_COMPONENT_DPI1: - sof_id = DDP_MUTEX_SOF_DPI1; + sof_id = MUTEX_SOF_DPI1; break; default: - if (ddp->data->mutex_mod[id] < 32) { - offset = DISP_REG_MUTEX_MOD(ddp->data->mutex_mod_reg, + if (mtx->data->mutex_mod[id] < 32) { + offset = DISP_REG_MUTEX_MOD(mtx->data->mutex_mod_reg, mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg |= 1 << ddp->data->mutex_mod[id]; - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg |= 1 << mtx->data->mutex_mod[id]; + writel_relaxed(reg, mtx->regs + offset); } else { offset = DISP_REG_MUTEX_MOD2(mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg |= 1 << (ddp->data->mutex_mod[id] - 32); - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg |= 1 << (mtx->data->mutex_mod[id] - 32); + writel_relaxed(reg, mtx->regs + offset); } return; } - writel_relaxed(ddp->data->mutex_sof[sof_id], - ddp->regs + - DISP_REG_MUTEX_SOF(ddp->data->mutex_sof_reg, mutex->id)); + writel_relaxed(mtx->data->mutex_sof[sof_id], + mtx->regs + + DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); } -void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id) +void mtk_mutex_remove_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); unsigned int reg; unsigned int offset; - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); switch (id) { case DDP_COMPONENT_DSI0: @@ -336,129 +335,129 @@ void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex, case DDP_COMPONENT_DPI0: case DDP_COMPONENT_DPI1: writel_relaxed(MUTEX_SOF_SINGLE_MODE, - ddp->regs + - DISP_REG_MUTEX_SOF(ddp->data->mutex_sof_reg, + mtx->regs + + DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); break; default: - if (ddp->data->mutex_mod[id] < 32) { - offset = DISP_REG_MUTEX_MOD(ddp->data->mutex_mod_reg, + if (mtx->data->mutex_mod[id] < 32) { + offset = DISP_REG_MUTEX_MOD(mtx->data->mutex_mod_reg, mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg &= ~(1 << ddp->data->mutex_mod[id]); - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg &= ~(1 << mtx->data->mutex_mod[id]); + writel_relaxed(reg, mtx->regs + offset); } else { offset = DISP_REG_MUTEX_MOD2(mutex->id); - reg = readl_relaxed(ddp->regs + offset); - reg &= ~(1 << (ddp->data->mutex_mod[id] - 32)); - writel_relaxed(reg, ddp->regs + offset); + reg = readl_relaxed(mtx->regs + offset); + reg &= ~(1 << (mtx->data->mutex_mod[id] - 32)); + writel_relaxed(reg, mtx->regs + offset); } break; } } -void mtk_disp_mutex_enable(struct mtk_disp_mutex *mutex) +void mtk_mutex_enable(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); - writel(1, ddp->regs + DISP_REG_MUTEX_EN(mutex->id)); + writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } -void mtk_disp_mutex_disable(struct mtk_disp_mutex *mutex) +void mtk_mutex_disable(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - WARN_ON(&ddp->mutex[mutex->id] != mutex); + WARN_ON(&mtx->mutex[mutex->id] != mutex); - writel(0, ddp->regs + DISP_REG_MUTEX_EN(mutex->id)); + writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } -void mtk_disp_mutex_acquire(struct mtk_disp_mutex *mutex) +void mtk_mutex_acquire(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); u32 tmp; - writel(1, ddp->regs + DISP_REG_MUTEX_EN(mutex->id)); - writel(1, ddp->regs + DISP_REG_MUTEX(mutex->id)); - if (readl_poll_timeout_atomic(ddp->regs + DISP_REG_MUTEX(mutex->id), + writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); + writel(1, mtx->regs + DISP_REG_MUTEX(mutex->id)); + if (readl_poll_timeout_atomic(mtx->regs + DISP_REG_MUTEX(mutex->id), tmp, tmp & INT_MUTEX, 1, 10000)) pr_err("could not acquire mutex %d\n", mutex->id); } -void mtk_disp_mutex_release(struct mtk_disp_mutex *mutex) +void mtk_mutex_release(struct mtk_mutex *mutex) { - struct mtk_ddp *ddp = container_of(mutex, struct mtk_ddp, - mutex[mutex->id]); + struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, + mutex[mutex->id]); - writel(0, ddp->regs + DISP_REG_MUTEX(mutex->id)); + writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); } -static int mtk_ddp_probe(struct platform_device *pdev) +static int mtk_mutex_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; - struct mtk_ddp *ddp; + struct mtk_mutex_ctx *mtx; struct resource *regs; int i; - ddp = devm_kzalloc(dev, sizeof(*ddp), GFP_KERNEL); - if (!ddp) + mtx = devm_kzalloc(dev, sizeof(*mtx), GFP_KERNEL); + if (!mtx) return -ENOMEM; for (i = 0; i < 10; i++) - ddp->mutex[i].id = i; + mtx->mutex[i].id = i; - ddp->data = of_device_get_match_data(dev); + mtx->data = of_device_get_match_data(dev); - if (!ddp->data->no_clk) { - ddp->clk = devm_clk_get(dev, NULL); - if (IS_ERR(ddp->clk)) { - if (PTR_ERR(ddp->clk) != -EPROBE_DEFER) + if (!mtx->data->no_clk) { + mtx->clk = devm_clk_get(dev, NULL); + if (IS_ERR(mtx->clk)) { + if (PTR_ERR(mtx->clk) != -EPROBE_DEFER) dev_err(dev, "Failed to get clock\n"); - return PTR_ERR(ddp->clk); + return PTR_ERR(mtx->clk); } } regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); - ddp->regs = devm_ioremap_resource(dev, regs); - if (IS_ERR(ddp->regs)) { + mtx->regs = devm_ioremap_resource(dev, regs); + if (IS_ERR(mtx->regs)) { dev_err(dev, "Failed to map mutex registers\n"); - return PTR_ERR(ddp->regs); + return PTR_ERR(mtx->regs); } - platform_set_drvdata(pdev, ddp); + platform_set_drvdata(pdev, mtx); return 0; } -static int mtk_ddp_remove(struct platform_device *pdev) +static int mtk_mutex_remove(struct platform_device *pdev) { return 0; } -static const struct of_device_id ddp_driver_dt_match[] = { +static const struct of_device_id mutex_driver_dt_match[] = { { .compatible = "mediatek,mt2701-disp-mutex", - .data = &mt2701_ddp_driver_data}, + .data = &mt2701_mutex_driver_data}, { .compatible = "mediatek,mt2712-disp-mutex", - .data = &mt2712_ddp_driver_data}, + .data = &mt2712_mutex_driver_data}, { .compatible = "mediatek,mt8167-disp-mutex", - .data = &mt8167_ddp_driver_data}, + .data = &mt8167_mutex_driver_data}, { .compatible = "mediatek,mt8173-disp-mutex", - .data = &mt8173_ddp_driver_data}, + .data = &mt8173_mutex_driver_data}, {}, }; -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); -struct platform_driver mtk_ddp_driver = { - .probe = mtk_ddp_probe, - .remove = mtk_ddp_remove, +struct platform_driver mtk_mutex_driver = { + .probe = mtk_mutex_probe, + .remove = mtk_mutex_remove, .driver = { - .name = "mediatek-ddp", + .name = "mediatek-mutex", .owner = THIS_MODULE, - .of_match_table = ddp_driver_dt_match, + .of_match_table = mutex_driver_dt_match, }, }; diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/drivers/gpu/drm/mediatek/mtk_mutex.h index 3abcc20e88fb..b678e0988a37 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.h +++ b/drivers/gpu/drm/mediatek/mtk_mutex.h @@ -8,19 +8,19 @@ struct regmap; struct device; -struct mtk_disp_mutex; +struct mtk_mutex; -struct mtk_disp_mutex *mtk_disp_mutex_get(struct device *dev, unsigned int id); -int mtk_disp_mutex_prepare(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_add_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id); -void mtk_disp_mutex_enable(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_disable(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_remove_comp(struct mtk_disp_mutex *mutex, - enum mtk_ddp_comp_id id); -void mtk_disp_mutex_unprepare(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_put(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_acquire(struct mtk_disp_mutex *mutex); -void mtk_disp_mutex_release(struct mtk_disp_mutex *mutex); +struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id); +int mtk_mutex_prepare(struct mtk_mutex *mutex); +void mtk_mutex_add_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id); +void mtk_mutex_enable(struct mtk_mutex *mutex); +void mtk_mutex_disable(struct mtk_mutex *mutex); +void mtk_mutex_remove_comp(struct mtk_mutex *mutex, + enum mtk_ddp_comp_id id); +void mtk_mutex_unprepare(struct mtk_mutex *mutex); +void mtk_mutex_put(struct mtk_mutex *mutex); +void mtk_mutex_acquire(struct mtk_mutex *mutex); +void mtk_mutex_release(struct mtk_mutex *mutex); #endif /* MTK_MUTEX_H */ -- 2.17.1 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply related [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver 2021-01-06 23:17 ` Chun-Kuang Hu (?) @ 2021-01-20 18:27 ` Matthias Brugger -1 siblings, 0 replies; 50+ messages in thread From: Matthias Brugger @ 2021-01-20 18:27 UTC (permalink / raw) To: Chun-Kuang Hu Cc: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter, linux-kernel, dri-devel, linux-mediatek, CK Hu, linux-arm-kernel On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > From: CK Hu <ck.hu@mediatek.com> > > 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> > --- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > 5 files changed, 182 insertions(+), 183 deletions(-) > [...] > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > index 1c8a253f4788..98a060bf225d 100644 > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c [...] > > -static const struct of_device_id ddp_driver_dt_match[] = { > +static const struct of_device_id mutex_driver_dt_match[] = { > { .compatible = "mediatek,mt2701-disp-mutex", > - .data = &mt2701_ddp_driver_data}, > + .data = &mt2701_mutex_driver_data}, > { .compatible = "mediatek,mt2712-disp-mutex", > - .data = &mt2712_ddp_driver_data}, > + .data = &mt2712_mutex_driver_data}, > { .compatible = "mediatek,mt8167-disp-mutex", > - .data = &mt8167_ddp_driver_data}, > + .data = &mt8167_mutex_driver_data}, > { .compatible = "mediatek,mt8173-disp-mutex", > - .data = &mt8173_ddp_driver_data}, > + .data = &mt8173_mutex_driver_data}, > {}, > }; > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); I think it would make sense in a follow-up patch to update the binding to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and mdp driver. Make sense? Regards, Matthias ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-20 18:27 ` Matthias Brugger 0 siblings, 0 replies; 50+ messages in thread From: Matthias Brugger @ 2021-01-20 18:27 UTC (permalink / raw) To: Chun-Kuang Hu Cc: Philipp Zabel, David Airlie, linux-kernel, dri-devel, CK Hu, linux-mediatek, Daniel Vetter, Matthias Brugger, linux-arm-kernel On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > From: CK Hu <ck.hu@mediatek.com> > > 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> > --- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > 5 files changed, 182 insertions(+), 183 deletions(-) > [...] > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > index 1c8a253f4788..98a060bf225d 100644 > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c [...] > > -static const struct of_device_id ddp_driver_dt_match[] = { > +static const struct of_device_id mutex_driver_dt_match[] = { > { .compatible = "mediatek,mt2701-disp-mutex", > - .data = &mt2701_ddp_driver_data}, > + .data = &mt2701_mutex_driver_data}, > { .compatible = "mediatek,mt2712-disp-mutex", > - .data = &mt2712_ddp_driver_data}, > + .data = &mt2712_mutex_driver_data}, > { .compatible = "mediatek,mt8167-disp-mutex", > - .data = &mt8167_ddp_driver_data}, > + .data = &mt8167_mutex_driver_data}, > { .compatible = "mediatek,mt8173-disp-mutex", > - .data = &mt8173_ddp_driver_data}, > + .data = &mt8173_mutex_driver_data}, > {}, > }; > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); I think it would make sense in a follow-up patch to update the binding to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and mdp driver. Make sense? Regards, Matthias _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-20 18:27 ` Matthias Brugger 0 siblings, 0 replies; 50+ messages in thread From: Matthias Brugger @ 2021-01-20 18:27 UTC (permalink / raw) To: Chun-Kuang Hu Cc: Philipp Zabel, David Airlie, linux-kernel, dri-devel, CK Hu, linux-mediatek, Daniel Vetter, Matthias Brugger, linux-arm-kernel On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > From: CK Hu <ck.hu@mediatek.com> > > 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> > --- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > 5 files changed, 182 insertions(+), 183 deletions(-) > [...] > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > index 1c8a253f4788..98a060bf225d 100644 > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c [...] > > -static const struct of_device_id ddp_driver_dt_match[] = { > +static const struct of_device_id mutex_driver_dt_match[] = { > { .compatible = "mediatek,mt2701-disp-mutex", > - .data = &mt2701_ddp_driver_data}, > + .data = &mt2701_mutex_driver_data}, > { .compatible = "mediatek,mt2712-disp-mutex", > - .data = &mt2712_ddp_driver_data}, > + .data = &mt2712_mutex_driver_data}, > { .compatible = "mediatek,mt8167-disp-mutex", > - .data = &mt8167_ddp_driver_data}, > + .data = &mt8167_mutex_driver_data}, > { .compatible = "mediatek,mt8173-disp-mutex", > - .data = &mt8173_ddp_driver_data}, > + .data = &mt8173_mutex_driver_data}, > {}, > }; > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); I think it would make sense in a follow-up patch to update the binding to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and mdp driver. Make sense? Regards, Matthias _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver 2021-01-20 18:27 ` Matthias Brugger (?) (?) @ 2021-01-20 23:46 ` Chun-Kuang Hu -1 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-20 23:46 UTC (permalink / raw) To: Matthias Brugger Cc: Chun-Kuang Hu, Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter, linux-kernel, DRI Development, moderated list:ARM/Mediatek SoC support, CK Hu, Linux ARM Hi, Matthias: Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:27寫道: > > On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > > From: CK Hu <ck.hu@mediatek.com> > > > > 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> > > --- > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > > 5 files changed, 182 insertions(+), 183 deletions(-) > > > [...] > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > > index 1c8a253f4788..98a060bf225d 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c > [...] > > > > -static const struct of_device_id ddp_driver_dt_match[] = { > > +static const struct of_device_id mutex_driver_dt_match[] = { > > { .compatible = "mediatek,mt2701-disp-mutex", > > - .data = &mt2701_ddp_driver_data}, > > + .data = &mt2701_mutex_driver_data}, > > { .compatible = "mediatek,mt2712-disp-mutex", > > - .data = &mt2712_ddp_driver_data}, > > + .data = &mt2712_mutex_driver_data}, > > { .compatible = "mediatek,mt8167-disp-mutex", > > - .data = &mt8167_ddp_driver_data}, > > + .data = &mt8167_mutex_driver_data}, > > { .compatible = "mediatek,mt8173-disp-mutex", > > - .data = &mt8173_ddp_driver_data}, > > + .data = &mt8173_mutex_driver_data}, > > {}, > > }; > > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); > > I think it would make sense in a follow-up patch to update the binding > to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and > mdp driver. Make sense? Yes, it make sense. I would try to update the binding, but I wonder device tree should be backward compatible? Let's discuss in that follow-up patches. Regards, Chun-Kuang. > > Regards, > Matthias ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-20 23:46 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-20 23:46 UTC (permalink / raw) To: Matthias Brugger Cc: Chun-Kuang Hu, David Airlie, linux-kernel, DRI Development, moderated list:ARM/Mediatek SoC support, Matthias Brugger, Linux ARM Hi, Matthias: Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:27寫道: > > On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > > From: CK Hu <ck.hu@mediatek.com> > > > > 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> > > --- > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > > 5 files changed, 182 insertions(+), 183 deletions(-) > > > [...] > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > > index 1c8a253f4788..98a060bf225d 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c > [...] > > > > -static const struct of_device_id ddp_driver_dt_match[] = { > > +static const struct of_device_id mutex_driver_dt_match[] = { > > { .compatible = "mediatek,mt2701-disp-mutex", > > - .data = &mt2701_ddp_driver_data}, > > + .data = &mt2701_mutex_driver_data}, > > { .compatible = "mediatek,mt2712-disp-mutex", > > - .data = &mt2712_ddp_driver_data}, > > + .data = &mt2712_mutex_driver_data}, > > { .compatible = "mediatek,mt8167-disp-mutex", > > - .data = &mt8167_ddp_driver_data}, > > + .data = &mt8167_mutex_driver_data}, > > { .compatible = "mediatek,mt8173-disp-mutex", > > - .data = &mt8173_ddp_driver_data}, > > + .data = &mt8173_mutex_driver_data}, > > {}, > > }; > > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); > > I think it would make sense in a follow-up patch to update the binding > to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and > mdp driver. Make sense? Yes, it make sense. I would try to update the binding, but I wonder device tree should be backward compatible? Let's discuss in that follow-up patches. Regards, Chun-Kuang. > > Regards, > Matthias _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-20 23:46 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-20 23:46 UTC (permalink / raw) To: Matthias Brugger Cc: Chun-Kuang Hu, Philipp Zabel, David Airlie, linux-kernel, DRI Development, CK Hu, moderated list:ARM/Mediatek SoC support, Daniel Vetter, Matthias Brugger, Linux ARM Hi, Matthias: Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:27寫道: > > On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > > From: CK Hu <ck.hu@mediatek.com> > > > > 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> > > --- > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > > 5 files changed, 182 insertions(+), 183 deletions(-) > > > [...] > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > > index 1c8a253f4788..98a060bf225d 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c > [...] > > > > -static const struct of_device_id ddp_driver_dt_match[] = { > > +static const struct of_device_id mutex_driver_dt_match[] = { > > { .compatible = "mediatek,mt2701-disp-mutex", > > - .data = &mt2701_ddp_driver_data}, > > + .data = &mt2701_mutex_driver_data}, > > { .compatible = "mediatek,mt2712-disp-mutex", > > - .data = &mt2712_ddp_driver_data}, > > + .data = &mt2712_mutex_driver_data}, > > { .compatible = "mediatek,mt8167-disp-mutex", > > - .data = &mt8167_ddp_driver_data}, > > + .data = &mt8167_mutex_driver_data}, > > { .compatible = "mediatek,mt8173-disp-mutex", > > - .data = &mt8173_ddp_driver_data}, > > + .data = &mt8173_mutex_driver_data}, > > {}, > > }; > > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); > > I think it would make sense in a follow-up patch to update the binding > to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and > mdp driver. Make sense? Yes, it make sense. I would try to update the binding, but I wonder device tree should be backward compatible? Let's discuss in that follow-up patches. Regards, Chun-Kuang. > > Regards, > Matthias _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-20 23:46 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-20 23:46 UTC (permalink / raw) To: Matthias Brugger Cc: Chun-Kuang Hu, Philipp Zabel, David Airlie, linux-kernel, DRI Development, CK Hu, moderated list:ARM/Mediatek SoC support, Daniel Vetter, Matthias Brugger, Linux ARM Hi, Matthias: Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:27寫道: > > On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > > From: CK Hu <ck.hu@mediatek.com> > > > > 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> > > --- > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > > 5 files changed, 182 insertions(+), 183 deletions(-) > > > [...] > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > > index 1c8a253f4788..98a060bf225d 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c > [...] > > > > -static const struct of_device_id ddp_driver_dt_match[] = { > > +static const struct of_device_id mutex_driver_dt_match[] = { > > { .compatible = "mediatek,mt2701-disp-mutex", > > - .data = &mt2701_ddp_driver_data}, > > + .data = &mt2701_mutex_driver_data}, > > { .compatible = "mediatek,mt2712-disp-mutex", > > - .data = &mt2712_ddp_driver_data}, > > + .data = &mt2712_mutex_driver_data}, > > { .compatible = "mediatek,mt8167-disp-mutex", > > - .data = &mt8167_ddp_driver_data}, > > + .data = &mt8167_mutex_driver_data}, > > { .compatible = "mediatek,mt8173-disp-mutex", > > - .data = &mt8173_ddp_driver_data}, > > + .data = &mt8173_mutex_driver_data}, > > {}, > > }; > > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); > > I think it would make sense in a follow-up patch to update the binding > to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and > mdp driver. Make sense? Yes, it make sense. I would try to update the binding, but I wonder device tree should be backward compatible? Let's discuss in that follow-up patches. Regards, Chun-Kuang. > > Regards, > Matthias _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver 2021-01-20 23:46 ` Chun-Kuang Hu (?) (?) @ 2021-01-21 8:18 ` Matthias Brugger -1 siblings, 0 replies; 50+ messages in thread From: Matthias Brugger @ 2021-01-21 8:18 UTC (permalink / raw) To: Chun-Kuang Hu Cc: Philipp Zabel, David Airlie, linux-kernel, DRI Development, CK Hu, moderated list:ARM/Mediatek SoC support, Daniel Vetter, Matthias Brugger, Linux ARM On Thu, Jan 21, 2021 at 07:46:44AM +0800, Chun-Kuang Hu wrote: > Hi, Matthias: > > Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:27寫道: > > > > On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > > > From: CK Hu <ck.hu@mediatek.com> > > > > > > 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> > > > --- > > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > > > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > > > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > > > 5 files changed, 182 insertions(+), 183 deletions(-) > > > > > [...] > > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > > > index 1c8a253f4788..98a060bf225d 100644 > > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c > > [...] > > > > > > -static const struct of_device_id ddp_driver_dt_match[] = { > > > +static const struct of_device_id mutex_driver_dt_match[] = { > > > { .compatible = "mediatek,mt2701-disp-mutex", > > > - .data = &mt2701_ddp_driver_data}, > > > + .data = &mt2701_mutex_driver_data}, > > > { .compatible = "mediatek,mt2712-disp-mutex", > > > - .data = &mt2712_ddp_driver_data}, > > > + .data = &mt2712_mutex_driver_data}, > > > { .compatible = "mediatek,mt8167-disp-mutex", > > > - .data = &mt8167_ddp_driver_data}, > > > + .data = &mt8167_mutex_driver_data}, > > > { .compatible = "mediatek,mt8173-disp-mutex", > > > - .data = &mt8173_ddp_driver_data}, > > > + .data = &mt8173_mutex_driver_data}, > > > {}, > > > }; > > > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > > > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); > > > > I think it would make sense in a follow-up patch to update the binding > > to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and > > mdp driver. Make sense? > > Yes, it make sense. I would try to update the binding, but I wonder > device tree should be backward compatible? Let's discuss in that > follow-up patches. > From my understanding, we will need to keep the of_device_id entries for the old binding in the driver (so that old DTs still work) while we should enforce the new binding. I'm not sure if the yaml has a option for out-of-date compatibles. Regards, Matthias ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-21 8:18 ` Matthias Brugger 0 siblings, 0 replies; 50+ messages in thread From: Matthias Brugger @ 2021-01-21 8:18 UTC (permalink / raw) To: Chun-Kuang Hu Cc: David Airlie, linux-kernel, DRI Development, Matthias Brugger, moderated list:ARM/Mediatek SoC support, Linux ARM On Thu, Jan 21, 2021 at 07:46:44AM +0800, Chun-Kuang Hu wrote: > Hi, Matthias: > > Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:27寫道: > > > > On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > > > From: CK Hu <ck.hu@mediatek.com> > > > > > > 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> > > > --- > > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > > > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > > > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > > > 5 files changed, 182 insertions(+), 183 deletions(-) > > > > > [...] > > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > > > index 1c8a253f4788..98a060bf225d 100644 > > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c > > [...] > > > > > > -static const struct of_device_id ddp_driver_dt_match[] = { > > > +static const struct of_device_id mutex_driver_dt_match[] = { > > > { .compatible = "mediatek,mt2701-disp-mutex", > > > - .data = &mt2701_ddp_driver_data}, > > > + .data = &mt2701_mutex_driver_data}, > > > { .compatible = "mediatek,mt2712-disp-mutex", > > > - .data = &mt2712_ddp_driver_data}, > > > + .data = &mt2712_mutex_driver_data}, > > > { .compatible = "mediatek,mt8167-disp-mutex", > > > - .data = &mt8167_ddp_driver_data}, > > > + .data = &mt8167_mutex_driver_data}, > > > { .compatible = "mediatek,mt8173-disp-mutex", > > > - .data = &mt8173_ddp_driver_data}, > > > + .data = &mt8173_mutex_driver_data}, > > > {}, > > > }; > > > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > > > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); > > > > I think it would make sense in a follow-up patch to update the binding > > to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and > > mdp driver. Make sense? > > Yes, it make sense. I would try to update the binding, but I wonder > device tree should be backward compatible? Let's discuss in that > follow-up patches. > From my understanding, we will need to keep the of_device_id entries for the old binding in the driver (so that old DTs still work) while we should enforce the new binding. I'm not sure if the yaml has a option for out-of-date compatibles. Regards, Matthias _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-21 8:18 ` Matthias Brugger 0 siblings, 0 replies; 50+ messages in thread From: Matthias Brugger @ 2021-01-21 8:18 UTC (permalink / raw) To: Chun-Kuang Hu Cc: Daniel Vetter, David Airlie, linux-kernel, DRI Development, Matthias Brugger, moderated list:ARM/Mediatek SoC support, Philipp Zabel, CK Hu, Linux ARM On Thu, Jan 21, 2021 at 07:46:44AM +0800, Chun-Kuang Hu wrote: > Hi, Matthias: > > Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:27寫道: > > > > On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > > > From: CK Hu <ck.hu@mediatek.com> > > > > > > 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> > > > --- > > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > > > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > > > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > > > 5 files changed, 182 insertions(+), 183 deletions(-) > > > > > [...] > > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > > > index 1c8a253f4788..98a060bf225d 100644 > > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c > > [...] > > > > > > -static const struct of_device_id ddp_driver_dt_match[] = { > > > +static const struct of_device_id mutex_driver_dt_match[] = { > > > { .compatible = "mediatek,mt2701-disp-mutex", > > > - .data = &mt2701_ddp_driver_data}, > > > + .data = &mt2701_mutex_driver_data}, > > > { .compatible = "mediatek,mt2712-disp-mutex", > > > - .data = &mt2712_ddp_driver_data}, > > > + .data = &mt2712_mutex_driver_data}, > > > { .compatible = "mediatek,mt8167-disp-mutex", > > > - .data = &mt8167_ddp_driver_data}, > > > + .data = &mt8167_mutex_driver_data}, > > > { .compatible = "mediatek,mt8173-disp-mutex", > > > - .data = &mt8173_ddp_driver_data}, > > > + .data = &mt8173_mutex_driver_data}, > > > {}, > > > }; > > > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > > > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); > > > > I think it would make sense in a follow-up patch to update the binding > > to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and > > mdp driver. Make sense? > > Yes, it make sense. I would try to update the binding, but I wonder > device tree should be backward compatible? Let's discuss in that > follow-up patches. > From my understanding, we will need to keep the of_device_id entries for the old binding in the driver (so that old DTs still work) while we should enforce the new binding. I'm not sure if the yaml has a option for out-of-date compatibles. Regards, Matthias _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-21 8:18 ` Matthias Brugger 0 siblings, 0 replies; 50+ messages in thread From: Matthias Brugger @ 2021-01-21 8:18 UTC (permalink / raw) To: Chun-Kuang Hu Cc: Daniel Vetter, David Airlie, linux-kernel, DRI Development, Matthias Brugger, moderated list:ARM/Mediatek SoC support, Philipp Zabel, CK Hu, Linux ARM On Thu, Jan 21, 2021 at 07:46:44AM +0800, Chun-Kuang Hu wrote: > Hi, Matthias: > > Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:27寫道: > > > > On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > > > From: CK Hu <ck.hu@mediatek.com> > > > > > > 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> > > > --- > > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > > > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > > > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > > > 5 files changed, 182 insertions(+), 183 deletions(-) > > > > > [...] > > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > > > index 1c8a253f4788..98a060bf225d 100644 > > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c > > [...] > > > > > > -static const struct of_device_id ddp_driver_dt_match[] = { > > > +static const struct of_device_id mutex_driver_dt_match[] = { > > > { .compatible = "mediatek,mt2701-disp-mutex", > > > - .data = &mt2701_ddp_driver_data}, > > > + .data = &mt2701_mutex_driver_data}, > > > { .compatible = "mediatek,mt2712-disp-mutex", > > > - .data = &mt2712_ddp_driver_data}, > > > + .data = &mt2712_mutex_driver_data}, > > > { .compatible = "mediatek,mt8167-disp-mutex", > > > - .data = &mt8167_ddp_driver_data}, > > > + .data = &mt8167_mutex_driver_data}, > > > { .compatible = "mediatek,mt8173-disp-mutex", > > > - .data = &mt8173_ddp_driver_data}, > > > + .data = &mt8173_mutex_driver_data}, > > > {}, > > > }; > > > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > > > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); > > > > I think it would make sense in a follow-up patch to update the binding > > to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and > > mdp driver. Make sense? > > Yes, it make sense. I would try to update the binding, but I wonder > device tree should be backward compatible? Let's discuss in that > follow-up patches. > From my understanding, we will need to keep the of_device_id entries for the old binding in the driver (so that old DTs still work) while we should enforce the new binding. I'm not sure if the yaml has a option for out-of-date compatibles. Regards, Matthias _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver 2021-01-21 8:18 ` Matthias Brugger (?) (?) @ 2021-01-21 23:13 ` Chun-Kuang Hu -1 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-21 23:13 UTC (permalink / raw) To: Matthias Brugger Cc: Chun-Kuang Hu, Philipp Zabel, David Airlie, linux-kernel, DRI Development, CK Hu, moderated list:ARM/Mediatek SoC support, Daniel Vetter, Matthias Brugger, Linux ARM Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 下午4:19寫道: > > On Thu, Jan 21, 2021 at 07:46:44AM +0800, Chun-Kuang Hu wrote: > > Hi, Matthias: > > > > Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:27寫道: > > > > > > On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > > > > From: CK Hu <ck.hu@mediatek.com> > > > > > > > > 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> > > > > --- > > > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > > > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > > > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > > > > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > > > > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > > > > 5 files changed, 182 insertions(+), 183 deletions(-) > > > > > > > [...] > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > > > > index 1c8a253f4788..98a060bf225d 100644 > > > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > > > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c > > > [...] > > > > > > > > -static const struct of_device_id ddp_driver_dt_match[] = { > > > > +static const struct of_device_id mutex_driver_dt_match[] = { > > > > { .compatible = "mediatek,mt2701-disp-mutex", > > > > - .data = &mt2701_ddp_driver_data}, > > > > + .data = &mt2701_mutex_driver_data}, > > > > { .compatible = "mediatek,mt2712-disp-mutex", > > > > - .data = &mt2712_ddp_driver_data}, > > > > + .data = &mt2712_mutex_driver_data}, > > > > { .compatible = "mediatek,mt8167-disp-mutex", > > > > - .data = &mt8167_ddp_driver_data}, > > > > + .data = &mt8167_mutex_driver_data}, > > > > { .compatible = "mediatek,mt8173-disp-mutex", > > > > - .data = &mt8173_ddp_driver_data}, > > > > + .data = &mt8173_mutex_driver_data}, > > > > {}, > > > > }; > > > > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > > > > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); > > > > > > I think it would make sense in a follow-up patch to update the binding > > > to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and > > > mdp driver. Make sense? > > > > Yes, it make sense. I would try to update the binding, but I wonder > > device tree should be backward compatible? Let's discuss in that > > follow-up patches. > > > > From my understanding, we will need to keep the of_device_id entries for > the old binding in the driver (so that old DTs still work) while we > should enforce the new binding. I'm not sure if the yaml has a option > for out-of-date compatibles. OK, I would do it so and remove out-f-date compatibles in yaml at first to see any feedback. Regards, Chun-Kuang. > > Regards, > Matthias ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-21 23:13 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-21 23:13 UTC (permalink / raw) To: Matthias Brugger Cc: Chun-Kuang Hu, David Airlie, linux-kernel, DRI Development, Matthias Brugger, moderated list:ARM/Mediatek SoC support, Linux ARM Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 下午4:19寫道: > > On Thu, Jan 21, 2021 at 07:46:44AM +0800, Chun-Kuang Hu wrote: > > Hi, Matthias: > > > > Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:27寫道: > > > > > > On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > > > > From: CK Hu <ck.hu@mediatek.com> > > > > > > > > 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> > > > > --- > > > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > > > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > > > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > > > > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > > > > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > > > > 5 files changed, 182 insertions(+), 183 deletions(-) > > > > > > > [...] > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > > > > index 1c8a253f4788..98a060bf225d 100644 > > > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > > > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c > > > [...] > > > > > > > > -static const struct of_device_id ddp_driver_dt_match[] = { > > > > +static const struct of_device_id mutex_driver_dt_match[] = { > > > > { .compatible = "mediatek,mt2701-disp-mutex", > > > > - .data = &mt2701_ddp_driver_data}, > > > > + .data = &mt2701_mutex_driver_data}, > > > > { .compatible = "mediatek,mt2712-disp-mutex", > > > > - .data = &mt2712_ddp_driver_data}, > > > > + .data = &mt2712_mutex_driver_data}, > > > > { .compatible = "mediatek,mt8167-disp-mutex", > > > > - .data = &mt8167_ddp_driver_data}, > > > > + .data = &mt8167_mutex_driver_data}, > > > > { .compatible = "mediatek,mt8173-disp-mutex", > > > > - .data = &mt8173_ddp_driver_data}, > > > > + .data = &mt8173_mutex_driver_data}, > > > > {}, > > > > }; > > > > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > > > > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); > > > > > > I think it would make sense in a follow-up patch to update the binding > > > to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and > > > mdp driver. Make sense? > > > > Yes, it make sense. I would try to update the binding, but I wonder > > device tree should be backward compatible? Let's discuss in that > > follow-up patches. > > > > From my understanding, we will need to keep the of_device_id entries for > the old binding in the driver (so that old DTs still work) while we > should enforce the new binding. I'm not sure if the yaml has a option > for out-of-date compatibles. OK, I would do it so and remove out-f-date compatibles in yaml at first to see any feedback. Regards, Chun-Kuang. > > Regards, > Matthias _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-21 23:13 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-21 23:13 UTC (permalink / raw) To: Matthias Brugger Cc: Chun-Kuang Hu, Daniel Vetter, David Airlie, linux-kernel, DRI Development, Matthias Brugger, moderated list:ARM/Mediatek SoC support, Philipp Zabel, CK Hu, Linux ARM Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 下午4:19寫道: > > On Thu, Jan 21, 2021 at 07:46:44AM +0800, Chun-Kuang Hu wrote: > > Hi, Matthias: > > > > Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:27寫道: > > > > > > On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > > > > From: CK Hu <ck.hu@mediatek.com> > > > > > > > > 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> > > > > --- > > > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > > > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > > > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > > > > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > > > > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > > > > 5 files changed, 182 insertions(+), 183 deletions(-) > > > > > > > [...] > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > > > > index 1c8a253f4788..98a060bf225d 100644 > > > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > > > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c > > > [...] > > > > > > > > -static const struct of_device_id ddp_driver_dt_match[] = { > > > > +static const struct of_device_id mutex_driver_dt_match[] = { > > > > { .compatible = "mediatek,mt2701-disp-mutex", > > > > - .data = &mt2701_ddp_driver_data}, > > > > + .data = &mt2701_mutex_driver_data}, > > > > { .compatible = "mediatek,mt2712-disp-mutex", > > > > - .data = &mt2712_ddp_driver_data}, > > > > + .data = &mt2712_mutex_driver_data}, > > > > { .compatible = "mediatek,mt8167-disp-mutex", > > > > - .data = &mt8167_ddp_driver_data}, > > > > + .data = &mt8167_mutex_driver_data}, > > > > { .compatible = "mediatek,mt8173-disp-mutex", > > > > - .data = &mt8173_ddp_driver_data}, > > > > + .data = &mt8173_mutex_driver_data}, > > > > {}, > > > > }; > > > > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > > > > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); > > > > > > I think it would make sense in a follow-up patch to update the binding > > > to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and > > > mdp driver. Make sense? > > > > Yes, it make sense. I would try to update the binding, but I wonder > > device tree should be backward compatible? Let's discuss in that > > follow-up patches. > > > > From my understanding, we will need to keep the of_device_id entries for > the old binding in the driver (so that old DTs still work) while we > should enforce the new binding. I'm not sure if the yaml has a option > for out-of-date compatibles. OK, I would do it so and remove out-f-date compatibles in yaml at first to see any feedback. Regards, Chun-Kuang. > > Regards, > Matthias _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver @ 2021-01-21 23:13 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-21 23:13 UTC (permalink / raw) To: Matthias Brugger Cc: Chun-Kuang Hu, Daniel Vetter, David Airlie, linux-kernel, DRI Development, Matthias Brugger, moderated list:ARM/Mediatek SoC support, Philipp Zabel, CK Hu, Linux ARM Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 下午4:19寫道: > > On Thu, Jan 21, 2021 at 07:46:44AM +0800, Chun-Kuang Hu wrote: > > Hi, Matthias: > > > > Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:27寫道: > > > > > > On Thu, Jan 07, 2021 at 07:17:27AM +0800, Chun-Kuang Hu wrote: > > > > From: CK Hu <ck.hu@mediatek.com> > > > > > > > > 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> > > > > --- > > > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 30 +-- > > > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > > > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +- > > > > drivers/gpu/drm/mediatek/mtk_mutex.c | 305 ++++++++++++------------ > > > > drivers/gpu/drm/mediatek/mtk_mutex.h | 26 +- > > > > 5 files changed, 182 insertions(+), 183 deletions(-) > > > > > > > [...] > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c > > > > index 1c8a253f4788..98a060bf225d 100644 > > > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > > > +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c > > > [...] > > > > > > > > -static const struct of_device_id ddp_driver_dt_match[] = { > > > > +static const struct of_device_id mutex_driver_dt_match[] = { > > > > { .compatible = "mediatek,mt2701-disp-mutex", > > > > - .data = &mt2701_ddp_driver_data}, > > > > + .data = &mt2701_mutex_driver_data}, > > > > { .compatible = "mediatek,mt2712-disp-mutex", > > > > - .data = &mt2712_ddp_driver_data}, > > > > + .data = &mt2712_mutex_driver_data}, > > > > { .compatible = "mediatek,mt8167-disp-mutex", > > > > - .data = &mt8167_ddp_driver_data}, > > > > + .data = &mt8167_mutex_driver_data}, > > > > { .compatible = "mediatek,mt8173-disp-mutex", > > > > - .data = &mt8173_ddp_driver_data}, > > > > + .data = &mt8173_mutex_driver_data}, > > > > {}, > > > > }; > > > > -MODULE_DEVICE_TABLE(of, ddp_driver_dt_match); > > > > +MODULE_DEVICE_TABLE(of, mutex_driver_dt_match); > > > > > > I think it would make sense in a follow-up patch to update the binding > > > to use "mediatek,mt2701-mutex" to reflect that mutex is used for drm and > > > mdp driver. Make sense? > > > > Yes, it make sense. I would try to update the binding, but I wonder > > device tree should be backward compatible? Let's discuss in that > > follow-up patches. > > > > From my understanding, we will need to keep the of_device_id entries for > the old binding in the driver (so that old DTs still work) while we > should enforce the new binding. I'm not sure if the yaml has a option > for out-of-date compatibles. OK, I would do it so and remove out-f-date compatibles in yaml at first to see any feedback. Regards, Chun-Kuang. > > Regards, > Matthias _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 50+ messages in thread
* [PATCH v2 4/5] drm/mediatek: Automatically search unclaimed mtk mutex in mtk_mutex_get() 2021-01-06 23:17 ` Chun-Kuang Hu (?) (?) @ 2021-01-06 23:17 ` Chun-Kuang Hu -1 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: linux-kernel, dri-devel, linux-mediatek, linux-arm-kernel, CK Hu, Chun-Kuang Hu From: CK Hu <ck.hu@mediatek.com> Moving mutex resource management from client driver to mutex driver could prevent client drivers negotiating for resource management. Signed-off-by: CK Hu <ck.hu@mediatek.com> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- drivers/gpu/drm/mediatek/mtk_mutex.c | 16 ++++++++-------- drivers/gpu/drm/mediatek/mtk_mutex.h | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index bba87a036fa8..1e3a9450680b 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -773,7 +773,7 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, if (!mtk_crtc->ddp_comp) return -ENOMEM; - mtk_crtc->mutex = mtk_mutex_get(priv->mutex_dev, pipe); + mtk_crtc->mutex = mtk_mutex_get(priv->mutex_dev); if (IS_ERR(mtk_crtc->mutex)) { ret = PTR_ERR(mtk_crtc->mutex); dev_err(dev, "Failed to get mutex: %d\n", ret); diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c index 98a060bf225d..66344759e622 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.c +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c @@ -228,18 +228,18 @@ static const struct mtk_mutex_data mt8173_mutex_driver_data = { .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id) +struct mtk_mutex *mtk_mutex_get(struct device *dev) { struct mtk_mutex_ctx *mtx = dev_get_drvdata(dev); + int i; - if (id >= 10) - return ERR_PTR(-EINVAL); - if (mtx->mutex[id].claimed) - return ERR_PTR(-EBUSY); - - mtx->mutex[id].claimed = true; + for (i = 0; i < 10; i++) + if (!mtx->mutex[i].claimed) { + mtx->mutex[i].claimed = true; + return &mtx->mutex[i]; + } - return &mtx->mutex[id]; + return ERR_PTR(-EBUSY); } void mtk_mutex_put(struct mtk_mutex *mutex) diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/drivers/gpu/drm/mediatek/mtk_mutex.h index b678e0988a37..6fe4ffbde290 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.h +++ b/drivers/gpu/drm/mediatek/mtk_mutex.h @@ -10,7 +10,7 @@ struct regmap; struct device; struct mtk_mutex; -struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id); +struct mtk_mutex *mtk_mutex_get(struct device *dev); int mtk_mutex_prepare(struct mtk_mutex *mutex); void mtk_mutex_add_comp(struct mtk_mutex *mutex, enum mtk_ddp_comp_id id); -- 2.17.1 ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 4/5] drm/mediatek: Automatically search unclaimed mtk mutex in mtk_mutex_get() @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> Moving mutex resource management from client driver to mutex driver could prevent client drivers negotiating for resource management. Signed-off-by: CK Hu <ck.hu@mediatek.com> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- drivers/gpu/drm/mediatek/mtk_mutex.c | 16 ++++++++-------- drivers/gpu/drm/mediatek/mtk_mutex.h | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index bba87a036fa8..1e3a9450680b 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -773,7 +773,7 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, if (!mtk_crtc->ddp_comp) return -ENOMEM; - mtk_crtc->mutex = mtk_mutex_get(priv->mutex_dev, pipe); + mtk_crtc->mutex = mtk_mutex_get(priv->mutex_dev); if (IS_ERR(mtk_crtc->mutex)) { ret = PTR_ERR(mtk_crtc->mutex); dev_err(dev, "Failed to get mutex: %d\n", ret); diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c index 98a060bf225d..66344759e622 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.c +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c @@ -228,18 +228,18 @@ static const struct mtk_mutex_data mt8173_mutex_driver_data = { .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id) +struct mtk_mutex *mtk_mutex_get(struct device *dev) { struct mtk_mutex_ctx *mtx = dev_get_drvdata(dev); + int i; - if (id >= 10) - return ERR_PTR(-EINVAL); - if (mtx->mutex[id].claimed) - return ERR_PTR(-EBUSY); - - mtx->mutex[id].claimed = true; + for (i = 0; i < 10; i++) + if (!mtx->mutex[i].claimed) { + mtx->mutex[i].claimed = true; + return &mtx->mutex[i]; + } - return &mtx->mutex[id]; + return ERR_PTR(-EBUSY); } void mtk_mutex_put(struct mtk_mutex *mutex) diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/drivers/gpu/drm/mediatek/mtk_mutex.h index b678e0988a37..6fe4ffbde290 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.h +++ b/drivers/gpu/drm/mediatek/mtk_mutex.h @@ -10,7 +10,7 @@ struct regmap; struct device; struct mtk_mutex; -struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id); +struct mtk_mutex *mtk_mutex_get(struct device *dev); int mtk_mutex_prepare(struct mtk_mutex *mutex); void mtk_mutex_add_comp(struct mtk_mutex *mutex, enum mtk_ddp_comp_id id); -- 2.17.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 4/5] drm/mediatek: Automatically search unclaimed mtk mutex in mtk_mutex_get() @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, CK Hu, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> Moving mutex resource management from client driver to mutex driver could prevent client drivers negotiating for resource management. Signed-off-by: CK Hu <ck.hu@mediatek.com> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- drivers/gpu/drm/mediatek/mtk_mutex.c | 16 ++++++++-------- drivers/gpu/drm/mediatek/mtk_mutex.h | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index bba87a036fa8..1e3a9450680b 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -773,7 +773,7 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, if (!mtk_crtc->ddp_comp) return -ENOMEM; - mtk_crtc->mutex = mtk_mutex_get(priv->mutex_dev, pipe); + mtk_crtc->mutex = mtk_mutex_get(priv->mutex_dev); if (IS_ERR(mtk_crtc->mutex)) { ret = PTR_ERR(mtk_crtc->mutex); dev_err(dev, "Failed to get mutex: %d\n", ret); diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c index 98a060bf225d..66344759e622 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.c +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c @@ -228,18 +228,18 @@ static const struct mtk_mutex_data mt8173_mutex_driver_data = { .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id) +struct mtk_mutex *mtk_mutex_get(struct device *dev) { struct mtk_mutex_ctx *mtx = dev_get_drvdata(dev); + int i; - if (id >= 10) - return ERR_PTR(-EINVAL); - if (mtx->mutex[id].claimed) - return ERR_PTR(-EBUSY); - - mtx->mutex[id].claimed = true; + for (i = 0; i < 10; i++) + if (!mtx->mutex[i].claimed) { + mtx->mutex[i].claimed = true; + return &mtx->mutex[i]; + } - return &mtx->mutex[id]; + return ERR_PTR(-EBUSY); } void mtk_mutex_put(struct mtk_mutex *mutex) diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/drivers/gpu/drm/mediatek/mtk_mutex.h index b678e0988a37..6fe4ffbde290 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.h +++ b/drivers/gpu/drm/mediatek/mtk_mutex.h @@ -10,7 +10,7 @@ struct regmap; struct device; struct mtk_mutex; -struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id); +struct mtk_mutex *mtk_mutex_get(struct device *dev); int mtk_mutex_prepare(struct mtk_mutex *mutex); void mtk_mutex_add_comp(struct mtk_mutex *mutex, enum mtk_ddp_comp_id id); -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 4/5] drm/mediatek: Automatically search unclaimed mtk mutex in mtk_mutex_get() @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, CK Hu, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> Moving mutex resource management from client driver to mutex driver could prevent client drivers negotiating for resource management. Signed-off-by: CK Hu <ck.hu@mediatek.com> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> --- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- drivers/gpu/drm/mediatek/mtk_mutex.c | 16 ++++++++-------- drivers/gpu/drm/mediatek/mtk_mutex.h | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index bba87a036fa8..1e3a9450680b 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -773,7 +773,7 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, if (!mtk_crtc->ddp_comp) return -ENOMEM; - mtk_crtc->mutex = mtk_mutex_get(priv->mutex_dev, pipe); + mtk_crtc->mutex = mtk_mutex_get(priv->mutex_dev); if (IS_ERR(mtk_crtc->mutex)) { ret = PTR_ERR(mtk_crtc->mutex); dev_err(dev, "Failed to get mutex: %d\n", ret); diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/gpu/drm/mediatek/mtk_mutex.c index 98a060bf225d..66344759e622 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.c +++ b/drivers/gpu/drm/mediatek/mtk_mutex.c @@ -228,18 +228,18 @@ static const struct mtk_mutex_data mt8173_mutex_driver_data = { .mutex_sof_reg = MT2701_MUTEX0_SOF0, }; -struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id) +struct mtk_mutex *mtk_mutex_get(struct device *dev) { struct mtk_mutex_ctx *mtx = dev_get_drvdata(dev); + int i; - if (id >= 10) - return ERR_PTR(-EINVAL); - if (mtx->mutex[id].claimed) - return ERR_PTR(-EBUSY); - - mtx->mutex[id].claimed = true; + for (i = 0; i < 10; i++) + if (!mtx->mutex[i].claimed) { + mtx->mutex[i].claimed = true; + return &mtx->mutex[i]; + } - return &mtx->mutex[id]; + return ERR_PTR(-EBUSY); } void mtk_mutex_put(struct mtk_mutex *mutex) diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/drivers/gpu/drm/mediatek/mtk_mutex.h index b678e0988a37..6fe4ffbde290 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.h +++ b/drivers/gpu/drm/mediatek/mtk_mutex.h @@ -10,7 +10,7 @@ struct regmap; struct device; struct mtk_mutex; -struct mtk_mutex *mtk_mutex_get(struct device *dev, unsigned int id); +struct mtk_mutex *mtk_mutex_get(struct device *dev); int mtk_mutex_prepare(struct mtk_mutex *mutex); void mtk_mutex_add_comp(struct mtk_mutex *mutex, enum mtk_ddp_comp_id id); -- 2.17.1 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 5/5] soc / drm: mediatek: Move mtk mutex driver to soc folder 2021-01-06 23:17 ` Chun-Kuang Hu (?) (?) @ 2021-01-06 23:17 ` Chun-Kuang Hu -1 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: linux-kernel, dri-devel, linux-mediatek, linux-arm-kernel, CK Hu, Chun-Kuang Hu From: CK Hu <ck.hu@mediatek.com> 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> --- drivers/gpu/drm/mediatek/Makefile | 3 +-- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 1 - drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - drivers/soc/mediatek/Makefile | 1 + .../mtk_mutex.c => soc/mediatek/mtk-mutex.c} | 15 +++++++++++++-- .../linux/soc/mediatek/mtk-mutex.h | 0 7 files changed, 16 insertions(+), 7 deletions(-) rename drivers/{gpu/drm/mediatek/mtk_mutex.c => soc/mediatek/mtk-mutex.c} (96%) rename drivers/gpu/drm/mediatek/mtk_mutex.h => include/linux/soc/mediatek/mtk-mutex.h (100%) diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile index 09979c4c340a..01d06332f767 100644 --- a/drivers/gpu/drm/mediatek/Makefile +++ b/drivers/gpu/drm/mediatek/Makefile @@ -9,8 +9,7 @@ mediatek-drm-y := mtk_disp_color.o \ mtk_drm_gem.o \ mtk_drm_plane.o \ mtk_dsi.o \ - mtk_dpi.o \ - mtk_mutex.o + mtk_dpi.o obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index 1e3a9450680b..e9b6788d52cd 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -7,6 +7,7 @@ #include <linux/pm_runtime.h> #include <linux/soc/mediatek/mtk-cmdq.h> #include <linux/soc/mediatek/mtk-mmsys.h> +#include <linux/soc/mediatek/mtk-mutex.h> #include <asm/barrier.h> #include <soc/mediatek/smi.h> @@ -22,7 +23,6 @@ #include "mtk_drm_ddp_comp.h" #include "mtk_drm_gem.h" #include "mtk_drm_plane.h" -#include "mtk_mutex.h" /* * struct mtk_drm_crtc - MediaTek specific crtc structure. diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index b99a06e6834e..5d39dd54255d 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -588,7 +588,6 @@ static struct platform_driver mtk_drm_platform_driver = { }; static struct platform_driver * const mtk_drm_drivers[] = { - &mtk_mutex_driver, &mtk_disp_color_driver, &mtk_disp_ovl_driver, &mtk_disp_rdma_driver, diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h index ae366868d01a..e8238fa4aa2a 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h @@ -46,7 +46,6 @@ struct mtk_drm_private { struct drm_atomic_state *suspend_state; }; -extern struct platform_driver mtk_mutex_driver; extern struct platform_driver mtk_disp_color_driver; extern struct platform_driver mtk_disp_ovl_driver; extern struct platform_driver mtk_disp_rdma_driver; diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile index b6908db534c2..90270f8114ed 100644 --- a/drivers/soc/mediatek/Makefile +++ b/drivers/soc/mediatek/Makefile @@ -6,3 +6,4 @@ obj-$(CONFIG_MTK_PMIC_WRAP) += mtk-pmic-wrap.o obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o obj-$(CONFIG_MTK_MMSYS) += mtk-mmsys.o +obj-$(CONFIG_MTK_MMSYS) += mtk-mutex.o diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/soc/mediatek/mtk-mutex.c similarity index 96% rename from drivers/gpu/drm/mediatek/mtk_mutex.c rename to drivers/soc/mediatek/mtk-mutex.c index 66344759e622..f531b119da7a 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.c +++ b/drivers/soc/mediatek/mtk-mutex.c @@ -10,8 +10,7 @@ #include <linux/platform_device.h> #include <linux/regmap.h> #include <linux/soc/mediatek/mtk-mmsys.h> - -#include "mtk_mutex.h" +#include <linux/soc/mediatek/mtk-mutex.h> #define MT2701_MUTEX0_MOD0 0x2c #define MT2701_MUTEX0_SOF0 0x30 @@ -241,6 +240,7 @@ struct mtk_mutex *mtk_mutex_get(struct device *dev) return ERR_PTR(-EBUSY); } +EXPORT_SYMBOL_GPL(mtk_mutex_get); void mtk_mutex_put(struct mtk_mutex *mutex) { @@ -251,6 +251,7 @@ void mtk_mutex_put(struct mtk_mutex *mutex) mutex->claimed = false; } +EXPORT_SYMBOL_GPL(mtk_mutex_put); int mtk_mutex_prepare(struct mtk_mutex *mutex) { @@ -258,6 +259,7 @@ int mtk_mutex_prepare(struct mtk_mutex *mutex) mutex[mutex->id]); return clk_prepare_enable(mtx->clk); } +EXPORT_SYMBOL_GPL(mtk_mutex_prepare); void mtk_mutex_unprepare(struct mtk_mutex *mutex) { @@ -265,6 +267,7 @@ void mtk_mutex_unprepare(struct mtk_mutex *mutex) mutex[mutex->id]); clk_disable_unprepare(mtx->clk); } +EXPORT_SYMBOL_GPL(mtk_mutex_unprepare); void mtk_mutex_add_comp(struct mtk_mutex *mutex, enum mtk_ddp_comp_id id) @@ -316,6 +319,7 @@ void mtk_mutex_add_comp(struct mtk_mutex *mutex, mtx->regs + DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_add_comp); void mtk_mutex_remove_comp(struct mtk_mutex *mutex, enum mtk_ddp_comp_id id) @@ -355,6 +359,7 @@ void mtk_mutex_remove_comp(struct mtk_mutex *mutex, break; } } +EXPORT_SYMBOL_GPL(mtk_mutex_remove_comp); void mtk_mutex_enable(struct mtk_mutex *mutex) { @@ -365,6 +370,7 @@ void mtk_mutex_enable(struct mtk_mutex *mutex) writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_enable); void mtk_mutex_disable(struct mtk_mutex *mutex) { @@ -375,6 +381,7 @@ void mtk_mutex_disable(struct mtk_mutex *mutex) writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_disable); void mtk_mutex_acquire(struct mtk_mutex *mutex) { @@ -388,6 +395,7 @@ void mtk_mutex_acquire(struct mtk_mutex *mutex) tmp, tmp & INT_MUTEX, 1, 10000)) pr_err("could not acquire mutex %d\n", mutex->id); } +EXPORT_SYMBOL_GPL(mtk_mutex_acquire); void mtk_mutex_release(struct mtk_mutex *mutex) { @@ -396,6 +404,7 @@ void mtk_mutex_release(struct mtk_mutex *mutex) writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_release); static int mtk_mutex_probe(struct platform_device *pdev) { @@ -461,3 +470,5 @@ struct platform_driver mtk_mutex_driver = { .of_match_table = mutex_driver_dt_match, }, }; + +builtin_platform_driver(mtk_mutex_driver); diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/include/linux/soc/mediatek/mtk-mutex.h similarity index 100% rename from drivers/gpu/drm/mediatek/mtk_mutex.h rename to include/linux/soc/mediatek/mtk-mutex.h -- 2.17.1 ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 5/5] soc / drm: mediatek: Move mtk mutex driver to soc folder @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> 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> --- drivers/gpu/drm/mediatek/Makefile | 3 +-- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 1 - drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - drivers/soc/mediatek/Makefile | 1 + .../mtk_mutex.c => soc/mediatek/mtk-mutex.c} | 15 +++++++++++++-- .../linux/soc/mediatek/mtk-mutex.h | 0 7 files changed, 16 insertions(+), 7 deletions(-) rename drivers/{gpu/drm/mediatek/mtk_mutex.c => soc/mediatek/mtk-mutex.c} (96%) rename drivers/gpu/drm/mediatek/mtk_mutex.h => include/linux/soc/mediatek/mtk-mutex.h (100%) diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile index 09979c4c340a..01d06332f767 100644 --- a/drivers/gpu/drm/mediatek/Makefile +++ b/drivers/gpu/drm/mediatek/Makefile @@ -9,8 +9,7 @@ mediatek-drm-y := mtk_disp_color.o \ mtk_drm_gem.o \ mtk_drm_plane.o \ mtk_dsi.o \ - mtk_dpi.o \ - mtk_mutex.o + mtk_dpi.o obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index 1e3a9450680b..e9b6788d52cd 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -7,6 +7,7 @@ #include <linux/pm_runtime.h> #include <linux/soc/mediatek/mtk-cmdq.h> #include <linux/soc/mediatek/mtk-mmsys.h> +#include <linux/soc/mediatek/mtk-mutex.h> #include <asm/barrier.h> #include <soc/mediatek/smi.h> @@ -22,7 +23,6 @@ #include "mtk_drm_ddp_comp.h" #include "mtk_drm_gem.h" #include "mtk_drm_plane.h" -#include "mtk_mutex.h" /* * struct mtk_drm_crtc - MediaTek specific crtc structure. diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index b99a06e6834e..5d39dd54255d 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -588,7 +588,6 @@ static struct platform_driver mtk_drm_platform_driver = { }; static struct platform_driver * const mtk_drm_drivers[] = { - &mtk_mutex_driver, &mtk_disp_color_driver, &mtk_disp_ovl_driver, &mtk_disp_rdma_driver, diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h index ae366868d01a..e8238fa4aa2a 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h @@ -46,7 +46,6 @@ struct mtk_drm_private { struct drm_atomic_state *suspend_state; }; -extern struct platform_driver mtk_mutex_driver; extern struct platform_driver mtk_disp_color_driver; extern struct platform_driver mtk_disp_ovl_driver; extern struct platform_driver mtk_disp_rdma_driver; diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile index b6908db534c2..90270f8114ed 100644 --- a/drivers/soc/mediatek/Makefile +++ b/drivers/soc/mediatek/Makefile @@ -6,3 +6,4 @@ obj-$(CONFIG_MTK_PMIC_WRAP) += mtk-pmic-wrap.o obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o obj-$(CONFIG_MTK_MMSYS) += mtk-mmsys.o +obj-$(CONFIG_MTK_MMSYS) += mtk-mutex.o diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/soc/mediatek/mtk-mutex.c similarity index 96% rename from drivers/gpu/drm/mediatek/mtk_mutex.c rename to drivers/soc/mediatek/mtk-mutex.c index 66344759e622..f531b119da7a 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.c +++ b/drivers/soc/mediatek/mtk-mutex.c @@ -10,8 +10,7 @@ #include <linux/platform_device.h> #include <linux/regmap.h> #include <linux/soc/mediatek/mtk-mmsys.h> - -#include "mtk_mutex.h" +#include <linux/soc/mediatek/mtk-mutex.h> #define MT2701_MUTEX0_MOD0 0x2c #define MT2701_MUTEX0_SOF0 0x30 @@ -241,6 +240,7 @@ struct mtk_mutex *mtk_mutex_get(struct device *dev) return ERR_PTR(-EBUSY); } +EXPORT_SYMBOL_GPL(mtk_mutex_get); void mtk_mutex_put(struct mtk_mutex *mutex) { @@ -251,6 +251,7 @@ void mtk_mutex_put(struct mtk_mutex *mutex) mutex->claimed = false; } +EXPORT_SYMBOL_GPL(mtk_mutex_put); int mtk_mutex_prepare(struct mtk_mutex *mutex) { @@ -258,6 +259,7 @@ int mtk_mutex_prepare(struct mtk_mutex *mutex) mutex[mutex->id]); return clk_prepare_enable(mtx->clk); } +EXPORT_SYMBOL_GPL(mtk_mutex_prepare); void mtk_mutex_unprepare(struct mtk_mutex *mutex) { @@ -265,6 +267,7 @@ void mtk_mutex_unprepare(struct mtk_mutex *mutex) mutex[mutex->id]); clk_disable_unprepare(mtx->clk); } +EXPORT_SYMBOL_GPL(mtk_mutex_unprepare); void mtk_mutex_add_comp(struct mtk_mutex *mutex, enum mtk_ddp_comp_id id) @@ -316,6 +319,7 @@ void mtk_mutex_add_comp(struct mtk_mutex *mutex, mtx->regs + DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_add_comp); void mtk_mutex_remove_comp(struct mtk_mutex *mutex, enum mtk_ddp_comp_id id) @@ -355,6 +359,7 @@ void mtk_mutex_remove_comp(struct mtk_mutex *mutex, break; } } +EXPORT_SYMBOL_GPL(mtk_mutex_remove_comp); void mtk_mutex_enable(struct mtk_mutex *mutex) { @@ -365,6 +370,7 @@ void mtk_mutex_enable(struct mtk_mutex *mutex) writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_enable); void mtk_mutex_disable(struct mtk_mutex *mutex) { @@ -375,6 +381,7 @@ void mtk_mutex_disable(struct mtk_mutex *mutex) writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_disable); void mtk_mutex_acquire(struct mtk_mutex *mutex) { @@ -388,6 +395,7 @@ void mtk_mutex_acquire(struct mtk_mutex *mutex) tmp, tmp & INT_MUTEX, 1, 10000)) pr_err("could not acquire mutex %d\n", mutex->id); } +EXPORT_SYMBOL_GPL(mtk_mutex_acquire); void mtk_mutex_release(struct mtk_mutex *mutex) { @@ -396,6 +404,7 @@ void mtk_mutex_release(struct mtk_mutex *mutex) writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_release); static int mtk_mutex_probe(struct platform_device *pdev) { @@ -461,3 +470,5 @@ struct platform_driver mtk_mutex_driver = { .of_match_table = mutex_driver_dt_match, }, }; + +builtin_platform_driver(mtk_mutex_driver); diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/include/linux/soc/mediatek/mtk-mutex.h similarity index 100% rename from drivers/gpu/drm/mediatek/mtk_mutex.h rename to include/linux/soc/mediatek/mtk-mutex.h -- 2.17.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 5/5] soc / drm: mediatek: Move mtk mutex driver to soc folder @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, CK Hu, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> 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> --- drivers/gpu/drm/mediatek/Makefile | 3 +-- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 1 - drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - drivers/soc/mediatek/Makefile | 1 + .../mtk_mutex.c => soc/mediatek/mtk-mutex.c} | 15 +++++++++++++-- .../linux/soc/mediatek/mtk-mutex.h | 0 7 files changed, 16 insertions(+), 7 deletions(-) rename drivers/{gpu/drm/mediatek/mtk_mutex.c => soc/mediatek/mtk-mutex.c} (96%) rename drivers/gpu/drm/mediatek/mtk_mutex.h => include/linux/soc/mediatek/mtk-mutex.h (100%) diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile index 09979c4c340a..01d06332f767 100644 --- a/drivers/gpu/drm/mediatek/Makefile +++ b/drivers/gpu/drm/mediatek/Makefile @@ -9,8 +9,7 @@ mediatek-drm-y := mtk_disp_color.o \ mtk_drm_gem.o \ mtk_drm_plane.o \ mtk_dsi.o \ - mtk_dpi.o \ - mtk_mutex.o + mtk_dpi.o obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index 1e3a9450680b..e9b6788d52cd 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -7,6 +7,7 @@ #include <linux/pm_runtime.h> #include <linux/soc/mediatek/mtk-cmdq.h> #include <linux/soc/mediatek/mtk-mmsys.h> +#include <linux/soc/mediatek/mtk-mutex.h> #include <asm/barrier.h> #include <soc/mediatek/smi.h> @@ -22,7 +23,6 @@ #include "mtk_drm_ddp_comp.h" #include "mtk_drm_gem.h" #include "mtk_drm_plane.h" -#include "mtk_mutex.h" /* * struct mtk_drm_crtc - MediaTek specific crtc structure. diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index b99a06e6834e..5d39dd54255d 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -588,7 +588,6 @@ static struct platform_driver mtk_drm_platform_driver = { }; static struct platform_driver * const mtk_drm_drivers[] = { - &mtk_mutex_driver, &mtk_disp_color_driver, &mtk_disp_ovl_driver, &mtk_disp_rdma_driver, diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h index ae366868d01a..e8238fa4aa2a 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h @@ -46,7 +46,6 @@ struct mtk_drm_private { struct drm_atomic_state *suspend_state; }; -extern struct platform_driver mtk_mutex_driver; extern struct platform_driver mtk_disp_color_driver; extern struct platform_driver mtk_disp_ovl_driver; extern struct platform_driver mtk_disp_rdma_driver; diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile index b6908db534c2..90270f8114ed 100644 --- a/drivers/soc/mediatek/Makefile +++ b/drivers/soc/mediatek/Makefile @@ -6,3 +6,4 @@ obj-$(CONFIG_MTK_PMIC_WRAP) += mtk-pmic-wrap.o obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o obj-$(CONFIG_MTK_MMSYS) += mtk-mmsys.o +obj-$(CONFIG_MTK_MMSYS) += mtk-mutex.o diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/soc/mediatek/mtk-mutex.c similarity index 96% rename from drivers/gpu/drm/mediatek/mtk_mutex.c rename to drivers/soc/mediatek/mtk-mutex.c index 66344759e622..f531b119da7a 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.c +++ b/drivers/soc/mediatek/mtk-mutex.c @@ -10,8 +10,7 @@ #include <linux/platform_device.h> #include <linux/regmap.h> #include <linux/soc/mediatek/mtk-mmsys.h> - -#include "mtk_mutex.h" +#include <linux/soc/mediatek/mtk-mutex.h> #define MT2701_MUTEX0_MOD0 0x2c #define MT2701_MUTEX0_SOF0 0x30 @@ -241,6 +240,7 @@ struct mtk_mutex *mtk_mutex_get(struct device *dev) return ERR_PTR(-EBUSY); } +EXPORT_SYMBOL_GPL(mtk_mutex_get); void mtk_mutex_put(struct mtk_mutex *mutex) { @@ -251,6 +251,7 @@ void mtk_mutex_put(struct mtk_mutex *mutex) mutex->claimed = false; } +EXPORT_SYMBOL_GPL(mtk_mutex_put); int mtk_mutex_prepare(struct mtk_mutex *mutex) { @@ -258,6 +259,7 @@ int mtk_mutex_prepare(struct mtk_mutex *mutex) mutex[mutex->id]); return clk_prepare_enable(mtx->clk); } +EXPORT_SYMBOL_GPL(mtk_mutex_prepare); void mtk_mutex_unprepare(struct mtk_mutex *mutex) { @@ -265,6 +267,7 @@ void mtk_mutex_unprepare(struct mtk_mutex *mutex) mutex[mutex->id]); clk_disable_unprepare(mtx->clk); } +EXPORT_SYMBOL_GPL(mtk_mutex_unprepare); void mtk_mutex_add_comp(struct mtk_mutex *mutex, enum mtk_ddp_comp_id id) @@ -316,6 +319,7 @@ void mtk_mutex_add_comp(struct mtk_mutex *mutex, mtx->regs + DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_add_comp); void mtk_mutex_remove_comp(struct mtk_mutex *mutex, enum mtk_ddp_comp_id id) @@ -355,6 +359,7 @@ void mtk_mutex_remove_comp(struct mtk_mutex *mutex, break; } } +EXPORT_SYMBOL_GPL(mtk_mutex_remove_comp); void mtk_mutex_enable(struct mtk_mutex *mutex) { @@ -365,6 +370,7 @@ void mtk_mutex_enable(struct mtk_mutex *mutex) writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_enable); void mtk_mutex_disable(struct mtk_mutex *mutex) { @@ -375,6 +381,7 @@ void mtk_mutex_disable(struct mtk_mutex *mutex) writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_disable); void mtk_mutex_acquire(struct mtk_mutex *mutex) { @@ -388,6 +395,7 @@ void mtk_mutex_acquire(struct mtk_mutex *mutex) tmp, tmp & INT_MUTEX, 1, 10000)) pr_err("could not acquire mutex %d\n", mutex->id); } +EXPORT_SYMBOL_GPL(mtk_mutex_acquire); void mtk_mutex_release(struct mtk_mutex *mutex) { @@ -396,6 +404,7 @@ void mtk_mutex_release(struct mtk_mutex *mutex) writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_release); static int mtk_mutex_probe(struct platform_device *pdev) { @@ -461,3 +470,5 @@ struct platform_driver mtk_mutex_driver = { .of_match_table = mutex_driver_dt_match, }, }; + +builtin_platform_driver(mtk_mutex_driver); diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/include/linux/soc/mediatek/mtk-mutex.h similarity index 100% rename from drivers/gpu/drm/mediatek/mtk_mutex.h rename to include/linux/soc/mediatek/mtk-mutex.h -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v2 5/5] soc / drm: mediatek: Move mtk mutex driver to soc folder @ 2021-01-06 23:17 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-06 23:17 UTC (permalink / raw) To: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter Cc: Chun-Kuang Hu, linux-kernel, dri-devel, linux-mediatek, CK Hu, linux-arm-kernel From: CK Hu <ck.hu@mediatek.com> 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> --- drivers/gpu/drm/mediatek/Makefile | 3 +-- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 1 - drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - drivers/soc/mediatek/Makefile | 1 + .../mtk_mutex.c => soc/mediatek/mtk-mutex.c} | 15 +++++++++++++-- .../linux/soc/mediatek/mtk-mutex.h | 0 7 files changed, 16 insertions(+), 7 deletions(-) rename drivers/{gpu/drm/mediatek/mtk_mutex.c => soc/mediatek/mtk-mutex.c} (96%) rename drivers/gpu/drm/mediatek/mtk_mutex.h => include/linux/soc/mediatek/mtk-mutex.h (100%) diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile index 09979c4c340a..01d06332f767 100644 --- a/drivers/gpu/drm/mediatek/Makefile +++ b/drivers/gpu/drm/mediatek/Makefile @@ -9,8 +9,7 @@ mediatek-drm-y := mtk_disp_color.o \ mtk_drm_gem.o \ mtk_drm_plane.o \ mtk_dsi.o \ - mtk_dpi.o \ - mtk_mutex.o + mtk_dpi.o obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index 1e3a9450680b..e9b6788d52cd 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -7,6 +7,7 @@ #include <linux/pm_runtime.h> #include <linux/soc/mediatek/mtk-cmdq.h> #include <linux/soc/mediatek/mtk-mmsys.h> +#include <linux/soc/mediatek/mtk-mutex.h> #include <asm/barrier.h> #include <soc/mediatek/smi.h> @@ -22,7 +23,6 @@ #include "mtk_drm_ddp_comp.h" #include "mtk_drm_gem.h" #include "mtk_drm_plane.h" -#include "mtk_mutex.h" /* * struct mtk_drm_crtc - MediaTek specific crtc structure. diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index b99a06e6834e..5d39dd54255d 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -588,7 +588,6 @@ static struct platform_driver mtk_drm_platform_driver = { }; static struct platform_driver * const mtk_drm_drivers[] = { - &mtk_mutex_driver, &mtk_disp_color_driver, &mtk_disp_ovl_driver, &mtk_disp_rdma_driver, diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h index ae366868d01a..e8238fa4aa2a 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h @@ -46,7 +46,6 @@ struct mtk_drm_private { struct drm_atomic_state *suspend_state; }; -extern struct platform_driver mtk_mutex_driver; extern struct platform_driver mtk_disp_color_driver; extern struct platform_driver mtk_disp_ovl_driver; extern struct platform_driver mtk_disp_rdma_driver; diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile index b6908db534c2..90270f8114ed 100644 --- a/drivers/soc/mediatek/Makefile +++ b/drivers/soc/mediatek/Makefile @@ -6,3 +6,4 @@ obj-$(CONFIG_MTK_PMIC_WRAP) += mtk-pmic-wrap.o obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o obj-$(CONFIG_MTK_MMSYS) += mtk-mmsys.o +obj-$(CONFIG_MTK_MMSYS) += mtk-mutex.o diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/soc/mediatek/mtk-mutex.c similarity index 96% rename from drivers/gpu/drm/mediatek/mtk_mutex.c rename to drivers/soc/mediatek/mtk-mutex.c index 66344759e622..f531b119da7a 100644 --- a/drivers/gpu/drm/mediatek/mtk_mutex.c +++ b/drivers/soc/mediatek/mtk-mutex.c @@ -10,8 +10,7 @@ #include <linux/platform_device.h> #include <linux/regmap.h> #include <linux/soc/mediatek/mtk-mmsys.h> - -#include "mtk_mutex.h" +#include <linux/soc/mediatek/mtk-mutex.h> #define MT2701_MUTEX0_MOD0 0x2c #define MT2701_MUTEX0_SOF0 0x30 @@ -241,6 +240,7 @@ struct mtk_mutex *mtk_mutex_get(struct device *dev) return ERR_PTR(-EBUSY); } +EXPORT_SYMBOL_GPL(mtk_mutex_get); void mtk_mutex_put(struct mtk_mutex *mutex) { @@ -251,6 +251,7 @@ void mtk_mutex_put(struct mtk_mutex *mutex) mutex->claimed = false; } +EXPORT_SYMBOL_GPL(mtk_mutex_put); int mtk_mutex_prepare(struct mtk_mutex *mutex) { @@ -258,6 +259,7 @@ int mtk_mutex_prepare(struct mtk_mutex *mutex) mutex[mutex->id]); return clk_prepare_enable(mtx->clk); } +EXPORT_SYMBOL_GPL(mtk_mutex_prepare); void mtk_mutex_unprepare(struct mtk_mutex *mutex) { @@ -265,6 +267,7 @@ void mtk_mutex_unprepare(struct mtk_mutex *mutex) mutex[mutex->id]); clk_disable_unprepare(mtx->clk); } +EXPORT_SYMBOL_GPL(mtk_mutex_unprepare); void mtk_mutex_add_comp(struct mtk_mutex *mutex, enum mtk_ddp_comp_id id) @@ -316,6 +319,7 @@ void mtk_mutex_add_comp(struct mtk_mutex *mutex, mtx->regs + DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_add_comp); void mtk_mutex_remove_comp(struct mtk_mutex *mutex, enum mtk_ddp_comp_id id) @@ -355,6 +359,7 @@ void mtk_mutex_remove_comp(struct mtk_mutex *mutex, break; } } +EXPORT_SYMBOL_GPL(mtk_mutex_remove_comp); void mtk_mutex_enable(struct mtk_mutex *mutex) { @@ -365,6 +370,7 @@ void mtk_mutex_enable(struct mtk_mutex *mutex) writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_enable); void mtk_mutex_disable(struct mtk_mutex *mutex) { @@ -375,6 +381,7 @@ void mtk_mutex_disable(struct mtk_mutex *mutex) writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_disable); void mtk_mutex_acquire(struct mtk_mutex *mutex) { @@ -388,6 +395,7 @@ void mtk_mutex_acquire(struct mtk_mutex *mutex) tmp, tmp & INT_MUTEX, 1, 10000)) pr_err("could not acquire mutex %d\n", mutex->id); } +EXPORT_SYMBOL_GPL(mtk_mutex_acquire); void mtk_mutex_release(struct mtk_mutex *mutex) { @@ -396,6 +404,7 @@ void mtk_mutex_release(struct mtk_mutex *mutex) writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); } +EXPORT_SYMBOL_GPL(mtk_mutex_release); static int mtk_mutex_probe(struct platform_device *pdev) { @@ -461,3 +470,5 @@ struct platform_driver mtk_mutex_driver = { .of_match_table = mutex_driver_dt_match, }, }; + +builtin_platform_driver(mtk_mutex_driver); diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/include/linux/soc/mediatek/mtk-mutex.h similarity index 100% rename from drivers/gpu/drm/mediatek/mtk_mutex.h rename to include/linux/soc/mediatek/mtk-mutex.h -- 2.17.1 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply related [flat|nested] 50+ messages in thread
* Re: [PATCH v2 5/5] soc / drm: mediatek: Move mtk mutex driver to soc folder 2021-01-06 23:17 ` Chun-Kuang Hu (?) @ 2021-01-20 18:32 ` Matthias Brugger -1 siblings, 0 replies; 50+ messages in thread From: Matthias Brugger @ 2021-01-20 18:32 UTC (permalink / raw) To: Chun-Kuang Hu Cc: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter, linux-kernel, dri-devel, linux-mediatek, CK Hu, linux-arm-kernel On Thu, Jan 07, 2021 at 07:17:29AM +0800, Chun-Kuang Hu wrote: > From: CK Hu <ck.hu@mediatek.com> > > 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> Please take the patch through your tree. Thanks! > --- > drivers/gpu/drm/mediatek/Makefile | 3 +-- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 1 - > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - > drivers/soc/mediatek/Makefile | 1 + > .../mtk_mutex.c => soc/mediatek/mtk-mutex.c} | 15 +++++++++++++-- > .../linux/soc/mediatek/mtk-mutex.h | 0 > 7 files changed, 16 insertions(+), 7 deletions(-) > rename drivers/{gpu/drm/mediatek/mtk_mutex.c => soc/mediatek/mtk-mutex.c} (96%) > rename drivers/gpu/drm/mediatek/mtk_mutex.h => include/linux/soc/mediatek/mtk-mutex.h (100%) > > diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile > index 09979c4c340a..01d06332f767 100644 > --- a/drivers/gpu/drm/mediatek/Makefile > +++ b/drivers/gpu/drm/mediatek/Makefile > @@ -9,8 +9,7 @@ mediatek-drm-y := mtk_disp_color.o \ > mtk_drm_gem.o \ > mtk_drm_plane.o \ > mtk_dsi.o \ > - mtk_dpi.o \ > - mtk_mutex.o > + mtk_dpi.o > > obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > index 1e3a9450680b..e9b6788d52cd 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > @@ -7,6 +7,7 @@ > #include <linux/pm_runtime.h> > #include <linux/soc/mediatek/mtk-cmdq.h> > #include <linux/soc/mediatek/mtk-mmsys.h> > +#include <linux/soc/mediatek/mtk-mutex.h> > > #include <asm/barrier.h> > #include <soc/mediatek/smi.h> > @@ -22,7 +23,6 @@ > #include "mtk_drm_ddp_comp.h" > #include "mtk_drm_gem.h" > #include "mtk_drm_plane.h" > -#include "mtk_mutex.h" > > /* > * struct mtk_drm_crtc - MediaTek specific crtc structure. > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index b99a06e6834e..5d39dd54255d 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -588,7 +588,6 @@ static struct platform_driver mtk_drm_platform_driver = { > }; > > static struct platform_driver * const mtk_drm_drivers[] = { > - &mtk_mutex_driver, > &mtk_disp_color_driver, > &mtk_disp_ovl_driver, > &mtk_disp_rdma_driver, > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > index ae366868d01a..e8238fa4aa2a 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > @@ -46,7 +46,6 @@ struct mtk_drm_private { > struct drm_atomic_state *suspend_state; > }; > > -extern struct platform_driver mtk_mutex_driver; > extern struct platform_driver mtk_disp_color_driver; > extern struct platform_driver mtk_disp_ovl_driver; > extern struct platform_driver mtk_disp_rdma_driver; > diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile > index b6908db534c2..90270f8114ed 100644 > --- a/drivers/soc/mediatek/Makefile > +++ b/drivers/soc/mediatek/Makefile > @@ -6,3 +6,4 @@ obj-$(CONFIG_MTK_PMIC_WRAP) += mtk-pmic-wrap.o > obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o > obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o > obj-$(CONFIG_MTK_MMSYS) += mtk-mmsys.o > +obj-$(CONFIG_MTK_MMSYS) += mtk-mutex.o > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/soc/mediatek/mtk-mutex.c > similarity index 96% > rename from drivers/gpu/drm/mediatek/mtk_mutex.c > rename to drivers/soc/mediatek/mtk-mutex.c > index 66344759e622..f531b119da7a 100644 > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > +++ b/drivers/soc/mediatek/mtk-mutex.c > @@ -10,8 +10,7 @@ > #include <linux/platform_device.h> > #include <linux/regmap.h> > #include <linux/soc/mediatek/mtk-mmsys.h> > - > -#include "mtk_mutex.h" > +#include <linux/soc/mediatek/mtk-mutex.h> > > #define MT2701_MUTEX0_MOD0 0x2c > #define MT2701_MUTEX0_SOF0 0x30 > @@ -241,6 +240,7 @@ struct mtk_mutex *mtk_mutex_get(struct device *dev) > > return ERR_PTR(-EBUSY); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_get); > > void mtk_mutex_put(struct mtk_mutex *mutex) > { > @@ -251,6 +251,7 @@ void mtk_mutex_put(struct mtk_mutex *mutex) > > mutex->claimed = false; > } > +EXPORT_SYMBOL_GPL(mtk_mutex_put); > > int mtk_mutex_prepare(struct mtk_mutex *mutex) > { > @@ -258,6 +259,7 @@ int mtk_mutex_prepare(struct mtk_mutex *mutex) > mutex[mutex->id]); > return clk_prepare_enable(mtx->clk); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_prepare); > > void mtk_mutex_unprepare(struct mtk_mutex *mutex) > { > @@ -265,6 +267,7 @@ void mtk_mutex_unprepare(struct mtk_mutex *mutex) > mutex[mutex->id]); > clk_disable_unprepare(mtx->clk); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_unprepare); > > void mtk_mutex_add_comp(struct mtk_mutex *mutex, > enum mtk_ddp_comp_id id) > @@ -316,6 +319,7 @@ void mtk_mutex_add_comp(struct mtk_mutex *mutex, > mtx->regs + > DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_add_comp); > > void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > enum mtk_ddp_comp_id id) > @@ -355,6 +359,7 @@ void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > break; > } > } > +EXPORT_SYMBOL_GPL(mtk_mutex_remove_comp); > > void mtk_mutex_enable(struct mtk_mutex *mutex) > { > @@ -365,6 +370,7 @@ void mtk_mutex_enable(struct mtk_mutex *mutex) > > writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_enable); > > void mtk_mutex_disable(struct mtk_mutex *mutex) > { > @@ -375,6 +381,7 @@ void mtk_mutex_disable(struct mtk_mutex *mutex) > > writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_disable); > > void mtk_mutex_acquire(struct mtk_mutex *mutex) > { > @@ -388,6 +395,7 @@ void mtk_mutex_acquire(struct mtk_mutex *mutex) > tmp, tmp & INT_MUTEX, 1, 10000)) > pr_err("could not acquire mutex %d\n", mutex->id); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_acquire); > > void mtk_mutex_release(struct mtk_mutex *mutex) > { > @@ -396,6 +404,7 @@ void mtk_mutex_release(struct mtk_mutex *mutex) > > writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_release); > > static int mtk_mutex_probe(struct platform_device *pdev) > { > @@ -461,3 +470,5 @@ struct platform_driver mtk_mutex_driver = { > .of_match_table = mutex_driver_dt_match, > }, > }; > + > +builtin_platform_driver(mtk_mutex_driver); > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/include/linux/soc/mediatek/mtk-mutex.h > similarity index 100% > rename from drivers/gpu/drm/mediatek/mtk_mutex.h > rename to include/linux/soc/mediatek/mtk-mutex.h > -- > 2.17.1 > > > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 5/5] soc / drm: mediatek: Move mtk mutex driver to soc folder @ 2021-01-20 18:32 ` Matthias Brugger 0 siblings, 0 replies; 50+ messages in thread From: Matthias Brugger @ 2021-01-20 18:32 UTC (permalink / raw) To: Chun-Kuang Hu Cc: Philipp Zabel, David Airlie, linux-kernel, dri-devel, CK Hu, linux-mediatek, Daniel Vetter, Matthias Brugger, linux-arm-kernel On Thu, Jan 07, 2021 at 07:17:29AM +0800, Chun-Kuang Hu wrote: > From: CK Hu <ck.hu@mediatek.com> > > 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> Please take the patch through your tree. Thanks! > --- > drivers/gpu/drm/mediatek/Makefile | 3 +-- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 1 - > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - > drivers/soc/mediatek/Makefile | 1 + > .../mtk_mutex.c => soc/mediatek/mtk-mutex.c} | 15 +++++++++++++-- > .../linux/soc/mediatek/mtk-mutex.h | 0 > 7 files changed, 16 insertions(+), 7 deletions(-) > rename drivers/{gpu/drm/mediatek/mtk_mutex.c => soc/mediatek/mtk-mutex.c} (96%) > rename drivers/gpu/drm/mediatek/mtk_mutex.h => include/linux/soc/mediatek/mtk-mutex.h (100%) > > diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile > index 09979c4c340a..01d06332f767 100644 > --- a/drivers/gpu/drm/mediatek/Makefile > +++ b/drivers/gpu/drm/mediatek/Makefile > @@ -9,8 +9,7 @@ mediatek-drm-y := mtk_disp_color.o \ > mtk_drm_gem.o \ > mtk_drm_plane.o \ > mtk_dsi.o \ > - mtk_dpi.o \ > - mtk_mutex.o > + mtk_dpi.o > > obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > index 1e3a9450680b..e9b6788d52cd 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > @@ -7,6 +7,7 @@ > #include <linux/pm_runtime.h> > #include <linux/soc/mediatek/mtk-cmdq.h> > #include <linux/soc/mediatek/mtk-mmsys.h> > +#include <linux/soc/mediatek/mtk-mutex.h> > > #include <asm/barrier.h> > #include <soc/mediatek/smi.h> > @@ -22,7 +23,6 @@ > #include "mtk_drm_ddp_comp.h" > #include "mtk_drm_gem.h" > #include "mtk_drm_plane.h" > -#include "mtk_mutex.h" > > /* > * struct mtk_drm_crtc - MediaTek specific crtc structure. > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index b99a06e6834e..5d39dd54255d 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -588,7 +588,6 @@ static struct platform_driver mtk_drm_platform_driver = { > }; > > static struct platform_driver * const mtk_drm_drivers[] = { > - &mtk_mutex_driver, > &mtk_disp_color_driver, > &mtk_disp_ovl_driver, > &mtk_disp_rdma_driver, > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > index ae366868d01a..e8238fa4aa2a 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > @@ -46,7 +46,6 @@ struct mtk_drm_private { > struct drm_atomic_state *suspend_state; > }; > > -extern struct platform_driver mtk_mutex_driver; > extern struct platform_driver mtk_disp_color_driver; > extern struct platform_driver mtk_disp_ovl_driver; > extern struct platform_driver mtk_disp_rdma_driver; > diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile > index b6908db534c2..90270f8114ed 100644 > --- a/drivers/soc/mediatek/Makefile > +++ b/drivers/soc/mediatek/Makefile > @@ -6,3 +6,4 @@ obj-$(CONFIG_MTK_PMIC_WRAP) += mtk-pmic-wrap.o > obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o > obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o > obj-$(CONFIG_MTK_MMSYS) += mtk-mmsys.o > +obj-$(CONFIG_MTK_MMSYS) += mtk-mutex.o > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/soc/mediatek/mtk-mutex.c > similarity index 96% > rename from drivers/gpu/drm/mediatek/mtk_mutex.c > rename to drivers/soc/mediatek/mtk-mutex.c > index 66344759e622..f531b119da7a 100644 > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > +++ b/drivers/soc/mediatek/mtk-mutex.c > @@ -10,8 +10,7 @@ > #include <linux/platform_device.h> > #include <linux/regmap.h> > #include <linux/soc/mediatek/mtk-mmsys.h> > - > -#include "mtk_mutex.h" > +#include <linux/soc/mediatek/mtk-mutex.h> > > #define MT2701_MUTEX0_MOD0 0x2c > #define MT2701_MUTEX0_SOF0 0x30 > @@ -241,6 +240,7 @@ struct mtk_mutex *mtk_mutex_get(struct device *dev) > > return ERR_PTR(-EBUSY); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_get); > > void mtk_mutex_put(struct mtk_mutex *mutex) > { > @@ -251,6 +251,7 @@ void mtk_mutex_put(struct mtk_mutex *mutex) > > mutex->claimed = false; > } > +EXPORT_SYMBOL_GPL(mtk_mutex_put); > > int mtk_mutex_prepare(struct mtk_mutex *mutex) > { > @@ -258,6 +259,7 @@ int mtk_mutex_prepare(struct mtk_mutex *mutex) > mutex[mutex->id]); > return clk_prepare_enable(mtx->clk); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_prepare); > > void mtk_mutex_unprepare(struct mtk_mutex *mutex) > { > @@ -265,6 +267,7 @@ void mtk_mutex_unprepare(struct mtk_mutex *mutex) > mutex[mutex->id]); > clk_disable_unprepare(mtx->clk); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_unprepare); > > void mtk_mutex_add_comp(struct mtk_mutex *mutex, > enum mtk_ddp_comp_id id) > @@ -316,6 +319,7 @@ void mtk_mutex_add_comp(struct mtk_mutex *mutex, > mtx->regs + > DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_add_comp); > > void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > enum mtk_ddp_comp_id id) > @@ -355,6 +359,7 @@ void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > break; > } > } > +EXPORT_SYMBOL_GPL(mtk_mutex_remove_comp); > > void mtk_mutex_enable(struct mtk_mutex *mutex) > { > @@ -365,6 +370,7 @@ void mtk_mutex_enable(struct mtk_mutex *mutex) > > writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_enable); > > void mtk_mutex_disable(struct mtk_mutex *mutex) > { > @@ -375,6 +381,7 @@ void mtk_mutex_disable(struct mtk_mutex *mutex) > > writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_disable); > > void mtk_mutex_acquire(struct mtk_mutex *mutex) > { > @@ -388,6 +395,7 @@ void mtk_mutex_acquire(struct mtk_mutex *mutex) > tmp, tmp & INT_MUTEX, 1, 10000)) > pr_err("could not acquire mutex %d\n", mutex->id); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_acquire); > > void mtk_mutex_release(struct mtk_mutex *mutex) > { > @@ -396,6 +404,7 @@ void mtk_mutex_release(struct mtk_mutex *mutex) > > writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_release); > > static int mtk_mutex_probe(struct platform_device *pdev) > { > @@ -461,3 +470,5 @@ struct platform_driver mtk_mutex_driver = { > .of_match_table = mutex_driver_dt_match, > }, > }; > + > +builtin_platform_driver(mtk_mutex_driver); > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/include/linux/soc/mediatek/mtk-mutex.h > similarity index 100% > rename from drivers/gpu/drm/mediatek/mtk_mutex.h > rename to include/linux/soc/mediatek/mtk-mutex.h > -- > 2.17.1 > > > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-mediatek _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 5/5] soc / drm: mediatek: Move mtk mutex driver to soc folder @ 2021-01-20 18:32 ` Matthias Brugger 0 siblings, 0 replies; 50+ messages in thread From: Matthias Brugger @ 2021-01-20 18:32 UTC (permalink / raw) To: Chun-Kuang Hu Cc: Philipp Zabel, David Airlie, linux-kernel, dri-devel, CK Hu, linux-mediatek, Daniel Vetter, Matthias Brugger, linux-arm-kernel On Thu, Jan 07, 2021 at 07:17:29AM +0800, Chun-Kuang Hu wrote: > From: CK Hu <ck.hu@mediatek.com> > > 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> Please take the patch through your tree. Thanks! > --- > drivers/gpu/drm/mediatek/Makefile | 3 +-- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 1 - > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - > drivers/soc/mediatek/Makefile | 1 + > .../mtk_mutex.c => soc/mediatek/mtk-mutex.c} | 15 +++++++++++++-- > .../linux/soc/mediatek/mtk-mutex.h | 0 > 7 files changed, 16 insertions(+), 7 deletions(-) > rename drivers/{gpu/drm/mediatek/mtk_mutex.c => soc/mediatek/mtk-mutex.c} (96%) > rename drivers/gpu/drm/mediatek/mtk_mutex.h => include/linux/soc/mediatek/mtk-mutex.h (100%) > > diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile > index 09979c4c340a..01d06332f767 100644 > --- a/drivers/gpu/drm/mediatek/Makefile > +++ b/drivers/gpu/drm/mediatek/Makefile > @@ -9,8 +9,7 @@ mediatek-drm-y := mtk_disp_color.o \ > mtk_drm_gem.o \ > mtk_drm_plane.o \ > mtk_dsi.o \ > - mtk_dpi.o \ > - mtk_mutex.o > + mtk_dpi.o > > obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > index 1e3a9450680b..e9b6788d52cd 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > @@ -7,6 +7,7 @@ > #include <linux/pm_runtime.h> > #include <linux/soc/mediatek/mtk-cmdq.h> > #include <linux/soc/mediatek/mtk-mmsys.h> > +#include <linux/soc/mediatek/mtk-mutex.h> > > #include <asm/barrier.h> > #include <soc/mediatek/smi.h> > @@ -22,7 +23,6 @@ > #include "mtk_drm_ddp_comp.h" > #include "mtk_drm_gem.h" > #include "mtk_drm_plane.h" > -#include "mtk_mutex.h" > > /* > * struct mtk_drm_crtc - MediaTek specific crtc structure. > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index b99a06e6834e..5d39dd54255d 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -588,7 +588,6 @@ static struct platform_driver mtk_drm_platform_driver = { > }; > > static struct platform_driver * const mtk_drm_drivers[] = { > - &mtk_mutex_driver, > &mtk_disp_color_driver, > &mtk_disp_ovl_driver, > &mtk_disp_rdma_driver, > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > index ae366868d01a..e8238fa4aa2a 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > @@ -46,7 +46,6 @@ struct mtk_drm_private { > struct drm_atomic_state *suspend_state; > }; > > -extern struct platform_driver mtk_mutex_driver; > extern struct platform_driver mtk_disp_color_driver; > extern struct platform_driver mtk_disp_ovl_driver; > extern struct platform_driver mtk_disp_rdma_driver; > diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile > index b6908db534c2..90270f8114ed 100644 > --- a/drivers/soc/mediatek/Makefile > +++ b/drivers/soc/mediatek/Makefile > @@ -6,3 +6,4 @@ obj-$(CONFIG_MTK_PMIC_WRAP) += mtk-pmic-wrap.o > obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o > obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o > obj-$(CONFIG_MTK_MMSYS) += mtk-mmsys.o > +obj-$(CONFIG_MTK_MMSYS) += mtk-mutex.o > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/soc/mediatek/mtk-mutex.c > similarity index 96% > rename from drivers/gpu/drm/mediatek/mtk_mutex.c > rename to drivers/soc/mediatek/mtk-mutex.c > index 66344759e622..f531b119da7a 100644 > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > +++ b/drivers/soc/mediatek/mtk-mutex.c > @@ -10,8 +10,7 @@ > #include <linux/platform_device.h> > #include <linux/regmap.h> > #include <linux/soc/mediatek/mtk-mmsys.h> > - > -#include "mtk_mutex.h" > +#include <linux/soc/mediatek/mtk-mutex.h> > > #define MT2701_MUTEX0_MOD0 0x2c > #define MT2701_MUTEX0_SOF0 0x30 > @@ -241,6 +240,7 @@ struct mtk_mutex *mtk_mutex_get(struct device *dev) > > return ERR_PTR(-EBUSY); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_get); > > void mtk_mutex_put(struct mtk_mutex *mutex) > { > @@ -251,6 +251,7 @@ void mtk_mutex_put(struct mtk_mutex *mutex) > > mutex->claimed = false; > } > +EXPORT_SYMBOL_GPL(mtk_mutex_put); > > int mtk_mutex_prepare(struct mtk_mutex *mutex) > { > @@ -258,6 +259,7 @@ int mtk_mutex_prepare(struct mtk_mutex *mutex) > mutex[mutex->id]); > return clk_prepare_enable(mtx->clk); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_prepare); > > void mtk_mutex_unprepare(struct mtk_mutex *mutex) > { > @@ -265,6 +267,7 @@ void mtk_mutex_unprepare(struct mtk_mutex *mutex) > mutex[mutex->id]); > clk_disable_unprepare(mtx->clk); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_unprepare); > > void mtk_mutex_add_comp(struct mtk_mutex *mutex, > enum mtk_ddp_comp_id id) > @@ -316,6 +319,7 @@ void mtk_mutex_add_comp(struct mtk_mutex *mutex, > mtx->regs + > DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_add_comp); > > void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > enum mtk_ddp_comp_id id) > @@ -355,6 +359,7 @@ void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > break; > } > } > +EXPORT_SYMBOL_GPL(mtk_mutex_remove_comp); > > void mtk_mutex_enable(struct mtk_mutex *mutex) > { > @@ -365,6 +370,7 @@ void mtk_mutex_enable(struct mtk_mutex *mutex) > > writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_enable); > > void mtk_mutex_disable(struct mtk_mutex *mutex) > { > @@ -375,6 +381,7 @@ void mtk_mutex_disable(struct mtk_mutex *mutex) > > writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_disable); > > void mtk_mutex_acquire(struct mtk_mutex *mutex) > { > @@ -388,6 +395,7 @@ void mtk_mutex_acquire(struct mtk_mutex *mutex) > tmp, tmp & INT_MUTEX, 1, 10000)) > pr_err("could not acquire mutex %d\n", mutex->id); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_acquire); > > void mtk_mutex_release(struct mtk_mutex *mutex) > { > @@ -396,6 +404,7 @@ void mtk_mutex_release(struct mtk_mutex *mutex) > > writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); > } > +EXPORT_SYMBOL_GPL(mtk_mutex_release); > > static int mtk_mutex_probe(struct platform_device *pdev) > { > @@ -461,3 +470,5 @@ struct platform_driver mtk_mutex_driver = { > .of_match_table = mutex_driver_dt_match, > }, > }; > + > +builtin_platform_driver(mtk_mutex_driver); > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/include/linux/soc/mediatek/mtk-mutex.h > similarity index 100% > rename from drivers/gpu/drm/mediatek/mtk_mutex.h > rename to include/linux/soc/mediatek/mtk-mutex.h > -- > 2.17.1 > > > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-mediatek _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 5/5] soc / drm: mediatek: Move mtk mutex driver to soc folder 2021-01-20 18:32 ` Matthias Brugger (?) (?) @ 2021-01-20 23:43 ` Chun-Kuang Hu -1 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-20 23:43 UTC (permalink / raw) To: Matthias Brugger Cc: Chun-Kuang Hu, Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter, linux-kernel, DRI Development, moderated list:ARM/Mediatek SoC support, CK Hu, Linux ARM Hi, Matthias: Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:33寫道: > > On Thu, Jan 07, 2021 at 07:17:29AM +0800, Chun-Kuang Hu wrote: > > From: CK Hu <ck.hu@mediatek.com> > > > > 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> > > Please take the patch through your tree. Thanks! Applied, thanks. Regards, Chun-Kuang. > > > --- > > drivers/gpu/drm/mediatek/Makefile | 3 +-- > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 1 - > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - > > drivers/soc/mediatek/Makefile | 1 + > > .../mtk_mutex.c => soc/mediatek/mtk-mutex.c} | 15 +++++++++++++-- > > .../linux/soc/mediatek/mtk-mutex.h | 0 > > 7 files changed, 16 insertions(+), 7 deletions(-) > > rename drivers/{gpu/drm/mediatek/mtk_mutex.c => soc/mediatek/mtk-mutex.c} (96%) > > rename drivers/gpu/drm/mediatek/mtk_mutex.h => include/linux/soc/mediatek/mtk-mutex.h (100%) > > > > diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile > > index 09979c4c340a..01d06332f767 100644 > > --- a/drivers/gpu/drm/mediatek/Makefile > > +++ b/drivers/gpu/drm/mediatek/Makefile > > @@ -9,8 +9,7 @@ mediatek-drm-y := mtk_disp_color.o \ > > mtk_drm_gem.o \ > > mtk_drm_plane.o \ > > mtk_dsi.o \ > > - mtk_dpi.o \ > > - mtk_mutex.o > > + mtk_dpi.o > > > > obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > index 1e3a9450680b..e9b6788d52cd 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > @@ -7,6 +7,7 @@ > > #include <linux/pm_runtime.h> > > #include <linux/soc/mediatek/mtk-cmdq.h> > > #include <linux/soc/mediatek/mtk-mmsys.h> > > +#include <linux/soc/mediatek/mtk-mutex.h> > > > > #include <asm/barrier.h> > > #include <soc/mediatek/smi.h> > > @@ -22,7 +23,6 @@ > > #include "mtk_drm_ddp_comp.h" > > #include "mtk_drm_gem.h" > > #include "mtk_drm_plane.h" > > -#include "mtk_mutex.h" > > > > /* > > * struct mtk_drm_crtc - MediaTek specific crtc structure. > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > index b99a06e6834e..5d39dd54255d 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > @@ -588,7 +588,6 @@ static struct platform_driver mtk_drm_platform_driver = { > > }; > > > > static struct platform_driver * const mtk_drm_drivers[] = { > > - &mtk_mutex_driver, > > &mtk_disp_color_driver, > > &mtk_disp_ovl_driver, > > &mtk_disp_rdma_driver, > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > > index ae366868d01a..e8238fa4aa2a 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > > @@ -46,7 +46,6 @@ struct mtk_drm_private { > > struct drm_atomic_state *suspend_state; > > }; > > > > -extern struct platform_driver mtk_mutex_driver; > > extern struct platform_driver mtk_disp_color_driver; > > extern struct platform_driver mtk_disp_ovl_driver; > > extern struct platform_driver mtk_disp_rdma_driver; > > diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile > > index b6908db534c2..90270f8114ed 100644 > > --- a/drivers/soc/mediatek/Makefile > > +++ b/drivers/soc/mediatek/Makefile > > @@ -6,3 +6,4 @@ obj-$(CONFIG_MTK_PMIC_WRAP) += mtk-pmic-wrap.o > > obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o > > obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o > > obj-$(CONFIG_MTK_MMSYS) += mtk-mmsys.o > > +obj-$(CONFIG_MTK_MMSYS) += mtk-mutex.o > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/soc/mediatek/mtk-mutex.c > > similarity index 96% > > rename from drivers/gpu/drm/mediatek/mtk_mutex.c > > rename to drivers/soc/mediatek/mtk-mutex.c > > index 66344759e622..f531b119da7a 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > +++ b/drivers/soc/mediatek/mtk-mutex.c > > @@ -10,8 +10,7 @@ > > #include <linux/platform_device.h> > > #include <linux/regmap.h> > > #include <linux/soc/mediatek/mtk-mmsys.h> > > - > > -#include "mtk_mutex.h" > > +#include <linux/soc/mediatek/mtk-mutex.h> > > > > #define MT2701_MUTEX0_MOD0 0x2c > > #define MT2701_MUTEX0_SOF0 0x30 > > @@ -241,6 +240,7 @@ struct mtk_mutex *mtk_mutex_get(struct device *dev) > > > > return ERR_PTR(-EBUSY); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_get); > > > > void mtk_mutex_put(struct mtk_mutex *mutex) > > { > > @@ -251,6 +251,7 @@ void mtk_mutex_put(struct mtk_mutex *mutex) > > > > mutex->claimed = false; > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_put); > > > > int mtk_mutex_prepare(struct mtk_mutex *mutex) > > { > > @@ -258,6 +259,7 @@ int mtk_mutex_prepare(struct mtk_mutex *mutex) > > mutex[mutex->id]); > > return clk_prepare_enable(mtx->clk); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_prepare); > > > > void mtk_mutex_unprepare(struct mtk_mutex *mutex) > > { > > @@ -265,6 +267,7 @@ void mtk_mutex_unprepare(struct mtk_mutex *mutex) > > mutex[mutex->id]); > > clk_disable_unprepare(mtx->clk); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_unprepare); > > > > void mtk_mutex_add_comp(struct mtk_mutex *mutex, > > enum mtk_ddp_comp_id id) > > @@ -316,6 +319,7 @@ void mtk_mutex_add_comp(struct mtk_mutex *mutex, > > mtx->regs + > > DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_add_comp); > > > > void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > > enum mtk_ddp_comp_id id) > > @@ -355,6 +359,7 @@ void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > > break; > > } > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_remove_comp); > > > > void mtk_mutex_enable(struct mtk_mutex *mutex) > > { > > @@ -365,6 +370,7 @@ void mtk_mutex_enable(struct mtk_mutex *mutex) > > > > writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_enable); > > > > void mtk_mutex_disable(struct mtk_mutex *mutex) > > { > > @@ -375,6 +381,7 @@ void mtk_mutex_disable(struct mtk_mutex *mutex) > > > > writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_disable); > > > > void mtk_mutex_acquire(struct mtk_mutex *mutex) > > { > > @@ -388,6 +395,7 @@ void mtk_mutex_acquire(struct mtk_mutex *mutex) > > tmp, tmp & INT_MUTEX, 1, 10000)) > > pr_err("could not acquire mutex %d\n", mutex->id); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_acquire); > > > > void mtk_mutex_release(struct mtk_mutex *mutex) > > { > > @@ -396,6 +404,7 @@ void mtk_mutex_release(struct mtk_mutex *mutex) > > > > writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_release); > > > > static int mtk_mutex_probe(struct platform_device *pdev) > > { > > @@ -461,3 +470,5 @@ struct platform_driver mtk_mutex_driver = { > > .of_match_table = mutex_driver_dt_match, > > }, > > }; > > + > > +builtin_platform_driver(mtk_mutex_driver); > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/include/linux/soc/mediatek/mtk-mutex.h > > similarity index 100% > > rename from drivers/gpu/drm/mediatek/mtk_mutex.h > > rename to include/linux/soc/mediatek/mtk-mutex.h > > -- > > 2.17.1 > > > > > > _______________________________________________ > > Linux-mediatek mailing list > > Linux-mediatek@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 5/5] soc / drm: mediatek: Move mtk mutex driver to soc folder @ 2021-01-20 23:43 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-20 23:43 UTC (permalink / raw) To: Matthias Brugger Cc: Chun-Kuang Hu, David Airlie, linux-kernel, DRI Development, moderated list:ARM/Mediatek SoC support, Matthias Brugger, Linux ARM Hi, Matthias: Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:33寫道: > > On Thu, Jan 07, 2021 at 07:17:29AM +0800, Chun-Kuang Hu wrote: > > From: CK Hu <ck.hu@mediatek.com> > > > > 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> > > Please take the patch through your tree. Thanks! Applied, thanks. Regards, Chun-Kuang. > > > --- > > drivers/gpu/drm/mediatek/Makefile | 3 +-- > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 1 - > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - > > drivers/soc/mediatek/Makefile | 1 + > > .../mtk_mutex.c => soc/mediatek/mtk-mutex.c} | 15 +++++++++++++-- > > .../linux/soc/mediatek/mtk-mutex.h | 0 > > 7 files changed, 16 insertions(+), 7 deletions(-) > > rename drivers/{gpu/drm/mediatek/mtk_mutex.c => soc/mediatek/mtk-mutex.c} (96%) > > rename drivers/gpu/drm/mediatek/mtk_mutex.h => include/linux/soc/mediatek/mtk-mutex.h (100%) > > > > diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile > > index 09979c4c340a..01d06332f767 100644 > > --- a/drivers/gpu/drm/mediatek/Makefile > > +++ b/drivers/gpu/drm/mediatek/Makefile > > @@ -9,8 +9,7 @@ mediatek-drm-y := mtk_disp_color.o \ > > mtk_drm_gem.o \ > > mtk_drm_plane.o \ > > mtk_dsi.o \ > > - mtk_dpi.o \ > > - mtk_mutex.o > > + mtk_dpi.o > > > > obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > index 1e3a9450680b..e9b6788d52cd 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > @@ -7,6 +7,7 @@ > > #include <linux/pm_runtime.h> > > #include <linux/soc/mediatek/mtk-cmdq.h> > > #include <linux/soc/mediatek/mtk-mmsys.h> > > +#include <linux/soc/mediatek/mtk-mutex.h> > > > > #include <asm/barrier.h> > > #include <soc/mediatek/smi.h> > > @@ -22,7 +23,6 @@ > > #include "mtk_drm_ddp_comp.h" > > #include "mtk_drm_gem.h" > > #include "mtk_drm_plane.h" > > -#include "mtk_mutex.h" > > > > /* > > * struct mtk_drm_crtc - MediaTek specific crtc structure. > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > index b99a06e6834e..5d39dd54255d 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > @@ -588,7 +588,6 @@ static struct platform_driver mtk_drm_platform_driver = { > > }; > > > > static struct platform_driver * const mtk_drm_drivers[] = { > > - &mtk_mutex_driver, > > &mtk_disp_color_driver, > > &mtk_disp_ovl_driver, > > &mtk_disp_rdma_driver, > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > > index ae366868d01a..e8238fa4aa2a 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > > @@ -46,7 +46,6 @@ struct mtk_drm_private { > > struct drm_atomic_state *suspend_state; > > }; > > > > -extern struct platform_driver mtk_mutex_driver; > > extern struct platform_driver mtk_disp_color_driver; > > extern struct platform_driver mtk_disp_ovl_driver; > > extern struct platform_driver mtk_disp_rdma_driver; > > diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile > > index b6908db534c2..90270f8114ed 100644 > > --- a/drivers/soc/mediatek/Makefile > > +++ b/drivers/soc/mediatek/Makefile > > @@ -6,3 +6,4 @@ obj-$(CONFIG_MTK_PMIC_WRAP) += mtk-pmic-wrap.o > > obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o > > obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o > > obj-$(CONFIG_MTK_MMSYS) += mtk-mmsys.o > > +obj-$(CONFIG_MTK_MMSYS) += mtk-mutex.o > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/soc/mediatek/mtk-mutex.c > > similarity index 96% > > rename from drivers/gpu/drm/mediatek/mtk_mutex.c > > rename to drivers/soc/mediatek/mtk-mutex.c > > index 66344759e622..f531b119da7a 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > +++ b/drivers/soc/mediatek/mtk-mutex.c > > @@ -10,8 +10,7 @@ > > #include <linux/platform_device.h> > > #include <linux/regmap.h> > > #include <linux/soc/mediatek/mtk-mmsys.h> > > - > > -#include "mtk_mutex.h" > > +#include <linux/soc/mediatek/mtk-mutex.h> > > > > #define MT2701_MUTEX0_MOD0 0x2c > > #define MT2701_MUTEX0_SOF0 0x30 > > @@ -241,6 +240,7 @@ struct mtk_mutex *mtk_mutex_get(struct device *dev) > > > > return ERR_PTR(-EBUSY); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_get); > > > > void mtk_mutex_put(struct mtk_mutex *mutex) > > { > > @@ -251,6 +251,7 @@ void mtk_mutex_put(struct mtk_mutex *mutex) > > > > mutex->claimed = false; > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_put); > > > > int mtk_mutex_prepare(struct mtk_mutex *mutex) > > { > > @@ -258,6 +259,7 @@ int mtk_mutex_prepare(struct mtk_mutex *mutex) > > mutex[mutex->id]); > > return clk_prepare_enable(mtx->clk); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_prepare); > > > > void mtk_mutex_unprepare(struct mtk_mutex *mutex) > > { > > @@ -265,6 +267,7 @@ void mtk_mutex_unprepare(struct mtk_mutex *mutex) > > mutex[mutex->id]); > > clk_disable_unprepare(mtx->clk); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_unprepare); > > > > void mtk_mutex_add_comp(struct mtk_mutex *mutex, > > enum mtk_ddp_comp_id id) > > @@ -316,6 +319,7 @@ void mtk_mutex_add_comp(struct mtk_mutex *mutex, > > mtx->regs + > > DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_add_comp); > > > > void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > > enum mtk_ddp_comp_id id) > > @@ -355,6 +359,7 @@ void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > > break; > > } > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_remove_comp); > > > > void mtk_mutex_enable(struct mtk_mutex *mutex) > > { > > @@ -365,6 +370,7 @@ void mtk_mutex_enable(struct mtk_mutex *mutex) > > > > writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_enable); > > > > void mtk_mutex_disable(struct mtk_mutex *mutex) > > { > > @@ -375,6 +381,7 @@ void mtk_mutex_disable(struct mtk_mutex *mutex) > > > > writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_disable); > > > > void mtk_mutex_acquire(struct mtk_mutex *mutex) > > { > > @@ -388,6 +395,7 @@ void mtk_mutex_acquire(struct mtk_mutex *mutex) > > tmp, tmp & INT_MUTEX, 1, 10000)) > > pr_err("could not acquire mutex %d\n", mutex->id); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_acquire); > > > > void mtk_mutex_release(struct mtk_mutex *mutex) > > { > > @@ -396,6 +404,7 @@ void mtk_mutex_release(struct mtk_mutex *mutex) > > > > writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_release); > > > > static int mtk_mutex_probe(struct platform_device *pdev) > > { > > @@ -461,3 +470,5 @@ struct platform_driver mtk_mutex_driver = { > > .of_match_table = mutex_driver_dt_match, > > }, > > }; > > + > > +builtin_platform_driver(mtk_mutex_driver); > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/include/linux/soc/mediatek/mtk-mutex.h > > similarity index 100% > > rename from drivers/gpu/drm/mediatek/mtk_mutex.h > > rename to include/linux/soc/mediatek/mtk-mutex.h > > -- > > 2.17.1 > > > > > > _______________________________________________ > > Linux-mediatek mailing list > > Linux-mediatek@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-mediatek _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 5/5] soc / drm: mediatek: Move mtk mutex driver to soc folder @ 2021-01-20 23:43 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-20 23:43 UTC (permalink / raw) To: Matthias Brugger Cc: Chun-Kuang Hu, Philipp Zabel, David Airlie, linux-kernel, DRI Development, CK Hu, moderated list:ARM/Mediatek SoC support, Daniel Vetter, Matthias Brugger, Linux ARM Hi, Matthias: Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:33寫道: > > On Thu, Jan 07, 2021 at 07:17:29AM +0800, Chun-Kuang Hu wrote: > > From: CK Hu <ck.hu@mediatek.com> > > > > 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> > > Please take the patch through your tree. Thanks! Applied, thanks. Regards, Chun-Kuang. > > > --- > > drivers/gpu/drm/mediatek/Makefile | 3 +-- > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 1 - > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - > > drivers/soc/mediatek/Makefile | 1 + > > .../mtk_mutex.c => soc/mediatek/mtk-mutex.c} | 15 +++++++++++++-- > > .../linux/soc/mediatek/mtk-mutex.h | 0 > > 7 files changed, 16 insertions(+), 7 deletions(-) > > rename drivers/{gpu/drm/mediatek/mtk_mutex.c => soc/mediatek/mtk-mutex.c} (96%) > > rename drivers/gpu/drm/mediatek/mtk_mutex.h => include/linux/soc/mediatek/mtk-mutex.h (100%) > > > > diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile > > index 09979c4c340a..01d06332f767 100644 > > --- a/drivers/gpu/drm/mediatek/Makefile > > +++ b/drivers/gpu/drm/mediatek/Makefile > > @@ -9,8 +9,7 @@ mediatek-drm-y := mtk_disp_color.o \ > > mtk_drm_gem.o \ > > mtk_drm_plane.o \ > > mtk_dsi.o \ > > - mtk_dpi.o \ > > - mtk_mutex.o > > + mtk_dpi.o > > > > obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > index 1e3a9450680b..e9b6788d52cd 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > @@ -7,6 +7,7 @@ > > #include <linux/pm_runtime.h> > > #include <linux/soc/mediatek/mtk-cmdq.h> > > #include <linux/soc/mediatek/mtk-mmsys.h> > > +#include <linux/soc/mediatek/mtk-mutex.h> > > > > #include <asm/barrier.h> > > #include <soc/mediatek/smi.h> > > @@ -22,7 +23,6 @@ > > #include "mtk_drm_ddp_comp.h" > > #include "mtk_drm_gem.h" > > #include "mtk_drm_plane.h" > > -#include "mtk_mutex.h" > > > > /* > > * struct mtk_drm_crtc - MediaTek specific crtc structure. > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > index b99a06e6834e..5d39dd54255d 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > @@ -588,7 +588,6 @@ static struct platform_driver mtk_drm_platform_driver = { > > }; > > > > static struct platform_driver * const mtk_drm_drivers[] = { > > - &mtk_mutex_driver, > > &mtk_disp_color_driver, > > &mtk_disp_ovl_driver, > > &mtk_disp_rdma_driver, > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > > index ae366868d01a..e8238fa4aa2a 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > > @@ -46,7 +46,6 @@ struct mtk_drm_private { > > struct drm_atomic_state *suspend_state; > > }; > > > > -extern struct platform_driver mtk_mutex_driver; > > extern struct platform_driver mtk_disp_color_driver; > > extern struct platform_driver mtk_disp_ovl_driver; > > extern struct platform_driver mtk_disp_rdma_driver; > > diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile > > index b6908db534c2..90270f8114ed 100644 > > --- a/drivers/soc/mediatek/Makefile > > +++ b/drivers/soc/mediatek/Makefile > > @@ -6,3 +6,4 @@ obj-$(CONFIG_MTK_PMIC_WRAP) += mtk-pmic-wrap.o > > obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o > > obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o > > obj-$(CONFIG_MTK_MMSYS) += mtk-mmsys.o > > +obj-$(CONFIG_MTK_MMSYS) += mtk-mutex.o > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/soc/mediatek/mtk-mutex.c > > similarity index 96% > > rename from drivers/gpu/drm/mediatek/mtk_mutex.c > > rename to drivers/soc/mediatek/mtk-mutex.c > > index 66344759e622..f531b119da7a 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > +++ b/drivers/soc/mediatek/mtk-mutex.c > > @@ -10,8 +10,7 @@ > > #include <linux/platform_device.h> > > #include <linux/regmap.h> > > #include <linux/soc/mediatek/mtk-mmsys.h> > > - > > -#include "mtk_mutex.h" > > +#include <linux/soc/mediatek/mtk-mutex.h> > > > > #define MT2701_MUTEX0_MOD0 0x2c > > #define MT2701_MUTEX0_SOF0 0x30 > > @@ -241,6 +240,7 @@ struct mtk_mutex *mtk_mutex_get(struct device *dev) > > > > return ERR_PTR(-EBUSY); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_get); > > > > void mtk_mutex_put(struct mtk_mutex *mutex) > > { > > @@ -251,6 +251,7 @@ void mtk_mutex_put(struct mtk_mutex *mutex) > > > > mutex->claimed = false; > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_put); > > > > int mtk_mutex_prepare(struct mtk_mutex *mutex) > > { > > @@ -258,6 +259,7 @@ int mtk_mutex_prepare(struct mtk_mutex *mutex) > > mutex[mutex->id]); > > return clk_prepare_enable(mtx->clk); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_prepare); > > > > void mtk_mutex_unprepare(struct mtk_mutex *mutex) > > { > > @@ -265,6 +267,7 @@ void mtk_mutex_unprepare(struct mtk_mutex *mutex) > > mutex[mutex->id]); > > clk_disable_unprepare(mtx->clk); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_unprepare); > > > > void mtk_mutex_add_comp(struct mtk_mutex *mutex, > > enum mtk_ddp_comp_id id) > > @@ -316,6 +319,7 @@ void mtk_mutex_add_comp(struct mtk_mutex *mutex, > > mtx->regs + > > DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_add_comp); > > > > void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > > enum mtk_ddp_comp_id id) > > @@ -355,6 +359,7 @@ void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > > break; > > } > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_remove_comp); > > > > void mtk_mutex_enable(struct mtk_mutex *mutex) > > { > > @@ -365,6 +370,7 @@ void mtk_mutex_enable(struct mtk_mutex *mutex) > > > > writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_enable); > > > > void mtk_mutex_disable(struct mtk_mutex *mutex) > > { > > @@ -375,6 +381,7 @@ void mtk_mutex_disable(struct mtk_mutex *mutex) > > > > writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_disable); > > > > void mtk_mutex_acquire(struct mtk_mutex *mutex) > > { > > @@ -388,6 +395,7 @@ void mtk_mutex_acquire(struct mtk_mutex *mutex) > > tmp, tmp & INT_MUTEX, 1, 10000)) > > pr_err("could not acquire mutex %d\n", mutex->id); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_acquire); > > > > void mtk_mutex_release(struct mtk_mutex *mutex) > > { > > @@ -396,6 +404,7 @@ void mtk_mutex_release(struct mtk_mutex *mutex) > > > > writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_release); > > > > static int mtk_mutex_probe(struct platform_device *pdev) > > { > > @@ -461,3 +470,5 @@ struct platform_driver mtk_mutex_driver = { > > .of_match_table = mutex_driver_dt_match, > > }, > > }; > > + > > +builtin_platform_driver(mtk_mutex_driver); > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/include/linux/soc/mediatek/mtk-mutex.h > > similarity index 100% > > rename from drivers/gpu/drm/mediatek/mtk_mutex.h > > rename to include/linux/soc/mediatek/mtk-mutex.h > > -- > > 2.17.1 > > > > > > _______________________________________________ > > Linux-mediatek mailing list > > Linux-mediatek@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-mediatek _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 5/5] soc / drm: mediatek: Move mtk mutex driver to soc folder @ 2021-01-20 23:43 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-20 23:43 UTC (permalink / raw) To: Matthias Brugger Cc: Chun-Kuang Hu, Philipp Zabel, David Airlie, linux-kernel, DRI Development, CK Hu, moderated list:ARM/Mediatek SoC support, Daniel Vetter, Matthias Brugger, Linux ARM Hi, Matthias: Matthias Brugger <matthias.bgg@kernel.org> 於 2021年1月21日 週四 上午2:33寫道: > > On Thu, Jan 07, 2021 at 07:17:29AM +0800, Chun-Kuang Hu wrote: > > From: CK Hu <ck.hu@mediatek.com> > > > > 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> > > Please take the patch through your tree. Thanks! Applied, thanks. Regards, Chun-Kuang. > > > --- > > drivers/gpu/drm/mediatek/Makefile | 3 +-- > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 2 +- > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 1 - > > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - > > drivers/soc/mediatek/Makefile | 1 + > > .../mtk_mutex.c => soc/mediatek/mtk-mutex.c} | 15 +++++++++++++-- > > .../linux/soc/mediatek/mtk-mutex.h | 0 > > 7 files changed, 16 insertions(+), 7 deletions(-) > > rename drivers/{gpu/drm/mediatek/mtk_mutex.c => soc/mediatek/mtk-mutex.c} (96%) > > rename drivers/gpu/drm/mediatek/mtk_mutex.h => include/linux/soc/mediatek/mtk-mutex.h (100%) > > > > diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile > > index 09979c4c340a..01d06332f767 100644 > > --- a/drivers/gpu/drm/mediatek/Makefile > > +++ b/drivers/gpu/drm/mediatek/Makefile > > @@ -9,8 +9,7 @@ mediatek-drm-y := mtk_disp_color.o \ > > mtk_drm_gem.o \ > > mtk_drm_plane.o \ > > mtk_dsi.o \ > > - mtk_dpi.o \ > > - mtk_mutex.o > > + mtk_dpi.o > > > > obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > index 1e3a9450680b..e9b6788d52cd 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > @@ -7,6 +7,7 @@ > > #include <linux/pm_runtime.h> > > #include <linux/soc/mediatek/mtk-cmdq.h> > > #include <linux/soc/mediatek/mtk-mmsys.h> > > +#include <linux/soc/mediatek/mtk-mutex.h> > > > > #include <asm/barrier.h> > > #include <soc/mediatek/smi.h> > > @@ -22,7 +23,6 @@ > > #include "mtk_drm_ddp_comp.h" > > #include "mtk_drm_gem.h" > > #include "mtk_drm_plane.h" > > -#include "mtk_mutex.h" > > > > /* > > * struct mtk_drm_crtc - MediaTek specific crtc structure. > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > index b99a06e6834e..5d39dd54255d 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > @@ -588,7 +588,6 @@ static struct platform_driver mtk_drm_platform_driver = { > > }; > > > > static struct platform_driver * const mtk_drm_drivers[] = { > > - &mtk_mutex_driver, > > &mtk_disp_color_driver, > > &mtk_disp_ovl_driver, > > &mtk_disp_rdma_driver, > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > > index ae366868d01a..e8238fa4aa2a 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > > @@ -46,7 +46,6 @@ struct mtk_drm_private { > > struct drm_atomic_state *suspend_state; > > }; > > > > -extern struct platform_driver mtk_mutex_driver; > > extern struct platform_driver mtk_disp_color_driver; > > extern struct platform_driver mtk_disp_ovl_driver; > > extern struct platform_driver mtk_disp_rdma_driver; > > diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefile > > index b6908db534c2..90270f8114ed 100644 > > --- a/drivers/soc/mediatek/Makefile > > +++ b/drivers/soc/mediatek/Makefile > > @@ -6,3 +6,4 @@ obj-$(CONFIG_MTK_PMIC_WRAP) += mtk-pmic-wrap.o > > obj-$(CONFIG_MTK_SCPSYS) += mtk-scpsys.o > > obj-$(CONFIG_MTK_SCPSYS_PM_DOMAINS) += mtk-pm-domains.o > > obj-$(CONFIG_MTK_MMSYS) += mtk-mmsys.o > > +obj-$(CONFIG_MTK_MMSYS) += mtk-mutex.o > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.c b/drivers/soc/mediatek/mtk-mutex.c > > similarity index 96% > > rename from drivers/gpu/drm/mediatek/mtk_mutex.c > > rename to drivers/soc/mediatek/mtk-mutex.c > > index 66344759e622..f531b119da7a 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_mutex.c > > +++ b/drivers/soc/mediatek/mtk-mutex.c > > @@ -10,8 +10,7 @@ > > #include <linux/platform_device.h> > > #include <linux/regmap.h> > > #include <linux/soc/mediatek/mtk-mmsys.h> > > - > > -#include "mtk_mutex.h" > > +#include <linux/soc/mediatek/mtk-mutex.h> > > > > #define MT2701_MUTEX0_MOD0 0x2c > > #define MT2701_MUTEX0_SOF0 0x30 > > @@ -241,6 +240,7 @@ struct mtk_mutex *mtk_mutex_get(struct device *dev) > > > > return ERR_PTR(-EBUSY); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_get); > > > > void mtk_mutex_put(struct mtk_mutex *mutex) > > { > > @@ -251,6 +251,7 @@ void mtk_mutex_put(struct mtk_mutex *mutex) > > > > mutex->claimed = false; > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_put); > > > > int mtk_mutex_prepare(struct mtk_mutex *mutex) > > { > > @@ -258,6 +259,7 @@ int mtk_mutex_prepare(struct mtk_mutex *mutex) > > mutex[mutex->id]); > > return clk_prepare_enable(mtx->clk); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_prepare); > > > > void mtk_mutex_unprepare(struct mtk_mutex *mutex) > > { > > @@ -265,6 +267,7 @@ void mtk_mutex_unprepare(struct mtk_mutex *mutex) > > mutex[mutex->id]); > > clk_disable_unprepare(mtx->clk); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_unprepare); > > > > void mtk_mutex_add_comp(struct mtk_mutex *mutex, > > enum mtk_ddp_comp_id id) > > @@ -316,6 +319,7 @@ void mtk_mutex_add_comp(struct mtk_mutex *mutex, > > mtx->regs + > > DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_add_comp); > > > > void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > > enum mtk_ddp_comp_id id) > > @@ -355,6 +359,7 @@ void mtk_mutex_remove_comp(struct mtk_mutex *mutex, > > break; > > } > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_remove_comp); > > > > void mtk_mutex_enable(struct mtk_mutex *mutex) > > { > > @@ -365,6 +370,7 @@ void mtk_mutex_enable(struct mtk_mutex *mutex) > > > > writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_enable); > > > > void mtk_mutex_disable(struct mtk_mutex *mutex) > > { > > @@ -375,6 +381,7 @@ void mtk_mutex_disable(struct mtk_mutex *mutex) > > > > writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_disable); > > > > void mtk_mutex_acquire(struct mtk_mutex *mutex) > > { > > @@ -388,6 +395,7 @@ void mtk_mutex_acquire(struct mtk_mutex *mutex) > > tmp, tmp & INT_MUTEX, 1, 10000)) > > pr_err("could not acquire mutex %d\n", mutex->id); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_acquire); > > > > void mtk_mutex_release(struct mtk_mutex *mutex) > > { > > @@ -396,6 +404,7 @@ void mtk_mutex_release(struct mtk_mutex *mutex) > > > > writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); > > } > > +EXPORT_SYMBOL_GPL(mtk_mutex_release); > > > > static int mtk_mutex_probe(struct platform_device *pdev) > > { > > @@ -461,3 +470,5 @@ struct platform_driver mtk_mutex_driver = { > > .of_match_table = mutex_driver_dt_match, > > }, > > }; > > + > > +builtin_platform_driver(mtk_mutex_driver); > > diff --git a/drivers/gpu/drm/mediatek/mtk_mutex.h b/include/linux/soc/mediatek/mtk-mutex.h > > similarity index 100% > > rename from drivers/gpu/drm/mediatek/mtk_mutex.h > > rename to include/linux/soc/mediatek/mtk-mutex.h > > -- > > 2.17.1 > > > > > > _______________________________________________ > > Linux-mediatek mailing list > > Linux-mediatek@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-mediatek _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 0/5] Share mtk mutex driver for both DRM and MDP 2021-01-06 23:17 ` Chun-Kuang Hu (?) (?) @ 2021-01-19 23:42 ` Chun-Kuang Hu -1 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-19 23:42 UTC (permalink / raw) To: Chun-Kuang Hu Cc: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter, linux-kernel, DRI Development, moderated list:ARM/Mediatek SoC support, Linux ARM Chun-Kuang Hu <chunkuang.hu@kernel.org> 於 2021年1月7日 週四 上午7:17寫道: > > mtk mutex is a driver used by DRM and MDP [1], so this series move > mtk mutex driver from DRM folder to soc folder, so it could be used > by DRM and MDP. Applied [1/5] ~ [4/5] to mediatek-drm-next [1]. [1] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next Regards, Chun-Kuang. > > Changes in v2: > 1. Rebase onto mediatek-drm-next [2]. > 2. Export symbol for mtk-mutex API. > > [1] https://patchwork.kernel.org/patch/11140751/ > [2] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next > > CK Hu (5): > drm/mediatek: Remove redundant file including > drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex > drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver > drm/mediatek: Automatically search unclaimed mtk mutex in > mtk_mutex_get() > soc / drm: mediatek: Move mtk mutex driver to soc folder > > drivers/gpu/drm/mediatek/Makefile | 1 - > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 32 +- > drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 28 -- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 3 - > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - > drivers/soc/mediatek/Makefile | 1 + > .../mediatek/mtk-mutex.c} | 328 +++++++++--------- > include/linux/soc/mediatek/mtk-mutex.h | 26 ++ > 8 files changed, 212 insertions(+), 208 deletions(-) > delete mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp.h > rename drivers/{gpu/drm/mediatek/mtk_drm_ddp.c => soc/mediatek/mtk-mutex.c} (53%) > create mode 100644 include/linux/soc/mediatek/mtk-mutex.h > > -- > 2.17.1 > ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 0/5] Share mtk mutex driver for both DRM and MDP @ 2021-01-19 23:42 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-19 23:42 UTC (permalink / raw) To: Chun-Kuang Hu Cc: David Airlie, linux-kernel, DRI Development, moderated list:ARM/Mediatek SoC support, Matthias Brugger, Linux ARM Chun-Kuang Hu <chunkuang.hu@kernel.org> 於 2021年1月7日 週四 上午7:17寫道: > > mtk mutex is a driver used by DRM and MDP [1], so this series move > mtk mutex driver from DRM folder to soc folder, so it could be used > by DRM and MDP. Applied [1/5] ~ [4/5] to mediatek-drm-next [1]. [1] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next Regards, Chun-Kuang. > > Changes in v2: > 1. Rebase onto mediatek-drm-next [2]. > 2. Export symbol for mtk-mutex API. > > [1] https://patchwork.kernel.org/patch/11140751/ > [2] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next > > CK Hu (5): > drm/mediatek: Remove redundant file including > drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex > drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver > drm/mediatek: Automatically search unclaimed mtk mutex in > mtk_mutex_get() > soc / drm: mediatek: Move mtk mutex driver to soc folder > > drivers/gpu/drm/mediatek/Makefile | 1 - > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 32 +- > drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 28 -- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 3 - > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - > drivers/soc/mediatek/Makefile | 1 + > .../mediatek/mtk-mutex.c} | 328 +++++++++--------- > include/linux/soc/mediatek/mtk-mutex.h | 26 ++ > 8 files changed, 212 insertions(+), 208 deletions(-) > delete mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp.h > rename drivers/{gpu/drm/mediatek/mtk_drm_ddp.c => soc/mediatek/mtk-mutex.c} (53%) > create mode 100644 include/linux/soc/mediatek/mtk-mutex.h > > -- > 2.17.1 > _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 0/5] Share mtk mutex driver for both DRM and MDP @ 2021-01-19 23:42 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-19 23:42 UTC (permalink / raw) To: Chun-Kuang Hu Cc: Philipp Zabel, David Airlie, linux-kernel, DRI Development, moderated list:ARM/Mediatek SoC support, Daniel Vetter, Matthias Brugger, Linux ARM Chun-Kuang Hu <chunkuang.hu@kernel.org> 於 2021年1月7日 週四 上午7:17寫道: > > mtk mutex is a driver used by DRM and MDP [1], so this series move > mtk mutex driver from DRM folder to soc folder, so it could be used > by DRM and MDP. Applied [1/5] ~ [4/5] to mediatek-drm-next [1]. [1] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next Regards, Chun-Kuang. > > Changes in v2: > 1. Rebase onto mediatek-drm-next [2]. > 2. Export symbol for mtk-mutex API. > > [1] https://patchwork.kernel.org/patch/11140751/ > [2] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next > > CK Hu (5): > drm/mediatek: Remove redundant file including > drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex > drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver > drm/mediatek: Automatically search unclaimed mtk mutex in > mtk_mutex_get() > soc / drm: mediatek: Move mtk mutex driver to soc folder > > drivers/gpu/drm/mediatek/Makefile | 1 - > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 32 +- > drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 28 -- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 3 - > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - > drivers/soc/mediatek/Makefile | 1 + > .../mediatek/mtk-mutex.c} | 328 +++++++++--------- > include/linux/soc/mediatek/mtk-mutex.h | 26 ++ > 8 files changed, 212 insertions(+), 208 deletions(-) > delete mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp.h > rename drivers/{gpu/drm/mediatek/mtk_drm_ddp.c => soc/mediatek/mtk-mutex.c} (53%) > create mode 100644 include/linux/soc/mediatek/mtk-mutex.h > > -- > 2.17.1 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v2 0/5] Share mtk mutex driver for both DRM and MDP @ 2021-01-19 23:42 ` Chun-Kuang Hu 0 siblings, 0 replies; 50+ messages in thread From: Chun-Kuang Hu @ 2021-01-19 23:42 UTC (permalink / raw) To: Chun-Kuang Hu Cc: Philipp Zabel, David Airlie, linux-kernel, DRI Development, moderated list:ARM/Mediatek SoC support, Daniel Vetter, Matthias Brugger, Linux ARM Chun-Kuang Hu <chunkuang.hu@kernel.org> 於 2021年1月7日 週四 上午7:17寫道: > > mtk mutex is a driver used by DRM and MDP [1], so this series move > mtk mutex driver from DRM folder to soc folder, so it could be used > by DRM and MDP. Applied [1/5] ~ [4/5] to mediatek-drm-next [1]. [1] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next Regards, Chun-Kuang. > > Changes in v2: > 1. Rebase onto mediatek-drm-next [2]. > 2. Export symbol for mtk-mutex API. > > [1] https://patchwork.kernel.org/patch/11140751/ > [2] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next > > CK Hu (5): > drm/mediatek: Remove redundant file including > drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex > drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver > drm/mediatek: Automatically search unclaimed mtk mutex in > mtk_mutex_get() > soc / drm: mediatek: Move mtk mutex driver to soc folder > > drivers/gpu/drm/mediatek/Makefile | 1 - > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 32 +- > drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 28 -- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 3 - > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 - > drivers/soc/mediatek/Makefile | 1 + > .../mediatek/mtk-mutex.c} | 328 +++++++++--------- > include/linux/soc/mediatek/mtk-mutex.h | 26 ++ > 8 files changed, 212 insertions(+), 208 deletions(-) > delete mode 100644 drivers/gpu/drm/mediatek/mtk_drm_ddp.h > rename drivers/{gpu/drm/mediatek/mtk_drm_ddp.c => soc/mediatek/mtk-mutex.c} (53%) > create mode 100644 include/linux/soc/mediatek/mtk-mutex.h > > -- > 2.17.1 > _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 50+ messages in thread
end of thread, other threads:[~2021-01-21 23:15 UTC | newest] Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-01-06 23:17 [PATCH v2 0/5] Share mtk mutex driver for both DRM and MDP Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` [PATCH v2 1/5] drm/mediatek: Remove redundant file including Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` [PATCH v2 2/5] drm/mediatek: Rename file mtk_drm_ddp to mtk_mutex Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` [PATCH v2 3/5] drm/mediatek: Change disp/ddp term to mutex in mtk mutex driver Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-20 18:27 ` Matthias Brugger 2021-01-20 18:27 ` Matthias Brugger 2021-01-20 18:27 ` Matthias Brugger 2021-01-20 23:46 ` Chun-Kuang Hu 2021-01-20 23:46 ` Chun-Kuang Hu 2021-01-20 23:46 ` Chun-Kuang Hu 2021-01-20 23:46 ` Chun-Kuang Hu 2021-01-21 8:18 ` Matthias Brugger 2021-01-21 8:18 ` Matthias Brugger 2021-01-21 8:18 ` Matthias Brugger 2021-01-21 8:18 ` Matthias Brugger 2021-01-21 23:13 ` Chun-Kuang Hu 2021-01-21 23:13 ` Chun-Kuang Hu 2021-01-21 23:13 ` Chun-Kuang Hu 2021-01-21 23:13 ` Chun-Kuang Hu 2021-01-06 23:17 ` [PATCH v2 4/5] drm/mediatek: Automatically search unclaimed mtk mutex in mtk_mutex_get() Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` [PATCH v2 5/5] soc / drm: mediatek: Move mtk mutex driver to soc folder Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-06 23:17 ` Chun-Kuang Hu 2021-01-20 18:32 ` Matthias Brugger 2021-01-20 18:32 ` Matthias Brugger 2021-01-20 18:32 ` Matthias Brugger 2021-01-20 23:43 ` Chun-Kuang Hu 2021-01-20 23:43 ` Chun-Kuang Hu 2021-01-20 23:43 ` Chun-Kuang Hu 2021-01-20 23:43 ` Chun-Kuang Hu 2021-01-19 23:42 ` [PATCH v2 0/5] Share mtk mutex driver for both DRM and MDP Chun-Kuang Hu 2021-01-19 23:42 ` Chun-Kuang Hu 2021-01-19 23:42 ` Chun-Kuang Hu 2021-01-19 23:42 ` Chun-Kuang Hu
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.