This series addresses below drm_fb_helper tasks from Documentation/gpu/todo.rst.
- The max connector argument for drm_fb_helper_init() isn't used anymore and can be removed.
- The helper doesn't keep an array of connectors anymore so these can be removed: drm_fb_helper_single_add_all_connectors(), drm_fb_helper_add_one_connector() and drm_fb_helper_remove_one_connector().
Pankaj Bharadiya (9): drm: Remove unused arg from drm_fb_helper_init drm/radeon: remove radeon_fb_{add,remove}_connector functions drm/amdgpu: Remove drm_fb_helper_{add,remove}_one_connector calls drm/i915/display: Remove drm_fb_helper_{add,remove}_one_connector calls drm: Remove drm_fb_helper add, add all and remove connector calls drm/nouveau: Fix unused variable warning drm/bridge: remove unused variable warning in tc358764_detach drm/fb-helper: Remove drm_fb_helper add, add_all and remove connector functions drm/todo: Update drm_fb_helper tasks
Documentation/gpu/todo.rst | 15 +++-------- drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 5 +--- .../display/amdgpu_dm/amdgpu_dm_mst_types.c | 13 --------- drivers/gpu/drm/armada/armada_fbdev.c | 8 +----- drivers/gpu/drm/bridge/tc358764.c | 3 --- drivers/gpu/drm/drm_fb_helper.c | 6 ++--- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 1 - drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 10 +------ drivers/gpu/drm/gma500/framebuffer.c | 6 +---- drivers/gpu/drm/i915/display/intel_dp_mst.c | 12 --------- drivers/gpu/drm/i915/display/intel_fbdev.c | 4 +-- drivers/gpu/drm/msm/msm_fbdev.c | 6 +---- drivers/gpu/drm/nouveau/dispnv50/disp.c | 7 ----- drivers/gpu/drm/nouveau/nouveau_fbcon.c | 6 +---- drivers/gpu/drm/omapdrm/omap_fbdev.c | 6 +---- drivers/gpu/drm/radeon/radeon_dp_mst.c | 10 ------- drivers/gpu/drm/radeon/radeon_fb.c | 19 +------------ drivers/gpu/drm/radeon/radeon_mode.h | 3 --- drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 9 +------ drivers/gpu/drm/tegra/fb.c | 8 +----- include/drm/drm_fb_helper.h | 27 ++----------------- 21 files changed, 19 insertions(+), 165 deletions(-)
The max connector argument for drm_fb_helper_init() isn't used anymore hence remove it.
All the drm_fb_helper_init() calls are modified with below sementic patch.
@@ expression E1, E2, E3; @@ - drm_fb_helper_init(E1,E2, E3) + drm_fb_helper_init(E1,E2)
Signed-off-by: Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com --- drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 3 +-- drivers/gpu/drm/armada/armada_fbdev.c | 2 +- drivers/gpu/drm/drm_fb_helper.c | 6 ++---- drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 2 +- drivers/gpu/drm/gma500/framebuffer.c | 2 +- drivers/gpu/drm/i915/display/intel_fbdev.c | 2 +- drivers/gpu/drm/msm/msm_fbdev.c | 2 +- drivers/gpu/drm/nouveau/nouveau_fbcon.c | 2 +- drivers/gpu/drm/omapdrm/omap_fbdev.c | 2 +- drivers/gpu/drm/radeon/radeon_fb.c | 3 +-- drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 2 +- drivers/gpu/drm/tegra/fb.c | 2 +- include/drm/drm_fb_helper.h | 6 ++---- 13 files changed, 15 insertions(+), 21 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c index 2672dc64a310..579d614c7b70 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c @@ -336,8 +336,7 @@ int amdgpu_fbdev_init(struct amdgpu_device *adev) drm_fb_helper_prepare(adev->ddev, &rfbdev->helper, &amdgpu_fb_helper_funcs);
- ret = drm_fb_helper_init(adev->ddev, &rfbdev->helper, - AMDGPUFB_CONN_LIMIT); + ret = drm_fb_helper_init(adev->ddev, &rfbdev->helper); if (ret) { kfree(rfbdev); return ret; diff --git a/drivers/gpu/drm/armada/armada_fbdev.c b/drivers/gpu/drm/armada/armada_fbdev.c index ac8a78bfda03..6254353c00ae 100644 --- a/drivers/gpu/drm/armada/armada_fbdev.c +++ b/drivers/gpu/drm/armada/armada_fbdev.c @@ -129,7 +129,7 @@ int armada_fbdev_init(struct drm_device *dev)
drm_fb_helper_prepare(dev, fbh, &armada_fb_helper_funcs);
- ret = drm_fb_helper_init(dev, fbh, 1); + ret = drm_fb_helper_init(dev, fbh); if (ret) { DRM_ERROR("failed to initialize drm fb helper\n"); goto err_fb_helper; diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 490a99de6ec1..a9771de4d17e 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -450,7 +450,6 @@ EXPORT_SYMBOL(drm_fb_helper_prepare); * drm_fb_helper_init - initialize a &struct drm_fb_helper * @dev: drm device * @fb_helper: driver-allocated fbdev helper structure to initialize - * @max_conn_count: max connector count (not used) * * This allocates the structures for the fbdev helper with the given limits. * Note that this won't yet touch the hardware (through the driver interfaces) @@ -463,8 +462,7 @@ EXPORT_SYMBOL(drm_fb_helper_prepare); * Zero if everything went ok, nonzero otherwise. */ int drm_fb_helper_init(struct drm_device *dev, - struct drm_fb_helper *fb_helper, - int max_conn_count) + struct drm_fb_helper *fb_helper) { int ret;
@@ -2125,7 +2123,7 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client)
drm_fb_helper_prepare(dev, fb_helper, &drm_fb_helper_generic_funcs);
- ret = drm_fb_helper_init(dev, fb_helper, 0); + ret = drm_fb_helper_init(dev, fb_helper); if (ret) goto err;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c index 647a1fd1d815..5afecb6a30ad 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c @@ -200,7 +200,7 @@ int exynos_drm_fbdev_init(struct drm_device *dev)
drm_fb_helper_prepare(dev, helper, &exynos_drm_fb_helper_funcs);
- ret = drm_fb_helper_init(dev, helper, MAX_CONNECTOR); + ret = drm_fb_helper_init(dev, helper); if (ret < 0) { DRM_DEV_ERROR(dev->dev, "failed to initialize drm fb helper.\n"); diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c index 1459076d1980..fe892e1243db 100644 --- a/drivers/gpu/drm/gma500/framebuffer.c +++ b/drivers/gpu/drm/gma500/framebuffer.c @@ -513,7 +513,7 @@ int psb_fbdev_init(struct drm_device *dev)
drm_fb_helper_prepare(dev, fb_helper, &psb_fb_helper_funcs);
- ret = drm_fb_helper_init(dev, fb_helper, INTELFB_CONN_LIMIT); + ret = drm_fb_helper_init(dev, fb_helper); if (ret) goto free;
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c index b6ee0d902003..8f65963266a3 100644 --- a/drivers/gpu/drm/i915/display/intel_fbdev.c +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c @@ -452,7 +452,7 @@ int intel_fbdev_init(struct drm_device *dev) if (!intel_fbdev_init_bios(dev, ifbdev)) ifbdev->preferred_bpp = 32;
- ret = drm_fb_helper_init(dev, &ifbdev->helper, 4); + ret = drm_fb_helper_init(dev, &ifbdev->helper); if (ret) { kfree(ifbdev); return ret; diff --git a/drivers/gpu/drm/msm/msm_fbdev.c b/drivers/gpu/drm/msm/msm_fbdev.c index db48867df47d..b4f44146d9de 100644 --- a/drivers/gpu/drm/msm/msm_fbdev.c +++ b/drivers/gpu/drm/msm/msm_fbdev.c @@ -160,7 +160,7 @@ struct drm_fb_helper *msm_fbdev_init(struct drm_device *dev)
drm_fb_helper_prepare(dev, helper, &msm_fb_helper_funcs);
- ret = drm_fb_helper_init(dev, helper, priv->num_connectors); + ret = drm_fb_helper_init(dev, helper); if (ret) { DRM_DEV_ERROR(dev->dev, "could not init fbdev: ret=%d\n", ret); goto fail; diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c index 0c5cdda3c336..21fc7c63e2f7 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c +++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c @@ -558,7 +558,7 @@ nouveau_fbcon_init(struct drm_device *dev)
drm_fb_helper_prepare(dev, &fbcon->helper, &nouveau_fbcon_helper_funcs);
- ret = drm_fb_helper_init(dev, &fbcon->helper, 4); + ret = drm_fb_helper_init(dev, &fbcon->helper); if (ret) goto free;
diff --git a/drivers/gpu/drm/omapdrm/omap_fbdev.c b/drivers/gpu/drm/omapdrm/omap_fbdev.c index b06e5cbfd03a..eba57ac31cc6 100644 --- a/drivers/gpu/drm/omapdrm/omap_fbdev.c +++ b/drivers/gpu/drm/omapdrm/omap_fbdev.c @@ -242,7 +242,7 @@ void omap_fbdev_init(struct drm_device *dev)
drm_fb_helper_prepare(dev, helper, &omap_fb_helper_funcs);
- ret = drm_fb_helper_init(dev, helper, priv->num_pipes); + ret = drm_fb_helper_init(dev, helper); if (ret) goto fail;
diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c index ec0b7d6c994d..85548cf2529a 100644 --- a/drivers/gpu/drm/radeon/radeon_fb.c +++ b/drivers/gpu/drm/radeon/radeon_fb.c @@ -354,8 +354,7 @@ int radeon_fbdev_init(struct radeon_device *rdev) drm_fb_helper_prepare(rdev->ddev, &rfbdev->helper, &radeon_fb_helper_funcs);
- ret = drm_fb_helper_init(rdev->ddev, &rfbdev->helper, - RADEONFB_CONN_LIMIT); + ret = drm_fb_helper_init(rdev->ddev, &rfbdev->helper); if (ret) goto free;
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c index 521fe42ac5e2..6ad4cce17089 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c @@ -124,7 +124,7 @@ int rockchip_drm_fbdev_init(struct drm_device *dev)
drm_fb_helper_prepare(dev, helper, &rockchip_drm_fb_helper_funcs);
- ret = drm_fb_helper_init(dev, helper, ROCKCHIP_MAX_CONNECTOR); + ret = drm_fb_helper_init(dev, helper); if (ret < 0) { DRM_DEV_ERROR(dev->dev, "Failed to initialize drm fb helper - %d.\n", diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c index 84f0e01e3428..feefe62be8dd 100644 --- a/drivers/gpu/drm/tegra/fb.c +++ b/drivers/gpu/drm/tegra/fb.c @@ -314,7 +314,7 @@ static int tegra_fbdev_init(struct tegra_fbdev *fbdev, struct drm_device *drm = fbdev->base.dev; int err;
- err = drm_fb_helper_init(drm, &fbdev->base, max_connectors); + err = drm_fb_helper_init(drm, &fbdev->base); if (err < 0) { dev_err(drm->dev, "failed to initialize DRM FB helper: %d\n", err); diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h index 1c6633da0f91..62e8dda6d1d1 100644 --- a/include/drm/drm_fb_helper.h +++ b/include/drm/drm_fb_helper.h @@ -213,8 +213,7 @@ drm_fb_helper_from_client(struct drm_client_dev *client) #ifdef CONFIG_DRM_FBDEV_EMULATION void drm_fb_helper_prepare(struct drm_device *dev, struct drm_fb_helper *helper, const struct drm_fb_helper_funcs *funcs); -int drm_fb_helper_init(struct drm_device *dev, - struct drm_fb_helper *helper, int max_conn); +int drm_fb_helper_init(struct drm_device *dev, struct drm_fb_helper *helper); void drm_fb_helper_fini(struct drm_fb_helper *helper); int drm_fb_helper_blank(int blank, struct fb_info *info); int drm_fb_helper_pan_display(struct fb_var_screeninfo *var, @@ -279,8 +278,7 @@ static inline void drm_fb_helper_prepare(struct drm_device *dev, }
static inline int drm_fb_helper_init(struct drm_device *dev, - struct drm_fb_helper *helper, - int max_conn) + struct drm_fb_helper *helper) { /* So drivers can use it to free the struct */ helper->dev = dev;
Hi
Am 02.03.20 um 13:56 schrieb Pankaj Bharadiya:
Reviewed-by: Thomas Zimmermann tzimmermann@suse.de
On Mon, Mar 2, 2020 at 8:08 AM Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com wrote:
Reviewed-by: Alex Deucher alexander.deucher@amd.com
drm_fb_helper_{add,remove}_one_connector() are dummy functions now and serve no purpose. Hence remove their calls.
This is the preparatory step for removing the drm_fb_helper_{add,remove}_one_connector() functions from drm_fb_helper.h
Signed-off-by: Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com --- drivers/gpu/drm/radeon/radeon_dp_mst.c | 10 ---------- drivers/gpu/drm/radeon/radeon_fb.c | 12 ------------ drivers/gpu/drm/radeon/radeon_mode.h | 3 --- 3 files changed, 25 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_dp_mst.c b/drivers/gpu/drm/radeon/radeon_dp_mst.c index 28eef9282874..5a9fb0ad175a 100644 --- a/drivers/gpu/drm/radeon/radeon_dp_mst.c +++ b/drivers/gpu/drm/radeon/radeon_dp_mst.c @@ -303,23 +303,13 @@ static struct drm_connector *radeon_dp_add_mst_connector(struct drm_dp_mst_topol
static void radeon_dp_register_mst_connector(struct drm_connector *connector) { - struct drm_device *dev = connector->dev; - struct radeon_device *rdev = dev->dev_private; - - radeon_fb_add_connector(rdev, connector); - drm_connector_register(connector); }
static void radeon_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr, struct drm_connector *connector) { - struct radeon_connector *master = container_of(mgr, struct radeon_connector, mst_mgr); - struct drm_device *dev = master->base.dev; - struct radeon_device *rdev = dev->dev_private; - drm_connector_unregister(connector); - radeon_fb_remove_connector(rdev, connector); drm_connector_cleanup(connector);
kfree(connector); diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c index 85548cf2529a..1c02cd771d52 100644 --- a/drivers/gpu/drm/radeon/radeon_fb.c +++ b/drivers/gpu/drm/radeon/radeon_fb.c @@ -403,15 +403,3 @@ bool radeon_fbdev_robj_is_fb(struct radeon_device *rdev, struct radeon_bo *robj) return true; return false; } - -void radeon_fb_add_connector(struct radeon_device *rdev, struct drm_connector *connector) -{ - if (rdev->mode_info.rfbdev) - drm_fb_helper_add_one_connector(&rdev->mode_info.rfbdev->helper, connector); -} - -void radeon_fb_remove_connector(struct radeon_device *rdev, struct drm_connector *connector) -{ - if (rdev->mode_info.rfbdev) - drm_fb_helper_remove_one_connector(&rdev->mode_info.rfbdev->helper, connector); -} diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h index 629567da29f1..c7f223743d46 100644 --- a/drivers/gpu/drm/radeon/radeon_mode.h +++ b/drivers/gpu/drm/radeon/radeon_mode.h @@ -986,9 +986,6 @@ bool radeon_fbdev_robj_is_fb(struct radeon_device *rdev, struct radeon_bo *robj)
void radeon_crtc_handle_vblank(struct radeon_device *rdev, int crtc_id);
-void radeon_fb_add_connector(struct radeon_device *rdev, struct drm_connector *connector); -void radeon_fb_remove_connector(struct radeon_device *rdev, struct drm_connector *connector); - void radeon_crtc_handle_flip(struct radeon_device *rdev, int crtc_id);
int radeon_align_pitch(struct radeon_device *rdev, int width, int bpp, bool tiled);
On Mon, Mar 2, 2020 at 8:08 AM Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com wrote:
Reviewed-by: Alex Deucher alexander.deucher@amd.com
drm_fb_helper_{add,remove}_one_connector() are dummy functions now and serve no purpose. Hence remove their calls.
This is the preparatory step for removing the drm_fb_helper_{add,remove}_one_connector() functions from drm_fb_helper.h
Signed-off-by: Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com --- .../drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 13 ------------- 1 file changed, 13 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c index 0ef0eeb16778..0c4faba8ed28 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c @@ -440,9 +440,6 @@ dm_dp_add_mst_connector(struct drm_dp_mst_topology_mgr *mgr, static void dm_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr, struct drm_connector *connector) { - struct amdgpu_dm_connector *master = container_of(mgr, struct amdgpu_dm_connector, mst_mgr); - struct drm_device *dev = master->base.dev; - struct amdgpu_device *adev = dev->dev_private; struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
DRM_INFO("DM_MST: Disabling connector: %p [id: %d] [master: %p]\n", @@ -457,21 +454,11 @@ static void dm_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr, }
drm_connector_unregister(connector); - if (adev->mode_info.rfbdev) - drm_fb_helper_remove_one_connector(&adev->mode_info.rfbdev->helper, connector); drm_connector_put(connector); }
static void dm_dp_mst_register_connector(struct drm_connector *connector) { - struct drm_device *dev = connector->dev; - struct amdgpu_device *adev = dev->dev_private; - - if (adev->mode_info.rfbdev) - drm_fb_helper_add_one_connector(&adev->mode_info.rfbdev->helper, connector); - else - DRM_ERROR("adev->mode_info.rfbdev is NULL\n"); - drm_connector_register(connector); }
On Mon, Mar 2, 2020 at 8:09 AM Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com wrote:
Reviewed-by: Alex Deucher alexander.deucher@amd.com
drm_fb_helper_{add,remove}_one_connector() are dummy functions now and serve no purpose. Hence remove their calls.
This is the preparatory step for removing the drm_fb_helper_{add,remove}_one_connector() functions from drm_fb_helper.h
Signed-off-by: Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com --- drivers/gpu/drm/i915/display/intel_dp_mst.c | 12 ------------ 1 file changed, 12 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c index d7bfa7c350e9..b15404a3b1ca 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c @@ -721,27 +721,15 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
static void intel_dp_register_mst_connector(struct drm_connector *connector) { - struct drm_i915_private *dev_priv = to_i915(connector->dev); - - if (dev_priv->fbdev) - drm_fb_helper_add_one_connector(&dev_priv->fbdev->helper, - connector); - drm_connector_register(connector); }
static void intel_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr, struct drm_connector *connector) { - struct drm_i915_private *dev_priv = to_i915(connector->dev); - DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n", connector->base.id, connector->name); drm_connector_unregister(connector);
- if (dev_priv->fbdev) - drm_fb_helper_remove_one_connector(&dev_priv->fbdev->helper, - connector); - drm_connector_put(connector); }
On Mon, Mar 2, 2020 at 8:09 AM Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com wrote:
Reviewed-by: Alex Deucher alexander.deucher@amd.com
drm_fb_helper_{add,remove}_one_connector() and drm_fb_helper_single_add_all_connectors() are dummy functions now and serve no purpose. Hence remove their calls.
This is the preparatory step for removing the drm_fb_helper_{add,remove}_one_connector() functions from drm_fb_helper.h
This removal is done using below sementic patch:
@@ @@
- drm_fb_helper_single_add_all_connectors(...);
@@ expression e1; statement S; @@ - e1 = drm_fb_helper_single_add_all_connectors(...); - S
@@ @@
- drm_fb_helper_add_one_connector(...);
@@ @@
- drm_fb_helper_remove_one_connector(...);
Signed-off-by: Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com --- drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 2 -- drivers/gpu/drm/armada/armada_fbdev.c | 6 ------ drivers/gpu/drm/bridge/tc358764.c | 2 -- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 1 - drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 8 -------- drivers/gpu/drm/gma500/framebuffer.c | 4 ---- drivers/gpu/drm/i915/display/intel_fbdev.c | 2 -- drivers/gpu/drm/msm/msm_fbdev.c | 4 ---- drivers/gpu/drm/nouveau/dispnv50/disp.c | 4 ---- drivers/gpu/drm/nouveau/nouveau_fbcon.c | 4 ---- drivers/gpu/drm/omapdrm/omap_fbdev.c | 4 ---- drivers/gpu/drm/radeon/radeon_fb.c | 4 ---- drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 7 ------- drivers/gpu/drm/tegra/fb.c | 6 ------ 14 files changed, 58 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c index 579d614c7b70..9ae7b61f696a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c @@ -342,8 +342,6 @@ int amdgpu_fbdev_init(struct amdgpu_device *adev) return ret; }
- drm_fb_helper_single_add_all_connectors(&rfbdev->helper); - /* disable all the possible outputs/crtcs before entering KMS mode */ if (!amdgpu_device_has_dc_support(adev)) drm_helper_disable_unused_functions(adev->ddev); diff --git a/drivers/gpu/drm/armada/armada_fbdev.c b/drivers/gpu/drm/armada/armada_fbdev.c index 6254353c00ae..f2dc371bd8e5 100644 --- a/drivers/gpu/drm/armada/armada_fbdev.c +++ b/drivers/gpu/drm/armada/armada_fbdev.c @@ -135,12 +135,6 @@ int armada_fbdev_init(struct drm_device *dev) goto err_fb_helper; }
- ret = drm_fb_helper_single_add_all_connectors(fbh); - if (ret) { - DRM_ERROR("failed to add fb connectors\n"); - goto err_fb_setup; - } - ret = drm_fb_helper_initial_config(fbh, 32); if (ret) { DRM_ERROR("failed to set initial config\n"); diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c index 283e4a8dd923..530342dd4a34 100644 --- a/drivers/gpu/drm/bridge/tc358764.c +++ b/drivers/gpu/drm/bridge/tc358764.c @@ -375,7 +375,6 @@ static int tc358764_attach(struct drm_bridge *bridge, drm_connector_attach_encoder(&ctx->connector, bridge->encoder); drm_panel_attach(ctx->panel, &ctx->connector); ctx->connector.funcs->reset(&ctx->connector); - drm_fb_helper_add_one_connector(drm->fb_helper, &ctx->connector); drm_connector_register(&ctx->connector);
return 0; @@ -387,7 +386,6 @@ static void tc358764_detach(struct drm_bridge *bridge) struct drm_device *drm = bridge->dev;
drm_connector_unregister(&ctx->connector); - drm_fb_helper_remove_one_connector(drm->fb_helper, &ctx->connector); drm_panel_detach(ctx->panel); ctx->panel = NULL; drm_connector_put(&ctx->connector); diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c index 669d3857502a..38e43d957ae0 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c @@ -1514,7 +1514,6 @@ static int exynos_dsi_create_connector(struct drm_encoder *encoder) return 0;
connector->funcs->reset(connector); - drm_fb_helper_add_one_connector(drm->fb_helper, connector); drm_connector_register(connector); return 0; } diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c index 5afecb6a30ad..e6ceaf36fb04 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c @@ -207,14 +207,6 @@ int exynos_drm_fbdev_init(struct drm_device *dev) goto err_init; }
- ret = drm_fb_helper_single_add_all_connectors(helper); - if (ret < 0) { - DRM_DEV_ERROR(dev->dev, - "failed to register drm_fb_helper_connector.\n"); - goto err_setup; - - } - ret = drm_fb_helper_initial_config(helper, PREFERRED_BPP); if (ret < 0) { DRM_DEV_ERROR(dev->dev, diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c index fe892e1243db..1d8f67e4795a 100644 --- a/drivers/gpu/drm/gma500/framebuffer.c +++ b/drivers/gpu/drm/gma500/framebuffer.c @@ -517,10 +517,6 @@ int psb_fbdev_init(struct drm_device *dev) if (ret) goto free;
- ret = drm_fb_helper_single_add_all_connectors(fb_helper); - if (ret) - goto fini; - /* disable all the possible outputs/crtcs before entering KMS mode */ drm_helper_disable_unused_functions(dev);
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c index 8f65963266a3..3bc804212a99 100644 --- a/drivers/gpu/drm/i915/display/intel_fbdev.c +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c @@ -461,8 +461,6 @@ int intel_fbdev_init(struct drm_device *dev) dev_priv->fbdev = ifbdev; INIT_WORK(&dev_priv->fbdev_suspend_work, intel_fbdev_suspend_worker);
- drm_fb_helper_single_add_all_connectors(&ifbdev->helper); - return 0; }
diff --git a/drivers/gpu/drm/msm/msm_fbdev.c b/drivers/gpu/drm/msm/msm_fbdev.c index b4f44146d9de..47235f8c5922 100644 --- a/drivers/gpu/drm/msm/msm_fbdev.c +++ b/drivers/gpu/drm/msm/msm_fbdev.c @@ -166,10 +166,6 @@ struct drm_fb_helper *msm_fbdev_init(struct drm_device *dev) goto fail; }
- ret = drm_fb_helper_single_add_all_connectors(helper); - if (ret) - goto fini; - /* the fw fb could be anywhere in memory */ drm_fb_helper_remove_conflicting_framebuffers(NULL, "msm", false);
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c index a3dc2ba19fb2..97dd50e2917d 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -1265,8 +1265,6 @@ nv50_mstm_destroy_connector(struct drm_dp_mst_topology_mgr *mgr,
drm_connector_unregister(&mstc->connector);
- drm_fb_helper_remove_one_connector(&drm->fbcon->helper, &mstc->connector); - drm_connector_put(&mstc->connector); }
@@ -1275,8 +1273,6 @@ nv50_mstm_register_connector(struct drm_connector *connector) { struct nouveau_drm *drm = nouveau_drm(connector->dev);
- drm_fb_helper_add_one_connector(&drm->fbcon->helper, connector); - drm_connector_register(connector); }
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c index 21fc7c63e2f7..24d543a01f43 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c +++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c @@ -562,10 +562,6 @@ nouveau_fbcon_init(struct drm_device *dev) if (ret) goto free;
- ret = drm_fb_helper_single_add_all_connectors(&fbcon->helper); - if (ret) - goto fini; - if (preferred_bpp != 8 && preferred_bpp != 16 && preferred_bpp != 32) { if (drm->client.device.info.ram_size <= 32 * 1024 * 1024) preferred_bpp = 8; diff --git a/drivers/gpu/drm/omapdrm/omap_fbdev.c b/drivers/gpu/drm/omapdrm/omap_fbdev.c index eba57ac31cc6..09a84919ef73 100644 --- a/drivers/gpu/drm/omapdrm/omap_fbdev.c +++ b/drivers/gpu/drm/omapdrm/omap_fbdev.c @@ -246,10 +246,6 @@ void omap_fbdev_init(struct drm_device *dev) if (ret) goto fail;
- ret = drm_fb_helper_single_add_all_connectors(helper); - if (ret) - goto fini; - ret = drm_fb_helper_initial_config(helper, 32); if (ret) goto fini; diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c index 1c02cd771d52..cf3156a65fc1 100644 --- a/drivers/gpu/drm/radeon/radeon_fb.c +++ b/drivers/gpu/drm/radeon/radeon_fb.c @@ -358,10 +358,6 @@ int radeon_fbdev_init(struct radeon_device *rdev) if (ret) goto free;
- ret = drm_fb_helper_single_add_all_connectors(&rfbdev->helper); - if (ret) - goto fini; - /* disable all the possible outputs/crtcs before entering KMS mode */ drm_helper_disable_unused_functions(rdev->ddev);
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c index 6ad4cce17089..2fdc455c4ad7 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c @@ -132,13 +132,6 @@ int rockchip_drm_fbdev_init(struct drm_device *dev) return ret; }
- ret = drm_fb_helper_single_add_all_connectors(helper); - if (ret < 0) { - DRM_DEV_ERROR(dev->dev, - "Failed to add connectors - %d.\n", ret); - goto err_drm_fb_helper_fini; - } - ret = drm_fb_helper_initial_config(helper, PREFERRED_BPP); if (ret < 0) { DRM_DEV_ERROR(dev->dev, diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c index feefe62be8dd..b8a328f53862 100644 --- a/drivers/gpu/drm/tegra/fb.c +++ b/drivers/gpu/drm/tegra/fb.c @@ -321,12 +321,6 @@ static int tegra_fbdev_init(struct tegra_fbdev *fbdev, return err; }
- err = drm_fb_helper_single_add_all_connectors(&fbdev->base); - if (err < 0) { - dev_err(drm->dev, "failed to add connectors: %d\n", err); - goto fini; - } - err = drm_fb_helper_initial_config(&fbdev->base, preferred_bpp); if (err < 0) { dev_err(drm->dev, "failed to set initial configuration: %d\n",
On Mon, Mar 2, 2020 at 8:09 AM Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com wrote:
Reviewed-by: Alex Deucher alexander.deucher@amd.com
nouveau_drm pointer is not getting used anymore in nv50_mstm_{register,destroy}_connector functions, hence remove it.
This fixes below warning.
drivers/gpu/drm/nouveau/dispnv50/disp.c: In function ‘nv50_mstm_destroy_connector’: drivers/gpu/drm/nouveau/dispnv50/disp.c:1263:22: warning: unused variable ‘drm’ [-Wunused-variable] struct nouveau_drm *drm = nouveau_drm(connector->dev); ^~~ drivers/gpu/drm/nouveau/dispnv50/disp.c: In function ‘nv50_mstm_register_connector’: drivers/gpu/drm/nouveau/dispnv50/disp.c:1274:22: warning: unused variable ‘drm’ [-Wunused-variable] struct nouveau_drm *drm = nouveau_drm(connector->dev); ^~~
Signed-off-by: Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com --- drivers/gpu/drm/nouveau/dispnv50/disp.c | 3 --- 1 file changed, 3 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c index 97dd50e2917d..4e164ad8003f 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -1260,7 +1260,6 @@ static void nv50_mstm_destroy_connector(struct drm_dp_mst_topology_mgr *mgr, struct drm_connector *connector) { - struct nouveau_drm *drm = nouveau_drm(connector->dev); struct nv50_mstc *mstc = nv50_mstc(connector);
drm_connector_unregister(&mstc->connector); @@ -1271,8 +1270,6 @@ nv50_mstm_destroy_connector(struct drm_dp_mst_topology_mgr *mgr, static void nv50_mstm_register_connector(struct drm_connector *connector) { - struct nouveau_drm *drm = nouveau_drm(connector->dev); - drm_connector_register(connector); }
Hi Pankaj,
Thank you for the patch.
On Mon, Mar 02, 2020 at 06:26:46PM +0530, Pankaj Bharadiya wrote:
As commented on 7/9, you should squash this with the patch that introduces the warnings.
On Mon, 2020-03-02 at 15:30 +0200, Laurent Pinchart wrote:
Agreed, with the patches squashed you can count this as:
Reviewed-by: Lyude Paul lyude@redhat.com
fwiw - completely optional but if you'd like, you can probably also go ahead and remove drm_dp_mst_topology_mgr_cbs.register_connector and drm_dp_mst_topology_mgr_cbs.destroy_connector and replace them with open- coding, since those callbacks are literally identical amongst every driver and don't do anything other then call drm_connector_register()/drm_connector_unregister()/drm_connector_put().
drm_device pointer is not getting used in tc358764_detach() anymore, hence remove it.
This fixes below warning.
drivers/gpu/drm/bridge/tc358764.c: In function ‘tc358764_detach’: drivers/gpu/drm/bridge/tc358764.c:386:21: warning: unused variable ‘drm’ [-Wunused-variable] struct drm_device *drm = bridge->dev; ^~~
Signed-off-by: Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com --- drivers/gpu/drm/bridge/tc358764.c | 1 - 1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/tc358764.c b/drivers/gpu/drm/bridge/tc358764.c index 530342dd4a34..5ac1430fab04 100644 --- a/drivers/gpu/drm/bridge/tc358764.c +++ b/drivers/gpu/drm/bridge/tc358764.c @@ -383,7 +383,6 @@ static int tc358764_attach(struct drm_bridge *bridge, static void tc358764_detach(struct drm_bridge *bridge) { struct tc358764 *ctx = bridge_to_tc358764(bridge); - struct drm_device *drm = bridge->dev;
drm_connector_unregister(&ctx->connector); drm_panel_detach(ctx->panel);
Hi Pankaj,
Thank you for the patch.
You can squash this with the patch that introduced the issue in the same series. Otherwise we will be left with a compilation breakage in the history, which could be annoying when bisecting issues.
On Mon, Mar 02, 2020 at 06:26:47PM +0530, Pankaj Bharadiya wrote:
drm_fb_helper_single_add_all_connectors(), drm_fb_helper_add_one_connector() and drm_fb_helper_remove_one_connector() doesn't keep an array of connectors anymore and are just dummy. Now we have no callers to these functions hence remove them.
Signed-off-by: Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com --- include/drm/drm_fb_helper.h | 21 --------------------- 1 file changed, 21 deletions(-)
diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h index 62e8dda6d1d1..208dbf87afa3 100644 --- a/include/drm/drm_fb_helper.h +++ b/include/drm/drm_fb_helper.h @@ -451,27 +451,6 @@ drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp)
#endif
-/* TODO: There's a todo entry to remove these three */ -static inline int -drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper) -{ - return 0; -} - -static inline int -drm_fb_helper_add_one_connector(struct drm_fb_helper *fb_helper, - struct drm_connector *connector) -{ - return 0; -} - -static inline int -drm_fb_helper_remove_one_connector(struct drm_fb_helper *fb_helper, - struct drm_connector *connector) -{ - return 0; -} - /** * drm_fb_helper_remove_conflicting_framebuffers - remove firmware-configured framebuffers * @a: memory range, users of which are to be removed
Hi Pankaj,
Thank you for the patch.
On Mon, Mar 02, 2020 at 06:26:48PM +0530, Pankaj Bharadiya wrote:
drm_fb_helper_single_add_all_connectors(), drm_fb_helper_add_one_connector() and drm_fb_helper_remove_one_connector() doesn't keep an array of
s/doesn't/don't/
I like this :-)
Reviewed-by: Laurent Pinchart laurent.pinchart@ideasonboard.com
On Mon, Mar 2, 2020 at 8:09 AM Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com wrote:
Reviewed-by: Alex Deucher alexander.deucher@amd.com
Remove completed drm_fb_helper tasks from todo list.
Signed-off-by: Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com --- Documentation/gpu/todo.rst | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst index ccf5e8e34222..98d8782e1440 100644 --- a/Documentation/gpu/todo.rst +++ b/Documentation/gpu/todo.rst @@ -362,17 +362,10 @@ Level: Starter drm_fb_helper tasks -------------------
-- drm_fb_helper_restore_fbdev_mode_unlocked() should call restore_fbdev_mode() - not the _force variant so it can bail out if there is a master. But first - these igt tests need to be fixed: kms_fbcon_fbt@psr and - kms_fbcon_fbt@psr-suspend. - -- The max connector argument for drm_fb_helper_init() isn't used anymore and - can be removed. - -- The helper doesn't keep an array of connectors anymore so these can be - removed: drm_fb_helper_single_add_all_connectors(), - drm_fb_helper_add_one_connector() and drm_fb_helper_remove_one_connector(). +drm_fb_helper_restore_fbdev_mode_unlocked() should call restore_fbdev_mode() +not the _force variant so it can bail out if there is a master. But first +these igt tests need to be fixed: kms_fbcon_fbt@psr and +kms_fbcon_fbt@psr-suspend.
Level: Intermediate
Hi Pankaj,
Thank you for the patch.
On Mon, Mar 02, 2020 at 06:26:49PM +0530, Pankaj Bharadiya wrote:
No need to reflow, you can keep the first list entry as-is and just remove the next two. With this fixed,
Reviewed-by: Laurent Pinchart laurent.pinchart@ideasonboard.com
Level: Intermediate
On Mon, Mar 02, 2020 at 03:29:42PM +0200, Laurent Pinchart wrote:
This one here is also done already, see
commit 64914da24ea95d2b2f7017d014d74c26005d8780 Author: Daniel Vetter daniel.vetter@ffwll.ch Date: Tue Feb 4 16:01:43 2020 +0100
drm/fbdev-helper: don't force restores
So you can delet the entire todo entry completely.
btw would be good to list the patches that fixed the other ones too, if you can find them quickly in the logfiles. -Daniel
On Mon, 2 Mar 2020 at 13:08, Pankaj Bharadiya pankaj.laxminarayan.bharadiya@intel.com wrote:
With 6/9 and 7/9 squashed into 1/9, as suggested by Laurent + the wrapping retained as-is, the series is: Reviewed-by: Emil Velikov emil.velikov@collabora.com
-Emil P.S. I'm loving the diff stat :-)
On Mon, 2 Mar 2020 at 15:58, Emil Velikov emil.l.velikov@gmail.com wrote:
Oops s;into 1/9;respective the patches;g
-Emil
dri-devel@lists.freedesktop.org