#include <linux/bitfield.h>
#include <linux/export.h>
#include <linux/hdmi.h>
#include <drm/drm_edid.h>
#include <drm/drm_eld.h>
#include <sound/pcm.h>
#include <sound/pcm_drm_eld.h>
#define SAD0_CHANNELS_MASK …
#define SAD0_FORMAT_MASK …
#define SAD1_RATE_MASK …
#define SAD1_RATE_32000_MASK …
#define SAD1_RATE_44100_MASK …
#define SAD1_RATE_48000_MASK …
#define SAD1_RATE_88200_MASK …
#define SAD1_RATE_96000_MASK …
#define SAD1_RATE_176400_MASK …
#define SAD1_RATE_192000_MASK …
static const unsigned int eld_rates[] = …;
static unsigned int map_rate_families(const u8 *sad,
unsigned int mask_32000,
unsigned int mask_44100,
unsigned int mask_48000)
{ … }
static unsigned int sad_rate_mask(const u8 *sad)
{ … }
static unsigned int sad_max_channels(const u8 *sad)
{ … }
static int eld_limit_rates(struct snd_pcm_hw_params *params,
struct snd_pcm_hw_rule *rule)
{ … }
static int eld_limit_channels(struct snd_pcm_hw_params *params,
struct snd_pcm_hw_rule *rule)
{ … }
int snd_pcm_hw_constraint_eld(struct snd_pcm_runtime *runtime, void *eld)
{ … }
EXPORT_SYMBOL_GPL(…);