}
 
 static void matroxfb_cfb4_copyarea(struct fb_info* info, const struct fb_copyarea* area) {
-       MINFO_FROM_INFO(info);
+       struct matrox_fb_info *minfo = info2minfo(info);
 
        if ((area->sx | area->dx | area->width) & 1)
                cfb_copyarea(info, area);
 }
 
 static void matroxfb_copyarea(struct fb_info* info, const struct fb_copyarea* area) {
-       MINFO_FROM_INFO(info);
+       struct matrox_fb_info *minfo = info2minfo(info);
 
        matrox_accel_bmove(minfo, minfo->fbcon.var.xres_virtual, area->sy, area->sx, area->dy, area->dx, area->height, area->width);
 }
 }
 
 static void matroxfb_fillrect(struct fb_info* info, const struct fb_fillrect* rect) {
-       MINFO_FROM_INFO(info);
+       struct matrox_fb_info *minfo = info2minfo(info);
 
        switch (rect->rop) {
                case ROP_COPY:
 }
 
 static void matroxfb_cfb4_fillrect(struct fb_info* info, const struct fb_fillrect* rect) {
-       MINFO_FROM_INFO(info);
+       struct matrox_fb_info *minfo = info2minfo(info);
 
        switch (rect->rop) {
                case ROP_COPY:
 
 
 static void matroxfb_imageblit(struct fb_info* info, const struct fb_image* image) {
-       MINFO_FROM_INFO(info);
+       struct matrox_fb_info *minfo = info2minfo(info);
 
        DBG_HEAVY(__func__);
 
 
 {
        u_int32_t status;
        int handled = 0;
-
-       MINFO_FROM(dev_id);
+       struct matrox_fb_info *minfo = dev_id;
 
        status = mga_inl(M_STATUS);
 
 
 static int matroxfb_open(struct fb_info *info, int user)
 {
-       MINFO_FROM_INFO(info);
+       struct matrox_fb_info *minfo = info2minfo(info);
 
        DBG_LOOP(__func__)
 
 
 static int matroxfb_release(struct fb_info *info, int user)
 {
-       MINFO_FROM_INFO(info);
+       struct matrox_fb_info *minfo = info2minfo(info);
 
        DBG_LOOP(__func__)
 
 
 static int matroxfb_pan_display(struct fb_var_screeninfo *var,
                struct fb_info* info) {
-       MINFO_FROM_INFO(info);
+       struct matrox_fb_info *minfo = info2minfo(info);
 
        DBG(__func__)
 
        int visual;
        int cmap_len;
        unsigned int ydstorg;
-       MINFO_FROM_INFO(info);
+       struct matrox_fb_info *minfo = info2minfo(info);
 
        if (minfo->dead) {
                return -ENXIO;
        int cmap_len;
        unsigned int ydstorg;
        struct fb_var_screeninfo *var;
-       MINFO_FROM_INFO(info);
+       struct matrox_fb_info *minfo = info2minfo(info);
 
        DBG(__func__)
 
                          unsigned int cmd, unsigned long arg)
 {
        void __user *argp = (void __user *)arg;
-       MINFO_FROM_INFO(info);
+       struct matrox_fb_info *minfo = info2minfo(info);
 
        DBG(__func__)
 
        int seq;
        int crtc;
        CRITFLAGS
-       MINFO_FROM_INFO(info);
+       struct matrox_fb_info *minfo = info2minfo(info);
 
        DBG(__func__)
 
 
 
 #define info2minfo(info) container_of(info, struct matrox_fb_info, fbcon)
 
-#define MINFO_FROM(x)     struct matrox_fb_info* minfo = x
-
-#define MINFO_FROM_INFO(x) MINFO_FROM(info2minfo(x))
-
 struct matrox_switch {
        int     (*preinit)(struct matrox_fb_info *minfo);
        void    (*reset)(struct matrox_fb_info *minfo);
 
                unsigned int pos) {
        u_int32_t tmp;
        u_int32_t datactl;
-       MINFO_FROM(m2info->primary_dev);
+       struct matrox_fb_info *minfo = m2info->primary_dev;
 
        switch (mode) {
                case 15:
 }
 
 static void matroxfb_dh_disable(struct matroxfb_dh_fb_info* m2info) {
-       MINFO_FROM(m2info->primary_dev);
+       struct matrox_fb_info *minfo = m2info->primary_dev;
 
        mga_outl(0x3C10, 0x00000004);   /* disable CRTC2, CRTC1->DAC1, PLL as clock source */
        minfo->hw.crtc2.ctl = 0x00000004;
        unsigned int pos;
        unsigned int linelen;
        unsigned int pixelsize;
-       MINFO_FROM(m2info->primary_dev);
+       struct matrox_fb_info *minfo = m2info->primary_dev;
 
        m2info->fbcon.var.xoffset = var->xoffset;
        m2info->fbcon.var.yoffset = var->yoffset;
 
 static int matroxfb_dh_open(struct fb_info* info, int user) {
 #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon))
-       MINFO_FROM(m2info->primary_dev);
+       struct matrox_fb_info *minfo = m2info->primary_dev;
 
        if (minfo) {
                int err;
 static int matroxfb_dh_release(struct fb_info* info, int user) {
 #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon))
        int err = 0;
-       MINFO_FROM(m2info->primary_dev);
+       struct matrox_fb_info *minfo = m2info->primary_dev;
 
        if (minfo) {
                err = minfo->fbops.fb_release(&minfo->fbcon, user);
        int mode;
        int err;
        struct fb_var_screeninfo* var = &info->var;
-       MINFO_FROM(m2info->primary_dev);
+       struct matrox_fb_info *minfo = m2info->primary_dev;
 
        if ((err = matroxfb_dh_decode_var(m2info, var, &visual, &cmap_len, &mode)) != 0)
                return err;
 }
 
 static int matroxfb_dh_get_vblank(const struct matroxfb_dh_fb_info* m2info, struct fb_vblank* vblank) {
-       MINFO_FROM(m2info->primary_dev);
+       struct matrox_fb_info *minfo = m2info->primary_dev;
 
        matroxfb_enable_irq(minfo, 0);
        memset(vblank, 0, sizeof(*vblank));
                unsigned long arg)
 {
 #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon))
-       MINFO_FROM(m2info->primary_dev);
+       struct matrox_fb_info *minfo = m2info->primary_dev;
 
        DBG(__func__)
 
 
 
 static int g450_set_ctrl(void* md, struct v4l2_control *p) {
        int i;
-       MINFO_FROM(md);
+       struct matrox_fb_info *minfo = md;
        
        i = get_ctrl_id(p->id);
        if (i < 0) return -EINVAL;
 
 static int g450_get_ctrl(void* md, struct v4l2_control *p) {
        int i;
-       MINFO_FROM(md);
+       struct matrox_fb_info *minfo = md;
        
        i = get_ctrl_id(p->id);
        if (i < 0) return -EINVAL;
 }
 
 static int matroxfb_g450_compute(void* md, struct my_timming* mt) {
-       MINFO_FROM(md);
+       struct matrox_fb_info *minfo = md;
 
        dprintk(KERN_DEBUG "Computing, mode=%u\n", minfo->outputs[1].mode);
 
 }
 
 static int matroxfb_g450_program(void* md) {
-       MINFO_FROM(md);
+       struct matrox_fb_info *minfo = md;
        
        if (minfo->outputs[1].mode != MATROXFB_OUTPUT_MODE_MONITOR) {
                cve2_init_TV(minfo, &minfo->hw.maven);
 }
 
 static int g450_dvi_compute(void* md, struct my_timming* mt) {
-       MINFO_FROM(md);
+       struct matrox_fb_info *minfo = md;
 
        if (mt->mnp < 0) {
                mt->mnp = matroxfb_g450_setclk(minfo, mt->pixclock, (mt->crtc == MATROXFB_SRC_CRTC1) ? M_PIXEL_PLL_C : M_VIDEO_PLL);
 
                0x00,   /* 3E written multiple times */
                0x00,   /* never written */
        }, MATROXFB_OUTPUT_MODE_NTSC, 525, 60 };
-       MINFO_FROM(md->primary_head);
+       struct matrox_fb_info *minfo = md->primary_head;
 
        if (minfo->outputs[1].mode == MATROXFB_OUTPUT_MODE_PAL)
                *data = palregs;
                struct mavenregs* m) {
        unsigned int tmpi;
        unsigned int a, bv, c;
-       MINFO_FROM(md->primary_head);
+       struct matrox_fb_info *minfo = md->primary_head;
 
        m->mode = minfo->outputs[1].mode;
        if (m->mode != MATROXFB_OUTPUT_MODE_MONITOR) {
 
 static int maven_init_client(struct i2c_client* clnt) {
        struct maven_data* md = i2c_get_clientdata(clnt);
-       MINFO_FROM(container_of(clnt->adapter, struct i2c_bit_adapter, adapter)->minfo);
+       struct matrox_fb_info *minfo = container_of(clnt->adapter,
+                                                   struct i2c_bit_adapter,
+                                                   adapter)->minfo;
 
        md->primary_head = minfo;
        md->client = clnt;
        struct maven_data* md = i2c_get_clientdata(clnt);
 
        if (md->primary_head) {
-               MINFO_FROM(md->primary_head);
+               struct matrox_fb_info *minfo = md->primary_head;
 
                down_write(&minfo->altout.lock);
                minfo->outputs[1].src = MATROXFB_SRC_NONE;