Current-Users archive

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

Re: HEADS UP: Merging drm update



Hi,

Ryo ONODERA <ryo%tetera.org@localhost> writes:

> Hi,
>
> Taylor R Campbell <riastradh%NetBSD.org@localhost> writes:
>
>> Better yet -- can you try the attached patch?
>> From e484fe666999730543f490ce6084486f7d7ce524 Mon Sep 17 00:00:00 2001
>> From: Taylor R Campbell <riastradh%NetBSD.org@localhost>
>> Date: Fri, 24 Dec 2021 11:12:43 +0000
>> Subject: [PATCH] i915: Use AcpiOsMapMemory, not bus_space_map, for opregion.
>>
>> Needed because this appears in firmware-type memory mappings, which
>> are excluded from bus_space_map.
>>
>> XXX pullup-9 (via manual patch since the code has changed a bit)
> (snip)
>
> Thank you very much.
>
> Your attached patch seems to be committed already.
> I have updated my src tree and build, boot the latest kernel.
> And the LCD turns black forever at different point.
> However I cannot see the last message from the kernel.
>
> Something goes wrong and i915drmkms does not work for my laptop yet.
> I will try to find a problematic point.

I915_WRITE_FW(PLANE_SURF(pipe, plane_id), 0); in line 687 turns
my LCD to yellow (rarely to blue).
If panic is removed, my LCD turns black finally and stay black forever
and does not reach to USB serial console.

   668  static void
   669  skl_disable_plane(struct intel_plane *plane,
   670                    const struct intel_crtc_state *crtc_state)
   671  {
   672          printf("Enter %s\n", __func__);
   673          struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
   674          enum plane_id plane_id = plane->id;
   675          enum pipe pipe = plane->pipe;
   676          unsigned long irqflags;
   677
   678          spin_lock_irqsave(&dev_priv->uncore.lock, irqflags);
   679
   680          if (icl_is_hdr_plane(dev_priv, plane_id))
   681                  I915_WRITE_FW(PLANE_CUS_CTL(pipe, plane_id), 0);
   682
   683          skl_write_plane_wm(plane, crtc_state);
   684
   685          I915_WRITE_FW(PLANE_CTL(pipe, plane_id), 0);
   686          panic("Before turning yellow");
   687          I915_WRITE_FW(PLANE_SURF(pipe, plane_id), 0);
   688
   689          spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
   690  }

I think that line 687 completes disabling primary plane
and followed logics will not able to enable the plane.
However I am not sure because I cannot get any message.

Do you have an idea to investigate deeper?

Thank you.

-- 
Ryo ONODERA // ryo%tetera.org@localhost
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB  FD1B F404 27FA C7D1 15F3


Home | Main Index | Thread Index | Old Index