1. 05 1月, 2017 1 次提交
    • T
      Revert "ALSA: firewire-lib: change structure member with proper type" · e4f34cf6
      Takashi Sakamoto 提交于
      This reverts commit 6b7e95d1. This commit
      is based on a concern about value of the given parameter. It's expected
      to be ORed value with some enumeration-constants, thus often it can not be
      one of the enumeration-constants. I understood that this is out of
      specification and causes implementation-dependent issues.
      
      In C language specification, enumerated type can be interpreted as an
      integer type, in which all of enumeration-constants in corresponding
      enumerator-list can be stored. Implementations can select one of char,
      signed int and unsigned int as its type, and this selection is
      implementation-dependent.
      
      In GCC, a signed integer is selected when at least one of
      enumeration-constants has negative value, else an unsigned integer is
      selected. This behaviour can be switched by -fshort-enums to short type.
      Anyway, the type can be decided after scanning all of
      enumeration-constants.
      
      Totally, there's no rules to constrain the value of enumerated type to
      be one of enumeration-constants. In short, in enumerated type, decision
      of actual type for the type is the most important and
      enumeration-constants are just used for the decision, thus it's permitted
      to have an integer value in a range of enumeration-constants. In our case,
      actual type for the type is currently deterministic to be either char or
      unsigned int. Under GCC, it's unsigned int.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      e4f34cf6
  2. 03 1月, 2017 1 次提交
  3. 12 5月, 2016 1 次提交
    • T
      ALSA: firewire-lib: permit to flush queued packets only in process context for... · 1dba9db0
      Takashi Sakamoto 提交于
      ALSA: firewire-lib: permit to flush queued packets only in process context for better PCM period granularity
      
      These three commits were merged to improve PCM pointer granularity.
      commit 76fb8789 ("ALSA: firewire-lib: taskletize the snd_pcm_period_elapsed() call")
      commit e9148ddd ("ALSA: firewire-lib: flush completed packets when reading PCM position")
      commit 92b862c7 ("ALSA: firewire-lib: optimize packet flushing")
      
      The point of them is to handle queued packets not only in software IRQ
      context of IR/IT contexts, but also in process context. As a result of
      handling packets, period tasklet is scheduled when acrossing PCM period
      boundary. This is to prevent recursive call of
      'struct snd_pcm_ops.pointer()' in the same context.
      
      When the pointer callback is executed in the process context, it's
      better to avoid the second callback in the software IRQ context. The
      software IRQ context runs immediately after scheduled in the process
      context because few packets are queued yet.
      
      For the aim, 'pointer_flush' is used, however it causes a race condition
      between the process context and software IRQ context of IR/IT contexts.
      
      Practically, this race is not so critical because it influences process
      context to skip flushing queued packet and to get worse granularity of
      PCM pointer. The race condition is quite rare but it should be improved
      for stable service.
      
      The similar effect can be achieved by using 'in_interrupt()' macro. This
      commit obsoletes 'pointer_flush' with it.
      Acked-by: NClemens Ladisch <clemens@ladisch.de>
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1dba9db0
  4. 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: firewire-lib: handle IT/IR contexts in each software interrupt context · dec63cc8
      Takashi Sakamoto 提交于
      In clause 6.3 of IEC 61883-6:2000, there's an explanation about processing
      of presentation timestamp. In the clause, we can see "If a function block
      receives a CIP, processes it and subsequently re-transmits it, then the
      SYT of the outgoing CIP shall be the sum of the incoming SYT and the
      processing delay." ALSA firewire stack has an implementation to partly
      satisfy this specification. Developers assumed the stack to perform as an
      Audio function block[1].
      
      Following to the assumption, current implementation of ALSA firewire stack
      use one software interrupt context to handle both of in/out packets. In
      most case, this is processed in 1394 OHCI IR context independently of the
      opposite context. Thus, this implementation uses longer CPU time in the
      software interrupt context. This is not better for whole system.
      
      Against the assumption, I confirmed that each ASIC for IEC 61883-1/6
      doesn't necessarily expect it to the stack. Thus, current implementation
      of ALSA firewire stack includes over-engineering.
      
      This commit purges the implementation. As a result, packets of one
      direction are handled in one software interrupt context and spends
      minimum CPU time.
      
      [1] [alsa-devel] [PATCH 0/8] [RFC] new driver for Echo Audio's Fireworks based devices
      http://mailman.alsa-project.org/pipermail/alsa-devel/2013-June/062660.htmlSigned-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      dec63cc8
  5. 29 9月, 2015 12 次提交
  6. 05 8月, 2015 1 次提交
    • T
      ALSA: fireworks/firewire-lib: add support for recent firmware quirk · 18f5ed36
      Takashi Sakamoto 提交于
      Fireworks uses TSB43CB43(IceLynx-Micro) as its IEC 61883-1/6 interface.
      This chip includes ARM7 core, and loads and runs program. The firmware
      is stored in on-board memory and loaded every powering-on from it.
      
      Echo Audio ships several versions of firmwares for each model. These
      firmwares have each quirk and the quirk changes a sequence of packets.
      
      As long as I investigated, AudioFire2/AudioFire4/AudioFirePre8 have a
      quirk to transfer a first packet with 0x02 in its dbc field. This causes
      ALSA Fireworks driver to detect discontinuity. In this case, firmware
      version 5.7.0, 5.7.3 and 5.8.0 are used.
      
      Payload  CIP      CIP
      quadlets header1  header2
      02       00050002 90ffffff <-
      42       0005000a 90013000
      42       00050012 90014400
      42       0005001a 90015800
      02       0005001a 90ffffff
      42       00050022 90019000
      42       0005002a 9001a400
      42       00050032 9001b800
      02       00050032 90ffffff
      42       0005003a 9001d000
      42       00050042 9001e400
      42       0005004a 9001f800
      02       0005004a 90ffffff
      (AudioFire2 with firmware version 5.7.)
      
      $ dmesg
      snd-fireworks fw1.0: Detect discontinuity of CIP: 00 02
      
      These models, AudioFire8 (since Jul 2009 ) and Gibson Robot Interface
      Pack series uses the same ARM binary as their firmware. Thus, this
      quirk may be observed among them.
      
      This commit adds a new member for AMDTP structure. This member represents
      the value of dbc field in a first AMDTP packet. Drivers can set it with
      a preferred value according to model's quirk.
      Tested-by: NJohannes Oertei <johannes.oertel@uni-due.de>
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      18f5ed36
  7. 23 5月, 2015 1 次提交
    • T
      ALSA: firewire-lib: add buffer-over-run protection at receiving more data blocks than expected · a2064710
      Takashi Sakamoto 提交于
      In IEC 61883-6, the number of data blocks in a packet is limited up to
      the value of SYT_INTERVAL. Current implementation is compliant to the
      limitation, while it can cause buffer-over-run when the value of dbs
      field in received packet is illegally large.
      
      This commit adds a validator to detect such illegal packets to prevent
      the buffer-over-run. Actually, the buffer is aligned to the size of memory
       page, thus this issue hardly causes system errors due to the room to page
      alignment, as long as a few packets includes such jumbo payload; i.e.
      a packet to several received packets.
      
      Here, Behringer F-Control Audio 202 (based on OXFW 960) has a quirk to
      postpone transferring isochronous packet till finish handling any
      asynchronous packets. In this case, this model is lazy, transfers no
      packets according to several cycle-start packets. After finishing, this
      model pushes required data in next isochronous packet. As a result, the
      packet include more data blocks than IEC 61883-6 defines.
      
      To continue to support this model, this commit adds a new flag to extend
      the length of calculated payload. This flag allows the size of payload
      5 times as large as IEC 61883-6 defines. As a result, packets from this
      model passed the validator successfully.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      a2064710
  8. 17 1月, 2015 2 次提交
  9. 19 11月, 2014 1 次提交
  10. 29 8月, 2014 1 次提交
    • T
      ALSA: firewire-lib/dice: add arrangements of PCM pointer and interrupts for Dice quirk · 65845f29
      Takashi Sakamoto 提交于
      In IEC 61883-6, one data block transfers one event. In ALSA, the event equals one PCM frame,
      hence one data block transfers one PCM frame. But Dice has a quirk at higher sampling rate
      (176.4/192.0 kHz) that one data block transfers two PCM frames.
      
      Commit 10550bea ("ALSA: dice/firewire-lib: Keep dualwire mode but obsolete
      CIP_HI_DUALWIRE") moved some codes related to this quirk into Dice driver. But the commit
      forgot to add arrangements for PCM period interrupts and DMA pointer updates. As a result, Dice
      driver cannot work correctly at higher sampling rate.
      
      This commit adds 'double_pcm_frames' parameter to amdtp structure for this quirk. When this
      parameter is set, PCM period interrupts and DMA pointer updates occur at double speed than in
      IEC 61883-6.
      Reported-by: NDaniel Robbins <drobbins@funtoo.org>
      Fixes: 10550bea ("ALSA: dice/firewire-lib: Keep dualwire mode but obsolete CIP_HI_DUALWIRE")
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Cc: <stable@vger.kernel.org> # 3.16
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      65845f29
  11. 26 5月, 2014 17 次提交
    • T
      ALSA: bebob/firewire-lib: Add a quirk of wrong dbc in empty packet for M-Audio... · 9d59124c
      Takashi Sakamoto 提交于
      ALSA: bebob/firewire-lib: Add a quirk of wrong dbc in empty packet for M-Audio special Firewire series
      
      M-Audio Firewire 1814 has a quirk, ProjectMix I/O also has. They transmit
      empty packet with wrong value of dbc incremented by 8 at high sampling rate.
      According to IEC 61883-1, this value should be the same as the one in
      previous packet.
      
      This commit adds a flag named as CIP_EMPTY_HAS_WRONG_DBC. With flag, the value
      of dbc in empty packet is overwittern by an expected value.
      
      This is an example of this quirk:
      CIP Header 0	CIP Header 1	Payload size
      010D0000	9004F759	210
      010D0010	90040B59	210
      010D0020	90042359	210
      01020028	9004FFFF	2  <-
      010D0030	90043759	210
      010D0040	90044B59	210
      010D0050	90046359	210
      01020058	9004FFFF	2  <-
      010D0060	90047759	210
      010D0070	90048B59	210
      010D0080	9004A359	210
      01020088	9004FFFF	2  <-
      010D0090	9004B759	210
      010D00A0	9004CB59	210
      010D00B0	9004E359	210
      010200B8	9004FFFF	2  <-
      010D00C0	9004F759	210
      010D00D0	90040B59	210
      010D00E0	90042359	210
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      9d59124c
    • T
      ALSA: bebob/firewire-lib: Add a quirk for discontinuity at bus reset · b6bc8123
      Takashi Sakamoto 提交于
      Normal BeBoB firmware has a quirk. When receiving bus reset, it transmits
      packets with discontinuous value in dbc field.
      
      This causes two situation, one is to abort streaming by firewire-lib as a
      result of detecting the discontinuity. Another is to call driver's .update()
      because of bus reset. These two is generated independently. (The former
      depends on isochronous stream and the latter depends on IEEE1394 bus driver.)
      
      When BeBoB driver works with XRUN-recoverable applications, this situation
      looks like stream_start_duplex() call followed by stream_update_duplex() call
      because applications will call snd_pcm_prepare() immediately at XRUN.
      
      To update connections and streams at first, this commit use completion. When
      queueing error occurs, stream_start_duplex() is forced to wait maximum
      1000msec. During this, when .update() is called, the completion is waken and
      stream_start_duplex() is processed without breaking connections.
      
      At bus reset, stream_start_duplex() shouldn't break/establish connections and
      stream_update_duplex() should update connections because a caller of
      fw_iso_resources_allocate() is responsible for calling
      fw_iso_resources_update() on bus reset.
      
      This commit also adds a flag, which has an effect to skip checking continuity
      for first packet. This flag is useful for BeBoB quirk to start handling packets
      during streaming.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b6bc8123
    • T
      ALSA: fireworks/firewire-lib: Add a quirk of data blocks for MIDI in out-stream · 53111cdc
      Takashi Sakamoto 提交于
      Fireworks has a quirk to ignore MIDI messages in data blocks more than 8.
      This commit adds a flag for this quirk and codes to skip 8 or more data
      blocks to transfer MIDI messages.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      53111cdc
    • T
      ALSA: fireworks/firewire-lib: Add a quirk to reset data block counter at bus reset · b84b1a27
      Takashi Sakamoto 提交于
      Fireworks has a quirk to reset data block counter at bus reset.
      
      This commit adds a flag of CIP_SKIP_DBC_ZERO_CHECK. This flag has an effect
      to skip checking dbc continuity when dbc is zero.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b84b1a27
    • T
      ALSA: fireworks/firewire-lib: Add a quirk for fixed interval of reported dbc · d9cd0065
      Takashi Sakamoto 提交于
      Fireworks firmware version 5.5 reports fix interval for dbc in each packet.
      
      For example, AudioFire4:
      CIP0     CIP1     Payload
      00070000 900484FF 72
      00070008 9004A8FF 72
      00070008 90FFFFFF 02
      00070010 9004D0FF 72
      00070018 9004C4FF 72
      00070020 9004E8FF 72
      00070020 90FFFFFF 02
      00070028 900410FE 72
      
      The interval of each dbc should be 16 except for empty packet but it's still 8.
      
      This commit adds a flag for this quirk and codes to refer to a fixed value.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      d9cd0065
    • T
      ALSA: fireworks/firewire-lib: Add a quirk for wrong dbs in tx packets · 69702239
      Takashi Sakamoto 提交于
      One of Fireworks firmware, named  as 'AudioFire9', seems to transmit
      packets with wrong value of dbs. It's always 0x11 but actual size of
      data block is different.
      
      This commit adds a flag for this quirk and some codes to calculate
      correct size.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      69702239
    • T
      ALSA: fireworks/firewire-lib: Add a quirk for the meaning of dbc · c8bdf49b
      Takashi Sakamoto 提交于
      Fireworks has a quirk for the value of dbc field in transmitted packets.
      For Fireworks, dbc means the end of events in current packet. This is out
      of specification.
      
      For example, AudioFire4:
      CIP0        CIP1    Payload
      01070092 90FFFFFF 02
      0107009A 9001E17B 3A <-
      010700A2 9001F6E5 3A
      010700A2 90FFFFFF 02
      010700AA 9001104F 3A <-
      010700B2 900125B9 3A
      010700BA 90013B23 3A
      010700BA 90FFFFFF 02
      010700C2 9001548E 3A <-
      010700CA 900169F8 3A
      010700CA 90FFFFFF 02
      010700D2 90018362 3A <-
      010700DA 900198CC 3A
      
      According to IEC 61883-1/6, a packet following to empty packet has the same
      value for its dbc. But for Fireworks, it's incremented and empty packet has
      the same value as previous packet in dbc field.
      
      This commit adds a flag for Fireworks and some codes to checking dbc continuity.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c8bdf49b
    • T
      ALSA: fireworks/firewire-lib: Add a quirk for empty packet with TAG0 · 7ab56645
      Takashi Sakamoto 提交于
      Fireworks has a quirk to transmit empty packets with TAG0. This commit
      adds handling this quirk for full duplex stream synchronization.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7ab56645
    • T
      ALSA: firewire-lib: Add some AV/C general commands · 1017abed
      Takashi Sakamoto 提交于
      This commit adds three commands, which may be used by some firewire device
      drivers. These commands are defined in 'AV/C Digital Interface Command Set
      General Specification Version 4.2 (2004006, 1394TA)'.
      
      1. PLUG INFO command (clause 10.1)
      2. INPUT PLUG SIGNAL FORMAT command (clause 10.10)
      3. OUTPUT PLUG SIGNAL FORMAT command (clause 10.11)
      
      By the command 1, the drivers can get the number of plugs for AV/C unit or
      subunit.
      By the command 2 and 3, the drivers can get/set sampling frequency.
      
      The 'firewire-speakers' already uses INPUT PLUG SIGNAL FORMAT command to set
      sampling rate. So this commit also affects the driver.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1017abed
    • T
      ALSA: firewire-lib/dice/speakers: Add common PCM constraints for AMDTP streams · 7b2d99fa
      Takashi Sakamoto 提交于
      This commit adds common PCM constraints according to current firewire-lib
      implementation.
      
      1.Maximum width for each sample is limited by 24.
      AM824 in IEC 61883-6 can deliver 24bit data.
      
      2. Minimum time for period is 5msec.
      Apply the old value. For shorter latency, further works are needed.
      
      3. In blocking mode, frames per period/buffer is aligned to 32.
      Each packet can include some frames depending on its sampling rate. In
      blocking mode, the number equals to SYT_INTERVAL. Currently firewire-lib
      can schedule snd_pcm_period_elapsed() for each packet. So, for accurate
      PCM interrupt, the number of frames per period/buffer should be aligned
      to SYT_INTERVAL.
      Currently firewire-lib is lack of better rules to achieve this. So LCM of
      each value of SYT_INTERVALs (=32) is applied. This can be improved for
      further work.
      
      [Fixed the compile error due to the missing "&" by tiwai]
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7b2d99fa
    • T
      ALSA: dice/firewire-lib: Keep dualwire mode but obsolete CIP_HI_DUALWIRE · 10550bea
      Takashi Sakamoto 提交于
      In previous commit, AMDTP functionality in firewire-lib supports mapping
      for PCM data channels. With this mapping, firewire-lib can obsolete
      a flag, CIP_HI_DUALWIRE, but Dice driver still keeps dual wire mode.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      10550bea
    • T
      ALSA: firewire-lib: Add support for channel mapping · 77d2a8a4
      Takashi Sakamoto 提交于
      Some devices arrange the position of PCM/MIDI data channel in AMDTP packet.
      This commit allows drivers to set channel mapping.
      
      To be simple, the mapping table is an array with fixed length. Then the number
      of channels for PCM is restricted by 64 channels.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      77d2a8a4
    • T
      ALSA: firewire-lib: Add support for duplex streams synchronization in blocking mode · 7b3b0d85
      Takashi Sakamoto 提交于
      Generally, the devices can synchronize to handle 'presentation timestamp'
      in CIP packets. This commit adds functionality to pick up this timestamp from
      in-packets transmitted by the device, then use it for out packets.
      
      In current implementation, this module generated the timestamp by itself. This
      is 'SYT Match' mode. Then drivers with this module acts as synchronization
      master. This commit allows this module to act as synchronization slave.
      
      This commit restricts this mechanism is only available in blocking mode because
      handling the timestamp in non-blocking mode is more complicated than in
      blocking mode.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7b3b0d85
    • T
      ALSA: firewire-lib: Add support for MIDI capture/playback · 83d8d72d
      Takashi Sakamoto 提交于
      For capturing/playbacking MIDI messages, this commit adds one MIDI conformant
      data channel. This data channel has multiplexed 8 MIDI data streams. So this
      data channel can transfer messages from/to 8 MIDI ports.
      
      And this commit allows to set PCM format even if AMDTP streams already start.
      I suppose the case that PCM substreams are going to be joined into AMDTP
      streams when AMDTP streams are already started for MIDI substreams. Each
      driver must count how many PCM/MIDI substreams use AMDTP streams to stop
      AMDTP streams.
      
      There are differences between specifications about MIDI conformant data.
      
      About the multiplexing, IEC 61883-6:2002, itself, has no information. It
      describes labels and bytes for MIDI messages and refers to MMA/AMEI RP-027
      for 'successfull implementation'. MMA/AMEI RP-027 describes 8 MPX-MIDI data
      streams for one MIDI conformant data channel. IEC 61883-6:2005 adds
      'sequence multiplexing' and apply this way and describe incompatibility
      between 2002 and 2005.
      
      So this commit applies IEC 61883-6:2005. When we find some devices compliant
      to IEC 61883-6:2002, then this difference should be handles as device quirk
      in additional work.
      
      About the number of bytes in an MIDI conformant data, IEC 61883-6:2002 describe
      0,1,2,3 bytes. MMA/AMEI RP-027 describes 'MIDI1.0-1x-SPEED', 'MIDI1.0-2x-SPEED',
      'MIDI1.0-3x-SPEED' modes and the maximum bytes for each mode corresponds to 1,
      2, 3 bytes. The 'MIDI1.0-2x/3x-SPEED' modes are accompanied with 'negotiation
      procedure' and 'encapsulation details' but there is no specifications for them.
      
      So this commit implements 'MIDI1.0-1x-SPEED' mode for playback, but allows
      to pick up 1-3 bytes for capturing.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      83d8d72d
    • T
      ALSA: firewire-lib: Add support for AMDTP in-stream and PCM capture · 2b3fc456
      Takashi Sakamoto 提交于
      For capturing PCM, this commit adds the functionality to handle in-stream.
      This is also applied for dual-wire mode.
      
      Currently, capturing 32bit samples are supported.
      
      When the sequence of in-packet has discontinuity of dbc, in-stream isn't handled
      and amdtp_streaming_error() returns true.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      2b3fc456
    • T
      ALSA: firewire-lib: Add 'direction' member to 'amdtp_stream' structure · 3ff7e8f0
      Takashi Sakamoto 提交于
      This patch adds 'direction' member to amdtp_stream structure to indicate its
      direction. This patch also adds 'direction' argument to amdtp_stream_init()
      function to determine its direction.
      
      The amdtp_stream_init() function is exported and used by firewire-speakers and
      dice so this patch also affects them.
      
      This patch just add them. Actual implementation will be done by followed
      patches.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      3ff7e8f0
    • T
      ALSA: firewire-lib: Rename functions, structure, member for AMDTP · be4a2894
      Takashi Sakamoto 提交于
      This patch renames some functions, a structure and its member to reuse them
      in both AMDTP in/out stream.
      Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      be4a2894