Skip to content

Commit 20889dd

Browse files
ribaldahverkuil
authored andcommitted
media: vivid: Introduce VIDEO_VIVID_OSD
vivid-osd depends on CONFIG_FB, which can be a large dependency. Introduce CONFIG_VIDEO_VIVID_OSD to control enabling support for testing output overlay. Suggested-by: Slawomir Rosek <srosek@google.com> Co-developed-by: Slawomir Rosek <srosek@google.com> Signed-off-by: Slawomir Rosek <srosek@google.com> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> [hverkuil: add newline to squash checkpatch warning]
1 parent ff71ef9 commit 20889dd

File tree

5 files changed

+34
-3
lines changed

5 files changed

+34
-3
lines changed

drivers/media/test-drivers/vivid/Kconfig

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
# SPDX-License-Identifier: GPL-2.0-only
22
config VIDEO_VIVID
33
tristate "Virtual Video Test Driver"
4-
depends on VIDEO_DEV && !SPARC32 && !SPARC64 && FB
4+
depends on VIDEO_DEV && !SPARC32 && !SPARC64
55
depends on HAS_DMA
6-
select FB_IOMEM_HELPERS
76
select FONT_SUPPORT
87
select FONT_8x16
98
select VIDEOBUF2_VMALLOC
@@ -31,6 +30,15 @@ config VIDEO_VIVID_CEC
3130
When selected the vivid module will emulate the optional
3231
HDMI CEC feature.
3332

33+
config VIDEO_VIVID_OSD
34+
bool "Enable Framebuffer for testing Output Overlay"
35+
depends on VIDEO_VIVID && FB
36+
default y
37+
select FB_IOMEM_HELPERS
38+
help
39+
When selected the vivid module will emulate a Framebuffer for
40+
testing Output Overlay.
41+
3442
config VIDEO_VIVID_MAX_DEVS
3543
int "Maximum number of devices"
3644
depends on VIDEO_VIVID

drivers/media/test-drivers/vivid/Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ vivid-objs := vivid-core.o vivid-ctrls.o vivid-vid-common.o vivid-vbi-gen.o \
33
vivid-vid-cap.o vivid-vid-out.o vivid-kthread-cap.o vivid-kthread-out.o \
44
vivid-radio-rx.o vivid-radio-tx.o vivid-radio-common.o \
55
vivid-rds-gen.o vivid-sdr-cap.o vivid-vbi-cap.o vivid-vbi-out.o \
6-
vivid-osd.o vivid-meta-cap.o vivid-meta-out.o \
6+
vivid-meta-cap.o vivid-meta-out.o \
77
vivid-kthread-touch.o vivid-touch-cap.o
88
ifeq ($(CONFIG_VIDEO_VIVID_CEC),y)
99
vivid-objs += vivid-cec.o
1010
endif
11+
ifeq ($(CONFIG_VIDEO_VIVID_OSD),y)
12+
vivid-objs += vivid-osd.o
13+
endif
1114

1215
obj-$(CONFIG_VIDEO_VIVID) += vivid.o

drivers/media/test-drivers/vivid/vivid-core.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,9 @@ MODULE_PARM_DESC(node_types, " node types, default is 0xe1d3d. Bitmask with the
125125
"\t\t bit 8: Video Output node\n"
126126
"\t\t bit 10-11: VBI Output node: 0 = none, 1 = raw vbi, 2 = sliced vbi, 3 = both\n"
127127
"\t\t bit 12: Radio Transmitter node\n"
128+
#ifdef CONFIG_VIDEO_VIVID_OSD
128129
"\t\t bit 16: Framebuffer for testing output overlays\n"
130+
#endif
129131
"\t\t bit 17: Metadata Capture node\n"
130132
"\t\t bit 18: Metadata Output node\n"
131133
"\t\t bit 19: Touch Capture node\n");
@@ -1071,9 +1073,11 @@ static int vivid_detect_feature_set(struct vivid_dev *dev, int inst,
10711073
/* do we have a modulator? */
10721074
*has_modulator = dev->has_radio_tx;
10731075

1076+
#ifdef CONFIG_VIDEO_VIVID_OSD
10741077
if (dev->has_vid_cap)
10751078
/* do we have a framebuffer for overlay testing? */
10761079
dev->has_fb = node_type & 0x10000;
1080+
#endif
10771081

10781082
/* can we do crop/compose/scaling while capturing? */
10791083
if (no_error_inj && *ccs_cap == -1)

drivers/media/test-drivers/vivid/vivid-core.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,9 +403,11 @@ struct vivid_dev {
403403
int display_byte_stride;
404404
int bits_per_pixel;
405405
int bytes_per_pixel;
406+
#ifdef CONFIG_VIDEO_VIVID_OSD
406407
struct fb_info fb_info;
407408
struct fb_var_screeninfo fb_defined;
408409
struct fb_fix_screeninfo fb_fix;
410+
#endif
409411

410412
/* Error injection */
411413
bool disconnect_error;

drivers/media/test-drivers/vivid/vivid-osd.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,23 @@
88
#ifndef _VIVID_OSD_H_
99
#define _VIVID_OSD_H_
1010

11+
#ifdef CONFIG_VIDEO_VIVID_OSD
1112
int vivid_fb_init(struct vivid_dev *dev);
1213
void vivid_fb_deinit(struct vivid_dev *dev);
1314
void vivid_fb_clear(struct vivid_dev *dev);
1415
unsigned int vivid_fb_green_bits(struct vivid_dev *dev);
16+
#else
17+
static inline int vivid_fb_init(struct vivid_dev *dev)
18+
{
19+
return -ENODEV;
20+
}
21+
22+
static inline void vivid_fb_deinit(struct vivid_dev *dev) {}
23+
static inline void vivid_fb_clear(struct vivid_dev *dev) {}
24+
static inline unsigned int vivid_fb_green_bits(struct vivid_dev *dev)
25+
{
26+
return 5;
27+
}
28+
#endif
1529

1630
#endif

0 commit comments

Comments
 (0)