1. 13 Jan, 2020 5 commits
    • Takashi Sakamoto's avatar
      ALSA: dice: add support for Alesis MasterControl · 791a485f
      Takashi Sakamoto authored
      Alesis MasterControl was shipped 2009 and already discontinued. This model
      consists of:
       * TSB41AB2 for physical layer of IEEE 1394
       * WaveFront Dice II STD for link layer and protocol implementation
       * FreeScale DSPB56374AE
      
      Although the firmware of this model can respond against read transaction
      to address space for TCAT extension protocol, the content is not valid
      for protocol extension. This results in sound card without any PCM/MIDI
      interfaces.
      
      $ ./firewire-request /dev/fw1 read 0xffffe0200000 0x48
      result: 000: 00 00 00 20 00 00 04 94 00 00 04 b4 00 00 00 b4
      result: 010: 00 00 05 68 00 00 00 24 00 00 05 8c 00 00 00 48
      result: 020: 00 00 00 20 00 00 00 08 00 00 00 20 00 00 00 20
      result: 030: 00 00 00 10 00 00 00 08 00 00 00 08 00 00 00 04
      result: 040: 00 00 00 00 00 00 00 00
      
      This commit adds support the model by adding hard-coded stream formats.
      
      $ python3 ~/git/linux-firewire-utils/src/crpp < /sys/bus/firewire/devices/fw1/config_rom
                     ROM header and bus information block
                     -----------------------------------------------------------------
      400  04041ad7  bus_info_length 4, crc_length 4, crc 6871
      404  31333934  bus_name "1394"
      408  e0ff8112  irmc 1, cmc 1, isc 1, bmc 0, pmc 0, cyc_clk_acc 255,
                     max_rec 8 (512), max_rom 1, gen 1, spd 2 (S400)
      40c  00059504  company_id 000595     | Alesis Corporation
      410  008003f5  device_id 04008003f5  | EUI-64 00059504008003f5
      
                     root directory
                     -----------------------------------------------------------------
      414  0006a620  directory_length 6, crc 42528
      418  03000595  vendor: Alesis Corporation
      41c  8100000a  --> descriptor leaf at 444
      420  17000002  model
      424  8100000d  --> descriptor leaf at 458
      428  0c0087c0  node capabilities per IEEE 1394
      42c  d1000001  --> unit directory at 430
      
                     unit directory at 430
                     -----------------------------------------------------------------
      430  00041b9f  directory_length 4, crc 7071
      434  12000595  specifier id: Alesis Corporation
      438  13000001  version: audio
      43c  17000002  model
      440  8100000d  --> descriptor leaf at 474
      
                     descriptor leaf at 444
                     -----------------------------------------------------------------
      444  000494c2  leaf_length 4, crc 38082
      448  00000000  textual descriptor
      44c  00000000  minimal ASCII
      450  416c6573  "Ales"
      454  69730000  "is"
      
                     descriptor leaf at 458
                     -----------------------------------------------------------------
      458  0006c2ec  leaf_length 6, crc 49900
      45c  00000000  textual descriptor
      460  00000000  minimal ASCII
      464  4d617374  "Mast"
      468  6572436f  "erCo"
      46c  6e74726f  "ntro"
      470  6c000000  "l"
      
                     descriptor leaf at 474
                     -----------------------------------------------------------------
      474  0006c2ec  leaf_length 6, crc 49900
      478  00000000  textual descriptor
      47c  00000000  minimal ASCII
      480  4d617374  "Mast"
      484  6572436f  "erCo"
      488  6e74726f  "ntro"
      48c  6c000000  "l"
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20200113084630.14305-4-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      791a485f
    • Takashi Sakamoto's avatar
      ALSA: dice: loosen stream format check for MIDI conformant data channel · a9f47fcb
      Takashi Sakamoto authored
      ALSA dice driver expects devices to multiplex MIDI messages into first
      port of isochronous communication. Actually devices perform for it.
      However, check of stream format is invalid for second port of isochronous
      communication. As a result, when the device supports two ports for
      isochronous communication and the stream format is hard-coded, ALSA
      dice driver fails to start packet streaming.
      
      This commit loosens stream format check for MIDI conformant data channel.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20200113084630.14305-3-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      a9f47fcb
    • Takashi Sakamoto's avatar
      ALSA: oxfw: fix for Stanton SCS.1d · 41dbc792
      Takashi Sakamoto authored
      Stanton SCS.1d uses Oxford Semiconductor FW 971 ASIC (FW971) for
      communication. Although the unit is bound to ALSA oxfw driver, the instance
      of sound card can not be added due to its quirk of plug information. This
      bug was added when snd-scs1x is merged into snd-oxfw at commit
      9e2004f9 ("ALSA: oxfw: obsolete scs1x module").
      
      This commit fixes the driver for the quirk. In cases that the unit returns
      NOT IMPLEMENTED for some AV/C commands, the sound card is added without any
      PCM/MIDI interfaces for packet streaming. For SCS.1d, model dependent
      operation adds MIDI interface and applications can use it to operate
      according to HSS1394 protocol from reverse-engineering work by Sean M.
      Pappalardo.
      
      Plug Control Register (PCR) has information that the unit has a pair of
      plugs for isochronous communication:
      
      (oMPR)
      $ ./firewire-request /dev/fw1 read 0xfffff0000900
      result: 80ff0001
      (iMPR)
      $ ./firewire-request /dev/fw1 read 0xfffff0000980
      result: 80ff0001
      
      AV/C PLUG INFO also returns information that the unit has a pair of
      plugs for isochronous communication.
      
      (AV/C PLUG INFO command)
      $ ./firewire-request /dev/fw1 fcp 0x01ff0200ffffffff
      response: 000: 0c ff 02 00 01 01 02 02
      
      However, AV/C PLUG SIGNAL INFO command is rejected for both plugs.
      
      (AV/C OUTPUT PLUG SIGNAL INFO command)
      $ ./firewire-request /dev/fw1 fcp 0x01ff1800ffffffff
      response: 000: 0a ff 18 00 ff ff ff ff
      (AV/C INPUT PLUG SIGNAL INFO command)
      $ ./firewire-request /dev/fw1 fcp 0x01ff1900ffffffff
      response: 000: 0a ff 19 00 ff ff ff ff
      
      Furthermore, AV/C EXTENDED STREAM FORMAT INFO is not implemented.
      
      (AV/C EXTENDED STREAM FORMAT INFO list subfunction for input plug)
      $ ./firewire-request /dev/fw1 fcp 0x01ffbfc000000000ffff00ff
      response: 000: 08 ff bf c0 00 00 00 00 ff ff 00 ff
      (AV/C EXTENDED STREAM FORMAT INFO list subfunction for output plug)
      $ ./firewire-request /dev/fw1 fcp 0x01ffbfc001000000ffff00ff
      response: 000: 08 ff bf c0 01 00 00 00 ff ff 00 ff
      (AV/C EXTENDED STREAM FORMAT INFO single subfunction for input plug)
      $ ./firewire-request /dev/fw1 fcp 0x01ffbfc100000000ffffffff
      response: 000: 08 ff bf c1 00 00 00 00 ff ff ff ff
      (AV/C EXTENDED STREAM FORMAT INFO single subfunction for output plug)
      $ ./firewire-request /dev/fw1 fcp 0x01ffbfc101000000ffffffff
      response: 000: 08 ff bf c1 01 00 00 00 ff ff ff ff
      
      Reference: https://mailman.alsa-project.org/pipermail/alsa-devel/2012-May/052264.htmlSigned-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20200113073418.24622-4-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      41dbc792
    • Takashi Sakamoto's avatar
      ALSA: oxfw: don't add MIDI/PCM interface when packet streaming is unavailable · 06a42a74
      Takashi Sakamoto authored
      Stanton SCS.1d doesn't support packet streaming even if it has plugs for
      isochronous communication.
      
      This commit is a preparation for this case. The 'has_input' member is
      added to specific structure, and MIDI/PCM interfaces are not added when
      the member is false.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20200113073418.24622-3-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      06a42a74
    • Takashi Sakamoto's avatar
      ALSA: oxfw: use ENXIO for not-supported cases · 03be63b2
      Takashi Sakamoto authored
      When AV/C command returns 'NOT IMPLEMENTED' status in its response, ALSA
      oxfw driver uses ENOSYS as error code. However, it's expected just to be
      used for missing system call number.
      
      This commit replaces it with ENXIO.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20200113073418.24622-2-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      03be63b2
  2. 12 Jan, 2020 3 commits
  3. 11 Jan, 2020 2 commits
    • Takashi Iwai's avatar
      Merge branch 'for-linus' into for-next · 3cdca6d6
      Takashi Iwai authored
      Sync 5.5-devel branch once again for applying the HD-audio fixes.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3cdca6d6
    • Takashi Iwai's avatar
      ALSA: hda: Rename back to dmic_detect option · 7fba6aea
      Takashi Iwai authored
      We've got quite a few bug reports showing the SOF driver being loaded
      unintentionally recently, and the reason seems to be that users didn't
      know the module option change: with the recent kernel, a new option
      dsp_driver=1 has to be passed to a new module snd-intel-dspcfg
      instead of snd_hda_intel.dmic_detect=0 option.
      
      That is, actually there are two tricky things here:
      - We changed the whole detection in another module and another
        option semantics.
      - The existing option for skipping the DSP probe was also renamed.
      
      For avoiding the confusion and giving user more hint, this patch
      reverts the renamed option dsp_driver back to dmic_detect for
      snd-hda-intel module, and show the warning about the module option
      change when the non-default value is passed.
      
      Fixes: 82d9d54a ("ALSA: hda: add Intel DSP configuration / probe code")
      Link: https://lore.kernel.org/r/20200109082000.26729-1-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7fba6aea
  4. 08 Jan, 2020 6 commits
  5. 06 Jan, 2020 1 commit
  6. 05 Jan, 2020 23 commits