Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp318061ybt; Tue, 23 Jun 2020 23:27:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyaSP8mPoEgy7BbCj/ptsQgpHc09JGlTsLicEzmOTm7hsCe2Koaf12B5w70OIHG6CtdhKdq X-Received: by 2002:a50:a68f:: with SMTP id e15mr25820262edc.285.1592980023302; Tue, 23 Jun 2020 23:27:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592980023; cv=none; d=google.com; s=arc-20160816; b=l4exsaa3plCuW4ykkCYECIDq2m6sOTqHfDKBLztjPKLzozB0qqwrK9sgybFcRDy9bB dMGyPphUAK0fsfFqaqHYoOp4QJhOGxMGwgX6fZKD1lnirVSJzULF1ptYg0r+EjT162LY Qb8HBS+FmEQDteUKK5jLUBIC53RsTtRAnOyBzQBgq7lD+wzjSwP/CC62Y3X8etHgLzjE nrnrpWhgBkFjdFoE6kUvuduGZ4eDAYCGJgl14NFarTMf+OXIxT19oa2f9i2SYLdwl/9d eBmQe95tMgFDkFXHzaLO2S0AuCnoLVg5gvh6/ecyLmkzrKKyJStjcz9uY1JmEBLRvhxL +ZDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=CMFU2BrhtzarEHTlDS91rYorAYzikVZA2fEUQUXYMWY=; b=Ism9K/orSUJg+3y6o6+bi+QMDuMFNkRA5cadI2E+Jrt/EWn7Q+hHZvzP/8TopKPkUc +S/8nVWF5KHA4uy8ypQxonC48dAi9X0m5Yo3RzHRX4PEEOhx2aXMYT2zma7sXYJkd37n KJKEGdEGXZ/qkcmzOC6z+2u2CmdMhER6joDb6A32+YbS4dKnLGEw7ZZ+bKBcJbub6npL LOq21eVAsQDX19+12SyVU1UW9M3Q/flEhrjLVdU3smDWxnUMCN7ax9Y22rkqnzfiOI4c qjz1EkEBAq2Xb2Nk36zKv6fPbcyKMLAlirRkQJMExkil/Ny/Akn5LW1zgmL1kenR+C5Y BYMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=WfvpAWhs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f26si3169607ejj.345.2020.06.23.23.26.39; Tue, 23 Jun 2020 23:27:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=WfvpAWhs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389106AbgFXGYa (ORCPT + 99 others); Wed, 24 Jun 2020 02:24:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60510 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388090AbgFXGY3 (ORCPT ); Wed, 24 Jun 2020 02:24:29 -0400 Received: from mail-qk1-x741.google.com (mail-qk1-x741.google.com [IPv6:2607:f8b0:4864:20::741]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD20DC061573 for ; Tue, 23 Jun 2020 23:24:28 -0700 (PDT) Received: by mail-qk1-x741.google.com with SMTP id f18so911195qkh.1 for ; Tue, 23 Jun 2020 23:24:28 -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=CMFU2BrhtzarEHTlDS91rYorAYzikVZA2fEUQUXYMWY=; b=WfvpAWhs2WYC4WWEUTiFZpISYUYI/DpY7dZR0ddYZxToPAq7vPqjdQFBK46ye7zvk3 aZ4mCPICNWCayPHyuGqWQXKajQ181A2JXFEKLFsdiONaX0tU4wHmcu12pEtCiJGiBrTi P1G8Uej0O7PdjW33wyGQqF/ANbzz/YvBjxzCRhrAzEm6L1UEZb6LHiDn/yMbQKwxe1// KAT1imvFcoihUb6j9Pm5680mooPS0gMscojUMPuEdcM3pPGtasxZohRgC4gTKUK6yfs9 OQXaz7UWJV6PTjGMWExW1wlD4D/583nXOfhuuuYI1Qa+DYNcSbXAdFmo3naXSTwjBMQI Pkkw== 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=CMFU2BrhtzarEHTlDS91rYorAYzikVZA2fEUQUXYMWY=; b=Uah+egnGhzLC2VWfhtBM349utNHbvGmQwG3sVNlwMltZO6x7Ve2I89WwYzJv2pYqAs XzcSheST1GzJQKp8OUqJ/r1h6fD5J+xsKCdsoNMP66EKcHmNjKTznqx1YgVdd2B8hAsv LaFh8V1AbyzN35mi8SFeXy40gmhpEPP6GE2+TD0aKp78f8k+R0B2rOHzRXvNgoNOvazJ FmnRp6bamYJFB+MEKZ9wpFrv86tQd5gNfAnIByuvz8HW6ZxQVES1OVHmBtSot58dUutJ dNYfXOOWgprJrH1wrZZD0wdHGLbG+sioQ40N3Jpcda3luQfIhiGCCMnaX4uxkS5wMXLS dyzg== X-Gm-Message-State: AOAM530cBp+/ggPZX086Qi/uh3EiAb+vFn0mwi3hcja6H1e/xf+V9UGM S/rSoEmMm9teuI+fNAN4VAs= X-Received: by 2002:a37:7e82:: with SMTP id z124mr1594206qkc.307.1592979868089; Tue, 23 Jun 2020 23:24:28 -0700 (PDT) Received: from LeoBras.ibmuc.com (179-125-148-1.dynamic.desktop.com.br. [179.125.148.1]) by smtp.gmail.com with ESMTPSA id n2sm2489727qtp.45.2020.06.23.23.24.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 23:24:27 -0700 (PDT) From: Leonardo Bras To: Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras , Leonardo Bras , Alexey Kardashevskiy , Thiago Jung Bauermann , Ram Pai Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/6] powerpc/pseries/iommu: Create defines for operations in ibm,ddw-applicable Date: Wed, 24 Jun 2020 03:24:06 -0300 Message-Id: <20200624062411.367796-2-leobras.c@gmail.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20200624062411.367796-1-leobras.c@gmail.com> References: <20200624062411.367796-1-leobras.c@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Create defines to help handling ibm,ddw-applicable values, avoiding confusion about the index of given operations. Signed-off-by: Leonardo Bras --- arch/powerpc/platforms/pseries/iommu.c | 40 +++++++++++++++----------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c index 6d47b4a3ce39..68d2aa9c71a8 100644 --- a/arch/powerpc/platforms/pseries/iommu.c +++ b/arch/powerpc/platforms/pseries/iommu.c @@ -39,6 +39,11 @@ #include "pseries.h" +#define DDW_QUERY_PE_DMA_WIN 0 +#define DDW_CREATE_PE_DMA_WIN 1 +#define DDW_REMOVE_PE_DMA_WIN 2 +#define DDW_APPLICABLE_SIZE 3 + static struct iommu_table_group *iommu_pseries_alloc_group(int node) { struct iommu_table_group *table_group; @@ -771,12 +776,12 @@ static void remove_ddw(struct device_node *np, bool remove_prop) { struct dynamic_dma_window_prop *dwp; struct property *win64; - u32 ddw_avail[3]; + u32 ddw_avail[DDW_APPLICABLE_SIZE]; u64 liobn; int ret = 0; ret = of_property_read_u32_array(np, "ibm,ddw-applicable", - &ddw_avail[0], 3); + &ddw_avail[0], DDW_APPLICABLE_SIZE); win64 = of_find_property(np, DIRECT64_PROPNAME, NULL); if (!win64) @@ -798,15 +803,15 @@ static void remove_ddw(struct device_node *np, bool remove_prop) pr_debug("%pOF successfully cleared tces in window.\n", np); - ret = rtas_call(ddw_avail[2], 1, 1, NULL, liobn); + ret = rtas_call(ddw_avail[DDW_REMOVE_PE_DMA_WIN], 1, 1, NULL, liobn); if (ret) pr_warn("%pOF: failed to remove direct window: rtas returned " "%d to ibm,remove-pe-dma-window(%x) %llx\n", - np, ret, ddw_avail[2], liobn); + np, ret, ddw_avail[DDW_REMOVE_PE_DMA_WIN], liobn); else pr_debug("%pOF: successfully removed direct window: rtas returned " "%d to ibm,remove-pe-dma-window(%x) %llx\n", - np, ret, ddw_avail[2], liobn); + np, ret, ddw_avail[DDW_REMOVE_PE_DMA_WIN], liobn); delprop: if (remove_prop) @@ -889,11 +894,11 @@ static int query_ddw(struct pci_dev *dev, const u32 *ddw_avail, buid = pdn->phb->buid; cfg_addr = ((pdn->busno << 16) | (pdn->devfn << 8)); - ret = rtas_call(ddw_avail[0], 3, 5, (u32 *)query, - cfg_addr, BUID_HI(buid), BUID_LO(buid)); + ret = rtas_call(ddw_avail[DDW_QUERY_PE_DMA_WIN], 3, 5, (u32 *)query, + cfg_addr, BUID_HI(buid), BUID_LO(buid)); dev_info(&dev->dev, "ibm,query-pe-dma-windows(%x) %x %x %x" - " returned %d\n", ddw_avail[0], cfg_addr, BUID_HI(buid), - BUID_LO(buid), ret); + " returned %d\n", ddw_avail[DDW_QUERY_PE_DMA_WIN], cfg_addr, + BUID_HI(buid), BUID_LO(buid), ret); return ret; } @@ -920,15 +925,16 @@ static int create_ddw(struct pci_dev *dev, const u32 *ddw_avail, do { /* extra outputs are LIOBN and dma-addr (hi, lo) */ - ret = rtas_call(ddw_avail[1], 5, 4, (u32 *)create, - cfg_addr, BUID_HI(buid), BUID_LO(buid), - page_shift, window_shift); + ret = rtas_call(ddw_avail[DDW_CREATE_PE_DMA_WIN], 5, 4, + (u32 *)create, cfg_addr, BUID_HI(buid), + BUID_LO(buid), page_shift, window_shift); } while (rtas_busy_delay(ret)); dev_info(&dev->dev, "ibm,create-pe-dma-window(%x) %x %x %x %x %x returned %d " - "(liobn = 0x%x starting addr = %x %x)\n", ddw_avail[1], - cfg_addr, BUID_HI(buid), BUID_LO(buid), page_shift, - window_shift, ret, create->liobn, create->addr_hi, create->addr_lo); + "(liobn = 0x%x starting addr = %x %x)\n", + ddw_avail[DDW_CREATE_PE_DMA_WIN], cfg_addr, BUID_HI(buid), + BUID_LO(buid), page_shift, window_shift, ret, create->liobn, + create->addr_hi, create->addr_lo); return ret; } @@ -996,7 +1002,7 @@ static u64 enable_ddw(struct pci_dev *dev, struct device_node *pdn) int page_shift; u64 dma_addr, max_addr; struct device_node *dn; - u32 ddw_avail[3]; + u32 ddw_avail[DDW_APPLICABLE_SIZE]; struct direct_window *window; struct property *win64; struct dynamic_dma_window_prop *ddwprop; @@ -1029,7 +1035,7 @@ static u64 enable_ddw(struct pci_dev *dev, struct device_node *pdn) * the property is actually in the parent, not the PE */ ret = of_property_read_u32_array(pdn, "ibm,ddw-applicable", - &ddw_avail[0], 3); + &ddw_avail[0], DDW_APPLICABLE_SIZE); if (ret) goto out_failed; -- 2.25.4