linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Boyd <sboyd@codeaurora.org>
To: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: Stanimir Varbanov <stanimir.varbanov@linaro.org>,
	"Dwivedi, Avaneesh Kumar (avani)" <akdwived@codeaurora.org>,
	agross@codeaurora.org, linux-arm-msm@vger.kernel.org
Subject: Re: [RESEND PATCH v2] remoteproc: qcom: Add venus rproc support on msm8996 platform.
Date: Fri, 16 Dec 2016 16:56:08 -0800	[thread overview]
Message-ID: <20161217005608.GU5423@codeaurora.org> (raw)
In-Reply-To: <20161213065118.GF3439@tuxbot>

On 12/12, Bjorn Andersson wrote:
> On Wed 30 Nov 01:22 PST 2016, Stanimir Varbanov wrote:
> [..]
> 
> > I think using power domain in remoteproc driver will break power
> > management of the v4l2 venus driver. Presently I use runtime pm to
> > switch ON/OFF GDSC and enable/disable Venus clocks.
> > 
> > When the .probe of venus remoteproc driver is called the power domain
> > will become ON and never switched OFF (except when platform driver
> > .remove method is called). One possible solution would be to add runtime
> > pm in venus remoreproc driver.
> > 
> > IMO we should think more about that.
> > 
> > Bjorn, Stephen what are your opinions?
> > 
> 
> Sorry for not getting back to you on this after our earlier discussion
> on the topic.
> 
> Modelling the remoteproc and codec drivers as completely separate
> entities (with only the rproc phandle) gives us issues with the timing
> between the two. As I pulled down and started playing with [1] I noticed
> that I was not able to get the codec driver to probe unless I compiled
> it as a module which I insmoded after my /lib/firmware became available.
> 
> In addition to this, there's no way for the remoteproc driver to inform
> the codec driver when it's actually shutting down and booting back up
> during a crash recovery (an async operation).
> 
> And lastly when I talked to Rob about the DT binding the obvious
> question of why one piece of hardware have two disjunct nodes in the DT.
> 
> 
> So I believe we should represent the codec driver as a child of the
> remoteproc driver, utilizing the newly introduced "remoteproc
> subdevices" to probe and remove the codec driver based on the state of
> the remoteproc driver. This relationship will also allow us to tie
> certain resources (e.g. the clocks and power-domain) to the remoteproc
> driver and use pm_runtime in either driver to make sure the resources
> are enabled appropriately.
> 
> I did backport some patches from my v4.10 remoteproc pull request into
> [2] and merged this into [1] and made a prototype of this. You can find
> it here [3], I did test that I can boot the remoteproc and run
> v4l2-compliance, shut it down, boot it back up and re-run
> v4l2-compliance, and it seems to work fine.
> 

>From a DT perspective this seems backwards. We shouldn't be
putting something with a reg property underneath a "virtual" node
that doesn't have a reg property. It's already causing pain,
evident by these sorts of patches, so something seems wrong.

Are we gaining anything by having a remoteproc driver and device
for the video hardware here? Why can't the video driver
load/unload firmware with the mdt loader code by itself when it
wants to boot the processor? That seems like a much simpler
design and it nicely avoids this DT confusion.

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

  reply	other threads:[~2016-12-17  0:56 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-29 10:50 [RESEND PATCH v2] remoteproc: qcom: Venus firmware loader support for msm8996 Avaneesh Kumar Dwivedi
2016-11-29 10:50 ` [RESEND PATCH v2] remoteproc: qcom: Add venus rproc support on msm8996 platform Avaneesh Kumar Dwivedi
2016-11-29 19:27   ` Stephen Boyd
2016-11-30  5:24     ` Dwivedi, Avaneesh Kumar (avani)
2016-11-30  9:22       ` Stanimir Varbanov
2016-12-05  9:46         ` Dwivedi, Avaneesh Kumar (avani)
2016-12-07 10:49           ` Stanimir Varbanov
2016-12-13  6:51         ` Bjorn Andersson
2016-12-17  0:56           ` Stephen Boyd [this message]
2016-12-17  7:11             ` Bjorn Andersson
2016-12-21  6:40               ` Dwivedi, Avaneesh Kumar (avani)
2017-01-25 12:37               ` Stanimir Varbanov
2016-11-29 19:24 ` [RESEND PATCH v2] remoteproc: qcom: Venus firmware loader support for msm8996 Stephen Boyd
2016-11-30  5:15   ` Dwivedi, Avaneesh Kumar (avani)

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=20161217005608.GU5423@codeaurora.org \
    --to=sboyd@codeaurora.org \
    --cc=agross@codeaurora.org \
    --cc=akdwived@codeaurora.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=stanimir.varbanov@linaro.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;
as well as URLs for NNTP newsgroup(s).