1. 02 5月, 2018 1 次提交
  2. 24 4月, 2018 1 次提交
  3. 22 8月, 2017 1 次提交
  4. 08 5月, 2016 1 次提交
    • T
      ALSA: dice: add support for M-Audio Profire 610 and perhaps 2626 · f8ff65bc
      Takashi Sakamoto 提交于
      M-Audio Profire 610 has an unexpected value in version field of its config
      ROM, thus ALSA dice driver is not assigned to the model due to a mismatch
      of modalias.
      
      This commit adds an entry to support the model. I expect the entry is
      also for Profire 2626.
      
      I note that Profire 610 uses TCD2220 (so-called Dice Jr.), and supports a
      part of Extended Application Protocol (EAP).
      
      $ cd linux-firewire-utils/src
      $ ./crpp < /sys/bus/firewire/devices/fw1/config_rom
                     ROM header and bus information block
                     ------------------------------------------------------------
      400  04047689  bus_info_length 4, crc_length 4, crc 30345
      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  000d6c04  company_id 000d6c     |
      410  04400002  device_id 0404400002  | EUI-64 000d6c0404400002
      
                     root directory
                     ------------------------------------------------------------
      414  000695fe  directory_length 6, crc 38398
      418  03000d6c  vendor
      41c  8100000a  --> descriptor leaf at 444
      420  17000011  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  0004fb14  directory_length 4, crc 64276
      434  12000d6c  specifier id
      438  130100d1  version
      43c  17000011  model
      440  8100000c  --> descriptor leaf at 470
      
                     descriptor leaf at 444
                     ------------------------------------------------------------
      444  0004b8e4  leaf_length 4, crc 47332
      448  00000000  textual descriptor
      44c  00000000  minimal ASCII
      450  4d2d4175  "M-Au"
      454  64696f00  "dio"
      
                     descriptor leaf at 458
                     ------------------------------------------------------------
      458  00053128  leaf_length 5, crc 12584
      45c  00000000  textual descriptor
      460  00000000  minimal ASCII
      464  50726f46  "ProF"
      468  69726520  "ire "
      46c  36313000  "610"
      
                     descriptor leaf at 470
                     ------------------------------------------------------------
      470  00053128  leaf_length 5, crc 12584
      474  00000000  textual descriptor
      478  00000000  minimal ASCII
      47c  50726f46  "ProF"
      480  69726520  "ire "
      484  36313000  "610"
      
      $ cat /proc/asound/card1/dice
      sections:
        global: offset 10, size 90
        tx: offset 100, size 142
        rx: offset 242, size 282
        ext_sync: offset 524, size 4
        unused2: offset 0, size 0
      global:
        owner: ffc0:000100000000
        notification: 00000040
        nick name: FW610
        clock select: internal 48000
        enable: 1
        status: locked 48000
        ext status: 00000040
        sample rate: 48000
        version: 1.0.4.0
        clock caps: 32000 44100 48000 88200 96000 176400 192000 aes1 aes4 aes adat tdif wc arx1 arx2 internal
        clock source names: SPDIF\AES34\AES56\TOS\AES_ANY\ADAT\ADAT_AUX\Word Clock\Unused\Unused\Unused\Unused\Internal\\
        ...
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      f8ff65bc
  5. 31 3月, 2016 2 次提交
  6. 09 3月, 2016 1 次提交
    • T
      ALSA: dice: force to add two pcm devices for listed models · 7cafc65b
      Takashi Sakamoto 提交于
      Some models reduce the number of available isochronous streams for higher
      sampling transfer frequency. Such models bring an issue about how to add
      PCM substreams. When at lower sampling transfer frequency, the
      models reports whole available streams, thus this driver can add enough
      number of PCM substreams at probing time. On the other hand, at higher
      sampling transfer frequency, this driver can just add reduced number of
      PCM substreams. After probed, even if the sampling transfer frequency is
      changed to lower rate, fewer PCM substreams are actually available. This
      is inconvenience.
      
      For the reason, this commit adds a list so that this driver assume models
      on the list to have two pairs of PCM substreams. This list keeps the name
      of model in which the number of available streams differs depending on
      sampling transfer frequency.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7cafc65b
  7. 09 2月, 2016 1 次提交
    • T
      ALSA: dice: purge generating channel cache · 6f688268
      Takashi Sakamoto 提交于
      Dice interface design doesn't allow drivers to read supported combination
      between sampling transfer frequencies and the number of Multi bit linear
      audio data channels. Due to the design, ALSA dice driver changes current
      sampling transfer frequency to generate cache of the combinations at
      device probing processing.
      
      Although, this idea is worse because ALSA dice driver changes the state of
      clock. This is not what users want when they save favorite configuration
      to the device in advance.
      
      Furthermore, there's a possibility that the format of data block is decided
      not only according to current sampling transfer frequency, but also the
      other factors, i.e. data format for digital interface. It's not good to
      generate channel cache according to the sampling transfer frequency only.
      
      This commit purges processing cache data and related structure members. As
      a result, users must set preferable sampling transfer frequency before
      using ALSA PCM applications, as long as they want to start any PCM
      substreams at the rate except for current one.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6f688268
  8. 06 1月, 2016 2 次提交
    • T
      ALSA: dice: postpone card registration · b59fb190
      Takashi Sakamoto 提交于
      Some models based on ASIC for Dice II series (STD, CP) change their
      hardware configurations after appearing on IEEE 1394 bus. This is due to
      interactions of boot loader (RedBoot), firmwares (eCos) and vendor's
      configurations. This causes current ALSA dice driver to get wrong
      information about the hardware's capability because its probe function
      runs just after detecting unit of the model.
      
      As long as I investigated, it takes a bit time (less than 1 second) to load
      the firmware after bootstrap. Just after loaded, the driver can get
      information about the unit. Then the hardware is initialized according to
      vendor's configurations. After, the got information becomes wrong.
      Between bootstrap, firmware loading and post configuration, some bus resets
      are observed.
      
      This commit offloads most processing of probe function into workqueue and
      schedules the workqueue after successive bus resets. This has an effect to
      get correct hardware information and avoid involvement to bus reset storm.
      
      For code simplicity, this change effects all of Dice-based models, i.e.
      Dice II, Dice Jr., Dice Mini and Dice III.
      
      I use a loose strategy to manage a race condition between the work and the
      bus reset. This is due to a specification of dice transaction. When bus
      reset occurs, registered address for the transaction is cleared. Drivers
      must re-register their own address again. While, this operation is required
      for the work because the work includes to wait for the transaction. This
      commit uses no lock primitives for the race condition. Instead, checking
      'registered' member of 'struct snd_dice' avoid executing the work again.
      If sound card is not registered, the work can be scheduled again by bus
      reset handler.
      
      When .remove callback is executed, the sound card is going to be released.
      The work should not be pending or executed in the releasing. This commit
      uses cancel_delayed_work_sync() in .remove callback and wait till the
      pending work finished. After .remove callback, .update callback is not
      executed, therefore no works are scheduled again.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b59fb190
    • T
      ALSA: dice: split subaddress check from category check · 4a47a87d
      Takashi Sakamoto 提交于
      Before allocating an instance of sound card, ALSA dice driver checks
      chip_ID_hi in Bus information block of Config ROM, then also checks
      subaddresses. The former operation reads cache of Config ROM in Linux
      FireWire subsystem, while the latter operation sends read transaction.
      The latter can be merged into initialization of transaction system.
      
      This commit splits these two operations to reduce needless transactions
      in probe processing.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      4a47a87d
  9. 15 11月, 2015 1 次提交
  10. 19 10月, 2015 1 次提交
    • T
      ALSA: dice: assign converted data to the same type of variable · cbc6f280
      Takashi Sakamoto 提交于
      In former commit, u32 data was assigned to __be32 variable instead of an
      int variable. This is not enough solution because it still causes sparse
      warnings.
      
      dice.c:80:23: warning: incorrect type in assignment (different base types)
      dice.c:80:23:    expected restricted __be32 [usertype] value
      dice.c:80:23:    got unsigned int
      dice.c:81:21: warning: restricted __be32 degrades to integer
      dice.c:81:46: warning: restricted __be32 degrades to integer
      
      This commit fixes this bug.
      
      Fixes: 7c2d4c0c('ALSA: dice: Split transaction functionality into a file')
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      cbc6f280
  11. 23 2月, 2015 2 次提交
  12. 10 12月, 2014 3 次提交
  13. 30 11月, 2014 8 次提交
  14. 29 8月, 2014 2 次提交
  15. 26 5月, 2014 4 次提交
  16. 14 2月, 2014 1 次提交
  17. 29 11月, 2013 1 次提交
  18. 15 11月, 2013 1 次提交
  19. 21 10月, 2013 6 次提交