1. 26 5月, 2014 7 次提交
    • T
      ALSA: fireworks/firewire-lib: Add a quirk for fixed interval of reported dbc · d9cd0065
      Takashi Sakamoto 提交于
      Fireworks firmware version 5.5 reports fix interval for dbc in each packet.
      
      For example, AudioFire4:
      CIP0     CIP1     Payload
      00070000 900484FF 72
      00070008 9004A8FF 72
      00070008 90FFFFFF 02
      00070010 9004D0FF 72
      00070018 9004C4FF 72
      00070020 9004E8FF 72
      00070020 90FFFFFF 02
      00070028 900410FE 72
      
      The interval of each dbc should be 16 except for empty packet but it's still 8.
      
      This commit adds a flag for this quirk and codes to refer to a fixed value.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      d9cd0065
    • T
      ALSA: fireworks/firewire-lib: Add a quirk for wrong dbs in tx packets · 69702239
      Takashi Sakamoto 提交于
      One of Fireworks firmware, named  as 'AudioFire9', seems to transmit
      packets with wrong value of dbs. It's always 0x11 but actual size of
      data block is different.
      
      This commit adds a flag for this quirk and some codes to calculate
      correct size.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      69702239
    • T
      ALSA: fireworks/firewire-lib: Add a quirk for the meaning of dbc · c8bdf49b
      Takashi Sakamoto 提交于
      Fireworks has a quirk for the value of dbc field in transmitted packets.
      For Fireworks, dbc means the end of events in current packet. This is out
      of specification.
      
      For example, AudioFire4:
      CIP0        CIP1    Payload
      01070092 90FFFFFF 02
      0107009A 9001E17B 3A <-
      010700A2 9001F6E5 3A
      010700A2 90FFFFFF 02
      010700AA 9001104F 3A <-
      010700B2 900125B9 3A
      010700BA 90013B23 3A
      010700BA 90FFFFFF 02
      010700C2 9001548E 3A <-
      010700CA 900169F8 3A
      010700CA 90FFFFFF 02
      010700D2 90018362 3A <-
      010700DA 900198CC 3A
      
      According to IEC 61883-1/6, a packet following to empty packet has the same
      value for its dbc. But for Fireworks, it's incremented and empty packet has
      the same value as previous packet in dbc field.
      
      This commit adds a flag for Fireworks and some codes to checking dbc continuity.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c8bdf49b
    • T
      ALSA: fireworks/firewire-lib: Add a quirk for empty packet with TAG0 · 7ab56645
      Takashi Sakamoto 提交于
      Fireworks has a quirk to transmit empty packets with TAG0. This commit
      adds handling this quirk for full duplex stream synchronization.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7ab56645
    • T
      ALSA: fireworks: Add connection and stream management · 315fd41f
      Takashi Sakamoto 提交于
      Fireworks manages connections by CMP and can transmit/receive AMDTP streams
      with a few quirks. This commit adds functionality to start/stop the streams.
      
      Major Fireworks products don't support 'SYT-Match' clock source mode, except
      for AudioFire12/8(till 2009 July) with firmware version 1.0. Already in
      previous commit, this driver don't support such old firmwares. So this commit
      adds support for non 'SYT-Match' clock source modes.
      
      I note that this driver has a short gap for MIDI streams when starting PCM
      stream. When AMDTP streams are running only for MIDI data and PCM data is
      going to be joined at different sampling rate, then AMDTP streams are
      stopped once and started again after changing sampling rate.
      
      Unfortunately, Fireworks is not fully compliant to IEC 61883-1/6. Some commits
      following to this commit add these quirks.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      315fd41f
    • T
      ALSA: fireworks: Add transaction and some commands · bde8a8f2
      Takashi Sakamoto 提交于
      Fireworks uses own command and response. This commit adds functionality to
      transact and adds some commands required for sound card instance and kernel
      streaming.
      
      There are two ways to deliver substance of this transaction:
      1.AV/C vendor dependent command for command/response
      2.Async transaction to specific addresses for command/response
      
      By way 1, I confirm AudioFire12 cannot correctly response to some commands with
      firmware version 5.0 or later. This is also confirmed by FFADO. So this driver
      implement way 2.
      
      The address for response gives an issue. When this driver allocate own callback
      function into the address, then no one can allocate its own callback function.
      This situation is not good for applications in user-land. This issue is solved
      in later commit.
      
      I note there is a command to change the address for response if the device
      supports. But this driver uses default value. So users should not execute this
      command as long as hoping this driver works correctly.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      bde8a8f2
    • T
      ALSA: fireworks: Add skelton for Fireworks based devices · b5b04336
      Takashi Sakamoto 提交于
      This commit adds a new driver for devices based on Fireworks. This driver
      just creates/removes card instance according to callbacks.
      
      Fireworks is a board module which Echo Audio produced. This module
      consists of three chipsets:
       - Communication chipset for IEEE1394 PHY/Link and IEC 61883-1/6
       - DSP or/and FPGA for signal processing
       - Flash Memory to store firmwares
      
      Current supported devices:
       - Mackie Onyx 400F/1200F
       - Echo AudioFire12/8(until 2009 July)
       - Echo AudioFire2/4/Pre8/8(since 2009 July)
       - Echo Fireworks 8/HDMI
       - Gibson Robot Interface pack/GoldTop
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b5b04336