From: Tony Lindgren <tony@atomide.com>
To: Eduardo Valentin <eduardo.valentin@nokia.com>
Cc: linux-omap@vger.kernel.org, alsa-devel@vger.kernel.org,
Jarkko Nikula <jhnikula@gmail.com>,
"Nurkkala Eero.An (EXT-Offcode/Oulu)"
<ext-Eero.Nurkkala@nokia.com>,
Peter Ujfalusi <peter.ujfalusi@nokia.com>
Subject: Re: [PATCH 02/20] OMAP: McBSP: Wakeups utilized
Date: Thu, 6 Aug 2009 15:00:47 +0300 [thread overview]
Message-ID: <20090806120047.GH2358@atomide.com> (raw)
In-Reply-To: <1248958183-15015-3-git-send-email-eduardo.valentin@nokia.com>
* Eduardo Valentin <eduardo.valentin@nokia.com> [090730 16:01]:
> From: Eero Nurkkala <ext-eero.nurkkala@nokia.com>
>
> This patch enables the smart idle mode while
> McBPS is being utilized. Once it's done,
> force idle mode is taken instead. Apart of it,
> it also configures what signals will wake mcbsp up.
>
> Signed-off-by: Eero Nurkkala <ext-eero.nurkkala@nokia.com>
> Signed-off-by: Eduardo Valentin <eduardo.valentin@nokia.com>
> ---
> arch/arm/plat-omap/include/mach/mcbsp.h | 17 +++++++++++++++
> arch/arm/plat-omap/mcbsp.c | 35 +++++++++++++++++++++++++++++++
> 2 files changed, 52 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h b/arch/arm/plat-omap/include/mach/mcbsp.h
> index 77191c5..758ad5c 100644
> --- a/arch/arm/plat-omap/include/mach/mcbsp.h
> +++ b/arch/arm/plat-omap/include/mach/mcbsp.h
> @@ -134,6 +134,7 @@
> #define OMAP_MCBSP_REG_XCERG 0x74
> #define OMAP_MCBSP_REG_XCERH 0x78
> #define OMAP_MCBSP_REG_SYSCON 0x8C
> +#define OMAP_MCBSP_REG_WAKEUPEN 0xA8
> #define OMAP_MCBSP_REG_XCCR 0xAC
> #define OMAP_MCBSP_REG_RCCR 0xB0
>
> @@ -249,8 +250,24 @@
> #define RDISABLE 0x0001
>
> /********************** McBSP SYSCONFIG bit definitions ********************/
> +#define SIDLEMODE(value) ((value)<<3)
> +#define ENAWAKEUP 0x0004
> #define SOFTRST 0x0002
>
> +/********************** McBSP WAKEUPEN bit definitions *********************/
> +#define XEMPTYEOFEN 0x4000
> +#define XRDYEN 0x0400
> +#define XEOFEN 0x0200
> +#define XFSXEN 0x0100
> +#define XSYNCERREN 0x0080
> +#define RRDYEN 0x0008
> +#define REOFEN 0x0004
> +#define RFSREN 0x0002
> +#define RSYNCERREN 0x0001
> +#define WAKEUPEN_ALL (XEMPTYEOFEN | XRDYEN | XEOFEN | XFSXEN | \
> + XSYNCERREN | RRDYEN | REOFEN | RFSREN | \
> + RSYNCERREN)
> +
> /* we don't do multichannel for now */
> struct omap_mcbsp_reg_cfg {
> u16 spcr2;
> diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
> index 84cc323..b64896b 100644
> --- a/arch/arm/plat-omap/mcbsp.c
> +++ b/arch/arm/plat-omap/mcbsp.c
> @@ -257,6 +257,23 @@ int omap_mcbsp_request(unsigned int id)
> clk_enable(mcbsp->iclk);
> clk_enable(mcbsp->fclk);
>
> +#ifdef CONFIG_ARCH_OMAP34XX
> + /*
> + * Enable wakup behavior, smart idle and all wakeups
> + * REVISIT: some wakeups may be unnecessary
> + */
> + if (cpu_is_omap34xx()) {
> + u16 syscon;
> +
> + syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON);
> + syscon &= ~(ENAWAKEUP | SIDLEMODE(0x03));
> + syscon |= (ENAWAKEUP | SIDLEMODE(0x02));
> + OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, syscon);
> +
> + OMAP_MCBSP_WRITE(mcbsp->io_base, WAKEUPEN, WAKEUPEN_ALL);
> + }
> +#endif
> +
> /*
> * Make sure that transmitter, receiver and sample-rate generator are
> * not running before activating IRQs.
> @@ -295,6 +312,7 @@ EXPORT_SYMBOL(omap_mcbsp_request);
> void omap_mcbsp_free(unsigned int id)
> {
> struct omap_mcbsp *mcbsp;
> + u16 wakeupen;
>
> if (!omap_mcbsp_check_valid_id(id)) {
> printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
> @@ -305,6 +323,23 @@ void omap_mcbsp_free(unsigned int id)
> if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->free)
> mcbsp->pdata->ops->free(id);
>
> +#ifdef CONFIG_ARCH_OMAP34XX
> + /*
> + * Disable wakup behavior, smart idle and all wakeups
> + */
> + if (cpu_is_omap34xx()) {
> + u16 syscon;
> +
> + syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON);
> + syscon &= ~(ENAWAKEUP | SIDLEMODE(0x03));
> + OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, syscon);
> +
> + wakeupen = OMAP_MCBSP_READ(mcbsp->io_base, WAKEUPEN);
> + wakeupen &= ~WAKEUPEN_ALL;
> + OMAP_MCBSP_WRITE(mcbsp->io_base, WAKEUPEN, wakeupen);
> + }
> +#endif
> +
> clk_disable(mcbsp->fclk);
> clk_disable(mcbsp->iclk);
Looks like you should not need the ifdefs here, cpu_is_omap34xx() already
optimizes the code out if not selected.
Regards,
Tony
next prev parent reply other threads:[~2009-08-06 12:00 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-30 12:49 [PATCH 00/20] OMAP ASoC changes in DMA utilization Eduardo Valentin
2009-07-30 12:49 ` [PATCH 01/20] OMAP: McBSP: Provide functions for ASoC frame syncronization Eduardo Valentin
2009-07-30 12:49 ` Eduardo Valentin
2009-07-30 12:49 ` [PATCH 02/20] OMAP: McBSP: Wakeups utilized Eduardo Valentin
2009-07-30 12:49 ` [PATCH 03/20] OMAP: McBSP: Change wakeup signals Eduardo Valentin
2009-07-30 12:49 ` [PATCH 04/20] OMAP: McBSP: Add IRQEN, IRQSTATUS, THRESHOLD2 and THRESHOLD1 registers Eduardo Valentin
2009-07-30 12:49 ` Eduardo Valentin
2009-07-30 12:49 ` [PATCH 05/20] OMAP: McBSP: Retain McBSP FCLK clockactivity Eduardo Valentin
2009-07-30 12:49 ` Eduardo Valentin
2009-07-30 12:49 ` [PATCH 06/20] OMAP: McBSP: Use appropriate value for startup delay Eduardo Valentin
2009-07-30 12:49 ` Eduardo Valentin
2009-07-30 12:49 ` [PATCH 07/20] OMAP: McBSP: Add transmit/receive threshold handler Eduardo Valentin
2009-07-30 12:49 ` Eduardo Valentin
2009-07-30 12:49 ` [PATCH 08/20] OMAP: McBSP: Create and export max_(r|t)x_thres property Eduardo Valentin
2009-07-30 12:49 ` [PATCH 09/20] OMAP3: McBSP: Lower the maximum buffersize for McBSP1, 3, 4, 5 Eduardo Valentin
2009-07-30 12:49 ` [PATCH 09/20] OMAP3: McBSP: Lower the maximum buffersize for McBSP1,3,4,5 Eduardo Valentin
2009-07-30 12:49 ` [PATCH 10/20] OMAP: McBSP: Rename thres sysfs symbols Eduardo Valentin
2009-07-30 12:49 ` Eduardo Valentin
2009-07-30 12:49 ` [PATCH 11/20] OMAP: McBSP: Add link DMA mode selection Eduardo Valentin
2009-07-30 12:49 ` Eduardo Valentin
2009-07-30 12:49 ` [PATCH 12/20] OMAP: McBSP: Configure NO IDLE mode for DMA mode different of threshold Eduardo Valentin
2009-07-30 12:49 ` Eduardo Valentin
2009-07-30 12:49 ` [PATCH 13/20] OMAP: McBSP: Do not enable wakeups for no-idle mode Eduardo Valentin
2009-07-30 12:49 ` [PATCH 14/20] OMAP: McBSP: Disable all wakeups upon exit Eduardo Valentin
2009-07-30 12:49 ` [PATCH 15/20] OMAP: McBSP: Let element DMA mode hit retention also Eduardo Valentin
2009-07-30 12:49 ` [PATCH 16/20] ASoC: OMAP: Use McBSP threshold again Eduardo Valentin
2009-07-30 12:49 ` Eduardo Valentin
2009-07-30 12:49 ` [PATCH 17/20] ASoC: OMAP: Make DMA 64 aligned Eduardo Valentin
2009-07-30 12:49 ` [PATCH 18/20] ASoC: OMAP: Enable DMA burst mode Eduardo Valentin
2009-07-30 12:49 ` [PATCH 19/20] ASoC: OMAP: Use DMA operating mode of McBSP Eduardo Valentin
2009-07-30 12:49 ` Eduardo Valentin
2009-07-30 12:49 ` [PATCH 20/20] ASoC: Always syncronize audio transfers on frames Eduardo Valentin
2009-07-30 18:57 ` Jarkko Nikula
2009-07-30 18:57 ` Jarkko Nikula
2009-07-30 12:49 ` Eduardo Valentin
2009-07-30 12:49 ` [PATCH 18/20] ASoC: OMAP: Enable DMA burst mode Eduardo Valentin
2009-07-30 12:49 ` [PATCH 17/20] ASoC: OMAP: Make DMA 64 aligned Eduardo Valentin
2009-08-05 7:48 ` [PATCH 16/20] ASoC: OMAP: Use McBSP threshold again Jarkko Nikula
2009-08-10 8:53 ` Eduardo Valentin
2009-08-11 5:34 ` Jarkko Nikula
2009-08-11 6:22 ` Eduardo Valentin
2009-08-11 6:22 ` Eduardo Valentin
2009-08-10 8:53 ` Eduardo Valentin
2009-08-05 7:48 ` Jarkko Nikula
2009-07-30 12:49 ` [PATCH 15/20] OMAP: McBSP: Let element DMA mode hit retention also Eduardo Valentin
2009-07-30 12:49 ` [PATCH 14/20] OMAP: McBSP: Disable all wakeups upon exit Eduardo Valentin
2009-07-30 12:49 ` [PATCH 13/20] OMAP: McBSP: Do not enable wakeups for no-idle mode Eduardo Valentin
2009-08-06 12:00 ` [PATCH 12/20] OMAP: McBSP: Configure NO IDLE mode for DMA mode different of threshold Eduardo Valentin
2009-08-06 12:00 ` Eduardo Valentin
2009-07-30 13:04 ` [PATCH 11/20] OMAP: McBSP: Add link DMA mode selection Mark Brown
2009-07-30 13:04 ` Mark Brown
2009-07-30 13:28 ` Eduardo Valentin
2009-07-30 13:28 ` Eduardo Valentin
2009-07-30 13:47 ` Mark Brown
2009-07-30 13:47 ` Mark Brown
2009-08-03 10:15 ` Eduardo Valentin
2009-08-03 10:15 ` Eduardo Valentin
2009-08-05 7:39 ` Jarkko Nikula
2009-08-05 7:39 ` Jarkko Nikula
2009-08-05 8:58 ` Peter Ujfalusi
2009-08-06 18:15 ` [alsa-devel] " ext-Eero.Nurkkala
2009-08-07 13:11 ` Eduardo Valentin
2009-08-11 6:04 ` Jarkko Nikula
2009-08-11 6:18 ` [alsa-devel] " Eero Nurkkala
2009-08-12 11:45 ` Jarkko Nikula
2009-08-12 11:48 ` [alsa-devel] " Eero Nurkkala
2009-08-13 6:01 ` Peter Ujfalusi
2009-08-13 20:46 ` snd_pcm_delay, hw buffers and driver api (was: Re: [PATCH 11/20] OMAP: McBSP: Add link DMA mode selection) Kai Vehmanen
2009-08-13 20:59 ` Mark Brown
2009-07-30 18:57 ` [PATCH 09/20] OMAP3: McBSP: Lower the maximum buffersize for McBSP1,3,4,5 Jarkko Nikula
2009-07-31 7:58 ` [PATCH 09/20] OMAP3: McBSP: Lower the maximum buffersize for McBSP1, 3, 4, 5 Eduardo Valentin
2009-07-31 7:58 ` [PATCH 09/20] OMAP3: McBSP: Lower the maximum buffersize for McBSP1,3,4,5 Eduardo Valentin
2009-07-31 17:26 ` [PATCH 09/20] OMAP3: McBSP: Lower the maximum buffersize for McBSP1, 3, 4, 5 Jarkko Nikula
2009-07-31 17:26 ` [PATCH 09/20] OMAP3: McBSP: Lower the maximum buffersize for McBSP1,3,4,5 Jarkko Nikula
2009-08-03 8:11 ` Eduardo Valentin
2009-08-03 8:36 ` [PATCH 09/20] OMAP3: McBSP: Lower the maximum buffersize for McBSP1, 3, 4, 5 Jarkko Nikula
2009-08-03 8:36 ` [PATCH 09/20] OMAP3: McBSP: Lower the maximum buffersize for McBSP1,3,4,5 Jarkko Nikula
2009-08-03 8:36 ` [PATCH 09/20] OMAP3: McBSP: Lower the maximum buffersize for McBSP1, 3, 4, 5 Eduardo Valentin
2009-08-03 8:36 ` [PATCH 09/20] OMAP3: McBSP: Lower the maximum buffersize for McBSP1,3,4,5 Eduardo Valentin
2009-08-03 8:11 ` [PATCH 09/20] OMAP3: McBSP: Lower the maximum buffersize for McBSP1, 3, 4, 5 Eduardo Valentin
2009-07-30 18:57 ` Jarkko Nikula
2009-07-30 12:49 ` [PATCH 08/20] OMAP: McBSP: Create and export max_(r|t)x_thres property Eduardo Valentin
2009-08-06 12:10 ` [PATCH 07/20] OMAP: McBSP: Add transmit/receive threshold handler Tony Lindgren
2009-08-06 12:10 ` Tony Lindgren
2009-08-06 12:20 ` ext-Eero.Nurkkala
2009-08-06 12:24 ` Tony Lindgren
2009-08-06 12:24 ` Tony Lindgren
2009-08-06 12:20 ` ext-Eero.Nurkkala
2009-07-30 18:56 ` [PATCH 06/20] OMAP: McBSP: Use appropriate value for startup delay Jarkko Nikula
2009-07-31 7:21 ` ext-Eero.Nurkkala
2009-07-31 7:21 ` ext-Eero.Nurkkala
2009-07-31 17:25 ` Jarkko Nikula
2009-07-31 17:25 ` Jarkko Nikula
2009-08-05 7:40 ` [PATCH 03/20] OMAP: McBSP: Change wakeup signals Peter Ujfalusi
2009-07-30 12:49 ` Eduardo Valentin
2009-07-30 18:56 ` [PATCH 02/20] OMAP: McBSP: Wakeups utilized Jarkko Nikula
2009-07-30 18:56 ` Jarkko Nikula
2009-07-31 7:56 ` Eduardo Valentin
2009-07-31 7:56 ` Eduardo Valentin
2009-08-06 12:05 ` Tony Lindgren
2009-08-06 12:00 ` Eduardo Valentin
2009-08-06 12:00 ` Eduardo Valentin
2009-08-06 12:05 ` Tony Lindgren
2009-08-06 12:00 ` Tony Lindgren
2009-08-06 12:00 ` Tony Lindgren [this message]
2009-08-06 12:02 ` Tony Lindgren
2009-08-06 12:02 ` Tony Lindgren
2009-08-06 11:56 ` Eduardo Valentin
2009-08-06 11:56 ` Eduardo Valentin
2009-07-30 12:49 ` Eduardo Valentin
2009-08-05 7:18 ` [PATCH 01/20] OMAP: McBSP: Provide functions for ASoC frame syncronization Peter Ujfalusi
2009-07-30 13:52 ` [PATCH 00/20] OMAP ASoC changes in DMA utilization Mark Brown
2009-07-30 18:55 ` Jarkko Nikula
2009-07-30 19:11 ` Mark Brown
2009-08-05 7:23 ` Peter Ujfalusi
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=20090806120047.GH2358@atomide.com \
--to=tony@atomide.com \
--cc=alsa-devel@vger.kernel.org \
--cc=eduardo.valentin@nokia.com \
--cc=ext-Eero.Nurkkala@nokia.com \
--cc=jhnikula@gmail.com \
--cc=linux-omap@vger.kernel.org \
--cc=peter.ujfalusi@nokia.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.