From: Igor Grinberg <grinberg@compulab.co.il>
To: Mike Dunn <mikedunn@newsguy.com>
Cc: Marek Vasut <marex@denx.de>,
alsa-devel@alsa-project.org, Eric Miao <eric.y.miao@gmail.com>,
Mark Brown <broonie@opensource.wolfsonmicro.com>,
Robert Jarzmik <robert.jarzmik@free.fr>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 4/4] ALSA: pxa27x: rename pxa27x_assert_ac97()
Date: Mon, 07 Jan 2013 11:39:54 +0200 [thread overview]
Message-ID: <50EA97EA.4030807@compulab.co.il> (raw)
In-Reply-To: <1357499640-13871-5-git-send-email-mikedunn@newsguy.com>
On 01/06/13 21:14, Mike Dunn wrote:
> This patch does nothing functionally, it just gives the function a new name and
> modifies the prototype slightly in order to clarify what the function is doing
> (which is not necessarily asserting the reset).
> Some commentary also added.
>
> Tested on a palm treo 680 machine.
>
> Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
This patch makes sense, but again raising your concern...
The gpio_direction_output(reset_gpio, 1) should be called after
the change to AF0.
> ---
>
> checkpatch.pl issues a warning for this patch:
> WARNING: externs should be avoided in .c files
> but I just want to rename the function.
>
> arch/arm/mach-pxa/pxa27x.c | 29 +++++++++++++++++++----------
> sound/arm/pxa2xx-ac97-lib.c | 8 ++++----
> 2 files changed, 23 insertions(+), 14 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
> index eea90fe..896bf94 100644
> --- a/arch/arm/mach-pxa/pxa27x.c
> +++ b/arch/arm/mach-pxa/pxa27x.c
> @@ -53,26 +53,35 @@ static unsigned long ac97_reset_config[] = {
> GPIO95_AC97_nRESET,
> };
>
> -void pxa27x_assert_ac97reset(int reset_gpio, int on)
> +void pxa27x_configure_ac97reset(int reset_mfp, bool to_gpio)
> {
> + /*
> + * This helper function is used to work around a bug in the pxa27x's
> + * ac97 controller during a warm reset. The configuration of the
> + * reset_mfp is changed as follows:
> + * to_gpio == true: configured to generic output gpio and driven high
> + * to_gpio == false: configured to ac97 controller alt fn AC97_nRESET
> + */
> +
> /* set direction and level before switching from ac97 alt fn to gpio */
> - if (on) {
> - int ret = gpio_direction_output(reset_gpio, 1);
> + if (to_gpio == true) {
> + int ret = gpio_direction_output(reset_mfp, 1);
> if (ret) {
> pr_err("%s: gpio_direction_output failed: %d\n",
> __func__, ret);
> return;
> }
> }
> - if (reset_gpio == 113)
> - pxa2xx_mfp_config(on ? &ac97_reset_config[0] :
> - &ac97_reset_config[1], 1);
>
> - if (reset_gpio == 95)
> - pxa2xx_mfp_config(on ? &ac97_reset_config[2] :
> - &ac97_reset_config[3], 1);
> + if (reset_mfp == 113)
> + pxa2xx_mfp_config(to_gpio ? &ac97_reset_config[0] :
> + &ac97_reset_config[1], 1);
> +
> + if (reset_mfp == 95)
> + pxa2xx_mfp_config(to_gpio ? &ac97_reset_config[2] :
> + &ac97_reset_config[3], 1);
> }
> -EXPORT_SYMBOL_GPL(pxa27x_assert_ac97reset);
> +EXPORT_SYMBOL_GPL(pxa27x_configure_ac97reset);
>
> /* Crystal clock: 13MHz */
> #define BASE_CLK 13000000
> diff --git a/sound/arm/pxa2xx-ac97-lib.c b/sound/arm/pxa2xx-ac97-lib.c
> index 416d2e3..fbac476 100644
> --- a/sound/arm/pxa2xx-ac97-lib.c
> +++ b/sound/arm/pxa2xx-ac97-lib.c
> @@ -34,7 +34,7 @@ static struct clk *ac97_clk;
> static struct clk *ac97conf_clk;
> static int reset_gpio;
>
> -extern void pxa27x_assert_ac97reset(int reset_gpio, int on);
> +extern void pxa27x_configure_ac97reset(int reset_mfp, bool to_gpio);
>
> /*
> * Beware PXA27x bugs:
> @@ -140,10 +140,10 @@ static inline void pxa_ac97_warm_pxa27x(void)
> gsr_bits = 0;
>
> /* warm reset broken on Bulverde, so manually keep AC97 reset high */
> - pxa27x_assert_ac97reset(reset_gpio, 1);
> + pxa27x_configure_ac97reset(reset_gpio, true);
> udelay(10);
> GCR |= GCR_WARM_RST;
> - pxa27x_assert_ac97reset(reset_gpio, 0);
> + pxa27x_configure_ac97reset(reset_gpio, false);
> udelay(500);
> }
>
> @@ -351,7 +351,7 @@ int pxa2xx_ac97_hw_probe(struct platform_device *dev)
> __func__, ret);
> goto err_conf;
> }
> - pxa27x_assert_ac97reset(reset_gpio, 0);
> + pxa27x_configure_ac97reset(reset_gpio, false);
> ac97conf_clk = clk_get(&dev->dev, "AC97CONFCLK");
> if (IS_ERR(ac97conf_clk)) {
> ret = PTR_ERR(ac97conf_clk);
--
Regards,
Igor.
WARNING: multiple messages have this Message-ID (diff)
From: grinberg@compulab.co.il (Igor Grinberg)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/4] ALSA: pxa27x: rename pxa27x_assert_ac97()
Date: Mon, 07 Jan 2013 11:39:54 +0200 [thread overview]
Message-ID: <50EA97EA.4030807@compulab.co.il> (raw)
In-Reply-To: <1357499640-13871-5-git-send-email-mikedunn@newsguy.com>
On 01/06/13 21:14, Mike Dunn wrote:
> This patch does nothing functionally, it just gives the function a new name and
> modifies the prototype slightly in order to clarify what the function is doing
> (which is not necessarily asserting the reset).
> Some commentary also added.
>
> Tested on a palm treo 680 machine.
>
> Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
This patch makes sense, but again raising your concern...
The gpio_direction_output(reset_gpio, 1) should be called after
the change to AF0.
> ---
>
> checkpatch.pl issues a warning for this patch:
> WARNING: externs should be avoided in .c files
> but I just want to rename the function.
>
> arch/arm/mach-pxa/pxa27x.c | 29 +++++++++++++++++++----------
> sound/arm/pxa2xx-ac97-lib.c | 8 ++++----
> 2 files changed, 23 insertions(+), 14 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
> index eea90fe..896bf94 100644
> --- a/arch/arm/mach-pxa/pxa27x.c
> +++ b/arch/arm/mach-pxa/pxa27x.c
> @@ -53,26 +53,35 @@ static unsigned long ac97_reset_config[] = {
> GPIO95_AC97_nRESET,
> };
>
> -void pxa27x_assert_ac97reset(int reset_gpio, int on)
> +void pxa27x_configure_ac97reset(int reset_mfp, bool to_gpio)
> {
> + /*
> + * This helper function is used to work around a bug in the pxa27x's
> + * ac97 controller during a warm reset. The configuration of the
> + * reset_mfp is changed as follows:
> + * to_gpio == true: configured to generic output gpio and driven high
> + * to_gpio == false: configured to ac97 controller alt fn AC97_nRESET
> + */
> +
> /* set direction and level before switching from ac97 alt fn to gpio */
> - if (on) {
> - int ret = gpio_direction_output(reset_gpio, 1);
> + if (to_gpio == true) {
> + int ret = gpio_direction_output(reset_mfp, 1);
> if (ret) {
> pr_err("%s: gpio_direction_output failed: %d\n",
> __func__, ret);
> return;
> }
> }
> - if (reset_gpio == 113)
> - pxa2xx_mfp_config(on ? &ac97_reset_config[0] :
> - &ac97_reset_config[1], 1);
>
> - if (reset_gpio == 95)
> - pxa2xx_mfp_config(on ? &ac97_reset_config[2] :
> - &ac97_reset_config[3], 1);
> + if (reset_mfp == 113)
> + pxa2xx_mfp_config(to_gpio ? &ac97_reset_config[0] :
> + &ac97_reset_config[1], 1);
> +
> + if (reset_mfp == 95)
> + pxa2xx_mfp_config(to_gpio ? &ac97_reset_config[2] :
> + &ac97_reset_config[3], 1);
> }
> -EXPORT_SYMBOL_GPL(pxa27x_assert_ac97reset);
> +EXPORT_SYMBOL_GPL(pxa27x_configure_ac97reset);
>
> /* Crystal clock: 13MHz */
> #define BASE_CLK 13000000
> diff --git a/sound/arm/pxa2xx-ac97-lib.c b/sound/arm/pxa2xx-ac97-lib.c
> index 416d2e3..fbac476 100644
> --- a/sound/arm/pxa2xx-ac97-lib.c
> +++ b/sound/arm/pxa2xx-ac97-lib.c
> @@ -34,7 +34,7 @@ static struct clk *ac97_clk;
> static struct clk *ac97conf_clk;
> static int reset_gpio;
>
> -extern void pxa27x_assert_ac97reset(int reset_gpio, int on);
> +extern void pxa27x_configure_ac97reset(int reset_mfp, bool to_gpio);
>
> /*
> * Beware PXA27x bugs:
> @@ -140,10 +140,10 @@ static inline void pxa_ac97_warm_pxa27x(void)
> gsr_bits = 0;
>
> /* warm reset broken on Bulverde, so manually keep AC97 reset high */
> - pxa27x_assert_ac97reset(reset_gpio, 1);
> + pxa27x_configure_ac97reset(reset_gpio, true);
> udelay(10);
> GCR |= GCR_WARM_RST;
> - pxa27x_assert_ac97reset(reset_gpio, 0);
> + pxa27x_configure_ac97reset(reset_gpio, false);
> udelay(500);
> }
>
> @@ -351,7 +351,7 @@ int pxa2xx_ac97_hw_probe(struct platform_device *dev)
> __func__, ret);
> goto err_conf;
> }
> - pxa27x_assert_ac97reset(reset_gpio, 0);
> + pxa27x_configure_ac97reset(reset_gpio, false);
> ac97conf_clk = clk_get(&dev->dev, "AC97CONFCLK");
> if (IS_ERR(ac97conf_clk)) {
> ret = PTR_ERR(ac97conf_clk);
--
Regards,
Igor.
next prev parent reply other threads:[~2013-01-07 9:39 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-06 19:13 [PATCH 0/4] ALSA: pxa27x: ac97 reset fixes Mike Dunn
2013-01-06 19:13 ` Mike Dunn
2013-01-06 19:13 ` [PATCH 1/4] ALSA: pxa2xx: fix ac97 cold reset Mike Dunn
2013-01-06 19:13 ` Mike Dunn
2013-01-07 9:16 ` Igor Grinberg
2013-01-07 9:16 ` Igor Grinberg
2013-01-07 13:36 ` Mike Dunn
2013-01-07 13:36 ` Mike Dunn
2013-01-07 13:57 ` Igor Grinberg
2013-01-07 13:57 ` Igor Grinberg
2013-01-07 14:19 ` Mike Dunn
2013-01-07 14:19 ` Mike Dunn
2013-01-07 15:28 ` Igor Grinberg
2013-01-07 15:28 ` Igor Grinberg
2013-01-06 19:13 ` [PATCH 2/4] ALSA: pxa27x: fix ac97 warm reset bug work-around code Mike Dunn
2013-01-06 19:13 ` Mike Dunn
2013-01-07 9:31 ` Igor Grinberg
2013-01-07 9:31 ` Igor Grinberg
2013-01-07 11:06 ` Russell King - ARM Linux
2013-01-07 11:06 ` Russell King - ARM Linux
2013-01-07 13:40 ` Mike Dunn
2013-01-07 13:40 ` Mike Dunn
2013-01-06 19:13 ` [PATCH 3/4] ALSA: pxa27x: ac97 controller driver requests gpio Mike Dunn
2013-01-06 19:13 ` Mike Dunn
2013-01-07 9:36 ` Igor Grinberg
2013-01-07 9:36 ` Igor Grinberg
2013-01-07 9:42 ` Igor Grinberg
2013-01-07 9:42 ` Igor Grinberg
2013-01-07 14:10 ` Mike Dunn
2013-01-07 14:10 ` Mike Dunn
2013-01-07 15:38 ` Igor Grinberg
2013-01-07 15:38 ` Igor Grinberg
2013-01-07 16:40 ` Mike Dunn
2013-01-07 16:40 ` Mike Dunn
2013-01-06 19:14 ` [PATCH 4/4] ALSA: pxa27x: rename pxa27x_assert_ac97() Mike Dunn
2013-01-06 19:14 ` Mike Dunn
2013-01-07 9:39 ` Igor Grinberg [this message]
2013-01-07 9:39 ` Igor Grinberg
2013-01-07 14:34 ` Mike Dunn
2013-01-07 14:34 ` Mike Dunn
2013-01-07 15:41 ` Igor Grinberg
2013-01-07 15:41 ` Igor Grinberg
2013-01-06 20:33 ` [PATCH 0/4] ALSA: pxa27x: ac97 reset fixes Robert Jarzmik
2013-01-06 20:33 ` Robert Jarzmik
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=50EA97EA.4030807@compulab.co.il \
--to=grinberg@compulab.co.il \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=eric.y.miao@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=marex@denx.de \
--cc=mikedunn@newsguy.com \
--cc=robert.jarzmik@free.fr \
/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.