From patchwork Mon Oct 14 12:50:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176323 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="K97DT+yh"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMR0Ndfz9sPh for ; Mon, 14 Oct 2019 23:50:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731002AbfJNMuz (ORCPT ); Mon, 14 Oct 2019 08:50:55 -0400 Received: from mail-wr1-f66.google.com ([209.85.221.66]:32851 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731035AbfJNMuz (ORCPT ); Mon, 14 Oct 2019 08:50:55 -0400 Received: by mail-wr1-f66.google.com with SMTP id b9so19627415wrs.0 for ; Mon, 14 Oct 2019 05:50:54 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=U877RE9c/tuFkeDa8v12pt9kVRahnNgSg6kH2NT2zSs=; b=K97DT+yhhip/zZqEwHem79zj/NHw61NIZ+WziLtr+XxhQm1OkuQ8Ibea0bKc9JWxKI tq/Buap1GcrVaM/kLNKwmAJY45Bp9flBI7Ydq5cYH+ai6FkYDCK9/MoEIPGNly5eOlZ4 wOMuYsyAjDh4uIJXfkYISBt/0yo09cxQNs2lYrLq9g2CJEjnT6wGNFoBe2ZUygzbylmP xfCwk6jALMbNAtlDwwWLQIQIfbtRQ1jm+0cja+O7RX+jZFkly2F1A2Ju1kh0HZ4s/t5i rZBImKJLH919yYKcMHxRQpWm8dby0J509aWZLuk47zwZcFVfxwgHZ3BTfB3Zdgtc29sa mrFg== 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:mime-version:content-transfer-encoding; bh=U877RE9c/tuFkeDa8v12pt9kVRahnNgSg6kH2NT2zSs=; b=NKApu7BjiJS+i1L5KuiqBA6++JNz0HTOoa7SjWgbGSt+IvQc8j1IU2Z7T2d7ZYs03z yZdqtnsUpOb7XOeMid0591f/I7+t2y3eik+YWX1KGEuVKY4zukbj4TpLucncfXDEqv+d igoeo8GSokB6bJl/ihKICVwOZKSnzxkQwk0k3JP6JEcKspLqyoKVvHvIvt0fHNjRwQQQ 5IZOgRVFmAqSpXcTj53CpvzBioX63IJDcH333Wnn1aZ4ZTPuJ21PbnN7/vHvVkzh5S2e qzBqedl/XGJORUrUKBPr9ZBpJMcwbqQX6T9VUBKEZt74Z+zvQP+Lx3jXdwaGfGFmojws UvNg== X-Gm-Message-State: APjAAAUSyElbKo4S2txLmWVzT6GgX6ReeBaMy1srwZiEu/GvgEROduRj /NFCQU/3Gv2ZgdKD+UcpS2k= X-Google-Smtp-Source: APXvYqwfjKsVR1no+BarpMeGzjtK/HnAt0suBKZXNFZWdLRdCg0+nhRxmDXpRahIEnbM95s89flPsQ== X-Received: by 2002:a5d:4ed2:: with SMTP id s18mr24739914wrv.52.1571057453478; Mon, 14 Oct 2019 05:50:53 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id f9sm21850054wre.74.2019.10.14.05.50.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:50:52 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 01/14] gpu: host1x: Do not limit DMA segment size Date: Mon, 14 Oct 2019 14:50:36 +0200 Message-Id: <20191014125049.425101-2-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding None of the host1x clients have any limitations on the DMA segment size, so don't pretend that they do. Signed-off-by: Thierry Reding --- drivers/gpu/host1x/bus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/host1x/bus.c b/drivers/gpu/host1x/bus.c index 742aa9ff21b8..2c8559ff3481 100644 --- a/drivers/gpu/host1x/bus.c +++ b/drivers/gpu/host1x/bus.c @@ -445,7 +445,7 @@ static int host1x_device_add(struct host1x *host1x, of_dma_configure(&device->dev, host1x->dev->of_node, true); device->dev.dma_parms = &device->dma_parms; - dma_set_max_seg_size(&device->dev, SZ_4M); + dma_set_max_seg_size(&device->dev, UINT_MAX); err = host1x_device_parse_dt(device, driver); if (err < 0) { From patchwork Mon Oct 14 12:50:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176325 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="U9lvx1cb"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMR6dRMz9sPj for ; Mon, 14 Oct 2019 23:50:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731035AbfJNMu6 (ORCPT ); Mon, 14 Oct 2019 08:50:58 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:42244 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731029AbfJNMu6 (ORCPT ); Mon, 14 Oct 2019 08:50:58 -0400 Received: by mail-wr1-f68.google.com with SMTP id n14so19554980wrw.9 for ; Mon, 14 Oct 2019 05:50:56 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=yr6ddMFHeDLCntvNYa+hL2al/dJdqvTJul7jaQ0EH5g=; b=U9lvx1cbTYbWS657zE2Tc9rYiIa1XQ1MvK29kpBkr6JoqEsLqBqomo1yYxydjNwu7o 6ZFzChng8BZsMFQZlg0FYo2GZMKXp/45qGER/86iJjzyeao7kxsVVIyRuH9CUQJRRWi8 7H/VSXdvlfmp+uVSLHPEiA2qdufh04/Bri8Fuit1+Goi+qmOpRk+Hm1vsv/tKTV01bPl Un91kXK9s5IN0rodlhj3N/01UIh/yKqCX2pMoIT43SOxPB2N8YZRlrwoJO0kn2bXAwBD gsCV4id8CQlLe6Iw095eUS+JNpglhZvEPaXyR+M7t9xgmTsE4RaYH5muI31iES5Y/K/j fi6Q== 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:mime-version:content-transfer-encoding; bh=yr6ddMFHeDLCntvNYa+hL2al/dJdqvTJul7jaQ0EH5g=; b=I4B9yJ/qhAaSmTYiaKJURJOjUV0eoA5clX0E+PWz7GJaTPwhH32cRlAofLUZpdJiS+ SUMcB6ofb+xWMbUT0RoZGoZ5ZsS7NjblYx8s+lAml5hK6TCghywPm8+dlNk/y55uJuqz yZsLXZ4TFacrwacgxIHk1zDDAEqW2+vFKLkWCXKvGA8OgBPJb9Gn+j9P5Y2hq9RNdx4O QCrsISEIeCh/R8uXJgeoppO5Cecwu/hTFh69qNvXEW50ngs+NF4aV7znNzJrPQHmRo1h rsvL3bdTY6jVsgmqqnjc9mCK8V889GIHgbC3K7+Rp7gTToDZdL+jr8UbadhxQueG9Amd jUvw== X-Gm-Message-State: APjAAAUKrUDAcfzkcY1CmHmKNXgoQG4g7flY5ppO3Kc5OAtx5M4phJ3M 4lj7FWEwlqU65pIzKB/xz6g= X-Google-Smtp-Source: APXvYqyBSiiaVUDINZz+bSWf6iQAgcfMBJ6K0a+ZRqvzYxwc7kK/NvnWt5L+YEufAc/q3Wmf5asHnA== X-Received: by 2002:a5d:4dd2:: with SMTP id f18mr6981953wru.4.1571057455717; Mon, 14 Oct 2019 05:50:55 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id c9sm17126565wrt.7.2019.10.14.05.50.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:50:54 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 02/14] gpu: host1x: Remove gratuitous blank line Date: Mon, 14 Oct 2019 14:50:37 +0200 Message-Id: <20191014125049.425101-3-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding Signed-off-by: Thierry Reding --- drivers/gpu/host1x/intr.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/gpu/host1x/intr.c b/drivers/gpu/host1x/intr.c index 26f3c741d085..9245add23b5d 100644 --- a/drivers/gpu/host1x/intr.c +++ b/drivers/gpu/host1x/intr.c @@ -105,7 +105,6 @@ static void action_submit_complete(struct host1x_waitlist *waiter) /* Add nr_completed to trace */ trace_host1x_channel_submit_complete(dev_name(channel->dev), waiter->count, waiter->thresh); - } static void action_wakeup(struct host1x_waitlist *waiter) From patchwork Mon Oct 14 12:50:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176326 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="roXeX3Za"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMW0Q2Tz9sPT for ; Mon, 14 Oct 2019 23:51:03 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731418AbfJNMvC (ORCPT ); Mon, 14 Oct 2019 08:51:02 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:36576 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731029AbfJNMvC (ORCPT ); Mon, 14 Oct 2019 08:51:02 -0400 Received: by mail-wr1-f68.google.com with SMTP id y19so19619238wrd.3 for ; Mon, 14 Oct 2019 05:50:58 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=rq1ZF1nsTPYlmvvsNxuE1omhCQpXv2Uc5EavmJCLVho=; b=roXeX3ZabUr/G5JLWSmiWtysvCekVmBgZnQSLwfNQbFZqAEaNWu58tWzTqYhBbXEpT xRsReujN/yxxI+N0AeMSh8rZ6OuN4RnNjyQgiWFP7ngOh8o1XJUH2Ma70CqFtA39oYyw bxrzDuSvZUdHCUbV/WBzyaaQck4UNiOCs5qqVPPJlptHX1DQCDbXrbgSqPrdw56vMh6B KvPOfm4c4RUk5FT7RL45hRBsUEoAnnKachEDbkk7HN+9pdiYg5Pk/8VcpevlSKfJNy1o acyPEUAAY6nGWoZwoQdq9GExxQC9XfYd6rqTY/WtOs9EsAJBrkZmiMMIucCx0BPR2vgJ VHcA== 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:mime-version:content-transfer-encoding; bh=rq1ZF1nsTPYlmvvsNxuE1omhCQpXv2Uc5EavmJCLVho=; b=dWBJrt992k9rPMMEwYuI1BOgMRAYHJLda9RscZXkoDMrIkt/QGydu7NZWd7oQxLvd5 nB3D8DqeLnz6syCzqClBaN0Y9n8Bu5Cz/xGHiiIEO9at6IHbTqL7r766wFqK3R+vOP4u fnqhUjORXy6OGo/8Ezu6kn0F6LUhmfrwWnvxgccLso1UGCUOP9D++0UeSG7utrOpJEiS N7kv0U/2SOqATTqFFRrG5Vs93R51IaNeRrB2lycyDQZSxEWmds1Nk0vbsqxG4gU/bjy9 Bg91Spv6XPx5TrZ/4hh4spZI4EZ0pEWkjeqWbrGIqhC4lBjVHa4aDRz4YgTGVEI6VZOy NBFQ== X-Gm-Message-State: APjAAAXUzjZPVibfE3osnryaoX+Z5aWxT6wT7WqBIQ7eiyDBRkeF4T6s rsWJTVSQYwwN/t2qxFBcA4ec4Uc+ X-Google-Smtp-Source: APXvYqyu8+tLAbFH3kbSjwHQedeUmmjLCm8Od7hF49MjagwlGdOGH44d2h92tCDjtljnP8K7vWmZDA== X-Received: by 2002:adf:8296:: with SMTP id 22mr24599649wrc.255.1571057457725; Mon, 14 Oct 2019 05:50:57 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id y19sm16741436wmi.13.2019.10.14.05.50.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:50:56 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 03/14] gpu: host1x: Explicitly initialize host1x_info structures Date: Mon, 14 Oct 2019 14:50:38 +0200 Message-Id: <20191014125049.425101-4-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding It's technically not required to explicitly initialize the fields that will be zero by default, but it's easier to read these structures if they are all initialized uniformly. Signed-off-by: Thierry Reding --- drivers/gpu/host1x/dev.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c index 5a3f797240d4..e8ab4d0c5091 100644 --- a/drivers/gpu/host1x/dev.c +++ b/drivers/gpu/host1x/dev.c @@ -77,6 +77,9 @@ static const struct host1x_info host1x01_info = { .init = host1x01_init, .sync_offset = 0x3000, .dma_mask = DMA_BIT_MASK(32), + .has_hypervisor = false, + .num_sid_entries = 0, + .sid_table = NULL, }; static const struct host1x_info host1x02_info = { @@ -87,6 +90,9 @@ static const struct host1x_info host1x02_info = { .init = host1x02_init, .sync_offset = 0x3000, .dma_mask = DMA_BIT_MASK(32), + .has_hypervisor = false, + .num_sid_entries = 0, + .sid_table = NULL, }; static const struct host1x_info host1x04_info = { @@ -97,6 +103,9 @@ static const struct host1x_info host1x04_info = { .init = host1x04_init, .sync_offset = 0x2100, .dma_mask = DMA_BIT_MASK(34), + .has_hypervisor = false, + .num_sid_entries = 0, + .sid_table = NULL, }; static const struct host1x_info host1x05_info = { @@ -107,6 +116,9 @@ static const struct host1x_info host1x05_info = { .init = host1x05_init, .sync_offset = 0x2100, .dma_mask = DMA_BIT_MASK(34), + .has_hypervisor = false, + .num_sid_entries = 0, + .sid_table = NULL, }; static const struct host1x_sid_entry tegra186_sid_table[] = { From patchwork Mon Oct 14 12:50:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176327 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="KPpOwIQJ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMd0mGzz9sPj for ; Mon, 14 Oct 2019 23:51:09 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731422AbfJNMvD (ORCPT ); Mon, 14 Oct 2019 08:51:03 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:33169 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731415AbfJNMvD (ORCPT ); Mon, 14 Oct 2019 08:51:03 -0400 Received: by mail-wm1-f65.google.com with SMTP id r17so14435062wme.0 for ; Mon, 14 Oct 2019 05:51:01 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=xXohOh2PNnJ9mf9YhRZwip9mBy/jBn3bFjciUpmeUw4=; b=KPpOwIQJCJ/ifOquBzI/rkkIhBfyPSn3Xrf5co8hRO4y6AhugJc5FSEci2erN/IVsX YmtK/lOh1oJdzNY4r8SJyTs+Z68b/uXeX6RA3958EWxYqb8jr0d6a/a6wUsgfTJWxb+H nCjvRoQxT2YzHt195lsXp+/sI+LQySt1kBX420UXTGz8fowz7BX3++U4GnhJl/lJjCj7 TpPrsWMR349iXic1FEwtrTK1h7w0opSi1PVdFoZtRR2bqbb2WY33xk9mGK7cYP3Jvt1s CtKLE1rhPzv+PbGqVbENyqhz4AXLP5bl3jYF9+6X0qQVkAUcnVbKLpTspwG/zetvCs6L WzwA== 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:mime-version:content-transfer-encoding; bh=xXohOh2PNnJ9mf9YhRZwip9mBy/jBn3bFjciUpmeUw4=; b=NCor9mQ2TS1KT5yPrZX765OwqRgKW2a6gHXMlg4tHl0vAUbQ/qHwhZET2kOYT7DNYi vbN/5VXQisWbcqnTpHyeDDClO3mXkN7p9+J/yOwXw7so4jfB73NF9ThSw9GbZ0FjdCgU 1V+fuqWpQiSp8x65MlpeKMTW9OUi7KR/rGrWnXJga54+7jrfEb47jM8KZ0BaedTdJW7B cLufp/Sh9sXZ2jFfHyP6iJ9HjGKUNtUFW/GeFQNZKLTaBYOoncAg/JFHVGhsEaWpRQR/ VsK8v8Lyws3PsKfkcQ+NOrX8u/o1YnFQwLrkInYHNQGj+A0bpB30CI7gvN2wvyfQ8B9G q5cw== X-Gm-Message-State: APjAAAVCYdjrXkW8TDODKyTu9jpbadaw3mDPwXbnsPKcabWvXDXzyoIp QpED8yedKDZ346pNIxjeW+E5J6x0 X-Google-Smtp-Source: APXvYqzTwE5O9n8rJ9WGhkeHV5xRAZeMlsQ8CheFaxYiNfkPbL/58F5cNEHWnAoT0s/oSzkIM0NdxQ== X-Received: by 2002:a1c:444:: with SMTP id 65mr15464247wme.84.1571057460214; Mon, 14 Oct 2019 05:51:00 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id z142sm28384710wmc.24.2019.10.14.05.50.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:50:59 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 04/14] gpu: host1x: Request channels for clients, not devices Date: Mon, 14 Oct 2019 14:50:39 +0200 Message-Id: <20191014125049.425101-5-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding A struct device doesn't carry much information that a channel might be interested in, but the client very much does. Request channels for the clients rather than their parent devices and store a pointer to them in order to have that information available when needed. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/gr2d.c | 2 +- drivers/gpu/drm/tegra/gr3d.c | 2 +- drivers/gpu/drm/tegra/vic.c | 2 +- drivers/gpu/host1x/channel.c | 13 +++++++------ drivers/gpu/host1x/channel.h | 1 + include/linux/host1x.h | 2 +- 6 files changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/tegra/gr2d.c b/drivers/gpu/drm/tegra/gr2d.c index 641299cc85b8..3cbb4a029c41 100644 --- a/drivers/gpu/drm/tegra/gr2d.c +++ b/drivers/gpu/drm/tegra/gr2d.c @@ -40,7 +40,7 @@ static int gr2d_init(struct host1x_client *client) struct gr2d *gr2d = to_gr2d(drm); int err; - gr2d->channel = host1x_channel_request(client->dev); + gr2d->channel = host1x_channel_request(client); if (!gr2d->channel) return -ENOMEM; diff --git a/drivers/gpu/drm/tegra/gr3d.c b/drivers/gpu/drm/tegra/gr3d.c index 8b9a35b1cbb3..87a386134cc4 100644 --- a/drivers/gpu/drm/tegra/gr3d.c +++ b/drivers/gpu/drm/tegra/gr3d.c @@ -49,7 +49,7 @@ static int gr3d_init(struct host1x_client *client) struct gr3d *gr3d = to_gr3d(drm); int err; - gr3d->channel = host1x_channel_request(client->dev); + gr3d->channel = host1x_channel_request(client); if (!gr3d->channel) return -ENOMEM; diff --git a/drivers/gpu/drm/tegra/vic.c b/drivers/gpu/drm/tegra/vic.c index cd0399fd8c63..c97a61c877af 100644 --- a/drivers/gpu/drm/tegra/vic.c +++ b/drivers/gpu/drm/tegra/vic.c @@ -198,7 +198,7 @@ static int vic_init(struct host1x_client *client) vic->domain = tegra->domain; } - vic->channel = host1x_channel_request(client->dev); + vic->channel = host1x_channel_request(client); if (!vic->channel) { err = -ENOMEM; goto detach; diff --git a/drivers/gpu/host1x/channel.c b/drivers/gpu/host1x/channel.c index 1436295aa450..4cd212bb570d 100644 --- a/drivers/gpu/host1x/channel.c +++ b/drivers/gpu/host1x/channel.c @@ -115,14 +115,14 @@ static struct host1x_channel *acquire_unused_channel(struct host1x *host) /** * host1x_channel_request() - Allocate a channel - * @device: Host1x unit this channel will be used to send commands to + * @client: Host1x client this channel will be used to send commands to * - * Allocates a new host1x channel for @device. May return NULL if CDMA + * Allocates a new host1x channel for @client. May return NULL if CDMA * initialization fails. */ -struct host1x_channel *host1x_channel_request(struct device *dev) +struct host1x_channel *host1x_channel_request(struct host1x_client *client) { - struct host1x *host = dev_get_drvdata(dev->parent); + struct host1x *host = dev_get_drvdata(client->dev->parent); struct host1x_channel_list *chlist = &host->channel_list; struct host1x_channel *channel; int err; @@ -133,7 +133,8 @@ struct host1x_channel *host1x_channel_request(struct device *dev) kref_init(&channel->refcount); mutex_init(&channel->submitlock); - channel->dev = dev; + channel->client = client; + channel->dev = client->dev; err = host1x_hw_channel_init(host, channel, channel->id); if (err < 0) @@ -148,7 +149,7 @@ struct host1x_channel *host1x_channel_request(struct device *dev) fail: clear_bit(channel->id, chlist->allocated_channels); - dev_err(dev, "failed to initialize channel\n"); + dev_err(client->dev, "failed to initialize channel\n"); return NULL; } diff --git a/drivers/gpu/host1x/channel.h b/drivers/gpu/host1x/channel.h index 4fd694834f74..39044ff6c3aa 100644 --- a/drivers/gpu/host1x/channel.h +++ b/drivers/gpu/host1x/channel.h @@ -26,6 +26,7 @@ struct host1x_channel { unsigned int id; struct mutex submitlock; void __iomem *regs; + struct host1x_client *client; struct device *dev; struct host1x_cdma cdma; }; diff --git a/include/linux/host1x.h b/include/linux/host1x.h index e6eea45e1154..4396cd566a33 100644 --- a/include/linux/host1x.h +++ b/include/linux/host1x.h @@ -158,7 +158,7 @@ u32 host1x_syncpt_base_id(struct host1x_syncpt_base *base); struct host1x_channel; struct host1x_job; -struct host1x_channel *host1x_channel_request(struct device *dev); +struct host1x_channel *host1x_channel_request(struct host1x_client *client); struct host1x_channel *host1x_channel_get(struct host1x_channel *channel); void host1x_channel_put(struct host1x_channel *channel); int host1x_job_submit(struct host1x_job *job); From patchwork Mon Oct 14 12:50:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176328 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="a6UPelnc"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMf46nxz9sPT for ; Mon, 14 Oct 2019 23:51:10 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731415AbfJNMvE (ORCPT ); Mon, 14 Oct 2019 08:51:04 -0400 Received: from mail-wm1-f68.google.com ([209.85.128.68]:36195 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731029AbfJNMvE (ORCPT ); Mon, 14 Oct 2019 08:51:04 -0400 Received: by mail-wm1-f68.google.com with SMTP id m18so16648310wmc.1 for ; Mon, 14 Oct 2019 05:51:02 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=G8Ip/N74ctxJJIwGKeqriyFtdTULY1VY4q99IhD7qRM=; b=a6UPelncewmDN9UTVzqDbpUmI9eu9bTh6bxy9nRXld4JwG3EVLAm3e06C3HA577Sv1 QHP5J78GPFogvs6g3WMyHnKzY9Oqw94QVzNn1g9OrBs3Oj07LAkxqz5I8WNR5ZZi8MHR iLsysrgZLneZNwqixOsZUzJaKfimn+4au/Ai31U/WASpDeF9WweuGelfgEN4OvxznALR lTR5/bvHA824s1VLAWOzUWEvLosCs/f8LeECsUD2aQTrR+61yvSqi+Q3OyQw4nYhtybO Act5WdkDXd+GYETwDO+CWFi2NiopIvXTHNJKkZstRgJQulH4eHae5YnT717G65LEiWLH Itpw== 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:mime-version:content-transfer-encoding; bh=G8Ip/N74ctxJJIwGKeqriyFtdTULY1VY4q99IhD7qRM=; b=gbsoaZ/9Q6D21CnJCnAB7mSvTz5QfaBlr9CJl3TnhtT5CKfChvMKDqjuNvX9EthQCL 80ziFNlhCIRy8Jfe1V2FkNF9VDvzE40beCBtrCghqLe57GMB+GuX+ZQmZ6Bwn3dr+9Tt f2Ttk0FnF7RJ+ut5q1K7GGjzEC7qAt0UoTvMMfzrJgTlw3YmcbO71SKlcsdAX0dj7RTW 2PuJpLJG0h7cYdxRwxryxxR/cZPWK0HeX6efQ2krTXkJMZPiewal9suLLp6I1msM4WcO 2nqrO4USwwPcOVx6LsMVFeoty0vTkBlOUHCcxESv/e7BzdT+uDJv2Sd2GTTGHI/ufc8y R6rA== X-Gm-Message-State: APjAAAWTh0CTWKtrQrYyR6ZvNiplO6p5BzFRGvhZzlp3W7yWVrOKQPnq BjCwqK5YewskZ88mqtpLcXY= X-Google-Smtp-Source: APXvYqwy8ad1by41Gb786EPOSxMUzFJ4fHUkh7WWE+RcLVZpFH7w5ydP5oTR7CWjvEhiKXk3grAFmQ== X-Received: by 2002:a1c:ac02:: with SMTP id v2mr11162902wme.85.1571057462130; Mon, 14 Oct 2019 05:51:02 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id l7sm18312749wrv.77.2019.10.14.05.51.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:51:01 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 05/14] drm/tegra: Inherit device DMA parameters from host1x Date: Mon, 14 Oct 2019 14:50:40 +0200 Message-Id: <20191014125049.425101-6-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding The display controllers and VIC don't have any limitations on the DMA segment size. Inherit the DMA parameters from the parent device, which also doesn't have any such limitations. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/dc.c | 9 +++++++++ drivers/gpu/drm/tegra/vic.c | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index fbf57bc3cdab..f7f7984bb749 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -2074,6 +2074,12 @@ static int tegra_dc_init(struct host1x_client *client) goto cleanup; } + /* + * Inherit the DMA parameters (such as maximum segment size) from the + * parent device. + */ + client->dev->dma_parms = client->parent->dma_parms; + return 0; cleanup: @@ -2097,6 +2103,9 @@ static int tegra_dc_exit(struct host1x_client *client) if (!tegra_dc_has_window_groups(dc)) return 0; + /* avoid a dangling pointer just in case this disappears */ + client->dev->dma_parms = NULL; + devm_free_irq(dc->dev, dc->irq, dc); err = tegra_dc_rgb_exit(dc); diff --git a/drivers/gpu/drm/tegra/vic.c b/drivers/gpu/drm/tegra/vic.c index c97a61c877af..8d98b0cfc47b 100644 --- a/drivers/gpu/drm/tegra/vic.c +++ b/drivers/gpu/drm/tegra/vic.c @@ -214,6 +214,12 @@ static int vic_init(struct host1x_client *client) if (err < 0) goto free_syncpt; + /* + * Inherit the DMA parameters (such as maximum segment size) from the + * parent device. + */ + client->dev->dma_parms = client->parent->dma_parms; + return 0; free_syncpt: @@ -236,6 +242,9 @@ static int vic_exit(struct host1x_client *client) struct vic *vic = to_vic(drm); int err; + /* avoid a dangling pointer just in case this disappears */ + client->dev->dma_parms = NULL; + err = tegra_drm_unregister_client(tegra, drm); if (err < 0) return err; From patchwork Mon Oct 14 12:50:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176329 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="FH9GU5LI"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMj0bGtz9sPh for ; Mon, 14 Oct 2019 23:51:13 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731429AbfJNMvG (ORCPT ); Mon, 14 Oct 2019 08:51:06 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:42263 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731029AbfJNMvG (ORCPT ); Mon, 14 Oct 2019 08:51:06 -0400 Received: by mail-wr1-f65.google.com with SMTP id n14so19555496wrw.9 for ; Mon, 14 Oct 2019 05:51:05 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=hANW8n51/2TerGmbLCgZv/CuSuRXQd643gepZFK9hnc=; b=FH9GU5LIfYrvKMM0VQueVtxsk2INkBq+qpUi/rO8dShCffTYMsqbyIsBc0RZYEFlQa S2PL1z4hHISnNlRIeTHqfdHwzlR2DLrKWQ4CjBiqrSinZ+jHc0DTXjSjFKYQe2kYxA6b UAgfZHe6cKBwp3ZoketphiL8GAL6MrZgOWOPE+lrOa3gYgw1MSli3+czinyu9UE+tdiI Lm6xyR1KCsKAphTiq78PcI5DKXCdn7ImtaRiq5Na4yJOenpszLme6hcCq0ftlh4FdgWP gYNRHFn1ZwwcE6JtneCyAhE2YcSBqT9Yk5+yuywj5PYO8nsUBi2pU7ZKupMHBzxAwZjn ey4A== 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:mime-version:content-transfer-encoding; bh=hANW8n51/2TerGmbLCgZv/CuSuRXQd643gepZFK9hnc=; b=G9VK+uWAlA6ltqrDUyYz09PQFxhheiHY0c0IzPwOX1uQFADeuKDWw04qe2+eesEsJV 7vMoR4Kb8DlCYDWfMbwIpegQGZlPG+hQ26nGhu69G8Dle6pTcXPdp8OwWyMPIaHtf9VA aLSccYaDcKr83Pg1VopGEFRfZziC3l/wHY3TE2+bJqDGMKUDlTDiH/1KIXLORZG9ywI3 61cXBsHdIlJuDlD013tH4yQWgB/M/CrjbG9TQcaMoyd4twUkru0w1CX01jRzhFa3QwUa iH0ZCz8Q0wjq4QfHA6H7OZxOn1Ukfu6jIQD3NKnMGrQUnDDLb61jPSxZhxIVdsH8iILc jlcA== X-Gm-Message-State: APjAAAXXNgrJFSlZIyfmxqY3oMvh3dWBnQ0U20BEXGyNl9qUKwWho334 oqygIXfOjbIGLEEKFYxdMo0= X-Google-Smtp-Source: APXvYqybmot/4ZJNgw6ylAiNa+i9nfpB1OEZUQ+aZJOVklE7DDa43GuKJsTwPpS6ZdV8c+Sq1irO7Q== X-Received: by 2002:adf:e705:: with SMTP id c5mr24803233wrm.375.1571057464290; Mon, 14 Oct 2019 05:51:04 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id n18sm15138096wmi.20.2019.10.14.05.51.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:51:03 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 06/14] drm/tegra: Use DRM_DEBUG_DRIVER for driver messages Date: Mon, 14 Oct 2019 14:50:41 +0200 Message-Id: <20191014125049.425101-7-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding The driver-specific messages should use the DRM_UT_DRIVER category so that they can be properly filtered. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/drm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c index bc7cc32140f8..498d22a65616 100644 --- a/drivers/gpu/drm/tegra/drm.c +++ b/drivers/gpu/drm/tegra/drm.c @@ -163,10 +163,10 @@ static int tegra_drm_load(struct drm_device *drm, unsigned long flags) drm_mm_init(&tegra->mm, gem_start, gem_end - gem_start + 1); mutex_init(&tegra->mm_lock); - DRM_DEBUG("IOMMU apertures:\n"); - DRM_DEBUG(" GEM: %#llx-%#llx\n", gem_start, gem_end); - DRM_DEBUG(" Carveout: %#llx-%#llx\n", carveout_start, - carveout_end); + DRM_DEBUG_DRIVER("IOMMU apertures:\n"); + DRM_DEBUG_DRIVER(" GEM: %#llx-%#llx\n", gem_start, gem_end); + DRM_DEBUG_DRIVER(" Carveout: %#llx-%#llx\n", carveout_start, + carveout_end); } if (tegra->hub) { From patchwork Mon Oct 14 12:50:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176330 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="FmdjeQny"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMj5qsVz9sPj for ; Mon, 14 Oct 2019 23:51:13 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731425AbfJNMvI (ORCPT ); Mon, 14 Oct 2019 08:51:08 -0400 Received: from mail-wr1-f66.google.com ([209.85.221.66]:46336 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731029AbfJNMvI (ORCPT ); Mon, 14 Oct 2019 08:51:08 -0400 Received: by mail-wr1-f66.google.com with SMTP id o18so19546550wrv.13 for ; Mon, 14 Oct 2019 05:51:06 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=u6qXD9rn/OIy+Nv0WvvLjXj4OfQZfi5fmj38Q+4+iVI=; b=FmdjeQnyIcA69WMoPZKySboMFynXrM36qbqu913EAvyYOjBAnTnyNyYyCH7nDBCelC hftfthY/SOB5KOggPuk+SFkQvcxPuvRnQE13sde1PO0VAZLQQcQiwEFt4PBRw0nVoG53 tZrFqhe9mvXc3RyFGtktUIdFJ2LqTlvSnxwBeB5f2KOGihpjJQbKiN1q9RzsHzAXV7s+ KAlzlQSW32DQUZECKvO5NgLR2T2fJ1b3cGSDG5OVb5hResG00vVxjMHWWMvQWWXXjC3T NH7PF4LMvO0AwLomX320ZH/0RNnK3fev9VuqpiqBvZxyglrdynAscQp8UEvO0ACehJ9v DcOg== 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:mime-version:content-transfer-encoding; bh=u6qXD9rn/OIy+Nv0WvvLjXj4OfQZfi5fmj38Q+4+iVI=; b=bBL29cmStT6ZQAM2WxhYhUewJu9+I5EDzaCSiAwnLZsvZrHYNSityx54lFbBs6ajub aooLof9fOjGm9QXZtj61f5wInqt8PZj74bQZme+Q/vJEVOEhqYhQ0mnPxOP/ToQYNuPR 0H8b0XVxWnomSx0rnPnVvqbcnn+cpUv//9FVl/904YpTSkpAAXpD2Z+3cY2NkZeVIC1K 6YB7aK5oTj0RYcmNNaoJzhiOTC0/6Hi9mydZP2ZrJLmhXWyA3RXo9Jb495jWksZl/FSY +ra0bTzHlyO2Tnaooagun+2TsmGh0mOQwDZ1OOMTkbFYciqNyPkuWCxMoq6fvCUuVjQn hWiw== X-Gm-Message-State: APjAAAXE15O7WZaz8+frTy8rBSrMTQ1qHxSiYO1wjCXG+J6rrGeq26B8 mI54mysSD6VbvOJ+QXtWP+g= X-Google-Smtp-Source: APXvYqymrU0rKN/GipYYJ9TGISsRaOYzVUz0m6AnXs9Fgc/t+zqFjgMgQcdHtPBjQDSRGhmrzFxnfw== X-Received: by 2002:a5d:460a:: with SMTP id t10mr26759965wrq.13.1571057466179; Mon, 14 Oct 2019 05:51:06 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id z125sm20917675wme.37.2019.10.14.05.51.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:51:05 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 07/14] drm/tegra: vic: Skip stream ID programming without IOMMU Date: Mon, 14 Oct 2019 14:50:42 +0200 Message-Id: <20191014125049.425101-8-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding If VIC is not behind an IOMMU, don't touch any of the registers related to stream ID programming. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/vic.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/tegra/vic.c b/drivers/gpu/drm/tegra/vic.c index 8d98b0cfc47b..748798f2cdc8 100644 --- a/drivers/gpu/drm/tegra/vic.c +++ b/drivers/gpu/drm/tegra/vic.c @@ -97,6 +97,9 @@ static int vic_runtime_suspend(struct device *dev) static int vic_boot(struct vic *vic) { +#ifdef CONFIG_IOMMU_API + struct iommu_fwspec *spec = dev_iommu_fwspec_get(vic->dev); +#endif u32 fce_ucode_size, fce_bin_data_offset; void *hdr; int err = 0; @@ -105,15 +108,14 @@ static int vic_boot(struct vic *vic) return 0; #ifdef CONFIG_IOMMU_API - if (vic->config->supports_sid) { - struct iommu_fwspec *spec = dev_iommu_fwspec_get(vic->dev); + if (vic->config->supports_sid && spec) { u32 value; value = TRANSCFG_ATT(1, TRANSCFG_SID_FALCON) | TRANSCFG_ATT(0, TRANSCFG_SID_HW); vic_writel(vic, value, VIC_TFBIF_TRANSCFG); - if (spec && spec->num_ids > 0) { + if (spec->num_ids > 0) { value = spec->ids[0] & 0xffff; vic_writel(vic, value, VIC_THI_STREAMID0); From patchwork Mon Oct 14 12:50:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176331 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="DOlLanNa"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMk5Ct7z9sPT for ; Mon, 14 Oct 2019 23:51:14 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731432AbfJNMvK (ORCPT ); Mon, 14 Oct 2019 08:51:10 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:37127 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731029AbfJNMvK (ORCPT ); Mon, 14 Oct 2019 08:51:10 -0400 Received: by mail-wm1-f65.google.com with SMTP id f22so16631206wmc.2 for ; Mon, 14 Oct 2019 05:51:08 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=FwBg+ebSJP5mRjr900RF+E/RqOvjOLM24+kI7t4VvUg=; b=DOlLanNaCmwuTEm1kbAzhv1PC8LkEv4wn3LmSmiRgU3vG4Zq6lTTq3lyOHwRdqjBTc cJKq6Q+3ujIHy9JzOxO9uocKYFPbl3Qjr3mowd4Xd5ArqjQOj4KWpEzp1AZD6OpieOVz /teKSxf4EUaDQqHGV7XcG8d6oC1CHCUlXZtKRni9c/6S8tlm/T65HnODIvS3hF/hNWUy bs0U5xLavIhEF0B9SUJq+Q4Di9V3SmjB/BfazUpyM5D2tZRduplXBsAGrLFoWyD1Kcii IEOMTliZ+HpghdKrlwru4q2t2jEKiAFt57B41S1GL0679eNejylsL2Ht1DKfYYs8rSkX 9xLw== 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:mime-version:content-transfer-encoding; bh=FwBg+ebSJP5mRjr900RF+E/RqOvjOLM24+kI7t4VvUg=; b=VraF3Ng8fP5asZr71cHdtiM6DyWyGtvkQk9j8aVxKQcFcaQs1rLM6ItxwlzZ+4D+ec +fa+29WaM0abgxWQeGeIY96z3xTJJluA+9790hmtbE71Lb3aYhhxv8zql4uN3EBHvtiK IZdYwKI9BPWVdt14wAXYYddlT2OhjdkNoGg5Zpwa1LhOAEAdQoy9q6wKuYq0cCv3nlDd LAgLhi0e8w/VYMA5a06TYJXBxneXfO08eh6Lf/2gml60GyJKBymqTFGDeQfVfdwiKE5D TU11nEY6BEa7gD24eGcuhzWzEmZpZSmszgocKTB5BXd7Zv76dVMnsurxHjyDIbwRhBzP dP2g== X-Gm-Message-State: APjAAAVTW3vLuuM93K3xfl6Fv8HVymVaUvOHh9W0nkKym1RbVyJjWFWz YFmQTDAWClGoGR7A2nWplyo= X-Google-Smtp-Source: APXvYqzXG6B2Rb+gy/AW++lSmQzs70JeEvfgo03vNOj77BcGg0/KS5QnmwfcvAVFWiTYXiMXWp9RYw== X-Received: by 2002:a1c:f011:: with SMTP id a17mr14486354wmb.18.1571057468225; Mon, 14 Oct 2019 05:51:08 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id x5sm23902742wrt.75.2019.10.14.05.51.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:51:07 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 08/14] drm/tegra: vic: Inherit DMA mask from host1x Date: Mon, 14 Oct 2019 14:50:43 +0200 Message-Id: <20191014125049.425101-9-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding VIC, just like all other host1x clients, has the same addressing range as its parent host1x device. Inherit the DMA mask to reflect that. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/vic.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/tegra/vic.c b/drivers/gpu/drm/tegra/vic.c index 748798f2cdc8..d60e479cde92 100644 --- a/drivers/gpu/drm/tegra/vic.c +++ b/drivers/gpu/drm/tegra/vic.c @@ -385,6 +385,13 @@ static int vic_probe(struct platform_device *pdev) struct vic *vic; int err; + /* inherit DMA mask from host1x parent */ + err = dma_coerce_mask_and_coherent(dev, *dev->parent->dma_mask); + if (err < 0) { + dev_err(&pdev->dev, "failed to set DMA mask: %d\n", err); + return err; + } + vic = devm_kzalloc(dev, sizeof(*vic), GFP_KERNEL); if (!vic) return -ENOMEM; From patchwork Mon Oct 14 12:50:44 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176332 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="uD7vU7d6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMl4BkXz9sPh for ; Mon, 14 Oct 2019 23:51:15 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731431AbfJNMvN (ORCPT ); Mon, 14 Oct 2019 08:51:13 -0400 Received: from mail-wm1-f68.google.com ([209.85.128.68]:53443 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731029AbfJNMvM (ORCPT ); Mon, 14 Oct 2019 08:51:12 -0400 Received: by mail-wm1-f68.google.com with SMTP id i16so17146965wmd.3 for ; Mon, 14 Oct 2019 05:51:11 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=B5fuJB7QmtV9h7aBVewhTK71Ks0pgNS4kdo609/xFbo=; b=uD7vU7d6OrpaUKwtuchmc0iH50x9zTlPXy7BcOJu4sWXI/SQQ2woE6sEm/DEqC7p1n t5RF6Jo+hCWPcJVl5l8AhEWEcVivkgdqVVEgZl1TPZtN2Kx/S4HwH+tkhkBRiTDZxPyo VYa2q0F7wCEf3x4dgzkS2OLKnCm22IAZEqDJEZNO+3Yp35cLQQwGwJGDk03BmvH3MKXi tuXsqzpUDTXvjtqu7+i3CkiuEV084bh/2vQxvncSjNbE0v+Pc1mwcPAyhhxY+zWcSod1 syAETGIUdShjefqAwdh5yi085uQ/gOMEIyVZiu+dn1vJIkF8VN+cLxY1fdsa+4Fwokub 5FgA== 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:mime-version:content-transfer-encoding; bh=B5fuJB7QmtV9h7aBVewhTK71Ks0pgNS4kdo609/xFbo=; b=NVXjSiUAVYZGEr1+YFXs17O7PGpDdhjePzCVhdzxkAnIEEP6fCKPrT0kg302OdYHdD hlA0xU4OS4how2DXyDCWWrifKGyntygdRc3H2n+ZQWA4v6sJVfY891fYPe2/EpDos5Hw bASLxn6V3JuRXJ9OW+E2Glhn0xPO7QwCWvcuLBeDDv3Q/1How0KUDPru/FwwaWN8wfO7 ybDEwlrl0iPoNyCo5pyYpTfgNldOc9OBfcUt6aT4GdFCywJjq+F7jANze9qkZAnpNXr2 UI3LrceQpIMnknDA6p9eduthNlhBc5gtQHNcyQTo5/aBUCMOT0jWCzDk2VtLSGebFjM1 cBxw== X-Gm-Message-State: APjAAAVSOyFbWA5okP6oVoZvnZJaAFXb8Ojrjj/r7FoGiGcP3OC/qxOV PY1H3Dc774DaLij/DDulcw4= X-Google-Smtp-Source: APXvYqxCDvHffZXht1XHuIbS0QlRApgWVwhVUWF+hNratzEVbOVK6iZZnoRmz0hhM8KUZR4o03xguA== X-Received: by 2002:a1c:1dc9:: with SMTP id d192mr15685966wmd.51.1571057470705; Mon, 14 Oct 2019 05:51:10 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id a192sm16440048wma.1.2019.10.14.05.51.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:51:09 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 09/14] drm/tegra: vic: Use common IOMMU attach/detach code Date: Mon, 14 Oct 2019 14:50:44 +0200 Message-Id: <20191014125049.425101-10-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding Reuse common code to attach to or detach from an IOMMU domain. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/vic.c | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/tegra/vic.c b/drivers/gpu/drm/tegra/vic.c index d60e479cde92..e4b17c7ce708 100644 --- a/drivers/gpu/drm/tegra/vic.c +++ b/drivers/gpu/drm/tegra/vic.c @@ -34,7 +34,7 @@ struct vic { void __iomem *regs; struct tegra_drm_client client; struct host1x_channel *channel; - struct iommu_domain *domain; + struct iommu_group *group; struct device *dev; struct clk *clk; struct reset_control *rst; @@ -183,21 +183,16 @@ static const struct falcon_ops vic_falcon_ops = { static int vic_init(struct host1x_client *client) { struct tegra_drm_client *drm = host1x_to_drm_client(client); - struct iommu_group *group = iommu_group_get(client->dev); struct drm_device *dev = dev_get_drvdata(client->parent); struct tegra_drm *tegra = dev->dev_private; struct vic *vic = to_vic(drm); int err; - if (group && tegra->domain) { - err = iommu_attach_group(tegra->domain, group); - if (err < 0) { - dev_err(vic->dev, "failed to attach to domain: %d\n", - err); - return err; - } - - vic->domain = tegra->domain; + vic->group = host1x_client_iommu_attach(client, false); + if (IS_ERR(vic->group)) { + err = PTR_ERR(vic->group); + dev_err(vic->dev, "failed to attach to domain: %d\n", err); + return err; } vic->channel = host1x_channel_request(client); @@ -229,8 +224,7 @@ static int vic_init(struct host1x_client *client) free_channel: host1x_channel_put(vic->channel); detach: - if (group && tegra->domain) - iommu_detach_group(tegra->domain, group); + host1x_client_iommu_detach(client, vic->group); return err; } @@ -238,7 +232,6 @@ static int vic_init(struct host1x_client *client) static int vic_exit(struct host1x_client *client) { struct tegra_drm_client *drm = host1x_to_drm_client(client); - struct iommu_group *group = iommu_group_get(client->dev); struct drm_device *dev = dev_get_drvdata(client->parent); struct tegra_drm *tegra = dev->dev_private; struct vic *vic = to_vic(drm); @@ -253,11 +246,7 @@ static int vic_exit(struct host1x_client *client) host1x_syncpt_free(client->syncpts[0]); host1x_channel_put(vic->channel); - - if (vic->domain) { - iommu_detach_group(vic->domain, group); - vic->domain = NULL; - } + host1x_client_iommu_detach(client, vic->group); return 0; } From patchwork Mon Oct 14 12:50:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176333 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="BfXUzm2V"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMn1Phsz9sPT for ; Mon, 14 Oct 2019 23:51:17 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731451AbfJNMvQ (ORCPT ); Mon, 14 Oct 2019 08:51:16 -0400 Received: from mail-wm1-f66.google.com ([209.85.128.66]:53446 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731029AbfJNMvQ (ORCPT ); Mon, 14 Oct 2019 08:51:16 -0400 Received: by mail-wm1-f66.google.com with SMTP id i16so17147103wmd.3 for ; Mon, 14 Oct 2019 05:51:13 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=ByOD/URUTplb+5mvC2oecBpFoqh1Lrogh0FPvicFxx4=; b=BfXUzm2VewPyYkUCGJVNqEQaPRyntweb24BGSGEiaGKmWqLNb5E3CKsBtzyRHit1LF RH+rOqQtsJdAMqc/jwYwepBvBV70dlqA7O9VJVOPGNELd5sW/U3QINoZjawTzoxiX/iC oJVImuzxBq8VuGsrh0ilh8WUK/IFa8mmsgSdOLAbvsxiWTdKqs5bja6jYOVZ9AwACB6j jREavpuXhz0wORWSij+Y4/TSxLLfNmEZJEzjxXPxnyYnNyouaiaVFxz5lFFdppjm7Oo3 rl/RuXhI4jeTY9JLPkzJBYslXaQRiIMVynoIOzO+GQQkg2z/OEqwceqXxAMzsfOxylto hoow== 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:mime-version:content-transfer-encoding; bh=ByOD/URUTplb+5mvC2oecBpFoqh1Lrogh0FPvicFxx4=; b=C/i1hp5o0eKBnsD7SnWz0jXOmlcY/e77QZ6sSYw+uhW4XZ67E8PjrqT8U/kuvemUXG 8C8yIZoyh6I/ubwWIE4VoIfiL+DkoHWeillV+kFOin4Q2OYO0aoOq65ooMk9uuV0GrEB 4v9tP2YTB+7T4/IHyXygaguQe6MCVQU8ftUDDn4ItNght7INbIzIRSkoAwQU8FpiJwqI yHrFvpMLvhk76idO/RhKDeowid1rislfilHqhAExIme+ObdkUYOsFnJpcPrxsDGYue7b vV1tQQUCgRKqzrnDsl03m8C5+Oaef5DoPgU7ZaWiYjJ0xnRWq+SX19TCgRBUV4MPSJf1 zWlQ== X-Gm-Message-State: APjAAAW0SVdssAeIDEgwFNMe5Vr79doCkPp2WTpSZKobjJyu2rI/sFKZ BXn2FNGVGrh6W922/mUCtVA= X-Google-Smtp-Source: APXvYqwzHVU93ie1bseLLY/s+4NFR5ZzARfzHrP6+sB19QpVkZf9w0io00VLw9eswka+jOaiddjjTw== X-Received: by 2002:a05:600c:2107:: with SMTP id u7mr14817594wml.13.1571057472712; Mon, 14 Oct 2019 05:51:12 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id c132sm27253057wme.27.2019.10.14.05.51.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:51:11 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 10/14] drm/tegra: Move IOMMU group into host1x client Date: Mon, 14 Oct 2019 14:50:45 +0200 Message-Id: <20191014125049.425101-11-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding Handling of the IOMMU group attachment is common to all clients, so move the group into the client to simplify code. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/dc.c | 9 ++++----- drivers/gpu/drm/tegra/dc.h | 2 -- drivers/gpu/drm/tegra/drm.c | 22 +++++++++++----------- drivers/gpu/drm/tegra/drm.h | 6 ++---- drivers/gpu/drm/tegra/gr2d.c | 10 ++++------ drivers/gpu/drm/tegra/gr3d.c | 10 ++++------ drivers/gpu/drm/tegra/vic.c | 10 ++++------ include/linux/host1x.h | 2 ++ 8 files changed, 31 insertions(+), 40 deletions(-) diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index f7f7984bb749..3ac535bd99ca 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -2014,9 +2014,8 @@ static int tegra_dc_init(struct host1x_client *client) if (!dc->syncpt) dev_warn(dc->dev, "failed to allocate syncpoint\n"); - dc->group = host1x_client_iommu_attach(client, true); - if (IS_ERR(dc->group)) { - err = PTR_ERR(dc->group); + err = host1x_client_iommu_attach(client, true); + if (err < 0) { dev_err(client->dev, "failed to attach to domain: %d\n", err); return err; } @@ -2089,7 +2088,7 @@ static int tegra_dc_init(struct host1x_client *client) if (!IS_ERR(primary)) drm_plane_cleanup(primary); - host1x_client_iommu_detach(client, dc->group); + host1x_client_iommu_detach(client); host1x_syncpt_free(dc->syncpt); return err; @@ -2114,7 +2113,7 @@ static int tegra_dc_exit(struct host1x_client *client) return err; } - host1x_client_iommu_detach(client, dc->group); + host1x_client_iommu_detach(client); host1x_syncpt_free(dc->syncpt); return 0; diff --git a/drivers/gpu/drm/tegra/dc.h b/drivers/gpu/drm/tegra/dc.h index 0c4d17851f47..3d8ddccd758f 100644 --- a/drivers/gpu/drm/tegra/dc.h +++ b/drivers/gpu/drm/tegra/dc.h @@ -90,8 +90,6 @@ struct tegra_dc { struct drm_info_list *debugfs_files; const struct tegra_dc_soc_info *soc; - - struct iommu_group *group; }; static inline struct tegra_dc * diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c index 498d22a65616..b74362cb63eb 100644 --- a/drivers/gpu/drm/tegra/drm.c +++ b/drivers/gpu/drm/tegra/drm.c @@ -1068,8 +1068,7 @@ int tegra_drm_unregister_client(struct tegra_drm *tegra, return 0; } -struct iommu_group *host1x_client_iommu_attach(struct host1x_client *client, - bool shared) +int host1x_client_iommu_attach(struct host1x_client *client, bool shared) { struct drm_device *drm = dev_get_drvdata(client->parent); struct tegra_drm *tegra = drm->dev_private; @@ -1080,7 +1079,7 @@ struct iommu_group *host1x_client_iommu_attach(struct host1x_client *client, group = iommu_group_get(client->dev); if (!group) { dev_err(client->dev, "failed to get IOMMU group\n"); - return ERR_PTR(-ENODEV); + return -ENODEV; } if (!shared || (shared && (group != tegra->group))) { @@ -1095,7 +1094,7 @@ struct iommu_group *host1x_client_iommu_attach(struct host1x_client *client, err = iommu_attach_group(tegra->domain, group); if (err < 0) { iommu_group_put(group); - return ERR_PTR(err); + return err; } if (shared && !tegra->group) @@ -1103,22 +1102,23 @@ struct iommu_group *host1x_client_iommu_attach(struct host1x_client *client, } } - return group; + client->group = group; + + return 0; } -void host1x_client_iommu_detach(struct host1x_client *client, - struct iommu_group *group) +void host1x_client_iommu_detach(struct host1x_client *client) { struct drm_device *drm = dev_get_drvdata(client->parent); struct tegra_drm *tegra = drm->dev_private; - if (group) { - if (group == tegra->group) { - iommu_detach_group(tegra->domain, group); + if (client->group) { + if (client->group == tegra->group) { + iommu_detach_group(tegra->domain, client->group); tegra->group = NULL; } - iommu_group_put(group); + iommu_group_put(client->group); } } diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h index 29911eff9ceb..6a06d636e930 100644 --- a/drivers/gpu/drm/tegra/drm.h +++ b/drivers/gpu/drm/tegra/drm.h @@ -100,10 +100,8 @@ int tegra_drm_register_client(struct tegra_drm *tegra, struct tegra_drm_client *client); int tegra_drm_unregister_client(struct tegra_drm *tegra, struct tegra_drm_client *client); -struct iommu_group *host1x_client_iommu_attach(struct host1x_client *client, - bool shared); -void host1x_client_iommu_detach(struct host1x_client *client, - struct iommu_group *group); +int host1x_client_iommu_attach(struct host1x_client *client, bool shared); +void host1x_client_iommu_detach(struct host1x_client *client); int tegra_drm_init(struct tegra_drm *tegra, struct drm_device *drm); int tegra_drm_exit(struct tegra_drm *tegra); diff --git a/drivers/gpu/drm/tegra/gr2d.c b/drivers/gpu/drm/tegra/gr2d.c index 3cbb4a029c41..5d5af9a05c18 100644 --- a/drivers/gpu/drm/tegra/gr2d.c +++ b/drivers/gpu/drm/tegra/gr2d.c @@ -17,7 +17,6 @@ struct gr2d_soc { }; struct gr2d { - struct iommu_group *group; struct tegra_drm_client client; struct host1x_channel *channel; struct clk *clk; @@ -51,9 +50,8 @@ static int gr2d_init(struct host1x_client *client) goto put; } - gr2d->group = host1x_client_iommu_attach(client, false); - if (IS_ERR(gr2d->group)) { - err = PTR_ERR(gr2d->group); + err = host1x_client_iommu_attach(client, false); + if (err < 0) { dev_err(client->dev, "failed to attach to domain: %d\n", err); goto free; } @@ -67,7 +65,7 @@ static int gr2d_init(struct host1x_client *client) return 0; detach: - host1x_client_iommu_detach(client, gr2d->group); + host1x_client_iommu_detach(client); free: host1x_syncpt_free(client->syncpts[0]); put: @@ -87,7 +85,7 @@ static int gr2d_exit(struct host1x_client *client) if (err < 0) return err; - host1x_client_iommu_detach(client, gr2d->group); + host1x_client_iommu_detach(client); host1x_syncpt_free(client->syncpts[0]); host1x_channel_put(gr2d->channel); diff --git a/drivers/gpu/drm/tegra/gr3d.c b/drivers/gpu/drm/tegra/gr3d.c index 87a386134cc4..c249a6bd8d51 100644 --- a/drivers/gpu/drm/tegra/gr3d.c +++ b/drivers/gpu/drm/tegra/gr3d.c @@ -23,7 +23,6 @@ struct gr3d_soc { }; struct gr3d { - struct iommu_group *group; struct tegra_drm_client client; struct host1x_channel *channel; struct clk *clk_secondary; @@ -60,9 +59,8 @@ static int gr3d_init(struct host1x_client *client) goto put; } - gr3d->group = host1x_client_iommu_attach(client, false); - if (IS_ERR(gr3d->group)) { - err = PTR_ERR(gr3d->group); + err = host1x_client_iommu_attach(client, false); + if (err < 0) { dev_err(client->dev, "failed to attach to domain: %d\n", err); goto free; } @@ -76,7 +74,7 @@ static int gr3d_init(struct host1x_client *client) return 0; detach: - host1x_client_iommu_detach(client, gr3d->group); + host1x_client_iommu_detach(client); free: host1x_syncpt_free(client->syncpts[0]); put: @@ -95,7 +93,7 @@ static int gr3d_exit(struct host1x_client *client) if (err < 0) return err; - host1x_client_iommu_detach(client, gr3d->group); + host1x_client_iommu_detach(client); host1x_syncpt_free(client->syncpts[0]); host1x_channel_put(gr3d->channel); diff --git a/drivers/gpu/drm/tegra/vic.c b/drivers/gpu/drm/tegra/vic.c index e4b17c7ce708..d34b1ada422c 100644 --- a/drivers/gpu/drm/tegra/vic.c +++ b/drivers/gpu/drm/tegra/vic.c @@ -34,7 +34,6 @@ struct vic { void __iomem *regs; struct tegra_drm_client client; struct host1x_channel *channel; - struct iommu_group *group; struct device *dev; struct clk *clk; struct reset_control *rst; @@ -188,9 +187,8 @@ static int vic_init(struct host1x_client *client) struct vic *vic = to_vic(drm); int err; - vic->group = host1x_client_iommu_attach(client, false); - if (IS_ERR(vic->group)) { - err = PTR_ERR(vic->group); + err = host1x_client_iommu_attach(client, false); + if (err < 0) { dev_err(vic->dev, "failed to attach to domain: %d\n", err); return err; } @@ -224,7 +222,7 @@ static int vic_init(struct host1x_client *client) free_channel: host1x_channel_put(vic->channel); detach: - host1x_client_iommu_detach(client, vic->group); + host1x_client_iommu_detach(client); return err; } @@ -246,7 +244,7 @@ static int vic_exit(struct host1x_client *client) host1x_syncpt_free(client->syncpts[0]); host1x_channel_put(vic->channel); - host1x_client_iommu_detach(client, vic->group); + host1x_client_iommu_detach(client); return 0; } diff --git a/include/linux/host1x.h b/include/linux/host1x.h index 4396cd566a33..8b2d1a4bf7b1 100644 --- a/include/linux/host1x.h +++ b/include/linux/host1x.h @@ -18,6 +18,7 @@ enum host1x_class { }; struct host1x_client; +struct iommu_group; /** * struct host1x_client_ops - host1x client operations @@ -44,6 +45,7 @@ struct host1x_client { struct list_head list; struct device *parent; struct device *dev; + struct iommu_group *group; const struct host1x_client_ops *ops; From patchwork Mon Oct 14 12:50:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176334 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="lp/tJ/XN"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMp5vpZz9sPh for ; Mon, 14 Oct 2019 23:51:18 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731455AbfJNMvS (ORCPT ); Mon, 14 Oct 2019 08:51:18 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:51100 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731443AbfJNMvS (ORCPT ); Mon, 14 Oct 2019 08:51:18 -0400 Received: by mail-wm1-f65.google.com with SMTP id 5so17172782wmg.0 for ; Mon, 14 Oct 2019 05:51:15 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=5kAEqnBZ6MmRl+pXbq1LnTbk9P8s3U977DcUAEiFmNQ=; b=lp/tJ/XNOr+QTKZTeVJqJkHPo6CdzfhczvWGwiyMVGrHxfKOxokv20TZuMjMV7HsKL 4lqj7pkB+1xuV2peHoYiAcpxXlaqX7nRJeE2IXOanWFcvXqunKImn5G4IgOlf0y8NafE AHhG6rkS7R5YiHRVptyRH0LGXFS43j56F6FzkNZ01lpob8+ndRXISLPAbID4ZtMQTMKj 6S/Thf4cx2ot0ha6IOzEQStjbUleLyDURrDQirnQToFpmmCy4ONPHwINOwByo5UK+yq5 0UvLV/1TzgeT7qkbEvs9HnjbLEnaLYpGxZAPwJ5tIeSvR8EpA2RCatgcRXA9JmldGwPt ihMg== 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:mime-version:content-transfer-encoding; bh=5kAEqnBZ6MmRl+pXbq1LnTbk9P8s3U977DcUAEiFmNQ=; b=ijQZtTmporLzxcU4Ii4WnQKwiSa5JpxwEEdCEILOVQ5a2R+iyblW7n0/Pazr3fkCP9 QG6661kVDR70hT0Uy+DQpL4udo0jxnIzZ2wO9soJHMAemWzI1UyNzJS0vrnUB8r+EnZM 7LMRXuzeG6NYl7rMeBFxhto92qPgYfs8e9hTpGY/5ITeUpQA+ULnvNWoQtaba+pAl51j qlR6N4M9pm6U1uUuu6XuCq9vHU1Mcm+cZVuNfe4OFKhsRYyBsX078Y4RAUNY8AQzu083 XN5Q51TuJhTROOvQeObgETz7Ef1JyE/z4Ws4wFw8hrvT2qjZaEVeymVN6SD+HHmTV/Pb g14Q== X-Gm-Message-State: APjAAAUDf+gWvCiPozR33dUFYbvEx8fd8V8MngByEV6KPZYYtcx4vsRE lt+p8piw6B7i5yDlurugteM= X-Google-Smtp-Source: APXvYqzHAe84RO7omKdazqiBlohn5OFKMP5dJ0KX3C4NyvHOdxnOz7lq0UQEhU/M8Fkw8ZPW46LAdg== X-Received: by 2002:a7b:ce01:: with SMTP id m1mr14027365wmc.136.1571057475139; Mon, 14 Oct 2019 05:51:15 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id g13sm15458488wrm.42.2019.10.14.05.51.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:51:14 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 11/14] drm/tegra: gem: Rename paddr -> iova Date: Mon, 14 Oct 2019 14:50:46 +0200 Message-Id: <20191014125049.425101-12-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding The address can refer to either physical memory or IO virtual memory. If referring to IO virtual memory, there will always be an associated physical memory address. Rename this variable to "iova" to clarify in all cases that this is the IO virtual memory, which in the absence of an IOMMU is identical to the physical address. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/dc.c | 6 +++--- drivers/gpu/drm/tegra/fb.c | 4 ++-- drivers/gpu/drm/tegra/gem.c | 18 +++++++++--------- drivers/gpu/drm/tegra/gem.h | 2 +- drivers/gpu/drm/tegra/hub.c | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index 3ac535bd99ca..54966f538141 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -717,7 +717,7 @@ static void tegra_plane_atomic_update(struct drm_plane *plane, for (i = 0; i < fb->format->num_planes; i++) { struct tegra_bo *bo = tegra_fb_get_plane(fb, i); - window.base[i] = bo->paddr + fb->offsets[i]; + window.base[i] = bo->iova + fb->offsets[i]; /* * Tegra uses a shared stride for UV planes. Framebuffers are @@ -869,11 +869,11 @@ static void tegra_cursor_atomic_update(struct drm_plane *plane, return; } - value |= (bo->paddr >> 10) & 0x3fffff; + value |= (bo->iova >> 10) & 0x3fffff; tegra_dc_writel(dc, value, DC_DISP_CURSOR_START_ADDR); #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT - value = (bo->paddr >> 32) & 0x3; + value = (bo->iova >> 32) & 0x3; tegra_dc_writel(dc, value, DC_DISP_CURSOR_START_ADDR_HI); #endif diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c index e34325c83d28..7cea89f29a5c 100644 --- a/drivers/gpu/drm/tegra/fb.c +++ b/drivers/gpu/drm/tegra/fb.c @@ -269,10 +269,10 @@ static int tegra_fbdev_probe(struct drm_fb_helper *helper, } } - drm->mode_config.fb_base = (resource_size_t)bo->paddr; + drm->mode_config.fb_base = (resource_size_t)bo->iova; info->screen_base = (void __iomem *)bo->vaddr + offset; info->screen_size = size; - info->fix.smem_start = (unsigned long)(bo->paddr + offset); + info->fix.smem_start = (unsigned long)(bo->iova + offset); info->fix.smem_len = size; return 0; diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c index fb7667c8dd4c..7412e23500d1 100644 --- a/drivers/gpu/drm/tegra/gem.c +++ b/drivers/gpu/drm/tegra/gem.c @@ -33,7 +33,7 @@ static dma_addr_t tegra_bo_pin(struct host1x_bo *bo, struct sg_table **sgt) *sgt = obj->sgt; - return obj->paddr; + return obj->iova; } static void tegra_bo_unpin(struct host1x_bo *bo, struct sg_table *sgt) @@ -133,9 +133,9 @@ static int tegra_bo_iommu_map(struct tegra_drm *tegra, struct tegra_bo *bo) goto unlock; } - bo->paddr = bo->mm->start; + bo->iova = bo->mm->start; - bo->size = iommu_map_sg(tegra->domain, bo->paddr, bo->sgt->sgl, + bo->size = iommu_map_sg(tegra->domain, bo->iova, bo->sgt->sgl, bo->sgt->nents, prot); if (!bo->size) { dev_err(tegra->drm->dev, "failed to map buffer\n"); @@ -161,7 +161,7 @@ static int tegra_bo_iommu_unmap(struct tegra_drm *tegra, struct tegra_bo *bo) return 0; mutex_lock(&tegra->mm_lock); - iommu_unmap(tegra->domain, bo->paddr, bo->size); + iommu_unmap(tegra->domain, bo->iova, bo->size); drm_mm_remove_node(bo->mm); mutex_unlock(&tegra->mm_lock); @@ -209,7 +209,7 @@ static void tegra_bo_free(struct drm_device *drm, struct tegra_bo *bo) sg_free_table(bo->sgt); kfree(bo->sgt); } else if (bo->vaddr) { - dma_free_wc(drm->dev, bo->gem.size, bo->vaddr, bo->paddr); + dma_free_wc(drm->dev, bo->gem.size, bo->vaddr, bo->iova); } } @@ -264,7 +264,7 @@ static int tegra_bo_alloc(struct drm_device *drm, struct tegra_bo *bo) } else { size_t size = bo->gem.size; - bo->vaddr = dma_alloc_wc(drm->dev, size, &bo->paddr, + bo->vaddr = dma_alloc_wc(drm->dev, size, &bo->iova, GFP_KERNEL | __GFP_NOWARN); if (!bo->vaddr) { dev_err(drm->dev, @@ -365,7 +365,7 @@ static struct tegra_bo *tegra_bo_import(struct drm_device *drm, goto detach; } - bo->paddr = sg_dma_address(bo->sgt->sgl); + bo->iova = sg_dma_address(bo->sgt->sgl); } bo->gem.import_attach = attach; @@ -461,7 +461,7 @@ int __tegra_gem_mmap(struct drm_gem_object *gem, struct vm_area_struct *vma) vma->vm_flags &= ~VM_PFNMAP; vma->vm_pgoff = 0; - err = dma_mmap_wc(gem->dev->dev, vma, bo->vaddr, bo->paddr, + err = dma_mmap_wc(gem->dev->dev, vma, bo->vaddr, bo->iova, gem->size); if (err < 0) { drm_gem_vm_close(vma); @@ -523,7 +523,7 @@ tegra_gem_prime_map_dma_buf(struct dma_buf_attachment *attach, if (sg_alloc_table(sgt, 1, GFP_KERNEL)) goto free; - sg_dma_address(sgt->sgl) = bo->paddr; + sg_dma_address(sgt->sgl) = bo->iova; sg_dma_len(sgt->sgl) = gem->size; } diff --git a/drivers/gpu/drm/tegra/gem.h b/drivers/gpu/drm/tegra/gem.h index 83ffb1e14ca3..fafb5724499b 100644 --- a/drivers/gpu/drm/tegra/gem.h +++ b/drivers/gpu/drm/tegra/gem.h @@ -31,7 +31,7 @@ struct tegra_bo { struct host1x_bo base; unsigned long flags; struct sg_table *sgt; - dma_addr_t paddr; + dma_addr_t iova; void *vaddr; struct drm_mm_node *mm; diff --git a/drivers/gpu/drm/tegra/hub.c b/drivers/gpu/drm/tegra/hub.c index 839b49c40e51..104115e42190 100644 --- a/drivers/gpu/drm/tegra/hub.c +++ b/drivers/gpu/drm/tegra/hub.c @@ -457,7 +457,7 @@ static void tegra_shared_plane_atomic_update(struct drm_plane *plane, tegra_plane_writel(p, 0, DC_WINBUF_CDE_CONTROL); bo = tegra_fb_get_plane(fb, 0); - base = bo->paddr; + base = bo->iova; tegra_plane_writel(p, state->format, DC_WIN_COLOR_DEPTH); tegra_plane_writel(p, 0, DC_WIN_PRECOMP_WGRP_PARAMS); From patchwork Mon Oct 14 12:50:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176335 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="nYS0pc+o"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMs45NLz9sPj for ; Mon, 14 Oct 2019 23:51:21 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731029AbfJNMvU (ORCPT ); Mon, 14 Oct 2019 08:51:20 -0400 Received: from mail-wm1-f66.google.com ([209.85.128.66]:53461 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731466AbfJNMvU (ORCPT ); Mon, 14 Oct 2019 08:51:20 -0400 Received: by mail-wm1-f66.google.com with SMTP id i16so17147441wmd.3 for ; Mon, 14 Oct 2019 05:51:18 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=VDWizjgHzHaIFYFt83zBnigeKDs+hp0GWtpu1Y4vNf8=; b=nYS0pc+oc0WP0DGiaz+7394+j+LUl8X/KfzH9D3W7fs8+8xliID/0kQZ3l3rqzsoMy 6i0KPVh0S4rOoYWSQK4Ev0Fu1Q7/WnXq7wltsFHNt7Qg0LysUo38fk2KaNQpHTk/wBBz J6z71ciFh8KMMIVbt17hD1F7yDenRoIR2X/vFMEO4M1i+XAf7WFTxRVByrowTBw0JYH5 U6YQM88spXnpMWDsb/6ArnDjbOu3hLQoS2JZM8nxDoHYNdb0ocj4JsYVgH1N5XNNXsT5 WLtr0EK769PH2oeOETG54LFovq05Pyh5Kn42XWsWAsWwHVu2ZUxenuQ2e3DxbXzkXqEB AiQA== 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:mime-version:content-transfer-encoding; bh=VDWizjgHzHaIFYFt83zBnigeKDs+hp0GWtpu1Y4vNf8=; b=LxdJPM1R/f8bE9COwE5orl3yabdud2CKZ5enk5cX9RwZ9LT0aMPBTqScMmcP+pkWpi iKRgwBBpV4q40hokvRr3C5iGp6RrbwQLUkELp8XLwFjukGCdKAAAbvU4oXrjfcmyjMLB bEDd5iTR7O2yR/8C2+NetxjcXb2zg2jKAB3+FSBX/FhwwRF0XcTWOEpb2CpYNDcJtUqQ w/Tnc/EOcT++bv0NCI+EDRQnirCTNXmbRgf4rpxAiKgWCiRqr5PvvEi/ZHB6yO+BKAmX hnmSP/4sAzB0yE1pjj8bIdCOffuMeHcLUcbpgEu2DE5OkTdGklsVeab8ULOOVudUHUs7 qpWw== X-Gm-Message-State: APjAAAVgEQvp6KLRlrx/MYHneAfYe7ypiWq+n1YJYf4DMXbHrqoJrTvn wY+R9D3vadNE9tuaCOIiIx0= X-Google-Smtp-Source: APXvYqz8X5+f6i1aMnNFDYBatBFCV+qGCetZxynDcGxPHgl8rkjrnIO1LlCP6g5G7sRB6rhIdl5V9A== X-Received: by 2002:a1c:a941:: with SMTP id s62mr14393658wme.128.1571057478049; Mon, 14 Oct 2019 05:51:18 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id c18sm16730393wrv.10.2019.10.14.05.51.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:51:16 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 12/14] drm/tegra: gem: Use dma_get_sgtable() Date: Mon, 14 Oct 2019 14:50:47 +0200 Message-Id: <20191014125049.425101-13-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding Rather than manually creating an SG table in an incorrect way, let the standard dma_get_sgtable() function do it. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/gem.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c index 7412e23500d1..3345cce14662 100644 --- a/drivers/gpu/drm/tegra/gem.c +++ b/drivers/gpu/drm/tegra/gem.c @@ -520,11 +520,9 @@ tegra_gem_prime_map_dma_buf(struct dma_buf_attachment *attach, if (dma_map_sg(attach->dev, sgt->sgl, sgt->nents, dir) == 0) goto free; } else { - if (sg_alloc_table(sgt, 1, GFP_KERNEL)) + if (dma_get_sgtable(attach->dev, sgt, bo->vaddr, bo->iova, + gem->size) < 0) goto free; - - sg_dma_address(sgt->sgl) = bo->iova; - sg_dma_len(sgt->sgl) = gem->size; } return sgt; From patchwork Mon Oct 14 12:50:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176336 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="iPgItiXt"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMt1rlBz9sPp for ; Mon, 14 Oct 2019 23:51:22 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731617AbfJNMvV (ORCPT ); Mon, 14 Oct 2019 08:51:21 -0400 Received: from mail-wm1-f66.google.com ([209.85.128.66]:35467 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731466AbfJNMvV (ORCPT ); Mon, 14 Oct 2019 08:51:21 -0400 Received: by mail-wm1-f66.google.com with SMTP id y21so16640716wmi.0 for ; Mon, 14 Oct 2019 05:51:20 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=L6DFI3lr21cxldQszCfNagwz6ouXjHUUOPmyE9u059w=; b=iPgItiXtpgKKBpeS125en/RKu/Hj7ylehRo9pfmYEoVm4ncJ24VHPmBL8B8VHBw+3a UiB1RotVHIX7OrWZooxiKLMKlVGj7rmjPPWoPvXbnNCHDg0+YvwpA2h3kbpxVeWVORs+ yHtQR19gSg3+/qHaJCo0doaCnxQWUCocX/Ly5oD5XEE15JDH/DvDa7tNCSgAIbwZRLEO nkGkn72PnO6vxoGEGqiszfYpQLNtCQqPYfnvLAb6gBQaiCMvkMiQ38c7TCZlk+SO90nS khUeK9b3HJh4m1voNL4vYIGAktkhbts7c9GwdwrvcJgKcgnoHz/bXR+xj8gaFz4WFDeb xA9Q== 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:mime-version:content-transfer-encoding; bh=L6DFI3lr21cxldQszCfNagwz6ouXjHUUOPmyE9u059w=; b=E6c1acJC7td0f5oNxjYHLbrTqaU+fCQSL1torUT1+jwbkIMByzk3ubDtnAdp9Pp/lj 0ZaQnV3sarBJ0vLvLKbvPHL0aPAR9Urbu2NgKIjkCKa8s8mUKBpK+Aryk26FTqI/d73y gHT2XEwP00rELdWqM0zBC9qhj/MkP4eXzdDbIdw+nh8vbxAg/b/rcsJrvk2w33ayIket FOFhdFzIh8/2z+hInHP9FfJde8Sg8iw9DlLYHBWOrieK13jNfO6YcnzAOkebQsTDqHX4 LPW/c5mE76bWY+bta2h2PpOPpqWUvuTt8wBlXdpb4s8lcjNXDZWHHjDi7sGxGpHpoO2A MjAQ== X-Gm-Message-State: APjAAAVjamHtAv4yyUp8V2GpP43iQ4B1/4gxcL2QhWNdhhnCp5cXgGnC UKqkD7isr2pduja3zJus7AgP7lGM X-Google-Smtp-Source: APXvYqyN/LerxskEetZ2/hwohnBAAPRhjP7KDY4Of6Q6oxq2vm6c4N3iagQzsL2fEAFxN5yMJQiWCg== X-Received: by 2002:a7b:ce88:: with SMTP id q8mr14001743wmj.160.1571057479883; Mon, 14 Oct 2019 05:51:19 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id t123sm31334879wma.40.2019.10.14.05.51.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:51:19 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 13/14] drm/tegra: gem: Always map SG tables for DMA-BUFs Date: Mon, 14 Oct 2019 14:50:48 +0200 Message-Id: <20191014125049.425101-14-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding When an importer wants to map a DMA-BUF, make sure to always actually map it, irrespective of whether the buffer is contiguous or not. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/gem.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c index 3345cce14662..00701cadaceb 100644 --- a/drivers/gpu/drm/tegra/gem.c +++ b/drivers/gpu/drm/tegra/gem.c @@ -516,15 +516,15 @@ tegra_gem_prime_map_dma_buf(struct dma_buf_attachment *attach, for_each_sg(sgt->sgl, sg, bo->num_pages, i) sg_set_page(sg, bo->pages[i], PAGE_SIZE, 0); - - if (dma_map_sg(attach->dev, sgt->sgl, sgt->nents, dir) == 0) - goto free; } else { if (dma_get_sgtable(attach->dev, sgt, bo->vaddr, bo->iova, gem->size) < 0) goto free; } + if (dma_map_sg(attach->dev, sgt->sgl, sgt->nents, dir) == 0) + goto free; + return sgt; free: From patchwork Mon Oct 14 12:50:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1176337 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="oQ2Y1lnI"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sJMw5YPWz9sPj for ; Mon, 14 Oct 2019 23:51:24 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731618AbfJNMvY (ORCPT ); Mon, 14 Oct 2019 08:51:24 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:36245 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731466AbfJNMvY (ORCPT ); Mon, 14 Oct 2019 08:51:24 -0400 Received: by mail-wm1-f65.google.com with SMTP id m18so16649483wmc.1 for ; Mon, 14 Oct 2019 05:51:22 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=T0xL/iDkEL+mRgHC/hRILKSEGgtjkYP7/04WXy0TU5c=; b=oQ2Y1lnIBaHHF4NPbEeUhTFXJAFOjbYO1SZBlITCO+R2+00RLcbPQU3SF9W5KAKV1d JuEtjQFDwm0IhwXV8fZ3d0Pc3sSMUnUrhyziBQKy97RFxdEGMOxENwpW8SqOuGKuDgvE wAUkkwB2HFFyiWo9wc5zLjuJ3ThbdZyaaEKX+JMVtf4tPpElZkZ1zr85Ymmiiz9x9tx0 dTERRZ3SR9eL/8wzZn0yW9npRXzj5FHKao8F3ffjJEbbLs0glkFZHjmYLYE3xNa7L/pd ByUbsXvO6xnUXoBHvna2lv3zdugigTJ1RlC7HM7WXviadepy4eiDCETOEYzZLqId1UVG DujQ== 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:mime-version:content-transfer-encoding; bh=T0xL/iDkEL+mRgHC/hRILKSEGgtjkYP7/04WXy0TU5c=; b=TjotOBUR0cdVtJzOZN7Ne9HPCKOeUaCBj7X3BcA1KjDwWV/gpMXFdpPSiwiHYiTlBW o37spvWolbw3ERM0Zmdgy/OuhZo0+OV+2FGNOglScwoRRhbV0EKA8mv//NJnt8EI7+a1 eaCpfKWOFdCG7roHnkziufjHhgikWgGjkIiovmMrzTaI0ikygYZDmdCxmoXm0t/eJHxi iJuZ8NnKbRxMzoujTEbDu9PagioAZYUobRcmGRLXNa1ujiduHpz1Kk/YOfDWXieJwIeY w6ZYjea3yyz+nsFugOtbi27C4aDxgbcVqYaZ5osT8Tphc9W0/TXLN4uovWmqifTbUqMo NQKg== X-Gm-Message-State: APjAAAVRCSOMRSX9h43lByU7v6UfrJkgd5ny/r5uGZtF5NmMyb+45nt2 fNDNrays5kqbwx5KfgeWhu4= X-Google-Smtp-Source: APXvYqy4hQZbCr4bXF44azC0xINbKmfHk3TGROlTqQmbYp9gts0pMzgY0rJb683HGAO9RY464ZaW0Q== X-Received: by 2002:a1c:f60d:: with SMTP id w13mr15847792wmc.150.1571057481904; Mon, 14 Oct 2019 05:51:21 -0700 (PDT) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id a192sm16440939wma.1.2019.10.14.05.51.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 05:51:20 -0700 (PDT) From: Thierry Reding To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org Subject: [PATCH 14/14] drm/tegra: gem: Use sg_alloc_table_from_pages() Date: Mon, 14 Oct 2019 14:50:49 +0200 Message-Id: <20191014125049.425101-15-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014125049.425101-1-thierry.reding@gmail.com> References: <20191014125049.425101-1-thierry.reding@gmail.com> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org From: Thierry Reding Instead of manually creating the SG table for a discontiguous buffer, use the existing sg_alloc_table_from_pages(). Note that this is not safe to be used with the ARM DMA/IOMMU integration code because that will not ensure that the whole buffer is mapped contiguously. Depending on the size of the individual entries the mapping may end up containing holes to ensure alignment. However, we only ever use these buffers with explicit IOMMU API usage and know how to avoid these holes. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/gem.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c index 00701cadaceb..d2f88cc3134f 100644 --- a/drivers/gpu/drm/tegra/gem.c +++ b/drivers/gpu/drm/tegra/gem.c @@ -508,14 +508,9 @@ tegra_gem_prime_map_dma_buf(struct dma_buf_attachment *attach, return NULL; if (bo->pages) { - struct scatterlist *sg; - unsigned int i; - - if (sg_alloc_table(sgt, bo->num_pages, GFP_KERNEL)) + if (sg_alloc_table_from_pages(sgt, bo->pages, bo->num_pages, + 0, gem->size, GFP_KERNEL) < 0) goto free; - - for_each_sg(sgt->sgl, sg, bo->num_pages, i) - sg_set_page(sg, bo->pages[i], PAGE_SIZE, 0); } else { if (dma_get_sgtable(attach->dev, sgt, bo->vaddr, bo->iova, gem->size) < 0)