linux/sound
Mengdong Lin 6d4f6fb5a4 ALSA: hda - restore BCLK M/N values when resuming HSW/BDW display controller
commit a07187c992 upstream.

For Intel Haswell/Broadwell display HD-A controller, the 24MHz HD-A link BCLK
is converted from Core Display Clock (CDCLK): BCLK = CDCLK * M / N
And there are two registers EM4 and EM5 to program M, N value respectively.
The EM4/EM5 values will be lost and when the display power well is disabled.

BIOS programs CDCLK selected by OEM and EM4/EM5, but BIOS has no idea about
display power well on/off at runtime. So the M/N can be wrong if non-default
CDCLK is used when the audio controller resumes, which results in an invalid
BCLK and abnormal audio playback rate. So this patch saves and restores valid
M/N values on controller suspend/resume.

And 'struct hda_intel' is defined to contain standard HD-A 'struct azx' and
Intel specific fields, as Takashi suggested.

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2014-07-06 18:59:12 -07:00
..
aoa ALSA: Drop __bitwise and typedefs for snd_device attributes 2014-02-14 08:20:24 +01:00
arm ALSA: arm: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:03 +01:00
atmel ALSA: atmel: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:04 +01:00
core ALSA: control: Make sure that id->index does not overflow 2014-06-26 15:17:37 -04:00
drivers ALSA: drivers: Convert to snd_card_new() with a device pointer 2014-02-12 10:58:20 +01:00
firewire ALSA: firewire: Convert to snd_card_new() with a device pointer 2014-02-14 08:13:31 +01:00
i2c ALSA: cs8427: separate HW initialization 2014-04-03 14:59:48 +02:00
isa ALSA: sb_mixer: missing return statement 2014-05-14 16:46:48 +02:00
mips ALSA: au1x00: use module_platform_driver() 2014-04-09 10:02:14 +02:00
oss sound fixes for 3.15-rc1 2014-04-10 09:19:44 -07:00
parisc ALSA: parisc: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:05 +01:00
pci ALSA: hda - restore BCLK M/N values when resuming HSW/BDW display controller 2014-07-06 18:59:12 -07:00
pcmcia ALSA: pcmcia: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:06 +01:00
ppc ALSA: ppc: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:06 +01:00
sh ALSA: sh: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:07 +01:00
soc ASoC: tlv320aci3x: Fix custom snd_soc_dapm_put_volsw_aic3x() function 2014-06-26 15:17:35 -04:00
sparc ALSA: sparc: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:07 +01:00
spi ALSA: spi: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:08 +01:00
synth sound: Add export.h for THIS_MODULE/EXPORT_SYMBOL where needed 2011-10-31 19:31:22 -04:00
usb ALSA: usb-audio: Fix races at disconnection and PCM closing 2014-07-06 18:59:12 -07:00
ac97_bus.c sound: Fixed line limit issue in sound/ac97_bus.c 2010-12-06 16:09:49 +01:00
Kconfig sound: remove reference to feature-removal-schedule.txt 2012-12-17 17:15:12 -08:00
last.c ALSA: Remove the last mention of SNDRV_MAIN_OBJECT_FILE 2012-09-03 10:07:23 +02:00
Makefile ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
sound_core.c consolidate the reassignments of ->f_op in ->open() instances 2013-10-24 23:34:53 -04:00
sound_firmware.c sound_firmware: don't bother with filp_close() 2013-04-09 15:16:32 -04:00