From: Jon Smirl <jonsmirl@gmail.com>
To: linux-fbdev-devel@lists.sourceforge.net
Subject: Re: Framebuffer and non-PCI devices
Date: Sat, 19 Feb 2005 16:59:46 -0500 [thread overview]
Message-ID: <9e473391050219135923cc6455@mail.gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.62.0502191937500.3355@numbat.sonytel.be>
I started editing all of the drivers to make assigning fb_info->device
explicit. Does this look like it is useful? I was surprised some
architectures don't make use of 'struct device'. If this is
interesting there are about ten more drivers that I need to patch. I
did find several drivers which have device struct's that are not
assigning them to fb_info->device.
--
Jon Smirl
jonsmirl@gmail.com
===== drivers/video/68328fb.c 1.8 vs edited =====
--- 1.8/drivers/video/68328fb.c 2004-09-22 16:28:16 -04:00
+++ edited/drivers/video/68328fb.c 2005-02-19 15:12:20 -05:00
@@ -477,7 +477,7 @@
fb_alloc_cmap(&fb_info.cmap, 256, 0);
- if (register_framebuffer(&fb_info) < 0) {
+ if (register_framebuffer(&fb_info, NULL) < 0) {
return -EINVAL;
}
===== drivers/video/acornfb.c 1.34 vs edited =====
--- 1.34/drivers/video/acornfb.c 2004-11-07 21:13:25 -05:00
+++ edited/drivers/video/acornfb.c 2005-02-19 15:12:55 -05:00
@@ -1449,7 +1449,7 @@
if (fb_set_var(&fb_info, &fb_info.var))
printk(KERN_ERR "Acornfb: unable to set display parameters\n");
- if (register_framebuffer(&fb_info) < 0)
+ if (register_framebuffer(&fb_info, dev) < 0)
return -EINVAL;
return 0;
}
===== drivers/video/amba-clcd.c 1.5 vs edited =====
--- 1.5/drivers/video/amba-clcd.c 2004-12-30 19:00:46 -05:00
+++ edited/drivers/video/amba-clcd.c 2005-02-19 15:16:50 -05:00
@@ -414,7 +414,7 @@
printk(KERN_INFO "CLCD: %s hardware, %s display\n",
fb->board->name, fb->panel->mode.name);
- ret = register_framebuffer(&fb->fb);
+ ret = register_framebuffer(&fb->fb, &fb->dev.dev);
if (ret == 0)
goto out;
===== drivers/video/amifb.c 1.38 vs edited =====
--- 1.38/drivers/video/amifb.c 2004-11-11 03:39:04 -05:00
+++ edited/drivers/video/amifb.c 2005-02-19 15:18:36 -05:00
@@ -2438,7 +2438,7 @@
fb_alloc_cmap(&fb_info.cmap, 1<<fb_info.var.bits_per_pixel, 0);
- if (register_framebuffer(&fb_info) < 0) {
+ if (register_framebuffer(&fb_info, NULL) < 0) {
err = -EINVAL;
goto amifb_error;
}
===== drivers/video/asiliantfb.c 1.6 vs edited =====
--- 1.6/drivers/video/asiliantfb.c 2004-10-29 04:13:41 -04:00
+++ edited/drivers/video/asiliantfb.c 2005-02-19 14:35:18 -05:00
@@ -528,11 +528,6 @@
fb_alloc_cmap(&p->cmap, 256, 0);
- if (register_framebuffer(p) < 0) {
- printk(KERN_ERR "C&T 69000 framebuffer failed to register\n");
- return;
- }
-
printk(KERN_INFO "fb%d: Asiliant 69000 frame buffer (%dK RAM detected)\n",
p->node, p->fix.smem_len / 1024);
@@ -573,6 +568,10 @@
pci_write_config_dword(dp, 4, 0x02800083);
writeb(3, p->screen_base + 0x400784);
+ if (register_framebuffer(p, &dp->dev) < 0) {
+ printk(KERN_ERR "C&T 69000 framebuffer failed to register\n");
+ return -ENODEV;
+ }
init_asiliant(p, addr);
pci_set_drvdata(dp, p);
===== drivers/video/atafb.c 1.23 vs edited =====
--- 1.23/drivers/video/atafb.c 2004-05-10 07:25:55 -04:00
+++ edited/drivers/video/atafb.c 2005-02-19 15:19:34 -05:00
@@ -2806,7 +2806,7 @@
atafb_set_disp(-1, &fb_info);
do_install_cmap(0, &fb_info);
- if (register_framebuffer(&fb_info) < 0)
+ if (register_framebuffer(&fb_info, NULL) < 0)
return -EINVAL;
printk("Determined %dx%d, depth %d\n",
===== drivers/video/au1100fb.c 1.1 vs edited =====
--- 1.1/drivers/video/au1100fb.c 2005-01-31 01:33:41 -05:00
+++ edited/drivers/video/au1100fb.c 2005-02-19 15:20:23 -05:00
@@ -596,7 +596,7 @@
fbgen_do_set_var(&disp.var, 1, &fb_info.gen);
fbgen_set_disp(-1, &fb_info.gen);
fbgen_install_cmap(0, &fb_info.gen);
- if (register_framebuffer(&fb_info.gen.info) < 0)
+ if (register_framebuffer(&fb_info.gen.info, NULL) < 0)
return -EINVAL;
printk(KERN_INFO "fb%d: %s frame buffer device\n",
GET_FB_IDX(fb_info.gen.info.node),
===== drivers/video/bw2.c 1.16 vs edited =====
--- 1.16/drivers/video/bw2.c 2004-11-27 09:52:46 -05:00
+++ edited/drivers/video/bw2.c 2005-02-19 15:20:59 -05:00
@@ -366,7 +366,7 @@
bw2_init_fix(&all->info, linebytes);
- if (register_framebuffer(&all->info) < 0) {
+ if (register_framebuffer(&all->info, NULL) < 0) {
printk(KERN_ERR "bw2: Could not register framebuffer.\n");
kfree(all);
return;
===== drivers/video/cg14.c 1.17 vs edited =====
--- 1.17/drivers/video/cg14.c 2005-02-05 00:32:58 -05:00
+++ edited/drivers/video/cg14.c 2005-02-19 15:21:40 -05:00
@@ -573,7 +573,7 @@
cg14_init_fix(&all->info, linebytes);
- if (register_framebuffer(&all->info) < 0) {
+ if (register_framebuffer(&all->info, NULL) < 0) {
printk(KERN_ERR "cg14: Could not register framebuffer.\n");
fb_dealloc_cmap(&all->info.cmap);
kfree(all);
===== drivers/video/cg3.c 1.17 vs edited =====
--- 1.17/drivers/video/cg3.c 2005-02-15 10:40:51 -05:00
+++ edited/drivers/video/cg3.c 2005-02-19 15:22:26 -05:00
@@ -426,7 +426,7 @@
cg3_init_fix(&all->info, linebytes);
- if (register_framebuffer(&all->info) < 0) {
+ if (register_framebuffer(&all->info, NULL) < 0) {
printk(KERN_ERR "cg3: Could not register framebuffer.\n");
fb_dealloc_cmap(&all->info.cmap);
kfree(all);
===== drivers/video/cg6.c 1.13 vs edited =====
--- 1.13/drivers/video/cg6.c 2005-01-02 04:37:36 -05:00
+++ edited/drivers/video/cg6.c 2005-02-19 15:22:14 -05:00
@@ -738,7 +738,7 @@
fb_set_cmap(&all->info.cmap, &all->info);
cg6_init_fix(&all->info, linebytes);
- if (register_framebuffer(&all->info) < 0) {
+ if (register_framebuffer(&all->info, NULL) < 0) {
printk(KERN_ERR "cg6: Could not register framebuffer.\n");
fb_dealloc_cmap(&all->info.cmap);
kfree(all);
===== drivers/video/chipsfb.c 1.25 vs edited =====
--- 1.25/drivers/video/chipsfb.c 2004-10-19 05:40:21 -04:00
+++ edited/drivers/video/chipsfb.c 2005-02-19 16:03:45 -05:00
@@ -354,7 +354,7 @@
.vsync_len = 8,
};
-static void __init init_chips(struct fb_info *p, unsigned long addr)
+static void __init init_chips(struct fb_info *p, struct pci_dev *dp,
unsigned long addr)
{
p->fix = chipsfb_fix;
p->fix.smem_start = addr;
@@ -366,7 +366,7 @@
fb_alloc_cmap(&p->cmap, 256, 0);
- if (register_framebuffer(p) < 0) {
+ if (register_framebuffer(p, &dp->dev) < 0) {
printk(KERN_ERR "C&T 65550 framebuffer failed to register\n");
return;
}
@@ -417,7 +417,7 @@
return -ENOMEM;
}
p->device = &dp->dev;
- init_chips(p, addr);
+ init_chips(p, dp, addr);
#ifdef CONFIG_PMAC_PBOOK
pmu_register_sleep_notifier(&chips_sleep_notifier);
===== drivers/video/cirrusfb.c 1.37 vs edited =====
--- 1.37/drivers/video/cirrusfb.c 2004-11-11 03:39:04 -05:00
+++ edited/drivers/video/cirrusfb.c 2005-02-19 14:57:36 -05:00
@@ -2294,7 +2294,7 @@
return 0;
}
-static int cirrusfb_register(struct cirrusfb_info *cinfo)
+static int cirrusfb_register(struct cirrusfb_info *cinfo, struct
device *device)
{
struct fb_info *info;
int err;
@@ -2327,7 +2327,7 @@
/* set all the vital stuff */
cirrusfb_set_fbinfo(cinfo);
- err = register_framebuffer(info);
+ err = register_framebuffer(info, device);
if (err < 0) {
printk (KERN_ERR "cirrusfb: could not register fb device; err = %d!\n", err);
goto err_dealloc_cmap;
@@ -2441,7 +2441,7 @@
printk ("Cirrus Logic chipset on PCI bus\n");
pci_set_drvdata(pdev, info);
- return cirrusfb_register(cinfo);
+ return cirrusfb_register(cinfo, &pdev->dev);
err_release_legacy:
if (release_io_ports)
@@ -2574,7 +2574,7 @@
printk (KERN_INFO "Cirrus Logic chipset on Zorro bus\n");
zorro_set_drvdata(z, info);
- return cirrusfb_register(cinfo);
+ return cirrusfb_register(cinfo, NULL);
err_unmap_regbase:
/* Parental advisory: explicit hack */
===== drivers/video/clps711xfb.c 1.23 vs edited =====
--- 1.23/drivers/video/clps711xfb.c 2004-09-22 16:28:16 -04:00
+++ edited/drivers/video/clps711xfb.c 2005-02-19 16:05:29 -05:00
@@ -416,7 +416,7 @@
clps_writeb(clps_readb(PDDR) | EDB_PD3_LCDBL, PDDR);
}
- err = register_framebuffer(cfb);
+ err = register_framebuffer(cfb, NULL);
out: return err;
}
===== drivers/video/controlfb.c 1.32 vs edited =====
--- 1.32/drivers/video/controlfb.c 2004-11-27 09:53:02 -05:00
+++ edited/drivers/video/controlfb.c 2005-02-19 16:06:13 -05:00
@@ -480,7 +480,7 @@
goto try_again;
/* Register with fbdev layer */
- if (register_framebuffer(&p->info) < 0)
+ if (register_framebuffer(&p->info, NULL) < 0)
return -ENXIO;
printk(KERN_INFO "fb%d: control display adapter\n", p->info.node);
===== drivers/video/cyber2000fb.c 1.41 vs edited =====
--- 1.41/drivers/video/cyber2000fb.c 2005-01-08 00:44:25 -05:00
+++ edited/drivers/video/cyber2000fb.c 2005-02-19 14:47:46 -05:00
@@ -1399,9 +1399,7 @@
cfb->fb.var.xres, cfb->fb.var.yres,
h_sync / 1000, h_sync % 1000, v_sync);
- if (cfb->dev)
- cfb->fb.device = &cfb->dev->dev;
- err = register_framebuffer(&cfb->fb);
+ err = register_framebuffer(&cfb->fb, (cfb->dev ? &cfb->dev->dev : NULL));
failed:
return err;
===== drivers/video/cyberfb.c 1.17 vs edited =====
--- 1.17/drivers/video/cyberfb.c 2004-05-10 07:25:55 -04:00
+++ edited/drivers/video/cyberfb.c 2005-02-19 16:06:51 -05:00
@@ -1054,7 +1054,7 @@
cyberfb_set_disp(-1, &fb_info);
do_install_cmap(0, &fb_info);
- if (register_framebuffer(&fb_info) < 0) {
+ if (register_framebuffer(&fb_info, NULL) < 0) {
DPRINTK("EXIT - register_framebuffer failed\n");
release_mem_region(CyberMem_phys, 0x400000);
release_mem_region(CyberRegs_phys, 0x10000);
===== drivers/video/dnfb.c 1.28 vs edited =====
--- 1.28/drivers/video/dnfb.c 2004-09-22 16:28:16 -04:00
+++ edited/drivers/video/dnfb.c 2005-02-19 16:07:31 -05:00
@@ -250,7 +250,7 @@
return err;
}
- err = register_framebuffer(info);
+ err = register_framebuffer(info, device);
if (err < 0) {
fb_dealloc_cmap(&info->cmap);
framebuffer_release(info);
===== drivers/video/epson1355fb.c 1.18 vs edited =====
--- 1.18/drivers/video/epson1355fb.c 2004-11-11 03:39:04 -05:00
+++ edited/drivers/video/epson1355fb.c 2005-02-19 16:08:07 -05:00
@@ -705,7 +705,7 @@
backlight_enable(1);
lcd_enable(default_par, 1);
- if (register_framebuffer(info) < 0) {
+ if (register_framebuffer(info, device) < 0) {
rc = -EINVAL;
goto bail;
}
===== drivers/video/fbmem.c 1.151 vs edited =====
--- 1.151/drivers/video/fbmem.c 2005-02-17 19:03:05 -05:00
+++ edited/drivers/video/fbmem.c 2005-02-19 14:14:59 -05:00
@@ -1055,7 +1055,7 @@
*/
int
-register_framebuffer(struct fb_info *fb_info)
+register_framebuffer(struct fb_info *fb_info, struct device *device)
{
int i;
struct class_device *c;
@@ -1068,6 +1068,7 @@
if (!registered_fb[i])
break;
fb_info->node = i;
+ fb_info->device = device;
c = class_simple_device_add(fb_class, MKDEV(FB_MAJOR, i),
fb_info->device, "fb%d", i);
===== drivers/video/ffb.c 1.16 vs edited =====
--- 1.16/drivers/video/ffb.c 2004-11-11 03:39:04 -05:00
+++ edited/drivers/video/ffb.c 2005-02-19 16:08:41 -05:00
@@ -1017,7 +1017,7 @@
ffb_init_fix(&all->info);
- if (register_framebuffer(&all->info) < 0) {
+ if (register_framebuffer(&all->info, NULL) < 0) {
printk(KERN_ERR "ffb: Could not register framebuffer.\n");
fb_dealloc_cmap(&all->info.cmap);
kfree(all);
===== drivers/video/fm2fb.c 1.30 vs edited =====
--- 1.30/drivers/video/fm2fb.c 2004-11-19 02:03:13 -05:00
+++ edited/drivers/video/fm2fb.c 2005-02-19 16:10:27 -05:00
@@ -282,7 +282,7 @@
info->fix = fb_fix;
info->flags = FBINFO_DEFAULT;
- if (register_framebuffer(info) < 0) {
+ if (register_framebuffer(info, &z->dev) < 0) {
fb_dealloc_cmap(&info->cmap);
framebuffer_release(info);
zorro_release_device(z);
===== drivers/video/g364fb.c 1.25 vs edited =====
--- 1.25/drivers/video/g364fb.c 2005-01-31 01:33:42 -05:00
+++ edited/drivers/video/g364fb.c 2005-02-19 16:11:05 -05:00
@@ -249,7 +249,7 @@
fb_alloc_cmap(&fb_info.cmap, 255, 0);
- if (register_framebuffer(&fb_info) < 0)
+ if (register_framebuffer(&fb_info, NULL) < 0)
return -EINVAL;
return 0;
}
===== drivers/video/gbefb.c 1.9 vs edited =====
--- 1.9/drivers/video/gbefb.c 2005-01-31 01:33:42 -05:00
+++ edited/drivers/video/gbefb.c 2005-02-19 16:11:47 -05:00
@@ -1193,7 +1193,7 @@
gbefb_check_var(&par->var, info);
gbefb_encode_fix(&info->fix, &info->var);
- if (register_framebuffer(info) < 0) {
+ if (register_framebuffer(info, dev) < 0) {
printk(KERN_ERR "gbefb: couldn't register framebuffer\n");
ret = -ENXIO;
goto out_gbe_unmap;
===== drivers/video/hgafb.c 1.35 vs edited =====
--- 1.35/drivers/video/hgafb.c 2005-01-21 00:02:09 -05:00
+++ edited/drivers/video/hgafb.c 2005-02-19 14:52:45 -05:00
@@ -577,7 +577,7 @@
fb_info.fbops = &hgafb_ops;
fb_info.screen_base = hga_vram;
- if (register_framebuffer(&fb_info) < 0) {
+ if (register_framebuffer(&fb_info, NULL) < 0) {
iounmap(hga_vram);
return -EINVAL;
}
===== drivers/video/hitfb.c 1.26 vs edited =====
--- 1.26/drivers/video/hitfb.c 2004-09-22 16:28:16 -04:00
+++ edited/drivers/video/hitfb.c 2005-02-19 16:12:29 -05:00
@@ -331,7 +331,7 @@
size = (fb_info.var.bits_per_pixel == 8) ? 256 : 16;
fb_alloc_cmap(&fb_info.cmap, size, 0);
- if (register_framebuffer(&fb_info) < 0)
+ if (register_framebuffer(&fb_info, NULL) < 0)
return -EINVAL;
printk(KERN_INFO "fb%d: %s frame buffer device\n",
===== drivers/video/hpfb.c 1.25 vs edited =====
--- 1.25/drivers/video/hpfb.c 2004-10-06 16:47:54 -04:00
+++ edited/drivers/video/hpfb.c 2005-02-19 16:14:34 -05:00
@@ -210,7 +210,7 @@
#define HPFB_FBOMSB 0x5d /* Frame buffer offset */
#define HPFB_FBOLSB 0x5f
-static int __init hpfb_init_one(unsigned long phys_base, unsigned
long virt_base)
+static int __init hpfb_init_one(unsigned long phys_base, struct
dio_dev * d, unsigned long virt_base)
{
unsigned long fboff, fb_width, fb_height, fb_start;
@@ -295,7 +295,7 @@
fb_alloc_cmap(&fb_info.cmap, 1 << hpfb_defined.bits_per_pixel, 0);
- if (register_framebuffer(&fb_info) < 0) {
+ if (register_framebuffer(&fb_info, &d->dev) < 0) {
fb_dealloc_cmap(&fb_info.cmap);
return 1;
}
@@ -332,7 +332,7 @@
}
printk(KERN_INFO "Topcat found at DIO select code %d "
"(secondary id %02x)\n", d->scode, (d->id >> 8) & 0xff);
- if (hpfb_init_one(paddr, vaddr)) {
+ if (hpfb_init_one(paddr, d, vaddr)) {
if (d->scode >= DIOII_SCBASE)
iounmap((void *)vaddr);
return -ENOMEM;
@@ -398,7 +398,7 @@
if (!request_mem_region(INTFBPADDR, DIO_DEVSIZE, "Internal Topcat"))
return -EBUSY;
printk(KERN_INFO "Internal Topcat found (secondary id %02x)\n", sid);
- if (hpfb_init_one(INTFBPADDR, INTFBVADDR)) {
+ if (hpfb_init_one(INTFBPADDR, NULL, INTFBVADDR)) {
return -ENOMEM;
}
}
===== drivers/video/igafb.c 1.24 vs edited =====
--- 1.24/drivers/video/igafb.c 2004-10-20 04:37:06 -04:00
+++ edited/drivers/video/igafb.c 2005-02-19 16:17:19 -05:00
@@ -361,9 +361,6 @@
fb_alloc_cmap(&info->cmap, video_cmap_len, 0);
- if (register_framebuffer(info) < 0)
- return 0;
-
printk("fb%d: %s frame buffer device at 0x%08lx [%dMB VRAM]\n",
info->node, info->fix.id,
par->frame_buffer_phys, info->fix.smem_len >> 20);
@@ -533,7 +530,7 @@
info->pseudo_palette = (void *)(par + 1);
info->device = &pdev->dev;
- if (!iga_init(info, par)) {
+ if (!(register_framebuffer(info, &pdev->dev) < 0) || (!iga_init(info, par))) {
iounmap((void *)par->io_base);
iounmap(info->screen_base);
if (par->mmap_map)
===== drivers/video/imsttfb.c 1.38 vs edited =====
--- 1.38/drivers/video/imsttfb.c 2004-11-21 05:51:36 -05:00
+++ edited/drivers/video/imsttfb.c 2005-02-19 14:33:32 -05:00
@@ -1449,11 +1449,6 @@
fb_alloc_cmap(&info->cmap, 0, 0);
- if (register_framebuffer(info) < 0) {
- kfree(info);
- return;
- }
-
tmp = (read_reg_le32(par->dc_regs, SSTATUS) & 0x0f00) >> 8;
printk("fb%u: %s frame buffer; %uMB vram; chip version %u\n",
info->node, info->fix.id, info->fix.smem_len >> 20, tmp);
@@ -1524,7 +1519,10 @@
par->cmap_regs = (__u8 *)ioremap(addr + 0x840000, 0x1000);
info->par = par;
info->pseudo_palette = (void *) (par + 1);
- info->device = &pdev->dev;
+ if (register_framebuffer(info, &pdev->dev) < 0) {
+ kfree(info);
+ return -ENODEV;
+ }
init_imstt(info);
pci_set_drvdata(pdev, info);
===== drivers/video/leo.c 1.12 vs edited =====
--- 1.12/drivers/video/leo.c 2004-11-27 09:53:11 -05:00
+++ edited/drivers/video/leo.c 2005-02-19 16:19:30 -05:00
@@ -605,7 +605,7 @@
leo_init_fix(&all->info);
- if (register_framebuffer(&all->info) < 0) {
+ if (register_framebuffer(&all->info, NULL) < 0) {
printk(KERN_ERR "leo: Could not register framebuffer.\n");
fb_dealloc_cmap(&all->info.cmap);
kfree(all);
===== drivers/video/macfb.c 1.32 vs edited =====
--- 1.32/drivers/video/macfb.c 2004-09-22 16:28:16 -04:00
+++ edited/drivers/video/macfb.c 2005-02-19 16:20:13 -05:00
@@ -959,7 +959,7 @@
fb_alloc_cmap(&fb_info.cmap, video_cmap_len, 0);
- if (register_framebuffer(&fb_info) < 0)
+ if (register_framebuffer(&fb_info, NULL) < 0)
return;
printk("fb%d: %s frame buffer device\n",
===== drivers/video/maxinefb.c 1.23 vs edited =====
--- 1.23/drivers/video/maxinefb.c 2005-01-31 01:33:42 -05:00
+++ edited/drivers/video/maxinefb.c 2005-02-19 16:23:18 -05:00
@@ -162,7 +162,7 @@
fb_alloc_cmap(&fb_info.cmap, 256, 0);
- if (register_framebuffer(&fb_info) < 0)
+ if (register_framebuffer(&fb_info, NULL) < 0)
return 1;
return 0;
}
===== drivers/video/neofb.c 1.42 vs edited =====
--- 1.42/drivers/video/neofb.c 2005-01-08 00:44:32 -05:00
+++ edited/drivers/video/neofb.c 2005-02-19 14:50:06 -05:00
@@ -2133,7 +2133,7 @@
if (fb_alloc_cmap(&info->cmap, 256, 0) < 0)
goto err_map_video;
- err = register_framebuffer(info);
+ err = register_framebuffer(info, &dev->dev);
if (err < 0)
goto err_reg_fb;
===== drivers/video/offb.c 1.34 vs edited =====
--- 1.34/drivers/video/offb.c 2004-11-27 09:53:14 -05:00
+++ edited/drivers/video/offb.c 2005-02-19 16:25:36 -05:00
@@ -515,7 +515,7 @@
fb_alloc_cmap(&info->cmap, 256, 0);
- if (register_framebuffer(info) < 0) {
+ if (register_framebuffer(info, NULL) < 0) {
kfree(info);
release_mem_region(res_start, res_size);
return;
===== drivers/video/p9100.c 1.12 vs edited =====
--- 1.12/drivers/video/p9100.c 2004-11-27 09:53:18 -05:00
+++ edited/drivers/video/p9100.c 2005-02-19 16:26:14 -05:00
@@ -317,7 +317,7 @@
p9100_init_fix(&all->info, linebytes);
- if (register_framebuffer(&all->info) < 0) {
+ if (register_framebuffer(&all->info, NULL) < 0) {
printk(KERN_ERR "p9100: Could not register framebuffer.\n");
fb_dealloc_cmap(&all->info.cmap);
kfree(all);
===== drivers/video/platinumfb.c 1.27 vs edited =====
--- 1.27/drivers/video/platinumfb.c 2004-11-27 09:53:22 -05:00
+++ edited/drivers/video/platinumfb.c 2005-02-19 16:27:05 -05:00
@@ -388,7 +388,7 @@
goto try_again;
/* Register with fbdev layer */
- rc = register_framebuffer(info);
+ rc = register_framebuffer(info, NULL);
if (rc < 0)
return rc;
===== drivers/video/pm2fb.c 1.39 vs edited =====
--- 1.39/drivers/video/pm2fb.c 2005-01-08 00:44:32 -05:00
+++ edited/drivers/video/pm2fb.c 2005-02-19 14:48:29 -05:00
@@ -1170,7 +1170,7 @@
if (fb_alloc_cmap(&info->cmap, 256, 0) < 0)
goto err_exit_all;
- if (register_framebuffer(info) < 0)
+ if (register_framebuffer(info, &pdev->dev) < 0)
goto err_exit_both;
printk(KERN_INFO "fb%d: %s frame buffer device, memory = %dK.\n",
===== drivers/video/pm3fb.c 1.10 vs edited =====
--- 1.10/drivers/video/pm3fb.c 2003-09-29 20:23:11 -04:00
+++ edited/drivers/video/pm3fb.c 2005-02-19 16:29:02 -05:00
@@ -1631,7 +1631,7 @@
do_install_cmap(0, &l_fb_info->gen.info);
- if (register_framebuffer(&l_fb_info->gen.info) < 0) {
+ if (register_framebuffer(&l_fb_info->gen.info, NULL) < 0) {
DPRINTK(1, "Couldn't register framebuffer\n");
return;
}
===== drivers/video/pmag-aa-fb.c 1.1 vs edited =====
--- 1.1/drivers/video/pmag-aa-fb.c 2005-01-31 01:33:42 -05:00
+++ edited/drivers/video/pmag-aa-fb.c 2005-02-19 16:30:22 -05:00
@@ -459,7 +459,7 @@
/* Clear the screen. */
memset ((void *)ip->fb_start, 0, ip->fb_size);
- if (register_framebuffer(&ip->info) < 0)
+ if (register_framebuffer(&ip->info, NULL) < 0)
return -EINVAL;
printk(KERN_INFO "fb%d: %s frame buffer in TC slot %d\n",
===== drivers/video/pmag-ba-fb.c 1.21 vs edited =====
--- 1.21/drivers/video/pmag-ba-fb.c 2005-01-31 01:33:42 -05:00
+++ edited/drivers/video/pmag-ba-fb.c 2005-02-19 16:30:18 -05:00
@@ -149,7 +149,7 @@
fb_alloc_cmap(&fb_info.cmap, 256, 0);
- if (register_framebuffer(info) < 0)
+ if (register_framebuffer(info, NULL) < 0)
return 1;
return 0;
}
===== drivers/video/pmagb-b-fb.c 1.20 vs edited =====
--- 1.20/drivers/video/pmagb-b-fb.c 2005-01-31 01:33:42 -05:00
+++ edited/drivers/video/pmagb-b-fb.c 2005-02-19 16:30:21 -05:00
@@ -149,7 +149,7 @@
fb_alloc_cmap(&fb_info.cmap, 256, 0);
- if (register_framebuffer(info) < 0)
+ if (register_framebuffer(info, NULL) < 0)
return 1;
return 0;
}
===== drivers/video/radeonfb.c 1.50 vs edited =====
--- 1.50/drivers/video/radeonfb.c 2005-02-11 01:57:44 -05:00
+++ edited/drivers/video/radeonfb.c 2005-02-19 14:49:17 -05:00
@@ -3017,8 +3017,7 @@
pci_set_drvdata(pdev, rinfo);
rinfo->next = board_list;
board_list = rinfo;
- ((struct fb_info *) rinfo)->device = &pdev->dev;
- if (register_framebuffer ((struct fb_info *) rinfo) < 0) {
+ if (register_framebuffer ((struct fb_info *) rinfo, &pdev->dev) < 0) {
printk ("radeonfb: could not register framebuffer\n");
iounmap(rinfo->fb_base);
iounmap(rinfo->mmio_base);
===== drivers/video/skeletonfb.c 1.27 vs edited =====
--- 1.27/drivers/video/skeletonfb.c 2004-10-25 15:56:29 -04:00
+++ edited/drivers/video/skeletonfb.c 2005-02-19 14:16:31 -05:00
@@ -550,6 +550,7 @@
int __init xxxfb_init(void)
{
int cmap_len, retval;
+ struct device *device = NULL; /* pointer to device structure */
/*
* For kernel boot options (in 'video=xxxfb:<options>' format)
@@ -602,7 +603,7 @@
*/
info.var = xxxfb_var;
- if (register_framebuffer(&info) < 0)
+ if (register_framebuffer(&info, device) < 0)
return -EINVAL;
printk(KERN_INFO "fb%d: %s frame buffer device\n", info.node,
info.fix.id);
===== drivers/video/sstfb.c 1.37 vs edited =====
--- 1.37/drivers/video/sstfb.c 2005-01-08 00:44:25 -05:00
+++ edited/drivers/video/sstfb.c 2005-02-19 14:53:51 -05:00
@@ -1502,8 +1502,7 @@
fb_alloc_cmap(&info->cmap, 256, 0);
/* register fb */
- info->device = &pdev->dev;
- if (register_framebuffer(info) < 0) {
+ if (register_framebuffer(info, &pdev->dev) < 0) {
eprintk("can't register framebuffer.\n");
goto fail;
}
===== drivers/video/tdfxfb.c 1.56 vs edited =====
--- 1.56/drivers/video/tdfxfb.c 2005-01-08 00:44:32 -05:00
+++ edited/drivers/video/tdfxfb.c 2005-02-19 14:50:58 -05:00
@@ -4,7 +4,7 @@
*
* Author: Hannu Mallat <hmallat@cc.hut.fi>
*
- * Copyright © 1999 Hannu Mallat
+ * Copyright 1999 Hannu Mallat
* All rights reserved
*
* Created : Thu Sep 23 18:17:43 1999, hmallat
@@ -1269,7 +1269,7 @@
goto out_err;
}
- if (register_framebuffer(info) < 0) {
+ if (register_framebuffer(info, &pdev->dev) < 0) {
printk("tdfxfb: can't register framebuffer\n");
fb_dealloc_cmap(&info->cmap);
goto out_err;
===== drivers/video/tridentfb.c 1.23 vs edited =====
--- 1.23/drivers/video/tridentfb.c 2005-01-08 00:44:32 -05:00
+++ edited/drivers/video/tridentfb.c 2005-02-19 14:51:35 -05:00
@@ -1161,8 +1161,7 @@
default_var.accel_flags &= ~FB_ACCELF_TEXT;
default_var.activate |= FB_ACTIVATE_NOW;
fb_info.var = default_var;
- fb_info.device = &dev->dev;
- if (register_framebuffer(&fb_info) < 0) {
+ if (register_framebuffer(&fb_info, &dev->dev) < 0) {
output("Could not register Trident framebuffer\n");
return -EINVAL;
}
===== drivers/video/vesafb.c 1.46 vs edited =====
--- 1.46/drivers/video/vesafb.c 2005-01-25 16:50:28 -05:00
+++ edited/drivers/video/vesafb.c 2005-02-19 14:44:40 -05:00
@@ -410,7 +410,7 @@
err = -ENOMEM;
goto err;
}
- if (register_framebuffer(info)<0) {
+ if (register_framebuffer(info, device) < 0) {
err = -EINVAL;
fb_dealloc_cmap(&info->cmap);
goto err;
@@ -424,10 +424,17 @@
return err;
}
+static int __devexit vesafb_remove(struct device *device)
+{
+ printk(KERN_WARNING "vesafb: implement a remove function\n");
+ return 0;
+}
+
static struct device_driver vesafb_driver = {
.name = "vesafb",
.bus = &platform_bus_type,
.probe = vesafb_probe,
+ .remove = vesafb_remove,
};
static struct platform_device vesafb_device = {
===== drivers/video/vfb.c 1.32 vs edited =====
--- 1.32/drivers/video/vfb.c 2005-01-08 00:44:25 -05:00
+++ edited/drivers/video/vfb.c 2005-02-19 14:59:30 -05:00
@@ -447,7 +447,7 @@
if (retval < 0)
goto err1;
- retval = register_framebuffer(info);
+ retval = register_framebuffer(info, device);
if (retval < 0)
goto err2;
dev_set_drvdata(&dev->dev, info);
===== drivers/video/vga16fb.c 1.47 vs edited =====
--- 1.47/drivers/video/vga16fb.c 2005-01-04 21:48:33 -05:00
+++ edited/drivers/video/vga16fb.c 2005-02-19 14:58:56 -05:00
@@ -1400,7 +1400,7 @@
vga16fb_update_fix(&vga16fb);
- if (register_framebuffer(&vga16fb) < 0) {
+ if (register_framebuffer(&vga16fb, NULL) < 0) {
printk(KERN_ERR "vga16fb: unable to register framebuffer\n");
ret = -EINVAL;
goto err_check_var;
===== drivers/video/w100fb.c 1.1 vs edited =====
--- 1.1/drivers/video/w100fb.c 2005-01-15 17:31:05 -05:00
+++ edited/drivers/video/w100fb.c 2005-02-19 14:17:38 -05:00
@@ -605,7 +605,6 @@
return -ENOMEM;
}
- info->device=dev;
par = info->par;
current_par=info->par;
dev_set_drvdata(dev, info);
@@ -658,7 +657,7 @@
w100fb_check_var(&info->var, info);
w100fb_set_par(info);
- if (register_framebuffer(info) < 0) {
+ if (register_framebuffer(info, dev) < 0) {
kfree(info->pseudo_palette);
iounmap(remapped_base);
iounmap(remapped_regs);
===== drivers/video/aty/aty128fb.c 1.56 vs edited =====
--- 1.56/drivers/video/aty/aty128fb.c 2005-02-11 01:57:44 -05:00
+++ edited/drivers/video/aty/aty128fb.c 2005-02-19 14:19:01 -05:00
@@ -1845,7 +1845,7 @@
aty128_init_engine(par);
- if (register_framebuffer(info) < 0)
+ if (register_framebuffer(info, &pdev->dev) < 0)
return 0;
#ifdef CONFIG_PMAC_BACKLIGHT
===== drivers/video/aty/atyfb_base.c 1.83 vs edited =====
--- 1.83/drivers/video/aty/atyfb_base.c 2005-02-15 11:22:09 -05:00
+++ edited/drivers/video/aty/atyfb_base.c 2005-02-19 14:25:02 -05:00
@@ -2551,9 +2551,6 @@
fb_alloc_cmap(&info->cmap, 256, 0);
- if (register_framebuffer(info) < 0)
- goto aty_init_exit;
-
fb_list = info;
PRINTKI("fb%d: %s frame buffer device on %s\n",
@@ -3383,7 +3380,6 @@
}
par = info->par;
info->fix = atyfb_fix;
- info->device = &pdev->dev;
par->pci_id = aty_chips[i].pci_id;
par->res_start = res_start;
par->res_size = res_size;
@@ -3399,6 +3395,9 @@
goto err_release_mem;
pci_set_drvdata(pdev, info);
+
+ if (register_framebuffer(info, &pdev->dev) < 0)
+ goto err_release_io;
/* Init chip & register framebuffer */
if (aty_init(info, "PCI"))
===== drivers/video/aty/radeon_base.c 1.40 vs edited =====
--- 1.40/drivers/video/aty/radeon_base.c 2005-02-15 21:25:30 -05:00
+++ edited/drivers/video/aty/radeon_base.c 2005-02-19 14:20:02 -05:00
@@ -2362,7 +2362,7 @@
pci_set_drvdata(pdev, info);
/* Register with fbdev layer */
- ret = register_framebuffer(info);
+ ret = register_framebuffer(info, &pdev->dev);
if (ret < 0) {
printk (KERN_ERR "radeonfb (%s): could not register framebuffer\n",
pci_name(rinfo->pdev));
===== drivers/video/i810/i810_main.c 1.29 vs edited =====
--- 1.29/drivers/video/i810/i810_main.c 2005-01-15 17:31:04 -05:00
+++ edited/drivers/video/i810/i810_main.c 2005-02-19 15:00:37 -05:00
@@ -1902,7 +1902,7 @@
encode_fix(&info->fix, info);
i810fb_init_ringbuffer(info);
- err = register_framebuffer(info);
+ err = register_framebuffer(info, &dev->dev);
if (err < 0) {
i810fb_release_resource(info, par);
printk("i810fb_init: cannot register framebuffer device\n");
===== drivers/video/intelfb/intelfbdrv.c 1.9 vs edited =====
--- 1.9/drivers/video/intelfb/intelfbdrv.c 2005-01-04 21:48:33 -05:00
+++ edited/drivers/video/intelfb/intelfbdrv.c 2005-02-19 15:01:34 -05:00
@@ -837,7 +837,7 @@
if (noregister)
bailout(dinfo);
- if (register_framebuffer(dinfo->info) < 0) {
+ if (register_framebuffer(dinfo->info, &pdev->dev) < 0) {
ERR_MSG("Cannot register framebuffer.\n");
cleanup(dinfo);
return -ENODEV;
===== drivers/video/kyro/fbdev.c 1.10 vs edited =====
--- 1.10/drivers/video/kyro/fbdev.c 2004-10-20 09:47:58 -04:00
+++ edited/drivers/video/kyro/fbdev.c 2005-02-19 14:26:04 -05:00
@@ -735,8 +735,7 @@
fb_memset(info->screen_base, 0, size);
- info->device = &pdev->dev;
- if (register_framebuffer(info) < 0)
+ if (register_framebuffer(info, &pdev->dev) < 0)
goto out_unmap;
printk("fb%d: %s frame buffer device, at %dx%d@%d using %ldk/%ldk of VRAM\n",
===== drivers/video/matrox/matroxfb_base.c 1.57 vs edited =====
--- 1.57/drivers/video/matrox/matroxfb_base.c 2005-02-02 03:12:10 -05:00
+++ edited/drivers/video/matrox/matroxfb_base.c 2005-02-19 14:27:10 -05:00
@@ -1876,8 +1876,7 @@
/* We do not have to set currcon to 0... register_framebuffer do it
for us on first console
* and we do not want currcon == 0 for subsequent framebuffers */
- ACCESS_FBINFO(fbcon).device = &ACCESS_FBINFO(pcidev)->dev;
- if (register_framebuffer(&ACCESS_FBINFO(fbcon)) < 0) {
+ if (register_framebuffer(&ACCESS_FBINFO(fbcon),
&ACCESS_FBINFO(pcidev)->dev) < 0) {
goto failVideoIO;
}
printk("fb%d: %s frame buffer device\n",
===== drivers/video/matrox/matroxfb_crtc2.c 1.34 vs edited =====
--- 1.34/drivers/video/matrox/matroxfb_crtc2.c 2005-01-08 00:44:25 -05:00
+++ edited/drivers/video/matrox/matroxfb_crtc2.c 2005-02-19 16:22:35 -05:00
@@ -631,7 +631,7 @@
m2info->mmio.len = ACCESS_FBINFO(mmio.len);
matroxfb_dh_init_fix(m2info);
- if (register_framebuffer(&m2info->fbcon)) {
+ if (register_framebuffer(&m2info->fbcon, m2info->fbcon.device)) {
return -ENXIO;
}
if (!m2info->initialized)
===== drivers/video/riva/fbdev.c 1.84 vs edited =====
--- 1.84/drivers/video/riva/fbdev.c 2005-01-08 00:44:07 -05:00
+++ edited/drivers/video/riva/fbdev.c 2005-02-19 14:28:53 -05:00
@@ -2053,7 +2053,7 @@
fb_destroy_modedb(info->monspecs.modedb);
info->monspecs.modedb = NULL;
- ret = register_framebuffer(info);
+ ret = register_framebuffer(info, &pd->dev);
if (ret < 0) {
printk(KERN_ERR PFX
"error registering riva framebuffer\n");
===== drivers/video/savage/savagefb.c 1.5 vs edited =====
--- 1.5/drivers/video/savage/savagefb.c 2004-11-21 17:44:00 -05:00
+++ edited/drivers/video/savage/savagefb.c 2005-02-19 14:29:43 -05:00
@@ -2033,7 +2033,7 @@
fb_destroy_modedb(info->monspecs.modedb);
info->monspecs.modedb = NULL;
- err = register_framebuffer (info);
+ err = register_framebuffer (info, &dev->dev);
if (err < 0)
goto failed;
===== drivers/video/sis/sis_main.c 1.34 vs edited =====
--- 1.34/drivers/video/sis/sis_main.c 2005-02-16 20:32:38 -05:00
+++ edited/drivers/video/sis/sis_main.c 2005-02-19 14:31:06 -05:00
@@ -5587,7 +5587,7 @@
vc_resize_con(1, 1, 0);
#endif
- if(register_framebuffer(sis_fb_info) < 0) {
+ if(register_framebuffer(sis_fb_info, &pdev->dev) < 0) {
printk(KERN_ERR "sisfb: Fatal error: Failed to register framebuffer\n");
iounmap(ivideo->video_vbase);
iounmap(ivideo->mmio_vbase);
===== include/linux/fb.h 1.95 vs edited =====
--- 1.95/include/linux/fb.h 2005-02-15 12:38:28 -05:00
+++ edited/include/linux/fb.h 2005-02-19 14:12:00 -05:00
@@ -803,7 +803,7 @@
extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image);
/* drivers/video/fbmem.c */
-extern int register_framebuffer(struct fb_info *fb_info);
+extern int register_framebuffer(struct fb_info *fb_info, struct
device *device);
extern int unregister_framebuffer(struct fb_info *fb_info);
extern int fb_prepare_logo(struct fb_info *fb_info);
extern int fb_show_logo(struct fb_info *fb_info);
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id\x14396&op=click
next prev parent reply other threads:[~2005-02-19 21:59 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-19 18:25 Framebuffer and non-PCI devices Jon Smirl
2005-02-19 18:40 ` Geert Uytterhoeven
2005-02-19 21:59 ` Jon Smirl [this message]
2005-02-19 23:38 ` Antonino A. Daplas
2005-02-20 1:17 ` Jon Smirl
2005-02-22 4:01 ` James Simmons
2005-02-20 0:05 ` Kronos
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9e473391050219135923cc6455@mail.gmail.com \
--to=jonsmirl@gmail.com \
--cc=linux-fbdev-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.