1. 22 May, 2020 6 commits
  2. 16 May, 2020 3 commits
  3. 15 May, 2020 2 commits
  4. 11 May, 2020 1 commit
  5. 10 May, 2020 6 commits
    • Takashi Sakamoto's avatar
      ALSA: fireface: add support for RME Fireface UFX (untested) · 1f65e668
      Takashi Sakamoto authored
      Fireface UFX was shipped by RME GmbH in 2010, and now discontinued.
      Although this model has some enhanced feature which Fireface 802
      doesn't have (e.g. on-board USB mass storage device class, configuration
      interface with color display), the functionality relevant to
      packet communication on IEEE 1394 bus seems to be the same as
      Fireface 802 (e.g. available number of channels for PCM frame in
      each sampling transfer frequency).
      
      With the assumption, this commit adds support for Fireface UFX. In ALSA
      fireface driver, these two models are handled as the same one.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20200510074301.116224-7-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      1f65e668
    • Takashi Sakamoto's avatar
      ALSA: fireface: add support for RME FireFace 802 · 062bb452
      Takashi Sakamoto authored
      Fireface 802 was shipped by RME GmbH in 2014. This model supports later
      protocol for management of isochronous communication and synchronization
      of sampling transmission frequency.
      
      This model consists of below ICs:
       * TI TSB41AB2
       * Xilinx Spartan-6 FPGA XC6SLX16
       * TI TMS320 C6747
       * SMSC USB3250
      
      Especially, this model just supports IEEE 1394a, against its name which
      evokes Fireface 800.
      
      This commit adds support for Fireface 802 (tested). Userspace applications
      can transfer PCM frames and MIDI messages via ALSA PCM/Rawmidi interface.
      I note that 4 channels for ADAt1 and ADAT2 are disabled at higher sampling
      transfer frequency since isochronous resources reservation fails due to
      bandwidth limitation of IEEE 1394a.
      
      The value read from LATTER_SYNC_STATUS register is slightly different
      from the one of Fireface UCX. The higher 4 bits and lower 4 bits are
      swapped within the same byte.
      
      Without any assist of userspace application, transmitted MIDI messages
      from the device are not going to be processed. For detail, please refer
      to my comment in code of latter protocol.
      
      $ python crpp < /sys/bus/firewire/devices/fw1/config_rom
                     ROM header and bus information block
                     -----------------------------------------------------------------
      400  0404ffff  bus_info_length 4, crc_length 4, crc 65535 (should be 26805)
      404  31333934  bus_name "1394"
      408  20008000  irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 0, max_rec 8 (512)
      40c  000a3504  company_id 000a35     |
      410  38077423  device_id 0438077423  | EUI-64 000a350438077423
      
                     root directory
                     -----------------------------------------------------------------
      414  0005ffff  directory_length 5, crc 65535 (should be 9514)
      418  0c0083c0  node capabilities per IEEE 1394
      41c  03000a35  vendor
      420  8100000b  --> descriptor leaf at 44c
      424  8d000007  --> eui-64 leaf at 440
      428  d1000001  --> unit directory at 42c
      
                     unit directory at 42c
                     -----------------------------------------------------------------
      42c  0004ffff  directory_length 4, crc 65535 (should be 45134)
      430  12000a35  specifier id
      434  13000005  version
      438  17101800  model
      43c  81000008  --> descriptor leaf at 45c
      
                     eui-64 leaf at 440
                     -----------------------------------------------------------------
      440  0002ffff  leaf_length 2, crc 65535 (should be 60131)
      444  000a3504  company_id 000a35     |
      448  38077423  device_id 0438077423  | EUI-64 000a350438077423
      
                     descriptor leaf at 44c
                     -----------------------------------------------------------------
      44c  0003ffff  leaf_length 3, crc 65535 (should be 469)
      450  00000000  textual descriptor
      454  00000000  minimal ASCII
      458  524d4521  "RME!"
      
                     descriptor leaf at 45c
                     -----------------------------------------------------------------
      45c  0005ffff  leaf_length 5, crc 65535 (should be 10561)
      460  00000000  textual descriptor
      464  00000000  minimal ASCII
      468  46697265  "Fire"
      46c  66616365  "face"
      470  20383032  " 802"
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20200510074301.116224-6-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      062bb452
    • Takashi Sakamoto's avatar
      ALSA: fireface: code refactoring to decide name of sound card · 782222ba
      Takashi Sakamoto authored
      This commit uses enumeration constants as index of table for the
      list of name of sound card.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20200510074301.116224-5-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      782222ba
    • Takashi Sakamoto's avatar
      ALSA: fireface: code refactoring to add enumeration constants for model identification · c52f232e
      Takashi Sakamoto authored
      In RME fireface series, version field of unit directory in configuration
      ROM is used to distinguish each model. The value of field is known and
      it's better to use enumeration constants for code representation.
      
      This commit adds enumeration constants for model identification.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20200510074301.116224-4-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      c52f232e
    • Takashi Sakamoto's avatar
      ALSA: fireface: start IR context immediately · f4588cc4
      Takashi Sakamoto authored
      In the latter models of RME Fireface series, device start to transfer
      packets several dozens of milliseconds. On the other hand, ALSA fireface
      driver starts IR context 2 milliseconds after the start. This results
      in loss to handle incoming packets on the context.
      
      This commit changes to start IR context immediately instead of
      postponement. For Fireface 800, this affects nothing because the device
      transfer packets 100 milliseconds or so after the start and this is
      within wait timeout.
      
      Cc: <stable@vger.kernel.org>
      Fixes: acfedcbe ("ALSA: firewire-lib: postpone to start IR context")
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20200510074301.116224-3-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      f4588cc4
    • Takashi Sakamoto's avatar
      ALSA: fireface: fix configuration error for nominal sampling transfer frequency · bbd6aac3
      Takashi Sakamoto authored
      128000 and 192000 are congruence modulo 32000, thus it's wrong to
      distinguish them as multiple of 32000 and 48000 by modulo 32000 at
      first.
      
      Additionally, used condition statement to detect quadruple speed can
      cause missing bit flag.
      
      Furthermore, counter to ensure the configuration is wrong and it
      causes false positive.
      
      This commit fixes the above three bugs.
      
      Cc: <stable@vger.kernel.org>
      Fixes: 60aec494 ("ALSA: fireface: support allocate_resources operation in latter protocol")
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20200510074301.116224-2-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      bbd6aac3
  6. 08 May, 2020 11 commits
  7. 07 May, 2020 4 commits
  8. 06 May, 2020 1 commit
  9. 05 May, 2020 2 commits
  10. 04 May, 2020 3 commits
  11. 02 May, 2020 1 commit