{"id":807294,"url":"http://patchwork.ozlabs.org/api/1.2/patches/807294/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/patch/1504038918-49254-2-git-send-email-f.fainelli@gmail.com/","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/1.2/projects/7/?format=json","name":"Linux network development","link_name":"netdev","list_id":"netdev.vger.kernel.org","list_email":"netdev@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1504038918-49254-2-git-send-email-f.fainelli@gmail.com>","list_archive_url":null,"date":"2017-08-29T20:35:15","name":"[net-next,v2,1/4] net: systemport: Use correct I/O accessors","commit_ref":null,"pull_url":null,"state":"accepted","archived":true,"hash":"85571debdb86d0c256fde64591065b7edd7ec89a","submitter":{"id":2800,"url":"http://patchwork.ozlabs.org/api/1.2/people/2800/?format=json","name":"Florian Fainelli","email":"f.fainelli@gmail.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/1.2/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/1504038918-49254-2-git-send-email-f.fainelli@gmail.com/mbox/","series":[{"id":470,"url":"http://patchwork.ozlabs.org/api/1.2/series/470/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/list/?series=470","date":"2017-08-29T20:35:14","name":"Endian fixes for SYSTEMPORT/SF2/MDIO","version":2,"mbox":"http://patchwork.ozlabs.org/series/470/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/807294/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/807294/checks/","tags":{},"related":[],"headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"jEwOcPtK\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xhgXK37hJz9s9Y\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 30 Aug 2017 06:41:21 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751600AbdH2UlT (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 29 Aug 2017 16:41:19 -0400","from mail-qk0-f196.google.com ([209.85.220.196]:37593 \"EHLO\n\tmail-qk0-f196.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751249AbdH2UlQ (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Tue, 29 Aug 2017 16:41:16 -0400","by mail-qk0-f196.google.com with SMTP id m4so3847437qke.4\n\tfor <netdev@vger.kernel.org>; Tue, 29 Aug 2017 13:41:15 -0700 (PDT)","from stb-bld-04.irv.broadcom.com ([192.19.255.250])\n\tby smtp.gmail.com with ESMTPSA id\n\tu17sm2645446qtc.43.2017.08.29.13.41.12\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tTue, 29 Aug 2017 13:41:14 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=frGKJXgovrrI1aoA6wak8X8woz3TTGrDaLqeNPaYwwQ=;\n\tb=jEwOcPtKMkJlMJx+ry+zR8JDjUl6hfF1S475Lwh37+Ps5cmh1HayhkhHN5Bg/PN1Or\n\tjhwGoAMKphgIuNXu4MqBX8exSFLy7fjVepq/oPwATTU57SXlmf3+xvQ7TUcXIQkMYIp1\n\tUE0XktvBhxTrhvECbAL93U/oo9AFjkxiGM1c7O6TxddiZNrhTfdtThBqnTU6WpZ7DM7G\n\tjBhNhnHOqnnIaZClAt9j1MUnlWLltWtpl13IctqktrUdo1W4qhU3SyTQjExorc1mAy6F\n\txFlFADoE+AdhGa/naCaKGZcVyl7k7JFRBhdtua22AKsrwlFNTanyB0t0LVq5C1IPZLZ/\n\tT32Q==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=frGKJXgovrrI1aoA6wak8X8woz3TTGrDaLqeNPaYwwQ=;\n\tb=OG8zD11abULDK8/zTHk6r5moTi9D9iZrVPLJ1ROBv/owyR7H3NwKBawsgzCIvH2VMY\n\ttMRoGSc/vDtZUo1yGmkTxBglwxGZsu9sbntUUScp+rhRt/ZXyS9g8GFNFtW6xK1qHvIW\n\tIK2CfIdu7ineZJYyEBz0Me+mM9GYWhTvPle2XwPHUGy1FhTdl7P7HKykTUhgQygvMju+\n\td88e5r/18AkpawgoW+452cdxT3sASYhmGge2iA8T+u6fcNadeDa422DcT/YZ5rtYx8jp\n\t7pKRfXsXuZYPPKZNThmipIVpK+qfTWW5RnLRt1PJ5zkU0f6dJnx9SyzofuI1z7uimpmc\n\tRSDQ==","X-Gm-Message-State":"AHYfb5g/189n8K3UOoJosIHOwdoT4xPpVdWS6W0gTEUp1WYSzEH88yzX\n\tr8rfWlPDaTZbUo3TGqk=","X-Received":"by 10.233.235.69 with SMTP id b66mr7877220qkg.200.1504039275184; \n\tTue, 29 Aug 2017 13:41:15 -0700 (PDT)","From":"Florian Fainelli <f.fainelli@gmail.com>","To":"netdev@vger.kernel.org","Cc":"davem@davemloft.net, opendmb@gmail.com, andrew@lunn.ch,\n\tvivien.didelot@savoirfairelinux.com,\n\tFlorian Fainelli <f.fainelli@gmail.com>","Subject":"[PATCH net-next v2 1/4] net: systemport: Use correct I/O accessors","Date":"Tue, 29 Aug 2017 13:35:15 -0700","Message-Id":"<1504038918-49254-2-git-send-email-f.fainelli@gmail.com>","X-Mailer":"git-send-email 1.9.1","In-Reply-To":"<1504038918-49254-1-git-send-email-f.fainelli@gmail.com>","References":"<1504038918-49254-1-git-send-email-f.fainelli@gmail.com>","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"The SYSTEMPORT driver currently uses __raw_{read,write}l which means\nnative I/O endian. This works correctly for an ARM LE kernel (default)\nbut fails miserably on an ARM BE (BE8) kernel where registers are kept\nlittle endian, so replace uses with {read,write}l_relaxed here which is\nwhat we want because this is all performance sensitive code.\n\nSigned-off-by: Florian Fainelli <f.fainelli@gmail.com>\n---\n drivers/net/ethernet/broadcom/bcmsysport.c | 12 ++++++------\n 1 file changed, 6 insertions(+), 6 deletions(-)","diff":"diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c\nindex b3a21418f511..a7e84292af50 100644\n--- a/drivers/net/ethernet/broadcom/bcmsysport.c\n+++ b/drivers/net/ethernet/broadcom/bcmsysport.c\n@@ -32,13 +32,13 @@\n #define BCM_SYSPORT_IO_MACRO(name, offset) \\\n static inline u32 name##_readl(struct bcm_sysport_priv *priv, u32 off)\t\\\n {\t\t\t\t\t\t\t\t\t\\\n-\tu32 reg = __raw_readl(priv->base + offset + off);\t\t\\\n+\tu32 reg = readl_relaxed(priv->base + offset + off);\t\t\\\n \treturn reg;\t\t\t\t\t\t\t\\\n }\t\t\t\t\t\t\t\t\t\\\n static inline void name##_writel(struct bcm_sysport_priv *priv,\t\t\\\n \t\t\t\t  u32 val, u32 off)\t\t\t\\\n {\t\t\t\t\t\t\t\t\t\\\n-\t__raw_writel(val, priv->base + offset + off);\t\t\t\\\n+\twritel_relaxed(val, priv->base + offset + off);\t\t\t\\\n }\t\t\t\t\t\t\t\t\t\\\n \n BCM_SYSPORT_IO_MACRO(intrl2_0, SYS_PORT_INTRL2_0_OFFSET);\n@@ -59,14 +59,14 @@ static inline u32 rdma_readl(struct bcm_sysport_priv *priv, u32 off)\n {\n \tif (priv->is_lite && off >= RDMA_STATUS)\n \t\toff += 4;\n-\treturn __raw_readl(priv->base + SYS_PORT_RDMA_OFFSET + off);\n+\treturn readl_relaxed(priv->base + SYS_PORT_RDMA_OFFSET + off);\n }\n \n static inline void rdma_writel(struct bcm_sysport_priv *priv, u32 val, u32 off)\n {\n \tif (priv->is_lite && off >= RDMA_STATUS)\n \t\toff += 4;\n-\t__raw_writel(val, priv->base + SYS_PORT_RDMA_OFFSET + off);\n+\twritel_relaxed(val, priv->base + SYS_PORT_RDMA_OFFSET + off);\n }\n \n static inline u32 tdma_control_bit(struct bcm_sysport_priv *priv, u32 bit)\n@@ -110,10 +110,10 @@ static inline void dma_desc_set_addr(struct bcm_sysport_priv *priv,\n \t\t\t\t     dma_addr_t addr)\n {\n #ifdef CONFIG_PHYS_ADDR_T_64BIT\n-\t__raw_writel(upper_32_bits(addr) & DESC_ADDR_HI_MASK,\n+\twritel_relaxed(upper_32_bits(addr) & DESC_ADDR_HI_MASK,\n \t\t     d + DESC_ADDR_HI_STATUS_LEN);\n #endif\n-\t__raw_writel(lower_32_bits(addr), d + DESC_ADDR_LO);\n+\twritel_relaxed(lower_32_bits(addr), d + DESC_ADDR_LO);\n }\n \n static inline void tdma_port_write_desc_addr(struct bcm_sysport_priv *priv,\n","prefixes":["net-next","v2","1/4"]}