1. 02 Jun, 2014 1 commit
    • Takashi Sakamoto's avatar
      ALSA: firewire-lib: Use IEC 61883-6 compliant labels for Raw Audio data · a6975f2a
      Takashi Sakamoto authored
      According to AM824 in IEC 61883-6:2002, 2 bits in LSB of label for Raw Audio
      data means Valid Length Code (VBL). Ths value is:
      - b00 for 24 bits sample (label is 0x40)
      - b01 for 20 bits sample (label is 0x41)
      - b10 for 16 bits sample (label is 0x42)
      
      But current firewire-lib apply 24 bits label for both of 16/24 bits samples.
      
      As long as developers investigate BeBoB/Fireworks/OXFW/Dice, all of them
      have a behaviour to ignore the label. They can generate correct sound even
      if firewire-lib gives wrong label (i.e. 0xff). On BeBoB, this is not only
      for Raw Audio data channel, but also for IEC 60958 Conformant data channel.
      
      So there is little possibility of regression.
      Acked-by: default avatarClemens Ladisch <clemens@ladisch.de>
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      a6975f2a
  2. 01 Jun, 2014 2 commits
  3. 31 May, 2014 1 commit
  4. 30 May, 2014 3 commits
  5. 29 May, 2014 5 commits
  6. 28 May, 2014 1 commit
  7. 27 May, 2014 15 commits
  8. 26 May, 2014 12 commits
    • Gabriele Mazzotta's avatar
      ALSA: hda - Pop noises fix for XPS13 9333 · 033b0a7c
      Gabriele Mazzotta authored
      When headphones are plugged in, force AFG and node 0x02
      ("Headphone Playback Volume") to D0 to avoid pop noises.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=76611Signed-off-by: default avatarGabriele Mazzotta <gabriele.mzt@gmail.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      033b0a7c
    • Takashi Sakamoto's avatar
      ALSA: firewire/bebob: Add a workaround for M-Audio special Firewire series · 9b1ee0b2
      Takashi Sakamoto authored
      In post commit, a quirk of this firmware about transactions is reported.
      This commit apply a workaround for this quirk.
      
      They often fail transactions due to gap_count mismatch. This state is changed
      by generating bus reset.
      
      The fw_schedule_bus_reset() is an exported symbol in firewire-core. But there
      are no header for public. This commit moves its prototype from
      drivers/firewire/core.h to include/linux/firewire.h.
      
      This mismatch still affects bus management before generating this bus reset.
      It still takes a time to call driver's probe() because transactions are still
      often failed.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      9b1ee0b2
    • Takashi Sakamoto's avatar
      ALSA: bebob: Send a cue to load firmware for M-Audio Firewire series · a2b2a779
      Takashi Sakamoto authored
      Just powering on, these devices below wait to download firmware.
       - Firewire Audiophile
       - Firewire 410
       - Firewire 1814
       - ProjectMix I/O
      
      But firmware version 5058 or later, flash memory in the device stores the
      firmware. So this driver can enable these devices by sending a certain cue to
      load the firmware.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      a2b2a779
    • Takashi Sakamoto's avatar
      ALSA: bebob: Add a quirk of data blocks for MIDI messages for some M-Audio devices · c495a4a3
      Takashi Sakamoto authored
      The firmwares for M-Audio Firewire 410/1814 and ProjectMix I/O has a quirk to
      ignore MIDI messages in data blocks more than 8. This commit uses a flag which
      Fireworks uses for a similar quirk.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      c495a4a3
    • Takashi Sakamoto's avatar
      ALSA: bebob/firewire-lib: Add a quirk of wrong dbc in empty packet for M-Audio... · 9d59124c
      Takashi Sakamoto authored
      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: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      9d59124c
    • Takashi Sakamoto's avatar
      ALSA: bebob: Add support for M-Audio special Firewire series · 3149ac48
      Takashi Sakamoto authored
      This commit allows this driver to support some models which M-Audio produces
      with DM1000 but its firmware is special. They are:
       - Firewire 1814
       - ProjectMix I/O
      
      They have heavily customized firmware. The usual operations can't be applied to
      them. For this reason, this commit adds a model specific member to 'struct
      snd_bebob' and some model specific functions. Some parameters are write-only so
      this commit also adds control interface for applications to set them.
      
      M-Audio special firmware quirks:
       - Just after powering on, they wait to download firmware. This state is
         changed when receiving cue. Then bus reset is generated and the device is
         recognized as a different model with the uploaded firmware.
       - They don't respond against BridgeCo AV/C extension commands. So drivers
         can't get their stream formations and so on.
       - They do not start to transmit packets only by establishing connection but
         also by receiving SIGNAL FORMAT command.
       - After booting up, they often fail to send response against driver's request
         due to mismatch of gap_count.
      
      This module don't support to upload firmware.
      
      Tested-by: Darren Anderson <darrena092@gmail.com> (ProjectMix I/O)
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3149ac48
    • Takashi Sakamoto's avatar
      ALSA: bebob: Add support for M-Audio usual Firewire series · 9076c22d
      Takashi Sakamoto authored
      This commit allows this driver to support some models which M-Audio produces
      with DM1000/DM1000E with usual firmware. They are:
       - Firewire 410
       - Firewire AudioPhile
       - Firewire Solo
       - Ozonic
       - NRV10
       - FirewireLightBridge
      
      According to a person who worked in BridgeCo, some models are produced with
      'Pre-BeBoB'. This means that these products were released before BeBoB was
      officially produced, and later BeBoB specification was formed. So these models
      have some quirks.
      
      M-Audio usual firmware quirks:
       - Just after powering on, 'Firewire 410' waits to download firmware. This
         state is changed when receiving cue. Then bus reset is generated and the
         device is recognized as a different model with the uploaded firmware.
       - 'Firewire Audiophile' also waits to download firmware but its
         vendor id/model id is the same as the one after loading firmware.
       - The information of channel mapping for MIDI conformant data channel is
         invalid against BridgeCo specification.
      
      This commit adds some codes for these quirks but don't support to upload
      firmware.
      
      This commit also adds specific operations to get metering information. The
      metering information also includes status of clock synchronization if the model
      supports to switch source of clock.
      
      The specification of FirewireLightBridge is unknown. So in this time, normal
      operations are applied for this model.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      9076c22d
    • Takashi Sakamoto's avatar
      ALSA: bebob: Add support for Focusrite Saffire/SaffirePro series · 25784ec2
      Takashi Sakamoto authored
      This commit allows this driver to support all of models which Focusrite
      produces with DM1000/BeBoB. They are:
       - Saffire
       - Saffire LE
       - SaffirePro 10 I/O
       - SaffirePro 26 I/O
      
      This commit adds Focusrite specific operations:
      1. Get source of clock
      2. Get/Set sampling frequency
      3. Get metering information
      
      The driver uses these functionalities to read/write specific address by async
      transaction.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      25784ec2
    • Takashi Sakamoto's avatar
      ALSA: bebob: Add support for Yamaha GO series · 8ac98a35
      Takashi Sakamoto authored
      This commit allows this driver to support all of models which Yamaha produced
      with DM1000/BeBoB. They are:
       - GO44
       - GO46
      
      This commit adds Yamaha specific operations. To get source of clock, AV/C Audio
      Subunit command is used.
      
      I note that their appearances are similar to some models of TerraTec; 'Go44' is
      similar to 'PHASE 24 FW' and 'GO46' is similar to 'PHASE X24 FW'. But their
      combination of Audio/Music subunits is a bit different.
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      8ac98a35
    • Takashi Sakamoto's avatar
      ALSA: bebob: Add support for Terratec PHASE, EWS series and Aureon · 326b9cac
      Takashi Sakamoto authored
      This commit allows this driver to support all of models which Terratec produced
      with DM1000/BeBoB. They are:
       - PHASE 24 FW
       - PHASE X24 FW
       - PHASE 88 Rack FW
       - EWS MIC2
       - EWS MIC4
       - Aureon 7.1 Firewire
      
      For Phase series, this commit adds a Terratec specific operation. To get source
      of clock. AV/C Audio Subunit command is used.
      
      For EWS series and Aureon, this module uses normal operations.
      
      Tested-by: Maximilian Engelhardt <maxi@daemonizer.de> (PHASE 24 FW)
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      326b9cac
    • Takashi Sakamoto's avatar
      ALSA: bebob: Prepare for device specific operations · 1fc9522a
      Takashi Sakamoto authored
      This commit is for some devices which have its own operations or quirks.
      
      Many functionality should be implemented in user land. Then this commit adds
      functionality related to stream such as sampling frequency or clock source. For
      help to debug, this commit adds the functionality to get metering information
      if it's available.
      
      To help these functionalities, this commit adds some AV/C commands defined in
      'AV/C Audio Subunit Specification (1394TA).
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      1fc9522a
    • Takashi Sakamoto's avatar
      ALSA: bebob: Add hwdep interface · 618eabea
      Takashi Sakamoto authored
      This interface is designed for mixer/control application. By using hwdep
      interface, the 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>
      618eabea