xf86-video-intel: 2 commits - src/sna/kgem.c src/sna/sna_accel.c src/sna/sna_driver.c

Chris Wilson ickle at kemper.freedesktop.org
Wed May 30 06:48:48 PDT 2012


 src/sna/kgem.c       |   12 ++++++++----
 src/sna/sna_accel.c  |    2 +-
 src/sna/sna_driver.c |    3 +--
 3 files changed, 10 insertions(+), 7 deletions(-)

New commits:
commit cf5b3e2ebf4ee0330f5421b9377bb512a94ec284
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed May 30 14:44:59 2012 +0100

    sna: Don't attempt to flush scanout if unattached
    
    This was lost in the midst of the OSTimer overhaul.
    
    Reported-by: Zdenek Kabelac <zdenek.kabelac at gmail.com>
    References: https://bugs.freedesktop.org/show_bug.cgi?id=50393
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 8f2fdea..ee2f69a 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -11899,7 +11899,7 @@ static bool sna_accel_do_flush(struct sna *sna)
 	struct sna_pixmap *priv;
 
 	priv = sna_accel_scanout(sna);
-	if (priv == NULL) {
+	if (priv == NULL || priv->gpu_bo == NULL) {
 		DBG(("%s -- no scanout attached\n", __FUNCTION__));
 		sna_accel_disarm_timer(sna, FLUSH_TIMER);
 		return false;
commit 3a64ba0895035f6567e9a15357396b06c0f2d6dd
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed May 30 13:51:07 2012 +0100

    sna: Convert remaining drmCommands to drmIoctl
    
    This helps to silence valgrind
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 828df03..15261b6 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -568,6 +568,11 @@ static bool semaphores_enabled(void)
 	return detected;
 }
 
+static bool __kgem_throttle(struct kgem *kgem)
+{
+	return drmIoctl(kgem->fd, DRM_IOCTL_I915_GEM_THROTTLE, NULL) == -EIO;
+}
+
 void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, int gen)
 {
 	struct drm_i915_gem_get_aperture aperture;
@@ -579,7 +584,7 @@ void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, int gen)
 
 	kgem->fd = fd;
 	kgem->gen = gen;
-	kgem->wedged = drmCommandNone(kgem->fd, DRM_I915_GEM_THROTTLE) == -EIO;
+	kgem->wedged = __kgem_throttle(kgem);
 	kgem->wedged |= DBG_NO_HW;
 
 	kgem->batch_size = ARRAY_SIZE(kgem->batch);
@@ -1864,7 +1869,7 @@ void _kgem_submit(struct kgem *kgem)
 				       DRM_IOCTL_I915_GEM_EXECBUFFER2,
 				       &execbuf);
 			while (ret == -1 && errno == EBUSY && retry--) {
-				drmCommandNone(kgem->fd, DRM_I915_GEM_THROTTLE);
+				__kgem_throttle(kgem);
 				ret = drmIoctl(kgem->fd,
 					       DRM_IOCTL_I915_GEM_EXECBUFFER2,
 					       &execbuf);
@@ -1954,8 +1959,7 @@ void kgem_throttle(struct kgem *kgem)
 {
 	static int warned;
 
-	kgem->wedged |= drmCommandNone(kgem->fd, DRM_I915_GEM_THROTTLE) == -EIO;
-
+	kgem->wedged |= __kgem_throttle(kgem);
 	if (kgem->wedged && !warned) {
 		struct sna *sna = container_of(kgem, struct sna, kgem);
 		xf86DrvMsg(sna->scrn->scrnIndex, X_ERROR,
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 10f4421..f8e386b 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -334,8 +334,7 @@ static int sna_open_drm_master(ScrnInfoPtr scrn)
 	val = FALSE;
 	gp.param = I915_PARAM_HAS_BLT;
 	gp.value = &val;
-	if (drmCommandWriteRead(fd, DRM_I915_GETPARAM,
-				&gp, sizeof(gp))) {
+	if (drmIoctl(fd, DRM_IOCTL_I915_GETPARAM, &gp)) {
 		xf86DrvMsg(scrn->scrnIndex, X_ERROR,
 			   "Failed to detect BLT.  Kernel 2.6.37 required.\n");
 		drmClose(fd);


More information about the xorg-commit mailing list