1. 26 May, 2014 2 commits
    • Takashi Sakamoto's avatar
      ALSA: fireworks: Add command/response functionality into hwdep interface · 555e8a8f
      Takashi Sakamoto authored
      This commit adds two functionality for hwdep interface, adds two parameters for
      this driver, add a node for proc interface.
      
      To receive responses from devices, this driver already allocate own callback
      into initial memory space in host controller. This means no one can allocate
      its own callback to the address. So this driver must give a way for user
      applications to receive responses.
      
      This commit adds a functionality to receive responses via hwdep interface. The
      application can receive responses to read from this interface. To achieve this,
      this commit adds a buffer to queue responses. The default size of this buffer is
      1024 bytes. This size can be changed to give preferrable size to
      'resp_buf_size' parameter for this driver. The application should notice rest
      of space in this buffer because this driver don't push responses when this
      buffer has no space.
      
      Additionaly, this commit adds a functionality to transmit commands via hwdep
      interface. The application can transmit commands to write into this interface.
      I note that the application can transmit one command at once, but can receive
      as many responses as possible untill the user-buffer is full.
      
      When using these interfaces, the application must keep maximum number of
      sequence number in command within the number in firewire.h because this driver
      uses this number to distinguish the response is against the command by the
      application or this driver.
      
      Usually responses against commands which the application transmits are pushed
      into this buffer. But to enable 'resp_buf_debug' parameter for this driver, all
      responses are pushed into the buffer. When using this mode, I reccomend to
      expand the size of buffer.
      
      Finally this commit adds a new node into proc interface to output status of the
      buffer.
      Signed-off-by: 's avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: 's avatarTakashi Iwai <tiwai@suse.de>
      555e8a8f
    • Takashi Sakamoto's avatar
      ALSA: fireworks: Add transaction and some commands · bde8a8f2
      Takashi Sakamoto authored
      Fireworks uses own command and response. This commit adds functionality to
      transact and adds some commands required for sound card instance and kernel
      streaming.
      
      There are two ways to deliver substance of this transaction:
      1.AV/C vendor dependent command for command/response
      2.Async transaction to specific addresses for command/response
      
      By way 1, I confirm AudioFire12 cannot correctly response to some commands with
      firmware version 5.0 or later. This is also confirmed by FFADO. So this driver
      implement way 2.
      
      The address for response gives an issue. When this driver allocate own callback
      function into the address, then no one can allocate its own callback function.
      This situation is not good for applications in user-land. This issue is solved
      in later commit.
      
      I note there is a command to change the address for response if the device
      supports. But this driver uses default value. So users should not execute this
      command as long as hoping this driver works correctly.
      Signed-off-by: 's avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: 's avatarTakashi Iwai <tiwai@suse.de>
      bde8a8f2