staging: sm7xxfb: erase hardcode cast between smtcfb_info and fb_info
authorJavier M. Mellid <jmunhoz@igalia.com>
Wed, 27 Jun 2012 12:10:15 +0000 (14:10 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Jul 2012 23:08:58 +0000 (16:08 -0700)
This patch erases hardcode cast between smtcfb_info and fb_info in order
to get a more robust and less rigid smtcfb_info structure. fb_info
doesn't need to be the first field in smtcfb_info after this patch.

Tested with SM712.

Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/sm7xxfb/sm7xxfb.c

index c603e8c..e3511ec 100644 (file)
@@ -40,8 +40,8 @@ struct screen_info smtc_screen_info;
 * Private structure
 */
 struct smtcfb_info {
-       struct fb_info fb;
        struct pci_dev *pdev;
+       struct fb_info fb;
        u16 chip_id;
        u8  chip_rev_id;
 
@@ -328,9 +328,11 @@ static int smtc_blank(int blank_mode, struct fb_info *info)
 static int smtc_setcolreg(unsigned regno, unsigned red, unsigned green,
                          unsigned blue, unsigned trans, struct fb_info *info)
 {
-       struct smtcfb_info *sfb = (struct smtcfb_info *)info;
+       struct smtcfb_info *sfb;
        u32 val;
 
+       sfb = info->par;
+
        if (regno > 255)
                return 1;
 
@@ -623,9 +625,7 @@ static int smtc_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
 
 static int smtc_set_par(struct fb_info *info)
 {
-       struct smtcfb_info *sfb = (struct smtcfb_info *)info;
-
-       smtcfb_setmode(sfb);
+       smtcfb_setmode(info->par);
 
        return 0;
 }