OMAPDSS: APPLY: print warning if wait_pending_extra_info_updates fails
wait_pending_extra_info_updates() currently does a hacky second check for extra_info_update_ongoing() at the end of the function to show a warning if extra_info update is still ongoing. The call to extra_info_update_ongoing() should really be inside spinlock, but that's a bit heavy just for verification. Rather than that, check the return value of the wait_for_completion_timeout() and print an error if it has timeouted or returned an error. Even better would be to return the error value and act on it in the callers of wait_pending_extra_info_updates. However, it's not clear what the callers should do in case of an error, as the error should only happen if there's a bug in the driver or the HW. So we'll just print the warning for now. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
Родитель
21e56f79ab
Коммит
4614679c9d
|
@ -354,6 +354,7 @@ static void wait_pending_extra_info_updates(void)
|
|||
bool updating;
|
||||
unsigned long flags;
|
||||
unsigned long t;
|
||||
int r;
|
||||
|
||||
spin_lock_irqsave(&data_lock, flags);
|
||||
|
||||
|
@ -369,11 +370,11 @@ static void wait_pending_extra_info_updates(void)
|
|||
spin_unlock_irqrestore(&data_lock, flags);
|
||||
|
||||
t = msecs_to_jiffies(500);
|
||||
wait_for_completion_timeout(&extra_updated_completion, t);
|
||||
|
||||
updating = extra_info_update_ongoing();
|
||||
|
||||
WARN_ON(updating);
|
||||
r = wait_for_completion_timeout(&extra_updated_completion, t);
|
||||
if (r == 0)
|
||||
DSSWARN("timeout in wait_pending_extra_info_updates\n");
|
||||
else if (r < 0)
|
||||
DSSERR("wait_pending_extra_info_updates failed: %d\n", r);
|
||||
}
|
||||
|
||||
int dss_mgr_wait_for_go(struct omap_overlay_manager *mgr)
|
||||
|
|
Загрузка…
Ссылка в новой задаче