[PATCH] media: bcm2835-unicam: Fix querycap multiple caps

Eugen Hristev ehristev at kernel.org
Wed Jun 10 23:09:51 PDT 2026


The unicam exposes two video nodes, one for image, another for metadata.
Querycap should return the right caps for the respective node, not both.

video0:

Capabilities     : 0xa4200001
        Video Capture
        I/O MC
        Streaming
        Extended Pix Format
        Device Capabilities
Device Caps      : 0x24200001
        Video Capture
        I/O MC
        Streaming
        Extended Pix Format

video1:

Capabilities     : 0xa4a00000
        Metadata Capture
        I/O MC
        Streaming
        Extended Pix Format
        Device Capabilities
Device Caps      : 0x24a00000
        Metadata Capture
        I/O MC
        Streaming
        Extended Pix Format

Fixes: 392cd78d495f ("media: bcm2835-unicam: Add support for CCP2/CSI2 camera interface")
Signed-off-by: Eugen Hristev <ehristev at kernel.org>
---
 drivers/media/platform/broadcom/bcm2835-unicam.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/media/platform/broadcom/bcm2835-unicam.c b/drivers/media/platform/broadcom/bcm2835-unicam.c
index 8d28ba0b59a3..4bf36ce80047 100644
--- a/drivers/media/platform/broadcom/bcm2835-unicam.c
+++ b/drivers/media/platform/broadcom/bcm2835-unicam.c
@@ -1833,7 +1833,10 @@ static int unicam_querycap(struct file *file, void *priv,
 	strscpy(cap->driver, UNICAM_MODULE_NAME, sizeof(cap->driver));
 	strscpy(cap->card, UNICAM_MODULE_NAME, sizeof(cap->card));
 
-	cap->capabilities |= V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_META_CAPTURE;
+	if (is_image_node(node))
+		cap->capabilities |= V4L2_CAP_VIDEO_CAPTURE;
+	else
+		cap->capabilities |= V4L2_CAP_META_CAPTURE;
 
 	return 0;
 }

---
base-commit: a87737435cfa134f9cdcc696ba3080759d04cf72
change-id: 20260611-bcmpiqcap-f893a9ea2da9

Best regards,
--  
Eugen Hristev <ehristev at kernel.org>




More information about the linux-arm-kernel mailing list