From: Peter Ujfalusi <peter.ujfalusi@ti.com>
To: Ricardo Neri <ricardo.neri@ti.com>
Cc: Benoit Cousson <b-cousson@ti.com>,
Mark Brown <broonie@opensource.wolfsonmicro.com>,
Liam Girdwood <lrg@ti.com>, Tony Lindgren <tony@atomide.com>,
alsa-devel@alsa-project.org, devicetree-discuss@lists.ozlabs.org,
Jarkko Nikula <jarkko.nikula@bitmer.com>,
linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [alsa-devel] [PATCH 07/11] ASoC: omap-mcbsp: Sidetone: Use SIDLE bits in SYSCONFIG register to select noidle mode
Date: Thu, 09 Aug 2012 10:05:50 +0300 [thread overview]
Message-ID: <5023614E.3030308@ti.com> (raw)
In-Reply-To: <5022E46A.4010909@ti.com>
Hi Ricardo,
On 08/09/2012 01:12 AM, Ricardo Neri wrote:
> Is this another case in which it is required to change the idle-mode on a
> per-use-case basis? In the past I was trying to do the same with HDMI [1]. In
> that case it was decided to add the HWMOD_SWSUP_SIDLE to hwmod data with the
> drawback of using no-idle/force-idle rather than smart-idle[2][3].
This only concerns use case on OMAP3 when the sidetone is in use. In all other
use cases we want to use smart-idle (music playback, FM TX/RX, etc).
The main problem here is that the sidetone block have broken sidle line, it
can not prevent McBSP iclk to be gated.
The sidetone block is using the ICLK of the McBSP port (OMAP3 has ST block
attached to McBSP2 and 3 ports only).
> [1] http://www.mail-archive.com/linux-omap@vger.kernel.org/msg60226.html
> [2] http://www.mail-archive.com/linux-omap@vger.kernel.org/msg70463.html
> [3] http://www.mail-archive.com/linux-omap@vger.kernel.org/msg70653.html
>>
>> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
>> ---
>> sound/soc/omap/mcbsp.c | 18 ++++++++++++++----
>> sound/soc/omap/mcbsp.h | 1 +
>> 2 files changed, 15 insertions(+), 4 deletions(-)
>>
>> diff --git a/sound/soc/omap/mcbsp.c b/sound/soc/omap/mcbsp.c
>> index c870023..e008898 100644
>> --- a/sound/soc/omap/mcbsp.c
>> +++ b/sound/soc/omap/mcbsp.c
>> @@ -257,8 +257,15 @@ static void omap_st_on(struct omap_mcbsp *mcbsp)
>> {
>> unsigned int w;
>>
>> - if (mcbsp->pdata->enable_st_clock)
>> - mcbsp->pdata->enable_st_clock(mcbsp->id, 1);
>> + /*
>> + * Sidetone uses McBSP ICLK - which must not idle when sidetones
>> + * are enabled or sidetones start sounding ugly.
>> + */
>> + w = MCBSP_READ(mcbsp, SYSCON);
>> + mcbsp->st_data->mcbsp_sidle = (w >> 3) & 0x3;
>> + w &= ~SIDLEMODE(0x3);
>> + w |= SIDLEMODE(0x1);
>> + MCBSP_WRITE(mcbsp, SYSCON, w);
>
> Wouldn't this create a mismatch between the SYSCONFIG register and McBSP
> omap_hwmod._sysc_cache?
We modify the bits runtime (if the ST is enabled), after the hwmod already
configured the McBSP port to s-idle. We change the McBSP port's s-idle mode
back to it's original before pm_runtime_put().
Previously we did the same thing in PRCM level which was as ugly as this
workaround with the penalty of a callback function to mach-omap2 since we can
only got access to PRCM register API there.
> Perhaps this could be done with a future omap_hwmod API?
But there's no such an API and I'm not aware any ongoing effort to have one.
Still the issue mostly remains since we need to modify other block's s-idle
mode. If sidetone block is enabled we need to change the McBSP port's s-idle
mode to no-idle.
In most of the use cases the McBSP need to be in smart-idle mode since it
provides significant power saving.
--
Péter
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2012-08-09 7:05 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-08 9:11 [PATCH 00/11] ARM/ASoC: OMAP McBSP device tree support Peter Ujfalusi
2012-08-08 9:11 ` [PATCH 01/11] ARM/ASoC: omap-mcbsp: Move OMAP2+ clock parenting code to ASoC driver Peter Ujfalusi
2012-08-08 9:11 ` [PATCH 02/11] ARM: OMAP2+: McBSP: Do not create legacy devices when booting with DT data Peter Ujfalusi
2012-08-08 9:11 ` [PATCH 03/11] ARM: OMAP: mcbsp: Enable FIFO use for OMAP2430 Peter Ujfalusi
2012-08-08 9:11 ` [PATCH 04/11] ARM: OMAP: board-am3517evm: Configure McBSP1 CLKR/FSR signal source Peter Ujfalusi
2012-08-08 9:11 ` [PATCH 05/11] ASoC: am3517evm: Do not configure McBSP1 CLKR/FSR signal muxing Peter Ujfalusi
2012-08-08 9:11 ` [PATCH 06/11] ARM/ASoC: omap-mcbsp: Remove CLKR/FSR mux configuration code Peter Ujfalusi
2012-08-08 9:11 ` [PATCH 07/11] ASoC: omap-mcbsp: Sidetone: Use SIDLE bits in SYSCONFIG register to select noidle mode Peter Ujfalusi
2012-08-08 22:12 ` Ricardo Neri
2012-08-09 7:05 ` Peter Ujfalusi [this message]
2012-08-09 15:15 ` Ricardo Neri
2012-08-08 9:11 ` [PATCH 08/11] ARM: OMAP3: Remove callback for McBSP sidetone ICLK workaround Peter Ujfalusi
2012-08-08 13:25 ` Jarkko Nikula
2012-08-08 14:00 ` Peter Ujfalusi
2012-08-10 13:00 ` Jarkko Nikula
2012-08-10 15:39 ` Peter Ujfalusi
2012-08-08 9:11 ` [PATCH 09/11] ASoC: omap-mcbsp: Remove unused defines Peter Ujfalusi
2012-08-08 9:11 ` [PATCH 10/11] ASoC: omap-mcbsp: Remove cpu_is_omap* checks from the code Peter Ujfalusi
2012-08-08 9:11 ` [PATCH 11/11] ASoC: omap-mcbsp: Add device tree bindings Peter Ujfalusi
2012-08-08 11:21 ` [PATCH 00/11] ARM/ASoC: OMAP McBSP device tree support Mark Brown
2012-08-10 13:15 ` Jarkko Nikula
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=5023614E.3030308@ti.com \
--to=peter.ujfalusi@ti.com \
--cc=alsa-devel@alsa-project.org \
--cc=b-cousson@ti.com \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=jarkko.nikula@bitmer.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=lrg@ti.com \
--cc=ricardo.neri@ti.com \
--cc=tony@atomide.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).