On Sat, Dec 14, 2024 at 03:37:04PM +0200, Dmitry Baryshkov wrote: > While working on the generic mode_valid() implementation for the HDMI > Connector framework I noticed that unlike other DRM objects > drm_connector accepts non-const pointer to struct drm_display_mode, > while obviously mode_valid() isn't expected to modify the argument. > > Mass-change the DRM framework code to pass const argument to that > callback. > > The series has been compile-tested with defconfig for x86-64, arm and > arm64. > > Note: yes, I understand that this change might be hard to review and > merge. The only viable option that I foresee is to add new callback, > having the const argument and migrate drivers into using it one by one. Colleagues, I'd like to graciously ping regarding this series. Should it be merged as is (possibly requiring more R-B's)? Or should I rework it adding something like .mode_valid_new() callback which takes const argument? > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > --- > Changes in v2: > - Rebased on top of linux-next > - Replaced 'accept const argument' with 'take a const arugment' > (Laurent) > - Link to v1: https://lore.kernel.org/r/20241115-drm-connector-mode-valid-const-v1-0-b1b523156f71@xxxxxxxxxx > > --- > Dmitry Baryshkov (5): > drm/encoder_slave: make mode_valid accept const struct drm_display_mode > drm/amdgpu: don't change mode in amdgpu_dm_connector_mode_valid() > drm/sti: hda: pass const struct drm_display_mode* to hda_get_mode_idx() > drm/connector: make mode_valid_ctx take a const struct drm_display_mode > drm/connector: make mode_valid take a const struct drm_display_mode > > drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 8 ++++---- > drivers/gpu/drm/amd/amdgpu/atombios_dp.c | 2 +- > drivers/gpu/drm/amd/amdgpu/atombios_dp.h | 2 +- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 +++++++++--- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 2 +- > drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c | 2 +- > drivers/gpu/drm/arm/malidp_mw.c | 2 +- > drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 2 +- > drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c | 2 +- > drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 7 ------- > drivers/gpu/drm/display/drm_bridge_connector.c | 2 +- > drivers/gpu/drm/display/drm_hdmi_state_helper.c | 2 +- > drivers/gpu/drm/drm_crtc_helper_internal.h | 2 +- > drivers/gpu/drm/drm_probe_helper.c | 2 +- > drivers/gpu/drm/exynos/exynos_hdmi.c | 2 +- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 2 +- > drivers/gpu/drm/gma500/cdv_intel_crt.c | 2 +- > drivers/gpu/drm/gma500/cdv_intel_dp.c | 2 +- > drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 2 +- > drivers/gpu/drm/gma500/cdv_intel_lvds.c | 2 +- > drivers/gpu/drm/gma500/oaktrail_hdmi.c | 2 +- > drivers/gpu/drm/gma500/psb_intel_drv.h | 2 +- > drivers/gpu/drm/gma500/psb_intel_lvds.c | 2 +- > drivers/gpu/drm/gma500/psb_intel_sdvo.c | 2 +- > drivers/gpu/drm/i2c/ch7006_drv.c | 2 +- > drivers/gpu/drm/i2c/sil164_drv.c | 2 +- > drivers/gpu/drm/i915/display/dvo_ch7017.c | 2 +- > drivers/gpu/drm/i915/display/dvo_ch7xxx.c | 2 +- > drivers/gpu/drm/i915/display/dvo_ivch.c | 2 +- > drivers/gpu/drm/i915/display/dvo_ns2501.c | 2 +- > drivers/gpu/drm/i915/display/dvo_sil164.c | 2 +- > drivers/gpu/drm/i915/display/dvo_tfp410.c | 2 +- > drivers/gpu/drm/i915/display/icl_dsi.c | 2 +- > drivers/gpu/drm/i915/display/intel_crt.c | 2 +- > drivers/gpu/drm/i915/display/intel_dp.c | 2 +- > drivers/gpu/drm/i915/display/intel_dp_mst.c | 2 +- > drivers/gpu/drm/i915/display/intel_dsi.c | 2 +- > drivers/gpu/drm/i915/display/intel_dsi.h | 2 +- > drivers/gpu/drm/i915/display/intel_dvo.c | 2 +- > drivers/gpu/drm/i915/display/intel_dvo_dev.h | 2 +- > drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +- > drivers/gpu/drm/i915/display/intel_lvds.c | 2 +- > drivers/gpu/drm/i915/display/intel_sdvo.c | 2 +- > drivers/gpu/drm/i915/display/intel_tv.c | 2 +- > drivers/gpu/drm/i915/display/vlv_dsi.c | 2 +- > drivers/gpu/drm/imx/ipuv3/imx-tve.c | 2 +- > drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c | 2 +- > drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 2 +- > drivers/gpu/drm/nouveau/dispnv50/disp.c | 2 +- > drivers/gpu/drm/nouveau/nouveau_connector.c | 2 +- > drivers/gpu/drm/qxl/qxl_display.c | 2 +- > drivers/gpu/drm/radeon/atombios_dp.c | 2 +- > drivers/gpu/drm/radeon/radeon_connectors.c | 10 +++++----- > drivers/gpu/drm/radeon/radeon_mode.h | 2 +- > drivers/gpu/drm/rockchip/cdn-dp-core.c | 2 +- > drivers/gpu/drm/rockchip/inno_hdmi.c | 4 ++-- > drivers/gpu/drm/rockchip/rk3066_hdmi.c | 2 +- > drivers/gpu/drm/sti/sti_dvo.c | 2 +- > drivers/gpu/drm/sti/sti_hda.c | 12 ++++++------ > drivers/gpu/drm/sti/sti_hdmi.c | 2 +- > drivers/gpu/drm/tegra/dsi.c | 2 +- > drivers/gpu/drm/tegra/hdmi.c | 2 +- > drivers/gpu/drm/tegra/sor.c | 2 +- > drivers/gpu/drm/vc4/vc4_txp.c | 2 +- > drivers/gpu/drm/virtio/virtgpu_display.c | 2 +- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 2 +- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 2 +- > drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 2 +- > include/drm/display/drm_hdmi_state_helper.h | 2 +- > include/drm/drm_encoder_slave.h | 2 +- > include/drm/drm_modeset_helper_vtables.h | 4 ++-- > 71 files changed, 92 insertions(+), 93 deletions(-) > --- > base-commit: 4176cf5c5651c33769de83bb61b0287f4ec7719f > change-id: 20241115-drm-connector-mode-valid-const-ae3db0ef6cb7 > > Best regards, > -- > Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > -- With best wishes Dmitry