mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
Merge remote-tracking branch 'sm8350/lineage-20' into lineage-22.2
* sm8350/lineage-20: ANDROID: bpf: do not fail to load if log is full ANDROID: fix kernelci compressed kernel linking ANDROID: GKI: Update symbol list for Zebra UPSTREAM: posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del() Linux 5.4.295 scsi: qedf: Use designated initializer for struct qed_fcoe_cb_ops arm64/ptrace: Fix stack-out-of-bounds read in regs_get_kernel_stack_nth() perf: Fix sample vs do_exit() s390/pci: Fix __pcilg_mio_inuser() inline assembly rtc: test: Fix invalid format specifier. jbd2: fix data-race and null-ptr-deref in jbd2_journal_dirty_metadata() mm/huge_memory: fix dereferencing invalid pmd migration entry rtc: Make rtc_time64_to_tm() support dates before 1970 rtc: Improve performance of rtc_time64_to_tm(). Add tests. xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del() ARM: dts: am335x-bone-common: Increase MDIO reset deassert delay to 50ms ARM: dts: am335x-bone-common: Increase MDIO reset deassert time ARM: dts: am335x-bone-common: Add GPIO PHY reset on revision C3 board net: atm: fix /proc/net/atm/lec handling ... Change-Id: Ibdde607f7a4ae5a74994603f513e7f94a9eb04ad
This commit is contained in:
commit
ee69f5d73d
412 changed files with 5791 additions and 4045 deletions
|
|
@ -1081,8 +1081,7 @@ static int snd_pcm_oss_change_params_locked(struct snd_pcm_substream *substream)
|
|||
runtime->oss.params = 0;
|
||||
runtime->oss.prepare = 1;
|
||||
runtime->oss.buffer_used = 0;
|
||||
if (runtime->dma_area)
|
||||
snd_pcm_format_set_silence(runtime->format, runtime->dma_area, bytes_to_samples(runtime, runtime->dma_bytes));
|
||||
snd_pcm_runtime_buffer_set_silence(runtime);
|
||||
|
||||
runtime->oss.period_frames = snd_pcm_alsa_frames(substream, oss_period_size);
|
||||
|
||||
|
|
|
|||
|
|
@ -648,6 +648,17 @@ static void snd_pcm_buffer_access_unlock(struct snd_pcm_runtime *runtime)
|
|||
atomic_inc(&runtime->buffer_accessing);
|
||||
}
|
||||
|
||||
/* fill the PCM buffer with the current silence format; called from pcm_oss.c */
|
||||
void snd_pcm_runtime_buffer_set_silence(struct snd_pcm_runtime *runtime)
|
||||
{
|
||||
snd_pcm_buffer_access_lock(runtime);
|
||||
if (runtime->dma_area)
|
||||
snd_pcm_format_set_silence(runtime->format, runtime->dma_area,
|
||||
bytes_to_samples(runtime, runtime->dma_bytes));
|
||||
snd_pcm_buffer_access_unlock(runtime);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(snd_pcm_runtime_buffer_set_silence);
|
||||
|
||||
#if IS_ENABLED(CONFIG_SND_PCM_OSS)
|
||||
#define is_oss_stream(substream) ((substream)->oss.oss)
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -1575,7 +1575,7 @@ static int snd_es1968_capture_open(struct snd_pcm_substream *substream)
|
|||
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||
struct es1968 *chip = snd_pcm_substream_chip(substream);
|
||||
struct esschan *es;
|
||||
int apu1, apu2;
|
||||
int err, apu1, apu2;
|
||||
|
||||
apu1 = snd_es1968_alloc_apu_pair(chip, ESM_APU_PCM_CAPTURE);
|
||||
if (apu1 < 0)
|
||||
|
|
@ -1618,7 +1618,9 @@ static int snd_es1968_capture_open(struct snd_pcm_substream *substream)
|
|||
runtime->hw = snd_es1968_capture;
|
||||
runtime->hw.buffer_bytes_max = runtime->hw.period_bytes_max =
|
||||
calc_available_memory_size(chip) - 1024; /* keep MIXBUF size */
|
||||
snd_pcm_hw_constraint_pow2(runtime, 0, SNDRV_PCM_HW_PARAM_BUFFER_BYTES);
|
||||
err = snd_pcm_hw_constraint_pow2(runtime, 0, SNDRV_PCM_HW_PARAM_BUFFER_BYTES);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
spin_lock_irq(&chip->substream_lock);
|
||||
list_add(&es->list, &chip->substream_list);
|
||||
|
|
|
|||
|
|
@ -2261,6 +2261,8 @@ static struct snd_pci_quirk power_save_blacklist[] = {
|
|||
SND_PCI_QUIRK(0x1734, 0x1232, "KONTRON SinglePC", 0),
|
||||
/* Dell ALC3271 */
|
||||
SND_PCI_QUIRK(0x1028, 0x0962, "Dell ALC3271", 0),
|
||||
/* https://bugzilla.kernel.org/show_bug.cgi?id=220210 */
|
||||
SND_PCI_QUIRK(0x17aa, 0x5079, "Lenovo Thinkpad E15", 0),
|
||||
{}
|
||||
};
|
||||
#endif /* CONFIG_PM */
|
||||
|
|
|
|||
|
|
@ -8296,6 +8296,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|||
SND_PCI_QUIRK(0x1028, 0x0871, "Dell Precision 3630", ALC255_FIXUP_DELL_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x1028, 0x0872, "Dell Precision 3630", ALC255_FIXUP_DELL_HEADSET_MIC),
|
||||
SND_PCI_QUIRK(0x1028, 0x0873, "Dell Precision 3930", ALC255_FIXUP_DUMMY_LINEOUT_VERB),
|
||||
SND_PCI_QUIRK(0x1028, 0x0879, "Dell Latitude 5420 Rugged", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE),
|
||||
SND_PCI_QUIRK(0x1028, 0x08ad, "Dell WYSE AIO", ALC225_FIXUP_DELL_WYSE_AIO_MIC_NO_PRESENCE),
|
||||
SND_PCI_QUIRK(0x1028, 0x08ae, "Dell WYSE NB", ALC225_FIXUP_DELL1_MIC_NO_PRESENCE),
|
||||
SND_PCI_QUIRK(0x1028, 0x0935, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ if SND_SUPERH
|
|||
|
||||
config SND_AICA
|
||||
tristate "Dreamcast Yamaha AICA sound"
|
||||
depends on SH_DREAMCAST
|
||||
depends on SH_DREAMCAST && SH_DMA_API
|
||||
select SND_PCM
|
||||
select G2_DMA
|
||||
help
|
||||
|
|
|
|||
|
|
@ -428,6 +428,19 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
|
|||
BYT_RT5640_SSP0_AIF2 |
|
||||
BYT_RT5640_MCLK_EN),
|
||||
},
|
||||
{ /* Acer Aspire SW3-013 */
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW3-013"),
|
||||
},
|
||||
.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_DIFF_MIC |
|
||||
BYT_RT5640_SSP0_AIF1 |
|
||||
BYT_RT5640_MCLK_EN),
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
||||
|
|
|
|||
|
|
@ -634,6 +634,33 @@ int snd_soc_get_volsw_range(struct snd_kcontrol *kcontrol,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(snd_soc_get_volsw_range);
|
||||
|
||||
static int snd_soc_clip_to_platform_max(struct snd_kcontrol *kctl)
|
||||
{
|
||||
struct soc_mixer_control *mc = (struct soc_mixer_control *)kctl->private_value;
|
||||
struct snd_ctl_elem_value uctl;
|
||||
int ret;
|
||||
|
||||
if (!mc->platform_max)
|
||||
return 0;
|
||||
|
||||
ret = kctl->get(kctl, &uctl);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (uctl.value.integer.value[0] > mc->platform_max)
|
||||
uctl.value.integer.value[0] = mc->platform_max;
|
||||
|
||||
if (snd_soc_volsw_is_stereo(mc) &&
|
||||
uctl.value.integer.value[1] > mc->platform_max)
|
||||
uctl.value.integer.value[1] = mc->platform_max;
|
||||
|
||||
ret = kctl->put(kctl, &uctl);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* snd_soc_limit_volume - Set new limit to an existing volume control.
|
||||
*
|
||||
|
|
@ -666,7 +693,7 @@ int snd_soc_limit_volume(struct snd_soc_card *card,
|
|||
mc = (struct soc_mixer_control *)kctl->private_value;
|
||||
if (max <= mc->max) {
|
||||
mc->platform_max = max;
|
||||
ret = 0;
|
||||
ret = snd_soc_clip_to_platform_max(kctl);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in a new issue