// SPDX-License-Identifier: GPL-2.0-only /* * sst_stream.c - Intel SST Driver for audio engine * * Copyright (C) 2008-14 Intel Corp * Authors: Vinod Koul <[email protected]> * Harsha Priya <[email protected]> * Dharageswari R <[email protected]> * KP Jeeja <[email protected]> * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ #include <linux/pci.h> #include <linux/firmware.h> #include <linux/sched.h> #include <linux/delay.h> #include <sound/core.h> #include <sound/pcm.h> #include <sound/soc.h> #include <sound/compress_driver.h> #include <asm/platform_sst_audio.h> #include "../sst-mfld-platform.h" #include "sst.h" int sst_alloc_stream_mrfld(struct intel_sst_drv *sst_drv_ctx, void *params) { … } /** * sst_realloc_stream - Send msg for (re-)allocating a stream using the * @sst_drv_ctx: intel_sst_drv context pointer * @str_id: stream ID * * Send a msg for (re-)allocating a stream using the parameters previously * passed to sst_alloc_stream_mrfld() for the same stream ID. * Return: 0 or negative errno value. */ int sst_realloc_stream(struct intel_sst_drv *sst_drv_ctx, int str_id) { … } /** * sst_start_stream - Send msg for a starting stream * @sst_drv_ctx: intel_sst_drv context pointer * @str_id: stream ID * * This function is called by any function which wants to start * a stream. */ int sst_start_stream(struct intel_sst_drv *sst_drv_ctx, int str_id) { … } int sst_send_byte_stream_mrfld(struct intel_sst_drv *sst_drv_ctx, struct snd_sst_bytes_v2 *bytes) { … } /** * sst_pause_stream - Send msg for a pausing stream * @sst_drv_ctx: intel_sst_drv context pointer * @str_id: stream ID * * This function is called by any function which wants to pause * an already running stream. */ int sst_pause_stream(struct intel_sst_drv *sst_drv_ctx, int str_id) { … } /** * sst_resume_stream - Send msg for resuming stream * @sst_drv_ctx: intel_sst_drv context pointer * @str_id: stream ID * * This function is called by any function which wants to resume * an already paused stream. */ int sst_resume_stream(struct intel_sst_drv *sst_drv_ctx, int str_id) { … } /** * sst_drop_stream - Send msg for stopping stream * @sst_drv_ctx: intel_sst_drv context pointer * @str_id: stream ID * * This function is called by any function which wants to stop * a stream. */ int sst_drop_stream(struct intel_sst_drv *sst_drv_ctx, int str_id) { … } /** * sst_drain_stream - Send msg for draining stream * @sst_drv_ctx: intel_sst_drv context pointer * @str_id: stream ID * @partial_drain: boolean indicating if a gapless transition is taking place * * This function is called by any function which wants to drain * a stream. */ int sst_drain_stream(struct intel_sst_drv *sst_drv_ctx, int str_id, bool partial_drain) { … } /** * sst_free_stream - Frees a stream * @sst_drv_ctx: intel_sst_drv context pointer * @str_id: stream ID * * This function is called by any function which wants to free * a stream. */ int sst_free_stream(struct intel_sst_drv *sst_drv_ctx, int str_id) { … }