2424#include <sof/lib/memory.h>
2525#include <sof/lib_manager.h>
2626
27- #if CONFIG_UAOL_INTEL_ADSP
28- #include <zephyr/drivers/uaol.h>
29- #endif
30-
3127#include <ipc4/base_fw.h>
3228#include <ipc4/alh.h>
3329#include <rimage/sof/user/manifest.h>
3733#include <sof/audio/mic_privacy_manager.h>
3834#endif
3935
36+ #if CONFIG_UAOL_INTEL_ADSP
37+ #include <sof/audio/intel_uaol.h>
38+ #endif
39+
4040struct ipc4_modules_info {
4141 uint32_t modules_count ;
4242 struct sof_man_module modules [0 ];
@@ -46,22 +46,6 @@ struct ipc4_modules_info {
4646STATIC_ASSERT (sizeof (struct ipc4_modules_info ) < SOF_IPC_MSG_MAX_SIZE ,
4747 invalid_modules_info_struct_size );
4848
49- #if CONFIG_UAOL_INTEL_ADSP
50- struct ipc4_uaol_link_capabilities {
51- uint32_t input_streams_supported : 4 ;
52- uint32_t output_streams_supported : 4 ;
53- uint32_t bidirectional_streams_supported : 5 ;
54- uint32_t rsvd : 19 ;
55- uint32_t max_tx_fifo_size ;
56- uint32_t max_rx_fifo_size ;
57- } __packed __aligned (4 );
58-
59- struct ipc4_uaol_capabilities {
60- uint32_t link_count ;
61- struct ipc4_uaol_link_capabilities link_caps [];
62- } __packed __aligned (4 );
63- #endif /* CONFIG_UAOL_INTEL_ADSP */
64-
6549/*
6650 * TODO: default to value of ACE1.x platforms. This is defined
6751 * in multiple places in Zephyr, mm_drv_intel_adsp.h and
@@ -103,61 +87,6 @@ __cold int basefw_vendor_fw_config(uint32_t *data_offset, char *data)
10387 return 0 ;
10488}
10589
106- #if CONFIG_UAOL_INTEL_ADSP
107- #define DEV_AND_COMMA (node ) DEVICE_DT_GET(node),
108- static const struct device * uaol_devs [] = {
109- DT_FOREACH_STATUS_OKAY (intel_adsp_uaol , DEV_AND_COMMA )
110- };
111-
112- #if !CONFIG_SOF_OS_LINUX_COMPAT_PRIORITY
113- __cold static void tlv_value_set_uaol_caps (struct sof_tlv * tuple , uint32_t type )
114- {
115- const size_t dev_count = ARRAY_SIZE (uaol_devs );
116- struct uaol_capabilities dev_cap ;
117- struct ipc4_uaol_capabilities * caps = (struct ipc4_uaol_capabilities * )tuple -> value ;
118- size_t caps_size = offsetof(struct ipc4_uaol_capabilities , link_caps [dev_count ]);
119- size_t i ;
120- int ret ;
121-
122- assert_can_be_cold ();
123-
124- memset (caps , 0 , caps_size );
125-
126- caps -> link_count = dev_count ;
127- for (i = 0 ; i < dev_count ; i ++ ) {
128- ret = uaol_get_capabilities (uaol_devs [i ], & dev_cap );
129- if (ret )
130- continue ;
131-
132- caps -> link_caps [i ].input_streams_supported = dev_cap .input_streams ;
133- caps -> link_caps [i ].output_streams_supported = dev_cap .output_streams ;
134- caps -> link_caps [i ].bidirectional_streams_supported = dev_cap .bidirectional_streams ;
135- caps -> link_caps [i ].max_tx_fifo_size = dev_cap .max_tx_fifo_size ;
136- caps -> link_caps [i ].max_rx_fifo_size = dev_cap .max_rx_fifo_size ;
137- }
138-
139- tlv_value_set (tuple , type , caps_size , caps );
140- }
141- #endif /* CONFIG_SOF_OS_LINUX_COMPAT_PRIORITY */
142-
143- __cold static int uaol_stream_id_to_hda_link_stream_id (int uaol_stream_id )
144- {
145- size_t dev_count = ARRAY_SIZE (uaol_devs );
146- size_t i ;
147-
148- assert_can_be_cold ();
149-
150- for (i = 0 ; i < dev_count ; i ++ ) {
151- int hda_link_stream_id = uaol_get_mapped_hda_link_stream_id (uaol_devs [i ],
152- uaol_stream_id );
153- if (hda_link_stream_id >= 0 )
154- return hda_link_stream_id ;
155- }
156-
157- return -1 ;
158- }
159- #endif /* CONFIG_UAOL_INTEL_ADSP */
160-
16190__cold int basefw_vendor_hw_config (uint32_t * data_offset , char * data )
16291{
16392 struct sof_tlv * tuple = (struct sof_tlv * )data ;
0 commit comments