From patchwork Wed Aug 8 02:11:04 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andre Renaud X-Patchwork-Id: 1293101 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork1.kernel.org (Postfix) with ESMTP id 771693FCFC for ; Wed, 8 Aug 2012 07:54:18 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7C68B9EB5D for ; Wed, 8 Aug 2012 00:54:18 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-yx0-f177.google.com (mail-yx0-f177.google.com [209.85.213.177]) by gabe.freedesktop.org (Postfix) with ESMTP id 740369E796 for ; Tue, 7 Aug 2012 19:11:30 -0700 (PDT) Received: by yenr9 with SMTP id r9so309589yen.36 for ; Tue, 07 Aug 2012 19:11:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:x-gm-message-state; bh=0v85LmamuPZmlOATn05lvf07uLxLvBcr9Q38r7jVPWg=; b=B4RGa0W3L00P1jKM1zvm8yZnjycKwHHzT2Ml086Jmg2RVGF4819r8POsAmfdmJBl+7 Yp6OO85LQO9AeZGAhCwKbhrJYR8P2Hyc0UPDIywzK8ZKu89A+vaSV05cmXY5qkw7smOp Rw57ueEyhQGKl3lNhBjmnUcLhL2kITbNSvbYr3KpxRKQSirj2nVNReK8aqVetOhZnwtU i7E+qLQtb51W0JoLHq3R+g4bLenqaqJ8RWZXvjQQgu90RePGXoYSWQDpi3rtnT/boDfx LgF1VKNiBKAE3ClOL8CPFWCCfvUdYWc6tm/wsL/5ZdLoOa9IJvhCXdqLSSFsEDOM119T HjiA== Received: by 10.66.83.234 with SMTP id t10mr30207877pay.39.1344391889287; Tue, 07 Aug 2012 19:11:29 -0700 (PDT) Received: from teanau.bluewaternz.com (mail.bluewatersys.com. [202.124.120.130]) by mx.google.com with ESMTPS id sk5sm12304573pbc.7.2012.08.07.19.11.26 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 07 Aug 2012 19:11:28 -0700 (PDT) From: Andre Renaud To: dri-devel@lists.freedesktop.org Subject: [PATCH] Expose the OMAP Z-Order property through DRM Date: Wed, 8 Aug 2012 14:11:04 +1200 Message-Id: <1344391864-11651-1-git-send-email-andre@bluewatersys.com> X-Mailer: git-send-email 1.7.9.5 X-Gm-Message-State: ALoCoQm/H79m5cy8TP6gipamdsD8cEvLSWjCe9qxzPRVvVSZ672YuuKyveebh22SnG/d7PT1mFFQ X-Mailman-Approved-At: Tue, 07 Aug 2012 23:09:34 -0700 Cc: greg@kroah.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Added support for zorder changes through DRM plane properties Signed-off-by: Andre Renaud --- drivers/staging/omapdrm/omap_drv.h | 1 + drivers/staging/omapdrm/omap_plane.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/drivers/staging/omapdrm/omap_drv.h b/drivers/staging/omapdrm/omap_drv.h index 799dd46..14d67de 100644 --- a/drivers/staging/omapdrm/omap_drv.h +++ b/drivers/staging/omapdrm/omap_drv.h @@ -62,6 +62,7 @@ struct omap_drm_private { /* properties: */ struct drm_property *rotation_prop; + struct drm_property *zorder_prop; }; /* this should probably be in drm-core to standardize amongst drivers */ diff --git a/drivers/staging/omapdrm/omap_plane.c b/drivers/staging/omapdrm/omap_plane.c index 6931d06..4bde639 100644 --- a/drivers/staging/omapdrm/omap_plane.c +++ b/drivers/staging/omapdrm/omap_plane.c @@ -433,6 +433,15 @@ void omap_plane_install_properties(struct drm_plane *plane, priv->rotation_prop = prop; } drm_object_attach_property(obj, prop, 0); + + prop = priv->zorder_prop; + if (!prop) { + prop = drm_property_create_range(dev, 0, "zorder", 0, 3); + if (prop == NULL) + return; + priv->zorder_prop = prop; + } + drm_object_attach_property(obj, prop, 0); } int omap_plane_set_property(struct drm_plane *plane, @@ -452,6 +461,16 @@ int omap_plane_set_property(struct drm_plane *plane, ret = omap_plane_dpms(plane, DRM_MODE_DPMS_ON); else ret = 0; + } else if (property == priv->zorder_prop) { + struct omap_overlay *ovl = omap_plane->ovl; + + DBG("%s: zorder: %d", ovl->name, (uint32_t)val); + omap_plane->info.zorder = val; + + if (ovl->is_enabled(ovl)) + ret = omap_plane_dpms(plane, DRM_MODE_DPMS_ON); + else + ret = 0; } return ret;