pxa2xx-ac97: fix displaying GSR after reset timeout
authorLuotao Fu <l.fu@pengutronix.de>
Thu, 26 Mar 2009 12:18:03 +0000 (13:18 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 2 Apr 2009 15:34:15 +0000 (16:34 +0100)
the variable gsr_bit is set in isr. It is however set to 0 and interrupts are
disabled prior to reset. Hence it doesn't make a lot of sense to show the
content of gsr_bit in case of a reset timeout.

Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/arm/pxa2xx-ac97-lib.c

index 2e6355f4cbb926d888f7c2b5711512354ba2890e..71bef45e9d31eba85237f68c2d78e691e315b4c1 100644 (file)
@@ -239,6 +239,8 @@ static inline void pxa_ac97_cold_pxa3xx(void)
 
 bool pxa2xx_ac97_try_warm_reset(struct snd_ac97 *ac97)
 {
+       unsigned long gsr;
+
 #ifdef CONFIG_PXA25x
        if (cpu_is_pxa25x())
                pxa_ac97_warm_pxa25x();
@@ -255,10 +257,10 @@ bool pxa2xx_ac97_try_warm_reset(struct snd_ac97 *ac97)
        else
 #endif
                BUG();
-
-       if (!((GSR | gsr_bits) & (GSR_PCR | GSR_SCR))) {
+       gsr = GSR | gsr_bits;
+       if (!(gsr & (GSR_PCR | GSR_SCR))) {
                printk(KERN_INFO "%s: warm reset timeout (GSR=%#lx)\n",
-                                __func__, gsr_bits);
+                                __func__, gsr);
 
                return false;
        }
@@ -269,6 +271,8 @@ EXPORT_SYMBOL_GPL(pxa2xx_ac97_try_warm_reset);
 
 bool pxa2xx_ac97_try_cold_reset(struct snd_ac97 *ac97)
 {
+       unsigned long gsr;
+
 #ifdef CONFIG_PXA25x
        if (cpu_is_pxa25x())
                pxa_ac97_cold_pxa25x();
@@ -286,9 +290,10 @@ bool pxa2xx_ac97_try_cold_reset(struct snd_ac97 *ac97)
 #endif
                BUG();
 
-       if (!((GSR | gsr_bits) & (GSR_PCR | GSR_SCR))) {
+       gsr = GSR | gsr_bits;
+       if (!(gsr & (GSR_PCR | GSR_SCR))) {
                printk(KERN_INFO "%s: cold reset timeout (GSR=%#lx)\n",
-                                __func__, gsr_bits);
+                                __func__, gsr);
 
                return false;
        }