From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 045EEC64E7B for ; Mon, 16 Nov 2020 23:38:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AA37824640 for ; Mon, 16 Nov 2020 23:38:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="KwtbHymU" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730936AbgKPXiT (ORCPT ); Mon, 16 Nov 2020 18:38:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45854 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730883AbgKPXiS (ORCPT ); Mon, 16 Nov 2020 18:38:18 -0500 Received: from mail-il1-x142.google.com (mail-il1-x142.google.com [IPv6:2607:f8b0:4864:20::142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0F892C0613D2 for ; Mon, 16 Nov 2020 15:38:18 -0800 (PST) Received: by mail-il1-x142.google.com with SMTP id w8so6853818ilg.12 for ; Mon, 16 Nov 2020 15:38:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=R/KH1Zx6pvvwlPcex+1v/rVIsHRzuMbIHzVWH/5s1mU=; b=KwtbHymUWZJcv5S8ebV7GWJ7G+cmnf42lsHn05KJt94fUMwFY8pCs+gtLPwiF9NDhc oe2HZKo/Q55q8QTdehuuL2fPhfPaus6kcYJtwj26rdBq/8Ic9IjAWmhJAuhhZ2K8KBxy j81EZgxYGxIEnfVnSlfvqQEHwhTVVxR5KmASeIqJXJG7S4nSb4Dz0w83fmRJG+M9o6H0 xEHEsWQG3JoEFjwmJnFZeJbB8nktaWeSZ5hEm6n62bDuhD0yVS21/Vgi2GXsbPwu+5CC QpANg6iyl3ox2X4PrynKq1wTMIxRUQ2P7dWx4eDM1NcNGfmWHaWu1PhvVwYvFFGm5hT9 phJw== 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=R/KH1Zx6pvvwlPcex+1v/rVIsHRzuMbIHzVWH/5s1mU=; b=EetRvdbwFxkSN7LNiMeeJSvJFysqdtXSXGkD9DdyfQ+2Ly7u4oa1UM0Hg9gFG5yrjd dnrNndwwHB5wrJYsgzsJSNTYiJ0iJP9sYJtavbZ0pKseqXvWKCirPFLxGLNw2TpbQV2+ ou4T3gS8gLjDQEb5AM8n37m3LT26i1/je+xcDBMZAuv2fUg1JjAsS5YVqXfyTiKjjg+8 +zfUJiEB0Z0kHNpfgdbvOFfTtwhRhkOx1qi0M9dn1Xhd8hAsuq+gPpS3LXxoyudxJ2tk DcayffIwemtv3WFZZ1J+zEhyr5bocPlKhsMIoLccJHGoC4Kejy4hjojV2tJrrPCzG5Jy Re8Q== X-Gm-Message-State: AOAM531+V3BsywvgIwMobVNEOghNlVxn8et7TuWrsYHgCLVUfDXWLfi8 Y+IzJ1ZPsbYuwTVM04/ohoYwOQ== X-Google-Smtp-Source: ABdhPJzxIzMLlq5lYKSLoyX7o92cUlEvouY4ZKyUiVD/sh9NWgS0r6PHOxsKxbR28reCrIsgbpWyLg== X-Received: by 2002:a05:6e02:eaa:: with SMTP id u10mr9218286ilj.96.1605569897401; Mon, 16 Nov 2020 15:38:17 -0800 (PST) Received: from beast.localdomain (c-73-185-129-58.hsd1.mn.comcast.net. [73.185.129.58]) by smtp.gmail.com with ESMTPSA id f18sm10180099ill.22.2020.11.16.15.38.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Nov 2020 15:38:16 -0800 (PST) From: Alex Elder To: davem@davemloft.net, kuba@kernel.org Cc: evgreen@chromium.org, subashab@codeaurora.org, cpratapa@codeaurora.org, bjorn.andersson@linaro.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 02/11] net: ipa: make filter/routing hash enable register variable Date: Mon, 16 Nov 2020 17:37:56 -0600 Message-Id: <20201116233805.13775-3-elder@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201116233805.13775-1-elder@linaro.org> References: <20201116233805.13775-1-elder@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org For IPA v3.5.1, the IPA filter/routing hash enable register actually does exist, but it is at offset 0x8c into the IPA register space. For newer versions of IPA it is at offset 0x148. Define a new inline function ipa_reg_filt_rout_hash_en_offset() to return the appropriate value for a given version of IPA hardware. Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_main.c | 9 ++++++--- drivers/net/ipa/ipa_reg.h | 9 +++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c index bfe95a46acaf1..a9d8597f970aa 100644 --- a/drivers/net/ipa/ipa_main.c +++ b/drivers/net/ipa/ipa_main.c @@ -339,9 +339,12 @@ static void ipa_hardware_config(struct ipa *ipa) val = u32_encode_bits(granularity, AGGR_GRANULARITY); iowrite32(val, ipa->reg_virt + IPA_REG_COUNTER_CFG_OFFSET); - /* Disable hashed IPv4 and IPv6 routing and filtering for IPA v4.2 */ - if (ipa->version == IPA_VERSION_4_2) - iowrite32(0, ipa->reg_virt + IPA_REG_FILT_ROUT_HASH_EN_OFFSET); + /* IPA v4.2 does not support hashed tables, so disable them */ + if (ipa->version == IPA_VERSION_4_2) { + u32 offset = ipa_reg_filt_rout_hash_en_offset(ipa->version); + + iowrite32(0, ipa->reg_virt + offset); + } /* Enable dynamic clock division */ ipa_hardware_dcd_config(ipa); diff --git a/drivers/net/ipa/ipa_reg.h b/drivers/net/ipa/ipa_reg.h index 001961cd526bc..b46e60744f57f 100644 --- a/drivers/net/ipa/ipa_reg.h +++ b/drivers/net/ipa/ipa_reg.h @@ -151,8 +151,13 @@ static inline u32 ipa_reg_state_aggr_active_offset(enum ipa_version version) } /* ipa->available defines the valid bits in the STATE_AGGR_ACTIVE register */ -/* The next register is present for IPA v4.2 and above */ -#define IPA_REG_FILT_ROUT_HASH_EN_OFFSET 0x00000148 +static inline u32 ipa_reg_filt_rout_hash_en_offset(enum ipa_version version) +{ + if (version == IPA_VERSION_3_5_1) + return 0x000008c; + + return 0x0000148; +} static inline u32 ipa_reg_filt_rout_hash_flush_offset(enum ipa_version version) { -- 2.20.1