Re: [PATCH 5/6] drm/msm/dp: Use function arguments for timing configuration

2024-03-26 Thread Dmitry Baryshkov
On Tue, 26 Mar 2024 at 17:06, Bjorn Andersson  wrote:
>
> From: Bjorn Andersson 
>
> dp_catalog_panel_timing_cfg() takes 4 arguments, which are passed from
> the calling function through members of struct dp_catalog.
>
> No state is maintained other than across this call, so switch to
> function arguments to clean up the code.
>
> Signed-off-by: Bjorn Andersson 
> ---
>  drivers/gpu/drm/msm/dp/dp_catalog.c | 14 ++
>  drivers/gpu/drm/msm/dp/dp_catalog.h |  7 ++-
>  drivers/gpu/drm/msm/dp/dp_panel.c   | 14 +-
>  3 files changed, 17 insertions(+), 18 deletions(-)
>

Reviewed-by: Dmitry Baryshkov 

-- 
With best wishes
Dmitry


[PATCH 5/6] drm/msm/dp: Use function arguments for timing configuration

2024-03-26 Thread Bjorn Andersson
From: Bjorn Andersson 

dp_catalog_panel_timing_cfg() takes 4 arguments, which are passed from
the calling function through members of struct dp_catalog.

No state is maintained other than across this call, so switch to
function arguments to clean up the code.

Signed-off-by: Bjorn Andersson 
---
 drivers/gpu/drm/msm/dp/dp_catalog.c | 14 ++
 drivers/gpu/drm/msm/dp/dp_catalog.h |  7 ++-
 drivers/gpu/drm/msm/dp/dp_panel.c   | 14 +-
 3 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/msm/dp/dp_catalog.c 
b/drivers/gpu/drm/msm/dp/dp_catalog.c
index 295bd4cb72cc..00ad3ebaa5a1 100644
--- a/drivers/gpu/drm/msm/dp/dp_catalog.c
+++ b/drivers/gpu/drm/msm/dp/dp_catalog.c
@@ -880,19 +880,17 @@ u32 dp_catalog_ctrl_read_phy_pattern(struct dp_catalog 
*dp_catalog)
 }
 
 /* panel related catalog functions */
-int dp_catalog_panel_timing_cfg(struct dp_catalog *dp_catalog)
+int dp_catalog_panel_timing_cfg(struct dp_catalog *dp_catalog, u32 total,
+   u32 sync_start, u32 width_blanking, u32 
dp_active)
 {
struct dp_catalog_private *catalog = container_of(dp_catalog,
struct dp_catalog_private, dp_catalog);
u32 reg;
 
-   dp_write_link(catalog, REG_DP_TOTAL_HOR_VER,
-   dp_catalog->total);
-   dp_write_link(catalog, REG_DP_START_HOR_VER_FROM_SYNC,
-   dp_catalog->sync_start);
-   dp_write_link(catalog, REG_DP_HSYNC_VSYNC_WIDTH_POLARITY,
-   dp_catalog->width_blanking);
-   dp_write_link(catalog, REG_DP_ACTIVE_HOR_VER, dp_catalog->dp_active);
+   dp_write_link(catalog, REG_DP_TOTAL_HOR_VER, total);
+   dp_write_link(catalog, REG_DP_START_HOR_VER_FROM_SYNC, sync_start);
+   dp_write_link(catalog, REG_DP_HSYNC_VSYNC_WIDTH_POLARITY, 
width_blanking);
+   dp_write_link(catalog, REG_DP_ACTIVE_HOR_VER, dp_active);
 
reg = dp_read_p0(catalog, MMSS_DP_INTF_CONFIG);
 
diff --git a/drivers/gpu/drm/msm/dp/dp_catalog.h 
b/drivers/gpu/drm/msm/dp/dp_catalog.h
index 290ef8180c12..a82ab4856b50 100644
--- a/drivers/gpu/drm/msm/dp/dp_catalog.h
+++ b/drivers/gpu/drm/msm/dp/dp_catalog.h
@@ -48,10 +48,6 @@ enum dp_catalog_audio_header_type {
 };
 
 struct dp_catalog {
-   u32 total;
-   u32 sync_start;
-   u32 width_blanking;
-   u32 dp_active;
enum dp_catalog_audio_sdp_type sdp_type;
enum dp_catalog_audio_header_type sdp_header;
u32 audio_data;
@@ -106,7 +102,8 @@ void dp_catalog_ctrl_send_phy_pattern(struct dp_catalog 
*dp_catalog,
 u32 dp_catalog_ctrl_read_phy_pattern(struct dp_catalog *dp_catalog);
 
 /* DP Panel APIs */
-int dp_catalog_panel_timing_cfg(struct dp_catalog *dp_catalog);
+int dp_catalog_panel_timing_cfg(struct dp_catalog *dp_catalog, u32 total,
+   u32 sync_start, u32 width_blanking, u32 
dp_active);
 void dp_catalog_panel_enable_vsc_sdp(struct dp_catalog *dp_catalog, struct 
dp_sdp *vsc_sdp);
 void dp_catalog_panel_disable_vsc_sdp(struct dp_catalog *dp_catalog);
 void dp_catalog_dump_regs(struct dp_catalog *dp_catalog);
diff --git a/drivers/gpu/drm/msm/dp/dp_panel.c 
b/drivers/gpu/drm/msm/dp/dp_panel.c
index 8e7069453952..07db8f37cd06 100644
--- a/drivers/gpu/drm/msm/dp/dp_panel.c
+++ b/drivers/gpu/drm/msm/dp/dp_panel.c
@@ -353,6 +353,10 @@ int dp_panel_timing_cfg(struct dp_panel *dp_panel)
struct dp_catalog *catalog;
struct dp_panel_private *panel;
struct drm_display_mode *drm_mode;
+   u32 width_blanking;
+   u32 sync_start;
+   u32 dp_active;
+   u32 total;
 
panel = container_of(dp_panel, struct dp_panel_private, dp_panel);
catalog = panel->catalog;
@@ -376,13 +380,13 @@ int dp_panel_timing_cfg(struct dp_panel *dp_panel)
data <<= 16;
data |= total_hor;
 
-   catalog->total = data;
+   total = data;
 
data = (drm_mode->vtotal - drm_mode->vsync_start);
data <<= 16;
data |= (drm_mode->htotal - drm_mode->hsync_start);
 
-   catalog->sync_start = data;
+   sync_start = data;
 
data = drm_mode->vsync_end - drm_mode->vsync_start;
data <<= 16;
@@ -390,15 +394,15 @@ int dp_panel_timing_cfg(struct dp_panel *dp_panel)
data |= drm_mode->hsync_end - drm_mode->hsync_start;
data |= (panel->dp_panel.dp_mode.h_active_low << 15);
 
-   catalog->width_blanking = data;
+   width_blanking = data;
 
data = drm_mode->vdisplay;
data <<= 16;
data |= drm_mode->hdisplay;
 
-   catalog->dp_active = data;
+   dp_active = data;
 
-   dp_catalog_panel_timing_cfg(catalog);
+   dp_catalog_panel_timing_cfg(catalog, total, sync_start, width_blanking, 
dp_active);
 
if (dp_panel->dp_mode.out_fmt_is_yuv_420)
dp_panel_setup_vsc_sdp_yuv_420(dp_panel);

-- 
2.43.0