@@ -203,58 +203,62 @@ __cold int dai_set_config(struct dai *dai, struct ipc_config_dai *common_config,
203203/* called from ipc/ipc3/dai.c */
204204int dai_get_handshake (struct dai * dai , int direction , int stream_id )
205205{
206- const struct dai_properties * props ;
207- int hs_id ;
206+ struct dai_properties props ;
207+ int ret ;
208208
209209 k_mutex_lock (dai -> lock , K_FOREVER );
210- props = dai_get_properties (dai -> dev , direction , stream_id );
211- hs_id = props -> dma_hs_id ;
210+ ret = dai_get_properties_copy (dai -> dev , direction , stream_id , & props );
212211 k_mutex_unlock (dai -> lock );
212+ if (ret < 0 )
213+ return ret ;
213214
214- return hs_id ;
215+ return props . dma_hs_id ;
215216}
216217
217218/* called from ipc/ipc3/dai.c and ipc/ipc4/dai.c */
218219int dai_get_fifo_depth (struct dai * dai , int direction )
219220{
220- const struct dai_properties * props ;
221- int fifo_depth ;
221+ struct dai_properties props ;
222+ int ret ;
222223
223224 if (!dai )
224225 return 0 ;
225226
226227 k_mutex_lock (dai -> lock , K_FOREVER );
227- props = dai_get_properties (dai -> dev , direction , 0 );
228- fifo_depth = props -> fifo_depth ;
228+ ret = dai_get_properties_copy (dai -> dev , direction , 0 , & props );
229229 k_mutex_unlock (dai -> lock );
230+ if (ret < 0 )
231+ return 0 ;
230232
231- return fifo_depth ;
233+ return props . fifo_depth ;
232234}
233235
234236int dai_get_stream_id (struct dai * dai , int direction )
235237{
236- const struct dai_properties * props ;
237- int stream_id ;
238+ struct dai_properties props ;
239+ int ret ;
238240
239241 k_mutex_lock (dai -> lock , K_FOREVER );
240- props = dai_get_properties (dai -> dev , direction , 0 );
241- stream_id = props -> stream_id ;
242+ ret = dai_get_properties_copy (dai -> dev , direction , 0 , & props );
242243 k_mutex_unlock (dai -> lock );
244+ if (ret < 0 )
245+ return ret ;
243246
244- return stream_id ;
247+ return props . stream_id ;
245248}
246249
247250static int dai_get_fifo (struct dai * dai , int direction , int stream_id )
248251{
249- const struct dai_properties * props ;
250- int fifo_address ;
252+ struct dai_properties props ;
253+ int ret ;
251254
252255 k_mutex_lock (dai -> lock , K_FOREVER );
253- props = dai_get_properties (dai -> dev , direction , stream_id );
254- fifo_address = props -> fifo_address ;
256+ ret = dai_get_properties_copy (dai -> dev , direction , stream_id , & props );
255257 k_mutex_unlock (dai -> lock );
258+ if (ret < 0 )
259+ return ret ;
256260
257- return fifo_address ;
261+ return props . fifo_address ;
258262}
259263
260264/* this is called by DMA driver every time descriptor has completed */
@@ -1967,15 +1971,17 @@ static int dai_ts_stop_op(struct comp_dev *dev)
19671971
19681972uint32_t dai_get_init_delay_ms (struct dai * dai )
19691973{
1970- const struct dai_properties * props ;
1971- uint32_t init_delay ;
1974+ struct dai_properties props ;
1975+ uint32_t init_delay = 0 ;
1976+ int ret ;
19721977
19731978 if (!dai )
19741979 return 0 ;
19751980
19761981 k_mutex_lock (dai -> lock , K_FOREVER );
1977- props = dai_get_properties (dai -> dev , 0 , 0 );
1978- init_delay = props -> reg_init_delay ;
1982+ ret = dai_get_properties_copy (dai -> dev , 0 , 0 , & props );
1983+ if (!ret )
1984+ init_delay = props .reg_init_delay ;
19791985 k_mutex_unlock (dai -> lock );
19801986
19811987 return init_delay ;
0 commit comments