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>
This commit is contained in:
parent
986075589a
commit
07823889bf
@ -881,19 +881,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);
|
||||
|
||||
|
@ -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;
|
||||
@ -107,7 +103,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);
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user