On Tue, 11 Oct 2022, Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > 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? Quickly eyeballed through it all, overall looks good, but didn't do detailed review. Ack. Cc: Vinod too. BR, Jani. > > 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(-) -- Jani Nikula, Intel Open Source Graphics Center