for (i = 0; i < FB_MAX; i++) {
info = registered_fb[i];
- if (info &&
- info->fbops == &atyfb_ops &&
- info->display_fg &&
- info->display_fg->vc_num == i) {
+ if (info && info->fbops == &atyfb_ops) {
par = (struct atyfb_par *) info->par;
atyfb_save_palette(par, enter);
if (i < 0)
continue;
+ rp = &pdev->resource[0];
+ if (rp->flags & IORESOURCE_IO)
+ rp = &pdev->resource[1];
+ addr = rp->start;
+ if (!addr)
+ continue;
+
+ res_start = rp->start;
+ res_size = rp->end - rp->start + 1;
+ if (!request_mem_region
+ (res_start, res_size, "atyfb"))
+ continue;
+
info =
kmalloc(sizeof(struct fb_info), GFP_ATOMIC);
if (!info) {
info->fix = atyfb_fix;
info->par = default_par;
- rp = &pdev->resource[0];
- if (rp->flags & IORESOURCE_IO)
- rp = &pdev->resource[1];
- addr = rp->start;
- if (!addr)
- continue;
-
- res_start = rp->start;
- res_size = rp->end - rp->start + 1;
- if (!request_mem_region
- (res_start, res_size, "atyfb"))
- continue;
-
#ifdef __sparc__
/*
* Map memory-mapped registers.
if (!default_par->mmap_map) {
printk
("atyfb_init: can't alloc mmap_map\n");
+ kfree(default_par);
kfree(info);
release_mem_region(res_start, res_size);
return -ENXIO;
ioremap(info->fix.mmio_start, 0x1000);
if (!default_par->ati_regbase) {
+#ifdef __sparc__
+ kfree(default_par->mmap_map);
+#endif
kfree(default_par);
kfree(info);
release_mem_region(res_start, res_size);
(char *) ioremap(addr, 0x800000);
if (!info->screen_base) {
+#ifdef __sparc__
+ kfree(default_par->mmap_map);
+#endif
+ kfree(default_par);
kfree(info);
release_mem_region(res_start, res_size);
return -ENXIO;
if (default_par->mmap_map)
kfree(default_par->mmap_map);
#endif
+ kfree(default_par);
kfree(info);
release_mem_region(res_start, res_size);
return -ENXIO;
memset(default_par, 0, sizeof(struct atyfb_par));
info->fix = atyfb_fix;
+ info->par = default_par;
/*
* Map the video memory (physical address given) to somewhere in the
}
if (!aty_init(info, "ISA bus")) {
+ kfree(default_par);
kfree(info);
/* This is insufficient! kernel_map has added two large chunks!! */
return -ENXIO;