diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2020-12-23 18:22:20 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2020-12-25 09:11:51 +0100 |
commit | 81d0ec4349ec53e990e018ad0ce553046aab0fa3 (patch) | |
tree | 8becf952c81aad3601c0204f04caccd0c3a7ebfb /sound/hda/hdac_stream.c | |
parent | 483548a26f1aa65caf16eb99413e5003b3cfc81b (diff) | |
download | lwn-81d0ec4349ec53e990e018ad0ce553046aab0fa3.tar.gz lwn-81d0ec4349ec53e990e018ad0ce553046aab0fa3.zip |
ALSA: hda: Use DIV_ROUND_UP()/roundup() instead of open-coding it
Use DIV_ROUND_UP() and roundup() instead of open-coding them. 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>
@@
expression x, y;
@@
-((((x) + (y) - 1) / (y)) * y)
+roundup(x, y)
@r1@
expression x;
constant C1;
constant C2;
@@
(x + C1) / C2
@script:python@
C1 << r1.C1;
C2 << r1.C2;
@@
print C1, C2
try:
if int(C1) != int(C2) - 1:
cocci.include_match(False)
except:
cocci.include_match(False)
@@
expression r1.x;
constant r1.C1;
constant r1.C2;
@@
-(((x) + C1) / C2)
+DIV_ROUND_UP(x, C2)
// </smpl>
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Link: https://lore.kernel.org/r/20201223172229.781-9-lars@metafoo.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/hda/hdac_stream.c')
-rw-r--r-- | sound/hda/hdac_stream.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sound/hda/hdac_stream.c b/sound/hda/hdac_stream.c index abe7a1b16fe1..a6ed3dc35f7e 100644 --- a/sound/hda/hdac_stream.c +++ b/sound/hda/hdac_stream.c @@ -435,12 +435,11 @@ int snd_hdac_stream_setup_periods(struct hdac_stream *azx_dev) pos_adj = bus->bdl_pos_adj; if (!azx_dev->no_period_wakeup && pos_adj > 0) { pos_align = pos_adj; - pos_adj = (pos_adj * runtime->rate + 47999) / 48000; + pos_adj = DIV_ROUND_UP(pos_adj * runtime->rate, 48000); if (!pos_adj) pos_adj = pos_align; else - pos_adj = ((pos_adj + pos_align - 1) / pos_align) * - pos_align; + pos_adj = roundup(pos_adj, pos_align); pos_adj = frames_to_bytes(runtime, pos_adj); if (pos_adj >= period_bytes) { dev_warn(bus->dev, "Too big adjustment %d\n", |