return -ENOMEM;
}
memset(info, 0, sizeof(struct fb_info));
- info->fix = atyfb_fix;
+
+ default_par = kmalloc(sizeof(struct atyfb_par), GFP_ATOMIC);
+ if (!default_par) {
+ printk
+ ("atyfb_init: can't alloc atyfb_par\n");
+ kfree(info);
+ return -ENXIO;
+ }
+ memset(default_par, 0, sizeof(struct atyfb_par));
+
+ info->fix = atyfb_fix;
/*
* Map the video memory (physical address given) to somewhere in the
* kernel address space.
*/
- info->screen_base = (unsigned long)ioremap(phys_vmembase[m64_num],
+ info->screen_base = ioremap(phys_vmembase[m64_num],
phys_size[m64_num]);
- info->fix.smem_start = info->screen_base; /* Fake! */
+ info->fix.smem_start = (unsigned long)info->screen_base; /* Fake! */
default_par->ati_regbase = (unsigned long)ioremap(phys_guiregbase[m64_num],
0x10000) + 0xFC00ul;
info->fix.mmio_start = default_par->ati_regbase; /* Fake! */