sof_ops
sof_ops(sdev)->irq_thread(irq, sdev);
if (!sof_ops(sdev) || !sof_ops(sdev)->probe) {
(!sof_ops(sdev)->run || !sof_ops(sdev)->block_read ||
!sof_ops(sdev)->block_write || !sof_ops(sdev)->send_msg ||
!sof_ops(sdev)->load_firmware || !sof_ops(sdev)->ipc_msg_data)) {
sof_ops(sdev)->drv,
sof_ops(sdev)->num_drv);
if (!sof_ops(sdev)->runtime_suspend || !sof_ops(sdev)->runtime_resume)
const struct snd_sof_dsp_ops *ops = sof_ops(sdev);
if (sof_ops(sdev)->dbg_dump && !sdev->dbg_dump_printed) {
sof_ops(sdev)->dbg_dump(sdev, flags);
if (sof_ops(sdev)->ipc_dump && !sdev->ipc_dump_printed) {
sof_ops(sdev)->ipc_dump(sdev);
sof_ops(sdev)->irq_thread(irq, sdev);
hdev->no_ipc_position = sof_ops(sdev)->pcm_pointer ? 1 : 0;
load_module = sof_ops(sdev)->load_module;
if (!sof_ops(sdev) || !sof_ops(sdev)->get_host_byte_counter)
if (sof_ops(sdev)->core_get) {
ret = sof_ops(sdev)->core_get(sdev, core);
if (sof_ops(sdev)->core_put) {
ret = sof_ops(sdev)->core_put(sdev, core);
if (sof_ops(sdev)->pre_fw_run)
return sof_ops(sdev)->pre_fw_run(sdev);
if (sof_ops(sdev)->post_fw_run)
return sof_ops(sdev)->post_fw_run(sdev);
if (sof_ops(sdev)->parse_platform_ext_manifest)
return sof_ops(sdev)->parse_platform_ext_manifest(sdev, hdr);
if (sof_ops(sdev)->get_bar_index)
return sof_ops(sdev)->get_bar_index(sdev, type);
if (sof_ops(sdev)->get_mailbox_offset)
return sof_ops(sdev)->get_mailbox_offset(sdev);
if (sof_ops(sdev)->get_window_offset)
return sof_ops(sdev)->get_window_offset(sdev, id);
if (sof_ops(sdev)->resume)
return sof_ops(sdev)->resume(sdev);
if (sof_ops(sdev)->suspend)
return sof_ops(sdev)->suspend(sdev, target_state);
if (sof_ops(sdev)->runtime_resume)
return sof_ops(sdev)->runtime_resume(sdev);
if (sof_ops(sdev)->runtime_suspend)
return sof_ops(sdev)->runtime_suspend(sdev);
if (sof_ops(sdev)->runtime_idle)
return sof_ops(sdev)->runtime_idle(sdev);
if (sof_ops(sdev)->set_hw_params_upon_resume)
return sof_ops(sdev)->set_hw_params_upon_resume(sdev);
if (sof_ops(sdev)->set_clk)
return sof_ops(sdev)->set_clk(sdev, freq);
if (sof_ops(sdev)->set_power_state)
return sof_ops(sdev)->set_power_state(sdev, target_state);
if (sof_ops(sdev) && sof_ops(sdev)->debugfs_add_region_item)
return sof_ops(sdev)->debugfs_add_region_item(sdev, blk_type, offset,
if (sof_ops(sdev)->write8)
sof_ops(sdev)->write8(sdev, sdev->bar[bar] + offset, value);
if (sof_ops(sdev)->write)
sof_ops(sdev)->write(sdev, sdev->bar[bar] + offset, value);
if (sof_ops(sdev)->write64)
sof_ops(sdev)->write64(sdev, sdev->bar[bar] + offset, value);
if (sof_ops(sdev)->read8)
return sof_ops(sdev)->read8(sdev, sdev->bar[bar] + offset);
if (sof_ops(sdev)->read)
return sof_ops(sdev)->read(sdev, sdev->bar[bar] + offset);
if (sof_ops(sdev)->read64)
return sof_ops(sdev)->read64(sdev, sdev->bar[bar] + offset);
return sof_ops(sdev)->block_read(sdev, blk_type, offset, dest, bytes);
return sof_ops(sdev)->block_write(sdev, blk_type, offset, src, bytes);
if (sof_ops(sdev)->mailbox_read)
sof_ops(sdev)->mailbox_read(sdev, offset, dest, bytes);
if (sof_ops(sdev)->mailbox_write)
sof_ops(sdev)->mailbox_write(sdev, offset, src, bytes);
return sof_ops(sdev)->send_msg(sdev, msg);
if (sof_ops(sdev) && sof_ops(sdev)->pcm_open)
return sof_ops(sdev)->pcm_open(sdev, substream);
if (sof_ops(sdev)->probe_early)
if (sof_ops(sdev) && sof_ops(sdev)->pcm_close)
return sof_ops(sdev)->pcm_close(sdev, substream);
return sof_ops(sdev)->probe_early(sdev);
if (sof_ops(sdev) && sof_ops(sdev)->pcm_hw_params)
return sof_ops(sdev)->pcm_hw_params(sdev, substream, params,
if (sof_ops(sdev) && sof_ops(sdev)->pcm_hw_free)
return sof_ops(sdev)->pcm_hw_free(sdev, substream);
if (sof_ops(sdev) && sof_ops(sdev)->pcm_trigger)
return sof_ops(sdev)->pcm_trigger(sdev, substream, cmd);
return sof_ops(sdev)->load_firmware(sdev);
return sof_ops(sdev)->ipc_msg_data(sdev, sps, p, sz);
if (sof_ops(sdev) && sof_ops(sdev)->set_stream_data_offset)
return sof_ops(sdev)->set_stream_data_offset(sdev, sps,
if (sof_ops(sdev) && sof_ops(sdev)->pcm_pointer)
return sof_ops(sdev)->pcm_pointer(sdev, substream);
return sof_ops(sdev)->probe(sdev);
if (sof_ops(sdev) && sof_ops(sdev)->pcm_ack)
return sof_ops(sdev)->pcm_ack(sdev, substream);
if (sof_ops(sdev) && sof_ops(sdev)->get_dai_frame_counter)
return sof_ops(sdev)->get_dai_frame_counter(sdev, component,
if (sof_ops(sdev) && sof_ops(sdev)->get_host_byte_counter)
return sof_ops(sdev)->get_host_byte_counter(sdev, component,
if (sof_ops(sdev) && sof_ops(sdev)->machine_register)
return sof_ops(sdev)->machine_register(sdev, pdata);
if (sof_ops(sdev) && sof_ops(sdev)->machine_unregister)
if (sof_ops(sdev)->remove)
sof_ops(sdev)->machine_unregister(sdev, pdata);
if (sof_ops(sdev) && sof_ops(sdev)->machine_select)
return sof_ops(sdev)->machine_select(sdev);
sof_ops(sdev)->remove(sdev);
if (sof_ops(sdev) && sof_ops(sdev)->set_mach_params)
sof_ops(sdev)->set_mach_params(mach, sdev);
if (sof_ops(sdev) && sof_ops(sdev)->is_chain_dma_supported)
return sof_ops(sdev)->is_chain_dma_supported(sdev, dai_type);
if (sof_ops(sdev)->remove_late)
sof_ops(sdev)->remove_late(sdev);
if (sof_ops(sdev)->shutdown)
return sof_ops(sdev)->shutdown(sdev);
return sof_ops(sdev)->run(sdev);
if (sof_ops(sdev)->stall)
return sof_ops(sdev)->stall(sdev, core_mask);
if (sof_ops(sdev)->reset)
return sof_ops(sdev)->reset(sdev);
if (sof_ops(sdev)->pcm_pointer)
return sof_ops(sdev)->pcm_pointer(sdev, substream);
const struct snd_sof_dsp_ops *ops = sof_ops(sdev);
if (!runtime_resume && !sof_ops(sdev)->resume)
if (runtime_resume && !sof_ops(sdev)->runtime_resume)
if (!runtime_resume && sof_ops(sdev)->set_power_state &&
if (!runtime_suspend && !sof_ops(sdev)->suspend)
if (runtime_suspend && !sof_ops(sdev)->runtime_suspend)
if (sdev->fw_state == SOF_FW_BOOT_COMPLETE && sof_ops(sdev)->remove &&
if (sof_ops(sdev) && sof_ops(sdev)->register_ipc_clients)
ret = sof_ops(sdev)->register_ipc_clients(sdev);
if (sof_ops(sdev) && sof_ops(sdev)->unregister_ipc_clients)
sof_ops(sdev)->unregister_ipc_clients(sdev);