Re: [PATCHv6 3/4] drm/omap: add framedone interrupt support

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

 



Hi Sebastian,

On 23/05/2019 23:07, Sebastian Reichel wrote:

@@ -302,6 +328,30 @@ void omap_crtc_vblank_irq(struct drm_crtc *crtc)
  	DBG("%s: apply done", omap_crtc->name);
  }
+void omap_crtc_framedone_irq(struct drm_crtc *crtc, uint32_t irqstatus)
+{
+	struct omap_crtc *omap_crtc = to_omap_crtc(crtc);
+
+	if (!omap_crtc->framedone_handler) {
+		dev_warn(omap_crtc->base.dev->dev, "no framedone handler?");
+		return;
+	}

This triggers on normal displays.

FRAMEDONE is an interrupt we get when DISPC's output videoport is being turned off. It's raised after the last frame has been finished (i.e. the DISPC is truly done with that videoport).

We get it for both conventional displays (when the display is turned off) and for DSI command mode (when a single frame has been sent), as in both cases the videoport is disabled after the operation. For conventional displays, you can think FRAMEDONE as the last vsync.

We also have special handling for FRAMEDONE in omap_crtc_set_enabled(), which is used to get the drm driver to wait for FRAMEDONE when disabling the display. I wonder if this separate framedone handling might somehow conflict with that code. And/or should these be somehow combined.

 Tomi

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux