linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] cg*: New framebuffer_alloc API and class_dev changes
@ 2003-09-15 19:42 Kronos
  2003-09-15 23:27 ` David S. Miller
  0 siblings, 1 reply; 5+ messages in thread
From: Kronos @ 2003-09-15 19:42 UTC (permalink / raw)
  To: davem; +Cc: linux-fbdev-devel, James Simmons

Hi,
this patch converts driver/video/cg*.c to framebuffer_alloc:

======== drivers/video/cg14.c 1.10 ========
D 1.10 03/09/13 22:59:40+02:00 kronos@kronoz.cjb.net 11 10 50/49/527
P drivers/video/cg14.c
C switch to framebuffer_alloc
------------------------------------------------

===== drivers/video/cg14.c 1.9 vs 1.10 =====
--- 1.9/drivers/video/cg14.c	Fri Aug 22 08:34:52 2003
+++ 1.10/drivers/video/cg14.c	Sat Sep 13 22:59:40 2003
@@ -35,6 +35,7 @@
 static int cg14_ioctl(struct inode *, struct file *, unsigned int,
 		      unsigned long, struct fb_info *);
 static int cg14_pan_display(struct fb_var_screeninfo *, struct fb_info *);
+static void release_cg14fb(struct fb_info *info);
 
 /*
  *  Frame buffer operations
@@ -204,6 +205,7 @@
 	int			mode;
 	int			ramsize;
 	struct sbus_dev		*sdev;
+	struct fb_info		*info;
 	struct list_head	list;
 };
 
@@ -386,16 +388,12 @@
 	{ 0,			0,			0		    }
 };
 
-struct all_info {
-	struct fb_info info;
-	struct cg14_par par;
-	struct list_head list;
-};
 static LIST_HEAD(cg14_list);
 
 static void cg14_init_one(struct sbus_dev *sdev, int node, int parent_node)
 {
-	struct all_info *all;
+	struct fb_info *info;
+	struct cg14_par *par; 
 	unsigned long phys, rphys;
 	u32 bases[6];
 	int is_8mb, linebytes, i;
@@ -413,70 +411,72 @@
 		}
 	}
 
-	all = kmalloc(sizeof(*all), GFP_KERNEL);
-	if (!all) {
+	info = framebuffer_alloc(sizeof(struct cg14_par), NULL);
+	if (!info) {
 		printk(KERN_ERR "cg14: Cannot allocate memory.\n");
 		return;
 	}
-	memset(all, 0, sizeof(*all));
+	par = info->par;
+	par->info = info;
+	info->release = &release_cg14fb;
 
-	INIT_LIST_HEAD(&all->list);
+	INIT_LIST_HEAD(&par->list);
 
-	spin_lock_init(&all->par.lock);
+	spin_lock_init(&par->lock);
 
-	sbusfb_fill_var(&all->info.var, node, 8);
+	sbusfb_fill_var(&info->var, node, 8);
 
 	linebytes = prom_getintdefault(sdev->prom_node, "linebytes",
-				       all->info.var.xres);
-	all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres);
+				       info->var.xres);
+	par->fbsize = PAGE_ALIGN(linebytes * info->var.yres);
 
-	all->par.sdev = sdev;
+	par->sdev = sdev;
 	if (sdev) {
 		rphys = sdev->reg_addrs[0].phys_addr;
-		all->par.physbase = phys = sdev->reg_addrs[1].phys_addr;
-		all->par.iospace = sdev->reg_addrs[0].which_io;
+		par->physbase = phys = sdev->reg_addrs[1].phys_addr;
+		par->iospace = sdev->reg_addrs[0].which_io;
 
-		all->par.regs = (struct cg14_regs *)
+		par->regs = (struct cg14_regs *)
 			sbus_ioremap(&sdev->resource[0], 0,
 				     sizeof(struct cg14_regs),
 				     "cg14 regs");
-		all->par.clut = (struct cg14_clut *)
+		par->clut = (struct cg14_clut *)
 			sbus_ioremap(&sdev->resource[0], CG14_CLUT1,
 				     sizeof(struct cg14_clut),
 				     "cg14 clut");
-		all->par.cursor = (struct cg14_cursor *)
+		par->cursor = (struct cg14_cursor *)
 			sbus_ioremap(&sdev->resource[0], CG14_CURSORREGS,
 				     sizeof(struct cg14_cursor),
 				     "cg14 cursor");
-		all->info.screen_base = (char *)
+		info->screen_base = (char *)
 			sbus_ioremap(&sdev->resource[1], 0,
-				     all->par.fbsize, "cg14 ram");
+				     par->fbsize, "cg14 ram");
 	} else {
 		rphys = __get_phys(bases[0]);
-		all->par.physbase = phys = __get_phys(bases[1]);
-		all->par.iospace = __get_iospace(bases[0]);
-		all->par.regs = (struct cg14_regs *)(unsigned long)bases[0];
-		all->par.clut = (struct cg14_clut *)((unsigned long)bases[0] +
+		par->physbase = phys = __get_phys(bases[1]);
+		par->iospace = __get_iospace(bases[0]);
+		par->regs = (struct cg14_regs *)(unsigned long)bases[0];
+		par->clut = (struct cg14_clut *)((unsigned long)bases[0] +
 						     CG14_CLUT1);
-		all->par.cursor =
+		par->cursor =
 			(struct cg14_cursor *)((unsigned long)bases[0] +
 					       CG14_CURSORREGS);
 
-		all->info.screen_base = (char *)(unsigned long)bases[1];
+		info->screen_base = (char *)(unsigned long)bases[1];
 	}
 
 	prom_getproperty(node, "reg", (char *) &bases[0], sizeof(bases));
 	is_8mb = (bases[5] == 0x800000);
 
-	if (sizeof(all->par.mmap_map) != sizeof(__cg14_mmap_map)) {
+	if (sizeof(par->mmap_map) != sizeof(__cg14_mmap_map)) {
 		extern void __cg14_mmap_sized_wrongly(void);
 
 		__cg14_mmap_sized_wrongly();
 	}
 		
-	memcpy(&all->par.mmap_map, &__cg14_mmap_map, sizeof(all->par.mmap_map));
+	memcpy(&par->mmap_map, &__cg14_mmap_map, sizeof(par->mmap_map));
 	for (i = 0; i < CG14_MMAP_ENTRIES; i++) {
-		struct sbus_mmap_map *map = &all->par.mmap_map[i];
+		struct sbus_mmap_map *map = &par->mmap_map[i];
 
 		if (!map->size)
 			break;
@@ -488,34 +488,33 @@
 			map->size *= 2;
 	}
 
-	all->par.mode = MDI_8_PIX;
-	all->par.ramsize = (is_8mb ? 0x800000 : 0x400000);
+	par->mode = MDI_8_PIX;
+	par->ramsize = (is_8mb ? 0x800000 : 0x400000);
 
-	all->info.flags = FBINFO_FLAG_DEFAULT;
-	all->info.fbops = &cg14_ops;
-	all->info.par = &all->par;
+	info->flags = FBINFO_FLAG_DEFAULT;
+	info->fbops = &cg14_ops;
 
-	__cg14_reset(&all->par);
+	__cg14_reset(par);
 
-	if (fb_alloc_cmap(&all->info.cmap, 256, 0)) {
+	if (fb_alloc_cmap(&info->cmap, 256, 0)) {
 		printk(KERN_ERR "cg14: Could not allocate color map.\n");
-		kfree(all);
+		kfree(info);
 		return;
 	}
 
-	cg14_init_fix(&all->info, linebytes);
+	cg14_init_fix(info, linebytes);
 
-	if (register_framebuffer(&all->info) < 0) {
+	if (register_framebuffer(info) < 0) {
 		printk(KERN_ERR "cg14: Could not register framebuffer.\n");
-		fb_dealloc_cmap(&all->info.cmap);
-		kfree(all);
+		fb_dealloc_cmap(&info->cmap);
+		kfree(info);
 		return;
 	}
 
-	list_add(&all->list, &cg14_list);
+	list_add(&par->list, &cg14_list);
 
 	printk("cg14: cgfourteen at %lx:%lx\n",
-	       all->par.physbase, all->par.iospace);
+	       par->physbase, par->iospace);
 
 }
 
@@ -546,16 +545,18 @@
 	return 0;
 }
 
+static void release_cg14fb(struct fb_info *info) {
+	fb_dealloc_cmap(&info->cmap);
+}
+
 void __exit cg14_exit(void)
 {
 	struct list_head *pos, *tmp;
 
 	list_for_each_safe(pos, tmp, &cg14_list) {
-		struct all_info *all = list_entry(pos, typeof(*all), list);
+		struct cg14_par *par = list_entry(pos, typeof(*par), list);
 
-		unregister_framebuffer(&all->info);
-		fb_dealloc_cmap(&all->info.cmap);
-		kfree(all);
+		unregister_framebuffer(par->info);
 	}
 }


======== drivers/video/cg3.c 1.8 ========
D 1.8 03/09/13 23:03:05+02:00 kronos@kronoz.cjb.net 9 8 41/40/438
P drivers/video/cg3.c
C switch to framebuffer_alloc
------------------------------------------------

===== drivers/video/cg3.c 1.7 vs 1.8 =====
--- 1.7/drivers/video/cg3.c	Fri Aug 22 08:34:52 2003
+++ 1.8/drivers/video/cg3.c	Sat Sep 13 23:03:05 2003
@@ -36,6 +36,7 @@
 static int cg3_mmap(struct fb_info *, struct file *, struct vm_area_struct *);
 static int cg3_ioctl(struct inode *, struct file *, unsigned int,
 		     unsigned long, struct fb_info *);
+static void release_cg3fb(struct fb_info *info);
 
 /*
  *  Frame buffer operations
@@ -122,6 +123,7 @@
 	unsigned long		fbsize;
 
 	struct sbus_dev		*sdev;
+	struct fb_info		*info;
 	struct list_head	list;
 };
 
@@ -354,79 +356,76 @@
 	}
 }
 
-struct all_info {
-	struct fb_info info;
-	struct cg3_par par;
-	struct list_head list;
-};
 static LIST_HEAD(cg3_list);
 
 static void cg3_init_one(struct sbus_dev *sdev)
 {
-	struct all_info *all;
+	struct fb_info *info;
+	struct cg3_par *par;
 	int linebytes;
 
-	all = kmalloc(sizeof(*all), GFP_KERNEL);
-	if (!all) {
+	info = framebuffer_alloc(sizeof(struct cg3_par), NULL);
+	if (!info) {
 		printk(KERN_ERR "cg3: Cannot allocate memory.\n");
 		return;
 	}
-	memset(all, 0, sizeof(*all));
+	par = info->par;
+	par->info = info;
+	info->release = &release_cg3fb;
 
-	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;
 
-	all->par.physbase = sdev->reg_addrs[0].phys_addr;
+	par->physbase = sdev->reg_addrs[0].phys_addr;
 
-	sbusfb_fill_var(&all->info.var, sdev->prom_node, 8);
+	sbusfb_fill_var(&info->var, sdev->prom_node, 8);
 	if (!strcmp(sdev->prom_name, "cgRDI"))
-		all->par.flags |= CG3_FLAG_RDI;
-	if (all->par.flags & CG3_FLAG_RDI)
-		cg3_rdi_maybe_fixup_var(&all->info.var, sdev);
+		par->flags |= CG3_FLAG_RDI;
+	if (par->flags & CG3_FLAG_RDI)
+		cg3_rdi_maybe_fixup_var(&info->var, sdev);
 
 	linebytes = prom_getintdefault(sdev->prom_node, "linebytes",
-				       all->info.var.xres);
-	all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres);
+				       info->var.xres);
+	par->fbsize = PAGE_ALIGN(linebytes * info->var.yres);
 
-	all->par.regs = (struct cg3_regs *)
+	par->regs = (struct cg3_regs *)
 		sbus_ioremap(&sdev->resource[0], CG3_REGS_OFFSET,
 			     sizeof(struct cg3_regs), "cg3 regs");
 
-	all->info.flags = FBINFO_FLAG_DEFAULT;
-	all->info.fbops = &cg3_ops;
+	info->flags = FBINFO_FLAG_DEFAULT;
+	info->fbops = &cg3_ops;
 #ifdef CONFIG_SPARC32
-	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 *)
+	if (!info->screen_base)
+		info->screen_base = (char *)
 			sbus_ioremap(&sdev->resource[0], CG3_RAM_OFFSET,
-				     all->par.fbsize, "cg3 ram");
-	all->info.par = &all->par;
+				     par->fbsize, "cg3 ram");
 
-	cg3_blank(0, &all->info);
+	cg3_blank(0, info);
 
 	if (!prom_getbool(sdev->prom_node, "width"))
-		cg3_do_default_mode(&all->par);
+		cg3_do_default_mode(par);
 
-	if (fb_alloc_cmap(&all->info.cmap, 256, 0)) {
+	if (fb_alloc_cmap(&info->cmap, 256, 0)) {
 		printk(KERN_ERR "cg3: Could not allocate color map.\n");
-		kfree(all);
+		kfree(info);
 		return;
 	}
 
-	cg3_init_fix(&all->info, linebytes);
+	cg3_init_fix(info, linebytes);
 
-	if (register_framebuffer(&all->info) < 0) {
+	if (register_framebuffer(info) < 0) {
 		printk(KERN_ERR "cg3: Could not register framebuffer.\n");
-		fb_dealloc_cmap(&all->info.cmap);
-		kfree(all);
+		fb_dealloc_cmap(&info->cmap);
+		kfree(info);
 		return;
 	}
 
-	list_add(&all->list, &cg3_list);
+	list_add(&par->list, &cg3_list);
 
 	printk("cg3: %s at %lx:%lx\n",
 	       sdev->prom_name,
@@ -448,16 +447,18 @@
 	return 0;
 }
 
+static void release_cg3fb(struct fb_info *info) {
+	fb_dealloc_cmap(&info->cmap);
+}
+
 void __exit cg3_exit(void)
 {
 	struct list_head *pos, *tmp;
 
 	list_for_each_safe(pos, tmp, &cg3_list) {
-		struct all_info *all = list_entry(pos, typeof(*all), list);
+		struct cg3_par *par = list_entry(pos, typeof(*par), list);
 
-		unregister_framebuffer(&all->info);
-		fb_dealloc_cmap(&all->info.cmap);
-		kfree(all);
+		unregister_framebuffer(par->info);
 	}
 }


======== drivers/video/cg6.c 1.7 ========
D 1.7 03/09/13 23:01:59+02:00 kronos@kronoz.cjb.net 11 10 46/45/720
P drivers/video/cg6.c
C switch to framebuffer_alloc
------------------------------------------------

===== drivers/video/cg6.c 1.6 vs 1.7 =====
--- 1.6/drivers/video/cg6.c	Fri Aug 22 08:34:52 2003
+++ 1.7/drivers/video/cg6.c	Sat Sep 13 23:01:59 2003
@@ -39,6 +39,7 @@
 static int cg6_mmap(struct fb_info *, struct file *, struct vm_area_struct *);
 static int cg6_ioctl(struct inode *, struct file *, unsigned int,
 		     unsigned long, struct fb_info *);
+static void release_cg6fb(struct fb_info *info);
 
 /*
  *  Frame buffer operations
@@ -263,6 +264,7 @@
 	unsigned long		fbsize;
 
 	struct sbus_dev		*sdev;
+	struct fb_info		*info;
 	struct list_head	list;
 };
 
@@ -630,93 +632,90 @@
 	sbus_writel(tmp, &par->bt->control);
 }
 
-struct all_info {
-	struct fb_info info;
-	struct cg6_par par;
-	struct list_head list;
-};
 static LIST_HEAD(cg6_list);
 
 static void cg6_init_one(struct sbus_dev *sdev)
 {
-	struct all_info *all;
+	struct fb_info *info;
+	struct cg6_par *par;
 	int linebytes;
 
-	all = kmalloc(sizeof(*all), GFP_KERNEL);
-	if (!all) {
+	info = framebuffer_alloc(sizeof(struct cg6_par), NULL);
+	if (!info) {
 		printk(KERN_ERR "cg6: Cannot allocate memory.\n");
 		return;
 	}
-	memset(all, 0, sizeof(*all));
+	par = info->par;
+	par->info = info;
+	par->release = &release_cg6fb;
 
-	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;
 
-	all->par.physbase = sdev->reg_addrs[0].phys_addr;
+	par->physbase = sdev->reg_addrs[0].phys_addr;
 
-	sbusfb_fill_var(&all->info.var, sdev->prom_node, 8);
+	sbusfb_fill_var(&info->var, sdev->prom_node, 8);
 
 	linebytes = prom_getintdefault(sdev->prom_node, "linebytes",
-				       all->info.var.xres);
-	all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres);
+				       info->var.xres);
+	par->fbsize = PAGE_ALIGN(linebytes * info->var.yres);
 	if (prom_getbool(sdev->prom_node, "dblbuf"))
-		all->par.fbsize *= 4;
+		par->fbsize *= 4;
 
-	all->par.fbc = (struct cg6_fbc *)
+	par->fbc = (struct cg6_fbc *)
 		sbus_ioremap(&sdev->resource[0], CG6_FBC_OFFSET,
 			     4096, "cgsix fbc");
-	all->par.tec = (struct cg6_tec *)
+	par->tec = (struct cg6_tec *)
 		sbus_ioremap(&sdev->resource[0], CG6_TEC_OFFSET,
 			     sizeof(struct cg6_tec), "cgsix tec");
-	all->par.thc = (struct cg6_thc *)
+	par->thc = (struct cg6_thc *)
 		sbus_ioremap(&sdev->resource[0], CG6_THC_OFFSET,
 			     sizeof(struct cg6_thc), "cgsix thc");
-	all->par.bt = (struct bt_regs *)
+	par->bt = (struct bt_regs *)
 		sbus_ioremap(&sdev->resource[0], CG6_BROOKTREE_OFFSET,
 			     sizeof(struct bt_regs), "cgsix dac");
-	all->par.fhc = (u32 *)
+	par->fhc = (u32 *)
 		sbus_ioremap(&sdev->resource[0], CG6_FHC_OFFSET,
 			     sizeof(u32), "cgsix fhc");
 
-	all->info.flags = FBINFO_FLAG_DEFAULT;
-	all->info.fbops = &cg6_ops;
+	info->flags = FBINFO_FLAG_DEFAULT;
+	info->fbops = &cg6_ops;
 #ifdef CONFIG_SPARC32
-	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 *)
+	if (!info->screen_base)
+		info->screen_base = (char *)
 			sbus_ioremap(&sdev->resource[0], CG6_RAM_OFFSET,
-				     all->par.fbsize, "cgsix ram");
-	all->info.par = &all->par;
+				     par->fbsize, "cgsix ram");
 
-	all->info.var.accel_flags = FB_ACCELF_TEXT;
+	info->var.accel_flags = FB_ACCELF_TEXT;
 
-	cg6_bt_init(&all->par);
-	cg6_chip_init(&all->info);
-	cg6_blank(0, &all->info);
+	cg6_bt_init(par);
+	cg6_chip_init(info);
+	cg6_blank(0, info);
 
-	if (fb_alloc_cmap(&all->info.cmap, 256, 0)) {
+	if (fb_alloc_cmap(&info->cmap, 256, 0)) {
 		printk(KERN_ERR "cg6: Could not allocate color map.\n");
-		kfree(all);
+		kfree(info);
 		return;
 	}
 
-	cg6_init_fix(&all->info, linebytes);
+	cg6_init_fix(info, linebytes);
 
-	if (register_framebuffer(&all->info) < 0) {
+	if (register_framebuffer(info) < 0) {
 		printk(KERN_ERR "cg6: Could not register framebuffer.\n");
-		fb_dealloc_cmap(&all->info.cmap);
-		kfree(all);
+		fb_dealloc_cmap(&info->cmap);
+		kfree(info);
 		return;
 	}
 
-	list_add(&all->list, &cg6_list);
+	list_add(&par->list, &cg6_list);
 
 	printk("cg6: CGsix [%s] at %lx:%lx\n",
-	       all->info.fix.id,
+	       info->fix.id,
 	       (long) sdev->reg_addrs[0].which_io,
 	       (long) sdev->reg_addrs[0].phys_addr);
 }
@@ -735,16 +734,18 @@
 	return 0;
 }
 
+static void release_cg6fb(struct fb_info *info) {
+	fb_dealloc_cmap(&info->cmap);
+}
+
 void __exit cg6_exit(void)
 {
 	struct list_head *pos, *tmp;
 
 	list_for_each_safe(pos, tmp, &cg6_list) {
-		struct all_info *all = list_entry(pos, typeof(*all), list);
+		struct cg6_par *par = list_entry(pos, typeof(*par), list);
 
-		unregister_framebuffer(&all->info);
-		fb_dealloc_cmap(&all->info.cmap);
-		kfree(all);
+		unregister_framebuffer(par->info);
 	}
 }


Luca
-- 
Reply-To: kronos@kronoz.cjb.net
Home: http://kronoz.cjb.net
"Di tutte le perversioni sessuali, la castita` e` la piu` strana".
Anatole France


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] cg*: New framebuffer_alloc API and class_dev changes
  2003-09-15 19:42 [PATCH] cg*: New framebuffer_alloc API and class_dev changes Kronos
@ 2003-09-15 23:27 ` David S. Miller
  2003-09-16 13:46   ` Kronos
  0 siblings, 1 reply; 5+ messages in thread
From: David S. Miller @ 2003-09-15 23:27 UTC (permalink / raw)
  To: kronos; +Cc: linux-fbdev-devel, jsimmons

On Mon, 15 Sep 2003 21:42:59 +0200
Kronos <kronos@kronoz.cjb.net> wrote:

> this patch converts driver/video/cg*.c to framebuffer_alloc:

This patch also does not apply cleanly to current 2.6.x sources.

Are these patches against some special set of framebuffer changes
that are not in 2.6.x yet?

If so, could you _PLEASE_ indicate this when you send patches
directly to me?  When I see a patch that I'm sent directly, I
expect that this means I should apply it to my tree and that the
patch works with current vanilla sources.


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] cg*: New framebuffer_alloc API and class_dev changes
  2003-09-15 23:27 ` David S. Miller
@ 2003-09-16 13:46   ` Kronos
  2003-09-17  1:21     ` David S. Miller
  0 siblings, 1 reply; 5+ messages in thread
From: Kronos @ 2003-09-16 13:46 UTC (permalink / raw)
  To: David S. Miller; +Cc: linux-fbdev-devel, jsimmons

Il Mon, Sep 15, 2003 at 04:27:05PM -0700, David S. Miller ha scritto: 
> > this patch converts driver/video/cg*.c to framebuffer_alloc:
> 
> This patch also does not apply cleanly to current 2.6.x sources.
> 
> Are these patches against some special set of framebuffer changes
> that are not in 2.6.x yet?

They are against James Simmons bk tree. You can find core changes on
fbdev or here:

http://web.tiscali.it/kronoz/linux/fbdev-class_dev-fbmem.c.diff

> If so, could you _PLEASE_ indicate this when you send patches
> directly to me?  

Yes sorry. Mails were created by a script, I've been too vague.

Btw, how do the patches look?

Luca
-- 
Reply-To: kronos@kronoz.cjb.net
Home: http://kronoz.cjb.net
Ci sono due cose che l'uomo non puo` nascondere:
essere ubriaco ed essere innamorato.


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] cg*: New framebuffer_alloc API and class_dev changes
  2003-09-16 13:46   ` Kronos
@ 2003-09-17  1:21     ` David S. Miller
  2003-09-17 16:37       ` Kronos
  0 siblings, 1 reply; 5+ messages in thread
From: David S. Miller @ 2003-09-17  1:21 UTC (permalink / raw)
  To: kronos; +Cc: linux-fbdev-devel, jsimmons

On Tue, 16 Sep 2003 15:46:03 +0200
Kronos <kronos@kronoz.cjb.net> wrote:

> Btw, how do the patches look?

They look fine, just push them into James tree.


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] cg*: New framebuffer_alloc API and class_dev changes
  2003-09-17  1:21     ` David S. Miller
@ 2003-09-17 16:37       ` Kronos
  0 siblings, 0 replies; 5+ messages in thread
From: Kronos @ 2003-09-17 16:37 UTC (permalink / raw)
  To: David S. Miller; +Cc: linux-fbdev-devel, jsimmons

Il Tue, Sep 16, 2003 at 06:21:46PM -0700, David S. Miller ha scritto: 
> On Tue, 16 Sep 2003 15:46:03 +0200
> Kronos <kronos@kronoz.cjb.net> wrote:
> 
> > Btw, how do the patches look?
> 
> They look fine, just push them into James tree.

As Russell King pointed out there was a flaw in that API. I reworked it
a bit. I've patched sparc drivers:

drivers/video/bw2.c
drivers/video/cg14.c
drivers/video/cg3.c
drivers/video/cg6.c
drivers/video/ffb.c
drivers/video/leo.c
drivers/video/p9100.c
drivers/video/tcx.c

Patches are almost  identical to the ones  I sent to you,  but I removed
the release_* callback. If you want to  take a look I've just pushed the
changeset:

bk://mesa3d@bkbits.net/fbdev-2.5

Luca
-- 
Reply-To: kronos@kronoz.cjb.net
Home: http://kronoz.cjb.net
"Fare l'amore con dieci donne e` fantastico, soprattutto perche` ti
 presentano un sacco di amiche." -- Fabio Di Iorio


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-09-17 16:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-15 19:42 [PATCH] cg*: New framebuffer_alloc API and class_dev changes Kronos
2003-09-15 23:27 ` David S. Miller
2003-09-16 13:46   ` Kronos
2003-09-17  1:21     ` David S. Miller
2003-09-17 16:37       ` Kronos

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).