On Thu, Jan 24, 2013 at 11:20 AM, Daniel Vetter <daniel.vetter@xxxxxxxx> wrote: > The fb helper lost its support for reallocating an fb completely, so > no need to return special success values any more. > > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx> Reviewed-by: Rob Clark <robdclark@xxxxxxxxx> > --- > drivers/gpu/drm/ast/ast_fb.c | 21 +++----------------- > drivers/gpu/drm/cirrus/cirrus_fbdev.c | 22 +++------------------ > drivers/gpu/drm/drm_fb_cma_helper.c | 17 +--------------- > drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 30 +---------------------------- > drivers/gpu/drm/gma500/framebuffer.c | 10 +--------- > drivers/gpu/drm/i915/intel_fb.c | 21 +++----------------- > drivers/gpu/drm/mgag200/mgag200_fb.c | 22 +++------------------ > drivers/gpu/drm/nouveau/nouveau_fbcon.c | 22 +++------------------ > drivers/gpu/drm/radeon/radeon_fb.c | 21 +++----------------- > drivers/gpu/drm/udl/udl_fb.c | 22 +++------------------ > drivers/staging/omapdrm/omap_fbdev.c | 17 +--------------- > 11 files changed, 25 insertions(+), 200 deletions(-) > > diff --git a/drivers/gpu/drm/ast/ast_fb.c b/drivers/gpu/drm/ast/ast_fb.c > index 9bfd5ab..3a5a5e0 100644 > --- a/drivers/gpu/drm/ast/ast_fb.c > +++ b/drivers/gpu/drm/ast/ast_fb.c > @@ -146,9 +146,10 @@ static int astfb_create_object(struct ast_fbdev *afbdev, > return ret; > } > > -static int astfb_create(struct ast_fbdev *afbdev, > +static int astfb_create(struct drm_fb_helper *helper, > struct drm_fb_helper_surface_size *sizes) > { > + struct ast_fbdev *afbdev = (struct ast_fbdev *)helper; > struct drm_device *dev = afbdev->helper.dev; > struct drm_mode_fb_cmd2 mode_cmd; > struct drm_framebuffer *fb; > @@ -249,26 +250,10 @@ static void ast_fb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green, > *blue = ast_crtc->lut_b[regno] << 8; > } > > -static int ast_find_or_create_single(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size *sizes) > -{ > - struct ast_fbdev *afbdev = (struct ast_fbdev *)helper; > - int new_fb = 0; > - int ret; > - > - if (!helper->fb) { > - ret = astfb_create(afbdev, sizes); > - if (ret) > - return ret; > - new_fb = 1; > - } > - return new_fb; > -} > - > static struct drm_fb_helper_funcs ast_fb_helper_funcs = { > .gamma_set = ast_fb_gamma_set, > .gamma_get = ast_fb_gamma_get, > - .fb_probe = ast_find_or_create_single, > + .fb_probe = astfb_create, > }; > > static void ast_fbdev_destroy(struct drm_device *dev, > diff --git a/drivers/gpu/drm/cirrus/cirrus_fbdev.c b/drivers/gpu/drm/cirrus/cirrus_fbdev.c > index b869b8b..778a90b 100644 > --- a/drivers/gpu/drm/cirrus/cirrus_fbdev.c > +++ b/drivers/gpu/drm/cirrus/cirrus_fbdev.c > @@ -121,9 +121,10 @@ static int cirrusfb_create_object(struct cirrus_fbdev *afbdev, > return ret; > } > > -static int cirrusfb_create(struct cirrus_fbdev *gfbdev, > +static int cirrusfb_create(struct drm_fb_helper *helper, > struct drm_fb_helper_surface_size *sizes) > { > + struct cirrus_fbdev *gfbdev = (struct cirrus_fbdev *)helper; > struct drm_device *dev = gfbdev->helper.dev; > struct cirrus_device *cdev = gfbdev->helper.dev->dev_private; > struct fb_info *info; > @@ -220,23 +221,6 @@ out_iounmap: > return ret; > } > > -static int cirrus_fb_find_or_create_single(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size > - *sizes) > -{ > - struct cirrus_fbdev *gfbdev = (struct cirrus_fbdev *)helper; > - int new_fb = 0; > - int ret; > - > - if (!helper->fb) { > - ret = cirrusfb_create(gfbdev, sizes); > - if (ret) > - return ret; > - new_fb = 1; > - } > - return new_fb; > -} > - > static int cirrus_fbdev_destroy(struct drm_device *dev, > struct cirrus_fbdev *gfbdev) > { > @@ -268,7 +252,7 @@ static int cirrus_fbdev_destroy(struct drm_device *dev, > static struct drm_fb_helper_funcs cirrus_fb_helper_funcs = { > .gamma_set = cirrus_crtc_fb_gamma_set, > .gamma_get = cirrus_crtc_fb_gamma_get, > - .fb_probe = cirrus_fb_find_or_create_single, > + .fb_probe = cirrusfb_create, > }; > > int cirrus_fbdev_init(struct cirrus_device *cdev) > diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c > index fcf9fa3..69814d2 100644 > --- a/drivers/gpu/drm/drm_fb_cma_helper.c > +++ b/drivers/gpu/drm/drm_fb_cma_helper.c > @@ -275,23 +275,8 @@ err_drm_gem_cma_free_object: > return ret; > } > > -static int drm_fbdev_cma_probe(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size *sizes) > -{ > - int ret = 0; > - > - if (!helper->fb) { > - ret = drm_fbdev_cma_create(helper, sizes); > - if (ret < 0) > - return ret; > - ret = 1; > - } > - > - return ret; > -} > - > static struct drm_fb_helper_funcs drm_fb_cma_helper_funcs = { > - .fb_probe = drm_fbdev_cma_probe, > + .fb_probe = drm_fbdev_cma_create, > }; > > /** > diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c > index 77d78cd..ca70b91 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c > @@ -226,36 +226,8 @@ out: > return ret; > } > > -static int exynos_drm_fbdev_probe(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size *sizes) > -{ > - int ret = 0; > - > - DRM_DEBUG_KMS("%s\n", __FILE__); > - > - /* > - * with !helper->fb, it means that this funcion is called first time > - * and after that, the helper->fb would be used as clone mode. > - */ > - if (!helper->fb) { > - ret = exynos_drm_fbdev_create(helper, sizes); > - if (ret < 0) { > - DRM_ERROR("failed to create fbdev.\n"); > - return ret; > - } > - > - /* > - * fb_helper expects a value more than 1 if succeed > - * because register_framebuffer() should be called. > - */ > - ret = 1; > - } > - > - return ret; > -} > - > static struct drm_fb_helper_funcs exynos_drm_fb_helper_funcs = { > - .fb_probe = exynos_drm_fbdev_probe, > + .fb_probe = exynos_drm_fbdev_create, > }; > > int exynos_drm_fbdev_init(struct drm_device *dev) > diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c > index 7288b6d..f7a458c 100644 > --- a/drivers/gpu/drm/gma500/framebuffer.c > +++ b/drivers/gpu/drm/gma500/framebuffer.c > @@ -545,9 +545,7 @@ static int psbfb_probe(struct drm_fb_helper *helper, > struct psb_fbdev *psb_fbdev = (struct psb_fbdev *)helper; > struct drm_device *dev = psb_fbdev->psb_fb_helper.dev; > struct drm_psb_private *dev_priv = dev->dev_private; > - int new_fb = 0; > int bytespp; > - int ret; > > bytespp = sizes->surface_bpp / 8; > if (bytespp == 3) /* no 24bit packed */ > @@ -562,13 +560,7 @@ static int psbfb_probe(struct drm_fb_helper *helper, > sizes->surface_depth = 16; > } > > - if (!helper->fb) { > - ret = psbfb_create(psb_fbdev, sizes); > - if (ret) > - return ret; > - new_fb = 1; > - } > - return new_fb; > + return psbfb_create(psb_fbdev, sizes); > } > > static struct drm_fb_helper_funcs psb_fb_helper_funcs = { > diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c > index 302bc63..3a0d16e 100644 > --- a/drivers/gpu/drm/i915/intel_fb.c > +++ b/drivers/gpu/drm/i915/intel_fb.c > @@ -57,9 +57,10 @@ static struct fb_ops intelfb_ops = { > .fb_debug_leave = drm_fb_helper_debug_leave, > }; > > -static int intelfb_create(struct intel_fbdev *ifbdev, > +static int intelfb_create(struct drm_fb_helper *helper, > struct drm_fb_helper_surface_size *sizes) > { > + struct intel_fbdev *ifbdev = (struct intel_fbdev *)helper; > struct drm_device *dev = ifbdev->helper.dev; > struct drm_i915_private *dev_priv = dev->dev_private; > struct fb_info *info; > @@ -181,26 +182,10 @@ out: > return ret; > } > > -static int intel_fb_find_or_create_single(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size *sizes) > -{ > - struct intel_fbdev *ifbdev = (struct intel_fbdev *)helper; > - int new_fb = 0; > - int ret; > - > - if (!helper->fb) { > - ret = intelfb_create(ifbdev, sizes); > - if (ret) > - return ret; > - new_fb = 1; > - } > - return new_fb; > -} > - > static struct drm_fb_helper_funcs intel_fb_helper_funcs = { > .gamma_set = intel_crtc_fb_gamma_set, > .gamma_get = intel_crtc_fb_gamma_get, > - .fb_probe = intel_fb_find_or_create_single, > + .fb_probe = intelfb_create, > }; > > static void intel_fbdev_destroy(struct drm_device *dev, > diff --git a/drivers/gpu/drm/mgag200/mgag200_fb.c b/drivers/gpu/drm/mgag200/mgag200_fb.c > index 674f8fb..247bbcb 100644 > --- a/drivers/gpu/drm/mgag200/mgag200_fb.c > +++ b/drivers/gpu/drm/mgag200/mgag200_fb.c > @@ -121,9 +121,10 @@ static int mgag200fb_create_object(struct mga_fbdev *afbdev, > return ret; > } > > -static int mgag200fb_create(struct mga_fbdev *mfbdev, > +static int mgag200fb_create(struct drm_fb_helper *helper, > struct drm_fb_helper_surface_size *sizes) > { > + struct mga_fbdev *mfbdev = (struct mga_fbdev *)helper; > struct drm_device *dev = mfbdev->helper.dev; > struct drm_mode_fb_cmd2 mode_cmd; > struct mga_device *mdev = dev->dev_private; > @@ -210,23 +211,6 @@ out: > return ret; > } > > -static int mga_fb_find_or_create_single(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size > - *sizes) > -{ > - struct mga_fbdev *mfbdev = (struct mga_fbdev *)helper; > - int new_fb = 0; > - int ret; > - > - if (!helper->fb) { > - ret = mgag200fb_create(mfbdev, sizes); > - if (ret) > - return ret; > - new_fb = 1; > - } > - return new_fb; > -} > - > static int mga_fbdev_destroy(struct drm_device *dev, > struct mga_fbdev *mfbdev) > { > @@ -257,7 +241,7 @@ static int mga_fbdev_destroy(struct drm_device *dev, > static struct drm_fb_helper_funcs mga_fb_helper_funcs = { > .gamma_set = mga_crtc_fb_gamma_set, > .gamma_get = mga_crtc_fb_gamma_get, > - .fb_probe = mga_fb_find_or_create_single, > + .fb_probe = mgag200fb_create, > }; > > int mgag200_fbdev_init(struct mga_device *mdev) > diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c > index 7b2d231..d983371 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c > +++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c > @@ -251,9 +251,10 @@ nouveau_fbcon_zfill(struct drm_device *dev, struct nouveau_fbdev *fbcon) > } > > static int > -nouveau_fbcon_create(struct nouveau_fbdev *fbcon, > +nouveau_fbcon_create(struct drm_fb_helper *helper, > struct drm_fb_helper_surface_size *sizes) > { > + struct nouveau_fbdev *fbcon = (struct nouveau_fbdev *)helper; > struct drm_device *dev = fbcon->dev; > struct nouveau_drm *drm = nouveau_drm(dev); > struct nouveau_device *device = nv_device(drm->device); > @@ -388,23 +389,6 @@ out: > return ret; > } > > -static int > -nouveau_fbcon_find_or_create_single(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size *sizes) > -{ > - struct nouveau_fbdev *fbcon = (struct nouveau_fbdev *)helper; > - int new_fb = 0; > - int ret; > - > - if (!helper->fb) { > - ret = nouveau_fbcon_create(fbcon, sizes); > - if (ret) > - return ret; > - new_fb = 1; > - } > - return new_fb; > -} > - > void > nouveau_fbcon_output_poll_changed(struct drm_device *dev) > { > @@ -450,7 +434,7 @@ void nouveau_fbcon_gpu_lockup(struct fb_info *info) > static struct drm_fb_helper_funcs nouveau_fbcon_helper_funcs = { > .gamma_set = nouveau_fbcon_gamma_set, > .gamma_get = nouveau_fbcon_gamma_get, > - .fb_probe = nouveau_fbcon_find_or_create_single, > + .fb_probe = nouveau_fbcon_create, > }; > > > diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c > index a44b386..b6c73b6 100644 > --- a/drivers/gpu/drm/radeon/radeon_fb.c > +++ b/drivers/gpu/drm/radeon/radeon_fb.c > @@ -187,9 +187,10 @@ out_unref: > return ret; > } > > -static int radeonfb_create(struct radeon_fbdev *rfbdev, > +static int radeonfb_create(struct drm_fb_helper *helper, > struct drm_fb_helper_surface_size *sizes) > { > + struct radeon_fbdev *rfbdev = (struct radeon_fbdev *)helper; > struct radeon_device *rdev = rfbdev->rdev; > struct fb_info *info; > struct drm_framebuffer *fb = NULL; > @@ -300,22 +301,6 @@ out_unref: > return ret; > } > > -static int radeon_fb_find_or_create_single(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size *sizes) > -{ > - struct radeon_fbdev *rfbdev = (struct radeon_fbdev *)helper; > - int new_fb = 0; > - int ret; > - > - if (!helper->fb) { > - ret = radeonfb_create(rfbdev, sizes); > - if (ret) > - return ret; > - new_fb = 1; > - } > - return new_fb; > -} > - > void radeon_fb_output_poll_changed(struct radeon_device *rdev) > { > drm_fb_helper_hotplug_event(&rdev->mode_info.rfbdev->helper); > @@ -349,7 +334,7 @@ static int radeon_fbdev_destroy(struct drm_device *dev, struct radeon_fbdev *rfb > static struct drm_fb_helper_funcs radeon_fb_helper_funcs = { > .gamma_set = radeon_crtc_fb_gamma_set, > .gamma_get = radeon_crtc_fb_gamma_get, > - .fb_probe = radeon_fb_find_or_create_single, > + .fb_probe = radeonfb_create, > }; > > int radeon_fbdev_init(struct radeon_device *rdev) > diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c > index 7d40cb7..1b51579 100644 > --- a/drivers/gpu/drm/udl/udl_fb.c > +++ b/drivers/gpu/drm/udl/udl_fb.c > @@ -440,9 +440,10 @@ udl_framebuffer_init(struct drm_device *dev, > } > > > -static int udlfb_create(struct udl_fbdev *ufbdev, > +static int udlfb_create(struct drm_fb_helper *helper, > struct drm_fb_helper_surface_size *sizes) > { > + struct udl_fbdev *ufbdev = (struct udl_fbdev *)helper; > struct drm_device *dev = ufbdev->helper.dev; > struct fb_info *info; > struct device *device = &dev->usbdev->dev; > @@ -520,27 +521,10 @@ out: > return ret; > } > > -static int udl_fb_find_or_create_single(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size *sizes) > -{ > - struct udl_fbdev *ufbdev = (struct udl_fbdev *)helper; > - int new_fb = 0; > - int ret; > - > - if (!helper->fb) { > - ret = udlfb_create(ufbdev, sizes); > - if (ret) > - return ret; > - > - new_fb = 1; > - } > - return new_fb; > -} > - > static struct drm_fb_helper_funcs udl_fb_helper_funcs = { > .gamma_set = udl_crtc_fb_gamma_set, > .gamma_get = udl_crtc_fb_gamma_get, > - .fb_probe = udl_fb_find_or_create_single, > + .fb_probe = udlfb_create, > }; > > static void udl_fbdev_destroy(struct drm_device *dev, > diff --git a/drivers/staging/omapdrm/omap_fbdev.c b/drivers/staging/omapdrm/omap_fbdev.c > index 6ccaf54..11f7dcb 100644 > --- a/drivers/staging/omapdrm/omap_fbdev.c > +++ b/drivers/staging/omapdrm/omap_fbdev.c > @@ -296,25 +296,10 @@ static void omap_crtc_fb_gamma_get(struct drm_crtc *crtc, > DBG("fbdev: get gamma"); > } > > -static int omap_fbdev_probe(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size *sizes) > -{ > - int new_fb = 0; > - int ret; > - > - if (!helper->fb) { > - ret = omap_fbdev_create(helper, sizes); > - if (ret) > - return ret; > - new_fb = 1; > - } > - return new_fb; > -} > - > static struct drm_fb_helper_funcs omap_fb_helper_funcs = { > .gamma_set = omap_crtc_fb_gamma_set, > .gamma_get = omap_crtc_fb_gamma_get, > - .fb_probe = omap_fbdev_probe, > + .fb_probe = omap_fbdev_create, > }; > > static struct drm_fb_helper *get_fb(struct fb_info *fbi) > -- > 1.7.10.4 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel