Commit 4c11d767 authored by Mark Brown's avatar Mark Brown

Merge branch 'asoc-4.19' into asoc-4.20 tas dependency

parents 91986921 d40e3e9e
...@@ -730,6 +730,7 @@ static int max98373_probe(struct snd_soc_component *component) ...@@ -730,6 +730,7 @@ static int max98373_probe(struct snd_soc_component *component)
/* Software Reset */ /* Software Reset */
regmap_write(max98373->regmap, regmap_write(max98373->regmap,
MAX98373_R2000_SW_RESET, MAX98373_SOFT_RESET); MAX98373_R2000_SW_RESET, MAX98373_SOFT_RESET);
usleep_range(10000, 11000);
/* IV default slot configuration */ /* IV default slot configuration */
regmap_write(max98373->regmap, regmap_write(max98373->regmap,
...@@ -818,6 +819,7 @@ static int max98373_resume(struct device *dev) ...@@ -818,6 +819,7 @@ static int max98373_resume(struct device *dev)
regmap_write(max98373->regmap, regmap_write(max98373->regmap,
MAX98373_R2000_SW_RESET, MAX98373_SOFT_RESET); MAX98373_R2000_SW_RESET, MAX98373_SOFT_RESET);
usleep_range(10000, 11000);
regcache_cache_only(max98373->regmap, false); regcache_cache_only(max98373->regmap, false);
regcache_sync(max98373->regmap); regcache_sync(max98373->regmap);
return 0; return 0;
......
...@@ -750,8 +750,8 @@ static bool rt5682_readable_register(struct device *dev, unsigned int reg) ...@@ -750,8 +750,8 @@ static bool rt5682_readable_register(struct device *dev, unsigned int reg)
} }
static const DECLARE_TLV_DB_SCALE(hp_vol_tlv, -2250, 150, 0); static const DECLARE_TLV_DB_SCALE(hp_vol_tlv, -2250, 150, 0);
static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -65625, 375, 0); static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -6525, 75, 0);
static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -17625, 375, 0); static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -1725, 75, 0);
static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0); static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0);
/* {0, +20, +24, +30, +35, +40, +44, +50, +52} dB */ /* {0, +20, +24, +30, +35, +40, +44, +50, +52} dB */
...@@ -1114,7 +1114,7 @@ static const struct snd_kcontrol_new rt5682_snd_controls[] = { ...@@ -1114,7 +1114,7 @@ static const struct snd_kcontrol_new rt5682_snd_controls[] = {
/* DAC Digital Volume */ /* DAC Digital Volume */
SOC_DOUBLE_TLV("DAC1 Playback Volume", RT5682_DAC1_DIG_VOL, SOC_DOUBLE_TLV("DAC1 Playback Volume", RT5682_DAC1_DIG_VOL,
RT5682_L_VOL_SFT, RT5682_R_VOL_SFT, 175, 0, dac_vol_tlv), RT5682_L_VOL_SFT + 1, RT5682_R_VOL_SFT + 1, 86, 0, dac_vol_tlv),
/* IN Boost Volume */ /* IN Boost Volume */
SOC_SINGLE_TLV("CBJ Boost Volume", RT5682_CBJ_BST_CTRL, SOC_SINGLE_TLV("CBJ Boost Volume", RT5682_CBJ_BST_CTRL,
...@@ -1124,7 +1124,7 @@ static const struct snd_kcontrol_new rt5682_snd_controls[] = { ...@@ -1124,7 +1124,7 @@ static const struct snd_kcontrol_new rt5682_snd_controls[] = {
SOC_DOUBLE("STO1 ADC Capture Switch", RT5682_STO1_ADC_DIG_VOL, SOC_DOUBLE("STO1 ADC Capture Switch", RT5682_STO1_ADC_DIG_VOL,
RT5682_L_MUTE_SFT, RT5682_R_MUTE_SFT, 1, 1), RT5682_L_MUTE_SFT, RT5682_R_MUTE_SFT, 1, 1),
SOC_DOUBLE_TLV("STO1 ADC Capture Volume", RT5682_STO1_ADC_DIG_VOL, SOC_DOUBLE_TLV("STO1 ADC Capture Volume", RT5682_STO1_ADC_DIG_VOL,
RT5682_L_VOL_SFT, RT5682_R_VOL_SFT, 127, 0, adc_vol_tlv), RT5682_L_VOL_SFT + 1, RT5682_R_VOL_SFT + 1, 63, 0, adc_vol_tlv),
/* ADC Boost Volume Control */ /* ADC Boost Volume Control */
SOC_DOUBLE_TLV("STO1 ADC Boost Gain Volume", RT5682_STO1_ADC_BOOST, SOC_DOUBLE_TLV("STO1 ADC Boost Gain Volume", RT5682_STO1_ADC_BOOST,
......
...@@ -117,8 +117,7 @@ static int sigmadsp_ctrl_write(struct sigmadsp *sigmadsp, ...@@ -117,8 +117,7 @@ static int sigmadsp_ctrl_write(struct sigmadsp *sigmadsp,
struct sigmadsp_control *ctrl, void *data) struct sigmadsp_control *ctrl, void *data)
{ {
/* safeload loads up to 20 bytes in a atomic operation */ /* safeload loads up to 20 bytes in a atomic operation */
if (ctrl->num_bytes > 4 && ctrl->num_bytes <= 20 && sigmadsp->ops && if (ctrl->num_bytes <= 20 && sigmadsp->ops && sigmadsp->ops->safeload)
sigmadsp->ops->safeload)
return sigmadsp->ops->safeload(sigmadsp, ctrl->addr, data, return sigmadsp->ops->safeload(sigmadsp, ctrl->addr, data,
ctrl->num_bytes); ctrl->num_bytes);
else else
......
...@@ -424,8 +424,10 @@ static void tas6424_fault_check_work(struct work_struct *work) ...@@ -424,8 +424,10 @@ static void tas6424_fault_check_work(struct work_struct *work)
TAS6424_FAULT_PVDD_UV | TAS6424_FAULT_PVDD_UV |
TAS6424_FAULT_VBAT_UV; TAS6424_FAULT_VBAT_UV;
if (reg) if (!reg) {
tas6424->last_fault1 = reg;
goto check_global_fault2_reg; goto check_global_fault2_reg;
}
/* /*
* Only flag errors once for a given occurrence. This is needed as * Only flag errors once for a given occurrence. This is needed as
...@@ -461,8 +463,10 @@ static void tas6424_fault_check_work(struct work_struct *work) ...@@ -461,8 +463,10 @@ static void tas6424_fault_check_work(struct work_struct *work)
TAS6424_FAULT_OTSD_CH3 | TAS6424_FAULT_OTSD_CH3 |
TAS6424_FAULT_OTSD_CH4; TAS6424_FAULT_OTSD_CH4;
if (!reg) if (!reg) {
tas6424->last_fault2 = reg;
goto check_warn_reg; goto check_warn_reg;
}
if ((reg & TAS6424_FAULT_OTSD) && !(tas6424->last_fault2 & TAS6424_FAULT_OTSD)) if ((reg & TAS6424_FAULT_OTSD) && !(tas6424->last_fault2 & TAS6424_FAULT_OTSD))
dev_crit(dev, "experienced a global overtemp shutdown\n"); dev_crit(dev, "experienced a global overtemp shutdown\n");
...@@ -497,8 +501,10 @@ static void tas6424_fault_check_work(struct work_struct *work) ...@@ -497,8 +501,10 @@ static void tas6424_fault_check_work(struct work_struct *work)
TAS6424_WARN_VDD_OTW_CH3 | TAS6424_WARN_VDD_OTW_CH3 |
TAS6424_WARN_VDD_OTW_CH4; TAS6424_WARN_VDD_OTW_CH4;
if (!reg) if (!reg) {
tas6424->last_warn = reg;
goto out; goto out;
}
if ((reg & TAS6424_WARN_VDD_UV) && !(tas6424->last_warn & TAS6424_WARN_VDD_UV)) if ((reg & TAS6424_WARN_VDD_UV) && !(tas6424->last_warn & TAS6424_WARN_VDD_UV))
dev_warn(dev, "experienced a VDD under voltage condition\n"); dev_warn(dev, "experienced a VDD under voltage condition\n");
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/acpi.h>
#include "wm8804.h" #include "wm8804.h"
...@@ -40,17 +41,29 @@ static const struct i2c_device_id wm8804_i2c_id[] = { ...@@ -40,17 +41,29 @@ static const struct i2c_device_id wm8804_i2c_id[] = {
}; };
MODULE_DEVICE_TABLE(i2c, wm8804_i2c_id); MODULE_DEVICE_TABLE(i2c, wm8804_i2c_id);
#if defined(CONFIG_OF)
static const struct of_device_id wm8804_of_match[] = { static const struct of_device_id wm8804_of_match[] = {
{ .compatible = "wlf,wm8804", }, { .compatible = "wlf,wm8804", },
{ } { }
}; };
MODULE_DEVICE_TABLE(of, wm8804_of_match); MODULE_DEVICE_TABLE(of, wm8804_of_match);
#endif
#ifdef CONFIG_ACPI
static const struct acpi_device_id wm8804_acpi_match[] = {
{ "1AEC8804", 0 }, /* Wolfson PCI ID + part ID */
{ "10138804", 0 }, /* Cirrus Logic PCI ID + part ID */
{ },
};
MODULE_DEVICE_TABLE(acpi, wm8804_acpi_match);
#endif
static struct i2c_driver wm8804_i2c_driver = { static struct i2c_driver wm8804_i2c_driver = {
.driver = { .driver = {
.name = "wm8804", .name = "wm8804",
.pm = &wm8804_pm, .pm = &wm8804_pm,
.of_match_table = wm8804_of_match, .of_match_table = of_match_ptr(wm8804_of_match),
.acpi_match_table = ACPI_PTR(wm8804_acpi_match),
}, },
.probe = wm8804_i2c_probe, .probe = wm8804_i2c_probe,
.remove = wm8804_i2c_remove, .remove = wm8804_i2c_remove,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment