mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
	Arnd Bergmann <arnd@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	DTML <devicetree@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Linux API <linux-api@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Chris Paterson <Chris.Paterson2@renesas.com>,
	Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com>,
	Phil Edworthy <phil.edworthy@renesas.com>,
	"REE dirk.behme@de.bosch.com" <dirk.behme@de.bosch.com>,
	Peter Erben <Peter.Erben@de.bosch.com>,
	Linux Media Mailing List <linux-media@vger.kernel.org>
Subject: RE: [PATCH 4/7] misc: Add driver for DAB IP found on Renesas R-Car devices
Date: Wed, 3 Mar 2021 10:20:50 +0000	[thread overview]
Message-ID: <OSAPR01MB2737B061973D4D29729AB17BC2989@OSAPR01MB2737.jpnprd01.prod.outlook.com> (raw)
In-Reply-To: <YD4wWYc7/pDucm3s@pendragon.ideasonboard.com>

Hi Laurent,

Thanks for your feedback!

> From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Sent: 02 March 2021 12:32
> Subject: Re: [PATCH 4/7] misc: Add driver for DAB IP found on Renesas R-
> Car devices
> 
> Hi Fabrizio,
> 
> On Tue, Mar 02, 2021 at 12:20:17PM +0000, Fabrizio Castro wrote:
> > On 02 March 2021 11:17, Ezequiel Garcia wrote:
> > > On Mon, 1 Mar 2021 at 14:36, Fabrizio Castro wrote:
> > > > On 26 February 2021 10:38, Arnd Bergmann wrote:
> > > > > On Thu, Feb 25, 2021 at 11:51 PM Fabrizio Castro wrote:
> > > > > >
> > > > > > The DAB hardware accelerator found on R-Car E3 and R-Car M3-N
> devices is
> > > > > > a hardware accelerator for software DAB demodulators.
> > > > > > It consists of one FFT (Fast Fourier Transform) module and one
> decoder
> > > > > > module, compatible with DAB specification (ETSI EN 300 401 and
> > > > > > ETSI TS 102 563).
> > > > > > The decoder module can perform FIC decoding and MSC decoding
> processing
> > > > > > from de-puncture to final decoded result.
> > > > > >
> > > > > > This patch adds a device driver to support the FFT module only.
> > > > > >
> > > > > > Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> > > > > > ---
> > > > > >  MAINTAINERS                      |   7 ++
> > > > > >  drivers/misc/Kconfig             |   1 +
> > > > > >  drivers/misc/Makefile            |   1 +
> > > > > >  drivers/misc/rcar_dab/Kconfig    |  11 ++
> > > > > >  drivers/misc/rcar_dab/Makefile   |   8 ++
> > > > > >  drivers/misc/rcar_dab/rcar_dev.c | 176
> +++++++++++++++++++++++++++++++
> > > > > >  drivers/misc/rcar_dab/rcar_dev.h | 116 ++++++++++++++++++++
> > > > > >  drivers/misc/rcar_dab/rcar_fft.c | 160
> ++++++++++++++++++++++++++++
> > > > > >  include/uapi/linux/rcar_dab.h    |  35 ++++++
> > > > >
> > > > > Can you explain why this is not in drivers/media/?
> > > >
> > > > I wasn't entirely sure were to put it to be honest as I couldn't
> find
> > > > anything similar, that's why "misc" for v1, to mainly get a feedback
> > > > and advice.
> > > >
> > > > > I don't think we want a custom ioctl interface for a device that
> > > > > implements
> > > > > a generic specification. My first feeling would be that this
> should not
> > > > > have a user-level API but instead get called by the DAB radio
> driver.
> > > >
> > > > I hear you, the trouble is that the modules of this IP should be
> seen
> > > > as part of a SW and HW processing pipeline.
> > > > Some of the SW components of the pipeline can be proprietary, and
> > > > unfortunately we don't have access (yet) to a framework that allows
> us to
> > > > test and demonstrate the whole pipeline, for the moment we can only
> test
> > > > things in isolation. It'll take us a while to come up with a full
> solution
> > > > (or to have access to one), and in the meantime our SoCs come with
> an IP
> > > > that can't be used because there is no driver for it (yet).
> > > >
> > > > After discussing things further with Geert and Laurent, I think they
> > > > are right in saying that the best path for this is probably to add
> this
> > > > driver under "drivers/staging" as an interim solution, so that the
> IP will
> > > > be accessible by developers, and when we have everything we need (a
> fully
> > > > fledged processing framework), we will able to integrate it better
> with
> > > > the other components (if possible).
> > > >
> > > > > What is the intended usage model here? I assume the idea is to
> > > > > use it in an application that receives audio or metadata from DAB.
> > > > > What driver do you use for that?
> > > >
> > > > This IP is similar to a DMA to some extent, in the sense that it
> takes
> > > > input data from a buffer in memory and it writes output data onto a
> buffer
> > > > in memory, and of course it does some processing in between.
> > >
> > > That sounds like something that can fit V4L2 MEM2MEM driver.
> > > You queue two buffers and an operation, and then run a job.
> >
> > V4L2 MEM2MEM seems good for this in general, however the DAB IP is going
> > to be shared by multiple processing pipelines (as usually we have
> several
> > DRIF interfaces, and only 1 DAB IP), and for what concerns FFT
> specifically
> > there is only 1 FFT module inside the DAB IP.
> > My understanding is that the capabilities of V4L2 MEM2MEM devices are
> > configured for the specific pipeline, but in the this context user space
> > would have to continuously switch the capabilities of the DAB IP (at the
> > right moment) to allow processing for data streams requiring different
> > capabilities.
> >
> > Am I wrong?
> 
> V4L2 M2M devices can be opened multiple times, but different processes,
> which can configure the device in different ways, and submit jobs that
> are then scheduled by the V4L2 M2M framework.

I'll give it a try in due time then.

I think the clock related patches are worth merging.

Thanks,
Fab

> 
> > > > It's not directly connected to any other Radio related IP.
> > > > The user space application can read DAB IQ samples from the R-Car
> DRIF
> > > > interface (via driver drivers/media/platform/rcar_drif.c, or from
> other
> > > > sources since this IP is decoupled from DRIF), and then when it's
> time
> > > > to accelerate FFT, FIC, or MSC, it can request services to the DAB
> IP, so
> > > > that the app can go on and use the processor to do some work, while
> the DAB
> > > > IP processes things.
> > > > A framework to connect and exchange processing blocks (either SW or
> HW) and
> > > > interfaces is therefore vital to properly place a kernel
> implementation
> > > > in the great scheme of things, in its absence a simple driver can
> help
> > >
> > > I'm not entirely sure we are missing a framework. What's missing in
> > > V4L2 MEM2MEM?
> >
> > I was referring to a user space framework (I should have been more
> specific
> > with my previous email).
> >
> > > Before considering drivers/staging, it would be interesting to figure
> > > out if V4L2 can do it as-is, and if not, discuss what's missing.
> >
> > I think an interim solution would allow us and users to evaluate things
> a
> > little bit better, so that we can integrate this IP with V4L2 later on.
> 
> --
> Regards,
> 
> Laurent Pinchart

  reply	other threads:[~2021-03-03 13:50 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-25 22:51 [PATCH 0/7] Add FFT Support for R-Car Gen3 devices Fabrizio Castro
2021-02-25 22:51 ` [PATCH 1/7] clk: renesas: r8a77990: Add DAB clock Fabrizio Castro
2021-02-26  8:34   ` Geert Uytterhoeven
2021-03-01 14:47     ` Fabrizio Castro
2021-03-03 10:22       ` Fabrizio Castro
2021-02-25 22:51 ` [PATCH 2/7] clk: renesas: r8a77965: " Fabrizio Castro
2021-02-26  8:45   ` Geert Uytterhoeven
2021-02-26 12:48     ` Laurent Pinchart
2021-03-01 15:01       ` Fabrizio Castro
2021-03-03 10:23         ` Fabrizio Castro
2021-03-01 14:58     ` Fabrizio Castro
2021-02-25 22:51 ` [PATCH 3/7] dt-bindings: misc: Add binding for R-Car DAB Fabrizio Castro
2021-02-26  8:41   ` Geert Uytterhoeven
2021-03-01 15:10     ` Fabrizio Castro
2021-02-26  9:06   ` Sergei Shtylyov
2021-03-01 15:11     ` Fabrizio Castro
2021-02-26 13:01   ` Laurent Pinchart
2021-03-01 15:13     ` Fabrizio Castro
2021-02-25 22:51 ` [PATCH 4/7] misc: Add driver for DAB IP found on Renesas R-Car devices Fabrizio Castro
2021-02-26  9:34   ` Geert Uytterhoeven
2021-03-01 16:19     ` Fabrizio Castro
2021-02-26 10:37   ` Arnd Bergmann
2021-02-26 13:05     ` Laurent Pinchart
2021-03-01 17:54       ` Fabrizio Castro
2021-03-01 17:26     ` Fabrizio Castro
2021-03-02 11:16       ` Ezequiel Garcia
2021-03-02 12:20         ` Fabrizio Castro
2021-03-02 12:32           ` Laurent Pinchart
2021-03-03 10:20             ` Fabrizio Castro [this message]
2021-03-03 10:26               ` Geert Uytterhoeven
2021-03-03 10:43                 ` Fabrizio Castro
2021-02-25 22:51 ` [PATCH 5/7] arm64: dts: renesas: r8a77990: Add DAB support Fabrizio Castro
2021-02-26  9:37   ` Geert Uytterhoeven
2021-03-01 14:51     ` Fabrizio Castro
2021-02-26 12:47   ` Laurent Pinchart
2021-03-01 14:53     ` Fabrizio Castro
2021-02-25 22:51 ` [PATCH 6/7] arm64: dts: renesas: r8a77965: " Fabrizio Castro
2021-02-26  9:37   ` Geert Uytterhoeven
2021-03-01 14:54     ` Fabrizio Castro
2021-02-26 12:47   ` Laurent Pinchart
2021-03-01 14:55     ` Fabrizio Castro
2021-02-25 22:51 ` [PATCH 7/7] arm64: configs: Add R-Car " Fabrizio Castro
2021-02-26 12:52   ` Laurent Pinchart
2021-02-26 13:05     ` Geert Uytterhoeven
2021-02-26 12:20 ` [PATCH 0/7] Add FFT Support for R-Car Gen3 devices Laurent Pinchart
2021-03-01 14:50   ` Fabrizio Castro

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=OSAPR01MB2737B061973D4D29729AB17BC2989@OSAPR01MB2737.jpnprd01.prod.outlook.com \
    --to=fabrizio.castro.jz@renesas.com \
    --cc=Chris.Paterson2@renesas.com \
    --cc=Peter.Erben@de.bosch.com \
    --cc=arnd@arndb.de \
    --cc=arnd@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dirk.behme@de.bosch.com \
    --cc=ezequiel@vanguardiasur.com.ar \
    --cc=geert+renesas@glider.be \
    --cc=gregkh@linuxfoundation.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=phil.edworthy@renesas.com \
    --cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
    --cc=robh+dt@kernel.org \
    --cc=will@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

all inboxes | Powered by JetHome®