*/
 static inline int neo2200_sync(struct fb_info *info)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
        int waitcycles;
 
        while (readl(&par->neo2200->bltStat) & 1)
 static inline void neo2200_accel_init(struct fb_info *info,
                                      struct fb_var_screeninfo *var)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
        Neo2200 __iomem *neo2200 = par->neo2200;
        u32 bltMod, pitch;
 
 static int
 neofb_open(struct fb_info *info, int user)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
        int cnt = atomic_read(&par->ref_count);
 
        if (!cnt) {
 static int
 neofb_release(struct fb_info *info, int user)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
        int cnt = atomic_read(&par->ref_count);
 
        if (!cnt)
 static int
 neofb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
        unsigned int pixclock = var->pixclock;
        struct xtimings timings;
        int memlen, vramlen;
 
 static int neofb_set_par(struct fb_info *info)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
        struct xtimings timings;
        unsigned char temp;
        int i, clock_hi = 0;
 static void neofb_update_start(struct fb_info *info,
                               struct fb_var_screeninfo *var)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
        struct vgastate *state = &par->state;
        int oldExtCRTDispAddr;
        int Base;
         *  wms...Enable VESA DPMS compatible powerdown mode
         *  run "setterm -powersave powerdown" to take advantage
         */
-       struct neofb_par *par = (struct neofb_par *)info->par;
+       struct neofb_par *par = info->par;
        int seqflags, lcdflags, dpmsflags, reg;
 
        switch (blank_mode) {
 static void
 neo2200_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
        u_long dst, rop;
 
        dst = rect->dx + rect->dy * info->var.xres_virtual;
 neo2200_copyarea(struct fb_info *info, const struct fb_copyarea *area)
 {
        u32 sx = area->sx, sy = area->sy, dx = area->dx, dy = area->dy;
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
        u_long src, dst, bltCntl;
 
        bltCntl = NEO_BC3_FIFO_EN | NEO_BC3_SKIP_MAPPING | 0x0C0000;
 static void
 neo2200_imageblit(struct fb_info *info, const struct fb_image *image)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
        int s_pitch = (image->width * image->depth + 7) >> 3;
        int scan_align = info->pixmap.scan_align - 1;
        int buf_align = info->pixmap.buf_align - 1;
 static int __devinit neo_map_mmio(struct fb_info *info,
                                  struct pci_dev *dev)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
 
        DBG("neo_map_mmio");
 
 
 static void neo_unmap_mmio(struct fb_info *info)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
 
        DBG("neo_unmap_mmio");
 
 
 #ifdef CONFIG_MTRR
        {
-               struct neofb_par *par = (struct neofb_par *) info->par;
+               struct neofb_par *par = info->par;
 
                mtrr_del(par->mtrr, info->fix.smem_start,
                         info->fix.smem_len);
 
 static int __devinit neo_scan_monitor(struct fb_info *info)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
        unsigned char type, display;
        int w;
 
 
 static int __devinit neo_init_hw(struct fb_info *info)
 {
-       struct neofb_par *par = (struct neofb_par *) info->par;
+       struct neofb_par *par = info->par;
        int videoRam = 896;
        int maxClock = 65000;
        int CursorMem = 1024;
        struct fb_info *info;
        struct neofb_par *par;
 
-       info = framebuffer_alloc(sizeof(struct neofb_par) + sizeof(u32) * 256, &dev->dev);
+       info = framebuffer_alloc(sizeof(struct neofb_par), &dev->dev);
 
        if (!info)
                return NULL;
        info->fix.accel = id->driver_data;
 
        info->fbops = &neofb_ops;
-       info->pseudo_palette = (void *) (par + 1);
+       info->pseudo_palette = par->palette;
        return info;
 }