ALSA: intel8x0: Proper endian notations
authorTakashi Iwai <tiwai@suse.de>
Wed, 25 Jul 2018 21:24:07 +0000 (23:24 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 27 Jul 2018 07:06:06 +0000 (09:06 +0200)
The BD address tables in intel8x0 driver are in little-endian, hence
they should be represented as __le32 instead u32.

Spotted by sparse, warnings like:
  sound/pci/intel8x0.c:688:40: warning: incorrect type in assignment (different base types)

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/intel8x0.c

index 4c24346..5ee468d 100644 (file)
@@ -351,7 +351,7 @@ enum {
 struct ichdev {
        unsigned int ichd;                      /* ich device number */
        unsigned long reg_offset;               /* offset to bmaddr */
-       u32 *bdbar;                             /* CPU address (32bit) */
+       __le32 *bdbar;                          /* CPU address (32bit) */
        unsigned int bdbar_addr;                /* PCI bus address (32bit) */
        struct snd_pcm_substream *substream;
        unsigned int physbuf;                   /* physical address (32bit) */
@@ -677,7 +677,7 @@ static void snd_intel8x0_ali_codec_write(struct snd_ac97 *ac97, unsigned short r
 static void snd_intel8x0_setup_periods(struct intel8x0 *chip, struct ichdev *ichdev) 
 {
        int idx;
-       u32 *bdbar = ichdev->bdbar;
+       __le32 *bdbar = ichdev->bdbar;
        unsigned long port = ichdev->reg_offset;
 
        iputdword(chip, port + ICH_REG_OFF_BDBAR, ichdev->bdbar_addr);
@@ -3143,7 +3143,7 @@ static int snd_intel8x0_create(struct snd_card *card,
        int_sta_masks = 0;
        for (i = 0; i < chip->bdbars_count; i++) {
                ichdev = &chip->ichd[i];
-               ichdev->bdbar = ((u32 *)chip->bdbars.area) +
+               ichdev->bdbar = ((__le32 *)chip->bdbars.area) +
                        (i * ICH_MAX_FRAGS * 2);
                ichdev->bdbar_addr = chip->bdbars.addr +
                        (i * sizeof(u32) * ICH_MAX_FRAGS * 2);