From patchwork Thu Aug 2 18:29:53 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Anholt X-Patchwork-Id: 1268131 Return-Path: X-Original-To: patchwork-intel-gfx@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 E31853FC71 for ; Thu, 2 Aug 2012 21:01:30 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BB63FA0A4E for ; Thu, 2 Aug 2012 14:01:30 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from annarchy.freedesktop.org (annarchy.freedesktop.org [131.252.210.176]) by gabe.freedesktop.org (Postfix) with ESMTP id 29BF0A0A46; Thu, 2 Aug 2012 13:59:31 -0700 (PDT) Received: from eliezer.anholt.net (annarchy.freedesktop.org [127.0.0.1]) by annarchy.freedesktop.org (Postfix) with ESMTP id 12D1364B5E; Thu, 2 Aug 2012 13:59:31 -0700 (PDT) Received: by eliezer.anholt.net (Postfix, from userid 1000) id 7C2B3C01C5E; Thu, 2 Aug 2012 11:29:53 -0700 (PDT) From: Eric Anholt To: intel-gfx@lists.freedesktop.org Date: Thu, 2 Aug 2012 11:29:53 -0700 Message-Id: <1343932193-27192-3-git-send-email-eric@anholt.net> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1343932193-27192-1-git-send-email-eric@anholt.net> References: <1343932193-27192-1-git-send-email-eric@anholt.net> Subject: [Intel-gfx] [PATCH 3/3] intel: Add a function for the new register read ioctl. X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org --- I'm not sure if this is the API we want or not. Getting your value back through an out parameter sucks. On the other hand, the 3d driver wants to be able to use the error value to detect a supported kernel. My other API thought would be for reg_read() to return the value and whine if an error occurs, and to have a separate can_reg_read() call. intel/intel_bufmgr.h | 3 +++ intel/intel_bufmgr_gem.c | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) Reviewed-by: Ben Widawsky diff --git a/intel/intel_bufmgr.h b/intel/intel_bufmgr.h index 2167e43..8d7f239 100644 --- a/intel/intel_bufmgr.h +++ b/intel/intel_bufmgr.h @@ -241,6 +241,9 @@ void drm_intel_decode_set_head_tail(struct drm_intel_decode *ctx, void drm_intel_decode_set_output_file(struct drm_intel_decode *ctx, FILE *out); void drm_intel_decode(struct drm_intel_decode *ctx); +int drm_intel_reg_read(drm_intel_bufmgr *bufmgr, + uint32_t offset, + uint64_t *result); /** @{ Compatibility defines to keep old code building despite the symbol rename * from dri_* to drm_intel_* diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c index a484b12..a170813 100644 --- a/intel/intel_bufmgr_gem.c +++ b/intel/intel_bufmgr_gem.c @@ -2947,6 +2947,24 @@ drm_intel_gem_context_destroy(drm_intel_context *ctx) free(ctx); } +int +drm_intel_reg_read(drm_intel_bufmgr *bufmgr, + uint32_t offset, + uint64_t *result) +{ + drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr; + struct drm_i915_reg_read reg_read; + int ret; + + VG_CLEAR(reg_read); + reg_read.offset = offset; + + ret = drmIoctl(bufmgr_gem->fd, DRM_IOCTL_I915_REG_READ, ®_read); + + *result = reg_read.val; + return ret; +} + /** * Annotate the given bo for use in aub dumping.