From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZD6CW-0000dp-K0 for barebox@lists.infradead.org; Thu, 09 Jul 2015 07:24:57 +0000 From: Sascha Hauer Date: Thu, 9 Jul 2015 09:24:11 +0200 Message-Id: <1436426657-5266-8-git-send-email-s.hauer@pengutronix.de> In-Reply-To: <1436426657-5266-1-git-send-email-s.hauer@pengutronix.de> References: <1436426657-5266-1-git-send-email-s.hauer@pengutronix.de> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH 07/13] video: Add Video Pipeline (VPL) support To: Barebox List Complex video pipelines are modelled with the of_graph bindings in the devicetree. This patch adds a ioctl infrastructure to issue commands to the remote endpoint of a of_graph. Currently defined ioctls are prepare/unprepare, enable/disable and get_modes. This is enough to control LVDS or HDMI encoder or simple panels. A device node which contains of_graph endpoints can be registered as a VPL entity. An entity can receive ioctls via the .ioctl callback and also issue ioctls by calling vpl_ioctl. The core itself will never iterate over the entire pipeline. Instead, the different VPL entities should forward an ioctl to the next instance in the pipeline whenever necessary. Signed-off-by: Sascha Hauer --- drivers/video/Kconfig | 3 ++ drivers/video/Makefile | 1 + drivers/video/vpl.c | 115 +++++++++++++++++++++++++++++++++++++++++++++++++ include/fb.h | 1 + include/video/vpl.h | 46 ++++++++++++++++++++ 5 files changed, 166 insertions(+) create mode 100644 drivers/video/vpl.c create mode 100644 include/video/vpl.h diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 8e6ae99..6d540a5 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -5,6 +5,9 @@ menuconfig VIDEO if VIDEO +config VIDEO_VPL + bool + config DRIVER_VIDEO_ATMEL bool "Atmel LCDC framebuffer driver" depends on ARCH_AT91 diff --git a/drivers/video/Makefile b/drivers/video/Makefile index 76fad5c..3aa544a 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile @@ -3,6 +3,7 @@ obj-$(CONFIG_DRIVER_VIDEO_EDID) += edid.o obj-$(CONFIG_OFDEVICE) += of_display_timing.o obj-$(CONFIG_DRIVER_VIDEO_BACKLIGHT) += backlight.o obj-$(CONFIG_DRIVER_VIDEO_BACKLIGHT_PWM) += backlight-pwm.o +obj-$(CONFIG_VIDEO_VPL) += vpl.o obj-$(CONFIG_DRIVER_VIDEO_ATMEL) += atmel_lcdfb.o atmel_lcdfb_core.o obj-$(CONFIG_DRIVER_VIDEO_ATMEL_HLCD) += atmel_hlcdfb.o atmel_lcdfb_core.o diff --git a/drivers/video/vpl.c b/drivers/video/vpl.c new file mode 100644 index 0000000..99ad180 --- /dev/null +++ b/drivers/video/vpl.c @@ -0,0 +1,115 @@ +/* + * Video pipeline (VPL) support for barebox + * + * (C) Copyright 2014 Sascha Hauer, Pengutronix + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#define pr_fmt(fmt) "VPL: " fmt + +#include +#include +#include +#include +#include