1. 02 Oct, 2015 7 commits
  2. 30 Sep, 2015 9 commits
    • Takashi Sakamoto's avatar
      ALSA: firewire-digi00x: add support for asynchronous messaging · 44b73088
      Takashi Sakamoto authored
      Digi 002/003 family uses asynchronous transaction for messaging.
      The address to transmit this message is stored on a certain register.
      
      This commit allocates a range of address on OHCI 1394 host controller
      to handle the messaging. As long as I know, the purpose of this message
      seems to notify lost of synchronization. While, the meaning of content
      of the message is not clear.
      
      Actual examples of this messaging:
       * When clock source is set as internal:
       - 0x00007051
       - 0x00007052
       - 0x00007054
       - 0x00007057
       - 0x00007058
       * When clock source is set as somewhat external:
       - 0x00009000
       - 0x00009010
       - 0x00009020
       - 0x00009021
       - 0x00009022
      
      The lost often occurs when using internal clock source. In this case,
      users hear sounds with quite short gap every several minutes. In fact,
      the lost is recovered temporarily.
      
      When using with external clock source, the lost seems not to occur. The
      mechanism is not clear yet.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      44b73088
    • Takashi Sakamoto's avatar
      ALSA: firewire-digi00x: add hwdep interface · 660dd3d5
      Takashi Sakamoto authored
      This commit adds hwdep interface so as the other sound drivers for units
      on IEEE 1394 bus have.
      
      This interface is designed for mixer/control applications. By using this
      interface, an application can get information about firewire node, can
      lock/unlock kernel streaming and can get notification at starting/stopping
      kernel streaming.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      660dd3d5
    • Takashi Sakamoto's avatar
      ALSA: firewire-digi00x: add PCM functionality · 0120d0f1
      Takashi Sakamoto authored
      This commit adds PCM functionality to transmit/receive PCM samples.
      
      Any PCM substreams are jointed because incoming/outgoing AMDTP streams
      are bound. When one of PCM substream is running or external clock source
      is selected, current sampling rate is used. Else, the sampling rate is
      changed as an userspace application requests.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      0120d0f1
    • Takashi Sakamoto's avatar
      ALSA: firewire-digi00x: add proc node to show clock status · 927f17dc
      Takashi Sakamoto authored
      This commit adds proc node to show current clock status for debugging.
      
      As long as testing Digi 002 rack, registers can show local clock rate,
      local clock source. When external clock input such as S/PDIF is
      connected, the registers show the detection and external clock rate.
      
      Additionally, the registers show the mode of optical digital input
      interface. Although, a tester with Digi 003 rack reports this makes no
      sense. Further investigation is required for Digi 003 series.
      
      Besides, in Digi 002 rack, the S/PDIF format must be IEC 60958-4,
      so-called professional.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      927f17dc
    • Takashi Sakamoto's avatar
      ALSA: firewire-digi00x: add stream functionality · 3a2a1797
      Takashi Sakamoto authored
      This commit adds a functionality to manage streaming.
      
      The streaming is not controlled by CMP in IEC 61883-6. It's controlled by
      IEEE 1394 write transaction to certain addresses.
      
      Several clock sources are available, while there're no differences about
      packet transmission. The value of SYT field in transmitted packets is
      always zero. Thus, streams in both direction don't build synchronization.
      
      And the device always requires received packets to transmit packets. This
      driver keeps to transfer outgoing stream even if they're not required.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3a2a1797
    • Takashi Sakamoto's avatar
      ALSA: firewire-digi00x: add data block processing layer · 163ae6f3
      Takashi Sakamoto authored
      Digi 002/003 family uses its own format for data blocks. The format is
      quite similar to AM824 in IEC 61883-6, while there're some differences:
      
       * The Valid Bit Length (VBL) code is always 0x40 in Multi-bit Linear Audio
         (MBLA) data channel.
       * The first data channel includes MIDI messages, against IEC 61883-6
         recommendation.
       * The Counter field is always zero in MIDI conformant data channel.
       * Sequence multiplexing in IEC 61883-6 is not applied to the MIDI
         conformant data channel.
       * PCM samples are scrambled in received AMDTP packets. We call the way
         as Double-Oh-Three (DOT). The algorithm was discovered by
         Robin Gareus and Damien Zammit in 2012.
      
      This commit adds data processing layer to satisfy these differences.
      
      There's a quirk about transmission mode for received packets. When this
      driver applies non-blocking mode to outgoing packets with isochronous
      channel 2 or more, after 15 to 20 seconds since playbacking, any PCM
      samples causes noisy sound on the device. With isochronous channel 0 or 1,
      this doesn't occur. As long as I investigated, this quirk is not observed
      when applying blocking mode to the received packets.
      
      This driver applies blocking mode to outgoing packets, while non-blocking
      mode to incoming packgets.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      163ae6f3
    • Takashi Sakamoto's avatar
      ALSA: firewire-digi00x: add skeleton for Digi 002/003 family · 9edf723f
      Takashi Sakamoto authored
      This commit adds a new driver for Digidesign 002/003 family. This commit
      just creates/removes card instance according to bus event. More functions
      will be added in following commits.
      
      Digidesign 002/003 family consists of:
       * Agere FW802B for IEEE 1394 PHY layer
       * PDI 1394L40 for IEEE 1394 LINK layer and IEC 61883 interface
       * ALTERA ACEX EP1K50 for IEC 61883 layer and DSP controller
       * ADSP-21065L for signal processing
      
      [minor cleanup using skip_spaces() by tiwai]
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      9edf723f
    • Takashi Iwai's avatar
      3c95e0c5
    • Takashi Iwai's avatar
      drm/i915: Add missing const to audio_rate_need_prog() · 87f77eff
      Takashi Iwai authored
      The lack of const leads to a compile warning after merging i915
      upstream tree:
         drivers/gpu/drm/i915/intel_audio.c:147:13: note: expected 'struct drm_display_mode *' but argument is of type 'const struct drm_display_mode *'
      Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      87f77eff
  3. 29 Sep, 2015 18 commits
  4. 28 Sep, 2015 2 commits
  5. 27 Sep, 2015 4 commits