12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
- //
- // This file is provided under a dual BSD/GPLv2 license. When using or
- // redistributing this file, you may do so under either license.
- //
- // Copyright(c) 2021 Advanced Micro Devices, Inc. All rights reserved.
- //
- // Authors: Vishnuvardhanrao Ravuapati <[email protected]>
- // V Sujith Kumar Reddy <[email protected]>
- /*This file support Host TRACE Logger driver callback for SOF FW */
- #include "acp.h"
- #define ACP_LOGGER_STREAM 8
- #define NUM_PAGES 16
- int acp_sof_trace_release(struct snd_sof_dev *sdev)
- {
- struct acp_dsp_stream *stream;
- struct acp_dev_data *adata;
- int ret;
- adata = sdev->pdata->hw_pdata;
- stream = adata->dtrace_stream;
- ret = acp_dsp_stream_put(sdev, stream);
- if (ret < 0) {
- dev_err(sdev->dev, "Failed to release trace stream\n");
- return ret;
- }
- adata->dtrace_stream = NULL;
- return 0;
- }
- EXPORT_SYMBOL_NS(acp_sof_trace_release, SND_SOC_SOF_AMD_COMMON);
- int acp_sof_trace_init(struct snd_sof_dev *sdev, struct snd_dma_buffer *dmab,
- struct sof_ipc_dma_trace_params_ext *dtrace_params)
- {
- struct acp_dsp_stream *stream;
- struct acp_dev_data *adata;
- int ret;
- adata = sdev->pdata->hw_pdata;
- stream = acp_dsp_stream_get(sdev, ACP_LOGGER_STREAM);
- if (!stream)
- return -ENODEV;
- stream->dmab = dmab;
- stream->num_pages = NUM_PAGES;
- ret = acp_dsp_stream_config(sdev, stream);
- if (ret < 0) {
- acp_dsp_stream_put(sdev, stream);
- return ret;
- }
- adata->dtrace_stream = stream;
- dtrace_params->stream_tag = stream->stream_tag;
- dtrace_params->buffer.phy_addr = stream->reg_offset;
- return 0;
- }
- EXPORT_SYMBOL_NS(acp_sof_trace_init, SND_SOC_SOF_AMD_COMMON);
|