Loading asoc/codecs/ep92/ep92.c +38 −8 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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 Loading Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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, Loading asoc/codecs/ep92/ep92.h +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__ Loading Loading @@ -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 Loading Loading
asoc/codecs/ep92/ep92.c +38 −8 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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 Loading Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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, Loading
asoc/codecs/ep92/ep92.h +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__ Loading Loading @@ -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 Loading