03 Aug, 2018

2 commits

  • [ Upstream commit 933e1c4a667103c4d10ebdc9505a0a6abd8c3fbd ]

    Clock gating parameter is a part of `dai_fmt`. It is supported by
    `alsa-lib` when creating a topology binary file, but ignored by kernel
    when loading this topology file.

    After applying this commit, the clock gating parameter is not ignored any
    more. This solution is backwards compatible. The existing behaviour is
    not broken, because by default the parameter value is 0 and is ignored.

    snd_soc_tplg_hw_config.clock_gated = 0 => no effect
    snd_soc_tplg_hw_config.clock_gated = 1 => SND_SOC_DAIFMT_GATED
    snd_soc_tplg_hw_config.clock_gated = 2 => SND_SOC_DAIFMT_CONT

    For example, the following config, based on
    alsa-lib/src/conf/topology/broadwell/broadwell.conf, is now supported:

    ~~~~
    SectionHWConfig."CodecHWConfig" {
    id "1"
    format "I2S" # physical audio format.
    pm_gate_clocks "true" # clock can be gated
    }

    SectionLink."Codec" {

    # used for binding to the physical link
    id "0"

    hw_configs [
    "CodecHWConfig"
    ]

    default_hw_conf_id "1"
    }
    ~~~~

    Signed-off-by: Kirill Marinushkin
    Reviewed-by: Pierre-Louis Bossart
    Cc: Jaroslav Kysela
    Cc: Takashi Iwai
    Cc: Mark Brown
    Cc: Pan Xiuli
    Cc: Liam Girdwood
    Cc: linux-kernel@vger.kernel.org
    Cc: alsa-devel@alsa-project.org
    Signed-off-by: Mark Brown
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Kirill Marinushkin
     
  • [ Upstream commit a941e2fab3207cb0d57dc4ec47b1b12c8ea78b84 ]

    The values of bclk and fsync are inverted WRT the codec. But the existing
    solution already works for Broadwell, see the alsa-lib config:

    `alsa-lib/src/conf/topology/broadwell/broadwell.conf`

    This commit provides the backwards-compatible solution to fix this misuse.

    Signed-off-by: Kirill Marinushkin
    Reviewed-by: Pierre-Louis Bossart
    Tested-by: Pan Xiuli
    Tested-by: Pierre-Louis Bossart
    Cc: Jaroslav Kysela
    Cc: Takashi Iwai
    Cc: Mark Brown
    Cc: Liam Girdwood
    Cc: linux-kernel@vger.kernel.org
    Cc: alsa-devel@alsa-project.org
    Signed-off-by: Mark Brown
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Kirill Marinushkin
     

04 Nov, 2017

1 commit

  • After the SPDX license tags were added a number of tooling headers got out of
    sync with their kernel variants, generating lots of build warnings.

    Sync them:

    - tools/arch/x86/include/asm/disabled-features.h,
    tools/arch/x86/include/asm/required-features.h,
    tools/include/linux/hash.h:

    Remove the SPDX tag where the kernel version does not have it.

    - tools/include/asm-generic/bitops/__fls.h,
    tools/include/asm-generic/bitops/arch_hweight.h,
    tools/include/asm-generic/bitops/const_hweight.h,
    tools/include/asm-generic/bitops/fls.h,
    tools/include/asm-generic/bitops/fls64.h,
    tools/include/uapi/asm-generic/ioctls.h,
    tools/include/uapi/asm-generic/mman-common.h,
    tools/include/uapi/sound/asound.h,
    tools/include/uapi/linux/kvm.h,
    tools/include/uapi/linux/perf_event.h,
    tools/include/uapi/linux/sched.h,
    tools/include/uapi/linux/vhost.h,
    tools/include/uapi/sound/asound.h:

    Add the SPDX tag of the respective kernel header.

    - tools/include/uapi/linux/bpf_common.h,
    tools/include/uapi/linux/fcntl.h,
    tools/include/uapi/linux/hw_breakpoint.h,
    tools/include/uapi/linux/mman.h,
    tools/include/uapi/linux/stat.h,

    Change the tag to the kernel header version:

    -/* SPDX-License-Identifier: GPL-2.0 */
    +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

    Also sync other header details:

    - include/uapi/sound/asound.h:

    Fix pointless end of line whitespace noise the header grew in this cycle.

    - tools/arch/x86/lib/memcpy_64.S:

    Sync the code and add tools/include/asm/export.h with dummy wrappers
    to support building the kernel side code in a tooling header environment.

    - tools/include/uapi/asm-generic/mman.h,
    tools/include/uapi/linux/bpf.h:

    Sync other details that don't impact tooling's use of the ABIs.

    Acked-by: Arnaldo Carvalho de Melo
    Cc: linux-kernel@vger.kernel.org
    Cc: Greg Kroah-Hartman
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: Namhyung Kim
    Cc: Jiri Olsa
    Cc: Stephen Rothwell
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

02 Nov, 2017

2 commits

  • Many user space API headers have licensing information, which is either
    incomplete, badly formatted or just a shorthand for referring to the
    license under which the file is supposed to be. This makes it hard for
    compliance tools to determine the correct license.

    Update these files with an SPDX license identifier. The identifier was
    chosen based on the license information in the file.

    GPL/LGPL licensed headers get the matching GPL/LGPL SPDX license
    identifier with the added 'WITH Linux-syscall-note' exception, which is
    the officially assigned exception identifier for the kernel syscall
    exception:

    NOTE! This copyright does *not* cover user programs that use kernel
    services by normal system calls - this is merely considered normal use
    of the kernel, and does *not* fall under the heading of "derived work".

    This exception makes it possible to include GPL headers into non GPL
    code, without confusing license compliance tools.

    Headers which have either explicit dual licensing or are just licensed
    under a non GPL license are updated with the corresponding SPDX
    identifier and the GPLv2 with syscall exception identifier. The format
    is:
    ((GPL-2.0 WITH Linux-syscall-note) OR SPDX-ID-OF-OTHER-LICENSE)

    SPDX license identifiers are a legally binding shorthand, which can be
    used instead of the full boiler plate text. The update does not remove
    existing license information as this has to be done on a case by case
    basis and the copyright holders might have to be consulted. This will
    happen in a separate step.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne. See the previous patch in this series for the
    methodology of how this patch was researched.

    Reviewed-by: Kate Stewart
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Many user space API headers are missing licensing information, which
    makes it hard for compliance tools to determine the correct license.

    By default are files without license information under the default
    license of the kernel, which is GPLV2. Marking them GPLV2 would exclude
    them from being included in non GPLV2 code, which is obviously not
    intended. The user space API headers fall under the syscall exception
    which is in the kernels COPYING file:

    NOTE! This copyright does *not* cover user programs that use kernel
    services by normal system calls - this is merely considered normal use
    of the kernel, and does *not* fall under the heading of "derived work".

    otherwise syscall usage would not be possible.

    Update the files which contain no license information with an SPDX
    license identifier. The chosen identifier is 'GPL-2.0 WITH
    Linux-syscall-note' which is the officially assigned identifier for the
    Linux syscall exception. SPDX license identifiers are a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne. See the previous patch in this series for the
    methodology of how this patch was researched.

    Reviewed-by: Kate Stewart
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

01 Sep, 2017

1 commit


25 Aug, 2017

1 commit

  • The module private data can be modelled independent of its instances so
    that it can be reused by the module instances. So move module data to
    common manifest which can be referenced by the module instances.

    This requires new tokens to be defined to accommodate these changes. The
    new tokens will specify buffer sizes, DSP cycles and respective indexes
    corresponding to the pcm params in the topology manifest so that driver
    need not compute them.

    Signed-off-by: Shreyas NC
    Signed-off-by: Guneshwor Singh
    Acked-By: Vinod Koul
    Signed-off-by: Mark Brown

    Shreyas NC
     

04 Jul, 2017

1 commit

  • ASoC: Updates for v4.13

    The big news with this release is the of-graph card, this provides a
    replacement for simple-card that is much more flexibile and scalable,
    allowing many more systems to use a generic sound card than was possible
    before:

    - The of-graph card, finally merged after a long and dedicated effort
    by Morimoto-san.
    - New widget types intended mainly for use with DSPs.
    - New drivers for Allwinner V3s SoCs, Ensonic ES8316, several classes
    of x86 machine, Rockchip PDM controllers, STM32 I2S and S/PDIF
    controllers and ZTE AUD96P22 CODECs.

    Takashi Iwai
     

03 Jul, 2017

1 commit


30 Jun, 2017

1 commit


27 Jun, 2017

1 commit

  • We have an ioctl to inform the PCM protocol version the running kernel
    supports, but there is no way to know which protocol version the
    user-space can understand. This lack of information caused headaches
    in the past when we tried to extend the ABI. For example, because we
    couldn't guarantee the validity of the reserved bytes, we had to
    introduce a new ioctl SNDRV_PCM_IOCTL_STATUS_EXT for assigning a few
    new fields in the formerly reserved bits. If we could know that it's
    a new alsa-lib, we could assume the availability of the new fields,
    thus we could have reused the existing SNDRV_PCM_IOCTL_STATUS.

    In order to improve the ABI extensibility, this patch adds a new ioctl
    for user-space to inform its supporting protocol version to the
    kernel. By reporting the supported protocol from user-space, the
    kernel can judge which feature should be provided and which not.

    With the addition of the new ioctl, the PCM protocol version is bumped
    to 2.0.14, too. User-space checks the kernel protocol version via
    SNDRV_PCM_INFO_PVERSION, then it sets the supported version back via
    SNDRV_PCM_INFO_USER_PVERSION.

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

    Takashi Iwai
     

23 Jun, 2017

1 commit

  • Currently x86 platforms use the PCM status/control mmaps for
    transferring the PCM status and appl_ptr between kernel and
    user-spaces. The mmap is a most efficient way of communication, but
    it has a drawback per its nature, namely, it can't notify the change
    explicitly to kernel.

    The lack of appl_ptr update notification is a problem on a few
    existing drivers, but it's mostly a small issue and negligible.
    However, a new type of driver that uses DSP for a deep buffer
    management requires the exact position of appl_ptr for calculating the
    buffer prefetch size, and the asynchronous appl_ptr update between
    kernel and user-spaces becomes a significant problem for it.

    How can we enforce user-space to report the appl_ptr update? The way
    is relatively simple. Just by disabling the PCM control mmap, the
    user-space is supposed to fall back to the mode using SYNC_PTR ioctl,
    and the kernel gets control over that. This fallback mode is used in
    all non-x86 platforms as default, and also in the 32bit compatible
    model on all platforms including x86. It's been implemented already
    over a decade, so we can say it's fairly safe and stably working.

    With the help of the knowledge above, this patch introduces a new PCM
    info flag SNDRV_PCM_INFO_SYNC_APPLPTR for achieving the appl_ptr sync
    from user-space. When a driver sets this flag at open, the PCM status
    / control mmap is disabled, which effectively switches to SYNC_PTR
    mode in user-space side.

    In this version, both PCM status and control mmaps are disabled
    although only the latter, control mmap, is the target. It's because
    the current alsa-lib implementation supposes that both status and
    control mmaps are always coupled, thus it handles a fatal error when
    only one of them fails.

    Of course, the disablement of the status/control mmaps may bring a
    slight performance overhead. Thus, as of now, this should be used
    only for the dedicated devices that deserves.

    Note that the disablement of mmap is a sort of workaround. In the
    later patch, we'll introduce the way to identify the protocol version
    alsa-lib supports, and keep mmap working while the sync_ptr is
    performed together.

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

    Takashi Iwai
     

19 Jun, 2017

1 commit

  • With this patch, the dma buffer size is fetched from topology binary. This
    buffer size is applicable for gateway copier modules.

    Now that we can configure DSP dma buffer size, the device can support deep
    buffer playback. DSP fetches large buffer and can result fewer wakes,
    which helps in power reduction.

    Signed-off-by: Ramesh Babu
    Signed-off-by: Subhransu S. Prusty
    Acked-By: Vinod Koul
    Signed-off-by: Mark Brown

    Ramesh Babu
     

14 May, 2017

1 commit


10 May, 2017

1 commit

  • Regularly, when a new header is created in include/uapi/, the developer
    forgets to add it in the corresponding Kbuild file. This error is usually
    detected after the release is out.

    In fact, all headers under uapi directories should be exported, thus it's
    useless to have an exhaustive list.

    After this patch, the following files, which were not exported, are now
    exported (with make headers_install_all):
    asm-arc/kvm_para.h
    asm-arc/ucontext.h
    asm-blackfin/shmparam.h
    asm-blackfin/ucontext.h
    asm-c6x/shmparam.h
    asm-c6x/ucontext.h
    asm-cris/kvm_para.h
    asm-h8300/shmparam.h
    asm-h8300/ucontext.h
    asm-hexagon/shmparam.h
    asm-m32r/kvm_para.h
    asm-m68k/kvm_para.h
    asm-m68k/shmparam.h
    asm-metag/kvm_para.h
    asm-metag/shmparam.h
    asm-metag/ucontext.h
    asm-mips/hwcap.h
    asm-mips/reg.h
    asm-mips/ucontext.h
    asm-nios2/kvm_para.h
    asm-nios2/ucontext.h
    asm-openrisc/shmparam.h
    asm-parisc/kvm_para.h
    asm-powerpc/perf_regs.h
    asm-sh/kvm_para.h
    asm-sh/ucontext.h
    asm-tile/shmparam.h
    asm-unicore32/shmparam.h
    asm-unicore32/ucontext.h
    asm-x86/hwcap2.h
    asm-xtensa/kvm_para.h
    drm/armada_drm.h
    drm/etnaviv_drm.h
    drm/vgem_drm.h
    linux/aspeed-lpc-ctrl.h
    linux/auto_dev-ioctl.h
    linux/bcache.h
    linux/btrfs_tree.h
    linux/can/vxcan.h
    linux/cifs/cifs_mount.h
    linux/coresight-stm.h
    linux/cryptouser.h
    linux/fsmap.h
    linux/genwqe/genwqe_card.h
    linux/hash_info.h
    linux/kcm.h
    linux/kcov.h
    linux/kfd_ioctl.h
    linux/lightnvm.h
    linux/module.h
    linux/nbd-netlink.h
    linux/nilfs2_api.h
    linux/nilfs2_ondisk.h
    linux/nsfs.h
    linux/pr.h
    linux/qrtr.h
    linux/rpmsg.h
    linux/sched/types.h
    linux/sed-opal.h
    linux/smc.h
    linux/smc_diag.h
    linux/stm.h
    linux/switchtec_ioctl.h
    linux/vfio_ccw.h
    linux/wil6210_uapi.h
    rdma/bnxt_re-abi.h

    Note that I have removed from this list the files which are generated in every
    exported directories (like .install or .install.cmd).

    Thanks to Julien Floret for the tip to get all
    subdirs with a pure makefile command.

    For the record, note that exported files for asm directories are a mix of
    files listed by:
    - include/uapi/asm-generic/Kbuild.asm;
    - arch//include/uapi/asm/Kbuild;
    - arch//include/asm/Kbuild.

    Signed-off-by: Nicolas Dichtel
    Acked-by: Daniel Vetter
    Acked-by: Russell King
    Acked-by: Mark Salter
    Acked-by: Michael Ellerman (powerpc)
    Signed-off-by: Masahiro Yamada

    Nicolas Dichtel
     

06 Apr, 2017

1 commit

  • This commit adds hwdep interface so as the other drivers for audio and
    music units on IEEE 1394 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
     

28 Mar, 2017

2 commits

  • MOTU FireWire series can transfer messages to registered address. These
    messages are transferred for the status of internal clock synchronization
    just after starting streams.

    When the synchronization is stable, it's 0x01ffffff. Else, it's 0x05ffffff.

    This commit adds a functionality for user space applications to receive
    content of the message.

    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
     

12 Dec, 2016

2 commits


09 Nov, 2016

1 commit


05 Nov, 2016

4 commits

  • Mark Brown
     
  • Add a new flag bit SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP to link flags.
    If a link is used for voice wake up, users can set this flag bit and
    topology will set the link's 'ignore_suspend' to true.

    This ABI update is backward compatible.

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

    Mengdong Lin
     
  • Rename the ABI struct and type because they are for configuring physical
    DAIs, not only backend DAIs since users may not need DPCM:
    - Rename struct snd_soc_tplg_be_dai to snd_soc_tplg_dai.
    - Rename type SND_SOC_TPLG_TYPE_BE_DAI to SND_SOC_TPLG_TYPE_DAI.

    This code refactoring is backward compatible because:
    - Both layout of the struct and type value has no change. Kernel can
    find the same type value and map to same data layout.
    - This struct is not in ABI v4 at all. Now the user space uses ABI v4.

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

    Mengdong Lin
     
  • The following fields are added to physical link configuration struct
    (snd_soc_tplg_link_config) in ABI v5:

    - name and stream name
    Topology will use them to find an existing physical link and configure
    it.

    - HW configurations
    Define the types and ABI struct for runtime supported hardware configs
    of physical DAI links, e.g. audio hardware formats. The default HW
    config ID will help topology to find the DAI format to set on init.
    Topology provides this as a fallback if such HW settings are not
    available in ACPI or device tree, to avoid hard code in drivers. It's
    only for config items that can be programmed by SW or FW, not for
    physical things like link connections or GPIO used for HP etc.

    - flags and private data
    The flags will be used to configure an existing physical DAI link.
    The private data is reserved for future extension.

    NOTE: Current kernel has no support for physical links. A later patch
    will add support for configuring physical links and make the support
    backward compatible for ABI v4.

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

    Mengdong Lin
     

04 Nov, 2016

4 commits

  • Not all use cases can support Doi3. Only certain use cases like hot word
    detection, deep buffering can support D0i3 based on resource requirement.

    So, pass the D0i3 capability for the FE/BE copier using topology. This will
    be used to take a decision for D0i3 mode entry/exit.

    Signed-off-by: Jayachandran B
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Vinod Koul
     
  • For D0i3, we need to tell DSP to run the pipelines in LP mode. This
    information is kept in topology and passed to driver as an attribute
    for pipe.

    So add a new tuple for lpmode and program the pipe based on value set.

    Signed-off-by: Jayachandran B
    Signed-off-by: Vinod Koul
    Signed-off-by: Mark Brown

    Vinod Koul
     
  • This is the remaining update to PCM ABI object of version 5.

    The flags will be applied to FE (Front End) links and can also be used
    by physical links. The private data is reserved for future extension, so
    offset update will add the private data size.

    Now user space is using ABI v4, and the previous patch "ASoC: topology:
    make PCM backward compatible from ABI v4" can assure the backward
    compatibility.

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

    Mengdong Lin
     
  • Users start to use topology ABI from v4. ABI v5 updated existing manifest
    and PCM elements. Two previous patches can support these ABI updates in a
    backward compatible way. So if the topology file from user space is
    generated by ABI v4, kernel will no longer quit but continue parsing.

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

    Mengdong Lin
     

21 Oct, 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