From nobody Sat Sep 21 21:23:05 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 34E87CCA483 for ; Fri, 8 Jul 2022 10:45:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238006AbiGHKpg (ORCPT ); Fri, 8 Jul 2022 06:45:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50946 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238008AbiGHKpX (ORCPT ); Fri, 8 Jul 2022 06:45:23 -0400 Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5052984EF0 for ; Fri, 8 Jul 2022 03:45:21 -0700 (PDT) Received: by mail-pl1-x635.google.com with SMTP id z1so10249491plb.1 for ; Fri, 08 Jul 2022 03:45:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WLbLav8l8KNdtyThB58u5SXfgbP0TLoaQoo90nnZjIw=; b=H6/aHv6DkkKB7cF5JsVlhpayBbZOXG0Cvl2/XYn64znFK/MtS4mC8I+s8YOK2HZeNh vMd9G+Wj5czYkhTnCdL+qqshd9r7aQ8bymOl+Fnj+kQlPGsJf44BDjJ6c7KKXX0NhIVe TevhgQUDyNHbPllQFobkTv9YW3fA2KaAxYBsc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WLbLav8l8KNdtyThB58u5SXfgbP0TLoaQoo90nnZjIw=; b=x0bYH50zEBJrzGABbD7ZXtJd60NfruuKY+hIPWRq4xGuVEse7Xq0HseKZ6a5io1GDg DwVz3UX7eiyEAHFpilpS2oq/KwAKhYnSZv0ZJKyKDPnhwd06BDba9o4PoADmbi/wAhrG wFE41KFpht/sZaVMHKvLX4BBuCCSaLFnSArEVtrOs0E5PzFEzWWFbfmnaKyyv2E7hJVw h1YgRRjKnH2P/HgA/lX06uF+1rVqyZFElhs4eySC8N8zg1ZFkf5BdwED/AplunV+dX4I sf2ERafuQ6ttyyHXtFOnlI+tZrQizwPRj8LkocqFnDHD7EjMdUy6CRRrOpwhRAx9iaRe egGg== X-Gm-Message-State: AJIora+pTPf3AWGhnI4oPXjBhL/Xjw7WOFA6RdEt3x9hs1WrjFZ5a45u LUNamT9yQPYUwWJNAM2GM/PlAA== X-Google-Smtp-Source: AGRyM1t7zh3BjpjgCpMwcYmLHbsBzl4/5XcKIXOUoFXqM0owdePl7ODco0/D1d+2ouSx2TTV0ocSHw== X-Received: by 2002:a17:902:a589:b0:16b:c227:d7f9 with SMTP id az9-20020a170902a58900b0016bc227d7f9mr2892816plb.29.1657277120859; Fri, 08 Jul 2022 03:45:20 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2401:fa00:1:10:db98:ad5d:ca9:da58]) by smtp.gmail.com with ESMTPSA id m6-20020a635806000000b0040c9213a414sm27216187pgb.46.2022.07.08.03.45.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Jul 2022 03:45:20 -0700 (PDT) From: Chen-Yu Tsai To: Tiffany Lin , Andrew-CT Chen , Yunfei Dong , Mauro Carvalho Chehab , Hans Verkuil Cc: Matthias Brugger , Chen-Yu Tsai , linux-media@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, Nicolas Dufresne , AngeloGioacchino Del Regno , Nicolas Dufresne Subject: [PATCH v2 1/2] media: mediatek: vcodec: Make decoder capability fields fit requirements Date: Fri, 8 Jul 2022 18:44:50 +0800 Message-Id: <20220708104451.3901064-2-wenst@chromium.org> X-Mailer: git-send-email 2.37.0.rc0.161.g10f37bed90-goog In-Reply-To: <20220708104451.3901064-1-wenst@chromium.org> References: <20220708104451.3901064-1-wenst@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This partially reverts commit a8a7a278c56ad3b4ddd4db9a960e0537d032b0b3, and changes things so that the capability string fields of the decoder conform to their requirements. This recent change caused ChromeOS's decoder to no longer function. This is due to ChromeOS using the driver name field to match the video device with its accompanying media device. After the change, they no longer matched. The driver name field should contain the actual driver name, not some otherwise unused string macro from the driver. To make this clear, copy the name from the driver's name field. The card name for the video decoder previously held a static platform name that was fixed to match MT8173. This obviously doesn't make sense for newer chips. Since commit a8a7a278c56a ("media: mediatek: vcodec: Change decoder v4l2 capability value"), this field was changed to hold the driver's name, or "mtk-vcodec-dec". This doesn't make much sense either, since this still doesn't reflect what chip this is. Instead, fill in the card name with "MTxxxx video decoder" with the proper chip number. Since commit f2d8b6917f3b ("media: v4l: ioctl: Set bus_info in v4l_querycap()"), the V4L2 core provides a default value for the bus_info field for platform and PCI devices. This value will match the default value for media devices added by commit cef699749f37 ("media: mc: Set bus_info in media_device_init()"). These defaults are stable and device-specific. Drop the custom capability bus_info from the mtk-vcodec decoder driver, and use the defaults. This also fixes the long standing issue where the media device used for the stateless decoder didn't have its bus_info set, and would never match its accompanying video device. Fixes: a8a7a278c56a ("media: mediatek: vcodec: Change decoder v4l2 capabili= ty value") Signed-off-by: Chen-Yu Tsai --- drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c b/driv= ers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c index 5d6fdf18c3a6..209de1ec02e4 100644 --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c @@ -243,11 +243,12 @@ static int mtk_vcodec_dec_get_chip_name(void *priv) static int vidioc_vdec_querycap(struct file *file, void *priv, struct v4l2_capability *cap) { + struct mtk_vcodec_ctx *ctx =3D fh_to_ctx(priv); + struct device *dev =3D &ctx->dev->plat_dev->dev; int platform_name =3D mtk_vcodec_dec_get_chip_name(priv); =20 - strscpy(cap->driver, MTK_VCODEC_DRV_NAME, sizeof(cap->driver)); - strscpy(cap->card, MTK_VCODEC_DEC_NAME, sizeof(cap->card)); - snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:mt%d-dec", platf= orm_name); + strscpy(cap->driver, dev->driver->name, sizeof(cap->driver)); + snprintf(cap->card, sizeof(cap->card), "MT%d video decoder", platform_nam= e); =20 return 0; } --=20 2.37.0.rc0.161.g10f37bed90-goog From nobody Sat Sep 21 21:23:05 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2BB84C43334 for ; Fri, 8 Jul 2022 10:45:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238029AbiGHKpj (ORCPT ); Fri, 8 Jul 2022 06:45:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50502 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238021AbiGHKpY (ORCPT ); Fri, 8 Jul 2022 06:45:24 -0400 Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C32F784EFA for ; Fri, 8 Jul 2022 03:45:23 -0700 (PDT) Received: by mail-pf1-x42a.google.com with SMTP id w185so19497956pfb.4 for ; Fri, 08 Jul 2022 03:45:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9YKU34GLEp41EDZn2kjkgQMLGLaO6pSs5EyA1lQO2E4=; b=dqbnkEH5EoOPhrneF2bHotmJP/mn9F2++Fxt5LVJ29z+GMbvQWK6ebrdQzuHNmsHeV WIPR5StC33VoXXUqOaOlaeK0FtPaepWuD+0e9218tCVd8psm4CdKuUr5r1EyXwDPoc36 m/XQg/0u3rcnxz1cTpUmqXV7llOPiA8ZGDIrY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9YKU34GLEp41EDZn2kjkgQMLGLaO6pSs5EyA1lQO2E4=; b=hyJjajKSvduTyrM8BD/rM3/HAtUf7KdKXTk0je6ECgmO1WHv3XNfeLZOPkCzX7JdWG zPGwfYW4LTefGUvThR1WWxB/yhP5wdpianPvEzLAvKWOTP3P3IcDVLXCtKNWe5IL/MuB SdgZGYnp1ag5tojgEQNAC/kYZfcqvSE9IMMbsS4Qn/BuSPwuvRy35SjJA9TV4qw+C2sb qgBFbh7I9J3Md7mIi1uT3txzVF6WgoI04OBovVY7Y9A67Utb4mu/WCqO7/UkwnPmm5qL 1CYsQaI0HerOLiH49F7qBkLOOr+YzpNJ614CL4DCSrhSBegoS+PBGIA4imaSSL42Mj+i si2A== X-Gm-Message-State: AJIora+rrbof7NgBnyi3pPjpvuLfc4uEmaoZu1IZamKUrvBEUHxfrrmO QKdB7U+2RFEqBBeiL9gMSba4tA== X-Google-Smtp-Source: AGRyM1v8Rsv6CDJhU/YyBCRySDcL9J8Fzw2nEIwQ5hE7WoNGbc8NMz0qBZ8qGhCMS99QTJ74qVZnAA== X-Received: by 2002:a65:6048:0:b0:412:73c7:cca9 with SMTP id a8-20020a656048000000b0041273c7cca9mr2837658pgp.257.1657277123264; Fri, 08 Jul 2022 03:45:23 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2401:fa00:1:10:db98:ad5d:ca9:da58]) by smtp.gmail.com with ESMTPSA id m6-20020a635806000000b0040c9213a414sm27216187pgb.46.2022.07.08.03.45.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Jul 2022 03:45:23 -0700 (PDT) From: Chen-Yu Tsai To: Tiffany Lin , Andrew-CT Chen , Yunfei Dong , Mauro Carvalho Chehab , Hans Verkuil Cc: Matthias Brugger , Chen-Yu Tsai , linux-media@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, Nicolas Dufresne , AngeloGioacchino Del Regno , Nicolas Dufresne Subject: [PATCH v2 2/2] media: mediatek: vcodec: Make encoder capability fields fit requirements Date: Fri, 8 Jul 2022 18:44:51 +0800 Message-Id: <20220708104451.3901064-3-wenst@chromium.org> X-Mailer: git-send-email 2.37.0.rc0.161.g10f37bed90-goog In-Reply-To: <20220708104451.3901064-1-wenst@chromium.org> References: <20220708104451.3901064-1-wenst@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This partially reverts commit fd9f8050e355d7fd1e126cd207b06c96cde7f783, and changes things so that the capability string fields of the encoder conform to their requirements. The driver name field should contain the actual driver name, not some otherwise unused string macro from the driver. To make this clear, copy the name from the driver's name field. The card name for the video encoder previously held a static platform name that was fixed to match MT8173. This obviously doesn't make sense for newer chips. Since commit fd9f8050e355 ("media: mediatek: vcodec: Change encoder v4l2 capability value"), this field was changed to hold the driver's name, or "mtk-vcodec-dec". This doesn't make much sense either, since this still doesn't reflect what chip this is. Instead, fill in the card name with "MTxxxx video encoder" with the proper chip number. Since commit f2d8b6917f3b ("media: v4l: ioctl: Set bus_info in v4l_querycap()"), the V4L2 core provides a default value for the bus_info field for platform and PCI devices. This value will match the default value for media devices added by commit cef699749f37 ("media: mc: Set bus_info in media_device_init()"). These defaults are stable and device-specific. Drop the custom capability bus_info from the mtk-vcodec encoder driver, and use the defaults. As this patch removes the last usage of MTK_VCODEC_DRV_NAME, remove the macro as well. Fixes: fd9f8050e355 ("media: mediatek: vcodec: Change encoder v4l2 capabili= ty value") Signed-off-by: Chen-Yu Tsai --- drivers/media/platform/mediatek/vcodec/mtk_vcodec_drv.h | 1 - drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c | 7 ++++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_drv.h b/driv= ers/media/platform/mediatek/vcodec/mtk_vcodec_drv.h index 4140b4dd85bf..a8570a654561 100644 --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_drv.h +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_drv.h @@ -19,7 +19,6 @@ #include "mtk_vcodec_util.h" #include "vdec_msg_queue.h" =20 -#define MTK_VCODEC_DRV_NAME "mtk_vcodec_drv" #define MTK_VCODEC_DEC_NAME "mtk-vcodec-dec" #define MTK_VCODEC_ENC_NAME "mtk-vcodec-enc" =20 diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c b/driv= ers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c index ccc753074816..25e816863597 100644 --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c @@ -232,11 +232,12 @@ static int mtk_vcodec_enc_get_chip_name(void *priv) static int vidioc_venc_querycap(struct file *file, void *priv, struct v4l2_capability *cap) { + struct mtk_vcodec_ctx *ctx =3D fh_to_ctx(priv); + struct device *dev =3D &ctx->dev->plat_dev->dev; int platform_name =3D mtk_vcodec_enc_get_chip_name(priv); =20 - strscpy(cap->driver, MTK_VCODEC_DRV_NAME, sizeof(cap->driver)); - strscpy(cap->card, MTK_VCODEC_ENC_NAME, sizeof(cap->card)); - snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:mt%d-enc", platf= orm_name); + strscpy(cap->driver, dev->driver->name, sizeof(cap->driver)); + snprintf(cap->card, sizeof(cap->card), "MT%d video encoder", platform_nam= e); =20 return 0; } --=20 2.37.0.rc0.161.g10f37bed90-goog