* [PATCH 1/6] drm/exynos: exynos7_drm_decon: fix uninitialized crtc reference in functions
2024-09-19 15:10 ` [PATCH 0/6] Samsung Exynos 7870 DECON driver support Kaustabh Chakraborty
@ 2024-09-19 15:11 ` Kaustabh Chakraborty
2024-09-19 15:11 ` [PATCH 2/6] drm/exynos: exynos7_drm_decon: fix suspended condition in decon_commit() Kaustabh Chakraborty
` (5 subsequent siblings)
6 siblings, 0 replies; 22+ messages in thread
From: Kaustabh Chakraborty @ 2024-09-19 15:11 UTC (permalink / raw)
To: Inki Dae, Seung-Woo Kim, Kyungmin Park, David Airlie,
Simona Vetter, Krzysztof Kozlowski, Alim Akhtar,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Conor Dooley
Cc: dri-devel, linux-arm-kernel, linux-samsung-soc, linux-kernel,
devicetree, Kaustabh Chakraborty
decon_clear_channels() and decon_wait_for_vblank() accept a pointer to
struct exynos_drm_crtc. However, these functions are called when the
crtc is still uninitialized. Moreover, both functions use the pointer to
retrieve and use struct decon_context, which is initialized.
Modify the functions to accept a pointer to struct decon_context
instead.
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
---
drivers/gpu/drm/exynos/exynos7_drm_decon.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
index 0d185c0564b9..e994779694f0 100644
--- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
+++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
@@ -81,10 +81,8 @@ static const enum drm_plane_type decon_win_types[WINDOWS_NR] = {
DRM_PLANE_TYPE_CURSOR,
};
-static void decon_wait_for_vblank(struct exynos_drm_crtc *crtc)
+static void decon_wait_for_vblank(struct decon_context *ctx)
{
- struct decon_context *ctx = crtc->ctx;
-
if (ctx->suspended)
return;
@@ -100,9 +98,8 @@ static void decon_wait_for_vblank(struct exynos_drm_crtc *crtc)
DRM_DEV_DEBUG_KMS(ctx->dev, "vblank wait timed out.\n");
}
-static void decon_clear_channels(struct exynos_drm_crtc *crtc)
+static void decon_clear_channels(struct decon_context *ctx)
{
- struct decon_context *ctx = crtc->ctx;
unsigned int win, ch_enabled = 0;
/* Check if any channel is enabled. */
@@ -118,7 +115,7 @@ static void decon_clear_channels(struct exynos_drm_crtc *crtc)
/* Wait for vsync, as disable channel takes effect at next vsync */
if (ch_enabled)
- decon_wait_for_vblank(ctx->crtc);
+ decon_wait_for_vblank(ctx);
}
static int decon_ctx_initialize(struct decon_context *ctx,
@@ -126,7 +123,7 @@ static int decon_ctx_initialize(struct decon_context *ctx,
{
ctx->drm_dev = drm_dev;
- decon_clear_channels(ctx->crtc);
+ decon_clear_channels(ctx);
return exynos_drm_register_dma(drm_dev, ctx->dev, &ctx->dma_priv);
}
--
2.46.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 2/6] drm/exynos: exynos7_drm_decon: fix suspended condition in decon_commit()
2024-09-19 15:10 ` [PATCH 0/6] Samsung Exynos 7870 DECON driver support Kaustabh Chakraborty
2024-09-19 15:11 ` [PATCH 1/6] drm/exynos: exynos7_drm_decon: fix uninitialized crtc reference in functions Kaustabh Chakraborty
@ 2024-09-19 15:11 ` Kaustabh Chakraborty
2024-09-20 12:40 ` Krzysztof Kozlowski
2024-09-19 15:11 ` [PATCH 3/6] drm/exynos: exynos7_drm_decon: fix ideal_clk by converting it to Hz Kaustabh Chakraborty
` (4 subsequent siblings)
6 siblings, 1 reply; 22+ messages in thread
From: Kaustabh Chakraborty @ 2024-09-19 15:11 UTC (permalink / raw)
To: Inki Dae, Seung-Woo Kim, Kyungmin Park, David Airlie,
Simona Vetter, Krzysztof Kozlowski, Alim Akhtar,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Conor Dooley
Cc: dri-devel, linux-arm-kernel, linux-samsung-soc, linux-kernel,
devicetree, Kaustabh Chakraborty
decon_commit() gets called during atomic_enable. At this stage, DECON is
suspended, and thus the function refuses to run. Fix the suspended
condition checking in decon_commit().
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
---
drivers/gpu/drm/exynos/exynos7_drm_decon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
index e994779694f0..2c4ee87ae6ec 100644
--- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
+++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
@@ -152,7 +152,7 @@ static void decon_commit(struct exynos_drm_crtc *crtc)
struct drm_display_mode *mode = &crtc->base.state->adjusted_mode;
u32 val, clkdiv;
- if (ctx->suspended)
+ if (!ctx->suspended)
return;
/* nothing to do if we haven't set the mode yet */
--
2.46.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 2/6] drm/exynos: exynos7_drm_decon: fix suspended condition in decon_commit()
2024-09-19 15:11 ` [PATCH 2/6] drm/exynos: exynos7_drm_decon: fix suspended condition in decon_commit() Kaustabh Chakraborty
@ 2024-09-20 12:40 ` Krzysztof Kozlowski
2024-09-25 19:22 ` Kaustabh Chakraborty
0 siblings, 1 reply; 22+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-20 12:40 UTC (permalink / raw)
To: Kaustabh Chakraborty, Inki Dae, Seung-Woo Kim, Kyungmin Park,
David Airlie, Simona Vetter, Alim Akhtar, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, Rob Herring, Conor Dooley
Cc: dri-devel, linux-arm-kernel, linux-samsung-soc, linux-kernel,
devicetree
On 19/09/2024 17:11, Kaustabh Chakraborty wrote:
> decon_commit() gets called during atomic_enable. At this stage, DECON is
> suspended, and thus the function refuses to run. Fix the suspended
> condition checking in decon_commit().
>
> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
> ---
If this is a fix, then you miss fixes tag and cc-stable. However the
explanation seems just incomplete. This looked like a intentional code,
so you should explain really why original approach was wrong.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 2/6] drm/exynos: exynos7_drm_decon: fix suspended condition in decon_commit()
2024-09-20 12:40 ` Krzysztof Kozlowski
@ 2024-09-25 19:22 ` Kaustabh Chakraborty
0 siblings, 0 replies; 22+ messages in thread
From: Kaustabh Chakraborty @ 2024-09-25 19:22 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Inki Dae, Seung-Woo Kim, Kyungmin Park, David Airlie,
Simona Vetter, Alim Akhtar, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Conor Dooley, dri-devel,
linux-arm-kernel, linux-samsung-soc, linux-kernel, devicetree,
kauschluss
On 2024-09-20 12:40, Krzysztof Kozlowski wrote:
> On 19/09/2024 17:11, Kaustabh Chakraborty wrote:
>> decon_commit() gets called during atomic_enable. At this stage, DECON is
>> suspended, and thus the function refuses to run. Fix the suspended
>> condition checking in decon_commit().
>>
>> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
>> ---
>
> If this is a fix, then you miss fixes tag and cc-stable. However the
> explanation seems just incomplete. This looked like a intentional code,
> so you should explain really why original approach was wrong.
Fixes: 96976c3d9aff ("drm/exynos: Add DECON driver")
Now that I read the commit description of the above commit, which mentions
that the DECON driver is based on the FIMD driver, I think it makes more
sense to rewrite the suspend logic exactly as done in the FIMD driver.
Will do it in v2.
Here's a commit description which may be better suited, let me know:
A flag variable in struct decon_context, called 'suspended' is set to false
at the end of decon_atomic_enable() and is set back to true at the end of
decon_atomic_disable().
Functions called in decon_atomic_enable(), such as decon_enable_vblank()
and decon_commit() are guarded by suspend condition checking, where it
refuses to proceed if 'suspended' is set to true. Since 'suspended' isn't
set to true until the end of the calling function, the called functions
aren't even executed.
The original commit, 96976c3d9aff ("drm/exynos: Add DECON driver")
implementing the DECON driver, is based on the FIMD driver, but changes
the suspend flag logic which causes this issue. Implement the suspend
logic present in FIMD, which changes the flag at the beginning of
atomic_enable and atomic_disable instead.
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 3/6] drm/exynos: exynos7_drm_decon: fix ideal_clk by converting it to Hz
2024-09-19 15:10 ` [PATCH 0/6] Samsung Exynos 7870 DECON driver support Kaustabh Chakraborty
2024-09-19 15:11 ` [PATCH 1/6] drm/exynos: exynos7_drm_decon: fix uninitialized crtc reference in functions Kaustabh Chakraborty
2024-09-19 15:11 ` [PATCH 2/6] drm/exynos: exynos7_drm_decon: fix suspended condition in decon_commit() Kaustabh Chakraborty
@ 2024-09-19 15:11 ` Kaustabh Chakraborty
2024-10-07 10:38 ` 대인기/Tizen Platform Lab(SR)/삼성전자
2024-09-19 15:11 ` [PATCH 4/6] drm/exynos: exynos7_drm_decon: properly clear channels during bind Kaustabh Chakraborty
` (3 subsequent siblings)
6 siblings, 1 reply; 22+ messages in thread
From: Kaustabh Chakraborty @ 2024-09-19 15:11 UTC (permalink / raw)
To: Inki Dae, Seung-Woo Kim, Kyungmin Park, David Airlie,
Simona Vetter, Krzysztof Kozlowski, Alim Akhtar,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Conor Dooley
Cc: dri-devel, linux-arm-kernel, linux-samsung-soc, linux-kernel,
devicetree, Kaustabh Chakraborty
The clkdiv values are incorrect as ideal_clk is in kHz and the clock
rate of vclk is in Hz. Multiply 1000 to ideal_clk to bring it to Hz.
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
---
drivers/gpu/drm/exynos/exynos7_drm_decon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
index 2c4ee87ae6ec..4e4ced50ff15 100644
--- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
+++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
@@ -137,7 +137,7 @@ static void decon_ctx_remove(struct decon_context *ctx)
static u32 decon_calc_clkdiv(struct decon_context *ctx,
const struct drm_display_mode *mode)
{
- unsigned long ideal_clk = mode->clock;
+ unsigned long ideal_clk = mode->clock * 1000;
u32 clkdiv;
/* Find the clock divider value that gets us closest to ideal_clk */
--
2.46.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* RE: [PATCH 3/6] drm/exynos: exynos7_drm_decon: fix ideal_clk by converting it to Hz
2024-09-19 15:11 ` [PATCH 3/6] drm/exynos: exynos7_drm_decon: fix ideal_clk by converting it to Hz Kaustabh Chakraborty
@ 2024-10-07 10:38 ` 대인기/Tizen Platform Lab(SR)/삼성전자
0 siblings, 0 replies; 22+ messages in thread
From: 대인기/Tizen Platform Lab(SR)/삼성전자 @ 2024-10-07 10:38 UTC (permalink / raw)
To: 'Kaustabh Chakraborty', 'Seung-Woo Kim',
'Kyungmin Park', 'David Airlie',
'Simona Vetter', 'Krzysztof Kozlowski',
'Alim Akhtar', 'Maarten Lankhorst',
'Maxime Ripard', 'Thomas Zimmermann',
'Rob Herring', 'Conor Dooley'
Cc: dri-devel, linux-arm-kernel, linux-samsung-soc, linux-kernel,
devicetree
> -----Original Message-----
> From: Kaustabh Chakraborty <kauschluss@disroot.org>
> Sent: Friday, September 20, 2024 12:11 AM
> To: Inki Dae <inki.dae@samsung.com>; Seung-Woo Kim
> <sw0312.kim@samsung.com>; Kyungmin Park <kyungmin.park@samsung.com>; David
> Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; Krzysztof
> Kozlowski <krzk@kernel.org>; Alim Akhtar <alim.akhtar@samsung.com>;
> Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard
> <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; Rob Herring
> <robh@kernel.org>; Conor Dooley <conor@kernel.org>
> Cc: dri-devel@lists.freedesktop.org; linux-arm-kernel@lists.infradead.org;
> linux-samsung-soc@vger.kernel.org; linux-kernel@vger.kernel.org;
> devicetree@vger.kernel.org; Kaustabh Chakraborty <kauschluss@disroot.org>
> Subject: [PATCH 3/6] drm/exynos: exynos7_drm_decon: fix ideal_clk by
> converting it to Hz
>
> The clkdiv values are incorrect as ideal_clk is in kHz and the clock
> rate of vclk is in Hz. Multiply 1000 to ideal_clk to bring it to Hz.
>
> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
> ---
> drivers/gpu/drm/exynos/exynos7_drm_decon.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
> b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
> index 2c4ee87ae6ec..4e4ced50ff15 100644
> --- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
> +++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
> @@ -137,7 +137,7 @@ static void decon_ctx_remove(struct decon_context *ctx)
> static u32 decon_calc_clkdiv(struct decon_context *ctx,
> const struct drm_display_mode *mode)
> {
> - unsigned long ideal_clk = mode->clock;
> + unsigned long ideal_clk = mode->clock * 1000;
Right. ideal_clk should be fixed with Hz.
Thanks,
Inki Dae
> u32 clkdiv;
>
> /* Find the clock divider value that gets us closest to ideal_clk
> */
>
> --
> 2.46.1
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 4/6] drm/exynos: exynos7_drm_decon: properly clear channels during bind
2024-09-19 15:10 ` [PATCH 0/6] Samsung Exynos 7870 DECON driver support Kaustabh Chakraborty
` (2 preceding siblings ...)
2024-09-19 15:11 ` [PATCH 3/6] drm/exynos: exynos7_drm_decon: fix ideal_clk by converting it to Hz Kaustabh Chakraborty
@ 2024-09-19 15:11 ` Kaustabh Chakraborty
2024-09-19 15:19 ` [PATCH 5/6] drm/exynos: exynos7_drm_decon: add driver data and support for Exynos7870 Kaustabh Chakraborty
` (2 subsequent siblings)
6 siblings, 0 replies; 22+ messages in thread
From: Kaustabh Chakraborty @ 2024-09-19 15:11 UTC (permalink / raw)
To: Inki Dae, Seung-Woo Kim, Kyungmin Park, David Airlie,
Simona Vetter, Krzysztof Kozlowski, Alim Akhtar,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Conor Dooley
Cc: dri-devel, linux-arm-kernel, linux-samsung-soc, linux-kernel,
devicetree, Kaustabh Chakraborty
The DECON channels are not cleared properly as the windows aren't
shadow protected. When accompanied with an IOMMU, it pagefaults, and
the kernel panics.
Implement shadow protect/unprotect, along with a standalone update,
for channel clearing to properly take effect.
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
---
drivers/gpu/drm/exynos/exynos7_drm_decon.c | 55 +++++++++++++++++-------------
1 file changed, 32 insertions(+), 23 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
index 4e4ced50ff15..7f0985eb216e 100644
--- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
+++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
@@ -81,6 +81,28 @@ static const enum drm_plane_type decon_win_types[WINDOWS_NR] = {
DRM_PLANE_TYPE_CURSOR,
};
+/**
+ * decon_shadow_protect_win() - disable updating values from shadow registers at vsync
+ *
+ * @ctx: display and enhancement controller context
+ * @win: window to protect registers for
+ * @protect: 1 to protect (disable updates)
+ */
+static void decon_shadow_protect_win(struct decon_context *ctx,
+ unsigned int win, bool protect)
+{
+ u32 bits, val;
+
+ bits = SHADOWCON_WINx_PROTECT(win);
+
+ val = readl(ctx->regs + SHADOWCON);
+ if (protect)
+ val |= bits;
+ else
+ val &= ~bits;
+ writel(val, ctx->regs + SHADOWCON);
+}
+
static void decon_wait_for_vblank(struct decon_context *ctx)
{
if (ctx->suspended)
@@ -101,18 +123,27 @@ static void decon_wait_for_vblank(struct decon_context *ctx)
static void decon_clear_channels(struct decon_context *ctx)
{
unsigned int win, ch_enabled = 0;
+ u32 val;
/* Check if any channel is enabled. */
for (win = 0; win < WINDOWS_NR; win++) {
- u32 val = readl(ctx->regs + WINCON(win));
+ val = readl(ctx->regs + WINCON(win));
if (val & WINCONx_ENWIN) {
+ decon_shadow_protect_win(ctx, win, true);
+
val &= ~WINCONx_ENWIN;
writel(val, ctx->regs + WINCON(win));
ch_enabled = 1;
+
+ decon_shadow_protect_win(ctx, win, false);
}
}
+ val = readl(ctx->regs + DECON_UPDATE);
+ val |= DECON_UPDATE_STANDALONE_F;
+ writel(val, ctx->regs + DECON_UPDATE);
+
/* Wait for vsync, as disable channel takes effect at next vsync */
if (ch_enabled)
decon_wait_for_vblank(ctx);
@@ -340,28 +371,6 @@ static void decon_win_set_colkey(struct decon_context *ctx, unsigned int win)
writel(keycon1, ctx->regs + WKEYCON1_BASE(win));
}
-/**
- * decon_shadow_protect_win() - disable updating values from shadow registers at vsync
- *
- * @ctx: display and enhancement controller context
- * @win: window to protect registers for
- * @protect: 1 to protect (disable updates)
- */
-static void decon_shadow_protect_win(struct decon_context *ctx,
- unsigned int win, bool protect)
-{
- u32 bits, val;
-
- bits = SHADOWCON_WINx_PROTECT(win);
-
- val = readl(ctx->regs + SHADOWCON);
- if (protect)
- val |= bits;
- else
- val &= ~bits;
- writel(val, ctx->regs + SHADOWCON);
-}
-
static void decon_atomic_begin(struct exynos_drm_crtc *crtc)
{
struct decon_context *ctx = crtc->ctx;
--
2.46.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 5/6] drm/exynos: exynos7_drm_decon: add driver data and support for Exynos7870
2024-09-19 15:10 ` [PATCH 0/6] Samsung Exynos 7870 DECON driver support Kaustabh Chakraborty
` (3 preceding siblings ...)
2024-09-19 15:11 ` [PATCH 4/6] drm/exynos: exynos7_drm_decon: properly clear channels during bind Kaustabh Chakraborty
@ 2024-09-19 15:19 ` Kaustabh Chakraborty
2024-09-19 15:20 ` [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible Kaustabh Chakraborty
2024-11-01 5:08 ` [PATCH 0/6] Samsung Exynos 7870 DECON driver support 대인기/Tizen Platform Lab(SR)/삼성전자
6 siblings, 0 replies; 22+ messages in thread
From: Kaustabh Chakraborty @ 2024-09-19 15:19 UTC (permalink / raw)
To: kauschluss
Cc: airlied, alim.akhtar, conor, devicetree, dri-devel, inki.dae,
krzk, kyungmin.park, linux-arm-kernel, linux-kernel,
linux-samsung-soc, maarten.lankhorst, mripard, robh, simona,
sw0312.kim, tzimmermann
Add support for Exynos 7870 DECON in the Exynos 7 DECON driver.
Some Exynos 7 series SoCs (Exynos 7580 onwards) have different
register values. In order to address such changes, include a driver
data struct (named decon_data) so that correct base addresses and
shift values can be provided.
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
---
drivers/gpu/drm/exynos/exynos7_drm_decon.c | 58 ++++++++++++++++++++++--------
drivers/gpu/drm/exynos/regs-decon7.h | 15 ++++----
2 files changed, 51 insertions(+), 22 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
index 7f0985eb216e..4d93d2d7959f 100644
--- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
+++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
@@ -37,6 +37,24 @@
#define WINDOWS_NR 2
+struct decon_data {
+ unsigned int vidw_buf_start_base;
+ unsigned int shadowcon_win_protect_shift;
+ unsigned int wincon_burstlen_shift;
+};
+
+static struct decon_data exynos7_decon_data = {
+ .vidw_buf_start_base = 0x80,
+ .shadowcon_win_protect_shift = 10,
+ .wincon_burstlen_shift = 11,
+};
+
+static struct decon_data exynos7870_decon_data = {
+ .vidw_buf_start_base = 0x880,
+ .shadowcon_win_protect_shift = 8,
+ .wincon_burstlen_shift = 10,
+};
+
struct decon_context {
struct device *dev;
struct drm_device *drm_dev;
@@ -55,11 +73,19 @@ struct decon_context {
wait_queue_head_t wait_vsync_queue;
atomic_t wait_vsync_event;
+ const struct decon_data *data;
struct drm_encoder *encoder;
};
static const struct of_device_id decon_driver_dt_match[] = {
- {.compatible = "samsung,exynos7-decon"},
+ {
+ .compatible = "samsung,exynos7-decon",
+ .data = &exynos7_decon_data,
+ },
+ {
+ .compatible = "samsung,exynos7870-decon",
+ .data = &exynos7870_decon_data,
+ },
{},
};
MODULE_DEVICE_TABLE(of, decon_driver_dt_match);
@@ -92,8 +118,9 @@ static void decon_shadow_protect_win(struct decon_context *ctx,
unsigned int win, bool protect)
{
u32 bits, val;
+ unsigned int shift = ctx->data->shadowcon_win_protect_shift;
- bits = SHADOWCON_WINx_PROTECT(win);
+ bits = SHADOWCON_WINx_PROTECT(shift, win);
val = readl(ctx->regs + SHADOWCON);
if (protect)
@@ -291,6 +318,7 @@ static void decon_win_set_pixfmt(struct decon_context *ctx, unsigned int win,
{
unsigned long val;
int padding;
+ unsigned int shift = ctx->data->wincon_burstlen_shift;
val = readl(ctx->regs + WINCON(win));
val &= ~WINCONx_BPPMODE_MASK;
@@ -298,44 +326,44 @@ static void decon_win_set_pixfmt(struct decon_context *ctx, unsigned int win,
switch (fb->format->format) {
case DRM_FORMAT_RGB565:
val |= WINCONx_BPPMODE_16BPP_565;
- val |= WINCONx_BURSTLEN_16WORD;
+ val |= WINCONx_BURSTLEN_16WORD(shift);
break;
case DRM_FORMAT_XRGB8888:
val |= WINCONx_BPPMODE_24BPP_xRGB;
- val |= WINCONx_BURSTLEN_16WORD;
+ val |= WINCONx_BURSTLEN_16WORD(shift);
break;
case DRM_FORMAT_XBGR8888:
val |= WINCONx_BPPMODE_24BPP_xBGR;
- val |= WINCONx_BURSTLEN_16WORD;
+ val |= WINCONx_BURSTLEN_16WORD(shift);
break;
case DRM_FORMAT_RGBX8888:
val |= WINCONx_BPPMODE_24BPP_RGBx;
- val |= WINCONx_BURSTLEN_16WORD;
+ val |= WINCONx_BURSTLEN_16WORD(shift);
break;
case DRM_FORMAT_BGRX8888:
val |= WINCONx_BPPMODE_24BPP_BGRx;
- val |= WINCONx_BURSTLEN_16WORD;
+ val |= WINCONx_BURSTLEN_16WORD(shift);
break;
case DRM_FORMAT_ARGB8888:
val |= WINCONx_BPPMODE_32BPP_ARGB | WINCONx_BLD_PIX |
WINCONx_ALPHA_SEL;
- val |= WINCONx_BURSTLEN_16WORD;
+ val |= WINCONx_BURSTLEN_16WORD(shift);
break;
case DRM_FORMAT_ABGR8888:
val |= WINCONx_BPPMODE_32BPP_ABGR | WINCONx_BLD_PIX |
WINCONx_ALPHA_SEL;
- val |= WINCONx_BURSTLEN_16WORD;
+ val |= WINCONx_BURSTLEN_16WORD(shift);
break;
case DRM_FORMAT_RGBA8888:
val |= WINCONx_BPPMODE_32BPP_RGBA | WINCONx_BLD_PIX |
WINCONx_ALPHA_SEL;
- val |= WINCONx_BURSTLEN_16WORD;
+ val |= WINCONx_BURSTLEN_16WORD(shift);
break;
case DRM_FORMAT_BGRA8888:
default:
val |= WINCONx_BPPMODE_32BPP_BGRA | WINCONx_BLD_PIX |
WINCONx_ALPHA_SEL;
- val |= WINCONx_BURSTLEN_16WORD;
+ val |= WINCONx_BURSTLEN_16WORD(shift);
break;
}
@@ -351,8 +379,8 @@ static void decon_win_set_pixfmt(struct decon_context *ctx, unsigned int win,
padding = (fb->pitches[0] / fb->format->cpp[0]) - fb->width;
if (fb->width + padding < MIN_FB_WIDTH_FOR_16WORD_BURST) {
- val &= ~WINCONx_BURSTLEN_MASK;
- val |= WINCONx_BURSTLEN_8WORD;
+ val &= ~WINCONx_BURSTLEN_MASK(shift);
+ val |= WINCONx_BURSTLEN_8WORD(shift);
}
writel(val, ctx->regs + WINCON(win));
@@ -397,6 +425,7 @@ static void decon_update_plane(struct exynos_drm_crtc *crtc,
unsigned int win = plane->index;
unsigned int cpp = fb->format->cpp[0];
unsigned int pitch = fb->pitches[0];
+ unsigned int vidw_addr0_base = ctx->data->vidw_buf_start_base;
if (ctx->suspended)
return;
@@ -413,7 +442,7 @@ static void decon_update_plane(struct exynos_drm_crtc *crtc,
/* buffer start address */
val = (unsigned long)exynos_drm_fb_dma_addr(fb, 0);
- writel(val, ctx->regs + VIDW_BUF_START(win));
+ writel(val, ctx->regs + VIDW_BUF_START(vidw_addr0_base, win));
padding = (pitch / cpp) - fb->width;
@@ -695,6 +724,7 @@ static int decon_probe(struct platform_device *pdev)
ctx->dev = dev;
ctx->suspended = true;
+ ctx->data = of_device_get_match_data(dev);
i80_if_timings = of_get_child_by_name(dev->of_node, "i80-if-timings");
if (i80_if_timings)
diff --git a/drivers/gpu/drm/exynos/regs-decon7.h b/drivers/gpu/drm/exynos/regs-decon7.h
index 5bc5f1db5196..216c106dac8f 100644
--- a/drivers/gpu/drm/exynos/regs-decon7.h
+++ b/drivers/gpu/drm/exynos/regs-decon7.h
@@ -48,7 +48,7 @@
/* SHADOWCON */
#define SHADOWCON 0x30
-#define SHADOWCON_WINx_PROTECT(_win) (1 << (10 + (_win)))
+#define SHADOWCON_WINx_PROTECT(_shf, _win) (1 << ((_shf) + (_win)))
/* WINCONx */
#define WINCON(_win) (0x50 + ((_win) * 4))
@@ -58,10 +58,9 @@
#define WINCONx_BUFSEL_SHIFT 28
#define WINCONx_TRIPLE_BUF_MODE (0x1 << 18)
#define WINCONx_DOUBLE_BUF_MODE (0x0 << 18)
-#define WINCONx_BURSTLEN_16WORD (0x0 << 11)
-#define WINCONx_BURSTLEN_8WORD (0x1 << 11)
-#define WINCONx_BURSTLEN_MASK (0x1 << 11)
-#define WINCONx_BURSTLEN_SHIFT 11
+#define WINCONx_BURSTLEN_16WORD(_shf) (0x0 << (_shf))
+#define WINCONx_BURSTLEN_8WORD(_shf) (0x1 << (_shf))
+#define WINCONx_BURSTLEN_MASK(_shf) (0x1 << (_shf))
#define WINCONx_BLD_PLANE (0 << 8)
#define WINCONx_BLD_PIX (1 << 8)
#define WINCONx_ALPHA_MUL (1 << 7)
@@ -89,9 +88,9 @@
#define VIDOSD_H(_x) (0x80 + ((_x) * 4))
/* Frame buffer start addresses: VIDWxxADD0n */
-#define VIDW_BUF_START(_win) (0x80 + ((_win) * 0x10))
-#define VIDW_BUF_START1(_win) (0x84 + ((_win) * 0x10))
-#define VIDW_BUF_START2(_win) (0x88 + ((_win) * 0x10))
+#define VIDW_BUF_START(_base, _win) ((_base) + ((_win) * 0x10))
+#define VIDW_BUF_START1(_base, _win) ((_base) + ((_win) * 0x10))
+#define VIDW_BUF_START2(_base, _win) ((_base) + ((_win) * 0x10))
#define VIDW_WHOLE_X(_win) (0x0130 + ((_win) * 8))
#define VIDW_WHOLE_Y(_win) (0x0134 + ((_win) * 8))
--
2.46.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
2024-09-19 15:10 ` [PATCH 0/6] Samsung Exynos 7870 DECON driver support Kaustabh Chakraborty
` (4 preceding siblings ...)
2024-09-19 15:19 ` [PATCH 5/6] drm/exynos: exynos7_drm_decon: add driver data and support for Exynos7870 Kaustabh Chakraborty
@ 2024-09-19 15:20 ` Kaustabh Chakraborty
2024-09-20 12:39 ` Krzysztof Kozlowski
2024-11-01 5:08 ` [PATCH 0/6] Samsung Exynos 7870 DECON driver support 대인기/Tizen Platform Lab(SR)/삼성전자
6 siblings, 1 reply; 22+ messages in thread
From: Kaustabh Chakraborty @ 2024-09-19 15:20 UTC (permalink / raw)
To: kauschluss
Cc: airlied, alim.akhtar, conor, devicetree, dri-devel, inki.dae,
krzk, kyungmin.park, linux-arm-kernel, linux-kernel,
linux-samsung-soc, maarten.lankhorst, mripard, robh, simona,
sw0312.kim, tzimmermann
Add the compatible string of Exynos7870 to the existing list.
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
---
.../devicetree/bindings/display/samsung/samsung,exynos7-decon.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/display/samsung/samsung,exynos7-decon.yaml b/Documentation/devicetree/bindings/display/samsung/samsung,exynos7-decon.yaml
index 992c23ca7a4e..53916e4c95d8 100644
--- a/Documentation/devicetree/bindings/display/samsung/samsung,exynos7-decon.yaml
+++ b/Documentation/devicetree/bindings/display/samsung/samsung,exynos7-decon.yaml
@@ -19,7 +19,9 @@ description: |
properties:
compatible:
- const: samsung,exynos7-decon
+ enum:
+ - samsung,exynos7-decon
+ - samsung,exynos7870-decon
clocks:
maxItems: 4
--
2.46.1
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
2024-09-19 15:20 ` [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible Kaustabh Chakraborty
@ 2024-09-20 12:39 ` Krzysztof Kozlowski
2024-09-25 18:42 ` Kaustabh Chakraborty
0 siblings, 1 reply; 22+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-20 12:39 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: airlied, alim.akhtar, conor, devicetree, dri-devel, inki.dae,
kyungmin.park, linux-arm-kernel, linux-kernel, linux-samsung-soc,
maarten.lankhorst, mripard, robh, simona, sw0312.kim, tzimmermann
On 19/09/2024 17:20, Kaustabh Chakraborty wrote:
> Add the compatible string of Exynos7870 to the existing list.
>
> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
... and the DTS is <please provide lore ink in changelog>?
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
2024-09-20 12:39 ` Krzysztof Kozlowski
@ 2024-09-25 18:42 ` Kaustabh Chakraborty
2024-09-25 19:25 ` Krzysztof Kozlowski
0 siblings, 1 reply; 22+ messages in thread
From: Kaustabh Chakraborty @ 2024-09-25 18:42 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: airlied, alim.akhtar, conor, devicetree, dri-devel, inki.dae,
kyungmin.park, linux-arm-kernel, linux-kernel, linux-samsung-soc,
maarten.lankhorst, mripard, robh, simona, sw0312.kim, tzimmermann,
kauschluss
On 2024-09-20 12:39, Krzysztof Kozlowski wrote:
> On 19/09/2024 17:20, Kaustabh Chakraborty wrote:
>> Add the compatible string of Exynos7870 to the existing list.
>>
>> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
>
> ... and the DTS is <please provide lore ink in changelog>?
Didn't quite understand. The patch adds the compatible string
for Exynos7870 DECON in documentation. There's no DTS involved
in here, right?
>
>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
2024-09-25 18:42 ` Kaustabh Chakraborty
@ 2024-09-25 19:25 ` Krzysztof Kozlowski
2024-09-25 19:36 ` Kaustabh Chakraborty
0 siblings, 1 reply; 22+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-25 19:25 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: airlied, alim.akhtar, conor, devicetree, dri-devel, inki.dae,
kyungmin.park, linux-arm-kernel, linux-kernel, linux-samsung-soc,
maarten.lankhorst, mripard, robh, simona, sw0312.kim, tzimmermann
On 25/09/2024 20:42, Kaustabh Chakraborty wrote:
> On 2024-09-20 12:39, Krzysztof Kozlowski wrote:
>> On 19/09/2024 17:20, Kaustabh Chakraborty wrote:
>>> Add the compatible string of Exynos7870 to the existing list.
>>>
>>> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
>>
>> ... and the DTS is <please provide lore ink in changelog>?
>
> Didn't quite understand. The patch adds the compatible string
> for Exynos7870 DECON in documentation. There's no DTS involved
> in here, right?
Provide lore link to the DTS submission.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
2024-09-25 19:25 ` Krzysztof Kozlowski
@ 2024-09-25 19:36 ` Kaustabh Chakraborty
2024-09-25 19:56 ` Krzysztof Kozlowski
0 siblings, 1 reply; 22+ messages in thread
From: Kaustabh Chakraborty @ 2024-09-25 19:36 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: airlied, alim.akhtar, conor, devicetree, dri-devel, inki.dae,
kyungmin.park, linux-arm-kernel, linux-kernel, linux-samsung-soc,
maarten.lankhorst, mripard, robh, simona, sw0312.kim, tzimmermann,
kauschluss
On 2024-09-25 19:25, Krzysztof Kozlowski wrote:
> On 25/09/2024 20:42, Kaustabh Chakraborty wrote:
>> On 2024-09-20 12:39, Krzysztof Kozlowski wrote:
>>> On 19/09/2024 17:20, Kaustabh Chakraborty wrote:
>>>> Add the compatible string of Exynos7870 to the existing list.
>>>>
>>>> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
>>>
>>> ... and the DTS is <please provide lore ink in changelog>?
>>
>> Didn't quite understand. The patch adds the compatible string
>> for Exynos7870 DECON in documentation. There's no DTS involved
>> in here, right?
>
> Provide lore link to the DTS submission.
There aren't any DTS submissions *yet* which use the compatible.
Is that an issue?
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
2024-09-25 19:36 ` Kaustabh Chakraborty
@ 2024-09-25 19:56 ` Krzysztof Kozlowski
2024-09-25 20:05 ` Kaustabh Chakraborty
0 siblings, 1 reply; 22+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-25 19:56 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: airlied, alim.akhtar, conor, devicetree, dri-devel, inki.dae,
kyungmin.park, linux-arm-kernel, linux-kernel, linux-samsung-soc,
maarten.lankhorst, mripard, robh, simona, sw0312.kim, tzimmermann
On 25/09/2024 21:36, Kaustabh Chakraborty wrote:
> On 2024-09-25 19:25, Krzysztof Kozlowski wrote:
>> On 25/09/2024 20:42, Kaustabh Chakraborty wrote:
>>> On 2024-09-20 12:39, Krzysztof Kozlowski wrote:
>>>> On 19/09/2024 17:20, Kaustabh Chakraborty wrote:
>>>>> Add the compatible string of Exynos7870 to the existing list.
>>>>>
>>>>> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
>>>>
>>>> ... and the DTS is <please provide lore ink in changelog>?
>>>
>>> Didn't quite understand. The patch adds the compatible string
>>> for Exynos7870 DECON in documentation. There's no DTS involved
>>> in here, right?
>>
>> Provide lore link to the DTS submission.
>
> There aren't any DTS submissions *yet* which use the compatible.
> Is that an issue?
>
Yeah, users are supposed to be upstream. Not downstream.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
2024-09-25 19:56 ` Krzysztof Kozlowski
@ 2024-09-25 20:05 ` Kaustabh Chakraborty
2024-09-25 20:34 ` Krzysztof Kozlowski
[not found] ` <CGME20240926053449epcas1p2e8596f64b7ee5d3b8cdf565bacdc6510@epcas1p2.samsung.com>
0 siblings, 2 replies; 22+ messages in thread
From: Kaustabh Chakraborty @ 2024-09-25 20:05 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: airlied, alim.akhtar, conor, devicetree, dri-devel, inki.dae,
kyungmin.park, linux-arm-kernel, linux-kernel, linux-samsung-soc,
maarten.lankhorst, mripard, robh, simona, sw0312.kim, tzimmermann,
kauschluss
On 2024-09-25 19:56, Krzysztof Kozlowski wrote:
> On 25/09/2024 21:36, Kaustabh Chakraborty wrote:
>> On 2024-09-25 19:25, Krzysztof Kozlowski wrote:
>>> On 25/09/2024 20:42, Kaustabh Chakraborty wrote:
>>>> On 2024-09-20 12:39, Krzysztof Kozlowski wrote:
>>>>> On 19/09/2024 17:20, Kaustabh Chakraborty wrote:
>>>>>> Add the compatible string of Exynos7870 to the existing list.
>>>>>>
>>>>>> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
>>>>>
>>>>> ... and the DTS is <please provide lore ink in changelog>?
>>>>
>>>> Didn't quite understand. The patch adds the compatible string
>>>> for Exynos7870 DECON in documentation. There's no DTS involved
>>>> in here, right?
>>>
>>> Provide lore link to the DTS submission.
>>
>> There aren't any DTS submissions *yet* which use the compatible.
>> Is that an issue?
>>
>
> Yeah, users are supposed to be upstream. Not downstream.
I understand that. I had plans to submit it in the future.
If that's how it's meant to be done, I'll have to revisit this
submission at a later date then.
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
2024-09-25 20:05 ` Kaustabh Chakraborty
@ 2024-09-25 20:34 ` Krzysztof Kozlowski
[not found] ` <CGME20240926053449epcas1p2e8596f64b7ee5d3b8cdf565bacdc6510@epcas1p2.samsung.com>
1 sibling, 0 replies; 22+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-25 20:34 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: airlied, alim.akhtar, conor, devicetree, dri-devel, inki.dae,
kyungmin.park, linux-arm-kernel, linux-kernel, linux-samsung-soc,
maarten.lankhorst, mripard, robh, simona, sw0312.kim, tzimmermann
On 25/09/2024 22:05, Kaustabh Chakraborty wrote:
> On 2024-09-25 19:56, Krzysztof Kozlowski wrote:
>> On 25/09/2024 21:36, Kaustabh Chakraborty wrote:
>>> On 2024-09-25 19:25, Krzysztof Kozlowski wrote:
>>>> On 25/09/2024 20:42, Kaustabh Chakraborty wrote:
>>>>> On 2024-09-20 12:39, Krzysztof Kozlowski wrote:
>>>>>> On 19/09/2024 17:20, Kaustabh Chakraborty wrote:
>>>>>>> Add the compatible string of Exynos7870 to the existing list.
>>>>>>>
>>>>>>> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
>>>>>>
>>>>>> ... and the DTS is <please provide lore ink in changelog>?
>>>>>
>>>>> Didn't quite understand. The patch adds the compatible string
>>>>> for Exynos7870 DECON in documentation. There's no DTS involved
>>>>> in here, right?
>>>>
>>>> Provide lore link to the DTS submission.
>>>
>>> There aren't any DTS submissions *yet* which use the compatible.
>>> Is that an issue?
>>>
>>
>> Yeah, users are supposed to be upstream. Not downstream.
>
> I understand that. I had plans to submit it in the future.
> If that's how it's meant to be done, I'll have to revisit this
> submission at a later date then.
>
Partial, asynchronous bringup of a device is fine, so if the basic
support is there, I understand that drivers come in different pace.
Although I don't understand why DTS for this piece of hardware would
come in different pace, considering you cannot test it without DTS. You
have there DTS, so it should be sent.
But even without the DTS for DECON, the problem is earlier - lack of
basic support for this device. There is nothing for this chip.
This means it cannot be tested and is trickier to verify. That's not the
usual upstreaming way we expect, especially that you did not provide
rationale for such way.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread[parent not found: <CGME20240926053449epcas1p2e8596f64b7ee5d3b8cdf565bacdc6510@epcas1p2.samsung.com>]
* Re: [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
[not found] ` <CGME20240926053449epcas1p2e8596f64b7ee5d3b8cdf565bacdc6510@epcas1p2.samsung.com>
@ 2024-09-26 5:34 ` Kwanghoon Son
2024-09-28 16:25 ` Kaustabh Chakraborty
0 siblings, 1 reply; 22+ messages in thread
From: Kwanghoon Son @ 2024-09-26 5:34 UTC (permalink / raw)
To: Kaustabh Chakraborty, Krzysztof Kozlowski
Cc: airlied, alim.akhtar, conor, devicetree, dri-devel, inki.dae,
kyungmin.park, linux-arm-kernel, linux-kernel, linux-samsung-soc,
maarten.lankhorst, mripard, robh, simona, sw0312.kim, tzimmermann
On Wed, 2024-09-25 at 20:05 +0000, Kaustabh Chakraborty wrote:
> On 2024-09-25 19:56, Krzysztof Kozlowski wrote:
> > On 25/09/2024 21:36, Kaustabh Chakraborty wrote:
> > > On 2024-09-25 19:25, Krzysztof Kozlowski wrote:
> > > > On 25/09/2024 20:42, Kaustabh Chakraborty wrote:
> > > > > On 2024-09-20 12:39, Krzysztof Kozlowski wrote:
> > > > > > On 19/09/2024 17:20, Kaustabh Chakraborty wrote:
> > > > > > > Add the compatible string of Exynos7870 to the existing list.
> > > > > > >
> > > > > > > Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
> > > > > >
> > > > > > ... and the DTS is <please provide lore ink in changelog>?
> > > > >
> > > > > Didn't quite understand. The patch adds the compatible string
> > > > > for Exynos7870 DECON in documentation. There's no DTS involved
> > > > > in here, right?
> > > >
> > > > Provide lore link to the DTS submission.
> > >
> > > There aren't any DTS submissions *yet* which use the compatible.
> > > Is that an issue?
> > >
> >
> > Yeah, users are supposed to be upstream. Not downstream.
>
> I understand that. I had plans to submit it in the future.
> If that's how it's meant to be done, I'll have to revisit this
> submission at a later date then.
Hi, may I ask for reason that you don't submit dts?
I am asking because I wonder if there is an issue related to DPP.
https://lore.kernel.org/linux-samsung-soc/2e4d3d180f535e57d9cb98e7bac1d14b51ffc5d4.camel@gmail.com/#t
Best regards,
kwang.
>
> >
> > Best regards,
> > Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
2024-09-26 5:34 ` Kwanghoon Son
@ 2024-09-28 16:25 ` Kaustabh Chakraborty
0 siblings, 0 replies; 22+ messages in thread
From: Kaustabh Chakraborty @ 2024-09-28 16:25 UTC (permalink / raw)
To: Kwanghoon Son
Cc: Krzysztof Kozlowski, airlied, alim.akhtar, conor, devicetree,
dri-devel, inki.dae, kyungmin.park, linux-arm-kernel,
linux-kernel, linux-samsung-soc, maarten.lankhorst, mripard, robh,
simona, sw0312.kim, tzimmermann, kauschluss
On 2024-09-26 05:34, Kwanghoon Son wrote:
> On Wed, 2024-09-25 at 20:05 +0000, Kaustabh Chakraborty wrote:
>> On 2024-09-25 19:56, Krzysztof Kozlowski wrote:
>> > On 25/09/2024 21:36, Kaustabh Chakraborty wrote:
>> > > On 2024-09-25 19:25, Krzysztof Kozlowski wrote:
>> > > > On 25/09/2024 20:42, Kaustabh Chakraborty wrote:
>> > > > > On 2024-09-20 12:39, Krzysztof Kozlowski wrote:
>> > > > > > On 19/09/2024 17:20, Kaustabh Chakraborty wrote:
>> > > > > > > Add the compatible string of Exynos7870 to the existing list.
>> > > > > > >
>> > > > > > > Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
>> > > > > >
>> > > > > > ... and the DTS is <please provide lore ink in changelog>?
>> > > > >
>> > > > > Didn't quite understand. The patch adds the compatible string
>> > > > > for Exynos7870 DECON in documentation. There's no DTS involved
>> > > > > in here, right?
>> > > >
>> > > > Provide lore link to the DTS submission.
>> > >
>> > > There aren't any DTS submissions *yet* which use the compatible.
>> > > Is that an issue?
>> > >
>> >
>> > Yeah, users are supposed to be upstream. Not downstream.
>>
>> I understand that. I had plans to submit it in the future.
>> If that's how it's meant to be done, I'll have to revisit this
>> submission at a later date then.
>
> Hi, may I ask for reason that you don't submit dts?
It's not that I don't want, I have nowhere to submit it to yet. As
pointed out by Krzysztof, support for exynos7870 doesn't exist in
upstream. I'll get back to this after I get that finished.
> I am asking because I wonder if there is an issue related to DPP.
Exynos7870 doesn't have DPP blocks as far as I could tell. Let me
know if I misunderstood anything.
>
> https://lore.kernel.org/linux-samsung-soc/2e4d3d180f535e57d9cb98e7bac1d14b51ffc5d4.camel@gmail.com/#t
>
> Best regards,
> kwang.
>
>>
>> >
>> > Best regards,
>> > Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: [PATCH 0/6] Samsung Exynos 7870 DECON driver support
2024-09-19 15:10 ` [PATCH 0/6] Samsung Exynos 7870 DECON driver support Kaustabh Chakraborty
` (5 preceding siblings ...)
2024-09-19 15:20 ` [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible Kaustabh Chakraborty
@ 2024-11-01 5:08 ` 대인기/Tizen Platform Lab(SR)/삼성전자
2024-11-05 20:11 ` Rob Herring
6 siblings, 1 reply; 22+ messages in thread
From: 대인기/Tizen Platform Lab(SR)/삼성전자 @ 2024-11-01 5:08 UTC (permalink / raw)
To: 'Kaustabh Chakraborty', 'Seung-Woo Kim',
'Kyungmin Park', 'David Airlie',
'Simona Vetter', 'Krzysztof Kozlowski',
'Alim Akhtar', 'Maarten Lankhorst',
'Maxime Ripard', 'Thomas Zimmermann',
'Rob Herring', 'Conor Dooley'
Cc: dri-devel, linux-arm-kernel, linux-samsung-soc, linux-kernel,
devicetree
Hi Kaustabh Chakraborty,
Sorry for late.
> -----Original Message-----
> From: Kaustabh Chakraborty <kauschluss@disroot.org>
> Sent: Friday, September 20, 2024 12:11 AM
> To: Inki Dae <inki.dae@samsung.com>; Seung-Woo Kim
> <sw0312.kim@samsung.com>; Kyungmin Park <kyungmin.park@samsung.com>; David
> Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; Krzysztof
> Kozlowski <krzk@kernel.org>; Alim Akhtar <alim.akhtar@samsung.com>;
> Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard
> <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; Rob Herring
> <robh@kernel.org>; Conor Dooley <conor@kernel.org>
> Cc: dri-devel@lists.freedesktop.org; linux-arm-kernel@lists.infradead.org;
> linux-samsung-soc@vger.kernel.org; linux-kernel@vger.kernel.org;
> devicetree@vger.kernel.org; Kaustabh Chakraborty <kauschluss@disroot.org>
> Subject: [PATCH 0/6] Samsung Exynos 7870 DECON driver support
>
> This patch series aims at adding support for Exynos7870's DECON in the
> Exynos7 DECON driver. It introduces a driver data struct so that support
> for DECON on other SoCs can be added to it in the future.
>
> It also fixes a few bugs in the driver, such as functions recieving bad
> pointers.
>
> Tested on Samsung Galaxy J7 Prime and Samsung Galaxy A2 Core.
>
> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
> ---
> Kaustabh Chakraborty (6):
> drm/exynos: exynos7_drm_decon: fix uninitialized crtc reference in
> functions
> drm/exynos: exynos7_drm_decon: fix suspended condition in
> decon_commit()
> drm/exynos: exynos7_drm_decon: fix ideal_clk by converting it to Hz
> drm/exynos: exynos7_drm_decon: properly clear channels during bind
> drm/exynos: exynos7_drm_decon: add driver data and support for
> Exynos7870
> dt-bindings: display: samsung,exynos7-decon: add exynos7870
> compatible
I will apply all except for the two patches below,
[PATCH 2/6] drm/exynos: exynos7_drm_decon: fix suspended condition in decon_commit()
[PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
Thanks,
Inki Dae
>
> .../display/samsung/samsung,exynos7-decon.yaml | 4 +-
> drivers/gpu/drm/exynos/exynos7_drm_decon.c | 124 +++++++++++++-----
> ---
> drivers/gpu/drm/exynos/regs-decon7.h | 15 ++-
> 3 files changed, 90 insertions(+), 53 deletions(-)
> ---
> base-commit: 4f3e012d4cfd1d9bf837870c961f462ca9f23ebe
> change-id: 20240917-exynosdrm-decon-4c228dd1d2bf
>
> Best regards,
> --
> Kaustabh Chakraborty <kauschluss@disroot.org>
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 0/6] Samsung Exynos 7870 DECON driver support
2024-11-01 5:08 ` [PATCH 0/6] Samsung Exynos 7870 DECON driver support 대인기/Tizen Platform Lab(SR)/삼성전자
@ 2024-11-05 20:11 ` Rob Herring
2024-11-05 23:54 ` 대인기/Tizen Platform Lab(SR)/삼성전자
0 siblings, 1 reply; 22+ messages in thread
From: Rob Herring @ 2024-11-05 20:11 UTC (permalink / raw)
To: 대인기/Tizen Platform Lab(SR)/삼성전자
Cc: Kaustabh Chakraborty, Seung-Woo Kim, Kyungmin Park, David Airlie,
Simona Vetter, Krzysztof Kozlowski, Alim Akhtar,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Conor Dooley,
dri-devel, linux-arm-kernel, linux-samsung-soc, linux-kernel,
devicetree
On Fri, Nov 1, 2024 at 12:08 AM 대인기/Tizen Platform Lab(SR)/삼성전자
<inki.dae@samsung.com> wrote:
>
> Hi Kaustabh Chakraborty,
>
> Sorry for late.
>
> > -----Original Message-----
> > From: Kaustabh Chakraborty <kauschluss@disroot.org>
> > Sent: Friday, September 20, 2024 12:11 AM
> > To: Inki Dae <inki.dae@samsung.com>; Seung-Woo Kim
> > <sw0312.kim@samsung.com>; Kyungmin Park <kyungmin.park@samsung.com>; David
> > Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; Krzysztof
> > Kozlowski <krzk@kernel.org>; Alim Akhtar <alim.akhtar@samsung.com>;
> > Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard
> > <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; Rob Herring
> > <robh@kernel.org>; Conor Dooley <conor@kernel.org>
> > Cc: dri-devel@lists.freedesktop.org; linux-arm-kernel@lists.infradead.org;
> > linux-samsung-soc@vger.kernel.org; linux-kernel@vger.kernel.org;
> > devicetree@vger.kernel.org; Kaustabh Chakraborty <kauschluss@disroot.org>
> > Subject: [PATCH 0/6] Samsung Exynos 7870 DECON driver support
> >
> > This patch series aims at adding support for Exynos7870's DECON in the
> > Exynos7 DECON driver. It introduces a driver data struct so that support
> > for DECON on other SoCs can be added to it in the future.
> >
> > It also fixes a few bugs in the driver, such as functions recieving bad
> > pointers.
> >
> > Tested on Samsung Galaxy J7 Prime and Samsung Galaxy A2 Core.
> >
> > Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
> > ---
> > Kaustabh Chakraborty (6):
> > drm/exynos: exynos7_drm_decon: fix uninitialized crtc reference in
> > functions
> > drm/exynos: exynos7_drm_decon: fix suspended condition in
> > decon_commit()
> > drm/exynos: exynos7_drm_decon: fix ideal_clk by converting it to Hz
> > drm/exynos: exynos7_drm_decon: properly clear channels during bind
> > drm/exynos: exynos7_drm_decon: add driver data and support for
> > Exynos7870
> > dt-bindings: display: samsung,exynos7-decon: add exynos7870
> > compatible
>
> I will apply all except for the two patches below,
> [PATCH 2/6] drm/exynos: exynos7_drm_decon: fix suspended condition in decon_commit()
> [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
Now we have a warning in linux-next that samsung,exynos7870-decon is
not documented.
Please apply the binding patch. Or let me know if it missed 6.13 for
DRM tree and I'll apply it.
Rob
^ permalink raw reply [flat|nested] 22+ messages in thread
* RE: [PATCH 0/6] Samsung Exynos 7870 DECON driver support
2024-11-05 20:11 ` Rob Herring
@ 2024-11-05 23:54 ` 대인기/Tizen Platform Lab(SR)/삼성전자
0 siblings, 0 replies; 22+ messages in thread
From: 대인기/Tizen Platform Lab(SR)/삼성전자 @ 2024-11-05 23:54 UTC (permalink / raw)
To: 'Rob Herring'
Cc: 'Kaustabh Chakraborty', 'Seung-Woo Kim',
'Kyungmin Park', 'David Airlie',
'Simona Vetter', 'Krzysztof Kozlowski',
'Alim Akhtar', 'Maarten Lankhorst',
'Maxime Ripard', 'Thomas Zimmermann',
'Conor Dooley', dri-devel, linux-arm-kernel,
linux-samsung-soc, linux-kernel, devicetree
Hi Rob Herring,
> -----Original Message-----
> From: Rob Herring <robh@kernel.org>
> Sent: Wednesday, November 6, 2024 5:11 AM
> To: 대인기/Tizen Platform Lab(SR)/삼성전자 <inki.dae@samsung.com>
> Cc: Kaustabh Chakraborty <kauschluss@disroot.org>; Seung-Woo Kim
> <sw0312.kim@samsung.com>; Kyungmin Park <kyungmin.park@samsung.com>; David
> Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; Krzysztof
> Kozlowski <krzk@kernel.org>; Alim Akhtar <alim.akhtar@samsung.com>;
> Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard
> <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; Conor
> Dooley <conor@kernel.org>; dri-devel@lists.freedesktop.org; linux-arm-
> kernel@lists.infradead.org; linux-samsung-soc@vger.kernel.org; linux-
> kernel@vger.kernel.org; devicetree@vger.kernel.org
> Subject: Re: [PATCH 0/6] Samsung Exynos 7870 DECON driver support
>
> On Fri, Nov 1, 2024 at 12:08 AM 대인기/Tizen Platform Lab(SR)/삼성전자
> <inki.dae@samsung.com> wrote:
> >
> > Hi Kaustabh Chakraborty,
> >
> > Sorry for late.
> >
> > > -----Original Message-----
> > > From: Kaustabh Chakraborty <kauschluss@disroot.org>
> > > Sent: Friday, September 20, 2024 12:11 AM
> > > To: Inki Dae <inki.dae@samsung.com>; Seung-Woo Kim
> > > <sw0312.kim@samsung.com>; Kyungmin Park <kyungmin.park@samsung.com>;
> David
> > > Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; Krzysztof
> > > Kozlowski <krzk@kernel.org>; Alim Akhtar <alim.akhtar@samsung.com>;
> > > Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard
> > > <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; Rob
> Herring
> > > <robh@kernel.org>; Conor Dooley <conor@kernel.org>
> > > Cc: dri-devel@lists.freedesktop.org; linux-arm-
> kernel@lists.infradead.org;
> > > linux-samsung-soc@vger.kernel.org; linux-kernel@vger.kernel.org;
> > > devicetree@vger.kernel.org; Kaustabh Chakraborty
> <kauschluss@disroot.org>
> > > Subject: [PATCH 0/6] Samsung Exynos 7870 DECON driver support
> > >
> > > This patch series aims at adding support for Exynos7870's DECON in the
> > > Exynos7 DECON driver. It introduces a driver data struct so that
> support
> > > for DECON on other SoCs can be added to it in the future.
> > >
> > > It also fixes a few bugs in the driver, such as functions recieving
> bad
> > > pointers.
> > >
> > > Tested on Samsung Galaxy J7 Prime and Samsung Galaxy A2 Core.
> > >
> > > Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
> > > ---
> > > Kaustabh Chakraborty (6):
> > > drm/exynos: exynos7_drm_decon: fix uninitialized crtc reference
> in
> > > functions
> > > drm/exynos: exynos7_drm_decon: fix suspended condition in
> > > decon_commit()
> > > drm/exynos: exynos7_drm_decon: fix ideal_clk by converting it to
> Hz
> > > drm/exynos: exynos7_drm_decon: properly clear channels during
> bind
> > > drm/exynos: exynos7_drm_decon: add driver data and support for
> > > Exynos7870
> > > dt-bindings: display: samsung,exynos7-decon: add exynos7870
> > > compatible
> >
> > I will apply all except for the two patches below,
> > [PATCH 2/6] drm/exynos: exynos7_drm_decon: fix suspended condition in
> decon_commit()
> > [PATCH 6/6] dt-bindings: display: samsung,exynos7-decon: add exynos7870
> compatible
>
> Now we have a warning in linux-next that samsung,exynos7870-decon is
> not documented.
>
> Please apply the binding patch. Or let me know if it missed 6.13 for
> DRM tree and I'll apply it.
>
Ah... sorry for this. I didn't check the warning. Will apply the binding patch. I was awaiting the submission of DTS.
Thanks,
Inki Dae
> Rob
^ permalink raw reply [flat|nested] 22+ messages in thread