tangled
alpha
login
or
join now
tjh.dev
/
kernel
1
fork
atom
Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1
fork
atom
overview
issues
pulls
pipelines
Merge existing fixes from asoc/for-5.19 into new branch
Mark Brown
3 years ago
be1a63da
f2906aa8
+67
-25
9 changed files
expand all
collapse all
unified
split
sound
soc
codecs
cs35l36.c
cs42l51.c
cs42l52.c
cs42l56.c
cs53l30.c
nau8822.c
nau8822.h
intel
boards
sof_cirrus_common.c
qcom
lpass-platform.c
+2
-1
sound/soc/codecs/cs35l36.c
reviewed
···
444
444
}
445
445
}
446
446
447
447
-
static DECLARE_TLV_DB_SCALE(dig_vol_tlv, -10200, 25, 0);
447
447
+
static const DECLARE_TLV_DB_RANGE(dig_vol_tlv, 0, 912,
448
448
+
TLV_DB_MINMAX_ITEM(-10200, 1200));
448
449
static DECLARE_TLV_DB_SCALE(amp_gain_tlv, 0, 1, 1);
449
450
450
451
static const char * const cs35l36_pcm_sftramp_text[] = {
+1
-1
sound/soc/codecs/cs42l51.c
reviewed
···
143
143
0, 0xA0, 96, adc_att_tlv),
144
144
SOC_DOUBLE_R_SX_TLV("PGA Volume",
145
145
CS42L51_ALC_PGA_CTL, CS42L51_ALC_PGB_CTL,
146
146
-
0, 0x1A, 30, pga_tlv),
146
146
+
0, 0x19, 30, pga_tlv),
147
147
SOC_SINGLE("Playback Deemphasis Switch", CS42L51_DAC_CTL, 3, 1, 0),
148
148
SOC_SINGLE("Auto-Mute Switch", CS42L51_DAC_CTL, 2, 1, 0),
149
149
SOC_SINGLE("Soft Ramp Switch", CS42L51_DAC_CTL, 1, 1, 0),
+5
-3
sound/soc/codecs/cs42l52.c
reviewed
···
137
137
138
138
static DECLARE_TLV_DB_SCALE(pga_tlv, -600, 50, 0);
139
139
140
140
-
static DECLARE_TLV_DB_SCALE(mix_tlv, -50, 50, 0);
140
140
+
static DECLARE_TLV_DB_SCALE(pass_tlv, -6000, 50, 0);
141
141
+
142
142
+
static DECLARE_TLV_DB_SCALE(mix_tlv, -5150, 50, 0);
141
143
142
144
static DECLARE_TLV_DB_SCALE(beep_tlv, -56, 200, 0);
143
145
···
353
351
CS42L52_SPKB_VOL, 0, 0x40, 0xC0, hl_tlv),
354
352
355
353
SOC_DOUBLE_R_SX_TLV("Bypass Volume", CS42L52_PASSTHRUA_VOL,
356
356
-
CS42L52_PASSTHRUB_VOL, 0, 0x88, 0x90, pga_tlv),
354
354
+
CS42L52_PASSTHRUB_VOL, 0, 0x88, 0x90, pass_tlv),
357
355
358
356
SOC_DOUBLE("Bypass Mute", CS42L52_MISC_CTL, 4, 5, 1, 0),
359
357
···
366
364
CS42L52_ADCB_VOL, 0, 0xA0, 0x78, ipd_tlv),
367
365
SOC_DOUBLE_R_SX_TLV("ADC Mixer Volume",
368
366
CS42L52_ADCA_MIXER_VOL, CS42L52_ADCB_MIXER_VOL,
369
369
-
0, 0x19, 0x7F, ipd_tlv),
367
367
+
0, 0x19, 0x7F, mix_tlv),
370
368
371
369
SOC_DOUBLE("ADC Switch", CS42L52_ADC_MISC_CTL, 0, 1, 1, 0),
372
370
+2
-2
sound/soc/codecs/cs42l56.c
reviewed
···
391
391
SOC_DOUBLE("ADC Boost Switch", CS42L56_GAIN_BIAS_CTL, 3, 2, 1, 1),
392
392
393
393
SOC_DOUBLE_R_SX_TLV("Headphone Volume", CS42L56_HPA_VOLUME,
394
394
-
CS42L56_HPB_VOLUME, 0, 0x84, 0x48, hl_tlv),
394
394
+
CS42L56_HPB_VOLUME, 0, 0x44, 0x48, hl_tlv),
395
395
SOC_DOUBLE_R_SX_TLV("LineOut Volume", CS42L56_LOA_VOLUME,
396
396
-
CS42L56_LOB_VOLUME, 0, 0x84, 0x48, hl_tlv),
396
396
+
CS42L56_LOB_VOLUME, 0, 0x44, 0x48, hl_tlv),
397
397
398
398
SOC_SINGLE_TLV("Bass Shelving Volume", CS42L56_TONE_CTL,
399
399
0, 0x00, 1, tone_tlv),
+8
-8
sound/soc/codecs/cs53l30.c
reviewed
···
348
348
SOC_ENUM("ADC2 NG Delay", adc2_ng_delay_enum),
349
349
350
350
SOC_SINGLE_SX_TLV("ADC1A PGA Volume",
351
351
-
CS53L30_ADC1A_AFE_CTL, 0, 0x34, 0x18, pga_tlv),
351
351
+
CS53L30_ADC1A_AFE_CTL, 0, 0x34, 0x24, pga_tlv),
352
352
SOC_SINGLE_SX_TLV("ADC1B PGA Volume",
353
353
-
CS53L30_ADC1B_AFE_CTL, 0, 0x34, 0x18, pga_tlv),
353
353
+
CS53L30_ADC1B_AFE_CTL, 0, 0x34, 0x24, pga_tlv),
354
354
SOC_SINGLE_SX_TLV("ADC2A PGA Volume",
355
355
-
CS53L30_ADC2A_AFE_CTL, 0, 0x34, 0x18, pga_tlv),
355
355
+
CS53L30_ADC2A_AFE_CTL, 0, 0x34, 0x24, pga_tlv),
356
356
SOC_SINGLE_SX_TLV("ADC2B PGA Volume",
357
357
-
CS53L30_ADC2B_AFE_CTL, 0, 0x34, 0x18, pga_tlv),
357
357
+
CS53L30_ADC2B_AFE_CTL, 0, 0x34, 0x24, pga_tlv),
358
358
359
359
SOC_SINGLE_SX_TLV("ADC1A Digital Volume",
360
360
-
CS53L30_ADC1A_DIG_VOL, 0, 0xA0, 0x0C, dig_tlv),
360
360
+
CS53L30_ADC1A_DIG_VOL, 0, 0xA0, 0x6C, dig_tlv),
361
361
SOC_SINGLE_SX_TLV("ADC1B Digital Volume",
362
362
-
CS53L30_ADC1B_DIG_VOL, 0, 0xA0, 0x0C, dig_tlv),
362
362
+
CS53L30_ADC1B_DIG_VOL, 0, 0xA0, 0x6C, dig_tlv),
363
363
SOC_SINGLE_SX_TLV("ADC2A Digital Volume",
364
364
-
CS53L30_ADC2A_DIG_VOL, 0, 0xA0, 0x0C, dig_tlv),
364
364
+
CS53L30_ADC2A_DIG_VOL, 0, 0xA0, 0x6C, dig_tlv),
365
365
SOC_SINGLE_SX_TLV("ADC2B Digital Volume",
366
366
-
CS53L30_ADC2B_DIG_VOL, 0, 0xA0, 0x0C, dig_tlv),
366
366
+
CS53L30_ADC2B_DIG_VOL, 0, 0xA0, 0x6C, dig_tlv),
367
367
};
368
368
369
369
static const struct snd_soc_dapm_widget cs53l30_dapm_widgets[] = {
+4
sound/soc/codecs/nau8822.c
reviewed
···
741
741
pll_param->mclk_scaler, pll_param->pre_factor);
742
742
743
743
snd_soc_component_update_bits(component,
744
744
+
NAU8822_REG_POWER_MANAGEMENT_1, NAU8822_PLL_EN_MASK, NAU8822_PLL_OFF);
745
745
+
snd_soc_component_update_bits(component,
744
746
NAU8822_REG_PLL_N, NAU8822_PLLMCLK_DIV2 | NAU8822_PLLN_MASK,
745
747
(pll_param->pre_factor ? NAU8822_PLLMCLK_DIV2 : 0) |
746
748
pll_param->pll_int);
···
759
757
pll_param->mclk_scaler << NAU8822_MCLKSEL_SFT);
760
758
snd_soc_component_update_bits(component,
761
759
NAU8822_REG_CLOCKING, NAU8822_CLKM_MASK, NAU8822_CLKM_PLL);
760
760
+
snd_soc_component_update_bits(component,
761
761
+
NAU8822_REG_POWER_MANAGEMENT_1, NAU8822_PLL_EN_MASK, NAU8822_PLL_ON);
762
762
763
763
return 0;
764
764
}
+3
sound/soc/codecs/nau8822.h
reviewed
···
90
90
#define NAU8822_REFIMP_3K 0x3
91
91
#define NAU8822_IOBUF_EN (0x1 << 2)
92
92
#define NAU8822_ABIAS_EN (0x1 << 3)
93
93
+
#define NAU8822_PLL_EN_MASK (0x1 << 5)
94
94
+
#define NAU8822_PLL_ON (0x1 << 5)
95
95
+
#define NAU8822_PLL_OFF (0x0 << 5)
93
96
94
97
/* NAU8822_REG_AUDIO_INTERFACE (0x4) */
95
98
#define NAU8822_AIFMT_MASK (0x3 << 3)
+41
-9
sound/soc/intel/boards/sof_cirrus_common.c
reviewed
···
54
54
},
55
55
};
56
56
57
57
+
/*
58
58
+
* Mapping between ACPI instance id and speaker position.
59
59
+
*
60
60
+
* Four speakers:
61
61
+
* 0: Tweeter left, 1: Woofer left
62
62
+
* 2: Tweeter right, 3: Woofer right
63
63
+
*/
57
64
static struct snd_soc_codec_conf cs35l41_codec_conf[] = {
58
65
{
59
66
.dlc = COMP_CODEC_CONF(CS35L41_DEV0_NAME),
60
60
-
.name_prefix = "WL",
61
61
-
},
62
62
-
{
63
63
-
.dlc = COMP_CODEC_CONF(CS35L41_DEV1_NAME),
64
64
-
.name_prefix = "WR",
65
65
-
},
66
66
-
{
67
67
-
.dlc = COMP_CODEC_CONF(CS35L41_DEV2_NAME),
68
67
.name_prefix = "TL",
69
68
},
70
69
{
71
71
-
.dlc = COMP_CODEC_CONF(CS35L41_DEV3_NAME),
70
70
+
.dlc = COMP_CODEC_CONF(CS35L41_DEV1_NAME),
71
71
+
.name_prefix = "WL",
72
72
+
},
73
73
+
{
74
74
+
.dlc = COMP_CODEC_CONF(CS35L41_DEV2_NAME),
72
75
.name_prefix = "TR",
76
76
+
},
77
77
+
{
78
78
+
.dlc = COMP_CODEC_CONF(CS35L41_DEV3_NAME),
79
79
+
.name_prefix = "WR",
73
80
},
74
81
};
75
82
···
108
101
return ret;
109
102
}
110
103
104
104
+
/*
105
105
+
* Channel map:
106
106
+
*
107
107
+
* TL/WL: ASPRX1 on slot 0, ASPRX2 on slot 1 (default)
108
108
+
* TR/WR: ASPRX1 on slot 1, ASPRX2 on slot 0
109
109
+
*/
110
110
+
static const struct {
111
111
+
unsigned int rx[2];
112
112
+
} cs35l41_channel_map[] = {
113
113
+
{.rx = {0, 1}}, /* TL */
114
114
+
{.rx = {0, 1}}, /* WL */
115
115
+
{.rx = {1, 0}}, /* TR */
116
116
+
{.rx = {1, 0}}, /* WR */
117
117
+
};
118
118
+
111
119
static int cs35l41_hw_params(struct snd_pcm_substream *substream,
112
120
struct snd_pcm_hw_params *params)
113
121
{
···
153
131
clk_freq, SND_SOC_CLOCK_IN);
154
132
if (ret < 0) {
155
133
dev_err(codec_dai->dev, "fail to set component sysclk, ret %d\n",
134
134
+
ret);
135
135
+
return ret;
136
136
+
}
137
137
+
138
138
+
/* setup channel map */
139
139
+
ret = snd_soc_dai_set_channel_map(codec_dai, 0, NULL,
140
140
+
ARRAY_SIZE(cs35l41_channel_map[i].rx),
141
141
+
(unsigned int *)cs35l41_channel_map[i].rx);
142
142
+
if (ret < 0) {
143
143
+
dev_err(codec_dai->dev, "fail to set channel map, ret %d\n",
156
144
ret);
157
145
return ret;
158
146
}
+1
-1
sound/soc/qcom/lpass-platform.c
reviewed
···
898
898
struct snd_pcm_runtime *runtime = substream->runtime;
899
899
unsigned long size, offset;
900
900
901
901
-
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
901
901
+
vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
902
902
size = vma->vm_end - vma->vm_start;
903
903
offset = vma->vm_pgoff << PAGE_SHIFT;
904
904
return io_remap_pfn_range(vma, vma->vm_start,