From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: "Jonathan Neuschäfer" <j.neuschaefer@gmx.net>
Cc: gregkh@linuxfoundation.org, broonie@kernel.org,
alsa-devel@alsa-project.org, sdharia@codeaurora.org, bp@suse.de,
poeschel@lemonage.de, treding@nvidia.com,
gong.chen@linux.intel.com, andreas.noever@gmail.com,
alan@linux.intel.com, mathieu.poirier@linaro.org,
daniel@ffwll.ch, jkosina@suse.cz, sharon.dvir1@mail.huji.ac.il,
joe@perches.com, davem@davemloft.net, james.hogan@imgtec.com,
michael.opdenacker@free-electrons.com, robh+dt@kernel.org,
pawel.moll@arm.com, mark.rutland@arm.com,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
kheitke@audience.com, linux-arm-msm@vger.kernel.org,
arnd@arndb.de
Subject: Re: [Patch v6 4/7] slimbus: Add support for 'clock-pause' feature
Date: Sat, 7 Oct 2017 11:24:59 +0100 [thread overview]
Message-ID: <dfda11c1-2f2f-9b79-eb13-dd2115d2a919@linaro.org> (raw)
In-Reply-To: <20171007080625.gotgts2ssgacawpx@latitude>
Thanks for the review comments
On 07/10/17 09:06, Jonathan Neuschäfer wrote:
> Hi, some trivial comments below.
>
> On Fri, Oct 06, 2017 at 05:51:33PM +0200, srinivas.kandagatla@linaro.org wrote:
>> From: Sagar Dharia <sdharia@codeaurora.org>
>>
>> Per slimbus specification, a reconfiguration sequence known as
>> 'clock pause' needs to be broadcast over the bus while entering low-
>> power mode. Clock-pause is initiated by the controller driver.
>> To exit clock-pause, controller typically wakes up the framer device.
>> Since wakeup precedure is controller-specific, framework calls it via
>> controller's function pointer to invoke it.
>>
>> Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>> ---
> [...]
>> @@ -429,6 +444,14 @@ void slim_return_tx(struct slim_controller *ctrl, int err)
>> cur.cb(cur.ctx, err);
>>
>> up(&ctrl->tx_sem);
>> + if (!cur.clk_pause && (!cur.need_tid || err)) {
>> + /**
>
> This isn't really a kerneldoc comment.
Will fix all such instances in next version.
>
>> + * remove runtime-pm vote if this was TX only, or
>> + * if there was error during this transaction
>> + */
>> + pm_runtime_mark_last_busy(ctrl->dev.parent);
>> + pm_runtime_put_autosuspend(ctrl->dev.parent);
>> + }
>> }
>> EXPORT_SYMBOL_GPL(slim_return_tx);
>>
> [...]
>> +/**
>> + * slim_ctrl_clk_pause: Called by slimbus controller to enter/exit 'clock pause'
>> + * Slimbus specification needs this sequence to turn-off clocks for the bus.
>> + * The sequence involves sending 3 broadcast messages (reconfiguration
>> + * sequence) to inform all devices on the bus.
>> + * To exit clock-pause, controller typically wakes up active framer device.
>> + * @ctrl: controller requesting bus to be paused or woken up
>> + * @wakeup: Wakeup this controller from clock pause.
>> + * @restart: Restart time value per spec used for clock pause. This value
>> + * isn't used when controller is to be woken up.
>> + * This API executes clock pause reconfiguration sequence if wakeup is false.
>> + * If wakeup is true, controller's wakeup is called.
>> + * For entering clock-pause, -EBUSY is returned if a message txn in pending.
>> + */
>> +int slim_ctrl_clk_pause(struct slim_controller *ctrl, bool wakeup, u8 restart)
>> +{
>> + int i, ret = 0;
>> + unsigned long flags;
>> + struct slim_sched *sched = &ctrl->sched;
>> + struct slim_val_inf msg = {0, 0, NULL, NULL, NULL, NULL};
>> +
>> + DEFINE_SLIM_BCAST_TXN(txn, SLIM_MSG_MC_BEGIN_RECONFIGURATION,
>> + 3, SLIM_LA_MANAGER, &msg);
>> +
>> + if (wakeup == false && restart > SLIM_CLK_UNSPECIFIED)
>> + return -EINVAL;
>> +
>> + mutex_lock(&sched->m_reconf);
>> + if (wakeup) {
>> + if (sched->clk_state == SLIM_CLK_ACTIVE) {
>> + mutex_unlock(&sched->m_reconf);
>> + return 0;
>> + }
>> +
>> + /**
>
> ditto
>
>> + * Fine-tune calculation based on clock gear,
>> + * message-bandwidth after bandwidth management
>> + */
>> + ret = wait_for_completion_timeout(&sched->pause_comp,
>> + msecs_to_jiffies(100));
>> + if (!ret) {
>> + mutex_unlock(&sched->m_reconf);
>> + pr_err("Previous clock pause did not finish");
>> + return -ETIMEDOUT;
>> + }
>> + ret = 0;
>> +
>> + /**
>
> ditto
>
>> + * Slimbus framework will call controller wakeup
>> + * Controller should make sure that it sets active framer
>> + * out of clock pause
>> + */
>> + if (sched->clk_state == SLIM_CLK_PAUSED && ctrl->wakeup)
>> + ret = ctrl->wakeup(ctrl);
>> + if (!ret)
>> + sched->clk_state = SLIM_CLK_ACTIVE;
>> + mutex_unlock(&sched->m_reconf);
>> +
>> + return ret;
>> + }
> [...]
>
>
> Thanks,
> Jonathan Neuschäfer
>
next prev parent reply other threads:[~2017-10-07 10:24 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-06 15:51 [Patch v6 0/7] Introduce framework for SLIMbus device drivers srinivas.kandagatla
2017-10-06 15:51 ` [Patch v6 1/7] slimbus: Device management on SLIMbus srinivas.kandagatla
2017-10-10 10:05 ` Charles Keepax
2017-10-10 12:34 ` Srinivas Kandagatla
2017-10-10 12:56 ` Charles Keepax
2017-10-11 10:23 ` Mark Brown
2017-10-12 11:01 ` [alsa-devel] " Sanyog Kale
2017-10-12 13:26 ` Srinivas Kandagatla
[not found] ` <20171006155136.4682-2-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-10-07 4:14 ` Jonathan Neuschäfer
2017-10-07 10:24 ` Srinivas Kandagatla
2017-10-10 10:45 ` [alsa-devel] " Vinod Koul
2017-10-10 12:34 ` Srinivas Kandagatla
2017-10-10 16:49 ` Vinod Koul
2017-10-10 17:21 ` [alsa-devel] " Srinivas Kandagatla
2017-10-11 4:07 ` Vinod Koul
2017-10-11 9:42 ` Srinivas Kandagatla
2017-10-11 10:21 ` Vinod Koul
2017-10-11 11:23 ` Srinivas Kandagatla
2017-10-13 19:26 ` Rob Herring
2017-10-16 9:28 ` Srinivas Kandagatla
2017-10-17 6:23 ` Bjorn Andersson
2017-10-18 16:38 ` Srinivas Kandagatla
[not found] ` <1a1d2777-be69-98ca-afba-0ffd0e3dd80f-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-11-01 23:08 ` Bjorn Andersson
2017-10-25 0:16 ` Stephen Boyd
2017-10-23 9:06 ` Mark Brown
2017-10-06 15:51 ` [Patch v6 3/7] slimbus: qcom: Add Qualcomm Slimbus controller driver srinivas.kandagatla
2017-10-07 7:45 ` Jonathan Neuschäfer
2017-10-07 10:24 ` Srinivas Kandagatla
2017-10-13 19:17 ` Rob Herring
2017-10-16 9:28 ` Srinivas Kandagatla
2017-10-18 7:27 ` Bjorn Andersson
2017-10-18 16:39 ` Srinivas Kandagatla
2017-10-06 15:51 ` [Patch v6 4/7] slimbus: Add support for 'clock-pause' feature srinivas.kandagatla
2017-10-07 8:06 ` Jonathan Neuschäfer
2017-10-07 10:24 ` Srinivas Kandagatla [this message]
2017-10-06 15:51 ` [Patch v6 6/7] regmap: add SLIMBUS support srinivas.kandagatla
2017-10-07 5:02 ` Jonathan Neuschäfer
2017-10-07 10:25 ` Srinivas Kandagatla
2017-10-20 5:00 ` Bjorn Andersson
[not found] ` <20171006155136.4682-1-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-10-06 15:51 ` [Patch v6 2/7] slimbus: Add messaging APIs to slimbus framework srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A
2017-10-07 6:42 ` Jonathan Neuschäfer
2017-10-07 10:24 ` Srinivas Kandagatla
2017-10-07 12:29 ` Jonathan Neuschäfer
2017-10-10 12:19 ` Charles Keepax
2017-10-10 13:01 ` Srinivas Kandagatla
2017-10-11 4:38 ` [alsa-devel] " Vinod Koul
2017-10-11 7:53 ` Arnd Bergmann
2017-10-11 9:42 ` Srinivas Kandagatla
[not found] ` <aa117cb8-ba59-894c-5a82-1b38facfa841-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-10-11 10:24 ` [alsa-devel] " Vinod Koul
2017-10-11 11:12 ` Srinivas Kandagatla
2017-10-18 6:15 ` Bjorn Andersson
2017-10-18 16:39 ` Srinivas Kandagatla
2017-10-20 5:00 ` Bjorn Andersson
2017-10-06 15:51 ` [Patch v6 5/7] slimbus: qcom: Add runtime-pm support using clock-pause feature srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A
2017-10-07 8:22 ` Jonathan Neuschäfer
2017-10-07 10:25 ` Srinivas Kandagatla
2017-10-06 15:51 ` [Patch v6 7/7] MAINTAINERS: Add SLIMbus maintainer srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A
2017-10-20 5:00 ` Bjorn Andersson
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=dfda11c1-2f2f-9b79-eb13-dd2115d2a919@linaro.org \
--to=srinivas.kandagatla@linaro.org \
--cc=alan@linux.intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=andreas.noever@gmail.com \
--cc=arnd@arndb.de \
--cc=bp@suse.de \
--cc=broonie@kernel.org \
--cc=daniel@ffwll.ch \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=gong.chen@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=j.neuschaefer@gmx.net \
--cc=james.hogan@imgtec.com \
--cc=jkosina@suse.cz \
--cc=joe@perches.com \
--cc=kheitke@audience.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mathieu.poirier@linaro.org \
--cc=michael.opdenacker@free-electrons.com \
--cc=pawel.moll@arm.com \
--cc=poeschel@lemonage.de \
--cc=robh+dt@kernel.org \
--cc=sdharia@codeaurora.org \
--cc=sharon.dvir1@mail.huji.ac.il \
--cc=treding@nvidia.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 NNTP newsgroup(s).