drm_mode_config_reset() has a dual role: it creates the initial KMS state at probe time, and resets hardware and software state during suspend/resume cycles.
Since the two roles need different behaviors (notably for objects like drm_private_obj that must persist across suspend/resume), drm_mode_config_create_initial_state() was introduced to handle only the initial state creation at probe time. Switch to drm_mode_config_create_initial_state(). Signed-off-by: Maxime Ripard <[email protected]> --- Cc: Tian Tao <[email protected]> Cc: Xinwei Kong <[email protected]> Cc: Yongbang Shi <[email protected]> --- drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c index 602930964e93..236840cb5b3a 100644 --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c @@ -412,6 +412,8 @@ static int hibmc_load(struct drm_device *dev) } - /* reset all the states of crtc/plane/encoder/connector */ - drm_mode_config_reset(dev); + /* Create all the states of crtc/plane/encoder/connector */ + ret = drm_mode_config_create_initial_state(dev); + if (ret) + goto err; drmm_kms_helper_poll_init(dev); -- 2.55.0
