Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ALSA: ad1889: Fix probable mask then right shift defects

Precedence of & and >> is not the same and is not left to right.
shift has higher precedence and should be done after the mask.

Add parentheses around the mask.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by

Joe Perches and committed by
Takashi Iwai
ccbec5ea 7ce5c926

+4 -4
+4 -4
sound/pci/ad1889.c
··· 681 681 682 682 /* WARQ is at offset 12 */ 683 683 tmp = (reg & AD_DS_WSMC_WARQ) ? 684 - (((reg & AD_DS_WSMC_WARQ >> 12) & 0x01) ? 12 : 18) : 4; 684 + ((((reg & AD_DS_WSMC_WARQ) >> 12) & 0x01) ? 12 : 18) : 4; 685 685 tmp /= (reg & AD_DS_WSMC_WAST) ? 2 : 1; 686 686 687 687 snd_iprintf(buffer, "Wave FIFO: %d %s words\n\n", tmp, ··· 693 693 694 694 /* SYRQ is at offset 4 */ 695 695 tmp = (reg & AD_DS_WSMC_SYRQ) ? 696 - (((reg & AD_DS_WSMC_SYRQ >> 4) & 0x01) ? 12 : 18) : 4; 696 + ((((reg & AD_DS_WSMC_SYRQ) >> 4) & 0x01) ? 12 : 18) : 4; 697 697 tmp /= (reg & AD_DS_WSMC_WAST) ? 2 : 1; 698 698 699 699 snd_iprintf(buffer, "Synthesis FIFO: %d %s words\n\n", tmp, ··· 709 709 710 710 /* ACRQ is at offset 4 */ 711 711 tmp = (reg & AD_DS_RAMC_ACRQ) ? 712 - (((reg & AD_DS_RAMC_ACRQ >> 4) & 0x01) ? 12 : 18) : 4; 712 + ((((reg & AD_DS_RAMC_ACRQ) >> 4) & 0x01) ? 12 : 18) : 4; 713 713 tmp /= (reg & AD_DS_RAMC_ADST) ? 2 : 1; 714 714 715 715 snd_iprintf(buffer, "ADC FIFO: %d %s words\n\n", tmp, ··· 720 720 721 721 /* RERQ is at offset 12 */ 722 722 tmp = (reg & AD_DS_RAMC_RERQ) ? 723 - (((reg & AD_DS_RAMC_RERQ >> 12) & 0x01) ? 12 : 18) : 4; 723 + ((((reg & AD_DS_RAMC_RERQ) >> 12) & 0x01) ? 12 : 18) : 4; 724 724 tmp /= (reg & AD_DS_RAMC_ADST) ? 2 : 1; 725 725 726 726 snd_iprintf(buffer, "Resampler FIFO: %d %s words\n\n", tmp,