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: Dave Airlie <[email protected]> Cc: Jocelyn Falempe <[email protected]> --- drivers/gpu/drm/mgag200/mgag200_g200.c | 4 +++- drivers/gpu/drm/mgag200/mgag200_g200eh.c | 4 +++- drivers/gpu/drm/mgag200/mgag200_g200eh3.c | 4 +++- drivers/gpu/drm/mgag200/mgag200_g200eh5.c | 4 +++- drivers/gpu/drm/mgag200/mgag200_g200er.c | 4 +++- drivers/gpu/drm/mgag200/mgag200_g200ev.c | 4 +++- drivers/gpu/drm/mgag200/mgag200_g200ew3.c | 4 +++- drivers/gpu/drm/mgag200/mgag200_g200se.c | 4 +++- drivers/gpu/drm/mgag200/mgag200_g200wb.c | 4 +++- 9 files changed, 27 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/mgag200/mgag200_g200.c b/drivers/gpu/drm/mgag200/mgag200_g200.c index 9e6b4618fadd..d4788cdf64d7 100644 --- a/drivers/gpu/drm/mgag200/mgag200_g200.c +++ b/drivers/gpu/drm/mgag200/mgag200_g200.c @@ -402,5 +402,7 @@ struct mga_device *mgag200_g200_device_create(struct pci_dev *pdev, const struct return ERR_PTR(ret); - drm_mode_config_reset(dev); + ret = drm_mode_config_create_initial_state(dev); + if (ret) + return ERR_PTR(ret); drm_kms_helper_poll_init(dev); diff --git a/drivers/gpu/drm/mgag200/mgag200_g200eh.c b/drivers/gpu/drm/mgag200/mgag200_g200eh.c index e64bfeafbefc..b6ef287c05da 100644 --- a/drivers/gpu/drm/mgag200/mgag200_g200eh.c +++ b/drivers/gpu/drm/mgag200/mgag200_g200eh.c @@ -274,5 +274,7 @@ struct mga_device *mgag200_g200eh_device_create(struct pci_dev *pdev, const stru return ERR_PTR(ret); - drm_mode_config_reset(dev); + ret = drm_mode_config_create_initial_state(dev); + if (ret) + return ERR_PTR(ret); drm_kms_helper_poll_init(dev); diff --git a/drivers/gpu/drm/mgag200/mgag200_g200eh3.c b/drivers/gpu/drm/mgag200/mgag200_g200eh3.c index 183b7676ea6a..973770ee941a 100644 --- a/drivers/gpu/drm/mgag200/mgag200_g200eh3.c +++ b/drivers/gpu/drm/mgag200/mgag200_g200eh3.c @@ -179,5 +179,7 @@ struct mga_device *mgag200_g200eh3_device_create(struct pci_dev *pdev, return ERR_PTR(ret); - drm_mode_config_reset(dev); + ret = drm_mode_config_create_initial_state(dev); + if (ret) + return ERR_PTR(ret); drm_kms_helper_poll_init(dev); diff --git a/drivers/gpu/drm/mgag200/mgag200_g200eh5.c b/drivers/gpu/drm/mgag200/mgag200_g200eh5.c index dc375c055b0e..0241244bd3f5 100644 --- a/drivers/gpu/drm/mgag200/mgag200_g200eh5.c +++ b/drivers/gpu/drm/mgag200/mgag200_g200eh5.c @@ -199,5 +199,7 @@ struct mga_device *mgag200_g200eh5_device_create(struct pci_dev *pdev, return ERR_PTR(ret); - drm_mode_config_reset(dev); + ret = drm_mode_config_create_initial_state(dev); + if (ret) + return ERR_PTR(ret); drm_kms_helper_poll_init(dev); diff --git a/drivers/gpu/drm/mgag200/mgag200_g200er.c b/drivers/gpu/drm/mgag200/mgag200_g200er.c index 205678a57bfe..df83857b9634 100644 --- a/drivers/gpu/drm/mgag200/mgag200_g200er.c +++ b/drivers/gpu/drm/mgag200/mgag200_g200er.c @@ -307,5 +307,7 @@ struct mga_device *mgag200_g200er_device_create(struct pci_dev *pdev, const stru return ERR_PTR(ret); - drm_mode_config_reset(dev); + ret = drm_mode_config_create_initial_state(dev); + if (ret) + return ERR_PTR(ret); drm_kms_helper_poll_init(dev); diff --git a/drivers/gpu/drm/mgag200/mgag200_g200ev.c b/drivers/gpu/drm/mgag200/mgag200_g200ev.c index d60693ac0749..82ee58b3faab 100644 --- a/drivers/gpu/drm/mgag200/mgag200_g200ev.c +++ b/drivers/gpu/drm/mgag200/mgag200_g200ev.c @@ -312,5 +312,7 @@ struct mga_device *mgag200_g200ev_device_create(struct pci_dev *pdev, const stru return ERR_PTR(ret); - drm_mode_config_reset(dev); + ret = drm_mode_config_create_initial_state(dev); + if (ret) + return ERR_PTR(ret); drm_kms_helper_poll_init(dev); diff --git a/drivers/gpu/drm/mgag200/mgag200_g200ew3.c b/drivers/gpu/drm/mgag200/mgag200_g200ew3.c index 9c14d0eb66bc..19c6a65e8621 100644 --- a/drivers/gpu/drm/mgag200/mgag200_g200ew3.c +++ b/drivers/gpu/drm/mgag200/mgag200_g200ew3.c @@ -197,5 +197,7 @@ struct mga_device *mgag200_g200ew3_device_create(struct pci_dev *pdev, return ERR_PTR(ret); - drm_mode_config_reset(dev); + ret = drm_mode_config_create_initial_state(dev); + if (ret) + return ERR_PTR(ret); drm_kms_helper_poll_init(dev); diff --git a/drivers/gpu/drm/mgag200/mgag200_g200se.c b/drivers/gpu/drm/mgag200/mgag200_g200se.c index 349ec36f6d49..937bceb8309f 100644 --- a/drivers/gpu/drm/mgag200/mgag200_g200se.c +++ b/drivers/gpu/drm/mgag200/mgag200_g200se.c @@ -519,5 +519,7 @@ struct mga_device *mgag200_g200se_device_create(struct pci_dev *pdev, const stru return ERR_PTR(ret); - drm_mode_config_reset(dev); + ret = drm_mode_config_create_initial_state(dev); + if (ret) + return ERR_PTR(ret); drm_kms_helper_poll_init(dev); diff --git a/drivers/gpu/drm/mgag200/mgag200_g200wb.c b/drivers/gpu/drm/mgag200/mgag200_g200wb.c index f65d4238422f..92e4cd9ef50e 100644 --- a/drivers/gpu/drm/mgag200/mgag200_g200wb.c +++ b/drivers/gpu/drm/mgag200/mgag200_g200wb.c @@ -321,5 +321,7 @@ struct mga_device *mgag200_g200wb_device_create(struct pci_dev *pdev, const stru return ERR_PTR(ret); - drm_mode_config_reset(dev); + ret = drm_mode_config_create_initial_state(dev); + if (ret) + return ERR_PTR(ret); drm_kms_helper_poll_init(dev); -- 2.55.0
