diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c
index 415858b..27a21d1 100644
--- a/drivers/video/pxafb.c
+++ b/drivers/video/pxafb.c
@@ -1223,12 +1223,17 @@ static int pxafb_smart_thread(void *arg)
 	struct pxafb_info *fbi = arg;
 	struct pxafb_mach_info *inf;
 
-	if (!fbi || !fbi->dev->platform_data->smart_update) {
+	if (!fbi) {
 		pr_err("%s: not properly initialized, thread terminated\n",
 				__func__);
 		return -EINVAL;
 	}
 	inf = fbi->dev->platform_data;
+        if (!inf->smart_update) {
+                pr_err("%s: not properly initialized, thread terminated\n",
+                                __func__);
+                return -EINVAL;
+        }
 
 	pr_debug("%s(): task starting\n", __func__);
 
