|
@@ -794,11 +794,15 @@ static int pxafb_smart_thread(void *arg)
|
|
if (try_to_freeze())
|
|
if (try_to_freeze())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
|
|
+ mutex_lock(&fbi->ctrlr_lock);
|
|
|
|
+
|
|
if (fbi->state == C_ENABLE) {
|
|
if (fbi->state == C_ENABLE) {
|
|
inf->smart_update(&fbi->fb);
|
|
inf->smart_update(&fbi->fb);
|
|
complete(&fbi->refresh_done);
|
|
complete(&fbi->refresh_done);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ mutex_unlock(&fbi->ctrlr_lock);
|
|
|
|
+
|
|
set_current_state(TASK_INTERRUPTIBLE);
|
|
set_current_state(TASK_INTERRUPTIBLE);
|
|
schedule_timeout(30 * HZ / 1000);
|
|
schedule_timeout(30 * HZ / 1000);
|
|
}
|
|
}
|