public inbox for linux-rockchip@lists.infradead.org
 help / color / mirror / Atom feed
From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
To: Jonas Karlman <jonas@kwiboo.se>,
	Detlev Casanova <detlev.casanova@collabora.com>
Cc: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
	Mauro Carvalho Chehab	 <mchehab@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	 "linux-media@vger.kernel.org"	 <linux-media@vger.kernel.org>,
	"linux-rockchip@lists.infradead.org"	
	<linux-rockchip@lists.infradead.org>,
	"linux-staging@lists.linux.dev"	 <linux-staging@lists.linux.dev>,
	"kernel@collabora.com" <kernel@collabora.com>,
	 "linux-kernel@vger.kernel.org"	 <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] media: rkvdec: Switch to using structs instead of writel
Date: Wed, 28 May 2025 11:10:57 -0400	[thread overview]
Message-ID: <0476c8d6ef2482688d07077592393074398c9ce0.camel@collabora.com> (raw)
In-Reply-To: <a787e6e0-d4ce-45e3-8263-2489585d3ec0@kwiboo.se>

Hi Jonas,

Le mardi 27 mai 2025 à 19:51 +0200, Jonas Karlman a écrit :
> Hi Detlev,
> 
> On 2025-05-27 17:00, Detlev Casanova wrote:
> > In an effort to merge the rkvdec2 driver [1] with this one, switch from
> > writel() calls to using structs to represent the register mappings.
> 
> Please wait with this until HEVC support has landed, now that H264
> 4:2:2/Hi10 finally have been merged I was hoping to be able to send a v2


Detlev communicated to me that this was meant to have the RFC tag. The intent
being to check with others if the usage of bitfield in structure for registers is
acceptable. I personally like it, and don't see any issue with it considering
the performance is not affected at all. The idea is not new, you can find
similar proposal from 2019.

https://lore.kernel.org/all/20190131031333.11905-2-ayaka@soulik.info/

> of the old HEVC series [3]. I was waiting on v6.16-rc1 before sending
> the series but can send it sooner if needed, [4] has current state of v2.

Please don't wait for that, just send as soon as your are happy with it.
Just based it on current media-committers/next branch, I will deal with the
rest.

> 
> H264 4:2:2/Hi10 and HEVC have been in the works for a few years now,
> would be nice to have it fully land before refactoring starts ;-)

My roadmap was that HEVC was not truly an unstaging dependency. I was a lot
more worried about concurrent decode, but I have a patch in queue now. So
unstaging is what I will prioritize once a patch is made. Meanwhile, better send
you patches soon.

> 
> [3] https://lore.kernel.org/linux-media/20231105233630.3927502-1-jonas@kwiboo.se
> [4] https://github.com/Kwiboo/linux-rockchip/commits/linuxtv-rkvdec-hevc-v2b/
> 
> > This is done in order to have all supported decoders use the same format
> > in the future and ease reading of the code.
> 
> Do you have any work-in-progress patches for this?
> 
> > Using structs also improves stability as the hardware is tested and
> > validated downstream using a similar method.
> > It was noticed, on decoders, that:
> >  - Some registers require to be writen in increasing order [2]
> >  - Some registers, even if unrelated, need to be written to their reset
> >    values (it was the case here for axi_ddr_[rw]data).
> > 
> > Using structs can also help improving performance later when, e.g.
> > multicore support is added on RK3588.
> 
> Are your referring to the linked-list feature (also present in e.g.
> RK3328) or just for multi-core purpose?

RK3588 multi-core design, but this is also needed if you want to use HW queues.
Multi-core is more pressing at the moment, the benefit of using HW queues will
have to be proven. It does not make a big difference for a single media.

Nicolas

> 
> Regards,
> Jonas
> 
> > Performance seems to be slightly improved, but at least, not made worse.
> > Running fluster's JVT-AVC_V1 test suite with GStreamer on the Radxa ROCK
> > PI 4 SE gives the following times:
> > 
> > Before this patch:
> > 
> > - --jobs 1: Ran 129/135 tests successfully               in 77.167 secs
> > - --jobs 6: Ran 129/135 tests successfully               in 23.046 secs
> > 
> > With this patch:
> > - --jobs 1: Ran 129/135 tests successfully               in 70.698 secs
> > - --jobs 6: Ran 129/135 tests successfully               in 22.917 secs
> > 
> > This also shows that the fluster score hasn't changed.
> > 
> > [1]: https://lore.kernel.org/all/20250325213303.826925-1-detlev.casanova@collabora.com/
> > [2]: https://lore.kernel.org/all/20200127143009.15677-5-andrzej.p@collabora.com/
> > 
> > Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
> > ---
> >  drivers/staging/media/rkvdec/rkvdec-h264.c | 168 +++---
> >  drivers/staging/media/rkvdec/rkvdec-regs.h | 567 ++++++++++++++-------
> >  drivers/staging/media/rkvdec/rkvdec-vp9.c  | 239 ++++-----
> >  drivers/staging/media/rkvdec/rkvdec.c      |   1 -
> >  4 files changed, 559 insertions(+), 416 deletions(-)
> 
> [snip]

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

  reply	other threads:[~2025-05-28 15:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-27 15:00 [PATCH] media: rkvdec: Switch to using structs instead of writel Detlev Casanova
2025-05-27 17:51 ` Jonas Karlman
2025-05-28 15:10   ` Nicolas Dufresne [this message]
2025-05-27 22:09 ` kernel test robot

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=0476c8d6ef2482688d07077592393074398c9ce0.camel@collabora.com \
    --to=nicolas.dufresne@collabora.com \
    --cc=detlev.casanova@collabora.com \
    --cc=ezequiel@vanguardiasur.com.ar \
    --cc=gregkh@linuxfoundation.org \
    --cc=jonas@kwiboo.se \
    --cc=kernel@collabora.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=mchehab@kernel.org \
    /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