[PATCH 3/7] video stm/mx2x: simplify memory allocation

Sascha Hauer s.hauer at pengutronix.de
Sat Jan 15 10:10:47 EST 2011


On Sat, Jan 15, 2011 at 04:00:26PM +0100, Juergen Beisert wrote:
> Sascha Hauer wrote:
> > Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> > ---
> >  drivers/video/stm.c |   26 ++------------------------
> >  1 files changed, 2 insertions(+), 24 deletions(-)
> >
> > diff --git a/drivers/video/stm.c b/drivers/video/stm.c
> > index f0abe4c..d2add41 100644
> > --- a/drivers/video/stm.c
> > +++ b/drivers/video/stm.c
> > @@ -209,24 +209,6 @@ static inline unsigned calc_line_length(unsigned ppl,
> > unsigned bpp) return (ppl * bpp) >> 3;
> >  }
> >
> > -static int stmfb_memory_mmgt(struct fb_info *fb_info, unsigned size)
> > -{
> > -	struct imxfb_info *fbi = fb_info->priv;
> > -
> > -	if (fbi->memory_size != 0) {
> > -		free(fb_info->screen_base);
> > -		fb_info->screen_base = NULL;
> > -		fbi->memory_size = 0;
> > -	}
> > -
> > -	if (fbi->memory_size == 0) {
> > -		fb_info->screen_base = xzalloc(size);
> > -		fbi->memory_size = size;
> > -	}
> > -
> > -	return 0;
> > -}
> > -
> >  static void stmfb_enable_controller(struct fb_info *fb_info)
> >  {
> >  	struct imxfb_info *fbi = fb_info->priv;
> > @@ -308,7 +290,6 @@ static int stmfb_activate_var(struct fb_info *fb_info)
> >  	struct imx_fb_videomode *pdata = fbi->pdata;
> >  	struct fb_videomode *mode = fb_info->mode;
> >  	uint32_t reg;
> > -	int ret;
> >  	unsigned size;
> >
> >  	/*
> > @@ -317,11 +298,8 @@ static int stmfb_activate_var(struct fb_info *fb_info)
> >  	size = calc_line_length(mode->xres, fb_info->bits_per_pixel) *
> >  		mode->yres;
> >
> > -	ret = stmfb_memory_mmgt(fb_info, size);
> > -	if (ret != 0) {
> > -		dev_err(fbi->hw_dev, "Cannot allocate framebuffer memory\n");
> > -		return ret;
> > -	}
> > +	fb_info->screen_base = xrealloc(fb_info->screen_base, size);
> > +	fbi->memory_size = size;
> >
> >  	/** @todo ensure HCLK is active at this point of time! */
> 
> Maybe we should change here from the x-functions to an allocation routine that 
> returns NULL when there is not enough memory. When you define the malloc area 
> to small and setup an SXGA resolution with 16 bit colour depth, barebox 
> should IMHO bark with a useful error message than rebooting...

Agreed.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list