Linux-ARM-Kernel Archive mirror
 help / color / mirror / Atom feed
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: "Chen-Yu Tsai" <wenst@chromium.org>,
	"Nícolas F. R. A. Prado" <nfraprado@collabora.com>,
	"Stephen Boyd" <sboyd@kernel.org>
Cc: Matthias Brugger <matthias.bgg@gmail.com>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	kernel@collabora.com,
	Andrew-CT Chen <andrew-ct.chen@mediatek.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Tiffany Lin <tiffany.lin@mediatek.com>,
	Yunfei Dong <yunfei.dong@mediatek.com>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
	linux-mediatek@lists.infradead.org
Subject: Re: [PATCH v2 3/5] media: mediatek: vcodec: Read HW active status from clock
Date: Thu, 8 Jun 2023 11:01:58 +0200	[thread overview]
Message-ID: <f0018817-d47b-d772-ed9f-9126bf71a0d1@collabora.com> (raw)
In-Reply-To: <CAGXv+5HHARvkCYfjPjRKgyWuzv-Dt215z1=yA+_tw4hyasdGQA@mail.gmail.com>

Il 08/06/23 10:12, Chen-Yu Tsai ha scritto:
> On Thu, Jun 8, 2023 at 4:57 AM Nícolas F. R. A. Prado
> <nfraprado@collabora.com> wrote:
>>
>> Remove the requirement of a VDEC_SYS reg iospace. To achieve that, rely
>> on the "active" clock being passed through the DT, and read its status
>> during IRQ handling to check whether the HW is active.
>>
>> The old behavior is still present when reg-names aren't supplied, as to
>> keep backward compatibility.
>>
>> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>> ---
>>
>> (no changes since v1)
>>
>>   .../mediatek/vcodec/mtk_vcodec_dec_drv.c      | 59 +++++++++++++++----
>>   .../mediatek/vcodec/mtk_vcodec_dec_hw.c       | 20 +++++--
>>   .../mediatek/vcodec/mtk_vcodec_dec_pm.c       | 12 +++-
>>   .../platform/mediatek/vcodec/mtk_vcodec_drv.h |  1 +
>>   4 files changed, 74 insertions(+), 18 deletions(-)
>>
>> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
>> index 9c652beb3f19..8038472fb67b 100644
>> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
>> +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c
>> @@ -16,6 +16,7 @@
>>   #include <media/v4l2-mem2mem.h>
>>   #include <media/videobuf2-dma-contig.h>
>>   #include <media/v4l2-device.h>
>> +#include <linux/clk-provider.h>
> 
>                     ^^^^^^^^^^^^^^
> 
> This seems like a violation of the API separation.
> 
>>   #include "mtk_vcodec_drv.h"
>>   #include "mtk_vcodec_dec.h"
>> @@ -38,22 +39,29 @@ static int mtk_vcodec_get_hw_count(struct mtk_vcodec_dev *dev)
>>          }
>>   }
>>
>> +static bool mtk_vcodec_is_hw_active(struct mtk_vcodec_dev *dev)
>> +{
>> +       u32 cg_status = 0;
>> +
>> +       if (!dev->reg_base[VDEC_SYS])
>> +               return __clk_is_enabled(dev->pm.vdec_active_clk);
> 
> AFAIK this is still around for clk drivers that haven't moved to clk_hw.
> It shouldn't be used by clock consumers. Would it be better to just pass
> a syscon?
> 

This is a legit usage of __clk_is_enabled().... because that's what we're really
doing here, we're checking if a clock got enabled by the underlying MCU (as that
clock goes up after the VDEC boots).

If this is *not* acceptable as it is, we will have to add a clock API call to
check if a clock is enabled... but it didn't seem worth doing since we don't
expect anyone else to have any legit usage of that, or at least, we don't know
about anyone else needing that...

As for the syscon, that's something that we've been discussing as well... the
thing is: we're really *really* checking if a clock is enabled, so we should
be using clock related calls... reading from a syscon means that we'd have to
perform a register read (of.. again.. a clock) outside of the clock framework
which, in my opinion, wouldn't be clean; I'd expect that to become a bit messy
in the future too, should more MediaTek SoCs (I think MT8192/95 are already in
the list, Nicolas please correct me if I'm wrong here) need the same thing, as
we'd be adding more definitions around.

Cheers,
Angelo


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2023-06-08  9:02 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-07 20:53 [PATCH v2 0/5] Enable decoder for mt8183 Nícolas F. R. A. Prado
2023-06-07 20:53 ` [PATCH v2 1/5] media: dt-bindings: mediatek,vcodec: Don't require assigned-clocks Nícolas F. R. A. Prado
2023-06-21 11:13   ` Alexandre Mergnat
2023-06-07 20:53 ` [PATCH v2 2/5] media: dt-bindings: mediatek,vcodec: Remove VDEC_SYS for mt8183 Nícolas F. R. A. Prado
2023-06-08 16:48   ` Conor Dooley
2023-06-07 20:53 ` [PATCH v2 3/5] media: mediatek: vcodec: Read HW active status from clock Nícolas F. R. A. Prado
2023-06-08  7:34   ` AngeloGioacchino Del Regno
2023-06-08  8:12   ` Chen-Yu Tsai
2023-06-08  9:01     ` AngeloGioacchino Del Regno [this message]
2023-06-08 23:56       ` Stephen Boyd
2023-06-09  7:42         ` AngeloGioacchino Del Regno
2023-06-12 19:19           ` Stephen Boyd
2023-06-14  8:13             ` AngeloGioacchino Del Regno
2023-06-15  0:40               ` Stephen Boyd
2023-06-15  7:30                 ` AngeloGioacchino Del Regno
2023-06-15 17:40                   ` Stephen Boyd
2023-06-19  7:45                     ` AngeloGioacchino Del Regno
2023-06-07 20:53 ` [PATCH v2 4/5] clk: mediatek: mt8183: Add CLK_VDEC_ACTIVE to vdec Nícolas F. R. A. Prado
2023-06-08  7:34   ` AngeloGioacchino Del Regno
2023-06-08  7:43   ` Chen-Yu Tsai
2023-06-08  8:53     ` AngeloGioacchino Del Regno
2023-06-07 20:53 ` [PATCH v2 5/5] arm64: dts: mediatek: mt8183: Add decoder Nícolas F. R. A. Prado
2023-06-08  7:35   ` AngeloGioacchino Del Regno
     [not found] ` <380c6489-7a3c-778b-5b81-6339b6964b90@xs4all.nl>
     [not found]   ` <fda4f196-8466-8290-9072-d80fff367720@collabora.com>
2023-06-12 19:03     ` [PATCH v2 0/5] Enable decoder for mt8183 Nícolas F. R. A. Prado

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f0018817-d47b-d772-ed9f-9126bf71a0d1@collabora.com \
    --to=angelogioacchino.delregno@collabora.com \
    --cc=andrew-ct.chen@mediatek.com \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=kernel@collabora.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=nfraprado@collabora.com \
    --cc=sboyd@kernel.org \
    --cc=tiffany.lin@mediatek.com \
    --cc=wenst@chromium.org \
    --cc=yunfei.dong@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).