[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 4/8] xen/vesa: use the new fb_* functions
On Mon, 10 Dec 2012, Jan Beulich wrote: > >>> On 07.12.12 at 19:02, Stefano Stabellini > >>> <stefano.stabellini@xxxxxxxxxxxxx> > wrote: > > Make use of the framebuffer functions previously introduced. > > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > > --- > > xen/drivers/video/vesa.c | 179 > > +++++++--------------------------------------- > > 1 files changed, 26 insertions(+), 153 deletions(-) > > > > diff --git a/xen/drivers/video/vesa.c b/xen/drivers/video/vesa.c > > index aaf8b23..778cfdf 100644 > > --- a/xen/drivers/video/vesa.c > > +++ b/xen/drivers/video/vesa.c > > @@ -13,20 +13,15 @@ > > #include <asm/io.h> > > #include <asm/page.h> > > #include "font.h" > > +#include "fb.h" > > > > #define vlfb_info vga_console_info.u.vesa_lfb > > -#define text_columns (vlfb_info.width / font->width) > > -#define text_rows (vlfb_info.height / font->height) > > > > -static void vesa_redraw_puts(const char *s); > > -static void vesa_scroll_puts(const char *s); > > +static void lfb_flush(void); > > > > -static unsigned char *lfb, *lbuf, *text_buf; > > -static unsigned int *__initdata line_len; > > +static unsigned char *lfb; > > What's the point of retaining this, when ... > > > static const struct font_desc *font; > > static bool_t vga_compat; > > -static unsigned int pixel_on; > > -static unsigned int xpos, ypos; > > > > static unsigned int vram_total; > > integer_param("vesa-ram", vram_total); > > @@ -87,29 +82,26 @@ void __init vesa_early_init(void) > > > > void __init vesa_init(void) > > { > > - if ( !font ) > > - goto fail; > > - > > - lbuf = xmalloc_bytes(vlfb_info.bytes_per_line); > > - if ( !lbuf ) > > - goto fail; > > + struct fb_prop fbp; > > > > - text_buf = xzalloc_bytes(text_columns * text_rows); > > - if ( !text_buf ) > > - goto fail; > > + if ( !font ) > > + return; > > > > - line_len = xzalloc_array(unsigned int, text_columns); > > - if ( !line_len ) > > - goto fail; > > + fbp.font = font; > > + fbp.bits_per_pixel = vlfb_info.bits_per_pixel; > > + fbp.bytes_per_line = vlfb_info.bytes_per_line; > > + fbp.width = vlfb_info.width; > > + fbp.height = vlfb_info.height; > > + fbp.flush = lfb_flush; > > + fbp.text_columns = vlfb_info.width / font->width; > > + fbp.text_rows = vlfb_info.height / font->height; > > > > - lfb = ioremap(vlfb_info.lfb_base, vram_remap); > > + fbp.lfb = lfb = ioremap(vlfb_info.lfb_base, vram_remap); > > ... you set up the consolidated field at the same time anyway? It is used by vesa_mtrr_init and vesa_endboot. At the moment I don't store fbp in a static variable so after vesa_init returns, vesa.c doesn't have a way to retrieve it. Maybe I should introduce a "struct fb_prop fbp" static variable that replaces lfb? _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |