1. 25 May, 2020 1 commit
    • Takashi Sakamoto's avatar
      ALSA: firewire-motu: add support for MOTU UltraLite-mk3 (FireWire only model) · e0b2db35
      Takashi Sakamoto authored
      UltraLite-mk3 was shipped 2008 by MOTU. This model has two lineups;
      FireWire-only and FireWire/USB2.0 Hybrid model. Additionally, the latter
      has two variants in respect of the type of IEEE 1394 connector; alpha
      and beta connector.
      
      This commit adds support for the FireWire-only model, which is already
      discontinued.
      
      $ python3 crpp < /sys/bus/firewire/devices/fw1/config_rom
                     ROM header and bus information block
                     -----------------------------------------------------------------
      400  0410353a  bus_info_length 4, crc_length 16, crc 13626
      404  31333934  bus_name "1394"
      408  20ff7000  irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 255, max_rec 7 (256)
      40c  0001f200  company_id 0001f2     |
      410  000902c7  device_id 00000902c7  | EUI-64 0001f200000902c7
      
                     root directory
                     -----------------------------------------------------------------
      414  0004ef04  directory_length 4, crc 61188
      418  030001f2  vendor
      41c  0c0083c0  node capabilities per IEEE 1394
      420  d1000002  --> unit directory at 428
      424  8d000005  --> eui-64 leaf at 438
      
                     unit directory at 428
                     -----------------------------------------------------------------
      428  00035556  directory_length 3, crc 21846
      42c  120001f2  specifier id
      430  13000019  version
      434  17100800  model
      
                     eui-64 leaf at 438
                     -----------------------------------------------------------------
      438  0002f3c5  leaf_length 2, crc 62405
      43c  0001f200  company_id 0001f2     |
      440  000902c7  device_id 00000902c7  | EUI-64 0001f200000902c7
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20200523071733.170129-1-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      e0b2db35
  2. 22 May, 2020 14 commits
  3. 16 May, 2020 3 commits
  4. 15 May, 2020 2 commits
  5. 11 May, 2020 1 commit
  6. 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
  7. 08 May, 2020 11 commits
  8. 07 May, 2020 2 commits