From: Sagar Dharia <sdharia@codeaurora.org>
To: Mark Brown <broonie@kernel.org>
Cc: gregkh@linuxfoundation.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, oded.gabbay@amd.com,
jkosina@suse.cz, sharon.dvir1@mail.huji.ac.il, joe@perches.com,
davem@davemloft.net, james.hogan@imgtec.com,
michael.opdenacker@free-electrons.com,
daniel.thompson@linaro.org, robh+dt@kernel.org,
pawel.moll@arm.com, mark.rutland@arm.com,
ijc+devicetree@hellion.org.uk, galak@codeaurora.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
kheitke@audience.com, mlocke@codeaurora.org,
agross@codeaurora.org, linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH V3 5/6] slimbus: Add support for 'clock-pause' feature
Date: Mon, 17 Aug 2015 17:43:01 -0600 [thread overview]
Message-ID: <55D27185.4000101@codeaurora.org> (raw)
In-Reply-To: <20150814183918.GF10748@sirena.org.uk>
Hi Mark,
On 8/14/2015 12:39 PM, Mark Brown wrote:
> On Mon, Aug 03, 2015 at 12:59:49AM -0600, Sagar Dharia wrote:
>
>> @@ -459,6 +459,8 @@ int slim_register_controller(struct slim_controller *ctrl)
>> mutex_init(&ctrl->m_ctrl);
>> spin_lock_init(&ctrl->tx.lock);
>> spin_lock_init(&ctrl->rx.lock);
>> + mutex_init(&ctrl->sched.m_reconf);
>> + init_completion(&ctrl->sched.pause_comp);
> Should there not be more interaction with the rest of the framework on
> clock pauses - the bus will need to be started to do transfers for
> example?
I'm relying on controller's pm_runtime as you pointed out for
entering/exiting clock-pause.
The reason to initiate clock-pause from controller was more on the lines
of clock-pause sequence being expensive, and tight coupling between
controller/framer-clocks and clock-pause.
Three reconfiguration-transfer-commands have to be broadcast on the
lines to enter clock-pause, and exiting it is needs 'wakeup' callback
for controller.
Doing this per transfer will be a big overhead.
Using pm_runtime's autosuspend feature allows the controller-device to
enter clock-pause after periods of inactivity to avoid thrashing.
As a trade-off, I am proposing that controller should initiate
clock-pause from its pm_runtime callbacks, and framework should provide
the means to do it.
Also, typically clocks of the controller are coupled with clock-pause
and clocks cannot be turned off until the clock-pause sequence is sent
on the bus since framer has to keep clocking the bus.
Thanks
Sagar
>
>> +#include <linux/slimbus.h>
>> +/**
> Missing blank line.
>
>> + * slim_ctrl_clk_pause: Called by slimbus controller to enter/exit 'clock pause'
> Is the controller the best place to initiate bus pausing? It's
> surprising to me that it would be, the bus being idle isn't something
> that needs controller specific knowledge so I'd expect the framework to
> have standard support for this.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
next prev parent reply other threads:[~2015-08-17 23:43 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-03 6:59 [PATCH V3 0/6] Introduce framework for SLIMbus device drivers Sagar Dharia
2015-08-03 6:59 ` [PATCH V3 1/6] SLIMbus: Device management on SLIMbus Sagar Dharia
2015-08-14 18:17 ` Mark Brown
2015-08-03 6:59 ` [PATCH V3 2/6] of/slimbus: OF helper for SLIMbus Sagar Dharia
2015-08-03 16:13 ` Rob Herring
2015-08-03 16:13 ` Rob Herring
2015-08-04 17:27 ` Mark Brown
2015-08-04 17:27 ` Mark Brown
2015-08-06 19:10 ` Sagar Dharia
2015-08-06 19:10 ` Sagar Dharia
2015-08-03 6:59 ` [PATCH V3 3/6] slimbus: Add messaging APIs to slimbus framework Sagar Dharia
2015-08-14 18:25 ` Mark Brown
2015-08-14 18:33 ` Mark Brown
2015-08-03 6:59 ` [PATCH V3 4/6] slim: qcom: Add Qualcomm Slimbus controller driver Sagar Dharia
2015-08-14 18:31 ` Mark Brown
[not found] ` <20150814183106.GE10748-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-08-17 23:44 ` Sagar Dharia
2015-08-17 23:44 ` Sagar Dharia
2015-08-03 6:59 ` [PATCH V3 5/6] slimbus: Add support for 'clock-pause' feature Sagar Dharia
2015-08-14 18:39 ` Mark Brown
2015-08-17 23:43 ` Sagar Dharia [this message]
2015-08-03 6:59 ` [PATCH V3 6/6] slim: qcom: Add runtime-pm support using clock-pause feature Sagar Dharia
2015-08-14 18:43 ` Mark Brown
2015-08-14 18:46 ` [PATCH V3 0/6] Introduce framework for SLIMbus device drivers Mark Brown
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=55D27185.4000101@codeaurora.org \
--to=sdharia@codeaurora.org \
--cc=agross@codeaurora.org \
--cc=alan@linux.intel.com \
--cc=andreas.noever@gmail.com \
--cc=bp@suse.de \
--cc=broonie@kernel.org \
--cc=daniel.thompson@linaro.org \
--cc=daniel@ffwll.ch \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=gong.chen@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=ijc+devicetree@hellion.org.uk \
--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=mlocke@codeaurora.org \
--cc=oded.gabbay@amd.com \
--cc=pawel.moll@arm.com \
--cc=poeschel@lemonage.de \
--cc=robh+dt@kernel.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 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.