Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/msm/dp: Use function arguments for timing configuration

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.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/585351/
Link: https://lore.kernel.org/r/20240328-msm-dp-cleanup-v2-5-a5aed9798d32@quicinc.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

authored by

Bjorn Andersson and committed by
Dmitry Baryshkov
07823889 98607558

+17 -18
+6 -8
drivers/gpu/drm/msm/dp/dp_catalog.c
··· 881 881 } 882 882 883 883 /* panel related catalog functions */ 884 - int dp_catalog_panel_timing_cfg(struct dp_catalog *dp_catalog) 884 + int dp_catalog_panel_timing_cfg(struct dp_catalog *dp_catalog, u32 total, 885 + u32 sync_start, u32 width_blanking, u32 dp_active) 885 886 { 886 887 struct dp_catalog_private *catalog = container_of(dp_catalog, 887 888 struct dp_catalog_private, dp_catalog); 888 889 u32 reg; 889 890 890 - dp_write_link(catalog, REG_DP_TOTAL_HOR_VER, 891 - dp_catalog->total); 892 - dp_write_link(catalog, REG_DP_START_HOR_VER_FROM_SYNC, 893 - dp_catalog->sync_start); 894 - dp_write_link(catalog, REG_DP_HSYNC_VSYNC_WIDTH_POLARITY, 895 - dp_catalog->width_blanking); 896 - dp_write_link(catalog, REG_DP_ACTIVE_HOR_VER, dp_catalog->dp_active); 891 + dp_write_link(catalog, REG_DP_TOTAL_HOR_VER, total); 892 + dp_write_link(catalog, REG_DP_START_HOR_VER_FROM_SYNC, sync_start); 893 + dp_write_link(catalog, REG_DP_HSYNC_VSYNC_WIDTH_POLARITY, width_blanking); 894 + dp_write_link(catalog, REG_DP_ACTIVE_HOR_VER, dp_active); 897 895 898 896 reg = dp_read_p0(catalog, MMSS_DP_INTF_CONFIG); 899 897
+2 -5
drivers/gpu/drm/msm/dp/dp_catalog.h
··· 48 48 }; 49 49 50 50 struct dp_catalog { 51 - u32 total; 52 - u32 sync_start; 53 - u32 width_blanking; 54 - u32 dp_active; 55 51 enum dp_catalog_audio_sdp_type sdp_type; 56 52 enum dp_catalog_audio_header_type sdp_header; 57 53 u32 audio_data; ··· 103 107 u32 dp_catalog_ctrl_read_phy_pattern(struct dp_catalog *dp_catalog); 104 108 105 109 /* DP Panel APIs */ 106 - int dp_catalog_panel_timing_cfg(struct dp_catalog *dp_catalog); 110 + int dp_catalog_panel_timing_cfg(struct dp_catalog *dp_catalog, u32 total, 111 + u32 sync_start, u32 width_blanking, u32 dp_active); 107 112 void dp_catalog_panel_enable_vsc_sdp(struct dp_catalog *dp_catalog, struct dp_sdp *vsc_sdp); 108 113 void dp_catalog_panel_disable_vsc_sdp(struct dp_catalog *dp_catalog); 109 114 void dp_catalog_dump_regs(struct dp_catalog *dp_catalog);
+9 -5
drivers/gpu/drm/msm/dp/dp_panel.c
··· 353 353 struct dp_catalog *catalog; 354 354 struct dp_panel_private *panel; 355 355 struct drm_display_mode *drm_mode; 356 + u32 width_blanking; 357 + u32 sync_start; 358 + u32 dp_active; 359 + u32 total; 356 360 357 361 panel = container_of(dp_panel, struct dp_panel_private, dp_panel); 358 362 catalog = panel->catalog; ··· 380 376 data <<= 16; 381 377 data |= total_hor; 382 378 383 - catalog->total = data; 379 + total = data; 384 380 385 381 data = (drm_mode->vtotal - drm_mode->vsync_start); 386 382 data <<= 16; 387 383 data |= (drm_mode->htotal - drm_mode->hsync_start); 388 384 389 - catalog->sync_start = data; 385 + sync_start = data; 390 386 391 387 data = drm_mode->vsync_end - drm_mode->vsync_start; 392 388 data <<= 16; ··· 394 390 data |= drm_mode->hsync_end - drm_mode->hsync_start; 395 391 data |= (panel->dp_panel.dp_mode.h_active_low << 15); 396 392 397 - catalog->width_blanking = data; 393 + width_blanking = data; 398 394 399 395 data = drm_mode->vdisplay; 400 396 data <<= 16; 401 397 data |= drm_mode->hdisplay; 402 398 403 - catalog->dp_active = data; 399 + dp_active = data; 404 400 405 - dp_catalog_panel_timing_cfg(catalog); 401 + dp_catalog_panel_timing_cfg(catalog, total, sync_start, width_blanking, dp_active); 406 402 407 403 if (dp_panel->dp_mode.out_fmt_is_yuv_420) 408 404 dp_panel_setup_vsc_sdp_yuv_420(dp_panel);