All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: Nicolin Chen <nicoleotsuka@gmail.com>
Cc: "Łukasz Majewski" <lukma@denx.de>, "Timur Tabi" <timur@tabi.org>,
	"Xiubo Li" <Xiubo.Lee@gmail.com>,
	"Fabio Estevam" <fabio.estevam@nxp.com>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Takashi Iwai" <tiwai@suse.com>,
	alsa-devel@alsa-project.org, linuxppc-dev@lists.ozlabs.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal to system freq
Date: Thu, 7 Sep 2017 14:44:11 +0100	[thread overview]
Message-ID: <20170907134411.uzwh54lstzmvp6dd@sirena.co.uk> (raw)
In-Reply-To: <20170905174528.GA23906@Asurada-Nvidia>

[-- Attachment #1: Type: text/plain, Size: 1569 bytes --]

On Tue, Sep 05, 2017 at 10:45:29AM -0700, Nicolin Chen wrote:

> The ipg clock is merely used to access registers, and has nothing
> (directly) to do with external clock outputs. The driver shall not
> change the ipg clock as the system ipg clock (its parent clock)
> might be messed and even system time would get weird -- happened
> once when the fsl_spdif driver used to call clk_set_rate() on its
> ipg clock. Although the clock controller should have some kind of
> protection in my opinion, we just avoid IP clock rate change in all
> audio drivers as well.

Yes, the clock API needs constraints code.

> On the other hand, the sys clock (baudclk in the driver) should be
> configured whenever it's related to external clock outputs. When I
> implemented this set_sysclk() for fsl_ssi.c, I used it to set this
> sys clock (baudclk) by a machine driver, in order to set bit clock.
> Then someone patched the driver by moving all the code to set_bclk()
> to make machine drivers simpler. Now the set_sysclk() is remained
> to give machine drivers a chance to override clock configurations
> in the hw_params(). This could be used in TDM or some other special
> cases (It could also have a purpose for backwards compatibility).

> So here, we should set baudclk (BCLK generator).

No, that's just going to cause confusion - if all the other drivers are
using set_sysclk() to set an input clock rate to the IP rather than an
output clock but your driver does something else then sooner or later
someone will run into trouble with that.  

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Mark Brown <broonie@kernel.org>
To: Nicolin Chen <nicoleotsuka@gmail.com>
Cc: alsa-devel@alsa-project.org, "Timur Tabi" <timur@tabi.org>,
	"Xiubo Li" <Xiubo.Lee@gmail.com>,
	linux-kernel@vger.kernel.org, "Takashi Iwai" <tiwai@suse.com>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Łukasz Majewski" <lukma@denx.de>,
	"Fabio Estevam" <fabio.estevam@nxp.com>,
	linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal to system freq
Date: Thu, 7 Sep 2017 14:44:11 +0100	[thread overview]
Message-ID: <20170907134411.uzwh54lstzmvp6dd@sirena.co.uk> (raw)
In-Reply-To: <20170905174528.GA23906@Asurada-Nvidia>


[-- Attachment #1.1: Type: text/plain, Size: 1569 bytes --]

On Tue, Sep 05, 2017 at 10:45:29AM -0700, Nicolin Chen wrote:

> The ipg clock is merely used to access registers, and has nothing
> (directly) to do with external clock outputs. The driver shall not
> change the ipg clock as the system ipg clock (its parent clock)
> might be messed and even system time would get weird -- happened
> once when the fsl_spdif driver used to call clk_set_rate() on its
> ipg clock. Although the clock controller should have some kind of
> protection in my opinion, we just avoid IP clock rate change in all
> audio drivers as well.

Yes, the clock API needs constraints code.

> On the other hand, the sys clock (baudclk in the driver) should be
> configured whenever it's related to external clock outputs. When I
> implemented this set_sysclk() for fsl_ssi.c, I used it to set this
> sys clock (baudclk) by a machine driver, in order to set bit clock.
> Then someone patched the driver by moving all the code to set_bclk()
> to make machine drivers simpler. Now the set_sysclk() is remained
> to give machine drivers a chance to override clock configurations
> in the hw_params(). This could be used in TDM or some other special
> cases (It could also have a purpose for backwards compatibility).

> So here, we should set baudclk (BCLK generator).

No, that's just going to cause confusion - if all the other drivers are
using set_sysclk() to set an input clock rate to the IP rather than an
output clock but your driver does something else then sooner or later
someone will run into trouble with that.  

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



  reply	other threads:[~2017-09-07 13:44 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-03 11:05 [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal to system freq Lukasz Majewski
2017-09-03 12:44 ` Fabio Estevam
2017-09-03 12:44   ` Fabio Estevam
2017-09-03 14:40   ` Łukasz Majewski
2017-09-03 15:29     ` Fabio Estevam
2017-09-03 15:29       ` Fabio Estevam
2017-09-03 15:29       ` Fabio Estevam
2017-09-05  5:20     ` Nicolin Chen
2017-09-05  8:35       ` Łukasz Majewski
2017-09-05 18:11         ` Nicolin Chen
2017-09-05 21:13           ` Łukasz Majewski
2017-09-05 21:13             ` Łukasz Majewski
2017-09-05 22:52             ` Nicolin Chen
2017-09-05 22:52               ` Nicolin Chen
2017-09-06  9:22               ` Łukasz Majewski
2017-09-06  9:22                 ` Łukasz Majewski
2017-09-06 17:33                 ` Nicolin Chen
2017-09-06 17:33                   ` Nicolin Chen
2017-09-06 18:35                   ` Łukasz Majewski
2017-09-06 19:47                     ` Nicolin Chen
2017-09-06 19:47                       ` Nicolin Chen
2017-09-06 21:18                       ` Łukasz Majewski
2017-09-06 21:18                         ` Łukasz Majewski
2017-09-07 23:10                       ` Łukasz Majewski
2017-09-07 23:10                         ` Łukasz Majewski
2017-09-08  0:39                         ` Nicolin Chen
2017-09-08  0:39                           ` Nicolin Chen
2017-09-05 23:20             ` Fabio Estevam
2017-09-05 23:20               ` Fabio Estevam
2017-09-05 23:20               ` Fabio Estevam
2017-09-06  8:44               ` Łukasz Majewski
2017-09-05 20:14         ` Fabio Estevam
2017-09-05 20:14           ` Fabio Estevam
2017-09-05 21:14           ` Łukasz Majewski
2017-09-05  5:06 ` Nicolin Chen
2017-09-05  7:37   ` Łukasz Majewski
2017-09-05  7:52     ` Nicolin Chen
2017-09-05  8:19       ` Łukasz Majewski
2017-09-05  8:19         ` Łukasz Majewski
2017-09-05 15:15         ` Mark Brown
2017-09-05 15:15           ` Mark Brown
2017-09-05 17:45           ` Nicolin Chen
2017-09-07 13:44             ` Mark Brown [this message]
2017-09-07 13:44               ` Mark Brown
2017-09-07 23:03               ` Nicolin Chen

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=20170907134411.uzwh54lstzmvp6dd@sirena.co.uk \
    --to=broonie@kernel.org \
    --cc=Xiubo.Lee@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=fabio.estevam@nxp.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=lukma@denx.de \
    --cc=nicoleotsuka@gmail.com \
    --cc=perex@perex.cz \
    --cc=timur@tabi.org \
    --cc=tiwai@suse.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.