From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Paul Cercueil <paul@crapouillou.net>
Cc: Suman Anna <s-anna@ti.com>, Ohad Ben-Cohen <ohad@wizery.com>,
Arnaud Pouliquen <arnaud.pouliquen@st.com>,
Loic Pallardy <loic.pallardy@st.com>,
od@zcrc.me, linux-remoteproc@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Tero Kristo <t-kristo@ti.com>
Subject: Re: [PATCH v7 3/5] remoteproc: Add support for runtime PM
Date: Wed, 10 Jun 2020 21:39:51 -0700 [thread overview]
Message-ID: <20200611043951.GA3251@builder.lan> (raw)
In-Reply-To: <VUEPBQ.GMXO6YRLF7N22@crapouillou.net>
On Wed 10 Jun 02:40 PDT 2020, Paul Cercueil wrote:
> Hi,
>
> Le lun. 8 juin 2020 à 18:10, Suman Anna <s-anna@ti.com> a écrit :
> > Hi Paul,
> >
> > On 6/8/20 5:46 PM, Paul Cercueil wrote:
> > > Hi Suman,
> > >
> > > > > > On 5/15/20 5:43 AM, Paul Cercueil wrote:
> > > > > > > Call pm_runtime_get_sync() before the firmware is loaded, and
> > > > > > > pm_runtime_put() after the remote processor has been stopped.
> > > > > > >
> > > > > > > Even though the remoteproc device has no PM
> > > > > > > callbacks, this allows the
> > > > > > > parent device's PM callbacks to be properly called.
> > > > > >
> > > > > > I see this patch staged now for 5.8, and the latest
> > > > > > -next branch \x7f\x7f\x7f\x7fhas \x7f\x7fbroken the pm-runtime autosuspend
> > > > > > feature we have in the \x7f\x7f\x7f\x7fOMAP \x7f\x7fremoteproc driver. See
> > > > > > commit 5f31b232c674 ("remoteproc/omap: \x7f\x7f\x7f\x7fAdd \x7f\x7fsupport
> > > > > > for runtime auto-suspend/resume").
> > > > > >
> > > > > > What was the original purpose of this patch, because
> > > > > > there can be \x7f\x7f\x7f\x7f\x7f\x7fdiffering backends across different
> > > > > > SoCs.
> > > > >
> > > > > Did you try pm_suspend_ignore_children()? It looks like it
> > > > > was made \x7f\x7f\x7ffor \x7fyour use-case.
> > > >
> > > > Sorry for the delay in getting back. So, using
> > > > \x7f\x7fpm_suspend_ignore_children() does fix my current issue.
> > > >
> > > > But I still fail to see the original purpose of this patch in
> > > > the \x7f\x7fremoteproc core especially given that the core itself does
> > > > not have \x7f\x7fany callbacks. If the sole intention was to call the
> > > > parent pdev's \x7f\x7fcallbacks, then I feel that state-machine is
> > > > better managed within \x7f\x7fthat particular platform driver itself,
> > > > as the sequencing/device \x7f\x7fmanagement can vary with different
> > > > platform drivers.
> > >
> > > The problem is that with Ingenic SoCs some clocks must be enabled in
> > > \x7forder to load the firmware, and the core doesn't give you an option
> > > to \x7fregister a callback to be called before loading it.
> >
> > Yep, I have similar usage in one of my remoteproc drivers (see
> > keystone_remoteproc.c), and I think this all stems from the need to
> > use/support loading into a processor's internal memories. My driver does
> > leverage the pm-clks backend plugged into pm_runtime, so you won't see
> > explicit calls on the clocks.
> >
> > I guess the question is what exact PM features you are looking for with
> > the Ingenic SoC. I do see you are using pm_runtime autosuspend, and your
> > callbacks are managing the clocks, but reset is managed only in
> > start/stop.
> >
> > > The first version of \x7fmy patchset added .prepare/.unprepare
> > > callbacks to the struct rproc_ops, \x7fbut the feedback from the
> > > maintainers was that I should do it via \x7fruntime PM. However, it was
> > > not possible to keep it contained in the \x7fdriver, since again the
> > > core doesn't provide a "prepare" callback, so no \x7fplace to call
> > > pm_runtime_get_sync().
> > FWIW, the .prepare/.unprepare callbacks is actually now part of the
> > rproc core. Looks like multiple developers had a need for this, and this
> > functionality went in at the same time as your driver :). Not sure if
> > you looked up the prior patches, I leveraged the patch that Loic had
> > submitted a long-time ago, and a revised version of it is now part of
> > 5.8-rc1.
>
> WTF maintainers, you refuse my patchset for adding a .prepare/.unprepare,
> ask me to do it via runtime PM, then merge another patchset that adds these
> callback. At least be constant in your decisions.
>
Sorry, I missed this when applying the two patches, but you're of course
right.
> Anyway, now we have two methods added to linux-next for doing the exact same
> thing. What should we do about it?
>
I like the pm_runtime approach and as it was Arnaud that asked you to
change it, perhaps he and Loic can agree on updating the ST driver so we
can drop the prepare/unprepare ops again?
Regards,
Bjorn
next prev parent reply other threads:[~2020-06-11 4:42 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-15 10:43 [PATCH v7 1/5] dt-bindings: Document JZ47xx VPU auxiliary processor Paul Cercueil
2020-05-15 10:43 ` [PATCH v7 2/5] remoteproc: Add device-managed variants of rproc_alloc/rproc_add Paul Cercueil
2020-05-15 10:43 ` [PATCH v7 3/5] remoteproc: Add support for runtime PM Paul Cercueil
2020-05-22 16:47 ` Suman Anna
2020-05-22 17:11 ` Paul Cercueil
2020-06-08 22:03 ` Suman Anna
2020-06-08 22:46 ` Paul Cercueil
2020-06-08 23:10 ` Suman Anna
2020-06-10 9:40 ` Paul Cercueil
2020-06-11 4:39 ` Bjorn Andersson [this message]
2020-06-11 21:17 ` Suman Anna
2020-06-22 17:51 ` Arnaud POULIQUEN
2020-05-15 10:43 ` [PATCH v7 4/5] remoteproc: ingenic: Added remoteproc driver Paul Cercueil
2020-05-18 23:57 ` Bjorn Andersson
2020-06-11 21:47 ` Suman Anna
2020-06-11 22:21 ` Paul Cercueil
2020-06-12 0:21 ` Suman Anna
2020-06-12 11:47 ` Paul Cercueil
2020-06-12 14:47 ` Suman Anna
2020-06-21 19:30 ` Bjorn Andersson
2020-06-24 23:14 ` Mathieu Poirier
2020-05-15 10:43 ` [PATCH v7 5/5] MAINTAINERS: Add myself as reviewer for Ingenic rproc driver Paul Cercueil
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=20200611043951.GA3251@builder.lan \
--to=bjorn.andersson@linaro.org \
--cc=arnaud.pouliquen@st.com \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=loic.pallardy@st.com \
--cc=od@zcrc.me \
--cc=ohad@wizery.com \
--cc=paul@crapouillou.net \
--cc=s-anna@ti.com \
--cc=t-kristo@ti.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.