From: Stephen Boyd <sboyd@codeaurora.org>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Joel Stanley <joel@jms.id.au>, Lee Jones <lee.jones@linaro.org>,
Michael Turquette <mturquette@baylibre.com>,
linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Andrew Jeffery <andrew@aj.id.au>, Jeremy Kerr <jk@ozlabs.org>,
Rick Altherr <raltherr@google.com>,
Ryan Chen <ryan_chen@aspeedtech.com>,
Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v6 4/5] clk: aspeed: Register gated clocks
Date: Tue, 2 Jan 2018 10:16:08 -0800 [thread overview]
Message-ID: <20180102181608.GG7997@codeaurora.org> (raw)
In-Reply-To: <1514584997.2743.107.camel@kernel.crashing.org>
On 12/30, Benjamin Herrenschmidt wrote:
> On Tue, 2017-12-26 at 17:32 -0800, Stephen Boyd wrote:
> > > I noticed we do have a few i2c based clock drivers... how are they ever
> > > supposed to work ? i2c bus controllers are allowed to sleep and the i2c
> > > core takes mutexes...
> >
> > We have clk_prepare()/clk_unprepare() for sleeping suckage. You
> > can use that, and i2c based clk drivers do that today.
>
> "suckage" ? Hehe ... the suckage should rather be stuff that cannot
> sleep. Arbitrary latencies and jitter caused by too much code wanting
> to be "atomic" when unnecessary are a bad thing.
Heh. Of course.
>
> In the case of clocks like the aspeed where we have to wait for a
> rather long stabilization delay, way too long to legitimately do a non-
> sleepable delay with a lock held, do we need to do everything in
> prepare() then ?
>
Yes. If we have to wait a long time in the enable path it makes
sense to move it to the prepare path instead, if possible. That
way we avoid holding a spinlock for a long time.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
WARNING: multiple messages have this Message-ID (diff)
From: sboyd@codeaurora.org (Stephen Boyd)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v6 4/5] clk: aspeed: Register gated clocks
Date: Tue, 2 Jan 2018 10:16:08 -0800 [thread overview]
Message-ID: <20180102181608.GG7997@codeaurora.org> (raw)
In-Reply-To: <1514584997.2743.107.camel@kernel.crashing.org>
On 12/30, Benjamin Herrenschmidt wrote:
> On Tue, 2017-12-26 at 17:32 -0800, Stephen Boyd wrote:
> > > I noticed we do have a few i2c based clock drivers... how are they ever
> > > supposed to work ? i2c bus controllers are allowed to sleep and the i2c
> > > core takes mutexes...
> >
> > We have clk_prepare()/clk_unprepare() for sleeping suckage. You
> > can use that, and i2c based clk drivers do that today.
>
> "suckage" ? Hehe ... the suckage should rather be stuff that cannot
> sleep. Arbitrary latencies and jitter caused by too much code wanting
> to be "atomic" when unnecessary are a bad thing.
Heh. Of course.
>
> In the case of clocks like the aspeed where we have to wait for a
> rather long stabilization delay, way too long to legitimately do a non-
> sleepable delay with a lock held, do we need to do everything in
> prepare() then ?
>
Yes. If we have to wait a long time in the enable path it makes
sense to move it to the prepare path instead, if possible. That
way we avoid holding a spinlock for a long time.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
next prev parent reply other threads:[~2018-01-02 18:16 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-28 7:19 [PATCH v6 0/5] clk: Add Aspeed clock driver Joel Stanley
2017-11-28 7:19 ` Joel Stanley
2017-11-28 7:19 ` [PATCH v6 1/5] clk: Add clock driver for ASPEED BMC SoCs Joel Stanley
2017-11-28 7:19 ` Joel Stanley
2017-12-20 3:42 ` Joel Stanley
2017-12-20 3:42 ` Joel Stanley
2017-11-28 7:19 ` [PATCH v6 2/5] clk: aspeed: Register core clocks Joel Stanley
2017-11-28 7:19 ` Joel Stanley
2017-11-28 7:19 ` [PATCH v6 3/5] clk: aspeed: Add platform driver and register PLLs Joel Stanley
2017-11-28 7:19 ` Joel Stanley
2017-11-28 7:19 ` [PATCH v6 4/5] clk: aspeed: Register gated clocks Joel Stanley
2017-11-28 7:19 ` Joel Stanley
2017-12-21 23:39 ` Stephen Boyd
2017-12-21 23:39 ` Stephen Boyd
2017-12-22 2:36 ` Benjamin Herrenschmidt
2017-12-22 2:36 ` Benjamin Herrenschmidt
2017-12-22 2:43 ` Benjamin Herrenschmidt
2017-12-22 2:43 ` Benjamin Herrenschmidt
2017-12-27 1:32 ` Stephen Boyd
2017-12-27 1:32 ` Stephen Boyd
2017-12-29 22:03 ` Benjamin Herrenschmidt
2017-12-29 22:03 ` Benjamin Herrenschmidt
2018-01-02 5:46 ` Benjamin Herrenschmidt
2018-01-02 5:46 ` Benjamin Herrenschmidt
2018-01-02 18:16 ` Stephen Boyd [this message]
2018-01-02 18:16 ` Stephen Boyd
2017-11-28 7:19 ` [PATCH v6 5/5] clk: aspeed: Add reset controller Joel Stanley
2017-11-28 7:19 ` Joel Stanley
2017-12-06 7:56 ` [PATCH v6 0/5] clk: Add Aspeed clock driver Joel Stanley
2017-12-06 7:56 ` Joel Stanley
2017-12-21 23:40 ` Stephen Boyd
2017-12-21 23:40 ` Stephen Boyd
2017-12-22 1:42 ` Joel Stanley
2017-12-22 1:42 ` Joel Stanley
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=20180102181608.GG7997@codeaurora.org \
--to=sboyd@codeaurora.org \
--cc=andrew@aj.id.au \
--cc=arnd@arndb.de \
--cc=benh@kernel.crashing.org \
--cc=jk@ozlabs.org \
--cc=joel@jms.id.au \
--cc=lee.jones@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=raltherr@google.com \
--cc=ryan_chen@aspeedtech.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.