Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit edb39935 authored by Jaroslav Kysela's avatar Jaroslav Kysela
Browse files

ALSA: hda-intel - fix wallclk variable update and condition



This patch fixes thinko introduced in "last minutes" before commiting
of the last wallclk patch.

It also fixes the condition checking if the first period after last
wallclk update is processed. There is a little rounding error in
period_wallclk.

Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent aef4b9aa
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1913,11 +1913,11 @@ static int azx_position_ok(struct azx *chip, struct azx_dev *azx_dev)
	if (WARN_ONCE(!azx_dev->period_bytes,
		      "hda-intel: zero azx_dev->period_bytes"))
		return -1; /* this shouldn't happen! */
	if (wallclk <= azx_dev->period_wallclk &&
	if (wallclk < (azx_dev->period_wallclk * 5) / 4 &&
	    pos % azx_dev->period_bytes > azx_dev->period_bytes / 2)
		/* NG - it's below the first next period boundary */
		return bdl_pos_adj[chip->dev_index] ? 0 : -1;
	azx_dev->start_wallclk = wallclk;
	azx_dev->start_wallclk += wallclk;
	return 1; /* OK, it's fine */
}