Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp6784704pxb; Wed, 17 Feb 2021 13:24:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJxDErkew03hzrUzYecwDw+l1dKpqhZIHRLB8a9bw+kJh7BcfHp8b4TyAot8Y99Sy+LF7yeO X-Received: by 2002:a17:906:555:: with SMTP id k21mr901166eja.148.1613597071565; Wed, 17 Feb 2021 13:24:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613597071; cv=none; d=google.com; s=arc-20160816; b=DGoWkAfpXiw0Dr1VhhFfeRvB2nS9OZ7P+117qfC9FYNTi01w+EADrFJ9+BhCG6Vm+Z Kn5Jhan2WAVTQoRZSh/+mHT1z9c+erAGAwbgIyGKbHeC8UZ5Iwod1Wr/nouakhVlP7vQ jleZzzXNjHohB8U4nzjLRbB6td0WsaZtoJMxY8KQRWv5ZP+g9/R7Pu67LobPov6b3RJw opqRcaZhg/vhiSn519inlqE45vcE3vWzHgNq0gd1k0AAX8q2NZZR2vtq/qQRLBGfehk1 4ErwmV0ThwQw8iOocaD/EHjlSWYm1nKDqsAki8LC6vmw6e7g8XQ0f1tCF8pjFHUuyymL Qy7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:organization:references:in-reply-to:date:cc:to:from :subject:message-id; bh=y6yEel8FFzE+P7qk/gcCIpDOHAoNk12rt3nwJUjdlcY=; b=XHCQwyg4+kTyLDTtiqh0b07HEDeAKM+mHpuunGt3+XcTSmuz6W4mfuCfIydGyvkim5 3NUXUlDuKUAKmD5OXt54ViNVM3gUdw4X+84B6cM53QLUHMEwrD8GfIAGyMmoixTEdZZg yFqBiIFBt7ld+CfEGXAkGGcH3QeBFpxbDm7dX3GOm/CSJtkzDAX9dQNQHqrBGToWRxNb g3f06+2B77HIO5pgYBsp4LY0IQm5VLdbtyrdcmTmK3WlzjI5W45m/wVlYVds+1pYzfEA XAaAx0NHNevUAFztki4C7zcJxfiHYwwiiPa+7sJsPsOJCuHPJnN9PanT2kmlBQs2tghZ yT9g== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ce20si2253411edb.138.2021.02.17.13.24.04; Wed, 17 Feb 2021 13:24:31 -0800 (PST) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234340AbhBQUQW (ORCPT + 99 others); Wed, 17 Feb 2021 15:16:22 -0500 Received: from bhuna.collabora.co.uk ([46.235.227.227]:59538 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233561AbhBQUQV (ORCPT ); Wed, 17 Feb 2021 15:16:21 -0500 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: ezequiel) with ESMTPSA id E92FB1F40F2C Message-ID: <9d0ddec3cc244e36483abb28b54053fa02babb5c.camel@collabora.com> Subject: Re: [PATCH v1 07/18] media: hantro: Add a field to distinguish the hardware versions From: Ezequiel Garcia To: Benjamin Gaignard , p.zabel@pengutronix.de, mchehab@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@siol.net, krzk@kernel.org, shengjiu.wang@nxp.com, adrian.ratiu@collabora.com, aisheng.dong@nxp.com, peng.fan@nxp.com, Anson.Huang@nxp.com, hverkuil-cisco@xs4all.nl Cc: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, kernel@collabora.com Date: Wed, 17 Feb 2021 17:15:27 -0300 In-Reply-To: <20210217080306.157876-8-benjamin.gaignard@collabora.com> References: <20210217080306.157876-1-benjamin.gaignard@collabora.com> <20210217080306.157876-8-benjamin.gaignard@collabora.com> Organization: Collabora Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.38.2-1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 2021-02-17 at 09:02 +0100, Benjamin Gaignard wrote: > Decoders hardware blocks could exist in multiple versions: add > a field to distinguish them at runtime. > Keep the default behavoir to be G1 hardware. > > Signed-off-by: Benjamin Gaignard > Signed-off-by: Ezequiel Garcia > Signed-off-by: Adrian Ratiu > --- >  drivers/staging/media/hantro/hantro.h     | 5 +++++ >  drivers/staging/media/hantro/hantro_drv.c | 2 ++ >  2 files changed, 7 insertions(+) > > diff --git a/drivers/staging/media/hantro/hantro.h b/drivers/staging/media/hantro/hantro.h > index bde65231f22f..2a566dfc2fe3 100644 > --- a/drivers/staging/media/hantro/hantro.h > +++ b/drivers/staging/media/hantro/hantro.h > @@ -36,6 +36,9 @@ struct hantro_codec_ops; >  #define HANTRO_H264_DECODER    BIT(18) >  #define HANTRO_DECODERS                0xffff0000 >   > +#define HANTRO_G1_REV          0x6731 > +#define HANTRO_G2_REV          0x6732 > + >  /** >   * struct hantro_irq - irq handler and name >   * > @@ -170,6 +173,7 @@ hantro_vdev_to_func(struct video_device *vdev) >   * @enc_base:          Mapped address of VPU encoder register for convenience. >   * @dec_base:          Mapped address of VPU decoder register for convenience. >   * @ctrl_base:         Mapped address of VPU control block. > + * @core_hw_dec_rev    Runtime detected HW decoder core revision >   * @vpu_mutex:         Mutex to synchronize V4L2 calls. >   * @irqlock:           Spinlock to synchronize access to data structures >   *                     shared with interrupt handlers. > @@ -189,6 +193,7 @@ struct hantro_dev { >         void __iomem *enc_base; >         void __iomem *dec_base; >         void __iomem *ctrl_base; > +       u32 core_hw_dec_rev; >   >         struct mutex vpu_mutex; /* video_device lock */ >         spinlock_t irqlock; > diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c > index 0570047c7fa0..e1443c394f62 100644 > --- a/drivers/staging/media/hantro/hantro_drv.c > +++ b/drivers/staging/media/hantro/hantro_drv.c > @@ -840,6 +840,8 @@ static int hantro_probe(struct platform_device *pdev) >         } >         vpu->enc_base = vpu->reg_bases[0] + vpu->variant->enc_offset; >         vpu->dec_base = vpu->reg_bases[0] + vpu->variant->dec_offset; > +       /* by default decoder is G1 */ > +       vpu->core_hw_dec_rev = HANTRO_G1_REV; >   What's the use of this field? Can't we simply rely on the compatible string? Thanks, Ezequiel