diff mbox

[06/16] drm/fb-helper: inline drm_fb_helper_single_add_all_connectors

Message ID 1359044448-3861-7-git-send-email-daniel.vetter@ffwll.ch (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Vetter Jan. 24, 2013, 4:20 p.m. UTC
All drivers call this right after drm_fb_helper_init, and the only
thing this function does is allocate a bit of memory and set up a
bunch of pointers. No reason at all the keep this as a separate step.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/ast/ast_fb.c              |    1 -
 drivers/gpu/drm/cirrus/cirrus_fbdev.c     |    1 -
 drivers/gpu/drm/drm_fb_cma_helper.c       |    7 -------
 drivers/gpu/drm/drm_fb_helper.c           |    9 ++++++---
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c |    7 -------
 drivers/gpu/drm/gma500/framebuffer.c      |    1 -
 drivers/gpu/drm/i915/intel_fb.c           |    2 --
 drivers/gpu/drm/mgag200/mgag200_fb.c      |    1 -
 drivers/gpu/drm/nouveau/nouveau_fbcon.c   |    2 --
 drivers/gpu/drm/radeon/radeon_fb.c        |    1 -
 drivers/gpu/drm/udl/udl_fb.c              |    1 -
 drivers/staging/omapdrm/omap_fbdev.c      |    1 -
 include/drm/drm_fb_helper.h               |    1 -
 13 files changed, 6 insertions(+), 29 deletions(-)

Comments

Dave Airlie Jan. 24, 2013, 9:27 p.m. UTC | #1
On Fri, Jan 25, 2013 at 2:20 AM, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> All drivers call this right after drm_fb_helper_init, and the only
> thing this function does is allocate a bit of memory and set up a
> bunch of pointers. No reason at all the keep this as a separate step.
>
Doesn't this stop future drivers from only adding a subset of outputs
to the fb layer?

It's kinda funny in patch 9 you give choice to drivers, and in this
patch you take away a different choice :-)

Dave.
Daniel Vetter Jan. 24, 2013, 10:50 p.m. UTC | #2
On Thu, Jan 24, 2013 at 10:27 PM, Dave Airlie <airlied@gmail.com> wrote:
> On Fri, Jan 25, 2013 at 2:20 AM, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>> All drivers call this right after drm_fb_helper_init, and the only
>> thing this function does is allocate a bit of memory and set up a
>> bunch of pointers. No reason at all the keep this as a separate step.
>>
> Doesn't this stop future drivers from only adding a subset of outputs
> to the fb layer?

Oh, I kinda didn't come up with the idea that this is something people
actually want ... I've also killed the choice no driver opted for to
be able to resize the fb. Imo the usecase for fbdev is to show boot
messages, for which you don't need more. And oopses, which I'm unsure
whether it's really that good at.

But I'm not terribly attached to this, so can easily take it out again.

> It's kinda funny in patch 9 you give choice to drivers, and in this
> patch you take away a different choice :-)

Well, it's the choice I care about for drm/i915. I admit, I'm biased ;-)
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/ast/ast_fb.c b/drivers/gpu/drm/ast/ast_fb.c
index 3e6584b..4330784 100644
--- a/drivers/gpu/drm/ast/ast_fb.c
+++ b/drivers/gpu/drm/ast/ast_fb.c
@@ -313,7 +313,6 @@  int ast_fbdev_init(struct drm_device *dev)
 		return ret;
 	}
 
-	drm_fb_helper_single_add_all_connectors(&afbdev->helper);
 	drm_fb_helper_initial_config(&afbdev->helper, 32);
 	return 0;
 }
diff --git a/drivers/gpu/drm/cirrus/cirrus_fbdev.c b/drivers/gpu/drm/cirrus/cirrus_fbdev.c
index 3daea0f..d9312ee 100644
--- a/drivers/gpu/drm/cirrus/cirrus_fbdev.c
+++ b/drivers/gpu/drm/cirrus/cirrus_fbdev.c
@@ -290,7 +290,6 @@  int cirrus_fbdev_init(struct cirrus_device *cdev)
 		kfree(gfbdev);
 		return ret;
 	}
-	drm_fb_helper_single_add_all_connectors(&gfbdev->helper);
 	drm_fb_helper_initial_config(&gfbdev->helper, bpp_sel);
 
 	return 0;
diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
index 1b6ba2d..1ba09ba 100644
--- a/drivers/gpu/drm/drm_fb_cma_helper.c
+++ b/drivers/gpu/drm/drm_fb_cma_helper.c
@@ -326,13 +326,6 @@  struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
 		goto err_free;
 	}
 
-	ret = drm_fb_helper_single_add_all_connectors(helper);
-	if (ret < 0) {
-		dev_err(dev->dev, "Failed to add connectors.\n");
-		goto err_drm_fb_helper_fini;
-
-	}
-
 	ret = drm_fb_helper_initial_config(helper, preferred_bpp);
 	if (ret < 0) {
 		dev_err(dev->dev, "Failed to set inital hw configuration.\n");
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index ce816a5..4549512 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -55,7 +55,7 @@  static LIST_HEAD(kernel_fb_helper_list);
  */
 
 /* simple single crtc case helper function */
-int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper)
+static int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper)
 {
 	struct drm_device *dev = fb_helper->dev;
 	struct drm_connector *connector;
@@ -80,7 +80,6 @@  fail:
 	fb_helper->connector_count = 0;
 	return -ENOMEM;
 }
-EXPORT_SYMBOL(drm_fb_helper_single_add_all_connectors);
 
 static int drm_fb_helper_parse_command_line(struct drm_fb_helper *fb_helper)
 {
@@ -426,7 +425,7 @@  int drm_fb_helper_init(struct drm_device *dev,
 		       int crtc_count, int max_conn_count)
 {
 	struct drm_crtc *crtc;
-	int i;
+	int i, ret;
 
 	fb_helper->dev = dev;
 
@@ -461,6 +460,10 @@  int drm_fb_helper_init(struct drm_device *dev,
 		i++;
 	}
 
+	ret = drm_fb_helper_single_add_all_connectors(fb_helper);
+	if (ret)
+		goto out_free;
+
 	return 0;
 out_free:
 	drm_fb_helper_crtc_free(fb_helper);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index 086d0f7..79f8903 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -288,13 +288,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_ERROR("failed to register drm_fb_helper_connector.\n");
-		goto err_setup;
-
-	}
-
 	ret = drm_fb_helper_initial_config(helper, PREFERRED_BPP);
 	if (ret < 0) {
 		DRM_ERROR("failed to set up hw configuration.\n");
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index c1ef37e..96ebf4f 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -615,7 +615,6 @@  int psb_fbdev_init(struct drm_device *dev)
 	drm_fb_helper_init(dev, &fbdev->psb_fb_helper, dev_priv->ops->crtcs,
 							INTELFB_CONN_LIMIT);
 
-	drm_fb_helper_single_add_all_connectors(&fbdev->psb_fb_helper);
 	drm_fb_helper_initial_config(&fbdev->psb_fb_helper, 32);
 	return 0;
 }
diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c
index 33c4f1b..302bc63 100644
--- a/drivers/gpu/drm/i915/intel_fb.c
+++ b/drivers/gpu/drm/i915/intel_fb.c
@@ -249,8 +249,6 @@  int intel_fbdev_init(struct drm_device *dev)
 		return ret;
 	}
 
-	drm_fb_helper_single_add_all_connectors(&ifbdev->helper);
-
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/mgag200/mgag200_fb.c b/drivers/gpu/drm/mgag200/mgag200_fb.c
index 5c69b43..fd5cf18 100644
--- a/drivers/gpu/drm/mgag200/mgag200_fb.c
+++ b/drivers/gpu/drm/mgag200/mgag200_fb.c
@@ -277,7 +277,6 @@  int mgag200_fbdev_init(struct mga_device *mdev)
 		kfree(mfbdev);
 		return ret;
 	}
-	drm_fb_helper_single_add_all_connectors(&mfbdev->helper);
 	drm_fb_helper_initial_config(&mfbdev->helper, 32);
 
 	return 0;
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
index d4ecb4d..74916a9 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -481,8 +481,6 @@  nouveau_fbcon_init(struct drm_device *dev)
 		return ret;
 	}
 
-	drm_fb_helper_single_add_all_connectors(&fbcon->helper);
-
 	if (pfb->ram.size <= 32 * 1024 * 1024)
 		preferred_bpp = 8;
 	else
diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c
index 515e5ee..a1ceee1 100644
--- a/drivers/gpu/drm/radeon/radeon_fb.c
+++ b/drivers/gpu/drm/radeon/radeon_fb.c
@@ -378,7 +378,6 @@  int radeon_fbdev_init(struct radeon_device *rdev)
 		return ret;
 	}
 
-	drm_fb_helper_single_add_all_connectors(&rfbdev->helper);
 	drm_fb_helper_initial_config(&rfbdev->helper, bpp_sel);
 	return 0;
 }
diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
index caa84f1..25f9bb1 100644
--- a/drivers/gpu/drm/udl/udl_fb.c
+++ b/drivers/gpu/drm/udl/udl_fb.c
@@ -582,7 +582,6 @@  int udl_fbdev_init(struct drm_device *dev)
 
 	}
 
-	drm_fb_helper_single_add_all_connectors(&ufbdev->helper);
 	drm_fb_helper_initial_config(&ufbdev->helper, bpp_sel);
 	return 0;
 }
diff --git a/drivers/staging/omapdrm/omap_fbdev.c b/drivers/staging/omapdrm/omap_fbdev.c
index 2728e37..ee1900a 100644
--- a/drivers/staging/omapdrm/omap_fbdev.c
+++ b/drivers/staging/omapdrm/omap_fbdev.c
@@ -368,7 +368,6 @@  struct drm_fb_helper *omap_fbdev_init(struct drm_device *dev)
 		goto fail;
 	}
 
-	drm_fb_helper_single_add_all_connectors(helper);
 	drm_fb_helper_initial_config(helper, 32);
 
 	priv->fbdev = helper;
diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
index ba32505..4e989dc 100644
--- a/include/drm/drm_fb_helper.h
+++ b/include/drm/drm_fb_helper.h
@@ -112,7 +112,6 @@  int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info);
 
 int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper);
 bool drm_fb_helper_initial_config(struct drm_fb_helper *fb_helper, int bpp_sel);
-int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper);
 int drm_fb_helper_debug_enter(struct fb_info *info);
 int drm_fb_helper_debug_leave(struct fb_info *info);