From patchwork Fri Dec 15 07:43:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Gmeiner X-Patchwork-Id: 10114107 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id A452F603FA for ; Fri, 15 Dec 2017 07:43:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9678529F0B for ; Fri, 15 Dec 2017 07:43:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8B87B29F0D; Fri, 15 Dec 2017 07:43:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 08B3C29F0B for ; Fri, 15 Dec 2017 07:43:52 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CE67F6E792; Fri, 15 Dec 2017 07:43:50 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 412176E790; Fri, 15 Dec 2017 07:43:49 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id y82so29391168wmg.1; Thu, 14 Dec 2017 23:43:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=uUdDgSI9kq58qR/sZSwATV5iyatQk1ZG5RDn2cgglUY=; b=Wi8rO3Kl2OnUuoCMRsfr9qtBZgZLBKtKZdg3KqMZme3BNT8baaJoAUg0COqaD2f5un EI//eT8tPp8IqKSA8JkdtDTjqPm/TJITK4TZeqOAGLrobl78vGWFjL/QvCrs+fK4gi+l U3pq17SFGErbLwGgk6/UrY+NxozlQpDJbxBjBYfrBCTXdGTQF3ZksOnA8juuiV7tsIdQ pYNHBd6XeWE3XJeMY7o/fxyaqrp3sH6bQ1aHF0x8PbMLHfHTsXxxj1iwRiGaw3CW3AT+ 5PHLXnC2YBLmjfFnewB699oiUfmKRZyefFVUpt7Y+bvbaZa3M8+8MEIYgDLSrDZX1s1l trbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=uUdDgSI9kq58qR/sZSwATV5iyatQk1ZG5RDn2cgglUY=; b=lp0XEr3ekgb6TwXvEjtsmFDHWvfvosbKNiBm5Cc2SB6otrX9gqPQp6PXDmCDnvbvAy pdIjBF9xukz/dRVDujU3llqZNM0bB3RbK9yatobuisY7dY85Wdc/2rSn59ucjFGIKI9p tPu6LZMftcTnkSAqM+zJCmWbGB9bYPBLn5Gnhh6GKHMWmgCCa450hqc5QkkdMCyS7Kt6 jBRzTEe2mKRnjLs7P3dzwXkLOY1wYjZwlcpDwK4KVcGjWexqeujcrL7bMcSu8/DdpyvE /Z7w8SZrGgq63fJe1XwsnwcysAA7HvkFcJ3BcDucLlVVD1zwg3c2XS2BvDSs9D//a+Gy 87Xw== X-Gm-Message-State: AKGB3mJd5lG8w6xNgHziPUNTidS503XXxlW1T6ebD9OWd9XI3nvf8V3O DMdpTLTncrfcL0ntP7sE+lUYB0rk X-Google-Smtp-Source: ACJfBosaPjfVr7jhDmKaA58oYmtTL0325l0uOqY7xnyupI9tk6frP6BU/bJBgCWc6HzVBjJ/9gKHBQ== X-Received: by 10.28.60.8 with SMTP id j8mr4365249wma.136.1513323827204; Thu, 14 Dec 2017 23:43:47 -0800 (PST) Received: from localhost.localdomain (213-147-163-36.nat.highway.bob.at. [213.147.163.36]) by smtp.gmail.com with ESMTPSA id r64sm1276760wrb.62.2017.12.14.23.43.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 14 Dec 2017 23:43:46 -0800 (PST) From: Christian Gmeiner To: dri-devel@lists.freedesktop.org Subject: [PATCH v3 1/3] etnaviv: sync uapi header Date: Fri, 15 Dec 2017 08:43:38 +0100 Message-Id: <20171215074340.4501-2-christian.gmeiner@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171215074340.4501-1-christian.gmeiner@gmail.com> References: <20171215074340.4501-1-christian.gmeiner@gmail.com> Cc: etnaviv@lists.freedesktop.org X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Import the etnaviv header changes from kernel commit 05916bed1 (drm-next) The drm_etnaviv_gem_submit structure was extended to include performance monitor requests. Also two new ioctls got added to be able to readout performance monitor domains and their signals. Signed-off-by: Christian Gmeiner Acked-by: Lucas Stach --- etnaviv/etnaviv_drm.h | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/etnaviv/etnaviv_drm.h b/etnaviv/etnaviv_drm.h index 76f6f78a..110cc73b 100644 --- a/etnaviv/etnaviv_drm.h +++ b/etnaviv/etnaviv_drm.h @@ -150,6 +150,19 @@ struct drm_etnaviv_gem_submit_bo { __u64 presumed; /* in/out, presumed buffer address */ }; +/* performance monitor request (pmr) */ +#define ETNA_PM_PROCESS_PRE 0x0001 +#define ETNA_PM_PROCESS_POST 0x0002 +struct drm_etnaviv_gem_submit_pmr { + __u32 flags; /* in, when to process request (ETNA_PM_PROCESS_x) */ + __u8 domain; /* in, pm domain */ + __u8 pad; + __u16 signal; /* in, pm signal */ + __u32 sequence; /* in, sequence number */ + __u32 read_offset; /* in, offset from read_bo */ + __u32 read_idx; /* in, index of read_bo buffer */ +}; + /* Each cmdstream submit consists of a table of buffers involved, and * one or more cmdstream buffers. This allows for conditional execution * (context-restore), and IB buffers needed for per tile/bin draw cmds. @@ -175,6 +188,9 @@ struct drm_etnaviv_gem_submit { __u64 stream; /* in, ptr to cmdstream */ __u32 flags; /* in, mask of ETNA_SUBMIT_x */ __s32 fence_fd; /* in/out, fence fd (see ETNA_SUBMIT_FENCE_FD_x) */ + __u64 pmrs; /* in, ptr to array of submit_pmr's */ + __u32 nr_pmrs; /* in, number of submit_pmr's */ + __u32 pad; }; /* The normal way to synchronize with the GPU is just to CPU_PREP on @@ -210,6 +226,27 @@ struct drm_etnaviv_gem_wait { struct drm_etnaviv_timespec timeout; /* in */ }; +/* + * Performance Monitor (PM): + */ + +struct drm_etnaviv_pm_domain { + __u32 pipe; /* in */ + __u8 iter; /* in/out, select pm domain at index iter */ + __u8 id; /* out, id of domain */ + __u16 nr_signals; /* out, how many signals does this domain provide */ + char name[64]; /* out, name of domain */ +}; + +struct drm_etnaviv_pm_signal { + __u32 pipe; /* in */ + __u8 domain; /* in, pm domain index */ + __u8 pad; + __u16 iter; /* in/out, select pm source at index iter */ + __u16 id; /* out, id of signal */ + char name[64]; /* out, name of domain */ +}; + #define DRM_ETNAVIV_GET_PARAM 0x00 /* placeholder: #define DRM_ETNAVIV_SET_PARAM 0x01 @@ -222,7 +259,9 @@ struct drm_etnaviv_gem_wait { #define DRM_ETNAVIV_WAIT_FENCE 0x07 #define DRM_ETNAVIV_GEM_USERPTR 0x08 #define DRM_ETNAVIV_GEM_WAIT 0x09 -#define DRM_ETNAVIV_NUM_IOCTLS 0x0a +#define DRM_ETNAVIV_PM_QUERY_DOM 0x0a +#define DRM_ETNAVIV_PM_QUERY_SIG 0x0b +#define DRM_ETNAVIV_NUM_IOCTLS 0x0c #define DRM_IOCTL_ETNAVIV_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_GET_PARAM, struct drm_etnaviv_param) #define DRM_IOCTL_ETNAVIV_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_GEM_NEW, struct drm_etnaviv_gem_new) @@ -233,6 +272,8 @@ struct drm_etnaviv_gem_wait { #define DRM_IOCTL_ETNAVIV_WAIT_FENCE DRM_IOW(DRM_COMMAND_BASE + DRM_ETNAVIV_WAIT_FENCE, struct drm_etnaviv_wait_fence) #define DRM_IOCTL_ETNAVIV_GEM_USERPTR DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_GEM_USERPTR, struct drm_etnaviv_gem_userptr) #define DRM_IOCTL_ETNAVIV_GEM_WAIT DRM_IOW(DRM_COMMAND_BASE + DRM_ETNAVIV_GEM_WAIT, struct drm_etnaviv_gem_wait) +#define DRM_IOCTL_ETNAVIV_PM_QUERY_DOM DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_PM_QUERY_DOM, struct drm_etnaviv_pm_domain) +#define DRM_IOCTL_ETNAVIV_PM_QUERY_SIG DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_PM_QUERY_SIG, struct drm_etnaviv_pm_signal) #if defined(__cplusplus) }