From patchwork Fri Feb 8 07:12:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 1038489 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ZB3722MH"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43wmbx0vZvz9sMM for ; Fri, 8 Feb 2019 18:13:00 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726351AbfBHHM6 (ORCPT ); Fri, 8 Feb 2019 02:12:58 -0500 Received: from mail-wr1-f66.google.com ([209.85.221.66]:40307 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726004AbfBHHM6 (ORCPT ); Fri, 8 Feb 2019 02:12:58 -0500 Received: by mail-wr1-f66.google.com with SMTP id q1so2395288wrp.7 for ; Thu, 07 Feb 2019 23:12:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:cc:message-id:date:user-agent:mime-version :content-language:content-transfer-encoding; bh=qYEKRh+5U+xYOHiOa4q6g6PDeTLSrzbe+iEXmdLA0Vc=; b=ZB3722MHHifwSfbGddYG3nBTopR86FElrC6E8CwDKbPb8p8770RTEBow8t1j9+nejj Czgt3QOWmu3T3fwfAMz7+VIEfTNkDs/fJ4Ce/yF6nUDzCOcA1Z6WQxdwyjguqZlLfwX2 /cys27Db8biibONvtBhldl364zULEC0hBCzdWoYU9+LRmqmFXLPug+wTmsHWSg8qx7SC D7EJBQTQusfzanf9rvjfR/hAkhQxGIwaMuBzDhLJFg/TIo5HgzFSKpli5mstlrJtaVhh sGNkVgEp5ZGxAwCJ+Xyoq2jVRsDVzYbm5U4WqddO8if4rKi5Vb0dn/ZP+LL4SCWZLKbG TVFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=qYEKRh+5U+xYOHiOa4q6g6PDeTLSrzbe+iEXmdLA0Vc=; b=El/dw+Nlrt2sEyPnxuf19kgaKHNOTO8YMS4CxWFLjY/IF5v0LsByUFqVSZYck6aK6B FfpuIAbwxOXbAyGrwWi3sRY5YlnLm6+VpLt1fhcS9QdjepS87GfklLqp+oEY/K6gvET5 tGPf4krfwG+GVXwOMN5UeGGdoG7NuHisl1GXAhfwVJjDLyMjKVpG079fSfD2Xbdc3B7n 7G8KU20IfrGlthLLcls8f08a5y0w4t4/LtRlCJyp40qHKIMXwkmRVg8MIc7YyV78EADV D6ASBs7zork8GQT7oiiz+vnIjY4q6A5HN7jMtzgjlEuNPZAJ/X1nTsND6Qi6j3CBMJrA bqmA== X-Gm-Message-State: AHQUAuYADAaNsM6AvEExmlDvhZRutr+8VFu+1pUdEi4LxcMnW6or349F Aq5qyhoZJoW67pL5fwFWnTDEc7gN X-Google-Smtp-Source: AHgI3IZMEnuCsdQ2bLubfJb1U0RQUawa9+gHdFzTxj3WxxKuSj3/yIxStFgP2Cy8+DLx9JPjUgotWg== X-Received: by 2002:a5d:5148:: with SMTP id u8mr12416775wrt.75.1549609976594; Thu, 07 Feb 2019 23:12:56 -0800 (PST) Received: from ?IPv6:2003:ea:8bf1:e200:5dc:ab9e:d930:1619? (p200300EA8BF1E20005DCAB9ED9301619.dip0.t-ipconnect.de. [2003:ea:8bf1:e200:5dc:ab9e:d930:1619]) by smtp.googlemail.com with ESMTPSA id 2sm3665211wrg.89.2019.02.07.23.12.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Feb 2019 23:12:55 -0800 (PST) From: Heiner Kallweit Subject: [PATCH net-next] net: phy: disregard "Clause 22 registers present" bit in get_phy_c45_devs_in_pkg To: Andrew Lunn , Florian Fainelli , David Miller Cc: "netdev@vger.kernel.org" Message-ID: <47ec59c0-27c0-32e3-c75e-7bdfa99551c9@gmail.com> Date: Fri, 8 Feb 2019 08:12:47 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0 MIME-Version: 1.0 Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Bit 0 in register 1.5 doesn't represent a device but is a flag that Clause 22 registers are present. Therefore disregard this bit when populating the device list. If code needs this information it should read register 1.5 directly instead of accessing the device list. Because this bit doesn't represent a device I didn't add a MDIO_MMD_C22PRESENT constant or similar. Signed-off-by: Heiner Kallweit --- drivers/net/phy/phy_device.c | 3 ++- include/uapi/linux/mdio.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index 9369e1323..c2316a117 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -682,7 +682,8 @@ static int get_phy_c45_devs_in_pkg(struct mii_bus *bus, int addr, int dev_addr, phy_reg = mdiobus_read(bus, addr, reg_addr); if (phy_reg < 0) return -EIO; - *devices_in_package |= (phy_reg & 0xffff); + /* Bit 0 doesn't represent a device, it indicates c22 regs presence */ + *devices_in_package |= (phy_reg & 0xfffe); return 0; } diff --git a/include/uapi/linux/mdio.h b/include/uapi/linux/mdio.h index 2e6e309f0..0e012b168 100644 --- a/include/uapi/linux/mdio.h +++ b/include/uapi/linux/mdio.h @@ -115,6 +115,7 @@ /* Device present registers. */ #define MDIO_DEVS_PRESENT(devad) (1 << (devad)) +#define MDIO_DEVS_C22PRESENT MDIO_DEVS_PRESENT(0) #define MDIO_DEVS_PMAPMD MDIO_DEVS_PRESENT(MDIO_MMD_PMAPMD) #define MDIO_DEVS_WIS MDIO_DEVS_PRESENT(MDIO_MMD_WIS) #define MDIO_DEVS_PCS MDIO_DEVS_PRESENT(MDIO_MMD_PCS)