From patchwork Mon Dec 9 14:35:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1206302 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) 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="gNRw9VDK"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47Wm270Vdwz9sPc for ; Tue, 10 Dec 2019 01:35:26 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727403AbfLIOf0 (ORCPT ); Mon, 9 Dec 2019 09:35:26 -0500 Received: from mail-wm1-f66.google.com ([209.85.128.66]:38980 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727038AbfLIOfZ (ORCPT ); Mon, 9 Dec 2019 09:35:25 -0500 Received: by mail-wm1-f66.google.com with SMTP id s14so15170394wmh.4 for ; Mon, 09 Dec 2019 06:35:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=BBAexXy6QHb9b0LuhH81Em9Cd0EIq6JiI9qQ4hCSW+k=; b=gNRw9VDKotARI9bsXbnGcfwKOXoKZRpJkLpDbHGTHH91cb0RsiLdx7th7wIZ5ILowj vcpTphWVbfb/K32PajiDt5MNzJ+VfRGRMlsTwhAJiihkJr2HouyXmb+onQhmHyqvSPBC tSEiKhK8lx3spDOuEjRjfg4OlVnzbd247yP6KUKsB3Jr3VFifD3VhhfFHClsWCKVi6SB BTxbXbE6w/jLIirDsPi3W/5T3KrF2iw1akIV3CUV6kLice/e2NBpFYakaRqdV3+1GyTL e+jAAKG6GSMydBU05dQjc3mdnl/4NvxJGf3jVOB3KQF4m+PUcJiXveibjZmMQAn8Lhru GxRw== 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:mime-version :content-transfer-encoding; bh=BBAexXy6QHb9b0LuhH81Em9Cd0EIq6JiI9qQ4hCSW+k=; b=RxkmNTaZ3VXxPZrVWeVw/PpPpVe2pxAo9bqIRjysMdTB3+HFW9LBsaWrbmH9x417AK TMA7Yh6OgfazNUnRdTWcL14w7wYWjOW/QNj0b9VJn7oeYfyl9bkGsCrgdIYrWAoeG6/k rjAnxy0Enjhh9gIW/oZkJ3SMr8Agxw2NOwQgYTpATJNJ+DgPjXaI6UPWBaj0BX5ONl68 ie1WBVxMBDjF77LSi8gGBz4S59sn/IBrtc3IjxPV+giOHR0dmPoMLr6Z5cHg27SIRmYk lxMTS3oblHPGocYQBqcyitojIOmcRkrQ9pI0XxcrE9WLufU+aQ/ctsjk9rU1xTPZwXHm HALQ== X-Gm-Message-State: APjAAAVmmCaLUxah0PJDgEi01QXLQefYblup7+PLV855BbfSS4bR2tnm vGXqi8tCv1wtSf0lAkZNUQg= X-Google-Smtp-Source: APXvYqzK816vlvz/TWq9VF4WaYU3ZA5UZptXKhUdxphFLCdhJVBFTg0cVPdLNMXFPPNINd1mXAVfDQ== X-Received: by 2002:a1c:1d8:: with SMTP id 207mr22431650wmb.155.1575902123504; Mon, 09 Dec 2019 06:35:23 -0800 (PST) Received: from localhost (pD9E518ED.dip0.t-ipconnect.de. [217.229.24.237]) by smtp.gmail.com with ESMTPSA id g9sm27131800wro.67.2019.12.09.06.35.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 06:35:22 -0800 (PST) From: Thierry Reding To: Thierry Reding Cc: linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 1/4] memory: tegra: Rename tegra_mc to tegra186_mc on Tegra186 Date: Mon, 9 Dec 2019 15:35:18 +0100 Message-Id: <20191209143521.2357178-1-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 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 This is just for consistency with the rest of the driver. Signed-off-by: Thierry Reding --- drivers/memory/tegra/tegra186.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/memory/tegra/tegra186.c b/drivers/memory/tegra/tegra186.c index 441213a35930..f72e89877295 100644 --- a/drivers/memory/tegra/tegra186.c +++ b/drivers/memory/tegra/tegra186.c @@ -15,7 +15,7 @@ struct tegra_mc { void __iomem *regs; }; -struct tegra_mc_client { +struct tegra186_mc_client { const char *name; unsigned int sid; struct { @@ -24,7 +24,13 @@ struct tegra_mc_client { } regs; }; -static const struct tegra_mc_client tegra186_mc_clients[] = { +struct tegra186_mc { + struct memory_controller base; + struct device *dev; + void __iomem *regs; +}; + +static const struct tegra186_mc_client tegra186_mc_clients[] = { { .name = "ptcr", .sid = TEGRA186_SID_PASSTHROUGH, @@ -534,8 +540,8 @@ static const struct tegra_mc_client tegra186_mc_clients[] = { static int tegra186_mc_probe(struct platform_device *pdev) { + struct tegra186_mc *mc; struct resource *res; - struct tegra_mc *mc; unsigned int i; int err = 0; @@ -551,7 +557,7 @@ static int tegra186_mc_probe(struct platform_device *pdev) mc->dev = &pdev->dev; for (i = 0; i < ARRAY_SIZE(tegra186_mc_clients); i++) { - const struct tegra_mc_client *client = &tegra186_mc_clients[i]; + const struct tegra186_mc_client *client = &tegra186_mc_clients[i]; u32 override, security; override = readl(mc->regs + client->regs.override); From patchwork Mon Dec 9 14:35:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1206303 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) 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="slDLM5ys"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47Wm280SR1z9sPh for ; Tue, 10 Dec 2019 01:35:28 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727598AbfLIOf1 (ORCPT ); Mon, 9 Dec 2019 09:35:27 -0500 Received: from mail-wr1-f67.google.com ([209.85.221.67]:38643 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727666AbfLIOf1 (ORCPT ); Mon, 9 Dec 2019 09:35:27 -0500 Received: by mail-wr1-f67.google.com with SMTP id y17so16468087wrh.5 for ; Mon, 09 Dec 2019 06:35:26 -0800 (PST) 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=pVJO7p0o9DPYlpTp+A/mOyMkXB2XW+/pQeD4jA/+TpU=; b=slDLM5ysQZRF/kAf091dU61vqS/sYFT6gNsGh2WEcykkjVPXwbeTsxqTNOJcE7Kmd6 r0FcyA3FvQq3Kg+1fM25y+MtJqKomOzLLMlC3DFSVay3ZXqU3Sxul/A7GmxUk165D98E 7HMoPXAA/J6Tb+uqx9bhgKyYjA4VTCZv0amIhXDroQeImV1sts1yaMvb3ysJj+Kk2z3y mlrhiGK0mY1gb05MxoY9Yaf5Hxt1Sa3rdv7BVjFz/tIbGwq8aMcg+tw4Me/ObWQXbcKC ZCCr4EDB6+c13sJy5r81ITSfDIGSDN6ZCGk7s+4klTcgFjoJs+kvyhPSSkoPz4xUBRSs cl2A== 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=pVJO7p0o9DPYlpTp+A/mOyMkXB2XW+/pQeD4jA/+TpU=; b=Twht/3iubhX7VUEqWFRY6rttMVTZDvH4xynRjf1Mgw5LoErn1tQs46NPN8kYpYQ/9T e4ov8TO8Xr+v9GbDtiO+kiFXE2Q2ZHfv9diC9ss4L3OqqKvozGqRZsLCdl/gq2ecM8nv rXlFh7HaAHi4fhczsPUac4PDGzSLTumTcNh/5DarYxW0cbSvJYSSfkRpBfdq6ZG1+sx4 jXacCkHYKOKWj3bIDzSUYGcoDl/25rvtZC4nX52rPtIamfN5cID9BswLT7GZPmr91gP/ iLAhidAG3R8E/bekpekaa69W74K02xmdZObRr37JNXhRmRZehwsYy/cs9vQiaXmrrpdZ bcnQ== X-Gm-Message-State: APjAAAXWb1MtwRcgB8bdPY3Bur/lYCHjO8tumDVb4yenFOBxY/EWxfxJ MbqNiNf5IaRatH6H1Ua8CYlIftoV X-Google-Smtp-Source: APXvYqz/ajgYyuq5a7RespWFuz0Vk3jwJqQTXoyxavQFwncKJO/uP48YzzSmJTg1p52aEz3kHpcR2g== X-Received: by 2002:a5d:6406:: with SMTP id z6mr2401027wru.294.1575902125397; Mon, 09 Dec 2019 06:35:25 -0800 (PST) Received: from localhost (pD9E518ED.dip0.t-ipconnect.de. [217.229.24.237]) by smtp.gmail.com with ESMTPSA id q15sm27625737wrr.11.2019.12.09.06.35.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 06:35:24 -0800 (PST) From: Thierry Reding To: Thierry Reding Cc: linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 2/4] memory: tegra: Add per-SoC data for Tegra186 Date: Mon, 9 Dec 2019 15:35:19 +0100 Message-Id: <20191209143521.2357178-2-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191209143521.2357178-1-thierry.reding@gmail.com> References: <20191209143521.2357178-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 hard-coding the memory client table, use per-SoC data in preparation for adding support for other SoCs. Signed-off-by: Thierry Reding --- drivers/memory/tegra/tegra186.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/drivers/memory/tegra/tegra186.c b/drivers/memory/tegra/tegra186.c index f72e89877295..ad5c353dba6e 100644 --- a/drivers/memory/tegra/tegra186.c +++ b/drivers/memory/tegra/tegra186.c @@ -6,15 +6,11 @@ #include #include #include +#include #include #include -struct tegra_mc { - struct device *dev; - void __iomem *regs; -}; - struct tegra186_mc_client { const char *name; unsigned int sid; @@ -24,10 +20,16 @@ struct tegra186_mc_client { } regs; }; +struct tegra186_mc_soc { + const struct tegra186_mc_client *clients; + unsigned int num_clients; +}; + struct tegra186_mc { - struct memory_controller base; struct device *dev; void __iomem *regs; + + const struct tegra186_mc_soc *soc; }; static const struct tegra186_mc_client tegra186_mc_clients[] = { @@ -538,17 +540,24 @@ static const struct tegra186_mc_client tegra186_mc_clients[] = { }, }; +static const struct tegra186_mc_soc tegra186_mc_soc = { + .num_clients = ARRAY_SIZE(tegra186_mc_clients), + .clients = tegra186_mc_clients, +}; + static int tegra186_mc_probe(struct platform_device *pdev) { struct tegra186_mc *mc; struct resource *res; unsigned int i; - int err = 0; + int err; mc = devm_kzalloc(&pdev->dev, sizeof(*mc), GFP_KERNEL); if (!mc) return -ENOMEM; + mc->soc = of_device_get_match_data(&pdev->dev); + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); mc->regs = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(mc->regs)) @@ -556,8 +565,8 @@ static int tegra186_mc_probe(struct platform_device *pdev) mc->dev = &pdev->dev; - for (i = 0; i < ARRAY_SIZE(tegra186_mc_clients); i++) { - const struct tegra186_mc_client *client = &tegra186_mc_clients[i]; + for (i = 0; i < mc->soc->num_clients; i++) { + const struct tegra186_mc_client *client = &mc->soc->clients[i]; u32 override, security; override = readl(mc->regs + client->regs.override); @@ -583,7 +592,7 @@ static int tegra186_mc_probe(struct platform_device *pdev) } static const struct of_device_id tegra186_mc_of_match[] = { - { .compatible = "nvidia,tegra186-mc", }, + { .compatible = "nvidia,tegra186-mc", .data = &tegra186_mc_soc }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, tegra186_mc_of_match); From patchwork Mon Dec 9 14:35:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1206304 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) 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="HNvyAgdE"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47Wm2B38vgz9sP6 for ; Tue, 10 Dec 2019 01:35:30 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727621AbfLIOfa (ORCPT ); Mon, 9 Dec 2019 09:35:30 -0500 Received: from mail-wr1-f65.google.com ([209.85.221.65]:41969 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727640AbfLIOf3 (ORCPT ); Mon, 9 Dec 2019 09:35:29 -0500 Received: by mail-wr1-f65.google.com with SMTP id c9so16458850wrw.8 for ; Mon, 09 Dec 2019 06:35:28 -0800 (PST) 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=w+/up9hfq8p4ACSSdrH1ZXd7EiQBLXwMXcYJzFgJaOc=; b=HNvyAgdEOD2w1gDlLb7eiaFWs4FgSrRvV87ajeNqAR6zqxVbc1EtNYsigYA/Re5VyY 81BwPZ6odmVs/63pWoUXexjgYemn9M+NIaeVFVY8O11FoZQo56m9p6GU0GY/4Omh/fwW CzIV052dK4C6tpfyQxONgseQzFYtdIFGeHi0lMk8TXhJiOhep9+Lv+uPeGIiEPZg53H+ 2EGKsoz9vDoSd2sLVOxejGewI86bw2FxJXpMM3agj0W2mc7f3/qqUk7eOIWvpIUnfpKo TRMqIet8S1BNW0i06AJruQ+gp4uqhT+g15r2yjIqLh6B6Q2oHCAsaali4t+bDnd6ntrY iI5Q== 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=w+/up9hfq8p4ACSSdrH1ZXd7EiQBLXwMXcYJzFgJaOc=; b=txxuAZaRz7rd8UAkJoZX6xDjycVIJjy7kmzFGCwRiHy6igat69ewWVt7072wFumOjl Zpfn8mN2Hc/dAVfCUy1gKv+Ll4YpnuItjHGUG+hPOrCm+a3xsxYqMAF7KWiFutjMA6oI kveU+Vpq+SvGG7hi85YB9x7zZBS87pKp71uFLRS8W0Ev/+f3K+vsraR8i+k2YI5saiTu BeFOzrxBHxcgN5DeDkgnmFMaigLeGfbi38xbCd6GIYt7zrvO53c2KtqgLF51cC84RyUR 4bJ1rrXUDvtYLkOup6uzsgJcTp666qqaclqyv45gs4WaDiIR8rWIPguDl+ay9rZIf+B9 uCuw== X-Gm-Message-State: APjAAAXRcaCinNxUpBIwbxAYFGkGQrgv5e0g8aUiTT6ZL8vrZXxKa7fL BYH+VTXfX+JR0hHo8sUsoSA= X-Google-Smtp-Source: APXvYqyKds5tu0qb4MmQnhm021ZUXsdo14wPOu8h0clSObyGcgp7AspA9k6XyVybEIAt3zuxM5Qtsw== X-Received: by 2002:adf:e6c6:: with SMTP id y6mr2574017wrm.284.1575902127288; Mon, 09 Dec 2019 06:35:27 -0800 (PST) Received: from localhost (pD9E518ED.dip0.t-ipconnect.de. [217.229.24.237]) by smtp.gmail.com with ESMTPSA id q6sm28906963wrx.72.2019.12.09.06.35.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 06:35:26 -0800 (PST) From: Thierry Reding To: Thierry Reding Cc: linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 3/4] memory: tegra: Extract memory client SID programming Date: Mon, 9 Dec 2019 15:35:20 +0100 Message-Id: <20191209143521.2357178-3-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191209143521.2357178-1-thierry.reding@gmail.com> References: <20191209143521.2357178-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 Move programming of the memory client to SID mapping into a separate function so that it can be reused from multiple call sites. Signed-off-by: Thierry Reding --- drivers/memory/tegra/tegra186.c | 49 ++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/drivers/memory/tegra/tegra186.c b/drivers/memory/tegra/tegra186.c index ad5c353dba6e..57895116c8e5 100644 --- a/drivers/memory/tegra/tegra186.c +++ b/drivers/memory/tegra/tegra186.c @@ -32,6 +32,32 @@ struct tegra186_mc { const struct tegra186_mc_soc *soc; }; +static void tegra186_mc_program_sid(struct tegra186_mc *mc) +{ + unsigned int i; + + for (i = 0; i < mc->soc->num_clients; i++) { + const struct tegra186_mc_client *client = &mc->soc->clients[i]; + u32 override, security; + + override = readl(mc->regs + client->regs.override); + security = readl(mc->regs + client->regs.security); + + dev_dbg(mc->dev, "client %s: override: %x security: %x\n", + client->name, override, security); + + dev_dbg(mc->dev, "setting SID %u for %s\n", client->sid, + client->name); + writel(client->sid, mc->regs + client->regs.override); + + override = readl(mc->regs + client->regs.override); + security = readl(mc->regs + client->regs.security); + + dev_dbg(mc->dev, "client %s: override: %x security: %x\n", + client->name, override, security); + } +} + static const struct tegra186_mc_client tegra186_mc_clients[] = { { .name = "ptcr", @@ -549,7 +575,6 @@ static int tegra186_mc_probe(struct platform_device *pdev) { struct tegra186_mc *mc; struct resource *res; - unsigned int i; int err; mc = devm_kzalloc(&pdev->dev, sizeof(*mc), GFP_KERNEL); @@ -565,28 +590,8 @@ static int tegra186_mc_probe(struct platform_device *pdev) mc->dev = &pdev->dev; - for (i = 0; i < mc->soc->num_clients; i++) { - const struct tegra186_mc_client *client = &mc->soc->clients[i]; - u32 override, security; - - override = readl(mc->regs + client->regs.override); - security = readl(mc->regs + client->regs.security); - - dev_dbg(&pdev->dev, "client %s: override: %x security: %x\n", - client->name, override, security); - - dev_dbg(&pdev->dev, "setting SID %u for %s\n", client->sid, - client->name); - writel(client->sid, mc->regs + client->regs.override); - - override = readl(mc->regs + client->regs.override); - security = readl(mc->regs + client->regs.security); - - dev_dbg(&pdev->dev, "client %s: override: %x security: %x\n", - client->name, override, security); - } - platform_set_drvdata(pdev, mc); + tegra186_mc_program_sid(mc); return err; } From patchwork Mon Dec 9 14:35:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1206305 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) 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="gCjs4Ejh"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47Wm2D16rPz9sP6 for ; Tue, 10 Dec 2019 01:35:32 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727496AbfLIOfb (ORCPT ); Mon, 9 Dec 2019 09:35:31 -0500 Received: from mail-wr1-f66.google.com ([209.85.221.66]:34860 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727038AbfLIOfb (ORCPT ); Mon, 9 Dec 2019 09:35:31 -0500 Received: by mail-wr1-f66.google.com with SMTP id g17so16482549wro.2 for ; Mon, 09 Dec 2019 06:35:30 -0800 (PST) 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=ttm9JDpQfFdaivyu5BbcV+zimIykT6JMxYV6nznS1UA=; b=gCjs4EjhPSHYsAW88CXORy+zE44wsE1lTpQx0OWcgaWmqOXLNvziJCiN58M091OZDV yO00e7ux0J89OhF3MXEF7m36zVfOajSaxdedZKJ7CpT2aSj+MULxVucYhvARR23lpOYg T41N0lk4apBmJEvmAjP45oCVT3GfA8D+K4gGz7Ht+Sk39r9W9nRy5YuTlariruguAi9A zGSL0oEAEOwOkw8VWuF+iH+pQcaLrVL1vL/SpMhI2IM2rptnNBvgVd0z+fT5ZFuHTPeG gRMuc+rO/EqDnYee1TYVZZpd9IYaTBFv9q45wAbZOlj0bFykM+4AHk1FV55kqP45DS/y yDqg== 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=ttm9JDpQfFdaivyu5BbcV+zimIykT6JMxYV6nznS1UA=; b=JYO6AWNBskNd/Fzu+85RgOpj6pt62zN99Vqcm3WQ4MMeXn5TTrq+/vYQviSQQ6p+9V NCrF72UGenZUZgMCJPjkf/QqazNUEMuFM8eAurqRrlxAH/fUsXXXnKgmUsdIcZFcV+DK FIkb1Ato+21+jX6X7I5BVAsrCm1u0LDxcQK/C02cNs8as+WJw8mMNrAeUhgkrztrHOxH IlHYR1kGxjcvWw35+GVLhFOqd9oTxfFsk4KyAK1DcbZJRUwlrfbEvI5pMFyBkRXA6X4S MYkbE+Nz98ND5cNY7nT0s15OXudYhA42JJp1c051v7p7BqQbPLa8PXb/M3CL96RWs1PI tibA== X-Gm-Message-State: APjAAAWGxt10yVABLE24WOzfILeE61uJN7ATdGH9NE3pIEIp1PRklBCN CCg0QpzrOT/CbPuuv+qPEds= X-Google-Smtp-Source: APXvYqxEVg1sv/FHoGnDe5fHFym5HGmdl2utN2KLxOQtPTp1zpgBVVbM7HzmeOIkpx8OV4eNkdzDmg== X-Received: by 2002:a05:6000:cf:: with SMTP id q15mr2417471wrx.393.1575902129270; Mon, 09 Dec 2019 06:35:29 -0800 (PST) Received: from localhost (pD9E518ED.dip0.t-ipconnect.de. [217.229.24.237]) by smtp.gmail.com with ESMTPSA id a186sm14283943wmd.41.2019.12.09.06.35.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 06:35:28 -0800 (PST) From: Thierry Reding To: Thierry Reding Cc: linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 4/4] memory: tegra: Add system sleep support Date: Mon, 9 Dec 2019 15:35:21 +0100 Message-Id: <20191209143521.2357178-4-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191209143521.2357178-1-thierry.reding@gmail.com> References: <20191209143521.2357178-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 Add system suspend/resume support for the memory controller found on Tegra186 and later. This is required so that the SID registers can be reprogrammed after their content was lost during system sleep. Signed-off-by: Thierry Reding --- drivers/memory/tegra/tegra186.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/memory/tegra/tegra186.c b/drivers/memory/tegra/tegra186.c index 57895116c8e5..77a313f1bf0e 100644 --- a/drivers/memory/tegra/tegra186.c +++ b/drivers/memory/tegra/tegra186.c @@ -602,10 +602,29 @@ static const struct of_device_id tegra186_mc_of_match[] = { }; MODULE_DEVICE_TABLE(of, tegra186_mc_of_match); +static int tegra186_mc_suspend(struct device *dev) +{ + return 0; +} + +static int tegra186_mc_resume(struct device *dev) +{ + struct tegra186_mc *mc = dev_get_drvdata(dev); + + tegra186_mc_program_sid(mc); + + return 0; +} + +static const struct dev_pm_ops tegra186_mc_pm_ops = { + SET_SYSTEM_SLEEP_PM_OPS(tegra186_mc_suspend, tegra186_mc_resume) +}; + static struct platform_driver tegra186_mc_driver = { .driver = { .name = "tegra186-mc", .of_match_table = tegra186_mc_of_match, + .pm = &tegra186_mc_pm_ops, .suppress_bind_attrs = true, }, .prevent_deferred_probe = true,