From patchwork Mon Jul 23 18:10:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergei Shtylyov X-Patchwork-Id: 947928 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=cogentembedded.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=cogentembedded-com.20150623.gappssmtp.com header.i=@cogentembedded-com.20150623.gappssmtp.com header.b="w91o0RSl"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Z8fW279Wz9s2g for ; Tue, 24 Jul 2018 04:10:09 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388290AbeGWTMc (ORCPT ); Mon, 23 Jul 2018 15:12:32 -0400 Received: from mail-lj1-f194.google.com ([209.85.208.194]:36373 "EHLO mail-lj1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387861AbeGWTMb (ORCPT ); Mon, 23 Jul 2018 15:12:31 -0400 Received: by mail-lj1-f194.google.com with SMTP id u7-v6so1339889lji.3 for ; Mon, 23 Jul 2018 11:10:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20150623.gappssmtp.com; s=20150623; h=subject:from:to:cc:references:organization:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=a3HKGlfSdbcgJ8glrEXAAf97LvYOZdIV4x/dh8e1eiY=; b=w91o0RSl05kkA4mMJ3UHX7di8GBcTBI/qJ9mQnZzN0SF0agyWLUIvSUX/sJUfU9AQe GvLwD69Zl7bodYS2ZQjyB94s1Nf7gHaWekeUd1E09sxETd7HFS4wzpsVjQW39qvBIy/d /Vxd2hfbl8VaZS6pUdNnQzE0oCi7iFhXpfQbURH8Nsk21+LsJir8LugwQkecvQmgHxJq fwbsnnxpBtb4CXDT6+dv5iSR0qz/uRh3iIwNzwZOl0j93jAy4ija2E0xkrPYpOS1dcZg Ld/2d19AcTIkwHIumQ42NgU/DVq+DcjnQG8c9rjsrt02sMarCixCB7RtXUBQGK82GJAT 0DsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=a3HKGlfSdbcgJ8glrEXAAf97LvYOZdIV4x/dh8e1eiY=; b=B0Kdo50+KOHV/0iX9RRYVkQ2N1PR0ktWEiySQYwQ6keEbeIL/4LOignUH3V1P97SgU Ucoznc4AEZlPMbEfKm9b1m9gDMMDJd6CwIsyl7Avducakpiaxl+89mmBmmsJyxZwass7 YDYxfGKmzluVD5QEhKFX+vzDUXfOQ2dTi7T+P0ae3U7HGajIWKSgtjHKwLrOQ3uaKirL u4DljgSAT4CHHhOCf3QnUYiUKK5DdePvSoxJb5B/NmI0exxaZ1YzAcgtaGN9fem5fTvX BSVEby930IuAIc41WmfXwXmR/K5u+UZceS9ZUyG1XMIUYqJbG5dmvkHPGEYfozKO+T/8 0Jkw== X-Gm-Message-State: AOUpUlEu02vHG5bsEupbOrvf9u0RIRG9hHvf8/hgZFT85NGyM/kXiovd sW0xtMPqFNPj5YtK8keQdCLneQ== X-Google-Smtp-Source: AAOMgpePfu/P7RqYokl1Oc8Fn9ivRa3ph9VH40qCWCt8icnmB+Jig+GCjV2YyyaLvULQD6fG3ArzPg== X-Received: by 2002:a2e:9742:: with SMTP id f2-v6mr10254646ljj.5.1532369405273; Mon, 23 Jul 2018 11:10:05 -0700 (PDT) Received: from wasted.cogentembedded.com ([31.173.85.93]) by smtp.gmail.com with ESMTPSA id d12-v6sm1505261lfg.15.2018.07.23.11.10.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Jul 2018 11:10:04 -0700 (PDT) Subject: [PATCH 1/5] sh_eth: uninline sh_eth_tsu_get_offset() From: Sergei Shtylyov To: netdev@vger.kernel.org, "David S. Miller" Cc: linux-renesas-soc@vger.kernel.org References: <24093fd0-1b9b-a211-f988-0272483185d6@cogentembedded.com> Organization: Cogent Embedded Message-ID: <837a23c9-38d6-90af-ed0c-3ee2aaaa20f0@cogentembedded.com> Date: Mon, 23 Jul 2018 21:10:02 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <24093fd0-1b9b-a211-f988-0272483185d6@cogentembedded.com> Content-Language: en-MW Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org sh_eth_tsu_get_offset() is called several times by the driver, remove *inline* and move that function from the header to the driver itself to let gcc decide whether to expand it inline or not... Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven --- drivers/net/ethernet/renesas/sh_eth.c | 5 +++++ drivers/net/ethernet/renesas/sh_eth.h | 6 ------ 2 files changed, 5 insertions(+), 6 deletions(-) Index: net-next/drivers/net/ethernet/renesas/sh_eth.c =================================================================== --- net-next.orig/drivers/net/ethernet/renesas/sh_eth.c +++ net-next/drivers/net/ethernet/renesas/sh_eth.c @@ -439,6 +439,11 @@ static void sh_eth_modify(struct net_dev enum_index); } +static void *sh_eth_tsu_get_offset(struct sh_eth_private *mdp, int enum_index) +{ + return mdp->tsu_addr + mdp->reg_offset[enum_index]; +} + static void sh_eth_tsu_write(struct sh_eth_private *mdp, u32 data, int enum_index) { Index: net-next/drivers/net/ethernet/renesas/sh_eth.h =================================================================== --- net-next.orig/drivers/net/ethernet/renesas/sh_eth.h +++ net-next/drivers/net/ethernet/renesas/sh_eth.h @@ -558,10 +558,4 @@ struct sh_eth_private { unsigned wol_enabled:1; }; -static inline void *sh_eth_tsu_get_offset(struct sh_eth_private *mdp, - int enum_index) -{ - return mdp->tsu_addr + mdp->reg_offset[enum_index]; -} - #endif /* #ifndef __SH_ETH_H__ */ From patchwork Mon Jul 23 18:11:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergei Shtylyov X-Patchwork-Id: 947929 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=cogentembedded.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=cogentembedded-com.20150623.gappssmtp.com header.i=@cogentembedded-com.20150623.gappssmtp.com header.b="YSFtgi3M"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Z8gw64Jlz9s2g for ; Tue, 24 Jul 2018 04:11:24 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388172AbeGWTNr (ORCPT ); Mon, 23 Jul 2018 15:13:47 -0400 Received: from mail-lf1-f66.google.com ([209.85.167.66]:33381 "EHLO mail-lf1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387861AbeGWTNr (ORCPT ); Mon, 23 Jul 2018 15:13:47 -0400 Received: by mail-lf1-f66.google.com with SMTP id u14-v6so1149711lfu.0 for ; Mon, 23 Jul 2018 11:11:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20150623.gappssmtp.com; s=20150623; h=subject:from:to:cc:references:organization:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=5Whq+GwdHio2GJkAHlCX0SajMZuKoErCVSZtcVpjxAs=; b=YSFtgi3MHuni6SVKSahdRbAJ36AksvvZiXSGtBbnI6/mkbff8dNomJXMpezltaZHkd YukONc80/RjDi0R7s+HncF51huL166SVoENyGnlWWwAs7Owy7RCdeJWryeOrnSxQz3No cOSSpNwCIF9BF1QXYLJDTM66z5sl+Ui8E/PwVzTbTYIQ3OkXjCC+B4muEGIYkel5D99F ATNT9mktFCO0L1S50bU/vaLZUQjPFNRJ7w+yRgCmPURbFnfnmxBS0lyG/gM38t+Fvcch G0GhQ3IYFjqLgNMiRIrXHxT1S1Bf9O3QaMVhfZbfI6FOfB4VMdf+8E/OYTZUwqHOfBLQ gPog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=5Whq+GwdHio2GJkAHlCX0SajMZuKoErCVSZtcVpjxAs=; b=hAbbaX2xCpe5KdsolAOyUm4aD5DShz3RvHfPktmp9CNdMQvordKyvECfIFx+KYprWy CfMqc29LPh4MwbrhTUjwLl6ytvxkq4y3MmOznsxi2KkgNkIzDyZGHZZOQzu2U926LTUm +6RGM4krFiIOm68l4zQtSZuor8SXl8veOzk/q3DLGykOJjmwf1uoMQZbqzG2EPIxVnoc q52uVUJTEoophcxC4IsrA7Czn19W+GRAUZ81nUaQcImtlIdpl9hBCFt+h8l4Yt7F+L5d jf2AMs54xr90JulZzxSAmXBw49YO9JDVRtqkmuyxw0akd92x42/eksyxjBvAuyLgHtQf AOsg== X-Gm-Message-State: AOUpUlGsfShFv9aINcFawjuD2pEhp0VcMhphHrI5pywq61tvkfhnlI85 KWMm5ltPp/Vbw9lpQpoMTYfvMw== X-Google-Smtp-Source: AAOMgpcPoODP9LYlvk8kWjkLNfqkGN/dZm0+9iqVGX0D+g8ZrjXDQb1LdVFzkaLEzO7u5vfurSS/qw== X-Received: by 2002:a19:5309:: with SMTP id h9-v6mr8363499lfb.86.1532369480667; Mon, 23 Jul 2018 11:11:20 -0700 (PDT) Received: from wasted.cogentembedded.com ([31.173.85.93]) by smtp.gmail.com with ESMTPSA id j26-v6sm1931928ljc.54.2018.07.23.11.11.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Jul 2018 11:11:19 -0700 (PDT) Subject: [PATCH 2/5] sh_eth: make sh_eth_tsu_get_offset() match its name From: Sergei Shtylyov To: netdev@vger.kernel.org, "David S. Miller" Cc: linux-renesas-soc@vger.kernel.org References: <24093fd0-1b9b-a211-f988-0272483185d6@cogentembedded.com> Organization: Cogent Embedded Message-ID: Date: Mon, 23 Jul 2018 21:11:19 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <24093fd0-1b9b-a211-f988-0272483185d6@cogentembedded.com> Content-Language: en-MW Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org sh_eth_tsu_get_offset(), despite its name, returns a TSU register's address, not its offset. Make this function match its name and return a register's offset from the TSU registers base address instead. Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven --- drivers/net/ethernet/renesas/sh_eth.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) Index: net-next/drivers/net/ethernet/renesas/sh_eth.c =================================================================== --- net-next.orig/drivers/net/ethernet/renesas/sh_eth.c +++ net-next/drivers/net/ethernet/renesas/sh_eth.c @@ -439,9 +439,9 @@ static void sh_eth_modify(struct net_dev enum_index); } -static void *sh_eth_tsu_get_offset(struct sh_eth_private *mdp, int enum_index) +static u16 sh_eth_tsu_get_offset(struct sh_eth_private *mdp, int enum_index) { - return mdp->tsu_addr + mdp->reg_offset[enum_index]; + return mdp->reg_offset[enum_index]; } static void sh_eth_tsu_write(struct sh_eth_private *mdp, u32 data, @@ -2712,12 +2712,12 @@ static void sh_eth_tsu_read_entry(void * static int sh_eth_tsu_find_entry(struct net_device *ndev, const u8 *addr) { struct sh_eth_private *mdp = netdev_priv(ndev); - void *reg_offset = sh_eth_tsu_get_offset(mdp, TSU_ADRH0); + u16 reg_offset = sh_eth_tsu_get_offset(mdp, TSU_ADRH0); int i; u8 c_addr[ETH_ALEN]; for (i = 0; i < SH_ETH_TSU_CAM_ENTRIES; i++, reg_offset += 8) { - sh_eth_tsu_read_entry(reg_offset, c_addr); + sh_eth_tsu_read_entry(mdp->tsu_addr + reg_offset, c_addr); if (ether_addr_equal(addr, c_addr)) return i; } @@ -2739,7 +2739,7 @@ static int sh_eth_tsu_disable_cam_entry_ int entry) { struct sh_eth_private *mdp = netdev_priv(ndev); - void *reg_offset = sh_eth_tsu_get_offset(mdp, TSU_ADRH0); + u16 reg_offset = sh_eth_tsu_get_offset(mdp, TSU_ADRH0); int ret; u8 blank[ETH_ALEN]; @@ -2747,7 +2747,9 @@ static int sh_eth_tsu_disable_cam_entry_ ~(1 << (31 - entry)), TSU_TEN); memset(blank, 0, sizeof(blank)); - ret = sh_eth_tsu_write_entry(ndev, reg_offset + entry * 8, blank); + ret = sh_eth_tsu_write_entry(ndev, + mdp->tsu_addr + reg_offset + entry * 8, + blank); if (ret < 0) return ret; return 0; @@ -2756,7 +2758,7 @@ static int sh_eth_tsu_disable_cam_entry_ static int sh_eth_tsu_add_entry(struct net_device *ndev, const u8 *addr) { struct sh_eth_private *mdp = netdev_priv(ndev); - void *reg_offset = sh_eth_tsu_get_offset(mdp, TSU_ADRH0); + u16 reg_offset = sh_eth_tsu_get_offset(mdp, TSU_ADRH0); int i, ret; if (!mdp->cd->tsu) @@ -2768,7 +2770,9 @@ static int sh_eth_tsu_add_entry(struct n i = sh_eth_tsu_find_empty(ndev); if (i < 0) return -ENOMEM; - ret = sh_eth_tsu_write_entry(ndev, reg_offset + i * 8, addr); + ret = sh_eth_tsu_write_entry(ndev, + mdp->tsu_addr + reg_offset + i * 8, + addr); if (ret < 0) return ret; @@ -2830,15 +2834,15 @@ static int sh_eth_tsu_purge_all(struct n static void sh_eth_tsu_purge_mcast(struct net_device *ndev) { struct sh_eth_private *mdp = netdev_priv(ndev); + u16 reg_offset = sh_eth_tsu_get_offset(mdp, TSU_ADRH0); u8 addr[ETH_ALEN]; - void *reg_offset = sh_eth_tsu_get_offset(mdp, TSU_ADRH0); int i; if (!mdp->cd->tsu) return; for (i = 0; i < SH_ETH_TSU_CAM_ENTRIES; i++, reg_offset += 8) { - sh_eth_tsu_read_entry(reg_offset, addr); + sh_eth_tsu_read_entry(mdp->tsu_addr + reg_offset, addr); if (is_multicast_ether_addr(addr)) sh_eth_tsu_del_entry(ndev, addr); } From patchwork Mon Jul 23 18:12:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergei Shtylyov X-Patchwork-Id: 947930 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=cogentembedded.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=cogentembedded-com.20150623.gappssmtp.com header.i=@cogentembedded-com.20150623.gappssmtp.com header.b="zwyjSdIb"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Z8jR6xk3z9s2g for ; Tue, 24 Jul 2018 04:12:43 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388247AbeGWTPG (ORCPT ); Mon, 23 Jul 2018 15:15:06 -0400 Received: from mail-lj1-f194.google.com ([209.85.208.194]:41358 "EHLO mail-lj1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387873AbeGWTPG (ORCPT ); Mon, 23 Jul 2018 15:15:06 -0400 Received: by mail-lj1-f194.google.com with SMTP id y17-v6so1328097ljy.8 for ; Mon, 23 Jul 2018 11:12:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20150623.gappssmtp.com; s=20150623; h=subject:from:to:cc:references:organization:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=fqWKsueuncN5cj0HEwaF/wfJxjU+K7vKaM1cireuc+A=; b=zwyjSdIbUWGH6gGMzADjD/q2A2ETXOHDrP5EcRWiMxTeqoD99Te9Sl1f20Krkl2L3l t2M4SIAGql8WYMBVB/J2MGMl99N6ADPTgPr3+NL7MI7H63Rqahk1xX5NZ/UHUS3bynMc v1xN9Z0rsjHp+sPoZ9z25NjSS39+D6/gOfMTS71mvz8XAX5ZpO4ChmfwOWujRJP0bMG8 p8oNazOrtYd5xpWeVCiKHUO7MGpXI4qIX6LtZibBQ80HWd7RoL6IdY9EZQy8foWATnob 4+zmtQ6oAfg5HhaTec03CltIPCg7oEAE9uKqzM802wbdSASma2xF++3/U2ghKMko+SLs cEhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=fqWKsueuncN5cj0HEwaF/wfJxjU+K7vKaM1cireuc+A=; b=Vt586nkEB+EQb5ZOf5ZX/Mp8C2UUUzmLhZ1LlapEGKoSsHKKsfCvCBqjjaIJ+3v3oa r5d3Utn+v7k2jN2MbdqeiL0C1Y0Qmjo0W8DKOljqO8XzAnxmQJ3UHMQR81N5sLx/KX/G 9DtQJXB0QpcRFCmpTMGCqaC6x/kSzYjfPyFEaAbg/+vydP8E+VvuZAOHuA6GH3sxXlcg 4a+pfi3CAuXWp4lrzPT0OgnMjUWcDxTHLNkQ4qkkEAWMV1M2Uokx8alZuXiOq0ZWBow5 H7+QSBw5VWHov0zpEMD0zPwWDDE0qIRxztlyZSVgF3SV1GyM/OIlH64AcT88eQ+g2eOH nPhQ== X-Gm-Message-State: AOUpUlEZnlBOp4lsk7Zd+elplVwuQYdXY8d0KuJgG6vci9Ybwyo/S5CH r7YgkvzCu5j8Gn4Br8hw1LFDbA== X-Google-Smtp-Source: AAOMgpcXeDduovTnsoVyz6KXbIniA3WqT6eVGDK3wyiBQiDMiODbATZN3vC224a/YoCGm71Ti6Jo0g== X-Received: by 2002:a2e:4951:: with SMTP id b17-v6mr9636206ljd.67.1532369559769; Mon, 23 Jul 2018 11:12:39 -0700 (PDT) Received: from wasted.cogentembedded.com ([31.173.85.93]) by smtp.gmail.com with ESMTPSA id w12-v6sm1944937lji.63.2018.07.23.11.12.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Jul 2018 11:12:38 -0700 (PDT) Subject: [PATCH 3/5] sh_eth: call sh_eth_tsu_get_offset() from TSU register accessors From: Sergei Shtylyov To: netdev@vger.kernel.org, "David S. Miller" Cc: linux-renesas-soc@vger.kernel.org References: <24093fd0-1b9b-a211-f988-0272483185d6@cogentembedded.com> Organization: Cogent Embedded Message-ID: <6a15eddc-a30d-a4e8-aa0d-05ee2091e32a@cogentembedded.com> Date: Mon, 23 Jul 2018 21:12:38 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <24093fd0-1b9b-a211-f988-0272483185d6@cogentembedded.com> Content-Language: en-MW Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org With sh_eth_tsu_get_offset() now actually returning TSU register's offset, we can at last use it in sh_eth_tsu_{read|write}(). Somehow this saves 248 bytes of object code with AArch64 gcc 4.8.5... :-) Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven --- drivers/net/ethernet/renesas/sh_eth.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: net-next/drivers/net/ethernet/renesas/sh_eth.c =================================================================== --- net-next.orig/drivers/net/ethernet/renesas/sh_eth.c +++ net-next/drivers/net/ethernet/renesas/sh_eth.c @@ -447,7 +447,7 @@ static u16 sh_eth_tsu_get_offset(struct static void sh_eth_tsu_write(struct sh_eth_private *mdp, u32 data, int enum_index) { - u16 offset = mdp->reg_offset[enum_index]; + u16 offset = sh_eth_tsu_get_offset(mdp, enum_index); if (WARN_ON(offset == SH_ETH_OFFSET_INVALID)) return; @@ -457,7 +457,7 @@ static void sh_eth_tsu_write(struct sh_e static u32 sh_eth_tsu_read(struct sh_eth_private *mdp, int enum_index) { - u16 offset = mdp->reg_offset[enum_index]; + u16 offset = sh_eth_tsu_get_offset(mdp, enum_index); if (WARN_ON(offset == SH_ETH_OFFSET_INVALID)) return ~0U; From patchwork Mon Jul 23 18:14:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergei Shtylyov X-Patchwork-Id: 947931 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=cogentembedded.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=cogentembedded-com.20150623.gappssmtp.com header.i=@cogentembedded-com.20150623.gappssmtp.com header.b="l2LIqp+Q"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Z8lm3pVbz9s2g for ; Tue, 24 Jul 2018 04:14:44 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388387AbeGWTRH (ORCPT ); Mon, 23 Jul 2018 15:17:07 -0400 Received: from mail-lj1-f194.google.com ([209.85.208.194]:41503 "EHLO mail-lj1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387873AbeGWTRH (ORCPT ); Mon, 23 Jul 2018 15:17:07 -0400 Received: by mail-lj1-f194.google.com with SMTP id y17-v6so1332927ljy.8 for ; Mon, 23 Jul 2018 11:14:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20150623.gappssmtp.com; s=20150623; h=subject:from:to:cc:references:organization:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=hY0T6x6MI7R+yeTEPrztF4rOloLC9FvaR09oqcyDPUU=; b=l2LIqp+QcHvpoLiqSVsBA48AjbC9BFG5TESyOwKzbAzQO8cUbpzK/OctD9A9f2AcqP nKfc5vX62vwluxeGulF3xuDUO6mw3AXJqIeEBhk2JCBGDgtQ3ohsTn/jOfK86FJSIzat NTXEldS1HcLR+UNMu0jGCk3LeTMolXLKeG4nSyJnOEM3sjz2eZrgTZC5i6nuqxijnhlj UwDm3gZCLwdYDyuhQ6QBrQvO4YbDDH1emLtHhSGwm9w/EIIedHeyWmaBQDTqWjRHRSFX nHWa6Z9aWp7gfm8msT2R5hiH9+ge0vlUL9eqt9VOOx5MtAuOEH3MFvqrwxDcXEG+zrLq gsYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=hY0T6x6MI7R+yeTEPrztF4rOloLC9FvaR09oqcyDPUU=; b=MKcZx9OuPXvXt1by1P9MpPnX2AhLxOE7wrGk3OpgIXCBbJk/vu7LH839wge2A25qCs RFC02oPt0PEfETMsGJbDPD9koRYgf9sHv2gJEujFWOX4VvIlZZrPTcNRJi+kROChdke5 TC5TIhzNl+/5qg1NueB4SjAJxacDu7EWWxb084HTa1fAgkLDc7us6AP+7NCesY9DEuVh t1w8hOjl6RS1saFNL3UKf+KLpwtyaLMIwjH1BOlEbLnQND9GkES8Wx4ovJuBVqoBlGTJ SDYBDuuPIUId7+iRl/5m8j3JZ2mTsquTvp2Aq9sihc8Ms4lxzY81B92MDIaHBJI821k7 ggog== X-Gm-Message-State: AOUpUlFNdMDi5Fb+ABm+wiJ63wxjhRKYmtU0A/KbwckRCMHHTvAJOJmz DbecT3K6XZNltVDXbURTkSh1qA== X-Google-Smtp-Source: AAOMgpczYQa8RF9tq7xrmwoHqHPnkzq9YIAc9NPRFYX5cU+YGSjUo0v5inr5kWxYIJev4IbG1WDmBw== X-Received: by 2002:a2e:7c12:: with SMTP id x18-v6mr9385729ljc.71.1532369680337; Mon, 23 Jul 2018 11:14:40 -0700 (PDT) Received: from wasted.cogentembedded.com ([31.173.85.93]) by smtp.gmail.com with ESMTPSA id i75-v6sm1506415lfh.29.2018.07.23.11.14.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Jul 2018 11:14:39 -0700 (PDT) Subject: [PATCH 4/5] sh_eth: make sh_eth_tsu_write_entry() take 'offset' parameter From: Sergei Shtylyov To: netdev@vger.kernel.org, "David S. Miller" Cc: linux-renesas-soc@vger.kernel.org References: <24093fd0-1b9b-a211-f988-0272483185d6@cogentembedded.com> Organization: Cogent Embedded Message-ID: <1b60d8c8-e06f-6bff-df06-9b1cbe953340@cogentembedded.com> Date: Mon, 23 Jul 2018 21:14:38 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <24093fd0-1b9b-a211-f988-0272483185d6@cogentembedded.com> Content-Language: en-MW Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We can add the TSU register base address to a TSU register offset right in sh_eth_tsu_write_entry(), no need to do it in its callers... Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven --- drivers/net/ethernet/renesas/sh_eth.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) Index: net-next/drivers/net/ethernet/renesas/sh_eth.c =================================================================== --- net-next.orig/drivers/net/ethernet/renesas/sh_eth.c +++ net-next/drivers/net/ethernet/renesas/sh_eth.c @@ -2676,18 +2676,19 @@ static int sh_eth_tsu_busy(struct net_de return 0; } -static int sh_eth_tsu_write_entry(struct net_device *ndev, void *reg, +static int sh_eth_tsu_write_entry(struct net_device *ndev, u16 offset, const u8 *addr) { + struct sh_eth_private *mdp = netdev_priv(ndev); u32 val; val = addr[0] << 24 | addr[1] << 16 | addr[2] << 8 | addr[3]; - iowrite32(val, reg); + iowrite32(val, mdp->tsu_addr + offset); if (sh_eth_tsu_busy(ndev) < 0) return -EBUSY; val = addr[4] << 8 | addr[5]; - iowrite32(val, reg + 4); + iowrite32(val, mdp->tsu_addr + offset + 4); if (sh_eth_tsu_busy(ndev) < 0) return -EBUSY; @@ -2747,9 +2748,7 @@ static int sh_eth_tsu_disable_cam_entry_ ~(1 << (31 - entry)), TSU_TEN); memset(blank, 0, sizeof(blank)); - ret = sh_eth_tsu_write_entry(ndev, - mdp->tsu_addr + reg_offset + entry * 8, - blank); + ret = sh_eth_tsu_write_entry(ndev, reg_offset + entry * 8, blank); if (ret < 0) return ret; return 0; @@ -2770,9 +2769,7 @@ static int sh_eth_tsu_add_entry(struct n i = sh_eth_tsu_find_empty(ndev); if (i < 0) return -ENOMEM; - ret = sh_eth_tsu_write_entry(ndev, - mdp->tsu_addr + reg_offset + i * 8, - addr); + ret = sh_eth_tsu_write_entry(ndev, reg_offset + i * 8, addr); if (ret < 0) return ret; From patchwork Mon Jul 23 18:15:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergei Shtylyov X-Patchwork-Id: 947932 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=cogentembedded.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=cogentembedded-com.20150623.gappssmtp.com header.i=@cogentembedded-com.20150623.gappssmtp.com header.b="whCeSL2G"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Z8n4384mz9s2g for ; Tue, 24 Jul 2018 04:15:52 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388271AbeGWTSQ (ORCPT ); Mon, 23 Jul 2018 15:18:16 -0400 Received: from mail-lj1-f194.google.com ([209.85.208.194]:46305 "EHLO mail-lj1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387873AbeGWTSQ (ORCPT ); Mon, 23 Jul 2018 15:18:16 -0400 Received: by mail-lj1-f194.google.com with SMTP id 203-v6so1322046ljj.13 for ; Mon, 23 Jul 2018 11:15:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20150623.gappssmtp.com; s=20150623; h=subject:from:to:cc:references:organization:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=A7/by9D57iv+IDd6hfD30wyQr9uWOQORPG9j8HUs/hU=; b=whCeSL2GbI7qLu3tbZ9TyFqRymihrta5ODi+UZI4/wn5NumnbyQFIYcW1vS5MhUtUy v2h80cXMVw++r5ffwGs8p2TtgB/SD2WC/tYpsAQZ+i9AggS2mNN2jFbemrKyAnz1sUHV FKaJG3WFmEEjk8VGC+dLFhXjoqOMxjnl2JBf3eS9rY7130FgE92Wxc/N/XmrJvpSxVV+ DPXt8PKUl2eeSHQwroZTy2EmxJPE0LYC7knJGnJbFMrKRZyz27AVJ/aUwuDLv31VlP2X l2BfWGnTkIDCx9KRBN4jE+7x9YpYQXXi2V2eYxl/uqyjhSFlPsbSkPHHqCTQiAz4zxg8 SLlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=A7/by9D57iv+IDd6hfD30wyQr9uWOQORPG9j8HUs/hU=; b=BnnsemP4xHInIQbyGyd8Grgn0c5lLf8k2QWmlt6HS9o1fn0K7kUWSvJATxQp+pi6mv xuMnbikoeQmLw/GHbKTJMP7g3Nb1qptJSjMyGqpk5DqgHB2TYuYJ4nWH+5HH96nHGHLw y6PqrqZyP3SYkLCoymQZjUqJaaN9LJUNJPW6LYHNKMaNEYOCrRlX9P1L3fzsdAjjg53r iU8vZ1L76AAPRJRyUcUcOpRlItdhbj866y2KGmmZsm34irtu52CQMQ0ka19kSILAl+WI tRKC0GfFa1vbEhVBGf7+bLjxBRb9z9TFcbcs7/5BFfP6h5UK3frSbX33eh3x2nE149p1 Fz9w== X-Gm-Message-State: AOUpUlFVfZ5eQcDTDbwnifxqd8OHy7Yq8AepFPZ9pwA8MiJ1+ejoGxks 9d3ErkNG9I0qbYBGhfg2vzb5dw== X-Google-Smtp-Source: AAOMgpclh1RvWSzlp5jThvxYyDGigPkAr0thevEl9/6oK0a/DLD7br5Gorw0mT6FHcgdYyTdkcQjJg== X-Received: by 2002:a2e:96d8:: with SMTP id d24-v6mr10544674ljj.50.1532369748930; Mon, 23 Jul 2018 11:15:48 -0700 (PDT) Received: from wasted.cogentembedded.com ([31.173.85.93]) by smtp.gmail.com with ESMTPSA id 20-v6sm1915592ljs.32.2018.07.23.11.15.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Jul 2018 11:15:48 -0700 (PDT) Subject: [PATCH 5/5] sh_eth: make sh_eth_tsu_{read|write}_entry() prototypes symmetric From: Sergei Shtylyov To: netdev@vger.kernel.org, "David S. Miller" Cc: linux-renesas-soc@vger.kernel.org References: <24093fd0-1b9b-a211-f988-0272483185d6@cogentembedded.com> Organization: Cogent Embedded Message-ID: <93618d2e-86b6-e467-b577-632a25cb2c4c@cogentembedded.com> Date: Mon, 23 Jul 2018 21:15:47 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <24093fd0-1b9b-a211-f988-0272483185d6@cogentembedded.com> Content-Language: en-MW Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org sh_eth_tsu_read_entry() is still asymmetric with sh_eth_tsu_write_entry() WRT their prototypes -- make them symmetric by passing to the former a TSU register offset instead of its address and also adding the (now necessary) 'ndev' parameter... Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven --- drivers/net/ethernet/renesas/sh_eth.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) Index: net-next/drivers/net/ethernet/renesas/sh_eth.c =================================================================== --- net-next.orig/drivers/net/ethernet/renesas/sh_eth.c +++ net-next/drivers/net/ethernet/renesas/sh_eth.c @@ -2695,16 +2695,17 @@ static int sh_eth_tsu_write_entry(struct return 0; } -static void sh_eth_tsu_read_entry(void *reg, u8 *addr) +static void sh_eth_tsu_read_entry(struct net_device *ndev, u16 offset, u8 *addr) { + struct sh_eth_private *mdp = netdev_priv(ndev); u32 val; - val = ioread32(reg); + val = ioread32(mdp->tsu_addr + offset); addr[0] = (val >> 24) & 0xff; addr[1] = (val >> 16) & 0xff; addr[2] = (val >> 8) & 0xff; addr[3] = val & 0xff; - val = ioread32(reg + 4); + val = ioread32(mdp->tsu_addr + offset + 4); addr[4] = (val >> 8) & 0xff; addr[5] = val & 0xff; } @@ -2718,7 +2719,7 @@ static int sh_eth_tsu_find_entry(struct u8 c_addr[ETH_ALEN]; for (i = 0; i < SH_ETH_TSU_CAM_ENTRIES; i++, reg_offset += 8) { - sh_eth_tsu_read_entry(mdp->tsu_addr + reg_offset, c_addr); + sh_eth_tsu_read_entry(ndev, reg_offset, c_addr); if (ether_addr_equal(addr, c_addr)) return i; } @@ -2839,7 +2840,7 @@ static void sh_eth_tsu_purge_mcast(struc return; for (i = 0; i < SH_ETH_TSU_CAM_ENTRIES; i++, reg_offset += 8) { - sh_eth_tsu_read_entry(mdp->tsu_addr + reg_offset, addr); + sh_eth_tsu_read_entry(ndev, reg_offset, addr); if (is_multicast_ether_addr(addr)) sh_eth_tsu_del_entry(ndev, addr); }