Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp652135ybz; Fri, 1 May 2020 06:13:10 -0700 (PDT) X-Google-Smtp-Source: APiQypJa7b3/yHbpQ3QGY+V4qLwsR/A6O//F/dBCJCx+miwF3d/lLb66xUqfgICLzHMm8CSLAouM X-Received: by 2002:a17:906:6411:: with SMTP id d17mr3150238ejm.109.1588338790517; Fri, 01 May 2020 06:13:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588338790; cv=none; d=google.com; s=arc-20160816; b=SsKVY7ykUKmbeq9fCxkBbZEeL1PkB9yFR8xWTO8iEEQd6twswEPgvRdxsrBZ1fZqqs +jjz+3sAs/grbEb2Kg+nUbftXkBGWZgd40MdwyJ2DNc3ra3xFBqy9Azb0lOhgNv0Fft0 nfzrWu9664eumJ0fEvtf2TCmuCl+raAkGtxxy10CCE6nSYINYXazrE5Ngpf5IWfuLNP9 gZSsHCRIYadPzpGDW1VlhSKvqiYGFoQ1GSR0ofukhTciNLR9pfh4PD/KTwgoR4N0KsBV dEw8pdBdvl4ZYAvLY1YWevrlc1H5+hMMbsuy8XLQmFfB1p/dzas25nzpL0NxKbNBwN5Y bZWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:subject:reply-to:cc:from:to:dkim-signature:date; bh=4e2gWr5w2gYl4xUe3oKszAPz4sPB4Exvcbf1G43cTi8=; b=RaE/evDwPqFC5uKnLT/9aKpodOQapezJDjcbbsgIAb1fa76mIaB49NlWwV2JdXNDUr 7qqudT7Lwku3Lpx84WxYCZChdJcAp1jabpiGQKjrKdangTmpNXUkQzF83pi67GRgHcXh 85t5f8n5Rw4YiWtUQzrb2EIdOBe1p1R4I2lL0niwoGPpSvvPWX4BXvZqLvLry9gMxqYg sJf5nks532WEd9Fkbt0CtGfAxhbwrSE+BTSI6YUbu5ovqZLTaUGumYp7mz2tfwsA47E5 +uEiELNeylTd+8DWFdI1z+eo1ho7HI/2auFu/JWFFPtsb0fO95IMPu8rejtUdT1y/ki9 NMFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail header.b=qjfByRWw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a19si1723990ejt.117.2020.05.01.06.12.46; Fri, 01 May 2020 06:13:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail header.b=qjfByRWw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728851AbgEANLB (ORCPT + 99 others); Fri, 1 May 2020 09:11:01 -0400 Received: from mail2.protonmail.ch ([185.70.40.22]:19915 "EHLO mail2.protonmail.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728787AbgEANLB (ORCPT ); Fri, 1 May 2020 09:11:01 -0400 Date: Fri, 01 May 2020 13:10:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1588338658; bh=4e2gWr5w2gYl4xUe3oKszAPz4sPB4Exvcbf1G43cTi8=; h=Date:To:From:Cc:Reply-To:Subject:From; b=qjfByRWwpVVQqhOaVJs8MCnIIamQcKys9x1iOUqOmtbhynhjwaIlUX77ujYsZQREZ +UI7i/NSj7lyq5FEbfoJgWaUvMO5D7Rzm3x1VcEmVl8TzdgDIR5Awf48mAINFIKln6 3yJNBnHvRMXW+Cn6bFszFDD4Vg3y51A6cvA1YWA4= To: linux-media@vger.kernel.org From: =?UTF-8?Q?N=C3=ADcolas_F=2E_R=2E_A=2E_Prado?= Cc: Helen Koike , Shuah Khan , Mauro Carvalho Chehab , Hans Verkuil , linux-kernel@vger.kernel.org, lkcamp@lists.libreplanetbr.org Reply-To: =?UTF-8?Q?N=C3=ADcolas_F=2E_R=2E_A=2E_Prado?= Subject: [PATCH v4 0/3] media: vimc: Add support for {RGB,BGR,GBR}888 bus formats on debayer source pad Message-ID: <20200501131045.1849315-1-nfraprado@protonmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=7.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mail.protonmail.ch Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch series adds support for the missing RGB888_*, BGR888_* and GBR88= 8_* media bus formats on the source pad of debayer subdevices of the vimc drive= r. These additional bus formats enable a wider range of formats to be configur= ed on the topologies, making it possible to test more real use cases. It also enables video to be streamed in the BGR pixelformat on /dev/video3. The first patch makes it possible to have multiple media bus codes mapping = to the same pixelformat, so that, for example, all RGB888_* media bus formats = use the same RGB24 pixelformat. The second patch maps the missing RGB888_*, BGR888_* and GBR888_* media bus codes to the RGB24 and BGR24 pixelformats. Since there isn't a GBR24 pixelformat, the GBR888_1X24 bus code maps to the RGB24 pixelformat. The third patch enables the source pad of the debayer subdevice to use the added media bus formats. This patch series passed all tests of v4l2-compliance: $ compliance_git -m /dev/media0 v4l2-compliance SHA: 81e45d957c4db39397f893100b3d2729ef39b052, 64 bits, 64-= bit time_t Grand Total for vimc device /dev/media0: 461, Succeeded: 461, Failed: 0, Wa= rnings: 0 As a side note, when listing the pads containing the new formats added, I noticed that MEDIA_BUS_FMT_RGB888_3X8 doesn't have its name displayed by v4l2-ctl, but from my understanding that should be a bug in v4l-utils. $ v4l2-ctl -d /dev/v4l-subdev2 --list-subdev-mbus-codes 1 ioctl: VIDIOC_SUBDEV_ENUM_MBUS_CODE (pad=3D1) =090x1014: MEDIA_BUS_FMT_GBR888_1X24 =090x1013: MEDIA_BUS_FMT_BGR888_1X24 =090x101b: MEDIA_BUS_FMT_BGR888_3X8 =090x100a: MEDIA_BUS_FMT_RGB888_1X24 =090x100b: MEDIA_BUS_FMT_RGB888_2X12_BE =090x100c: MEDIA_BUS_FMT_RGB888_2X12_LE =090x101c =090x1011: MEDIA_BUS_FMT_RGB888_1X7X4_SPWG =090x1012: MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA =090x100f: MEDIA_BUS_FMT_RGB888_1X32_PADHI Changes in v4: - Suggested by Dafna: - Rename vimc_deb_set_rgb_mbus_fmt_rgb888_1x24() to vimc_deb_process_rgb_frame() Changes in v3: - Make loop in vimc_mbus_code_by_index() clearer by using break instead of = if - Suggested by Helen: - Rename vimc_deb_is_src_code_invalid() to vimc_deb_src_code_is_valid() - Change vimc_deb_src_code_is_valid() to return bool - Suggested by Shuah: - Use VIMC_PIX_FMT_MAX_CODES define instead of hardcoded value for the size of code array in struct vimc_pix_map Changes in v2: - Fix vimc_mbus_code_by_index not checking code array bounds - Change commit messages to reflect v2 changes - Suggested by Helen: - Rename variables - Fix array formatting - Change code array size - Add comment about vimc_mbus_code_by_index return value - Add vimc_deb_is_src_code_valid function - Add other BGR888 and RGB888 formats to BGR24 and RGB24 pixelformats - Add other BGR888 and RGB888 formats to debayer source pad supported formats - Suggested by Ezequiel: - Change cover letter to better explain this patch series You can find v1 here: https://patchwork.linuxtv.org/cover/61391/ N=C3=ADcolas F. R. A. Prado (3): media: vimc: Support multiple media bus codes for each pixelformat media: vimc: Add missing {RGB,BGR,GBR}888 media bus codes media: vimc: deb: Add support for {RGB,BGR,GBR}888 bus formats on source pad drivers/media/test-drivers/vimc/vimc-common.c | 83 +++++++++++++------ drivers/media/test-drivers/vimc/vimc-common.h | 13 ++- .../media/test-drivers/vimc/vimc-debayer.c | 71 ++++++++++++---- drivers/media/test-drivers/vimc/vimc-scaler.c | 10 ++- drivers/media/test-drivers/vimc/vimc-sensor.c | 6 +- 5 files changed, 134 insertions(+), 49 deletions(-) --=20 2.26.2