From patchwork Fri Jun 3 23:03:44 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Deucher X-Patchwork-Id: 9154261 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 67B246082E for ; Fri, 3 Jun 2016 23:03:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5962228346 for ; Fri, 3 Jun 2016 23:03:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4E2C528349; Fri, 3 Jun 2016 23:03:57 +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=-3.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RCVD_IN_SORBS_WEB, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D607B28346 for ; Fri, 3 Jun 2016 23:03:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AF57D6E5B2; Fri, 3 Jun 2016 23:03:54 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-io0-x244.google.com (mail-io0-x244.google.com [IPv6:2607:f8b0:4001:c06::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 660FE6E5AB for ; Fri, 3 Jun 2016 23:03:52 +0000 (UTC) Received: by mail-io0-x244.google.com with SMTP id l9so12710551ioe.1 for ; Fri, 03 Jun 2016 16:03:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=CkTfTvQoOMC/kdfJtpbZsIHnLXvq/y7e7//O4wn3Q9c=; b=rv0w5VgQTosvMaRpW6enDhnPVPC0qwVPe/GLvLk1LeIdXWmal1eGTsJjcb+DPx7J6L LMor78FPUPpb1Drj9CRrrVGnwY6SJAewZDR7UpvTDdobKbhfrVnhgFkVWs1b6Rnrtva1 0T98GBgJ01czZg1zhLyl9Q3C+F4Xatkm2EGulTlj74W4o0C5AEnRk1dcsVHHqY4dz4DV WiNmdt9MiwpF6d/XGCcoKK73gYxU9SecNeP3rp6koNs9Rmv7hFknASqDsvf5hiByBAEO WGiijtdni+ik5nDdsrDYymEQ0jjONh0pfyGQjU+xNr7eBuOmbuhDvSgrKYGebyxrz2fO /Gig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=CkTfTvQoOMC/kdfJtpbZsIHnLXvq/y7e7//O4wn3Q9c=; b=OupTl0lahOIJ2s7B2xweZ2zUGc1WQcYR+zL/wAWR9XFC+B5k9TXA/uxYsqhTfD2CmP gfJNTS0loAlek7BZm7QkL/WJ7bglpTWd/9hzPr68gYG+K8g2PGskKJi0L4S+DxI0Zchk YPOoPz/RW4dWESr5Sl1WUs1tQgJwYsNyD3zceU5sFQW5yKHcbcFHMYyXHhMMhPo8Ztf/ sP/oOO1EfNzzrCebSjtHEOgibxM2EOlvP3xnDEsjXbczPk+FQoSaZ/gFlflUx212c/ZZ G6CfPIF5jCDqjKWsiV/YGWLBb/mcDqspFMFqqvjFZIZARSBsWuNuWmcuTtSmUt4g+mHJ oBrw== X-Gm-Message-State: ALyK8tL8Jp5BAZ3xU+imHldgFCm9FoFoWngxsCn3LBLW8SfekY76gxn5JgfEY48ubFWqpw== X-Received: by 10.36.203.194 with SMTP id u185mr2843824itg.74.1464995031371; Fri, 03 Jun 2016 16:03:51 -0700 (PDT) Received: from cm.amd.com ([165.204.55.251]) by smtp.gmail.com with ESMTPSA id o206sm808156itg.9.2016.06.03.16.03.50 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 03 Jun 2016 16:03:50 -0700 (PDT) From: Alex Deucher X-Google-Original-From: Alex Deucher To: dri-devel@lists.freedesktop.org Subject: [PATCH 1/2] drm/amdgpu/gfx8: Tidy up various PG helpers Date: Fri, 3 Jun 2016 19:03:44 -0400 Message-Id: <1464995025-25677-1-git-send-email-alexander.deucher@amd.com> X-Mailer: git-send-email 2.5.5 Cc: Tom St Denis , Alex Deucher 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 From: Tom St Denis Signed-off-by: Tom St Denis Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 51 +++++++++++++---------------------- 1 file changed, 18 insertions(+), 33 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c index 2848583..97862d3 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c @@ -5256,20 +5256,15 @@ static void gfx_v8_0_enable_gfx_static_mg_power_gating(struct amdgpu_device *ade enable ? AMD_PG_STATE_GATE : AMD_PG_STATE_UNGATE); - if (enable) { - /* Enable static MGPG */ - temp = data = RREG32(mmRLC_PG_CNTL); + temp = data = RREG32(mmRLC_PG_CNTL); + /* Enable static MGPG */ + if (enable) data |= RLC_PG_CNTL__STATIC_PER_CU_PG_ENABLE_MASK; - - if (temp != data) - WREG32(mmRLC_PG_CNTL, data); - } else { - temp = data = RREG32(mmRLC_PG_CNTL); + else data &= ~RLC_PG_CNTL__STATIC_PER_CU_PG_ENABLE_MASK; - if (temp != data) - WREG32(mmRLC_PG_CNTL, data); - } + if (temp != data) + WREG32(mmRLC_PG_CNTL, data); } static void gfx_v8_0_enable_gfx_dynamic_mg_power_gating(struct amdgpu_device *adev, @@ -5277,20 +5272,15 @@ static void gfx_v8_0_enable_gfx_dynamic_mg_power_gating(struct amdgpu_device *ad { uint32_t data, temp; - if (enable) { - /* Enable dynamic MGPG */ - temp = data = RREG32(mmRLC_PG_CNTL); + temp = data = RREG32(mmRLC_PG_CNTL); + /* Enable dynamic MGPG */ + if (enable) data |= RLC_PG_CNTL__DYN_PER_CU_PG_ENABLE_MASK; - - if (temp != data) - WREG32(mmRLC_PG_CNTL, data); - } else { - temp = data = RREG32(mmRLC_PG_CNTL); + else data &= ~RLC_PG_CNTL__DYN_PER_CU_PG_ENABLE_MASK; - if (temp != data) - WREG32(mmRLC_PG_CNTL, data); - } + if (temp != data) + WREG32(mmRLC_PG_CNTL, data); } static void polaris11_enable_gfx_quick_mg_power_gating(struct amdgpu_device *adev, @@ -5298,20 +5288,15 @@ static void polaris11_enable_gfx_quick_mg_power_gating(struct amdgpu_device *ade { uint32_t data, temp; - if (enable) { - /* Enable quick PG */ - temp = data = RREG32(mmRLC_PG_CNTL); + temp = data = RREG32(mmRLC_PG_CNTL); + /* Enable quick PG */ + if (enable) data |= 0x100000; - - if (temp != data) - WREG32(mmRLC_PG_CNTL, data); - } else { - temp = data = RREG32(mmRLC_PG_CNTL); + else data &= ~0x100000; - if (temp != data) - WREG32(mmRLC_PG_CNTL, data); - } + if (temp != data) + WREG32(mmRLC_PG_CNTL, data); } static void cz_enable_gfx_cg_power_gating(struct amdgpu_device *adev,