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);
|
ret = vivid_fb_init(dev);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
v4l2_info(&dev->v4l2_dev, "Framebuffer device registered as fb%d\n",
|
|
||||||
dev->fb_info.node);
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2197,12 +2195,8 @@ static void vivid_remove(struct platform_device *pdev)
|
||||||
video_device_node_name(&dev->radio_tx_dev));
|
video_device_node_name(&dev->radio_tx_dev));
|
||||||
video_unregister_device(&dev->radio_tx_dev);
|
video_unregister_device(&dev->radio_tx_dev);
|
||||||
}
|
}
|
||||||
if (dev->has_fb) {
|
if (dev->has_fb)
|
||||||
v4l2_info(&dev->v4l2_dev, "unregistering fb%d\n",
|
vivid_fb_deinit(dev);
|
||||||
dev->fb_info.node);
|
|
||||||
unregister_framebuffer(&dev->fb_info);
|
|
||||||
vivid_fb_release_buffers(dev);
|
|
||||||
}
|
|
||||||
if (dev->has_meta_cap) {
|
if (dev->has_meta_cap) {
|
||||||
v4l2_info(&dev->v4l2_dev, "unregistering %s\n",
|
v4l2_info(&dev->v4l2_dev, "unregistering %s\n",
|
||||||
video_device_node_name(&dev->meta_cap_dev));
|
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) {
|
switch (ctrl->id) {
|
||||||
case VIVID_CID_CLEAR_FB:
|
case VIVID_CID_CLEAR_FB:
|
||||||
vivid_clear_fb(dev);
|
vivid_fb_clear(dev);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -45,13 +45,18 @@ static const u16 rgb565[16] = {
|
||||||
0xffff, 0xffe0, 0x07ff, 0x07e0, 0xf81f, 0xf800, 0x001f, 0x0000
|
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;
|
void *p = dev->video_vbase;
|
||||||
const u16 *rgb = rgb555;
|
const u16 *rgb = rgb555;
|
||||||
unsigned x, y;
|
unsigned x, y;
|
||||||
|
|
||||||
if (dev->fb_defined.green.length == 6)
|
if (vivid_fb_green_bits(dev) == 6)
|
||||||
rgb = rgb565;
|
rgb = rgb565;
|
||||||
|
|
||||||
for (y = 0; y < dev->display_height; y++) {
|
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 */
|
/* 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)
|
if (dev->video_vbase == NULL)
|
||||||
return;
|
return;
|
||||||
|
@ -370,7 +375,7 @@ int vivid_fb_init(struct vivid_dev *dev)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
vivid_clear_fb(dev);
|
vivid_fb_clear(dev);
|
||||||
|
|
||||||
/* Register the framebuffer */
|
/* Register the framebuffer */
|
||||||
if (register_framebuffer(&dev->fb_info) < 0) {
|
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 */
|
/* Set the card to the requested mode */
|
||||||
vivid_fb_set_par(&dev->fb_info);
|
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;
|
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_
|
#define _VIVID_OSD_H_
|
||||||
|
|
||||||
int vivid_fb_init(struct vivid_dev *dev);
|
int vivid_fb_init(struct vivid_dev *dev);
|
||||||
void vivid_fb_release_buffers(struct vivid_dev *dev);
|
void vivid_fb_deinit(struct vivid_dev *dev);
|
||||||
void vivid_clear_fb(struct vivid_dev *dev);
|
void vivid_fb_clear(struct vivid_dev *dev);
|
||||||
|
unsigned int vivid_fb_green_bits(struct vivid_dev *dev);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include <media/v4l2-rect.h>
|
#include <media/v4l2-rect.h>
|
||||||
|
|
||||||
#include "vivid-core.h"
|
#include "vivid-core.h"
|
||||||
|
#include "vivid-osd.h"
|
||||||
#include "vivid-vid-common.h"
|
#include "vivid-vid-common.h"
|
||||||
#include "vivid-kthread-out.h"
|
#include "vivid-kthread-out.h"
|
||||||
#include "vivid-vid-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->base = (void *)dev->video_pbase;
|
||||||
a->fmt.width = dev->display_width;
|
a->fmt.width = dev->display_width;
|
||||||
a->fmt.height = dev->display_height;
|
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;
|
a->fmt.pixelformat = V4L2_PIX_FMT_ARGB555;
|
||||||
else
|
else
|
||||||
a->fmt.pixelformat = V4L2_PIX_FMT_RGB565;
|
a->fmt.pixelformat = V4L2_PIX_FMT_RGB565;
|
||||||
|
|
Loading…
Add table
Reference in a new issue