RE: [PATCH v3 2/3] [media] bdisp: 2D blitter driver using v4l2 mem2mem framework
From: Mauro Carvalho Chehab [mailto:mche...@osg.samsung.com] Sent: samedi 6 juin 2015 12:43 To: Fabien DESSENNE Cc: linux-media@vger.kernel.org; Benjamin Gaignard; Hugues FRUCHET Subject: Re: [PATCH v3 2/3] [media] bdisp: 2D blitter driver using v4l2 mem2mem framework Em Tue, 12 May 2015 18:02:10 +0200 Fabien Dessenne fabien.desse...@st.com escreveu: This v4l2 mem2mem driver is a 2D blitter for STMicroelectronics SoC. It uses the v4l2 mem2mem framework. The following features are supported and tested: - Color format conversion (RGB32, RGB24, RGB16, NV12, YUV420P) - Copy - Scale - Flip - Deinterlace - Wide (4K) picture support - Crop Signed-off-by: Fabien Dessenne fabien.desse...@st.com Hmm... WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? #77: new file mode 100644 Who will maintain this driver? Please add the maintainers name at the MAINTAINERS file. Thanks, Mauro I will take care of it [fabien.desse...@st.com] As I am not comfortable with the maintainer list update procedure, may I ask you to update the MAINTAINERS file? Thanks, Fabien --- drivers/media/platform/Kconfig | 10 + drivers/media/platform/Makefile |2 + drivers/media/platform/sti/bdisp/Kconfig|9 + drivers/media/platform/sti/bdisp/Makefile |3 + drivers/media/platform/sti/bdisp/bdisp-filter.h | 346 ++ drivers/media/platform/sti/bdisp/bdisp-hw.c | 783 + drivers/media/platform/sti/bdisp/bdisp-reg.h| 235 drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 1404 +++ drivers/media/platform/sti/bdisp/bdisp.h| 186 +++ 9 files changed, 2978 insertions(+) create mode 100644 drivers/media/platform/sti/bdisp/Kconfig create mode 100644 drivers/media/platform/sti/bdisp/Makefile create mode 100644 drivers/media/platform/sti/bdisp/bdisp-filter.h create mode 100644 drivers/media/platform/sti/bdisp/bdisp-hw.c create mode 100644 drivers/media/platform/sti/bdisp/bdisp-reg.h create mode 100644 drivers/media/platform/sti/bdisp/bdisp-v4l2.c create mode 100644 drivers/media/platform/sti/bdisp/bdisp.h diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig index 2e30be5..005be89 100644 --- a/drivers/media/platform/Kconfig +++ b/drivers/media/platform/Kconfig @@ -210,6 +210,16 @@ config VIDEO_SAMSUNG_EXYNOS_GSC help This is a v4l2 driver for Samsung EXYNOS5 SoC G-Scaler. +config VIDEO_STI_BDISP + tristate STMicroelectronics BDISP 2D blitter driver + depends on VIDEO_DEV VIDEO_V4L2 + depends on ARCH_STI || COMPILE_TEST + depends on HAS_DMA + select VIDEOBUF2_DMA_CONTIG + select V4L2_MEM2MEM_DEV + help + This v4l2 mem2mem driver is a 2D blitter for STMicroelectronics SoC. + config VIDEO_SH_VEU tristate SuperH VEU mem2mem video processing driver depends on VIDEO_DEV VIDEO_V4L2 HAS_DMA diff --git a/drivers/media/platform/Makefile b/drivers/media/platform/Makefile index 3ec1547..b1fc862 100644 --- a/drivers/media/platform/Makefile +++ b/drivers/media/platform/Makefile @@ -34,6 +34,8 @@ obj-$(CONFIG_VIDEO_SAMSUNG_S5P_TV)+= s5p- tv/ obj-$(CONFIG_VIDEO_SAMSUNG_S5P_G2D)+= s5p-g2d/ obj-$(CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC) += exynos-gsc/ +obj-$(CONFIG_VIDEO_STI_BDISP) += sti/bdisp/ + obj-$(CONFIG_BLACKFIN) += blackfin/ obj-$(CONFIG_ARCH_DAVINCI) += davinci/ diff --git a/drivers/media/platform/sti/bdisp/Kconfig b/drivers/media/platform/sti/bdisp/Kconfig new file mode 100644 index 000..afaf4a6 --- /dev/null +++ b/drivers/media/platform/sti/bdisp/Kconfig @@ -0,0 +1,9 @@ +config VIDEO_STI_BDISP + tristate STMicroelectronics BDISP 2D blitter driver + depends on VIDEO_DEV VIDEO_V4L2 + select VIDEOBUF2_DMA_CONTIG + select V4L2_MEM2MEM_DEV + help +This v4l2 mem2mem driver is a 2D blitter for STMicroelectronics SoC. +To compile this driver as a module, choose M here: the module will +be called bdisp.ko. diff --git a/drivers/media/platform/sti/bdisp/Makefile b/drivers/media/platform/sti/bdisp/Makefile new file mode 100644 index 000..2605094 --- /dev/null +++ b/drivers/media/platform/sti/bdisp/Makefile @@ -0,0 +1,3 @@ +obj-$(CONFIG_VIDEO_STI_BDISP) := bdisp.o + +bdisp-objs := bdisp-v4l2.o bdisp-hw.o diff --git a/drivers/media/platform/sti/bdisp/bdisp-filter.h b/drivers/media/platform/sti/bdisp/bdisp-filter.h new file mode 100644 index 000..fc8c54f --- /dev/null +++ b/drivers/media/platform/sti/bdisp/bdisp-filter.h @@ -0,0 +1,346 @@ +/* + * Copyright (C) STMicroelectronics SA 2014 + * Authors: Fabien Dessenne fabien.desse...@st.com for STMicroelectronics. + * License terms: GNU General Public License (GPL), version 2 + */ + +#define
Re: [PATCH v3 2/3] [media] bdisp: 2D blitter driver using v4l2 mem2mem framework
Em Tue, 12 May 2015 18:02:10 +0200 Fabien Dessenne fabien.desse...@st.com escreveu: This v4l2 mem2mem driver is a 2D blitter for STMicroelectronics SoC. It uses the v4l2 mem2mem framework. The following features are supported and tested: - Color format conversion (RGB32, RGB24, RGB16, NV12, YUV420P) - Copy - Scale - Flip - Deinterlace - Wide (4K) picture support - Crop Signed-off-by: Fabien Dessenne fabien.desse...@st.com Hmm... WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? #77: new file mode 100644 Who will maintain this driver? Please add the maintainers name at the MAINTAINERS file. Thanks, Mauro --- drivers/media/platform/Kconfig | 10 + drivers/media/platform/Makefile |2 + drivers/media/platform/sti/bdisp/Kconfig|9 + drivers/media/platform/sti/bdisp/Makefile |3 + drivers/media/platform/sti/bdisp/bdisp-filter.h | 346 ++ drivers/media/platform/sti/bdisp/bdisp-hw.c | 783 + drivers/media/platform/sti/bdisp/bdisp-reg.h| 235 drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 1404 +++ drivers/media/platform/sti/bdisp/bdisp.h| 186 +++ 9 files changed, 2978 insertions(+) create mode 100644 drivers/media/platform/sti/bdisp/Kconfig create mode 100644 drivers/media/platform/sti/bdisp/Makefile create mode 100644 drivers/media/platform/sti/bdisp/bdisp-filter.h create mode 100644 drivers/media/platform/sti/bdisp/bdisp-hw.c create mode 100644 drivers/media/platform/sti/bdisp/bdisp-reg.h create mode 100644 drivers/media/platform/sti/bdisp/bdisp-v4l2.c create mode 100644 drivers/media/platform/sti/bdisp/bdisp.h diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig index 2e30be5..005be89 100644 --- a/drivers/media/platform/Kconfig +++ b/drivers/media/platform/Kconfig @@ -210,6 +210,16 @@ config VIDEO_SAMSUNG_EXYNOS_GSC help This is a v4l2 driver for Samsung EXYNOS5 SoC G-Scaler. +config VIDEO_STI_BDISP + tristate STMicroelectronics BDISP 2D blitter driver + depends on VIDEO_DEV VIDEO_V4L2 + depends on ARCH_STI || COMPILE_TEST + depends on HAS_DMA + select VIDEOBUF2_DMA_CONTIG + select V4L2_MEM2MEM_DEV + help + This v4l2 mem2mem driver is a 2D blitter for STMicroelectronics SoC. + config VIDEO_SH_VEU tristate SuperH VEU mem2mem video processing driver depends on VIDEO_DEV VIDEO_V4L2 HAS_DMA diff --git a/drivers/media/platform/Makefile b/drivers/media/platform/Makefile index 3ec1547..b1fc862 100644 --- a/drivers/media/platform/Makefile +++ b/drivers/media/platform/Makefile @@ -34,6 +34,8 @@ obj-$(CONFIG_VIDEO_SAMSUNG_S5P_TV) += s5p-tv/ obj-$(CONFIG_VIDEO_SAMSUNG_S5P_G2D) += s5p-g2d/ obj-$(CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC) += exynos-gsc/ +obj-$(CONFIG_VIDEO_STI_BDISP)+= sti/bdisp/ + obj-$(CONFIG_BLACKFIN) += blackfin/ obj-$(CONFIG_ARCH_DAVINCI) += davinci/ diff --git a/drivers/media/platform/sti/bdisp/Kconfig b/drivers/media/platform/sti/bdisp/Kconfig new file mode 100644 index 000..afaf4a6 --- /dev/null +++ b/drivers/media/platform/sti/bdisp/Kconfig @@ -0,0 +1,9 @@ +config VIDEO_STI_BDISP + tristate STMicroelectronics BDISP 2D blitter driver + depends on VIDEO_DEV VIDEO_V4L2 + select VIDEOBUF2_DMA_CONTIG + select V4L2_MEM2MEM_DEV + help + This v4l2 mem2mem driver is a 2D blitter for STMicroelectronics SoC. + To compile this driver as a module, choose M here: the module will + be called bdisp.ko. diff --git a/drivers/media/platform/sti/bdisp/Makefile b/drivers/media/platform/sti/bdisp/Makefile new file mode 100644 index 000..2605094 --- /dev/null +++ b/drivers/media/platform/sti/bdisp/Makefile @@ -0,0 +1,3 @@ +obj-$(CONFIG_VIDEO_STI_BDISP) := bdisp.o + +bdisp-objs := bdisp-v4l2.o bdisp-hw.o diff --git a/drivers/media/platform/sti/bdisp/bdisp-filter.h b/drivers/media/platform/sti/bdisp/bdisp-filter.h new file mode 100644 index 000..fc8c54f --- /dev/null +++ b/drivers/media/platform/sti/bdisp/bdisp-filter.h @@ -0,0 +1,346 @@ +/* + * Copyright (C) STMicroelectronics SA 2014 + * Authors: Fabien Dessenne fabien.desse...@st.com for STMicroelectronics. + * License terms: GNU General Public License (GPL), version 2 + */ + +#define BDISP_HF_NB 64 +#define BDISP_VF_NB 40 + +/** + * struct bdisp_filter_h_spec - Horizontal filter specification + * + * @min:min scale factor for this filter (6.10 fixed point) + * @max:max scale factor for this filter (6.10 fixed point) + * coef:filter coefficients + */ +struct bdisp_filter_h_spec { + const u16 min; + const u16 max; + const u8 coef[BDISP_HF_NB]; +}; + +static const struct bdisp_filter_h_spec bdisp_h_spec[] = { + { + .min