Commit ff71ef94 authored by Ricardo Ribalda's avatar Ricardo Ribalda Committed by Hans Verkuil
Browse files

media: vivid: Move all fb_info references into vivid-osd



Most references to fb_info are already within vivid-osd.c. This patch
moves the remaining references into vivid-osd.c.

We also take this opportunity to make the function names in vivid-osd
more consistent.

This is a preparation patch to make CONFIG_FB optional for vivid.

Signed-off-by: default avatarRicardo Ribalda <ribalda@chromium.org>
Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
parent 308e51f4
Loading
Loading
Loading
Loading
+2 −8
Original line number Diff line number Diff line
@@ -1410,8 +1410,6 @@ static int vivid_create_queues(struct vivid_dev *dev)
		ret = vivid_fb_init(dev);
		if (ret)
			return ret;
		v4l2_info(&dev->v4l2_dev, "Framebuffer device registered as fb%d\n",
			  dev->fb_info.node);
	}
	return 0;
}
@@ -2197,12 +2195,8 @@ static void vivid_remove(struct platform_device *pdev)
				video_device_node_name(&dev->radio_tx_dev));
			video_unregister_device(&dev->radio_tx_dev);
		}
		if (dev->has_fb) {
			v4l2_info(&dev->v4l2_dev, "unregistering fb%d\n",
				dev->fb_info.node);
			unregister_framebuffer(&dev->fb_info);
			vivid_fb_release_buffers(dev);
		}
		if (dev->has_fb)
			vivid_fb_deinit(dev);
		if (dev->has_meta_cap) {
			v4l2_info(&dev->v4l2_dev, "unregistering %s\n",
				  video_device_node_name(&dev->meta_cap_dev));
+1 −1
Original line number Diff line number Diff line
@@ -402,7 +402,7 @@ static int vivid_fb_s_ctrl(struct v4l2_ctrl *ctrl)

	switch (ctrl->id) {
	case VIVID_CID_CLEAR_FB:
		vivid_clear_fb(dev);
		vivid_fb_clear(dev);
		break;
	}
	return 0;
+20 −4
Original line number Diff line number Diff line
@@ -45,13 +45,18 @@ static const u16 rgb565[16] = {
	0xffff, 0xffe0, 0x07ff, 0x07e0, 0xf81f, 0xf800, 0x001f, 0x0000
};

void vivid_clear_fb(struct vivid_dev *dev)
unsigned int vivid_fb_green_bits(struct vivid_dev *dev)
{
	return dev->fb_defined.green.length;
}

void vivid_fb_clear(struct vivid_dev *dev)
{
	void *p = dev->video_vbase;
	const u16 *rgb = rgb555;
	unsigned x, y;

	if (dev->fb_defined.green.length == 6)
	if (vivid_fb_green_bits(dev) == 6)
		rgb = rgb565;

	for (y = 0; y < dev->display_height; y++) {
@@ -333,7 +338,7 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
}

/* Release any memory we've grabbed */
void vivid_fb_release_buffers(struct vivid_dev *dev)
static void vivid_fb_release_buffers(struct vivid_dev *dev)
{
	if (dev->video_vbase == NULL)
		return;
@@ -370,7 +375,7 @@ int vivid_fb_init(struct vivid_dev *dev)
		return ret;
	}

	vivid_clear_fb(dev);
	vivid_fb_clear(dev);

	/* Register the framebuffer */
	if (register_framebuffer(&dev->fb_info) < 0) {
@@ -380,6 +385,17 @@ int vivid_fb_init(struct vivid_dev *dev)

	/* Set the card to the requested mode */
	vivid_fb_set_par(&dev->fb_info);

	v4l2_info(&dev->v4l2_dev, "Framebuffer device registered as fb%d\n",
		  dev->fb_info.node);

	return 0;

}

void vivid_fb_deinit(struct vivid_dev *dev)
{
	v4l2_info(&dev->v4l2_dev, "unregistering fb%d\n", dev->fb_info.node);
	unregister_framebuffer(&dev->fb_info);
	vivid_fb_release_buffers(dev);
}
+3 −2
Original line number Diff line number Diff line
@@ -9,7 +9,8 @@
#define _VIVID_OSD_H_

int vivid_fb_init(struct vivid_dev *dev);
void vivid_fb_release_buffers(struct vivid_dev *dev);
void vivid_clear_fb(struct vivid_dev *dev);
void vivid_fb_deinit(struct vivid_dev *dev);
void vivid_fb_clear(struct vivid_dev *dev);
unsigned int vivid_fb_green_bits(struct vivid_dev *dev);

#endif
+2 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include <media/v4l2-rect.h>

#include "vivid-core.h"
#include "vivid-osd.h"
#include "vivid-vid-common.h"
#include "vivid-kthread-out.h"
#include "vivid-vid-out.h"
@@ -907,7 +908,7 @@ int vivid_vid_out_g_fbuf(struct file *file, void *fh,
	a->base = (void *)dev->video_pbase;
	a->fmt.width = dev->display_width;
	a->fmt.height = dev->display_height;
	if (dev->fb_defined.green.length == 5)
	if (vivid_fb_green_bits(dev) == 5)
		a->fmt.pixelformat = V4L2_PIX_FMT_ARGB555;
	else
		a->fmt.pixelformat = V4L2_PIX_FMT_RGB565;