Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/807297/?format=api
{ "id": 807297, "url": "http://patchwork.ozlabs.org/api/patches/807297/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/1504038918-49254-5-git-send-email-f.fainelli@gmail.com/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api", "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-5-git-send-email-f.fainelli@gmail.com>", "list_archive_url": null, "date": "2017-08-29T20:35:18", "name": "[net-next,v2,4/4] net: phy: mdio-bcm-unimac: Use correct I/O accessors", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "46d2bae3b15ee380a0d34aee9a0fe1e968eccfab", "submitter": { "id": 2800, "url": "http://patchwork.ozlabs.org/api/people/2800/?format=api", "name": "Florian Fainelli", "email": "f.fainelli@gmail.com" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/1504038918-49254-5-git-send-email-f.fainelli@gmail.com/mbox/", "series": [ { "id": 470, "url": "http://patchwork.ozlabs.org/api/series/470/?format=api", "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/807297/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/807297/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=\"mTdrYsvR\"; dkim-atps=neutral" ], "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xhgXT1pL6z9s9Y\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 30 Aug 2017 06:41:29 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751725AbdH2Ul1 (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 29 Aug 2017 16:41:27 -0400", "from mail-qk0-f195.google.com ([209.85.220.195]:32893 \"EHLO\n\tmail-qk0-f195.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751607AbdH2UlZ (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Tue, 29 Aug 2017 16:41:25 -0400", "by mail-qk0-f195.google.com with SMTP id k126so486410qkb.0\n\tfor <netdev@vger.kernel.org>; Tue, 29 Aug 2017 13:41:25 -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.21\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tTue, 29 Aug 2017 13:41:23 -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=dT/wcd5dWnD6KRKqbd3Tyheq+dF05CxxysuYmldySFk=;\n\tb=mTdrYsvRPmMKNDnvgQlNLIEKIubJDxA4XOxFXYICvvy8ogJSohA7y50WPHjcAukL1O\n\tL5HhEXG9XLPQZC42j0iwZb/b5LTYOq1NjyDsZFCBi5bQaMMbYEf14ov+bzFLHYfzoGGH\n\tbfxPcAU5qTm3E/mRkEZP3XgMbce0NKsWazg2vaIXslZABfOMiUZTR3LvWwO4gz9LkKUx\n\truaADc0zetdvAfE4n4uONc98PH0nzqVPPaIh0wMmnNrgCBrDZON0+DUVaUYjuC/JvMKJ\n\tP/JgSQE+H9tavtr4UWZwh5bXrn2M/XOVo31E2btPpsmreai2WdaIxlMsu/nIiRYpL2mj\n\tgeAw==", "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=dT/wcd5dWnD6KRKqbd3Tyheq+dF05CxxysuYmldySFk=;\n\tb=p9wpblLsP+NGuOcaGDVqwKIxOiQil1oYVEX7npKCKpJQsuzKZ/BT6AkgdmTV543yfZ\n\tyVqCel9udnimfxbSUr61bGsKt6vysS7vnAu5U+Pb3BYH2uGjhf9255bIUW0RO5a65/Mr\n\tDrOz9TaGaDV6FIM9Umd4FiS+ZwQje23UlI1vw0Ngwgx6hAX/MwxnPEvGVaxf1hfePIQB\n\tHOjlRGSkIr1nu6f6k2EG4qUFqOs9LU/qG6O7wDxqqAgPnWprIBXbBfkm3OQp0PF7Mh8V\n\tj0mTk/f019YQKax8OKkCHoVt72FV9j6NSljBQUuAUQPBs0l/o9/VXY87uRc9y3hADttD\n\tTt5Q==", "X-Gm-Message-State": "AHYfb5hTQH/o+VVEo5ucwGtqTRKCtET8lgm/+khrnXLaGTiPre3+CTY+\n\tSCLL8ocJxaUUKy5W8+g=", "X-Received": "by 10.55.159.134 with SMTP id i128mr7385466qke.80.1504039284309; \n\tTue, 29 Aug 2017 13:41:24 -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 4/4] net: phy: mdio-bcm-unimac: Use correct I/O\n\taccessors", "Date": "Tue, 29 Aug 2017 13:35:18 -0700", "Message-Id": "<1504038918-49254-5-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 driver currently uses __raw_{read,write}l which works for all\nplatforms supported: Broadcom MIPS LE/BE (native endian), ARM LE (native\nendian) but not ARM BE (registers are still LE). Switch to using the\nproper accessors for all platforms and explain why Broadcom MIPS BE is\nspecial here, in doing so, we introduce a couple of helper functions to\nabstract these differences.\n\nSigned-off-by: Florian Fainelli <f.fainelli@gmail.com>\n---\n drivers/net/phy/mdio-bcm-unimac.c | 32 ++++++++++++++++++++++++++------\n 1 file changed, 26 insertions(+), 6 deletions(-)", "diff": "diff --git a/drivers/net/phy/mdio-bcm-unimac.c b/drivers/net/phy/mdio-bcm-unimac.c\nindex 73c5267a11fd..08e0647b85e2 100644\n--- a/drivers/net/phy/mdio-bcm-unimac.c\n+++ b/drivers/net/phy/mdio-bcm-unimac.c\n@@ -47,18 +47,38 @@ struct unimac_mdio_priv {\n \tvoid\t\t\t*wait_func_data;\n };\n \n+static inline u32 unimac_mdio_readl(struct unimac_mdio_priv *priv, u32 offset)\n+{\n+\t/* MIPS chips strapped for BE will automagically configure the\n+\t * peripheral registers for CPU-native byte order.\n+\t */\n+\tif (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN))\n+\t\treturn __raw_readl(priv->base + offset);\n+\telse\n+\t\treturn readl_relaxed(priv->base + offset);\n+}\n+\n+static inline void unimac_mdio_writel(struct unimac_mdio_priv *priv, u32 val,\n+\t\t\t\t u32 offset)\n+{\n+\tif (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN))\n+\t\t__raw_writel(val, priv->base + offset);\n+\telse\n+\t\twritel_relaxed(val, priv->base + offset);\n+}\n+\n static inline void unimac_mdio_start(struct unimac_mdio_priv *priv)\n {\n \tu32 reg;\n \n-\treg = __raw_readl(priv->base + MDIO_CMD);\n+\treg = unimac_mdio_readl(priv, MDIO_CMD);\n \treg |= MDIO_START_BUSY;\n-\t__raw_writel(reg, priv->base + MDIO_CMD);\n+\tunimac_mdio_writel(priv, reg, MDIO_CMD);\n }\n \n static inline unsigned int unimac_mdio_busy(struct unimac_mdio_priv *priv)\n {\n-\treturn __raw_readl(priv->base + MDIO_CMD) & MDIO_START_BUSY;\n+\treturn unimac_mdio_readl(priv, MDIO_CMD) & MDIO_START_BUSY;\n }\n \n static int unimac_mdio_poll(void *wait_func_data)\n@@ -87,7 +107,7 @@ static int unimac_mdio_read(struct mii_bus *bus, int phy_id, int reg)\n \n \t/* Prepare the read operation */\n \tcmd = MDIO_RD | (phy_id << MDIO_PMD_SHIFT) | (reg << MDIO_REG_SHIFT);\n-\t__raw_writel(cmd, priv->base + MDIO_CMD);\n+\tunimac_mdio_writel(priv, cmd, MDIO_CMD);\n \n \t/* Start MDIO transaction */\n \tunimac_mdio_start(priv);\n@@ -96,7 +116,7 @@ static int unimac_mdio_read(struct mii_bus *bus, int phy_id, int reg)\n \tif (ret)\n \t\treturn ret;\n \n-\tcmd = __raw_readl(priv->base + MDIO_CMD);\n+\tcmd = unimac_mdio_readl(priv, MDIO_CMD);\n \n \t/* Some broken devices are known not to release the line during\n \t * turn-around, e.g: Broadcom BCM53125 external switches, so check for\n@@ -118,7 +138,7 @@ static int unimac_mdio_write(struct mii_bus *bus, int phy_id,\n \t/* Prepare the write operation */\n \tcmd = MDIO_WR | (phy_id << MDIO_PMD_SHIFT) |\n \t\t(reg << MDIO_REG_SHIFT) | (0xffff & val);\n-\t__raw_writel(cmd, priv->base + MDIO_CMD);\n+\tunimac_mdio_writel(priv, cmd, MDIO_CMD);\n \n \tunimac_mdio_start(priv);\n \n", "prefixes": [ "net-next", "v2", "4/4" ] }