From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> There was some discussion around ELD precompute, so I decided to have a quick look at hooking that up. Unfortunately the i915 audio code is a bit of a mess so ended up with a patchbomb of cleanups. Sorry about that. The actually interesting stuff is at the end of the series. The precumpute+readot+state checker is pretty self explanatory stuff for the most part. But I think we need to decide what to do with the hardware ELD buffer in general. It's totally busted atm on HSW (and I'd expecpt BDW as well), but we had no idea since we had no readout+state checker for it. So do we try to salvage it (I guess to mainly act as some kind of "did we enable audio correctly?" canary) or do we just stop programming it outright? And on which platforms could we do that? Cc: Chaitanya Kumar Borah <chaitanya.kumar.borah@xxxxxxxxx> Cc: Kai Vehmanen <kai.vehmanen@xxxxxxxxxxxxxxx> Cc: Takashi Iwai <tiwai@xxxxxxx> Ville Syrjälä (22): drm/i915/audio: s/dev_priv/i915/ drm/i915/audio: Nuke leftover ROUNDING_FACTOR drm/i915/audio: Remove CL/BLC audio stuff drm/i915/audio: Exract struct ilk_audio_regs drm/i915/audio: Use REG_BIT() & co. drm/i915/audio: Unify register bit naming drm/i915/audio: Protect singleton register with a lock drm/i915/audio: Nuke intel_eld_uptodate() drm/i915/audio: Read ELD buffer size from hardware drm/i915/audio: Make sure we write the whole ELD buffer drm/i915/audio: Use u32* for ELD drm/i915/audio: Use intel_de_rmw() for most audio registers drm/i915/audio: Split "ELD valid" vs. audio PD on hsw+ drm/i915/audio: Do the vblank waits drm/i915/audio: Precompute the ELD drm/i915/audio: Hardware ELD readout drm/i915/sdvo: Extract intel_sdvo_has_audio() drm/i915/sdvo: Precompute the ELD drm/i915/sdvo: Do ELD hardware readout drm/i915/audio: Hook up ELD into the state checker drm/i915/audio: Include ELD in the state dump hax: drm/i915/audio: Make HSW hardware ELD buffer sort of work drivers/gpu/drm/i915/display/g4x_dp.c | 2 + drivers/gpu/drm/i915/display/g4x_hdmi.c | 2 + drivers/gpu/drm/i915/display/intel_audio.c | 792 ++++++++++-------- drivers/gpu/drm/i915/display/intel_audio.h | 7 + .../gpu/drm/i915/display/intel_audio_regs.h | 88 +- .../drm/i915/display/intel_crtc_state_dump.c | 17 + drivers/gpu/drm/i915/display/intel_ddi.c | 2 + drivers/gpu/drm/i915/display/intel_display.c | 43 + .../drm/i915/display/intel_display_types.h | 2 + drivers/gpu/drm/i915/display/intel_dp.c | 4 +- drivers/gpu/drm/i915/display/intel_hdmi.c | 4 +- drivers/gpu/drm/i915/display/intel_sdvo.c | 54 +- 12 files changed, 608 insertions(+), 409 deletions(-) -- 2.35.1