@@ -65,6 +65,9 @@ Define {
6565 # SSP1 is the most common for smart amps, but variants are built for all ports
6666 AW_SMART_STREAM_NAME 'SSP1-Codec'
6767 AW_SMART_SSP_INDEX 1
68+ AW_SMART_HOST_PIPELINE_ID 30
69+ AW_SMART_PCM_ID 32
70+ AW_SMART_PCM_NAME 'AW88399 Speakers'
6871 SSP_BLOB_VERSION $SSP_BLOB_VERSION_1_5
6972}
7073
@@ -215,7 +218,7 @@ Object.Widget.virtual [
215218 }
216219]
217220
218- Object.Pipeline.mixout-gain-smart-amp- dai-copier-playback [
221+ Object.Pipeline.mixout-gain-dai-copier-playback [
219222 {
220223 index $AW_SMART_PIPELINE_ID
221224
@@ -225,78 +228,60 @@ Object.Pipeline.mixout-gain-smart-amp-dai-copier-playback [
225228 copier_type "SSP"
226229 stream_name $AW_SMART_STREAM_NAME
227230 node_type $I2S_LINK_OUTPUT_CLASS
228- num_input_audio_formats 1
229- num_output_audio_formats 1
230- Object.Base.input_audio_format [
231- {
232- in_rate 48000
233- in_bit_depth 32
234- in_valid_bit_depth 32
235- }
236- ]
237- Object.Base.output_audio_format [
238- {
239- out_rate 48000
240- out_bit_depth 32
241- out_valid_bit_depth 32
242- }
243- ]
244231 }
245232
246233 Object.Widget.gain.1 {
247234 Object.Control.mixer.1 {
248- name 'Post Mixer AW88399 Playback Volume'
249- }
250- }
251-
252- Object.Widget.smart_amp.1 {
253- Object.Control.bytes."1" {
254- name 'HDA AW88399 smart_amp_init'
235+ name 'Master Playback Volume'
255236 }
256237 }
257238 }
258239]
259240
260- Object.Pipeline.dai -copier-gain-eqiir-module-copier-capture [
241+ Object.Pipeline.host -copier-gain-mixin-playback [
261242 {
262- index 21
263-
264- Object.Widget.dai-copier.1 {
265- dai_index $AW_SMART_SSP_INDEX
266- dai_type "SSP"
267- copier_type "SSP"
268- stream_name $AW_SMART_STREAM_NAME
269- node_type $I2S_LINK_INPUT_CLASS
270- Object.Base.output_pin_binding.1 {
271- output_pin_binding_name "smart_amp.20.1"
272- }
273- }
274-
275- Object.Widget.module-copier."2" {
276- stream_name $AW_SMART_STREAM_NAME
243+ index $AW_SMART_HOST_PIPELINE_ID
244+ Object.Widget.host-copier.1 {
245+ stream_name $AW_SMART_PCM_NAME
246+ pcm_id $AW_SMART_PCM_ID
277247 }
278-
279248 Object.Widget.gain.1 {
280249 Object.Control.mixer.1 {
281- name 'AW88399 Capture Volume'
250+ name 'Pre Mixer AW88399 Playback Volume'
282251 }
283252 }
253+ Object.Widget.mixin.1 {}
254+ Object.Widget.pipeline.1 {
255+ priority 0
256+ lp_mode 0
257+ }
284258 }
285259]
286260
287261Object.Base.route [
288262 {
289- source 'mixin.1.1'
290- sink 'mixout.20.1'
263+ source "host-copier.$AW_SMART_PCM_ID.playback"
264+ sink "gain.$AW_SMART_HOST_PIPELINE_ID.1"
265+ }
266+ {
267+ source "gain.$AW_SMART_HOST_PIPELINE_ID.1"
268+ sink "mixin.$AW_SMART_HOST_PIPELINE_ID.1"
269+ }
270+ ]
271+
272+ Object.Base.route [
273+ {
274+ source "mixin.$AW_SMART_HOST_PIPELINE_ID.1"
275+ sink "mixout.$AW_SMART_PIPELINE_ID.1"
276+ }
277+ {
278+ source "mixout.$AW_SMART_PIPELINE_ID.1"
279+ sink "gain.$AW_SMART_PIPELINE_ID.1"
280+ }
281+ {
282+ source "gain.$AW_SMART_PIPELINE_ID.1"
283+ sink "dai-copier.SSP.$AW_SMART_STREAM_NAME.playback"
291284 }
292- {
293- source 'smart_amp.20.1'
294- sink "dai-copier.SSP.$AW_SMART_STREAM_NAME.playback"
295- }
296- {
297- source "dai-copier.SSP.$AW_SMART_STREAM_NAME.capture"
298- sink 'smart_amp.20.1'
299- }
300285]
301286
302287Object.Dai.SSP [
@@ -322,3 +307,21 @@ Object.Dai.SSP [
322307 }
323308 }
324309]
310+
311+ Object.PCM.pcm [
312+ {
313+ name $AW_SMART_PCM_NAME
314+ id $AW_SMART_PCM_ID
315+ direction "playback"
316+ Object.Base.fe_dai.1 {
317+ name $AW_SMART_PCM_NAME
318+ }
319+ Object.PCM.pcm_caps.1 {
320+ direction "playback"
321+ name $AW_SMART_PCM_NAME
322+ formats 'S32_LE,S24_LE,S16_LE'
323+ rate_min 48000
324+ rate_max 48000
325+ }
326+ }
327+ ]
0 commit comments