From: "Jonathan Neuschäfer" <j.neuschaefer@gmx.net>
To: srinivas.kandagatla@linaro.org
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 10:06:25 +0200 [thread overview]
Message-ID: <20171007080625.gotgts2ssgacawpx@latitude> (raw)
In-Reply-To: <20171006155136.4682-5-srinivas.kandagatla@linaro.org>
[-- Attachment #1: Type: text/plain, Size: 3556 bytes --]
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.
> + * 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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2017-10-07 8:06 UTC|newest]
Thread overview: 87+ 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-06 15:51 ` 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 4:14 ` Jonathan Neuschäfer
2017-10-07 10:24 ` Srinivas Kandagatla
2017-10-07 10:24 ` Srinivas Kandagatla
2017-10-10 10:45 ` [alsa-devel] " Vinod Koul
2017-10-10 10:45 ` Vinod Koul
2017-10-10 12:34 ` Srinivas Kandagatla
2017-10-10 16:49 ` Vinod Koul
2017-10-10 16:49 ` [alsa-devel] " Vinod Koul
2017-10-10 17:21 ` 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-13 19:26 ` Rob Herring
2017-10-16 9:28 ` Srinivas Kandagatla
2017-10-16 9:28 ` Srinivas Kandagatla
2017-10-17 6:23 ` Bjorn Andersson
2017-10-17 6:23 ` Bjorn Andersson
2017-10-18 16:38 ` Srinivas Kandagatla
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-11-01 23:08 ` Bjorn Andersson
2017-10-25 0:16 ` Stephen Boyd
2017-10-25 0:16 ` Stephen Boyd
2017-10-10 10:05 ` Charles Keepax
2017-10-10 10:05 ` [alsa-devel] " Charles Keepax
2017-10-10 12:34 ` Srinivas Kandagatla
2017-10-10 12:34 ` [alsa-devel] " Srinivas Kandagatla
2017-10-10 12:56 ` Charles Keepax
2017-10-10 12:56 ` [alsa-devel] " Charles Keepax
2017-10-11 10:23 ` Mark Brown
2017-10-11 10:23 ` [alsa-devel] " Mark Brown
2017-10-12 11:01 ` Sanyog Kale
2017-10-12 13:26 ` Srinivas Kandagatla
2017-10-12 13:26 ` Srinivas Kandagatla
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-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 [this message]
2017-10-07 10:24 ` Srinivas Kandagatla
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
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-06 15:51 ` srinivas.kandagatla
2017-10-07 6:42 ` Jonathan Neuschäfer
2017-10-07 10:24 ` Srinivas Kandagatla
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 12:19 ` [alsa-devel] " Charles Keepax
2017-10-10 13:01 ` Srinivas Kandagatla
2017-10-10 13:01 ` [alsa-devel] " Srinivas Kandagatla
2017-10-11 4:38 ` Vinod Koul
2017-10-11 7:53 ` Arnd Bergmann
2017-10-11 7:53 ` Arnd Bergmann
2017-10-11 9:42 ` Srinivas Kandagatla
2017-10-11 9:42 ` [alsa-devel] " Srinivas Kandagatla
[not found] ` <aa117cb8-ba59-894c-5a82-1b38facfa841-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-10-11 10:24 ` Vinod Koul
2017-10-11 10:24 ` 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-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-06 15:51 ` srinivas.kandagatla
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-06 15:51 ` srinivas.kandagatla
2017-10-20 5:00 ` Bjorn Andersson
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=20171007080625.gotgts2ssgacawpx@latitude \
--to=j.neuschaefer@gmx.net \
--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=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=srinivas.kandagatla@linaro.org \
--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 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.