Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1726340

Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal to system freq

From Nicolin Chen <nicoleotsuka@gmail.com>
Newsgroups linux.kernel
Subject Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal to system freq
Date 2017-09-05 07:30 +0200
Message-ID <umeAV-70c-1@gated-at.bofh.it> (permalink)
References <ulAWR-7Ee-1@gated-at.bofh.it> <ulEnL-19f-5@gated-at.bofh.it> <ulEnL-19f-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Sun, Sep 03, 2017 at 04:40:21PM +0200, Łukasz Majewski wrote:
> >/*
> >* Hardware limitation: The bclk rate must be
> >* never greater than 1/5 IPG clock rate
> >*/
> >if (freq * 5 > clk_get_rate(ssi_private->clk)) {
> >dev_err(cpu_dai->dev, "bitclk > ipgclk/5\n");
> >return -EINVAL;
> >}
> >
> 
> Unfortunately not.
> 
> This is the part of fsl_ssi_set_bclk() function which is called after
> fsl_ssi_set_dai_sysclk() (which sets ssi_private->bitclk_freq = freq;).
> 
> Before the aforementioned check we do have:
> 
> 	if (ssi_private->bitclk_freq)
> 		freq = ssi_private->bitclk_freq;
> 	else
> 		freq = params_channels(hw_params) * 32 * 	params_rate(hw_params);
> 
> 
> Which assigns freq = bitclk_freq (66 MHz)
> 
[...]
> And then we break on this particular check:
> 66MHz * 5 > 66 MHz.
[...]

Does the check fail and return an error here, or not?

> The culprit IMHO is the  ssi_private->bitclk_freq = freq; in the
> fsl_ssi_set_dai_sysclk(), since we _should_ set SSI's IP block clock
> (ssi_private->clk), not the bit clock (BCLK).

No. We should not set the IP block clock. That's from IPG bus
on certain IMX SoCs. Setting it might change IPG bus clocks
which might break the system.

And apparently, we shouldn't set bitclk to 66MHz either. Can
you help to find where this 66MHz comes from?

> This patch just quits early if it detects change, which don't need to be
> done.

I kinda see your point is to error out before hw_params(). So
I feel it would be better to have a similar 5-times-check in
the set_sysclk() too, if it's really necessary.

Btw, I don't see simple card calling set_sysclk() function in
any earlier stage than hw_params(). I am wondering how did you
encounter the problem?

Thanks
Nicolin

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal to system freq Lukasz Majewski <lukma@denx.de> - 2017-09-03 13:10 +0200
  Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Łukasz Majewski <lukma@denx.de> - 2017-09-03 16:50 +0200
    Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Fabio Estevam <festevam@gmail.com> - 2017-09-03 17:40 +0200
    Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Nicolin Chen <nicoleotsuka@gmail.com> - 2017-09-05 07:30 +0200
      Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Łukasz Majewski <lukma@denx.de> - 2017-09-05 10:40 +0200
        Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Nicolin Chen <nicoleotsuka@gmail.com> - 2017-09-05 20:20 +0200
          Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Łukasz Majewski <lukma@denx.de> - 2017-09-05 23:20 +0200
            Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Nicolin Chen <nicoleotsuka@gmail.com> - 2017-09-06 01:00 +0200
              Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Łukasz Majewski <lukma@denx.de> - 2017-09-06 11:30 +0200
                Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Nicolin Chen <nicoleotsuka@gmail.com> - 2017-09-06 19:50 +0200
                Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Łukasz Majewski <lukma@denx.de> - 2017-09-06 20:40 +0200
                Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Nicolin Chen <nicoleotsuka@gmail.com> - 2017-09-06 21:50 +0200
                Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Łukasz Majewski <lukma@denx.de> - 2017-09-06 23:20 +0200
                Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Łukasz Majewski <lukma@denx.de> - 2017-09-08 01:20 +0200
                Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Nicolin Chen <nicoleotsuka@gmail.com> - 2017-09-08 02:40 +0200
            Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Fabio Estevam <festevam@gmail.com> - 2017-09-06 01:30 +0200
              Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Łukasz Majewski <lukma@denx.de> - 2017-09-06 10:50 +0200
        Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Fabio Estevam <festevam@gmail.com> - 2017-09-05 22:20 +0200
          Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Łukasz Majewski <lukma@denx.de> - 2017-09-05 23:20 +0200
  Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Nicolin Chen <nicoleotsuka@gmail.com> - 2017-09-05 07:10 +0200
    Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Łukasz Majewski <lukma@denx.de> - 2017-09-05 09:40 +0200
      Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Nicolin Chen <nicoleotsuka@gmail.com> - 2017-09-05 10:00 +0200
        Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Łukasz Majewski <lukma@denx.de> - 2017-09-05 10:20 +0200
          Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Mark Brown <broonie@kernel.org> - 2017-09-05 17:20 +0200
            Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Nicolin Chen <nicoleotsuka@gmail.com> - 2017-09-05 19:50 +0200
              Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Mark Brown <broonie@kernel.org> - 2017-09-07 15:50 +0200
                Re: [PATCH] sound: soc: fsl: Do not set DAI sysclk when it is equal  to system freq Nicolin Chen <nicoleotsuka@gmail.com> - 2017-09-08 01:10 +0200

csiph-web