[PATCH v2 0/5] drm/connector: make mode_valid() callback accept const mode pointer

Thomas Zimmermann tzimmermann at suse.de
Mon Jan 6 09:01:17 UTC 2025


Hi


Am 05.01.25 um 23:47 schrieb Dmitry Baryshkov:
> 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?

Please merge as-is. No need to complicate things. For the whole series:

Reviewed-by: Thomas Zimmermann <tzimmermann at suse.de>

Thanks for doing this.

Best regards
Thomas

>
>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
>> ---
>> 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@linaro.org
>>
>> ---
>> 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 at linaro.org>
>>

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)



More information about the Intel-gfx mailing list