* Framebuffer and non-PCI devices
@ 2005-02-19 18:25 Jon Smirl
2005-02-19 18:40 ` Geert Uytterhoeven
0 siblings, 1 reply; 7+ messages in thread
From: Jon Smirl @ 2005-02-19 18:25 UTC (permalink / raw)
To: fbdev
Are any of the framebuffers non-PCI devices?
Looking through the code fb_info->device appears to be filled in by
only a subset of the drivers. Can fb_info->device be converted to a
pci device? I would also add it as a parameter to register_fb() in
order to make sure it gets filled in. Are all of the drivers converted
to register_fb()?
--
Jon Smirl
jonsmirl@gmail.com
-------------------------------------------------------
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_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Framebuffer and non-PCI devices
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
0 siblings, 1 reply; 7+ messages in thread
From: Geert Uytterhoeven @ 2005-02-19 18:40 UTC (permalink / raw)
To: fbdev
On Sat, 19 Feb 2005, Jon Smirl wrote:
> Are any of the framebuffers non-PCI devices?
Yes.
> Looking through the code fb_info->device appears to be filled in by
> only a subset of the drivers. Can fb_info->device be converted to a
> pci device? I would also add it as a parameter to register_fb() in
Hence, no, it cannot be a converted to a pci_dev in all cases.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
-------------------------------------------------------
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_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Framebuffer and non-PCI devices
2005-02-19 18:40 ` Geert Uytterhoeven
@ 2005-02-19 21:59 ` Jon Smirl
2005-02-19 23:38 ` Antonino A. Daplas
2005-02-20 0:05 ` Kronos
0 siblings, 2 replies; 7+ messages in thread
From: Jon Smirl @ 2005-02-19 21:59 UTC (permalink / raw)
To: linux-fbdev-devel
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Framebuffer and non-PCI devices
2005-02-19 21:59 ` Jon Smirl
@ 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
1 sibling, 2 replies; 7+ messages in thread
From: Antonino A. Daplas @ 2005-02-19 23:38 UTC (permalink / raw)
To: linux-fbdev-devel, Jon Smirl
On Sunday 20 February 2005 05:59, Jon Smirl wrote:
> 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.
No, don't do this. Either convert the driver to use framebuffer_alloc()/
framebuffer_release(), or let the driver explicitly set info->device.
Tony
-------------------------------------------------------
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_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Framebuffer and non-PCI devices
2005-02-19 21:59 ` Jon Smirl
2005-02-19 23:38 ` Antonino A. Daplas
@ 2005-02-20 0:05 ` Kronos
1 sibling, 0 replies; 7+ messages in thread
From: Kronos @ 2005-02-20 0:05 UTC (permalink / raw)
To: linux-fbdev-devel
Il Sat, Feb 19, 2005 at 04:59:46PM -0500, Jon Smirl ha scritto:
> I started editing all of the drivers to make assigning fb_info->device
> explicit. Does this look like it is useful?
Look at framebuffer_alloc ;)
Luca
--
Home: http://kronoz.cjb.net
Windows NT: Designed for the Internet. The Internet: Designed for Unix.
-------------------------------------------------------
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_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Framebuffer and non-PCI devices
2005-02-19 23:38 ` Antonino A. Daplas
@ 2005-02-20 1:17 ` Jon Smirl
2005-02-22 4:01 ` James Simmons
1 sibling, 0 replies; 7+ messages in thread
From: Jon Smirl @ 2005-02-20 1:17 UTC (permalink / raw)
To: adaplas; +Cc: linux-fbdev-devel
On Sun, 20 Feb 2005 07:38:29 +0800, Antonino A. Daplas
<adaplas@hotpop.com> wrote:
> No, don't do this. Either convert the driver to use framebuffer_alloc()/
> framebuffer_release(), or let the driver explicitly set info->device.
I'll take a new tactic then. I'm trying to figure out how to wire my
VGA routing code into framebuffer. Only PCI devices need the routing
so I'm trying to come up with a way to identify them and not the other
devices. I have another idea now that is simpler, I'll code some of it
up and post it.
--
Jon Smirl
jonsmirl@gmail.com
-------------------------------------------------------
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_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Framebuffer and non-PCI devices
2005-02-19 23:38 ` Antonino A. Daplas
2005-02-20 1:17 ` Jon Smirl
@ 2005-02-22 4:01 ` James Simmons
1 sibling, 0 replies; 7+ messages in thread
From: James Simmons @ 2005-02-22 4:01 UTC (permalink / raw)
To: linux-fbdev-devel; +Cc: Jon Smirl
> On Sunday 20 February 2005 05:59, Jon Smirl wrote:
> > 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.
>
> No, don't do this. Either convert the driver to use framebuffer_alloc()/
> framebuffer_release(), or let the driver explicitly set info->device.
Ug. Most fbdev drivers are not PCI devices.
-------------------------------------------------------
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_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2005-02-22 4:01 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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
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).