Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=690eceb58ca900a55ae0cec5e8770ac166a881d8
Commit:     690eceb58ca900a55ae0cec5e8770ac166a881d8
Parent:     e035b841015251062316cb60b47d1f11d2703f6d
Author:     Manuel Lauss <[EMAIL PROTECTED]>
AuthorDate: Tue Nov 6 11:56:17 2007 +0100
Committer:  Jaroslav Kysela <[EMAIL PROTECTED]>
CommitDate: Thu Jan 31 17:29:17 2008 +0100

    [ALSA] ASoC: sh: improve generated code for HAC module (AC97)
    
    Change loops in ac97_read/write functions to count down to zero
    rather than up. Gcc will then use the 'dt' (decrement-and-test) op
    instead of an increment/compare op-pair.
    
    Signed-off-by: Manuel Lauss <[EMAIL PROTECTED]>
    Signed-off-by: Takashi Iwai <[EMAIL PROTECTED]>
    Signed-off-by: Jaroslav Kysela <[EMAIL PROTECTED]>
---
 sound/soc/sh/hac.c |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/sound/soc/sh/hac.c b/sound/soc/sh/hac.c
index 8e3f039..34b77b9 100644
--- a/sound/soc/sh/hac.c
+++ b/sound/soc/sh/hac.c
@@ -105,7 +105,7 @@ static int hac_get_codec_data(struct hac_priv *hac, 
unsigned short r,
        unsigned int to1, to2, i;
        unsigned short adr;
 
-       for (i = 0; i < AC97_READ_RETRY; ++i) {
+       for (i = AC97_READ_RETRY; i; i--) {
                *v = 0;
                /* wait for HAC to receive something from the codec */
                for (to1 = TMO_E4;
@@ -132,7 +132,7 @@ static int hac_get_codec_data(struct hac_priv *hac, 
unsigned short r,
                udelay(21);
        }
        HACREG(HACRSR) &= ~(RSR_STDRY | RSR_STARY);
-       return (i < AC97_READ_RETRY);
+       return i;
 }
 
 static unsigned short hac_read_codec_aux(struct hac_priv *hac,
@@ -141,7 +141,7 @@ static unsigned short hac_read_codec_aux(struct hac_priv 
*hac,
        unsigned short val;
        unsigned int i, to;
 
-       for (i = 0; i < AC97_READ_RETRY; i++) {
+       for (i = AC97_READ_RETRY; i; i--) {
                /* send_read_request */
                local_irq_disable();
                HACREG(HACTSR) &= ~(TSR_CMDAMT);
@@ -159,10 +159,7 @@ static unsigned short hac_read_codec_aux(struct hac_priv 
*hac,
                        break;
        }
 
-       if (i == AC97_READ_RETRY)
-               return ~0;
-
-       return val;
+       return i ? val : ~0;
 }
 
 static void hac_ac97_write(struct snd_ac97 *ac97, unsigned short reg,
@@ -172,7 +169,7 @@ static void hac_ac97_write(struct snd_ac97 *ac97, unsigned 
short reg,
        struct hac_priv *hac = &hac_cpu_data[unit_id];
        unsigned int i, to;
        /* write_codec_aux */
-       for (i = 0; i < AC97_WRITE_RETRY; i++) {
+       for (i = AC97_WRITE_RETRY; i; i--) {
                /* send_write_request */
                local_irq_disable();
                HACREG(HACTSR) &= ~(TSR_CMDDMT | TSR_CMDAMT);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to