[alsa-devel] [MINUTES] Linux Plumbers Audio Mini Conference - Santa Fe 2016
Patrick Lai
plai at codeaurora.org
Sun Nov 13 17:55:59 CET 2016
Thanks Liam for capturing workshop minutes and very happy to meet
everyone who attended the workshop.
Can people upload their slides? Is there a central place to upload the
slides? I am in process of preparing workshop presentation to Qualcomm
team members.
Thanks
Patrick
On 11/03/2016 03:51 PM, Liam Girdwood wrote:
> Minutes below. Comments, corrections and omissions welcomed.
>
> We are missing some links to some of the slides presented. Please reply with a link
> if you have one.
>
> Audio Mini Conference Minutes - Santa Fe 2016
> =============================================
>
> Present: Mark, Rakesh, Liam, Vinod, Mengdong, Pierre, Patrick, Takashi S,
> Javilars, Takashi I, Eric, Dylan, Mauro, Shuah, Charles, Matthew, Lars, Sagar
> and others.
>
>
> Android USB Audio - Eric
> ========================
>
> USB audio is becoming more important as analog jack can be removed. USB stack
> is difficult to optimise for low power/latency audio (too many wake ups with
> USB 1ms tick). Aim to add no_irq (no IRQ for each period) and mmap support in
> USB 3.0 stack to improve power and latency.
>
> USB playback and capture with synchronised start API is missing from stack/ALSA.
> Some patches were posted for synchronised endpoint but never made it to the
> list, Pierre is going to resend.
>
> USB currently defines simple audio endpoints. Support is needed to define more
> complex USB audio endpoints rather than just "playback" and "capture".
>
> Sub 10ms latency (round trip ?) is difficult to achieve on USB due to stack and
> drivers. Mmap may help reduce latency by removing buffer copies.
>
>
> Inter Device Dependencies
> =========================
>
> Kernel Summit joined for this discussion. There is complexity between devices,
> more than just a parent/child relationship for some devices making it difficult
> to order probing and PM ops.
>
> Rafael, has created patch set to solve dependences for PM ops in Gregs tree,
> the patches could also be used for probing. The patches add an API to allow
> device relationships to be established as a graph. This API supports non
> parent/child relationships to and allows PM ops to run in a deterministic
> sequence. Relationship dependency discovery needs to come from DT/ACPI and
> will need standardised bindings.
>
> Mark described the current audio workarounds where the machine driver specifies
> relationships and deferred probe is used to manage the probing sequence.
> Some people do not like the high number deferred probe messages in dmesg.
>
> Relation graphs must be ordered so that cycles to do not exist.
>
> Next steps are to use Rafaels patches for probe ordering.
>
>
> AV Sync - Eric
> ===============
>
> A few frame counters are 32 bit (compressed API) and should be 64 bit.
> Vinod will update compressed API to 64 bit.
>
> Timers should also consider boot time and suspend/resume time as it's currently
> difficult to keep AV syn over suspend/resume cycles.
>
> AV sync on TV's hacky atm, we need AV sync API in ALSA. Takashi noted this was
> long time problem that needs solution. Some options for AV sync were pseudo
> transport streams (like existing mpeg format) but these were difficult for
> mmap(). Other devices had used runtime PLL updating with patches sent in the
> past ?
>
> Compressed API could be used to send transport stream for AV sync.
>
>
> HDMI/DP glue to GFX - Vinod
> ===========================
>
> Currently several interlaces exist to pass DP/HDMI events and information
> between audio and GFX stacks/drivers. ARM devices using pdata interface,
> i915 has another solution, BYT uses another interface. Needs to be consistent
> for user space ELD notification, jack detection/mapping. Currently HDA drivers
> have hack to assist userspace (PCM5).
>
> There are also difficulties mapping PCMs, channels and jacks to multiple
> HDMI/DP devices.
>
> Tikashi and Vinod to investigate best solutions.
>
>
> DP-MST - Vinod
> ===============
>
> Jack notifications more difficult with MST (extra complexity). How do we map
> multiple jacks from multiple monitors, disable unused pins when not rendering ?
> The 5.1 use case for gaming has to split channels to multiple monitors.
> Decision is that new devices would export topology to userpace so that userspace
> know the jack, channel mappings.
>
>
> Soundwire Support - Rakesh and Pierre
> =====================================
>
> Soundwire new hardware interface for audio devices. Needs new subsystem support
> for soundwire master and slave devices. Hardik has posted initial RFC to the
> list for review.
>
> Rakesh presented slides . Link to the slides ?
>
> Some people had reviewed the RFC. Some changes to strct device/driver usage
> required to make it more like other subsystems upstream. There is also need
> to deal with devices that can power off after or before enumeration. Some
> confusion over the terminology used too, compared to other bus systems like I2C.
> Master should be device and not driver. Top level feedback is that it does not
> look like bus code.
>
> There is also a need to consider objects in DT/ACPI. AR Vinod, to look at STIO.
>
>
> Topology and UCM file deployment - Vinod, Mengdong, Liam
> ========================================================
>
> Difficult to release and deploy topology/ucm updates with alsa-lib cadence.
> Distros to be contacted for best deployment where cadence can be faster than
> alsa-lib. Liam and Vinod to contact distro package maintainers.
>
>
> UCM - Liam, Mengdong
> ====================
>
> Which driver card name string to change, there are 3 - long, short and driver.
> CRAS uses the string in the []. Not sure about PA.
>
> Liam to create patch that includes machine name in card name string.
>
> Mengdong has added #include and #define like support to topology. Mengdong
> will port this to UCM too so that a library of codecs can be built up and
> included by the machine ucm files. e.g.
>
> Asus T100 UCM would include rt5640 codec and baytrail DSP UCM configs.
>
>
> Tracepoint for audio - Lars, Takashi S
> ======================================
>
> Lars and Takashi S have similar patchsets. Easy to make tooling for parsing
> traceout. This could replace printk and snd_printk, but builds bigger binary.
> Option to disable can be added to reduce size. Uses ftrace output and timestamp.
> Used in the PCM operations. Patches are still WiP and will be posted as RFC when
> ready.
>
>
> Dropping Dice Driver - Takashi S
> ================================
>
> Dice hardware has serious problems making it unusable. Takashi S to discuss with
> Clemens regarding any potential work around for HW issue. If no work around is
> found then it could be marked as broken or moved to staging ?
>
>
> Sound Open Firmware - Liam
> ==========================
>
> Liam introduced SOF and took QA. Liam is also working on an ELF executable
> firmware image that can run on the developers host PC.
>
> http://alsa-project.org/main/index.php/Firmware
>
>
> Paravirtualisation of Audio Drivers - Rakesh
> ============================================
>
> Safety critical systems have requirements to play safety critcal sounds (like
> alarms, warnings) and regular non safety critical sound like media. Rakesh
> proposed a Xen hypervisor method to guarantee the safety critical audio would
> always take precedence over the non safety critical audio.
>
> Xen would run a privileged OS (for safety critical) and unprivileged OS (for
> non safety critical audio). A para virtualised audio driver would allow the
> Unprivileged OS to play audio on the privileged OS.
>
> Lars suggested Libvirt and KVM may make this task far easier and less restricted
> than using Xen. Rakesh to investigate further.
>
>
> Userspace driver for Firewire - Takashi S
> =========================================
>
> Need to represent mixers for some USB and FW devices in userspace. Why ?.
> Possibility of using topology for userspace. Nobody keen on exposing kernel APIs
> as userspavce ABIs. Possibility of looking at libvirt interfaces for userspace
> drivers many similarities. Kernel component, already use FW sound card.
>
> Mixer API not suitable, many bus so use control API.
>
>
> ALSA Stream Configuration Domains - Lars
> ========================================
>
> ALSA has powerful but complex system to configure and constrain stream
> configurations at runtime but it does not scale well on modern ASoC based
> sound devices with multiple components and DAIs.
>
> Lars presented a solution that can break complex sound cards down to simple
> domains where configuration can be set by userspace to exactly match each
> use case. Userspace would also be able to read the configuration in each domain.
> New APIs calls would be needed in alsa-lib to achieve this.
>
> Lars also requested that ASoC become a first class citizen with ALSA since
> most new sound cards are ASoC based. Proposal was accepted.
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
More information about the Alsa-devel
mailing list