Merge branch 'asoc-5.4' into asoc-linus
This commit is contained in:
commit
3701d2cb87
|
@ -3270,6 +3270,9 @@ static void rt5645_jack_detect_work(struct work_struct *work)
|
|||
snd_soc_jack_report(rt5645->mic_jack,
|
||||
report, SND_JACK_MICROPHONE);
|
||||
return;
|
||||
case 4:
|
||||
val = snd_soc_component_read32(rt5645->component, RT5645_A_JD_CTRL1) & 0x0020;
|
||||
break;
|
||||
default: /* read rt5645 jd1_1 status */
|
||||
val = snd_soc_component_read32(rt5645->component, RT5645_INT_IRQ_ST) & 0x1000;
|
||||
break;
|
||||
|
@ -3603,7 +3606,7 @@ static const struct rt5645_platform_data intel_braswell_platform_data = {
|
|||
static const struct rt5645_platform_data buddy_platform_data = {
|
||||
.dmic1_data_pin = RT5645_DMIC_DATA_GPIO5,
|
||||
.dmic2_data_pin = RT5645_DMIC_DATA_IN2P,
|
||||
.jd_mode = 3,
|
||||
.jd_mode = 4,
|
||||
.level_trigger_irq = true,
|
||||
};
|
||||
|
||||
|
@ -3999,6 +4002,7 @@ static int rt5645_i2c_probe(struct i2c_client *i2c,
|
|||
RT5645_JD1_MODE_1);
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
regmap_update_bits(rt5645->regmap, RT5645_A_JD_CTRL1,
|
||||
RT5645_JD1_MODE_MASK,
|
||||
RT5645_JD1_MODE_2);
|
||||
|
|
|
@ -1002,6 +1002,7 @@ static int rt5682_set_jack_detect(struct snd_soc_component *component,
|
|||
RT5682_JD1_EN_MASK, RT5682_JD1_DIS);
|
||||
regmap_update_bits(rt5682->regmap, RT5682_RC_CLK_CTRL,
|
||||
RT5682_POW_JDH | RT5682_POW_JDL, 0);
|
||||
cancel_delayed_work_sync(&rt5682->jack_detect_work);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1450,28 +1451,6 @@ static const struct snd_kcontrol_new hpor_switch =
|
|||
SOC_DAPM_SINGLE_AUTODISABLE("Switch", RT5682_HP_CTRL_1,
|
||||
RT5682_R_MUTE_SFT, 1, 1);
|
||||
|
||||
static int rt5682_charge_pump_event(struct snd_soc_dapm_widget *w,
|
||||
struct snd_kcontrol *kcontrol, int event)
|
||||
{
|
||||
struct snd_soc_component *component =
|
||||
snd_soc_dapm_to_component(w->dapm);
|
||||
|
||||
switch (event) {
|
||||
case SND_SOC_DAPM_PRE_PMU:
|
||||
snd_soc_component_update_bits(component,
|
||||
RT5682_HP_CHARGE_PUMP_1, RT5682_PM_HP_MASK, RT5682_PM_HP_HV);
|
||||
break;
|
||||
case SND_SOC_DAPM_POST_PMD:
|
||||
snd_soc_component_update_bits(component,
|
||||
RT5682_HP_CHARGE_PUMP_1, RT5682_PM_HP_MASK, RT5682_PM_HP_LV);
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rt5682_hp_event(struct snd_soc_dapm_widget *w,
|
||||
struct snd_kcontrol *kcontrol, int event)
|
||||
{
|
||||
|
@ -1755,8 +1734,7 @@ static const struct snd_soc_dapm_widget rt5682_dapm_widgets[] = {
|
|||
SND_SOC_DAPM_SUPPLY("HP Amp R", RT5682_PWR_ANLG_1,
|
||||
RT5682_PWR_HA_R_BIT, 0, NULL, 0),
|
||||
SND_SOC_DAPM_SUPPLY_S("Charge Pump", 1, RT5682_DEPOP_1,
|
||||
RT5682_PUMP_EN_SFT, 0, rt5682_charge_pump_event,
|
||||
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
|
||||
RT5682_PUMP_EN_SFT, 0, NULL, 0),
|
||||
SND_SOC_DAPM_SUPPLY_S("Capless", 2, RT5682_DEPOP_1,
|
||||
RT5682_CAPLESS_EN_SFT, 0, NULL, 0),
|
||||
|
||||
|
@ -2654,6 +2632,8 @@ static int rt5682_i2c_probe(struct i2c_client *i2c,
|
|||
RT5682_HPA_CP_BIAS_CTRL_MASK, RT5682_HPA_CP_BIAS_3UA);
|
||||
regmap_update_bits(rt5682->regmap, RT5682_CHARGE_PUMP_1,
|
||||
RT5682_CP_CLK_HP_MASK, RT5682_CP_CLK_HP_300KHZ);
|
||||
regmap_update_bits(rt5682->regmap, RT5682_HP_CHARGE_PUMP_1,
|
||||
RT5682_PM_HP_MASK, RT5682_PM_HP_HV);
|
||||
|
||||
INIT_DELAYED_WORK(&rt5682->jack_detect_work,
|
||||
rt5682_jack_detect_handler);
|
||||
|
|
|
@ -1917,6 +1917,7 @@ static int wm8904_set_bias_level(struct snd_soc_component *component,
|
|||
snd_soc_component_update_bits(component, WM8904_BIAS_CONTROL_0,
|
||||
WM8904_BIAS_ENA, 0);
|
||||
|
||||
snd_soc_component_write(component, WM8904_SW_RESET_AND_ID, 0);
|
||||
regcache_cache_only(wm8904->regmap, true);
|
||||
regcache_mark_dirty(wm8904->regmap);
|
||||
|
||||
|
|
|
@ -405,10 +405,12 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
|
|||
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW5-012"),
|
||||
},
|
||||
.driver_data = (void *)(BYT_RT5640_IN1_MAP |
|
||||
BYT_RT5640_MCLK_EN |
|
||||
BYT_RT5640_SSP0_AIF1),
|
||||
|
||||
.driver_data = (void *)(BYT_RT5640_DMIC1_MAP |
|
||||
BYT_RT5640_JD_SRC_JD2_IN4N |
|
||||
BYT_RT5640_OVCD_TH_2000UA |
|
||||
BYT_RT5640_OVCD_SF_0P75 |
|
||||
BYT_RT5640_SSP0_AIF1 |
|
||||
BYT_RT5640_MCLK_EN),
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
|
|
|
@ -376,6 +376,17 @@ u32 rsnd_get_adinr_bit(struct rsnd_mod *mod, struct rsnd_dai_stream *io)
|
|||
*/
|
||||
u32 rsnd_get_dalign(struct rsnd_mod *mod, struct rsnd_dai_stream *io)
|
||||
{
|
||||
static const u32 dalign_values[8][2] = {
|
||||
{0x76543210, 0x67452301},
|
||||
{0x00000032, 0x00000023},
|
||||
{0x00007654, 0x00006745},
|
||||
{0x00000076, 0x00000067},
|
||||
{0xfedcba98, 0xefcdab89},
|
||||
{0x000000ba, 0x000000ab},
|
||||
{0x0000fedc, 0x0000efcd},
|
||||
{0x000000fe, 0x000000ef},
|
||||
};
|
||||
int id = 0, inv;
|
||||
struct rsnd_mod *ssiu = rsnd_io_to_mod_ssiu(io);
|
||||
struct rsnd_mod *target;
|
||||
struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
|
||||
|
@ -411,13 +422,18 @@ u32 rsnd_get_dalign(struct rsnd_mod *mod, struct rsnd_dai_stream *io)
|
|||
target = cmd ? cmd : ssiu;
|
||||
}
|
||||
|
||||
if (mod == ssiu)
|
||||
id = rsnd_mod_id_sub(mod);
|
||||
|
||||
/* Non target mod or non 16bit needs normal DALIGN */
|
||||
if ((snd_pcm_format_width(runtime->format) != 16) ||
|
||||
(mod != target))
|
||||
return 0x76543210;
|
||||
inv = 0;
|
||||
/* Target mod needs inverted DALIGN when 16bit */
|
||||
else
|
||||
return 0x67452301;
|
||||
inv = 1;
|
||||
|
||||
return dalign_values[id][inv];
|
||||
}
|
||||
|
||||
u32 rsnd_get_busif_shift(struct rsnd_dai_stream *io, struct rsnd_mod *mod)
|
||||
|
|
|
@ -82,10 +82,9 @@ void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask)
|
|||
unsigned int sync = 0;
|
||||
int enable;
|
||||
|
||||
trace_snd_soc_jack_report(jack, mask, status);
|
||||
|
||||
if (!jack)
|
||||
return;
|
||||
trace_snd_soc_jack_report(jack, mask, status);
|
||||
|
||||
dapm = &jack->card->dapm;
|
||||
|
||||
|
|
Loading…
Reference in a new issue