Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c7228e9 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "asoc: codecs: Add ep92 pre-emphasis status"

parents bfa4bebe 05441f67
Loading
Loading
Loading
Loading
+38 −8
Original line number Diff line number Diff line
@@ -564,8 +564,6 @@ static void ep92_read_audio_info(struct snd_soc_component *component,
		send_uevent = true;
	}

	new_mode = ep92->old_mode;
	if (ep92->ai.audio_status & EP92_AI_STD_ADO_MASK) {
	old = ep92->ai.cs[0];
	ep92->ai.cs[0] = snd_soc_component_read32(component,
		EP92_AUDIO_INFO_CHANNEL_STATUS_0);
@@ -573,6 +571,16 @@ static void ep92_read_audio_info(struct snd_soc_component *component,
		dev_dbg(component->dev, "ep92 EP92_AUDIO_INFO_CHANNEL_STATUS_0 read 0xff\n");
		ep92->ai.cs[0] = old;
	}
	change = ep92->ai.cs[0] ^ old;
	if (change & EP92_AI_PREEMPH_MASK) {
		dev_dbg(component->dev, "ep92 preemph changed to %d\n",
			(ep92->ai.cs[0] & EP92_AI_PREEMPH_MASK) >>
			EP92_AI_PREEMPH_SHIFT);
		send_uevent = true;
	}

	new_mode = ep92->old_mode;
	if (ep92->ai.audio_status & EP92_AI_STD_ADO_MASK) {
		if (ep92->ai.cs[0] & EP92_AI_NPCM_MASK)
			new_mode = 1; /* Compr */
		else
@@ -973,7 +981,7 @@ static ssize_t ep92_sysfs_rda_audio_ch_alloc(struct device *dev,
	return ret;
}

static ssize_t ep92_sysfs_rda_avmute(struct device *dev,
static ssize_t ep92_sysfs_rda_audio_preemph(struct device *dev,
	struct device_attribute *attr, char *buf)
{
	ssize_t ret;
@@ -985,6 +993,26 @@ static ssize_t ep92_sysfs_rda_avmute(struct device *dev,
		return -ENODEV;
	}

	val = (ep92->ai.cs[0] & EP92_AI_PREEMPH_MASK) >>
		EP92_AI_PREEMPH_SHIFT;

	ret = snprintf(buf, EP92_SYSFS_ENTRY_MAX_LEN, "%d\n", val);
	dev_dbg(dev, "%s: '%d'\n", __func__, val);

	return ret;
}

static ssize_t ep92_sysfs_rda_avmute(struct device *dev,
	struct device_attribute *attr, char *buf)
{
	ssize_t ret;
	int val;
	struct ep92_pdata *ep92 = dev_get_drvdata(dev);

	if (!ep92 || !ep92->component) {
		dev_err(dev, "%s: device error\n", __func__);
		return -ENODEV;
	}

	val = (ep92->ai.system_status_0 >> EP92_AI_AVMUTE_SHIFT) &
		EP92_2CHOICE_MASK;
@@ -1570,6 +1598,7 @@ static DEVICE_ATTR(audio_rate, 0444, ep92_sysfs_rda_audio_rate, NULL);
static DEVICE_ATTR(audio_layout, 0444, ep92_sysfs_rda_audio_layout, NULL);
static DEVICE_ATTR(audio_ch_count, 0444, ep92_sysfs_rda_audio_ch_count, NULL);
static DEVICE_ATTR(audio_ch_alloc, 0444, ep92_sysfs_rda_audio_ch_alloc, NULL);
static DEVICE_ATTR(audio_preemph, 0444, ep92_sysfs_rda_audio_preemph, NULL);
static DEVICE_ATTR(audio_avmute, 0444, ep92_sysfs_rda_avmute, NULL);
static DEVICE_ATTR(link_on0, 0444, ep92_sysfs_rda_link_on0, NULL);
static DEVICE_ATTR(link_on1, 0444, ep92_sysfs_rda_link_on1, NULL);
@@ -1602,6 +1631,7 @@ static struct attribute *ep92_fs_attrs[] = {
	&dev_attr_audio_layout.attr,
	&dev_attr_audio_ch_count.attr,
	&dev_attr_audio_ch_alloc.attr,
	&dev_attr_audio_preemph.attr,
	&dev_attr_audio_avmute.attr,
	&dev_attr_link_on0.attr,
	&dev_attr_link_on1.attr,
+3 −1
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2018, The Linux Foundation. All rights reserved.
 * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
 */

#ifndef __EP92_H__
@@ -171,6 +171,8 @@ static struct reg_default ep92_reg_defaults[] = {
#define EP92_AI_STD_ADO_MASK     0x08
#define EP92_AI_RATE_MASK        0x07
#define EP92_AI_NPCM_MASK        0x02
#define EP92_AI_PREEMPH_SHIFT    3
#define EP92_AI_PREEMPH_MASK     0x38
#define EP92_AI_CH_COUNT_MASK    0x07
#define EP92_AI_CH_ALLOC_MASK    0xff