linux/drivers/soundwire/intel_ace2x.c

// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
// Copyright(c) 2023 Intel Corporation

/*
 * Soundwire Intel ops for LunarLake
 */

#include <linux/acpi.h>
#include <linux/cleanup.h>
#include <linux/device.h>
#include <linux/soundwire/sdw_registers.h>
#include <linux/soundwire/sdw.h>
#include <linux/soundwire/sdw_intel.h>
#include <sound/hdaudio.h>
#include <sound/hda-mlink.h>
#include <sound/hda_register.h>
#include <sound/pcm_params.h>
#include "cadence_master.h"
#include "bus.h"
#include "intel.h"

/*
 * shim vendor-specific (vs) ops
 */

static void intel_shim_vs_init(struct sdw_intel *sdw)
{}

static void intel_shim_vs_set_clock_source(struct sdw_intel *sdw, u32 source)
{}

static int intel_shim_check_wake(struct sdw_intel *sdw)
{}

static void intel_shim_wake(struct sdw_intel *sdw, bool wake_enable)
{}

static int intel_link_power_up(struct sdw_intel *sdw)
{}

static int intel_link_power_down(struct sdw_intel *sdw)
{}

static void intel_sync_arm(struct sdw_intel *sdw)
{}

static int intel_sync_go_unlocked(struct sdw_intel *sdw)
{}

static int intel_sync_go(struct sdw_intel *sdw)
{}

static bool intel_check_cmdsync_unlocked(struct sdw_intel *sdw)
{}

/* DAI callbacks */
static int intel_params_stream(struct sdw_intel *sdw,
			       struct snd_pcm_substream *substream,
			       struct snd_soc_dai *dai,
			       struct snd_pcm_hw_params *hw_params,
			       int link_id, int alh_stream_id)
{}

static int intel_free_stream(struct sdw_intel *sdw,
			     struct snd_pcm_substream *substream,
			     struct snd_soc_dai *dai,
			     int link_id)

{}

/*
 * DAI operations
 */
static int intel_hw_params(struct snd_pcm_substream *substream,
			   struct snd_pcm_hw_params *params,
			   struct snd_soc_dai *dai)
{}

static int intel_prepare(struct snd_pcm_substream *substream,
			 struct snd_soc_dai *dai)
{}

static int
intel_hw_free(struct snd_pcm_substream *substream, struct snd_soc_dai *dai)
{}

static int intel_pcm_set_sdw_stream(struct snd_soc_dai *dai,
				    void *stream, int direction)
{}

static void *intel_get_sdw_stream(struct snd_soc_dai *dai,
				  int direction)
{}

static int intel_trigger(struct snd_pcm_substream *substream, int cmd, struct snd_soc_dai *dai)
{}

static const struct snd_soc_dai_ops intel_pcm_dai_ops =;

static const struct snd_soc_component_driver dai_component =;

/*
 * PDI routines
 */
static void intel_pdi_init(struct sdw_intel *sdw,
			   struct sdw_cdns_stream_config *config)
{}

static int
intel_pdi_get_ch_cap(struct sdw_intel *sdw, unsigned int pdi_num)
{}

static void intel_pdi_get_ch_update(struct sdw_intel *sdw,
				    struct sdw_cdns_pdi *pdi,
				    unsigned int num_pdi,
				    unsigned int *num_ch)
{}

static void intel_pdi_stream_ch_update(struct sdw_intel *sdw,
				       struct sdw_cdns_streams *stream)
{}

static int intel_create_dai(struct sdw_cdns *cdns,
			    struct snd_soc_dai_driver *dais,
			    enum intel_pdi_type type,
			    u32 num, u32 off, u32 max_ch)
{}

static int intel_register_dai(struct sdw_intel *sdw)
{}

static void intel_program_sdi(struct sdw_intel *sdw, int dev_num)
{}

static int intel_get_link_count(struct sdw_intel *sdw)
{}

const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops =;
EXPORT_SYMBOL_NS();

MODULE_IMPORT_NS();