05 Nov, 2016

1 commit


11 Oct, 2016

1 commit

  • We had inserted a #error into the topology UAPI code to ensure that the
    ABI was not adopted by userspace while final review and testing was
    ongoing. The idea was that some finishing touches would be made to the
    ABI before declaring it stable and suitable for use in production but
    this has not yet happened as more than a year later revisions to the ABI
    are still onging.

    The reality however is that people are shipping topology files in
    production and these ABI changes are causing practical issues for users
    and we can't break userspace. This makes this error pointless so we
    should remove it.

    Signed-off-by: Mark Brown
    Acked-by: Vinod Koul

    Mark Brown
     

01 Oct, 2016

1 commit


30 Sep, 2016

1 commit


26 Sep, 2016

1 commit

  • In commit bf1d1c9b6179 ("ALSA: tlv: add DECLARE_TLV_DB_RANGE()"), the new
    macro was added so that "dB range information can be specified without
    having to count the items manually for TLV_DB_RANGE_HEAD()". In short,
    TLV_DB_RANGE_HEAD macro was obsoleted.

    In commit 46e860f76804 ("ALSA: rename TLV-related macros so that they're
    friendly to user applications"), TLV-related macros are exposed for
    applications in user land to get content of data structured by
    Type/Length/Value shape. The commit managed to expose TLV-related macros
    as many as possible, while obsoleted TLV_DB_RANGE_HEAD() was included to
    the list of exposed macros.

    This situation brings some confusions to application developers because
    they might think all exposed macros have their own purpose and useful for
    applications.

    For the reason, this commit moves TLV_DB_RANGE_HEAD macro from UAPI header
    to a header for kernel land, again. The above commit is done within the
    same development period for kernel 4.9, thus not published yet. This
    commit might certainly brings no confusions to user land.

    Reference: commit bf1d1c9b6179 ("ALSA: tlv: add DECLARE_TLV_DB_RANGE()")
    Reference: commit 46e860f76804 ("ALSA: rename TLV-related macros so that they're friendly to user applications")
    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     

20 Sep, 2016

1 commit


15 Sep, 2016

2 commits

  • In a previous commit, some macros newly appeared to UAPI header for TLV
    packet. These macros have short names and they easily bring name conflist
    to applications. The conflict can be avoided to rename them with a proper
    prefix.

    For this purpose, this commit renames these macros with prefix
    'SNDRV_CTL_TLVD_'.

    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     
  • In ALSA control interface, each element set can have threshold level
    information. This information is transferred between drivers/applications,
    in a shape of tlv packet. The layout of this packet is defined in
    'uapi/sound/asound.h' (struct snd_ctl_tlv):

    struct snd_ctl_tlv {
    unsigned int numid;
    unsigned int length;
    unsigned int tlv[0];
    };

    Data in the payload (struct snd_ctl_tlv.tlv) is expected to be filled
    according to our own protocol. This protocol is described in
    'include/sound/tlv.h'. A layout of the payload is expected as:

    struct snd_ctl_tlv.tlv[0]: one of SNDRV_CTL_TLVT_XXX
    struct snd_ctl_tlv.tlv[1]: Length of data
    struct snd_ctl_tlv.tlv[2...]: data

    Unfortunately, the macro is not exported to user land yet, thus
    applications cannot get to know the protocol.

    Additionally, ALSA control core has a feature called as 'user-defined'
    element set. This allows applications to add/remove arbitrary element sets
    with elements to control devices. Elements in the element set can be
    operated by the same way as the ones added by in-kernel implementation.

    For threshold level information of 'user-defined' element set, applications
    need to register the information to an element set. However, as described
    above, layout of the payload is closed in kernel land. This is quite
    inconvenient, too.

    This commit moves the protocol to UAPI header for TLV.

    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     

23 Aug, 2016

3 commits

  • Topology manifest has lib names and lib count info. So,
    define tokens to represent module private data and parse
    these tokens to fill up the manifest structure in the driver
    accordingly.

    Signed-off-by: Shreyas NC
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Shreyas NC
     
  • Kernel struct snd_soc_pcm_stream, SoC PCM stream information, needs this
    field. Although current topology users don't configure this, we define it
    for future extension.

    Signed-off-by: Mengdong Lin
    Signed-off-by: Mark Brown

    Mengdong Lin
     
  • With recent topology changes in alsa-lib, driver data for
    modules can now be passed in topology conf file using tuples.

    This patch defines vendor specific tokens to describe private
    data with tuples.

    The allowed token types are UUID, string, bool, byte, short and
    word. These tokens will be referenced by the vendor tuples in
    the conf file.

    In the topology conf file, multiple data blocks can be defined
    for a widget which can be either tuple vendor array or blob. So,
    each data block will be preceded by a descriptor to identify
    size and type of block. These descriptors will be token
    value pairs.

    Tokens for module_id and loadable flag are not defined as these
    are read from the DSP FW manifest.

    Signed-off-by: Shreyas NC
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Shreyas NC
     

08 Aug, 2016

1 commit

  • Define the type and ABI struct for Backend DAIs. Add the number of BE DAIs
    to manifest, and some reserved fields for future extensions.

    Pump the version number to 5.

    Topology core will check size of ABI objects to detect version mismatch
    between user space and kernel.

    Signed-off-by: Guneshwor Singh
    Signed-off-by: Mengdong Lin
    Signed-off-by: Mark Brown

    Mengdong Lin
     

31 May, 2016

1 commit


27 May, 2016

1 commit

  • …/sound into for-linus

    ASoC: Updates for v4.7 part 2

    Really sorry about this late pull request. It looks like at the time I
    sent my pull request for v4.7 there was some conflict or other issue
    which caused my script to stop merging the ASoC branches at some point
    after the HDMI changes.

    It's all specific driver updates, including:

    - New drivers for MAX98371 and TAS5720.
    - SPI support for TLV320AIC32x4.
    - TDM support for STI Uniperf IPs.

    This code should all have been in -next prior to the merge window apart
    from some fixes, it dropped out on the 18th.

    Takashi Iwai
     

25 Apr, 2016

1 commit


21 Apr, 2016

1 commit


30 Mar, 2016

1 commit

  • Tuples, a pair of token and value, can be used to define vendor specific
    data, for controls and widgets. This can avoid importing binary data blob
    from other files.

    Vendor specific tuple arrays will be embeded in the private data buffer
    of a control or widget object. To be backward compatible, union is used
    to define the tuple arrays in the existing private data ABI object
    'struct snd_soc_tplg_private'.

    Vendors need to make sure the token values defined by the topology conf
    file match those defined by their driver.

    Now supported tuple types are uuid, string, bool, byte, short and word.

    Signed-off-by: Mengdong Lin
    Signed-off-by: Mark Brown

    Mengdong Lin
     

08 Mar, 2016

1 commit

  • rawmidi devices expose the card number via IOCTLs, which allows to
    find the corresponding device in sysfs.

    The sequencer provides no identifing data. Chromium works around this
    issue by scanning rawmidi as well as sequencer devices and matching
    them by using assumtions, how the kernel register sequencer devices.

    This changes adds support for exposing the card number for kernel clients
    as well as the PID for user client.

    The minor of the API version is changed to distinguish between the zero
    initialised reserved field and card number 0.

    [minor coding style fixes by tiwai]

    Signed-off-by: Martin Koegler
    Acked-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Martin Koegler
     

04 Mar, 2016

1 commit

  • This header is used as-is in the alsa-lib userland library,
    which is portable to other operating systems.
    For this reason, include linux/types.h only on Linux systems.

    Add sys/ioctl.h for _IOR/_IOW/etc. (works at least on *BSD and Solaris).

    Signed-off-by: Thomas Klausner
    Signed-off-by: Takashi Iwai

    Thomas Klausner
     

01 Mar, 2016

1 commit


23 Dec, 2015

2 commits


16 Nov, 2015

1 commit


26 Oct, 2015

1 commit

  • …ie/sound into for-next

    ASoC: Updates for v4.4

    Not much core work here, a few small tweaks to interfaces but mainly the
    changes here are driver ones. Highlights include:

    - Updates to the topology userspace interface
    - Big updates to the Renesas support from Morimoto-san
    - Most of the support for Intel Sky Lake systems.
    - New drivers for Asahi Kasei Microdevices AK4613, Allwinnner A10,
    Cirrus Logic WM8998, Dialog DA7219, Nuvoton NAU8825 and Rockchip
    S/PDIF.
    - A new driver for the Atmel Class D speaker drivers

    Takashi Iwai
     

15 Oct, 2015

2 commits


03 Oct, 2015

9 commits


30 Sep, 2015

2 commits

  • 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: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     
  • 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: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     

20 Aug, 2015

1 commit

  • …nel/git/broonie/sound into for-linus

    ASoC: Disable topology support for v4.2

    The topology code merged in the v4.2 merge window introduced a new ABI
    which was believed to be suitable for use but subsequently additional
    work by the developers of this feature have revealed some problems that
    need to be addressed. In order to allow this to be done without having
    to support the initial ABI add Kconfig to disable the build and also add
    some #error statements to the UAPI header so users can't use them.

    Takashi Iwai
     

19 Aug, 2015

1 commit

  • Since the topology API is still in sufficient flux for changes to be
    identified disable the use of the userspace ABI by adding #error
    statements to the code, ensuring that nobody relies on the headers as
    currently defined. It is expected that this change will be reverted for
    v4.3.

    Signed-off-by: Mark Brown

    Mark Brown
     

06 Aug, 2015

1 commit