diff --git a/drivers/video/fb.c b/drivers/video/fb.c index 508ef84257b..a1b2877b7a7 100644 --- a/drivers/video/fb.c +++ b/drivers/video/fb.c @@ -685,8 +685,15 @@ static int fb_ioctl(FAR struct file *filep, int cmd, unsigned long arg) break; default: - gerr("ERROR: Unsupported IOCTL command: %d\n", cmd); - ret = -ENOTTY; + if (fb->vtable->ioctl != NULL) + { + ret = fb->vtable->ioctl(fb->vtable, cmd, arg); + } + else + { + gerr("ERROR: Unsupported IOCTL command: %d\n", cmd); + ret = -ENOTTY; + } break; } diff --git a/include/nuttx/video/fb.h b/include/nuttx/video/fb.h index 3c39fdbe09d..9e12383d0b2 100644 --- a/include/nuttx/video/fb.h +++ b/include/nuttx/video/fb.h @@ -793,6 +793,10 @@ struct fb_vtable_s int (*setpower)(FAR struct fb_vtable_s *vtable, int power); + /* Passthrough the unknown ioctl commands. */ + + int (*ioctl)(FAR struct fb_vtable_s *vtable, int cmd, unsigned long arg); + /* Pointer to framebuffer device private data. */ FAR void *priv;