Re: [PATCH 1/9] drm/i915/dsb: Replace HAS_DSB check with dsb->cmd_buf check

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 30-01-2020 23:43, Souza, Jose wrote:
On Wed, 2020-01-29 at 20:20 +0200, Ville Syrjala wrote:
From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>

We may want to not use the DSB even if the platform has one.
So replace the HAS_DSB check in the _put() with a cmd_buf check
that will work in either case.
Reviewed-by: José Roberto de Souza <jose.souza@xxxxxxxxx>

Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
---
  drivers/gpu/drm/i915/display/intel_dsb.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c
b/drivers/gpu/drm/i915/display/intel_dsb.c
index 9dd18144a664..12776f09f227 100644
--- a/drivers/gpu/drm/i915/display/intel_dsb.c
+++ b/drivers/gpu/drm/i915/display/intel_dsb.c
@@ -160,9 +160,8 @@ intel_dsb_get(struct intel_crtc *crtc)
  void intel_dsb_put(struct intel_dsb *dsb)
  {
  	struct intel_crtc *crtc = container_of(dsb, typeof(*crtc),
dsb);
-	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
- if (!HAS_DSB(i915))
+	if (!dsb->cmd_buf)

Ville and Jose,

Have a concern here. In intel_dsb_get() if get failure during i915_gem_object_create_internal, i915_gem_object_ggtt_pin, i915_gem_object_pin_map then we may not have dsb->cmd_buf.
Then ref-count mechanism will break.
I feel HAS_DSB(i915) check is better than dsb->cmd_buf otherwise need to do some cleanup is intel_dsb_get() as well.

Regards,
Animesh

  		return;
if (WARN_ON(dsb->refcount == 0))
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux