Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp1161436pxb; Fri, 21 Jan 2022 11:09:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJx78mRZEiLwQV0tFK19DG+98aNWmTLb5DMQ6S56oHoSbtu8R/By2IGWjvZdyhvEfGoETLEX X-Received: by 2002:a65:464e:: with SMTP id k14mr3863947pgr.225.1642792157938; Fri, 21 Jan 2022 11:09:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642792157; cv=none; d=google.com; s=arc-20160816; b=xYVflL/hSs2Q4k3DFW5U1d/iV/Y1kOPFui0k00/4cAeWR9WZ9d88/aZMiffwBx0765 TCcM+AjtTR0LJDhoYViBp3WsKV+ys4aV0/e4oO1rG6unjW5Ftstcj1WXEWM5mv/ghGbd Oo0mIyZjl5iuHiHMIBbqGZvE0SMqYwQILt9VCGSkkE2+q2SQZvTgjNIa2vb1a8vMA5ne SDxuLeozV2GBJMXEwiXVN76ER61KoMCk2NvQW4g26LF+yN18CNOxJRy2YiKnrKPDf9jd OfO3lJvlXanVQuoSKyi7WmC8qLQ351sOaoJS5XfTW5bzVXQl3tcmVyyi2okI3576ywKo rZLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=lFHQBay/q6+NnOl2SII/Ps5xmFarxwMCV5ET8Tr+2Ks=; b=rVKsKfHJvtPJXae9rvnU4eS/R+JLq8b6AmCiUlI6Xbr4ty8438UHaV352fYE7DpyDo +hW258pfL7Ed9Fni8E+Vx65njt7Z9h2KlJv/HKbgZ/SRsh+yzcIRe+C0HllUpHTtAO0E CYRrIvNdRQnUQ0ME70BDfCOSYpWP/qEv/OxzmX8KfuYodMwnaO7wNak9TIvCvnqYEswZ cUScXWCp8lcOMFZZ2RIMp26RpPSi+W2pOrF3ezbzgdVQ6vugd+QdpAXTGw/L08ppbzby 7SLeWehv4sgjik4uuPp9Skh14QAr3w5TnkXUvOIq6RElW6hx5Mr8MIZxOE3yTfXedyIv 9CdA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=l6aA2GXw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id rj13si13463334pjb.33.2022.01.21.11.09.05; Fri, 21 Jan 2022 11:09:17 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=l6aA2GXw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353422AbiASKXp (ORCPT + 99 others); Wed, 19 Jan 2022 05:23:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45320 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345318AbiASKXo (ORCPT ); Wed, 19 Jan 2022 05:23:44 -0500 Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 93131C061574; Wed, 19 Jan 2022 02:23:43 -0800 (PST) Received: by mail-ed1-x52b.google.com with SMTP id c71so8977154edf.6; Wed, 19 Jan 2022 02:23:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=lFHQBay/q6+NnOl2SII/Ps5xmFarxwMCV5ET8Tr+2Ks=; b=l6aA2GXwD+dROz0YFw7ehLY4dgmbv+40TX9Ts7qiofcKfAz1LVs0R3DSVj2z1JgvrI UTJYZGGFgMga7wQ7dNkAuQ28hO/tbaI25Iom3JFsi5NJV6vJKBchKpoAdJ1kSh3Sa4sQ 1xC9a22YkHOilOyROJcXMRvr0SpynVcs42gKIiD35iZn3XEjjpkyGKhdS5xUqKSHeOZr SOyxQrHyxMc2Srp/Oa8yMQj8Zfb7gwRDiVRFJDh2zWdAWVp8VEEXb09XRX+UxHdwllWt 0wGpb2TGO8/vDZrYoKQDorxodoQqpbl8pn0WJs5BtEvipjuuGG/2wdUrIeBkhAjEFouW rU3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=lFHQBay/q6+NnOl2SII/Ps5xmFarxwMCV5ET8Tr+2Ks=; b=1UTIrMDJX5TyZDA0TntakoAfaYFDXiVWfd1AeFn6ivjznjqQUd7K44Ex+bjM/fE1ue 3v0411An1f3mFjNdypU0kHJg80lavKu2l3kfK7T5S7uxFmYxoxHv/wYXqCGkrUcPNB+L WRyF3xSlvCvUUYlV3GKf5xJ3PtBME6i500Djwgnz47QvSb+/FLQ8WOEBB+TvRSvRZFBk V6VQWPw42Lk4x7Zcq9Z39F8IJMvlmAAdM3i1SE+92IFIov1N5inBLRV22YfOMT5Bfk3Q XUlHg4f74mLC7bhFq8gjiVWNeMGuE4N5h7yXRmYjVXMMUvEe//sWH3h6enHW2NZkFGFS rkTQ== X-Gm-Message-State: AOAM530jbG0EOpOBket4OcgVuIFDAVSaOyi4YOjUZYb4KeFNy38vGUjC Uo10VLyWKUJwYwF33YI0/eU= X-Received: by 2002:a17:906:9750:: with SMTP id o16mr23715220ejy.410.1642587822170; Wed, 19 Jan 2022 02:23:42 -0800 (PST) Received: from localhost.localdomain ([46.249.74.23]) by smtp.gmail.com with ESMTPSA id b4sm3456546ejb.131.2022.01.19.02.23.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 19 Jan 2022 02:23:41 -0800 (PST) From: Ivaylo Dimitrov To: tomba@kernel.org, airlied@linux.ie, daniel@ffwll.ch Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, merlijn@wizzup.org, tony@atomide.com, Ivaylo Dimitrov Subject: [PATCH 1/3] drm: omapdrm: simplify omap_gem_pin Date: Wed, 19 Jan 2022 12:23:09 +0200 Message-Id: <1642587791-13222-2-git-send-email-ivo.g.dimitrov.75@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1642587791-13222-1-git-send-email-ivo.g.dimitrov.75@gmail.com> References: <1642587791-13222-1-git-send-email-ivo.g.dimitrov.75@gmail.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Move tiler related code to its own function. Signed-off-by: Ivaylo Dimitrov --- drivers/gpu/drm/omapdrm/omap_gem.c | 75 +++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 33 deletions(-) diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c b/drivers/gpu/drm/omapdrm/omap_gem.c index b0fa174..bb12cb4 100644 --- a/drivers/gpu/drm/omapdrm/omap_gem.c +++ b/drivers/gpu/drm/omapdrm/omap_gem.c @@ -750,6 +750,46 @@ void omap_gem_dma_sync_buffer(struct drm_gem_object *obj, } } +static int omap_gem_pin_tiler(struct drm_gem_object *obj) +{ + struct omap_gem_object *omap_obj = to_omap_bo(obj); + u32 npages = obj->size >> PAGE_SHIFT; + enum tiler_fmt fmt = gem2fmt(omap_obj->flags); + struct tiler_block *block; + int ret; + + BUG_ON(omap_obj->block); + + if (omap_obj->flags & OMAP_BO_TILED_MASK) { + block = tiler_reserve_2d(fmt, omap_obj->width, omap_obj->height, + PAGE_SIZE); + } else { + block = tiler_reserve_1d(obj->size); + } + + if (IS_ERR(block)) { + ret = PTR_ERR(block); + dev_err(obj->dev->dev, "could not remap: %d (%d)\n", ret, fmt); + goto fail; + } + + /* TODO: enable async refill.. */ + ret = tiler_pin(block, omap_obj->pages, npages, omap_obj->roll, true); + if (ret) { + tiler_release(block); + dev_err(obj->dev->dev, "could not pin: %d\n", ret); + goto fail; + } + + omap_obj->dma_addr = tiler_ssptr(block); + omap_obj->block = block; + + DBG("got dma address: %pad", &omap_obj->dma_addr); + +fail: + return ret; +} + /** * omap_gem_pin() - Pin a GEM object in memory * @obj: the GEM object @@ -774,11 +814,6 @@ int omap_gem_pin(struct drm_gem_object *obj, dma_addr_t *dma_addr) if (!omap_gem_is_contiguous(omap_obj) && priv->has_dmm) { if (refcount_read(&omap_obj->dma_addr_cnt) == 0) { - u32 npages = obj->size >> PAGE_SHIFT; - enum tiler_fmt fmt = gem2fmt(omap_obj->flags); - struct tiler_block *block; - - BUG_ON(omap_obj->block); refcount_set(&omap_obj->dma_addr_cnt, 1); @@ -786,35 +821,9 @@ int omap_gem_pin(struct drm_gem_object *obj, dma_addr_t *dma_addr) if (ret) goto fail; - if (omap_obj->flags & OMAP_BO_TILED_MASK) { - block = tiler_reserve_2d(fmt, - omap_obj->width, - omap_obj->height, PAGE_SIZE); - } else { - block = tiler_reserve_1d(obj->size); - } - - if (IS_ERR(block)) { - ret = PTR_ERR(block); - dev_err(obj->dev->dev, - "could not remap: %d (%d)\n", ret, fmt); - goto fail; - } - - /* TODO: enable async refill.. */ - ret = tiler_pin(block, omap_obj->pages, npages, - omap_obj->roll, true); - if (ret) { - tiler_release(block); - dev_err(obj->dev->dev, - "could not pin: %d\n", ret); + ret = omap_gem_pin_tiler(obj); + if (ret) goto fail; - } - - omap_obj->dma_addr = tiler_ssptr(block); - omap_obj->block = block; - - DBG("got dma address: %pad", &omap_obj->dma_addr); } else { refcount_inc(&omap_obj->dma_addr_cnt); } -- 1.9.1