ALSA: ens1370: Use DIV_ROUND_CLOSEST() instead of open-coding it
authorLars-Peter Clausen <lars@metafoo.de>
Wed, 23 Dec 2020 17:22:27 +0000 (18:22 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 25 Dec 2020 08:11:56 +0000 (09:11 +0100)
Use DIV_ROUND_CLOSEST() instead of open-coding it. This documents intent
and makes it more clear what is going on for the casual reviewer.

Generated using the following the Coccinelle semantic patch.

// <smpl>
@r1@
expression x;
constant C1;
constant C2;
@@
 ((x) + C1) / C2

@script:python@
C1 << r1.C1;
C2 << r1.C2;
@@
try:
if int(C1) * 2 != int(C2):
cocci.include_match(False)
except:
cocci.include_match(False)

@@
expression r1.x;
constant r1.C1;
constant r1.C2;
@@
-(((x) + C1) / C2)
+DIV_ROUND_CLOSEST(x, C2)
// </smpl>

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Link: https://lore.kernel.org/r/20201223172229.781-16-lars@metafoo.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/ens1370.c

index d9acef0826a96774d1b9ec159da1077cbd3af3de..93c4fd31331152dc7c0d60c6f326f69188010f34 100644 (file)
@@ -752,7 +752,7 @@ static void snd_es1371_dac1_rate(struct ensoniq * ensoniq, unsigned int rate)
        unsigned int freq, r;
 
        mutex_lock(&ensoniq->src_mutex);
-       freq = ((rate << 15) + 1500) / 3000;
+       freq = DIV_ROUND_CLOSEST(rate << 15, 3000);
        r = (snd_es1371_wait_src_ready(ensoniq) & (ES_1371_SRC_DISABLE |
                                                   ES_1371_DIS_P2 | ES_1371_DIS_R1)) |
                ES_1371_DIS_P1;
@@ -773,7 +773,7 @@ static void snd_es1371_dac2_rate(struct ensoniq * ensoniq, unsigned int rate)
        unsigned int freq, r;
 
        mutex_lock(&ensoniq->src_mutex);
-       freq = ((rate << 15) + 1500) / 3000;
+       freq = DIV_ROUND_CLOSEST(rate << 15, 3000);
        r = (snd_es1371_wait_src_ready(ensoniq) & (ES_1371_SRC_DISABLE |
                                                   ES_1371_DIS_P1 | ES_1371_DIS_R1)) |
                ES_1371_DIS_P2;