All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: dri-devel@lists.freedesktop.org, David Airlie <airlied@redhat.com>
Cc: andr2000@gmail.com, Gerd Hoffmann <kraxel@redhat.com>,
	David Airlie <airlied@linux.ie>,
	virtualization@lists.linux-foundation.org (open list:DRM DRIVER
	FOR BOCHS VIRTUAL GPU), linux-kernel@vger.kernel.org (open list)
Subject: [PATCH v2 03/15] drm/bochs: atomic: add atomic_flush+atomic_enable callbacks.
Date: Tue,  8 Jan 2019 12:25:07 +0100	[thread overview]
Message-ID: <20190108112519.27473-4-kraxel@redhat.com> (raw)
In-Reply-To: <20190108112519.27473-1-kraxel@redhat.com>

Conversion to atomic modesetting, step one.
Add atomic crtc helper callbacks.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 drivers/gpu/drm/bochs/bochs_kms.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/drivers/gpu/drm/bochs/bochs_kms.c b/drivers/gpu/drm/bochs/bochs_kms.c
index f7e6d1a9b3..2cbd406b1f 100644
--- a/drivers/gpu/drm/bochs/bochs_kms.c
+++ b/drivers/gpu/drm/bochs/bochs_kms.c
@@ -115,6 +115,29 @@ static int bochs_crtc_page_flip(struct drm_crtc *crtc,
 	return 0;
 }
 
+static void bochs_crtc_atomic_enable(struct drm_crtc *crtc,
+				     struct drm_crtc_state *old_crtc_state)
+{
+}
+
+static void bochs_crtc_atomic_flush(struct drm_crtc *crtc,
+				    struct drm_crtc_state *old_crtc_state)
+{
+	struct drm_device *dev = crtc->dev;
+	struct drm_pending_vblank_event *event;
+
+	if (crtc->state && crtc->state->event) {
+		unsigned long irqflags;
+
+		spin_lock_irqsave(&dev->event_lock, irqflags);
+		event = crtc->state->event;
+		crtc->state->event = NULL;
+		drm_crtc_send_vblank_event(crtc, event);
+		spin_unlock_irqrestore(&dev->event_lock, irqflags);
+	}
+}
+
+
 /* These provide the minimum set of functions required to handle a CRTC */
 static const struct drm_crtc_funcs bochs_crtc_funcs = {
 	.set_config = drm_crtc_helper_set_config,
@@ -128,6 +151,8 @@ static const struct drm_crtc_helper_funcs bochs_helper_funcs = {
 	.mode_set_base = bochs_crtc_mode_set_base,
 	.prepare = bochs_crtc_prepare,
 	.commit = bochs_crtc_commit,
+	.atomic_enable = bochs_crtc_atomic_enable,
+	.atomic_flush = bochs_crtc_atomic_flush,
 };
 
 static const uint32_t bochs_formats[] = {
-- 
2.9.3


WARNING: multiple messages have this Message-ID (diff)
From: Gerd Hoffmann <kraxel@redhat.com>
To: dri-devel@lists.freedesktop.org, David Airlie <airlied@redhat.com>
Cc: andr2000@gmail.com, David Airlie <airlied@linux.ie>,
	Gerd Hoffmann <kraxel@redhat.com>,
	open list <linux-kernel@vger.kernel.org>,
	"open list:DRM DRIVER FOR BOCHS VIRTUAL GPU"
	<virtualization@lists.linux-foundation.org>
Subject: [PATCH v2 03/15] drm/bochs: atomic: add atomic_flush+atomic_enable callbacks.
Date: Tue,  8 Jan 2019 12:25:07 +0100	[thread overview]
Message-ID: <20190108112519.27473-4-kraxel@redhat.com> (raw)
In-Reply-To: <20190108112519.27473-1-kraxel@redhat.com>

Conversion to atomic modesetting, step one.
Add atomic crtc helper callbacks.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 drivers/gpu/drm/bochs/bochs_kms.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/drivers/gpu/drm/bochs/bochs_kms.c b/drivers/gpu/drm/bochs/bochs_kms.c
index f7e6d1a9b3..2cbd406b1f 100644
--- a/drivers/gpu/drm/bochs/bochs_kms.c
+++ b/drivers/gpu/drm/bochs/bochs_kms.c
@@ -115,6 +115,29 @@ static int bochs_crtc_page_flip(struct drm_crtc *crtc,
 	return 0;
 }
 
+static void bochs_crtc_atomic_enable(struct drm_crtc *crtc,
+				     struct drm_crtc_state *old_crtc_state)
+{
+}
+
+static void bochs_crtc_atomic_flush(struct drm_crtc *crtc,
+				    struct drm_crtc_state *old_crtc_state)
+{
+	struct drm_device *dev = crtc->dev;
+	struct drm_pending_vblank_event *event;
+
+	if (crtc->state && crtc->state->event) {
+		unsigned long irqflags;
+
+		spin_lock_irqsave(&dev->event_lock, irqflags);
+		event = crtc->state->event;
+		crtc->state->event = NULL;
+		drm_crtc_send_vblank_event(crtc, event);
+		spin_unlock_irqrestore(&dev->event_lock, irqflags);
+	}
+}
+
+
 /* These provide the minimum set of functions required to handle a CRTC */
 static const struct drm_crtc_funcs bochs_crtc_funcs = {
 	.set_config = drm_crtc_helper_set_config,
@@ -128,6 +151,8 @@ static const struct drm_crtc_helper_funcs bochs_helper_funcs = {
 	.mode_set_base = bochs_crtc_mode_set_base,
 	.prepare = bochs_crtc_prepare,
 	.commit = bochs_crtc_commit,
+	.atomic_enable = bochs_crtc_atomic_enable,
+	.atomic_flush = bochs_crtc_atomic_flush,
 };
 
 static const uint32_t bochs_formats[] = {
-- 
2.9.3

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2019-01-08 11:26 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-08 11:25 [PATCH v2 00/15] drm/bochs: cleanups, atomic modesetting, generic fbdev Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 01/15] drm/bochs: encoder cleanup Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 02/15] drm/bochs: split bochs_hw_setmode Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 03/15] drm/bochs: atomic: add atomic_flush+atomic_enable callbacks Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann [this message]
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-09 10:06   ` Daniel Vetter
2019-01-09 10:06     ` Daniel Vetter
2019-01-09 10:06   ` Daniel Vetter
2019-01-08 11:25 ` [PATCH v2 04/15] drm/bochs: atomic: add mode_set_nofb callback Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 05/15] drm/bochs: atomic: switch planes to atomic, wire up helpers Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 06/15] drm/bochs: atomic: use atomic set_config helper Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 07/15] drm/bochs: atomic: use atomic page_flip helper Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 08/15] drm/bochs: atomic: set DRIVER_ATOMIC Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 09/15] drm/bochs: remove old bochs_crtc_* functions Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 10/15] drm/bochs: drop unused gpu_addr arg from bochs_bo_pin() Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 11/15] drm/bochs: add basic prime support Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 12/15] drm/bochs: switch to generic drm fbdev emulation Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 13/15] drm/bochs: drop old fbdev emulation code Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 14/15] drm/bochs: move remaining fb bits to kms Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-08 11:25 ` [PATCH v2 15/15] drm/bochs: reserve bo for pin/unpin Gerd Hoffmann
2019-01-08 11:25 ` Gerd Hoffmann
2019-01-08 11:25   ` Gerd Hoffmann
2019-01-09 10:10   ` Daniel Vetter
2019-01-09 10:10     ` Daniel Vetter
2019-01-09 14:54     ` Gerd Hoffmann
2019-01-09 14:54     ` Gerd Hoffmann
2019-01-09 14:54       ` Gerd Hoffmann
2019-01-09 17:35       ` Daniel Vetter
2019-01-09 17:35       ` Daniel Vetter
2019-01-09 17:35         ` Daniel Vetter
2019-01-09 18:45         ` Alex Deucher
2019-01-09 18:45         ` Alex Deucher
2019-01-09 18:45           ` Alex Deucher
2019-01-09 20:51         ` Gerd Hoffmann
2019-01-09 20:51         ` Gerd Hoffmann
2019-01-09 20:51           ` Gerd Hoffmann
2019-01-09 21:45           ` Daniel Vetter
2019-01-09 21:45             ` Daniel Vetter
2019-01-09 21:45           ` Daniel Vetter
2019-01-09 10:10   ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190108112519.27473-4-kraxel@redhat.com \
    --to=kraxel@redhat.com \
    --cc=airlied@linux.ie \
    --cc=airlied@redhat.com \
    --cc=andr2000@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.