mirror of https://github.com/torvalds/linux.git
The recent bug report suggests that BCLK setup for i915 HSW/BDW needs to be updated at each HDMI hotplug, not only at initialization and resume. That is, we need to update HSW_EM4 and HSW_EM5 registers at ELD notification, too. Otherwise the HDMI audio may be out of sync and played in a wrong pitch. However, the HDA codec driver has no access to the controller registers, and currently the code managing these registers is in hda_intel.c, i.e. local to the controller driver. For allowing the explicit BCLK update from the codec driver, as in this patch, the former haswell_set_bclk() in hda_intel.c is moved to hdac_i915.c and exposed as snd_hdac_i915_set_bclk(). This is called from both the HDA controller driver and intel_pin_eld_notify() in HDMI codec driver. Along with this change, snd_hdac_get_display_clk() gets dropped as it's no longer used. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91410 Cc: <stable@vger.kernel.org> # v4.5+ Signed-off-by: Takashi Iwai <tiwai@suse.de> |
||
|---|---|---|
| .. | ||
| ac97_codec.h | ||
| aci.h | ||
| ad1816a.h | ||
| ad1843.h | ||
| adau1373.h | ||
| aess.h | ||
| ak4xxx-adda.h | ||
| ak4113.h | ||
| ak4114.h | ||
| ak4117.h | ||
| ak4531_codec.h | ||
| ak4641.h | ||
| alc5623.h | ||
| asequencer.h | ||
| asound.h | ||
| asoundef.h | ||
| atmel-abdac.h | ||
| atmel-ac97c.h | ||
| compress_driver.h | ||
| control.h | ||
| core.h | ||
| cs42l52.h | ||
| cs42l56.h | ||
| cs42l73.h | ||
| cs4231-regs.h | ||
| cs4271.h | ||
| cs8403.h | ||
| cs8427.h | ||
| da7213.h | ||
| da7218.h | ||
| da7219-aad.h | ||
| da7219.h | ||
| da9055.h | ||
| designware_i2s.h | ||
| dmaengine_pcm.h | ||
| emu10k1.h | ||
| emu10k1_synth.h | ||
| emu8000.h | ||
| emu8000_reg.h | ||
| emux_legacy.h | ||
| emux_synth.h | ||
| es1688.h | ||
| gus.h | ||
| hda_chmap.h | ||
| hda_hwdep.h | ||
| hda_i915.h | ||
| hda_register.h | ||
| hda_regmap.h | ||
| hda_verbs.h | ||
| hdaudio.h | ||
| hdaudio_ext.h | ||
| hwdep.h | ||
| i2c.h | ||
| info.h | ||
| initval.h | ||
| jack.h | ||
| l3.h | ||
| max9768.h | ||
| max98088.h | ||
| max98090.h | ||
| max98095.h | ||
| memalloc.h | ||
| minors.h | ||
| mixer_oss.h | ||
| mpu401.h | ||
| omap-hdmi-audio.h | ||
| omap-pcm.h | ||
| opl3.h | ||
| opl4.h | ||
| pcm-indirect.h | ||
| pcm.h | ||
| pcm_drm_eld.h | ||
| pcm_iec958.h | ||
| pcm_oss.h | ||
| pcm_params.h | ||
| pt2258.h | ||
| pxa2xx-lib.h | ||
| rawmidi.h | ||
| rt286.h | ||
| rt298.h | ||
| rt5640.h | ||
| rt5645.h | ||
| rt5651.h | ||
| rt5659.h | ||
| rt5670.h | ||
| rt5677.h | ||
| s3c24xx_uda134x.h | ||
| sb.h | ||
| sb16_csp.h | ||
| seq_device.h | ||
| seq_kernel.h | ||
| seq_midi_emul.h | ||
| seq_midi_event.h | ||
| seq_oss.h | ||
| seq_oss_legacy.h | ||
| seq_virmidi.h | ||
| sh_dac_audio.h | ||
| sh_fsi.h | ||
| simple_card.h | ||
| snd_wavefront.h | ||
| soc-dai.h | ||
| soc-dapm.h | ||
| soc-dpcm.h | ||
| soc-topology.h | ||
| soc.h | ||
| soundfont.h | ||
| spear_dma.h | ||
| spear_spdif.h | ||
| sta32x.h | ||
| sta350.h | ||
| tas2552-plat.h | ||
| tas5086.h | ||
| tea6330t.h | ||
| timer.h | ||
| tlv.h | ||
| tlv320aic3x.h | ||
| tlv320aic32x4.h | ||
| tlv320dac33-plat.h | ||
| tpa6130a2-plat.h | ||
| uda134x.h | ||
| uda1380.h | ||
| util_mem.h | ||
| vx_core.h | ||
| wavefront.h | ||
| wm0010.h | ||
| wm1250-ev1.h | ||
| wm2000.h | ||
| wm2200.h | ||
| wm5100.h | ||
| wm8903.h | ||
| wm8904.h | ||
| wm8955.h | ||
| wm8960.h | ||
| wm8962.h | ||
| wm8993.h | ||
| wm8996.h | ||
| wm9081.h | ||
| wm9090.h | ||
| wss.h | ||