mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
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: Ricardo Ribalda <ribalda@chromium.org> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
This commit is contained in:
parent
308e51f412
commit
ff71ef9478
5 changed files with 28 additions and 16 deletions
|
@ -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));
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue