On Thu Mar 6 13:27:30 2025 +0000, Ricardo Ribalda wrote:
> 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 <riba...@chromium.org>
> Signed-off-by: Hans Verkuil <hverk...@xs4all.nl>

Patch committed.

Thanks,
Hans Verkuil

 drivers/media/test-drivers/vivid/vivid-core.c    | 10 ++--------
 drivers/media/test-drivers/vivid/vivid-ctrls.c   |  2 +-
 drivers/media/test-drivers/vivid/vivid-osd.c     | 24 ++++++++++++++++++++----
 drivers/media/test-drivers/vivid/vivid-osd.h     |  5 +++--
 drivers/media/test-drivers/vivid/vivid-vid-out.c |  3 ++-
 5 files changed, 28 insertions(+), 16 deletions(-)

---

diff --git a/drivers/media/test-drivers/vivid/vivid-core.c 
b/drivers/media/test-drivers/vivid/vivid-core.c
index 7477ac8cb955..10f5bef3f49c 100644
--- a/drivers/media/test-drivers/vivid/vivid-core.c
+++ b/drivers/media/test-drivers/vivid/vivid-core.c
@@ -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));
diff --git a/drivers/media/test-drivers/vivid/vivid-ctrls.c 
b/drivers/media/test-drivers/vivid/vivid-ctrls.c
index 57346b714534..e340df0b6261 100644
--- a/drivers/media/test-drivers/vivid/vivid-ctrls.c
+++ b/drivers/media/test-drivers/vivid/vivid-ctrls.c
@@ -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;
diff --git a/drivers/media/test-drivers/vivid/vivid-osd.c 
b/drivers/media/test-drivers/vivid/vivid-osd.c
index 5c931b94a7b5..91ad9b314f2e 100644
--- a/drivers/media/test-drivers/vivid/vivid-osd.c
+++ b/drivers/media/test-drivers/vivid/vivid-osd.c
@@ -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);
+}
diff --git a/drivers/media/test-drivers/vivid/vivid-osd.h 
b/drivers/media/test-drivers/vivid/vivid-osd.h
index f9ac1af25dd3..9a7ef83e6eb2 100644
--- a/drivers/media/test-drivers/vivid/vivid-osd.h
+++ b/drivers/media/test-drivers/vivid/vivid-osd.h
@@ -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
diff --git a/drivers/media/test-drivers/vivid/vivid-vid-out.c 
b/drivers/media/test-drivers/vivid/vivid-vid-out.c
index 5ec84db934d6..c3398bce6c15 100644
--- a/drivers/media/test-drivers/vivid/vivid-vid-out.c
+++ b/drivers/media/test-drivers/vivid/vivid-vid-out.c
@@ -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;

Reply via email to