ALSA: dice: fix wrong offsets for Dice interface
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sun, 1 Mar 2015 09:12:16 +0000 (18:12 +0900)
committerTakashi Iwai <tiwai@suse.de>
Sun, 1 Mar 2015 09:49:06 +0000 (10:49 +0100)
For received packet stream, the offset of 'RX_SEQ_START' locates after
the offset of 'RX_NUMBER_MIDI', although current macro and proc output
includes wrong offsets.

Fortunately, this bug doesn't affect streaming functionality because
these macro is not used.

This commit fixes these wrong macro and outputs.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/dice/dice-interface.h
sound/firewire/dice/dice-proc.c

index 27b044f84c816f5b4f15efa9782b7c4fbd1a217d..de7602bd69b569176ab5b41ab9065a0e04c7688a 100644 (file)
  */
 #define RX_ISOCHRONOUS                 0x008
 
-/*
- * Index of first quadlet to be interpreted; read/write.  If > 0, that many
- * quadlets at the beginning of each data block will be ignored, and all the
- * audio and MIDI quadlets will follow.
- */
-#define RX_SEQ_START                   0x00c
-
 /*
  * The number of audio channels; read-only.  There will be one quadlet per
  * channel.
  */
-#define RX_NUMBER_AUDIO                        0x010
+#define RX_NUMBER_AUDIO                        0x00c
 
 /*
  * The number of MIDI ports, 0-8; read-only.  If > 0, there will be one
  * additional quadlet in each data block, following the audio quadlets.
  */
-#define RX_NUMBER_MIDI                 0x014
+#define RX_NUMBER_MIDI                 0x010
+
+/*
+ * Index of first quadlet to be interpreted; read/write.  If > 0, that many
+ * quadlets at the beginning of each data block will be ignored, and all the
+ * audio and MIDI quadlets will follow.
+ */
+#define RX_SEQ_START                   0x014
 
 /*
  * Names of all audio channels; read-only.  Quadlets are byte-swapped.  Names
index f5c1d1bced59fee2e0012d9a5f96b85553bb53f8..ecfe20fd4de57868cefff26e8317ec54f180509a 100644 (file)
@@ -99,9 +99,9 @@ static void dice_proc_read(struct snd_info_entry *entry,
                } tx;
                struct {
                        u32 iso;
-                       u32 seq_start;
                        u32 number_audio;
                        u32 number_midi;
+                       u32 seq_start;
                        char names[RX_NAMES_SIZE];
                        u32 ac3_caps;
                        u32 ac3_enable;
@@ -204,10 +204,10 @@ static void dice_proc_read(struct snd_info_entry *entry,
                        break;
                snd_iprintf(buffer, "rx %u:\n", stream);
                snd_iprintf(buffer, "  iso channel: %d\n", (int)buf.rx.iso);
-               snd_iprintf(buffer, "  sequence start: %u\n", buf.rx.seq_start);
                snd_iprintf(buffer, "  audio channels: %u\n",
                            buf.rx.number_audio);
                snd_iprintf(buffer, "  midi ports: %u\n", buf.rx.number_midi);
+               snd_iprintf(buffer, "  sequence start: %u\n", buf.rx.seq_start);
                if (quadlets >= 68) {
                        dice_proc_fixup_string(buf.rx.names, RX_NAMES_SIZE);
                        snd_iprintf(buffer, "  names: %s\n", buf.rx.names);