From patchwork Thu Nov 5 23:23:09 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Faizel K B X-Patchwork-Id: 28779 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id E1B5DC3307 for ; Thu, 5 Nov 2026 23:23:41 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 93BD26A7C7; Fri, 6 Nov 2026 00:23:41 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="HTiiYs4o"; dkim-atps=neutral Received: from mail-pl1-x634.google.com (mail-pl1-x634.google.com [IPv6:2607:f8b0:4864:20::634]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 6E4406A7BA for ; Fri, 6 Nov 2026 00:23:39 +0100 (CET) Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-2ed0f842b02so59655ad.3 for ; Thu, 05 Nov 2026 15:23:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793921018; x=1794525818; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=rloPnHEOePgtL/g9wYI+1ZAXqmS3tU4v9p3VsYEL1+s=; b=HTiiYs4oQ0yFmm17F64prD5a0AB3QKYX9qOw3m2iRdces3LHdB7JGISFrgrtSGo+Ih l9FY2nCLs264SzrLWnSy+tNwXYiA5q9j6P0Q4cve6gmwBYDE3lmkFnOD2618vMgjn/25 RDyMB/3fDCLQpJZbD2tLuDcyu5oL5cUhDcIkyvkuhZNBvqnW6+Hi3XhYvAJu8GH8hoox 30nnj5mId9k9GrWE4+uxPFt3S5jhWe9b5pWxWwSRUqsQWpMEMHTISX6ghMRoj68KVB2t Yy4fuiIJo/SI9PnY8+2Sp1Wvx7W50rqDHxJqmU1rkd935rCYeO13gNzvnrn449CBPelv kH0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793921018; x=1794525818; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=rloPnHEOePgtL/g9wYI+1ZAXqmS3tU4v9p3VsYEL1+s=; b=uE1tQiBP2K+OY/YjVRppwZsQ6vvO08AutaAwgxBmy5HPTTXyXaLzsXXUFgqxdksFUg vWn5kAXxPdsSouUaVwxpwKwagbv0ZNixTlJvhk89LeVbhywht3rul7/6L+VGMIB1E1bb sVPNLqFHHD+z870d5ZBDoxm3/saXR+Y6cNKxP9O9fdiW6TadFhhL2zfM3FJETGKFUeDW wEquQZaBZYSVJQgE0nK152vaXr5qBOlLYao9eNUVu1GCiJ8J9EFRzmt1QdHDCk/sIgJE 38b7rvwaMECYM+iVBylhyTpMebZshoHb7dbWZ/Ck8w4qAPIF8hbCp1x9x/hx4IaPF2d8 AFEg== X-Forwarded-Encrypted: i=1; AKwUvBzEFezsqR02UbMbP+zlolr079KeK/4uvQIXBN7r4Q+FkM4+y5j7YaN9DRh2NjCAjnp1GB59k01/zPD5ZUP176M=@lists.libcamera.org X-Gm-Message-State: APuU4Z9vAMuvIGzDj0O1dXzZovJbTlAXzWKivWUOdOC1vuPWvlX6pm8T O++Br3V4N6ActGYwzSJgY/61BAoGYueLiw74MojwTpQR1+zcOBLYIKmF X-Gm-Gg: AYBFou1Cse853hfEWXNuHwPLajCvr5xw6nttXuancraV5PyVYVdZ8fTBrSlObqWDho/ 7Yv4x0W56eZ5F/eyOCv/uLksbb/zDxQJv6SlJd+hylOxnxDEmI5kC3IGCjP3IHVffBRWNbXLMfG bCNZkmnGHj9Ww3r10W13GwupPhCgfXI5RscQXCVEnP41gWDeuwnOO3AAiFfES/e50zaoG+/H5G2 2s8S+FU4b/i1QkHblpUpHwhDhxBX2cj+ck4RuiP8sUm/nqcNijbgEAvQMAwvnzO54dSOGu5YOrG 44zknEfGigXbPit17ePqLaYdsXPgbNnRVvxWS9DMSY6Xo4u87KLr4mkTSQzxmbcjxF2zMg9b+VU 8CZcJc/cWH/t4MkpibLbq3U4vUw8jnAxBzH8IYjEISLIleKADUj3FaA69u6MK8ROVY+gR8qb+AO z7Q/N9caRhhXrWCrDrnuBfoWQLdViwMvUvuQqBN5f7/FezsZwmc2A5un3truiGKdH1iEpVKA2/N 2JKoAElPMJQmQ6qiee+JKzSl6gkPhHXcMyAeCw1l/00yeXpmOi8PTdGWHF5hdODJQ1zhN9uAlVr 5ucv/GSjahzfSvThPuzD937xxE30XA2fPKMIuQ2U0spPH5His+uwtr1an4Ciauk= X-Received: by 2002:a17:90b:518c:b0:3b0:9984:18c6 with SMTP id 98e67ed59e1d1-3b0db6e1fafmr885341a91.3.1793921017864; Thu, 05 Nov 2026 15:23:37 -0800 (PST) Received: from FAIZEL-KB.. ([2001:569:5b64:e100:f564:53e0:ae9d:9600]) by smtp.googlemail.com with ESMTPSA id 98e67ed59e1d1-3b0b323cd3csm5317297a91.3.2026.11.05.15.23.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Nov 2026 15:23:37 -0800 (PST) From: Faizel K B To: Mehdi Djait , Michael Riesch Cc: Mauro Carvalho Chehab , Heiko Stuebner , linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, libcamera-devel@lists.libcamera.org, Robert Mader , Faizel K B Subject: [PATCH 1/2] media: rockchip: rkcif: Filter enumerated formats by media bus code Date: Thu, 5 Nov 2026 16:23:09 -0700 Message-ID: <20261105232310.385463-2-faizel.kb@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261105232310.385463-1-faizel.kb@gmail.com> References: <20261105232310.385463-1-faizel.kb@gmail.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" VIDIOC_ENUM_FMT ignores the mbus_code field and returns all formats, although the video devices set V4L2_CAP_IO_MC. Return only the formats that match the requested media bus code. Otherwise userspace can pick a pixel format that doesn't match the media bus format, and then interprets the captured data in the wrong format. Signed-off-by: Faizel K B --- .../media/platform/rockchip/rkcif/rkcif-stream.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-stream.c b/drivers/media/platform/rockchip/rkcif/rkcif-stream.c index 3130d420ad55..f2a24832a8cf 100644 --- a/drivers/media/platform/rockchip/rkcif/rkcif-stream.c +++ b/drivers/media/platform/rockchip/rkcif/rkcif-stream.c @@ -395,13 +395,20 @@ static int rkcif_stream_enum_formats(struct file *file, void *priv, struct v4l2_fmtdesc *f) { struct rkcif_stream *stream = video_drvdata(file); + unsigned int i, n = 0; - if (f->index >= stream->out_fmts_num) - return -EINVAL; + for (i = 0; i < stream->out_fmts_num; i++) { + if (f->mbus_code && + stream->out_fmts[i].mbus_code != f->mbus_code) + continue; - f->pixelformat = stream->out_fmts[f->index].fourcc; + if (n++ == f->index) { + f->pixelformat = stream->out_fmts[i].fourcc; + return 0; + } + } - return 0; + return -EINVAL; } static int rkcif_stream_enum_framesizes(struct file *file, void *fh,