From patchwork Mon Dec 19 15:05:37 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 707117 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3tj44c75Rdz9vDV for ; Tue, 20 Dec 2016 02:06:24 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=baylibre-com.20150623.gappssmtp.com header.i=@baylibre-com.20150623.gappssmtp.com header.b="RFZHaemr"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933051AbcLSPGG (ORCPT ); Mon, 19 Dec 2016 10:06:06 -0500 Received: from mail-wm0-f54.google.com ([74.125.82.54]:38060 "EHLO mail-wm0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932402AbcLSPGB (ORCPT ); Mon, 19 Dec 2016 10:06:01 -0500 Received: by mail-wm0-f54.google.com with SMTP id f82so103728075wmf.1 for ; Mon, 19 Dec 2016 07:06:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=cPBnYatje3MemgdDTY5YoWxogBLq808togh1OV8WKaY=; b=RFZHaemruGNqnAq1xtBPbteEviIIT2zQjNo06Xu5QN9hyt3aHdM37yPZhXUu6tBzeA j1v0edllLoHdfSEllOw7wDpfr68EFbIn/GgqXLEw0JRzaO9pB6CEa4maI2mMfPSvagH6 Lc9WqcZXeStiWMKh9wWKcYLPy2amS9bkKlyMWO6eZAJpkzVWP5BybXmBgpJPRpAJ7Stt NWU6HHQAGuf4YABz+bDQUsOu518SAjqJFdmkM13byOBp1d4mgp88TmA1GMkdYahIY8Xx 7ZcNyJNdrzf01rdeo9QH017JwVXnv8+6PiEA9NwQcHtnyMy+s+N9bdt8kTdXvuhTG0xz eFLg== 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; bh=cPBnYatje3MemgdDTY5YoWxogBLq808togh1OV8WKaY=; b=jSl62uYyPWSU+xQtZYvnXacMA2CNfqJpEB62obdOYKHiMpKL2ADgQWk1ZSeT8RBFHs w5Bm6OLq2Qb9a5uTXIyHhNo5CLGWoBGlcbHIOYqaxD+SqSnlPmW2Yr5QIbL37yL4prKS PW94gFhPFbrSviBBIGOOYJxnYWu0Jngm/nf7+iAAB1Lwny+bC5HEVr/LJQHvdba6ZHBp fisGu5xGCA4xPXN2KhyFg2HOPZ0kC/QgWcC50J2nyDCZX5QFuxC0PpWP6CF8OwIwnA3H Tzx793O13rXiAthxtzPhKNsuuZUcNT7d+MhW5NCp+VWNpwBTz072g94blRiqWiSAXlDy 71Aw== X-Gm-Message-State: AIkVDXJXJF2f7Q2vax/5HAXwGH9UNzdMfEM/4ze/uDSDzyUn3B9Q+77i2jzn8E9xGTrOPrjn X-Received: by 10.28.47.15 with SMTP id v15mr14419992wmv.76.1482159950158; Mon, 19 Dec 2016 07:05:50 -0800 (PST) Received: from boomer.localdomain ([90.63.244.31]) by smtp.googlemail.com with ESMTPSA id v2sm21046655wja.41.2016.12.19.07.05.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Dec 2016 07:05:49 -0800 (PST) From: Jerome Brunet To: netdev@vger.kernel.org, devicetree@vger.kernel.org, Florian Fainelli Cc: Jerome Brunet , Carlo Caione , Kevin Hilman , Martin Blumenstingl , Andre Roth , Andrew Lunn , Neil Armstrong , linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Yegor Yefremov , =?UTF-8?q?Andreas=20F=C3=A4rber?= Subject: [PATCH net 2/3] net: phy: use boolean dt properties for eee broken modes Date: Mon, 19 Dec 2016 16:05:37 +0100 Message-Id: <1482159938-13239-3-git-send-email-jbrunet@baylibre.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1482159938-13239-1-git-send-email-jbrunet@baylibre.com> References: <1482159938-13239-1-git-send-email-jbrunet@baylibre.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The patches regarding eee-broken-modes was merged before all people involved could find an agreement on the best way to move forward. While we agreed on having a DT property to mark particular modes as broken, the value used for eee-broken-modes mapped the phy register in very direct way. Because of this, the concern is that it could be used to implement configuration policies instead of describing a broken HW. In the end, having a boolean property for each mode seems to be preferred over one bit field value mapping the register (too) directly. Cc: Florian Fainelli Signed-off-by: Jerome Brunet --- drivers/net/phy/phy_device.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index ee5ebadb1463..92b08383cafa 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -1665,7 +1665,7 @@ static void of_set_phy_supported(struct phy_device *phydev) static void of_set_phy_eee_broken(struct phy_device *phydev) { struct device_node *node = phydev->mdio.dev.of_node; - u32 broken; + u32 broken = 0; if (!IS_ENABLED(CONFIG_OF_MDIO)) return; @@ -1673,8 +1673,20 @@ static void of_set_phy_eee_broken(struct phy_device *phydev) if (!node) return; - if (!of_property_read_u32(node, "eee-broken-modes", &broken)) - phydev->eee_broken_modes = broken; + if (of_property_read_bool(node, "eee-broken-100tx")) + broken |= MDIO_EEE_100TX; + if (of_property_read_bool(node, "eee-broken-1000t")) + broken |= MDIO_EEE_1000T; + if (of_property_read_bool(node, "eee-broken-10gt")) + broken |= MDIO_EEE_10GT; + if (of_property_read_bool(node, "eee-broken-1000kx")) + broken |= MDIO_EEE_1000KX; + if (of_property_read_bool(node, "eee-broken-10gkx4")) + broken |= MDIO_EEE_10GKX4; + if (of_property_read_bool(node, "eee-broken-10gkr")) + broken |= MDIO_EEE_10GKR; + + phydev->eee_broken_modes = broken; } /**