From: Kronos <kr...@kr...> - 2003-09-15 19:43:46
|
Hi, this patch converts driver/video/bw2.c to framebuffer_alloc: ======== drivers/video/bw2.c 1.8 ======== D 1.8 03/09/13 00:38:35+02:00 kr...@kr... 9 8 34/38/381 P drivers/video/bw2.c C - switch to framebuffer_alloc ------------------------------------------------ ===== drivers/video/bw2.c 1.7 vs 1.8 ===== --- 1.7/drivers/video/bw2.c Fri Aug 22 08:34:52 2003 +++ 1.8/drivers/video/bw2.c Sat Sep 13 00:38:35 2003 @@ -119,6 +119,7 @@ unsigned long fbsize; struct sbus_dev *sdev; + struct fb_info *info; struct list_head list; }; @@ -284,94 +285,90 @@ } } -struct all_info { - struct fb_info info; - struct bw2_par par; - struct list_head list; -}; static LIST_HEAD(bw2_list); static void bw2_init_one(struct sbus_dev *sdev) { - struct all_info *all; + struct bw2_par *par; + struct fb_info *info; struct resource *resp; #ifdef CONFIG_SUN4 struct resource res; #endif int linebytes; - all = kmalloc(sizeof(*all), GFP_KERNEL); - if (!all) { + info = framebuffer_alloc(sizeof(struct bw2_par), NULL); + if (!info) { printk(KERN_ERR "bw2: Cannot allocate memory.\n"); return; } - memset(all, 0, sizeof(*all)); + par = info->par; + par->info = info; - INIT_LIST_HEAD(&all->list); + INIT_LIST_HEAD(&par->list); - spin_lock_init(&all->par.lock); - all->par.sdev = sdev; + spin_lock_init(&par->lock); + par->sdev = sdev; #ifdef CONFIG_SUN4 if (!sdev) { - all->par.physbase = sun4_bwtwo_physaddr; + par->physbase = sun4_bwtwo_physaddr; res.start = sun4_bwtwo_physaddr; res.end = res.start + BWTWO_REGISTER_OFFSET + sizeof(struct bw2_regs) - 1; res.flags = IORESOURCE_IO; resp = &res; - all->info.var.xres = all->info.var.xres_virtual = 1152; - all->info.var.yres = all->info.var.yres_virtual = 900; - all->info.bits_per_pixel = 1; + info->var.xres = info->var.xres_virtual = 1152; + info->info.var.yres = info->var.yres_virtual = 900; + info->info.bits_per_pixel = 1; linebytes = 1152 / 8; } else #else { if (!sdev) BUG(); - all->par.physbase = sdev->reg_addrs[0].phys_addr; + par->physbase = sdev->reg_addrs[0].phys_addr; resp = &sdev->resource[0]; - sbusfb_fill_var(&all->info.var, (sdev ? sdev->prom_node : 0), 1); + sbusfb_fill_var(&info->var, (sdev ? sdev->prom_node : 0), 1); linebytes = prom_getintdefault(sdev->prom_node, "linebytes", - all->info.var.xres); + info->var.xres); } #endif - all->par.regs = (struct bw2_regs *) + par->regs = (struct bw2_regs *) sbus_ioremap(resp, BWTWO_REGISTER_OFFSET, sizeof(struct bw2_regs), "bw2 regs"); if (sdev && !prom_getbool(sdev->prom_node, "width")) - bw2_do_default_mode(&all->par, &all->info, &linebytes); + bw2_do_default_mode(par, info, &linebytes); - all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres); + par->fbsize = PAGE_ALIGN(linebytes * info->var.yres); - all->info.flags = FBINFO_FLAG_DEFAULT; - all->info.fbops = &bw2_ops; + info->flags = FBINFO_FLAG_DEFAULT; + info->fbops = &bw2_ops; #if defined(CONFIG_SPARC32) if (sdev) - all->info.screen_base = (char *) + info->screen_base = (char *) prom_getintdefault(sdev->prom_node, "address", 0); #endif - if (!all->info.screen_base) - all->info.screen_base = (char *) - sbus_ioremap(resp, 0, all->par.fbsize, "bw2 ram"); - all->info.par = &all->par; + if (!info->screen_base) + info->screen_base = (char *) + sbus_ioremap(resp, 0, par->fbsize, "bw2 ram"); - bw2_blank(0, &all->info); + bw2_blank(0, info); - bw2_init_fix(&all->info, linebytes); + bw2_init_fix(info, linebytes); - if (register_framebuffer(&all->info) < 0) { + if (register_framebuffer(info) < 0) { printk(KERN_ERR "bw2: Could not register framebuffer.\n"); - kfree(all); + kfree(info); return; } - list_add(&all->list, &bw2_list); + list_add(&par->list, &bw2_list); printk("bw2: bwtwo at %lx:%lx\n", (long) (sdev ? sdev->reg_addrs[0].which_io : 0), - (long) all->par.physbase); + (long) par->physbase); } int __init bw2_init(void) @@ -395,10 +392,9 @@ struct list_head *pos, *tmp; list_for_each_safe(pos, tmp, &bw2_list) { - struct all_info *all = list_entry(pos, typeof(*all), list); + struct bw2_par *par = list_entry(pos, typeof(*par), list); - unregister_framebuffer(&all->info); - kfree(all); + unregister_framebuffer(par->info); } } Luca -- Reply-To: kr...@kr... Home: http://kronoz.cjb.net "I've seen things you people wouldn't believe... Attack Ships on fire off the shores of Orion. I've watched C-beams glitter in the dark off of Tanhauser Gate. All those moments will be lost in time...like tears, in rain. Time to die." -- Roy Batty (played by Rutger Hauer) |
From: David S. M. <da...@re...> - 2003-09-15 23:34:55
|
On Mon, 15 Sep 2003 21:42:46 +0200 Kronos <kr...@kr...> wrote: > this patch converts driver/video/bw2.c to framebuffer_alloc: It does not apply to current 2.6.x sources, I get rejects. |