From patchwork Wed Nov 7 22:35:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jordan Crouse X-Patchwork-Id: 10673183 X-Patchwork-Delegate: agross@codeaurora.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9CE9815E9 for ; Wed, 7 Nov 2018 22:36:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8F5A52C653 for ; Wed, 7 Nov 2018 22:36:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 83E2F2C6E2; Wed, 7 Nov 2018 22:36:18 +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=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2CD482C691 for ; Wed, 7 Nov 2018 22:36:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728028AbeKHIIp (ORCPT ); Thu, 8 Nov 2018 03:08:45 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:47754 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727811AbeKHIIp (ORCPT ); Thu, 8 Nov 2018 03:08:45 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 6A0F26081A; Wed, 7 Nov 2018 22:36:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1541630176; bh=jRcp5lIzT2EGRYZes6qmZ2mCL2eprX+guoltoI4LLsE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j4fpbQgcTyxu3vwImwu+1DEr7y3DwajM+PYUTIplJCnZ5TmUHkzmoSvWCAhRKKude 5T4Rr9OiTMNTyllsA6EFJ6lHXtyxUIkqt/hDHdgg0w6HcR3pvi6FmNUxDXk8N0iM4h 9I1Uz2qgRVgc1UeSu72uMXQsWAX/SyYaCAe8kW1c= Received: from jcrouse-lnx.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: jcrouse@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 002C5612F6; Wed, 7 Nov 2018 22:36:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1541630166; bh=jRcp5lIzT2EGRYZes6qmZ2mCL2eprX+guoltoI4LLsE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RsONNJTXrpbOcH9/c+S0K6m5SZvKYD4iAoHJFsD9i9qI53OkjKdDsIc57w8z1o3/1 c1lNkgsgAD+O5o3nXLs2IcgPoFSSBzmwyAYLCyuSOqRyNZbrhAAbv5/QSDbDbNGDtz w1NQ7o8+/YjP9S4rTvKPZAXf1ReHh0UEAoPvuFOk= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 002C5612F6 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=jcrouse@codeaurora.org From: Jordan Crouse To: freedreno@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, seanpaul@chromium.org, dri-devel@lists.freedesktop.org, bzwang@chromium.org, sam@ravnborg.org Subject: [PATCH 9/9] drm/msm/gpu: Map the ringbuffer in the iova at create time Date: Wed, 7 Nov 2018 15:35:54 -0700 Message-Id: <20181107223554.27308-10-jcrouse@codeaurora.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181107223554.27308-1-jcrouse@codeaurora.org> References: <20181107223554.27308-1-jcrouse@codeaurora.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP For reasons that I'm sure made perfect sense at the time we were opting to defer the iova alloc / pin on the ringbuffer until HW init time so when we moved to iova reference counting we ended up adding a reference count every time the hardware started. Not that it mattered (because the ring is always around) but it did make the debug output look odd. Allocate and pin the iova at create time instead. Signed-off-by: Jordan Crouse --- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 9 --------- drivers/gpu/drm/msm/msm_ringbuffer.c | 4 ++-- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c index 3c2988514fc5..05092ca12193 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -209,15 +209,6 @@ int adreno_hw_init(struct msm_gpu *gpu) if (!ring) continue; - ret = msm_gem_get_and_pin_iova(ring->bo, gpu->aspace, - &ring->iova); - if (ret) { - ring->iova = 0; - DRM_DEV_ERROR(gpu->dev->dev, - "could not map ringbuffer %d: %d\n", i, ret); - return ret; - } - ring->cur = ring->start; ring->next = ring->start; diff --git a/drivers/gpu/drm/msm/msm_ringbuffer.c b/drivers/gpu/drm/msm/msm_ringbuffer.c index 6169bd6ca153..20a96fe69dcd 100644 --- a/drivers/gpu/drm/msm/msm_ringbuffer.c +++ b/drivers/gpu/drm/msm/msm_ringbuffer.c @@ -36,9 +36,9 @@ struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id, ring->gpu = gpu; ring->id = id; - /* Pass NULL for the iova pointer - we will map it later */ + ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ, - MSM_BO_WC, gpu->aspace, &ring->bo, NULL); + MSM_BO_WC, gpu->aspace, &ring->bo, &ring->iova); if (IS_ERR(ring->start)) { ret = PTR_ERR(ring->start);