PostMixerAnalogPlaybackFirBytes "N/A"
PostMixerAnalogPlaybackDrcBytes "N/A"
PostMixerAnalogPlaybackDrcSwitch "N/A"
+ Dmic0CaptureIirBytes "N/A"
+ Dmic0CaptureDrcBytes "N/A"
+ Dmic0CaptureDrcSwitch "N/A"
+ Dmic0CaptureBeamformerBytes "N/A"
+ Dmic0CaptureBeamformerBeamSwitch "N/A"
+ Dmic0CaptureBeamformerBeamAngleSet "N/A"
}
If.SOFIPCVer {
}
}
+If.SOFDmic0Proc {
+ Condition {
+ Type ControlExists
+ Control "name='DMIC0 Capture IIR Eq'"
+ }
+ True.Define {
+ Dmic0CaptureIirBytes "DMIC0 Capture IIR Eq"
+ Dmic0CaptureDrcBytes "Dmic0 Capture DRC bytes"
+ Dmic0CaptureDrcSwitch "Dmic0 Capture DRC switch"
+ Dmic0CaptureBeamformerBytes "Dmic0 Capture TDFB bytes"
+ Dmic0CaptureBeamformerBeamSwitch "Dmic0 Capture TDFB beam switch"
+ Dmic0CaptureBeamformerBeamAngleSet "Dmic0 Capture TDFB angle set enum"
+ }
+}
+
If.SOFPath {
Condition { Type AlwaysTrue }
True.Define {
PostMixerAnalogPlaybackHeadphoneIirBlob "${var:BlobPath}/eq_iir/pass.blob"
PostMixerAnalogPlaybackHeadphoneFirBlob "${var:BlobPath}/eq_fir/pass.blob"
PostMixerAnalogPlaybackHeadphoneDrcBlob "${var:BlobPath}/drc/passthrough.blob"
+ # Leave Dmic0 default blobs empty to not override blobs in topology by default.
+ # The DMI ID based customization in blobs/sof/user_configs or
+ # blobs/sof/product_configs may set these as FixedBootConfig.
+ Dmic0CaptureDrcBlob ""
+ Dmic0CaptureBeamformerBlob ""
+ Dmic0CaptureIirBlob ""
ConfPathFromDMI "${var:SOFVendor}/${var:SOFProduct}.conf"
SOFProductConfig "/blobs/sof/product_configs/${var:ConfPathFromDMI}"
SOFConfFullPath "${ConfTopDir}${var:SOFProductConfig}"
}
}
}
+
+DefineMacro.SofDrcBootSetup {
+ Define.ep_SwitchVar "${var:__endpoint}${var:__direction}DrcSwitch"
+ Define.ep_BytesVar "${var:__endpoint}${var:__direction}DrcBytes"
+ Define.ep_BlobVar "${var:__endpoint}${var:__direction}DrcBlob"
+ Define.EndpointDrcSwitch "${var:$ep_SwitchVar}"
+ Define.EndpointDrcBytes "${var:$ep_BytesVar}"
+ Define.EndpointDrcBlob "${var:$ep_BlobVar}"
+ If.EndpointMicDrc {
+ Condition {
+ Type ControlExists
+ Control "name='${var:EndpointDrcSwitch}'"
+ }
+ True {
+ If.EndpointDrcBlobDefined {
+ Condition {
+ Type String
+ Empty "${var:EndpointDrcBlob}"
+ }
+ False.FixedBootSequence [
+ #shell "/bin/echo 'Setting ${var:EndpointDrcBytes} to ${var:EndpointDrcBlob}' >> /tmp/alsa-ucm.txt"
+ cset-tlv "name='${var:EndpointDrcBytes}' ${var:EndpointDrcBlob}"
+ ]
+ }
+ BootSequence [
+ #shell "/bin/echo 'Switching ${var:EndpointDrcSwitch} on' >> /tmp/alsa-ucm.txt"
+ cset "name='${var:EndpointDrcSwitch}' on"
+ ]
+ }
+ }
+}
+
+DefineMacro.SofBeamformerBootSetup {
+ Define.ep_BeamSwitchVar "${var:__endpoint}${var:__direction}BeamformerBeamSwitch"
+ Define.ep_BeamAngleSetVar "${var:__endpoint}${var:__direction}BeamformerBeamAngleSet"
+ Define.ep_BytesVar "${var:__endpoint}${var:__direction}BeamformerBytes"
+ Define.ep_BlobVar "${var:__endpoint}${var:__direction}BeamformerBlob"
+ Define.EndpointBeamformerBeamSwitch "${var:$ep_BeamSwitchVar}"
+ Define.EndpointBeamformerBeamAngleSet "${var:$ep_BeamAngleSetVar}"
+ Define.EndpointBeamformerBytes "${var:$ep_BytesVar}"
+ Define.EndpointBeamformerBlob "${var:$ep_BlobVar}"
+ If.EndpointMicBeamformer {
+ Condition {
+ Type ControlExists
+ Control "name='${var:EndpointBeamformerBeamSwitch}'"
+ }
+ True {
+ If.EndpointBeamformerBlobDefined {
+ Condition {
+ Type String
+ Empty "${var:EndpointBeamformerBlob}"
+ }
+ False.FixedBootSequence [
+ #shell "/bin/echo 'Setting ${var:EndpointBeamformerBytes} to ${var:EndpointBeamformerBlob}' >> /tmp/alsa-ucm.txt"
+ cset-tlv "name='${var:EndpointBeamformerBytes}' ${var:EndpointBeamformerBlob}"
+ ]
+ }
+ BootSequence [
+ #shell "/bin/echo 'Switching ${var:EndpointBeamformerBeamSwitch} on' >> /tmp/alsa-ucm.txt"
+ #shell "/bin/echo 'Setting ${var:EndpointBeamformerBeamAngleSet} 0' >> /tmp/alsa-ucm.txt"
+ cset "name='${var:EndpointBeamformerBeamSwitch}' on"
+ cset "name='${var:EndpointBeamformerBeamAngleSet}' 0"
+ ]
+ }
+ }
+}
+
+DefineMacro.SofEqBootSetup {
+ Define.ep_BytesVar "${var:__endpoint}${var:__direction}${var:__eqtype}Bytes"
+ Define.ep_BlobVar "${var:__endpoint}${var:__direction}${var:__eqtype}Blob"
+ Define.EndpointEqBytes "${var:$ep_BytesVar}"
+ Define.EndpointEqBlob "${var:$ep_BlobVar}"
+ If.EndpointEq {
+ Condition {
+ Type ControlExists
+ Control "name='${var:EndpointEqBytes}'"
+ }
+ True {
+ If.EndpointEqBlobDefined {
+ Condition {
+ Type String
+ Empty "${var:EndpointEqBlob}"
+ }
+ False.FixedBootSequence [
+ #shell "/bin/echo 'Setting ${var:EndpointEqBytes} to ${var:EndpointEqBlob}' >> /tmp/alsa-ucm.txt"
+ cset-tlv "name='${var:EndpointEqBytes}' ${var:EndpointEqBlob}"
+ ]
+ }
+ }
+ }
+}