Hello, On V4L2 brainstorming meeting in Warsaw we discussed the need of a framebuffer userspace interface for video output devices. Such framebuffer interface is aimed mainly for legacy applications and/or interoperatibility with Xfbdev. I proposed to give the idea of generic fb-on-top-of-video-node a second try, now using the power of videobuf2. This short patch series demonstrates that this approach is possible. We succesfully implemented a framebuffer emulator and tested it with s5p-hdmi driver on Samsung Exynos4 platform. This initial version provides a basic non-accelerated framebuffer device. The emulation is started on the first open of the framebuffer device and stopped on last close. The framebuffer boots in 'blanked' mode, so one also needs to make a call to blank ioctl (with FB_BLANK_UNBLANK argument) to enable video output. We successfully managed to get vanilla Xfbdev server working on top of it without ANY changes in X server sources. The framebuffer resolution and pixel format is autoconfigured from the parameters of the corresponding video output node. One can use v4l2-ctrl (or similar) tool to select pixel format, resolution, output, etc (and in the near future also the composition on the target video device). There a few requirements for the video output driver: 1. support for single-buffering mode 2. support for videoc_ioctl interface (this might change in the future) 3. use memory allocator that allows coherent mappings (mmaped framebuffer will be accessed by application while it is displayed by dma engine). The changes that are needed in the video output driver are really simple. Mainly one need to add just a call to vb2_fb_register(q, vfd) and vb2_fb_register(fb) functions. The future versions might aslo include the following features: - vsync event translation into WAIT_VSYNC framebuffer ioctl - support for frame buffer panning with upcoming S_COMPOSE ioctl The patch series is based on the V2 of the s5p-hdmi driver. The complete kernel tree will be available on: git://git.infradead.org/users/kmpark/linux-2.6-samsung vb2-fb-tv branch. An updated s5p-hdmi/tv driver will be posted soon. Best regards -- Marek Szyprowski Samsung Poland R&D Center Complete patch summary: Marek Szyprowski (2): media: vb2: add frame buffer emulator for video output devices media: s5p-hdmi: add support for frame buffer emulator drivers/media/video/Kconfig | 7 + drivers/media/video/Makefile | 1 + drivers/media/video/s5p-tv/Kconfig | 1 + drivers/media/video/s5p-tv/mixer.h | 2 + drivers/media/video/s5p-tv/mixer_video.c | 10 + drivers/media/video/videobuf2-fb.c | 565 ++++++++++++++++++++++++++++++ include/media/videobuf2-fb.h | 22 ++ 7 files changed, 608 insertions(+), 0 deletions(-) create mode 100644 drivers/media/video/videobuf2-fb.c create mode 100644 include/media/videobuf2-fb.h -- 1.7.1.569.g6f426 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html