From patchwork Mon Apr 14 18:22:03 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Keith Packard X-Patchwork-Id: 3985211 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 907839F2BA for ; Mon, 14 Apr 2014 18:22:34 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id BF377201F9 for ; Mon, 14 Apr 2014 18:22:33 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id C2C14201EC for ; Mon, 14 Apr 2014 18:22:29 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 656016E817; Mon, 14 Apr 2014 11:22:28 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from keithp.com (home.keithp.com [63.227.221.253]) by gabe.freedesktop.org (Postfix) with ESMTP id B3E606E0BB; Mon, 14 Apr 2014 11:22:26 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by keithp.com (Postfix) with ESMTP id 51EDF55403D; Mon, 14 Apr 2014 11:22:25 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at keithp.com Received: from keithp.com ([127.0.0.1]) by localhost (keithp.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id kSA-ysGTIo3I; Mon, 14 Apr 2014 11:22:17 -0700 (PDT) Received: by keithp.com (Postfix, from userid 1033) id EABF955400F; Mon, 14 Apr 2014 11:22:16 -0700 (PDT) Received: from hiro.keithp.com (localhost [127.0.0.1]) by keithp.com (Postfix) with ESMTP id C23E314A8028; Mon, 14 Apr 2014 11:22:16 -0700 (PDT) Received: by hiro.keithp.com (Postfix, from userid 1001) id 64E277482FB; Mon, 14 Apr 2014 11:22:16 -0700 (PDT) From: Keith Packard To: xorg-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Date: Mon, 14 Apr 2014 11:22:03 -0700 Message-Id: <1397499723-19704-1-git-send-email-keithp@keithp.com> X-Mailer: git-send-email 1.9.1 Subject: [Intel-gfx] [PATCH] load_cursor_argb is supposed to return a Bool, not void X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-5.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP By mis-declaring this function, we ended up using software cursors because the value seen by the caller was 0. Signed-off-by: Keith Packard --- src/sna/sna_display.c | 8 ++++++-- src/sna/sna_display_fake.c | 3 ++- src/uxa/intel_display.c | 7 +++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c index 6e2d118..a3441e1 100644 --- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -1681,11 +1681,12 @@ sna_crtc_set_cursor_position(xf86CrtcPtr crtc, int x, int y) (void)drmIoctl(to_sna(crtc->scrn)->kgem.fd, DRM_IOCTL_MODE_CURSOR, &arg); } -static void +static Bool sna_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image) { struct sna *sna = to_sna(crtc->scrn); struct drm_i915_gem_pwrite pwrite; + int ret; __DBG(("%s: CRTC:%d\n", __FUNCTION__, to_sna_crtc(crtc)->id)); @@ -1694,7 +1695,10 @@ sna_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image) pwrite.offset = 0; pwrite.size = sna->mode.cursor_width*sna->mode.cursor_height*4; pwrite.data_ptr = (uintptr_t)image; - (void)drmIoctl(sna->kgem.fd, DRM_IOCTL_I915_GEM_PWRITE, &pwrite); + ret = drmIoctl(sna->kgem.fd, DRM_IOCTL_I915_GEM_PWRITE, &pwrite); + if (ret != 0) + return FALSE; + return TRUE; } static void diff --git a/src/sna/sna_display_fake.c b/src/sna/sna_display_fake.c index c709d99..3cf0042 100644 --- a/src/sna/sna_display_fake.c +++ b/src/sna/sna_display_fake.c @@ -115,9 +115,10 @@ sna_crtc_show_cursor(xf86CrtcPtr crtc) { } -static void +static Bool sna_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image) { + return TRUE; } static void diff --git a/src/uxa/intel_display.c b/src/uxa/intel_display.c index 0f06793..f755cb6 100644 --- a/src/uxa/intel_display.c +++ b/src/uxa/intel_display.c @@ -432,16 +432,19 @@ intel_crtc_set_cursor_position (xf86CrtcPtr crtc, int x, int y) drmModeMoveCursor(mode->fd, crtc_id(intel_crtc), x, y); } -static void +static Bool intel_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image) { struct intel_crtc *intel_crtc = crtc->driver_private; int ret; ret = dri_bo_subdata(intel_crtc->cursor, 0, 64*64*4, image); - if (ret) + if (ret) { xf86DrvMsg(crtc->scrn->scrnIndex, X_ERROR, "failed to set cursor: %s\n", strerror(-ret)); + return FALSE; + } + return TRUE; } static void