HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //proc/660475/cwd/usr/src/linux-headers-6.17.0-1007-aws/include/sound/sdw.h
/* SPDX-License-Identifier: GPL-2.0
 *
 * linux/sound/sdw.h -- SoundWire helpers for ALSA/ASoC
 *
 * Copyright (c) 2022 Cirrus Logic Inc.
 *
 * Author: Charles Keepax <ckeepax@opensource.cirrus.com>
 */

#include <linux/soundwire/sdw.h>
#include <sound/asound.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>

#ifndef __INCLUDE_SOUND_SDW_H
#define __INCLUDE_SOUND_SDW_H

/**
 * snd_sdw_params_to_config() - Conversion from hw_params to SoundWire config
 *
 * @substream: Pointer to the PCM substream structure
 * @params: Pointer to the hardware params structure
 * @stream_config: Stream configuration for the SoundWire audio stream
 * @port_config: Port configuration for the SoundWire audio stream
 *
 * This function provides a basic conversion from the hw_params structure to
 * SoundWire configuration structures. The user will at a minimum need to also
 * set the port number in the port config, but may also override more of the
 * setup, or in the case of a complex user, not use this helper at all and
 * open-code everything.
 */
static inline void snd_sdw_params_to_config(struct snd_pcm_substream *substream,
					    struct snd_pcm_hw_params *params,
					    struct sdw_stream_config *stream_config,
					    struct sdw_port_config *port_config)
{
	stream_config->frame_rate = params_rate(params);
	stream_config->ch_count = params_channels(params);
	stream_config->bps = snd_pcm_format_width(params_format(params));

	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
		stream_config->direction = SDW_DATA_DIR_RX;
	else
		stream_config->direction = SDW_DATA_DIR_TX;

	port_config->ch_mask = GENMASK(stream_config->ch_count - 1, 0);
}

#endif