mbox series

[0/8] ASoC: SOF: Intel: Add support for ACE3+ mic privacy

Message ID 20250306133527.16722-1-peter.ujfalusi@linux.intel.com (mailing list archive)
Headers show
Series ASoC: SOF: Intel: Add support for ACE3+ mic privacy | expand

Message

Peter Ujfalusi March 6, 2025, 1:35 p.m. UTC
Hi,

ACE3 (Panther Lake) introduced support for microphone privacy feature which
can - in hardware - mute incoming audio data based on a state of a physical
switch.
The change in the privacy state is delivered through interface IP blocks
and can only be handled by the link owner.
In Intel platforms Soundwire is for example host owned, so the interrupt
can only be handled by the host.

Since the input stream is going to be muted by hardware, the host needs to
send a message to firmware about the change in privacy so it can execute a
fade out/in to enhance user experience.

The support for microphone privacy can be queried from the HW_CONFIG data
under the INTEL_MIC_PRIVACY_CAP tuple. This is Intel specific data, the
core will pass it to platform code if the intel_configure_mic_privacy()
callback is provided.

Platform code can call sof_ipc4_mic_privacy_state_change() to send the IPC
message to the firmware on state change.


Regards,
Peter
----
Peter Ujfalusi (8):
  ASoC: SOF: Intel: mtl: Split up dsp_ops setup code
  ASoC: SOF: Intel: lnl/ptl: Only set dsp_ops which differs from MTL
  ASoC: SOF: Intel: mtl: Stop exporting dsp_ops callback functions
  ASoC: SOF: Intel: Create ptl.c as placeholder for Panther Lake
    features
  ASoC: SOF: ipc4: Add support for Intel HW managed mic privacy
    messaging
  ASoC: SOF: Intel: hda-mlink: Add support for mic privacy in VS SHIM
    registers
  ASoC: SOF: hda/shim: Add callbacks to handle mic privacy change for
    sdw
  ASoC: SOF: Intel: ptl: Add support for mic privacy

 include/sound/hda-mlink.h       |  25 +++++++
 include/sound/sof/ipc4/header.h |  13 ++++
 sound/soc/sof/intel/Makefile    |   2 +-
 sound/soc/sof/intel/hda-mlink.c | 127 ++++++++++++++++++++++++++++++++
 sound/soc/sof/intel/hda.c       |  34 +++++++++
 sound/soc/sof/intel/hda.h       |   4 -
 sound/soc/sof/intel/lnl.c       | 117 ++++++-----------------------
 sound/soc/sof/intel/lnl.h       |   6 ++
 sound/soc/sof/intel/mtl.c       |  74 ++++++++-----------
 sound/soc/sof/intel/mtl.h       |  15 +---
 sound/soc/sof/intel/pci-lnl.c   |  12 ++-
 sound/soc/sof/intel/pci-mtl.c   |   8 ++
 sound/soc/sof/intel/pci-ptl.c   |  17 +++--
 sound/soc/sof/intel/ptl.c       | 106 ++++++++++++++++++++++++++
 sound/soc/sof/intel/ptl.h       |  19 +++++
 sound/soc/sof/intel/shim.h      |   2 +
 sound/soc/sof/ipc4-loader.c     |  33 +++++++++
 sound/soc/sof/ipc4-priv.h       |   5 ++
 sound/soc/sof/ipc4.c            |  18 +++++
 19 files changed, 470 insertions(+), 167 deletions(-)
 create mode 100644 sound/soc/sof/intel/ptl.c
 create mode 100644 sound/soc/sof/intel/ptl.h