{
        struct screen_info *si = &screen_info;
        struct device *parent;
+       unsigned int type;
        struct simplefb_platform_data mode;
        const char *name;
        bool compatible;
                        goto put_device;
        }
 
+       type = screen_info_video_type(si);
+
        /* if the FB is incompatible, create a legacy framebuffer device */
-       if (si->orig_video_isVGA == VIDEO_TYPE_EFI)
-               name = "efi-framebuffer";
-       else if (si->orig_video_isVGA == VIDEO_TYPE_VLFB)
-               name = "vesa-framebuffer";
-       else if (si->orig_video_isVGA == VIDEO_TYPE_VGAC)
-               name = "vga-framebuffer";
-       else if (si->orig_video_isVGA == VIDEO_TYPE_EGAC)
+       switch (type) {
+       case VIDEO_TYPE_EGAC:
                name = "ega-framebuffer";
-       else
+               break;
+       case VIDEO_TYPE_VGAC:
+               name = "vga-framebuffer";
+               break;
+       case VIDEO_TYPE_VLFB:
+               name = "vesa-framebuffer";
+               break;
+       case VIDEO_TYPE_EFI:
+               name = "efi-framebuffer";
+               break;
+       default:
                name = "platform-framebuffer";
+               break;
+       }
 
        pd = platform_device_alloc(name, 0);
        if (!pd) {