> -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Animesh > Manna > Sent: Friday, March 25, 2022 9:42 PM > To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Das, Nirmoy <nirmoy.das@xxxxxxxxx> > Subject: [PATCH] drm/i915/dsb: modified to drm_info in dsb_prepare() > > The request to aqquire gem resources is failing for DSB in rare scenario where it is > busy and the register programming will be done through mmio fallback path. > > DSB has extra advantage of faster register programming which may go away > through mmio path. Adding wait for gem resource also may not be right as anyways > losing time. > > To make the CI execution happy replaced drm_err() to drm_info() for printing debug > info during dsb buffer preparation. > > v1: Initial version. > v2: Added print for mmio fallback at out label. [Nirmoy] > v3: Improved debug message. [Nirmoy] Pushed to drm-intel-next. Thanks for the patch and reviews. Regards, Uma Shankar > Reviewed-by: Nirmoy Das <nirmoy.das@xxxxxxxxx> > Cc: Nirmoy Das <nirmoy.das@xxxxxxxxxxxxxxx> > Signed-off-by: Animesh Manna <animesh.manna@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_dsb.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c > b/drivers/gpu/drm/i915/display/intel_dsb.c > index b34a67309976..c4affcb216fd 100644 > --- a/drivers/gpu/drm/i915/display/intel_dsb.c > +++ b/drivers/gpu/drm/i915/display/intel_dsb.c > @@ -283,14 +283,12 @@ void intel_dsb_prepare(struct intel_crtc_state > *crtc_state) > > obj = i915_gem_object_create_internal(i915, DSB_BUF_SIZE); > if (IS_ERR(obj)) { > - drm_err(&i915->drm, "Gem object creation failed\n"); > kfree(dsb); > goto out; > } > > vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, 0); > if (IS_ERR(vma)) { > - drm_err(&i915->drm, "Vma creation failed\n"); > i915_gem_object_put(obj); > kfree(dsb); > goto out; > @@ -298,7 +296,6 @@ void intel_dsb_prepare(struct intel_crtc_state *crtc_state) > > buf = i915_gem_object_pin_map_unlocked(vma->obj, I915_MAP_WC); > if (IS_ERR(buf)) { > - drm_err(&i915->drm, "Command buffer creation failed\n"); > i915_vma_unpin_and_release(&vma, I915_VMA_RELEASE_MAP); > kfree(dsb); > goto out; > @@ -311,6 +308,10 @@ void intel_dsb_prepare(struct intel_crtc_state *crtc_state) > dsb->ins_start_offset = 0; > crtc_state->dsb = dsb; > out: > + if (!crtc_state->dsb) > + drm_info(&i915->drm, > + "DSB queue setup failed, will fallback to MMIO for display > HW > +programming\n"); > + > intel_runtime_pm_put(&i915->runtime_pm, wakeref); } > > -- > 2.29.0