/*so, some values have changed location*/
                new_size = vbt->checksum; /*checksum contains lo size byte*/
                /*LSB of oaktrail_gct contains hi size byte*/
-               new_size |= ((0xff & (unsigned int)vbt->oaktrail_gct)) << 8;
+               new_size |= ((0xff & (unsigned int)(long)vbt->oaktrail_gct)) << 8;
 
                vbt->checksum = vbt->size; /*size contains the checksum*/
                if (new_size > 0xff)
                        vbt->size = new_size;
 
                /* number of descriptors defined in the GCT */
-               number_desc = ((0xff00 & (unsigned int)vbt->oaktrail_gct)) >> 8;
-               bpi = ((0xff0000 & (unsigned int)vbt->oaktrail_gct)) >> 16;
+               number_desc = ((0xff00 & (unsigned int)(long)vbt->oaktrail_gct)) >> 8;
+               bpi = ((0xff0000 & (unsigned int)(long)vbt->oaktrail_gct)) >> 16;
                vbt->oaktrail_gct = ioremap(addr + GCT_R10_HEADER_SIZE,
                                GCT_R10_DISPLAY_DESC_SIZE * number_desc);
                pGCT = vbt->oaktrail_gct;