pdev = to_platform_device(dev);
        pdata = pdev->dev.platform_data;
 
-       if (pdata == NULL) {
-               printk(KERN_ERR "Couldn't find platform data.\n");
-               return -EFAULT;
-       }
-
        drvdata = kzalloc(sizeof(*drvdata), GFP_KERNEL);
        if (!drvdata) {
                printk(KERN_ERR "Couldn't allocate device private record\n");
        xilinx_fb_out_be32(drvdata, REG_FB_ADDR, drvdata->fb_phys);
 
        /* Turn on the display */
-       if (pdata->rotate_screen) {
-               drvdata->reg_ctrl_default = REG_CTRL_ENABLE | REG_CTRL_ROTATE;
-       } else {
-               drvdata->reg_ctrl_default = REG_CTRL_ENABLE;
-       }
+       drvdata->reg_ctrl_default = REG_CTRL_ENABLE;
+       if (pdata && pdata->rotate_screen)
+               drvdata->reg_ctrl_default |= REG_CTRL_ROTATE;
        xilinx_fb_out_be32(drvdata, REG_CTRL, drvdata->reg_ctrl_default);
 
        /* Fill struct fb_info */
        }
 
        drvdata->info.flags = FBINFO_DEFAULT;
-       xilinx_fb_var.height = pdata->screen_height_mm;
-       xilinx_fb_var.width = pdata->screen_width_mm;
+       if (pdata) {
+               xilinx_fb_var.height = pdata->screen_height_mm;
+               xilinx_fb_var.width = pdata->screen_width_mm;
+       }
        drvdata->info.var = xilinx_fb_var;
 
        /* Register new frame buffer */