Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/ipc/ipc4/dai.c
Original file line number Diff line number Diff line change
Expand Up @@ -236,9 +236,9 @@ void dai_dma_release(struct dai_data *dd, struct comp_dev *dev)
* TODO: refine power management when stream is paused
*/
/* if reset is after pause dma has already been stopped */
dma_stop(dd->dma->z_dev, dd->chan_index);
sof_dma_stop(dd->dma, dd->chan_index);

dma_release_channel(dd->dma->z_dev, dd->chan_index);
sof_dma_release_channel(dd->dma, dd->chan_index);
dd->chan_index = -EINVAL;
}
}
Expand Down Expand Up @@ -450,7 +450,7 @@ void dai_dma_position_update(struct dai_data *dd, struct comp_dev *dev)
if (!dd->slot_info.node_id)
return;

ret = dma_get_status(dd->dma->z_dev, dd->chan_index, &status);
ret = sof_dma_get_status(dd->dma, dd->chan_index, &status);
if (ret < 0)
return;

Expand Down
10 changes: 10 additions & 0 deletions src/ipc/ipc4/helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -1131,11 +1131,19 @@ __cold static const struct comp_driver *ipc4_search_for_drv(const void *uuid)
struct list_item *clist;
const struct comp_driver *drv = NULL;
struct comp_driver_info *info;
#ifndef CONFIG_SOF_USERSPACE_LL
uint32_t flags;
#endif
Comment on lines +1134 to +1136
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This commit seems to suggest that no locking is needed here at all... Maybe remove it completely and see if it explodes?..


assert_can_be_cold();

/* Driver list is populated at boot before IPC processing starts.
* In user-space builds irq_local_disable() is privileged, but the
* list is immutable by this point so no lock is needed.
*/
#ifndef CONFIG_SOF_USERSPACE_LL
irq_local_disable(flags);
#endif

/* search driver list with UUID */
list_for_item(clist, &drivers->list) {
Expand All @@ -1151,7 +1159,9 @@ __cold static const struct comp_driver *ipc4_search_for_drv(const void *uuid)
}
}

#ifndef CONFIG_SOF_USERSPACE_LL
irq_local_enable(flags);
#endif
return drv;
}

Expand Down
Loading