mbox series

[0/2] fix LCD diplays sporadically not work

Message ID cover.1702890493.git.namcao@linutronix.de
Headers show
Series fix LCD diplays sporadically not work | expand

Message

Nam Cao Dec. 18, 2023, 9:57 a.m. UTC
Hi,

While working with a framebuffer displays, I noticed that the displays
sporadically do not show the image as I expect.

After investigation: this is because my devices use deferred IO, and by
closing the framebuffers, all pending deferred IO get cancelled. This
causes the image I sent to the devices to just vanish. Using fsync() does
not always help, because the driver's implementation of fsync() does not
guarantee that all pending work is flushed on return.

This series solves the problem by flush the workqueue in .release(). Also
flush the workqueue in .fsync(), as it is supposed to do.

Nam Cao (2):
  fb: flush deferred work in fb_deferred_io_fsync()
  fb: flush deferred IO before closing

 drivers/video/fbdev/core/fb_defio.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)