1. 19 10月, 2019 1 次提交
  2. 18 10月, 2019 2 次提交
  3. 17 10月, 2019 1 次提交
  4. 06 8月, 2019 1 次提交
  5. 21 6月, 2019 1 次提交
  6. 17 6月, 2019 2 次提交
  7. 12 6月, 2019 4 次提交
  8. 05 6月, 2019 1 次提交
  9. 10 5月, 2016 2 次提交
    • T
      ALSA: firewire-lib: enable the same feature as CIP_SKIP_INIT_DBC_CHECK flag · 62f00e40
      Takashi Sakamoto 提交于
      In former commit, drivers in ALSA firewire stack always starts IT context
      before IR context. If IR context starts after packets are transmitted by
      peer unit, packet discontinuity may be detected because the context starts
      in the middle of packet streaming. This situation is rare because IT
      context usually starts immediately. However, it's better to solve this
      issue. This is suppressed with CIP_SKIP_INIT_DBC_CHECK flag.
      
      This commit enables the same feature as CIP_SKIP_INIT_DBC_CHECK.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      62f00e40
    • T
      ALSA: bebob: drop reuse of incoming packet parameter for outgoing packet parameter · c71283cb
      Takashi Sakamoto 提交于
      Windows driver for BeBoB-based models mostly wait for transmitted packets,
      then transfer packets to the models. This looks for the relationship
      between incoming packets and outgoing packets to synchronize the sequence
      of presentation timestamp.
      
      However, the sequence between packets of both direction has no
      relationship. Even if receiving NO-DATA packets, the drivers transfer
      packets with meaningful value in SYT field. Additionally, the order of
      starting packets is always the same, independently of the source of clock.
      The corresponding driver is expected as a generator of presentation
      timestamp and these models can select it as a source of sampling clock.
      
      This commit drops reusing SYT sequence from ALSA bebob driver. The driver
      always transfer packets with presentation timestamp generated by ALSA
      firewire stack, without re-using the sequence of value in SYT field in
      incoming packets to outgoing packets.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c71283cb
  10. 20 2月, 2016 4 次提交
    • T
      ALSA: bebob: give up updating streams at bus reset handler · 3800e6f9
      Takashi Sakamoto 提交于
      DM1000/DM1100/DM1500 chipsets transfer packets with discontinue value in
      'dbc' field of CIP header. For ALSA bebob driver, this makes its bus-reset
      handler meaningless, because the discontinuity is detected quite earlier
      than executing the handler.
      
      This commit gives up updating streams at the bus reset handler.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      3800e6f9
    • T
      ALSA: bebob: change type of substream counter from atomic_t to unsigned int · 4fd6c6c7
      Takashi Sakamoto 提交于
      The counter is incremented/decremented in critical section protected with
      mutex. Therefore, no need to use atomic_t.
      
      This commit changes the type to unsigned int.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      4fd6c6c7
    • T
      ALSA: bebob: move mutex from function callee to callers · 2a71e701
      Takashi Sakamoto 提交于
      Currently, critical section is protected by mutex in functions of
      fireworks_stream.c. Callers increments/decrements substreams counter
      before calling the functions. Moving mutex to the callers code allows
      to change type of the substream counter from atomic_t to unsigned int.
      
      This commit is a preparation for obsoleting usage of atomic_t for
      substream counter.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      2a71e701
    • T
      ALSA: bebob: simplify bus-reset handling · 14a37ac1
      Takashi Sakamoto 提交于
      At bus-reset, DM1000/DM1100/DM1500 chipsets transfer packets with
      discontinuous value in 'dbc' field of CIP header. In this case, packet
      streaming layer in firewire-lib module stops streaming and set XRUN to PCM
      substream.
      
      In ALSA, PCM applications are notified the XRUN status by the return value
      of ALSA PCM interface. They can recover this state by executing
      snd_pcm_prepare(), then PCM drivers' prepare handler is called, and start
      new PCM substream. For ALSA BeBoB driver, the handler establishes new
      connections and start new AMDTP streaming.
      
      Unfortunately, neither the PCM applications nor the driver know the reason
      of XRUN. The driver gets to know the reason when update handler is called
      by IEEE 1394 bus driver. As long as I tested, the order of below events are
      not fixed:
       * Detecting packet discontinuity in tasklet context of OHCI 1394 driver
       * Calling prepare handler in process context of ALSA PCM application
       * Calling update handler in kthread context of IEEE 1394 bus driver
      
      The unpredictable order is disadvantage for the driver to be compliant to
      CMP. In IEC 61883-1, new CMP establish operations should be done 1 sec
      (isoc_resource_delay) after bus-reset. Within 1 sec, CMP restore
      operations are allowed. For this reason, in former commit ('b6bc8123:
      ALSA: bebob/firewire-lib: Add a quirk for discontinuity at bus reset'),
      the process context is forced to wait for executing update handler. The
      process context wait for bus-reset up to 1 sec. This commit solves the
      issue, while causes more disadvantages. For PCM applications, calling
      snd_pcm_prepare() for recovering XRUN state takes more time and the driver
      got a bit complicated code, while the recovery is not always successful.
      
      As long as I tested, DM1000/DM1100/DM1500 and BeBoB firmware can allow
      drivers to establish new connections just after bus reset. Furthermore,
      any FCP transactions are handled correctly. Therefore, the driver don't
      need to wait for bus reset handler for starting new streaming.
      
      This commit removes the codes to reduce maintenance cost.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      14a37ac1
  11. 26 1月, 2016 1 次提交
  12. 12 10月, 2015 1 次提交
  13. 29 9月, 2015 6 次提交
  14. 15 6月, 2015 6 次提交
    • T
      ALSA: bebob: keep duplex streams always to keep internal multiplexer properly · 8d1c2694
      Takashi Sakamoto 提交于
      Behringer FCA610 transmits packets with periodic noisy PCM samples
      when receiving no streams, and generates a bit noisy sound.
      
      ALSA BeBoB driver is programmed to establish both in/out connections
      when starting streaming, then transfers packets as userspace applications
      requested. This means that there's a case that one of incoming/outgoing
      streams is running, to save CPU and bandwidth usage. Although, it's natural
      to start transferring packets in both direction.
      
      This commit makes this driver to keeps duplex streams always.
      Tested-by: NKim Tore Jensen <kim@incendio.no>
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      8d1c2694
    • T
      ALSA: bebob: loosen up severity of checking continuity for BeBoB v3 quirk · c4d860a0
      Takashi Sakamoto 提交于
      PrismSound Orpheus, Behringer UFX1604 and FCA610 work with BeBoB v3, and
      they're confirmed to transmit discontinuous packets in the beginning of
      streaming.
      
      payload    CIP headers
        8        0x00070000 0x9002FFFF
        8        0x00070000 0x9002FFFF
        8        0x00070000 0x9002FFFF
        8        0x00070008 0x9002FFFF <-
        8        0x00070008 0x9002FFFF
        8        0x00070008 0x9002FFFF
        8        0x00070008 0x9002FFFF
        8        0x00070008 0x9002FFFF
        8        0x00070008 0x9002FFFF
      232        0x00070000 0x9002E798 <-
      232        0x00070008 0x9002FB99
      232        0x00070010 0x90021398
        8        0x00070018 0x9002FFFF
      (This sample was got with Behringer FCA610 and FFADO library.)
      
      This commit sets CIP_EMPTY_HAS_WRONG_DBC and CIP_SKIP_DBC_ZERO_CHECK to
      ignore these discontinuities.
      Tested-by: NKim Tore Jensen <kim@incendio.no>
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c4d860a0
    • T
      ALSA: bebob: expand timeout for DM1500 quirk · 9a73195e
      Takashi Sakamoto 提交于
      Behringer FCA610 and UFX1604 is confirmed to require more time till
      transmitting packets after establishing connections. This seems to
      be a quirk of DM1500 ASIC which ArchWave produced.
      
      For this quirk, this commit extends the time to wait up to 2 seconds.
      As a result, in worst cases, below userspace functions require 2 seconds
      to return.
       - snd_pcm_prepare()
       - snd_pcm_hw_params()
       - snd_pcm_recover()
      Tested-by: NKim Tore Jensen <kim@incendio.no>
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      9a73195e
    • T
      ALSA: bebob: add SYT-Match support · 05773792
      Takashi Sakamoto 提交于
      In previous commits, this driver can detect the source of clock as mush
      as possible. SYT-Match mode is also available.
      
      This commit purge the restriction.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      05773792
    • T
      ALSA: bebob: use normalized representation for the type of clock source · 3e254b16
      Takashi Sakamoto 提交于
      This commit changes function prototype and its processing. As a result,
      function caller can execute additional processing according to detected
      clock source.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      3e254b16
    • T
      ALSA: bebob: improve signal mode detection for clock source · 5a668812
      Takashi Sakamoto 提交于
      With BeBoB version 3, current ALSA BeBoB driver detects the type of
      current clock signal source wrongly. This is due to a lack of proper
      implementation to parse the information.
      
      This commit renews the parser. As a result, this driver detects
      SYT-Match clock signal, thus it can start streams with two modes;
      SYT-Match mode and the others. SYT-Match mode will be supported in future
      commits.
      
      There's a constrain about detected internal/external clock source.
      When detecting external clock source, this driver allows userspace
      applications to use current sampling rate only. This is due to consider
      abour synchronization to external clock sources such as S/PDIF, ADAT or
      word-clock.
      
      According to several information from some devices, I guesss that the
      internal clock of most devices synchronize to IEEE 1394 cycle start
      packet. In this case, by a usual way, it's detect as 'Sync type
      of output Music Sub-Unit' connected to 'Sync type of PCR output Unit
      (oPCR)', and this driver judges it as internal clock. Therefore,
      userspace applications is allowed to request arbitrary supported sampling
      rates.
      
      On the other hand, several devices based on BeBoB version 3 have
      additional internal clock. In this case, by a usual way, it's detect as
      'Sync/Additional type of External input Unit'. Unfortunately, there's no
      way to distinguish this sync type from the other external clock sources
      such as word-clock. In this case, this driver handles it as external and
      userspace applications is forced to use current sampling rate.
      
      I note that when the source of clock is detected as 'Isochronous stream
      type of input PCR[0]', it's under 'SYT-Match' mode. In this mode, the
      synchronization clock is generated according to SYT-series in received
      packets. In this case, this driver generates the series by myself. I
      experienced this mode often make the device silent suddenly during
      playbacking. This means that the mode is easy to lost synchronization.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      5a668812
  15. 23 2月, 2015 2 次提交
  16. 17 1月, 2015 1 次提交
  17. 27 10月, 2014 1 次提交
  18. 04 6月, 2014 1 次提交
  19. 02 6月, 2014 1 次提交
  20. 27 5月, 2014 1 次提交