Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp3371563pxb; Mon, 1 Nov 2021 12:35:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxaU2PtkKI5aFkq/bf+R1zXbSDzCXcZaOyQPJ5EaS/ak/qyVkIklKnkJcRjwIkc0WqT9u5x X-Received: by 2002:a05:6e02:b2a:: with SMTP id e10mr5491289ilu.186.1635795320105; Mon, 01 Nov 2021 12:35:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635795320; cv=none; d=google.com; s=arc-20160816; b=oWzlleBjePz549x9yeFtKGFjFN6v13DyHKvOn/1rpmFQ1qzNMjtcC08alIQ+BX5dlc s2DCjpixt/giJwTtgAUsC8UgVBFMPLd2WlIjH/nU0mmHA7ajESqDtrsFSl1Qkf+XD/H4 oQP4b1/shlBHxdVBltGlASp6f3nH3dXhCkVYr5FjcBMTj6MI1uneUTzMyiTJW0ExAvM0 emyhw25Zbn8LXalElJ0B5hOCnE/GxI473RVkFojrj5NSN6a6bgIi8V8efqtY9bTwSe/G nwRsnAlbbmmfo8DEQXFwuTcYFcpgMz72ci6GQeIF1DAc2MKV4K1/KxQ/RTx1MADgAViK df+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=8x/WQ9gVs8Xb1wXlf+BUiBeF7va4QTCMKiyuXcRdSQI=; b=bHo2o6Gqg8sIcwa+3oCPE0/2jchMzc2JJf/GjfueQXg7ClP82Oa7zgnFA3XN5kEY+s ITYlUlf73Gx65PuIB1KBqKQLJPidzuT7hIv/hxZxE2etbvr1qr+RXzj23NNuZGHAkz0Y 4OUaHaE0GFuX0NjnTJ4EbO0DI4XAcch2T3NVDU5YmAus3pKBP4FOnjberqJI3QIQk2Zz Pxf0nr97X+bV0BtvKLqsshXq3mOmUONgrptSM63L8n557Db2J5zT7MUZiXnhPNR+zp0I uATsDzMNuWtkPArLzHDg9TfxnivXCd00ZnVj4x6QImMVLDt82o9NZcoEnwrUg2x8CHZZ U5TQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lunn.ch header.s=20171124 header.b=44Veb7J9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y10si13120759iow.26.2021.11.01.12.35.06; Mon, 01 Nov 2021 12:35:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@lunn.ch header.s=20171124 header.b=44Veb7J9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229560AbhKATgm (ORCPT + 99 others); Mon, 1 Nov 2021 15:36:42 -0400 Received: from vps0.lunn.ch ([185.16.172.187]:41864 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229511AbhKATgk (ORCPT ); Mon, 1 Nov 2021 15:36:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lunn.ch; s=20171124; h=In-Reply-To:Content-Disposition:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:From:Sender:Reply-To:Subject: Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Content-Disposition:In-Reply-To:References; bh=8x/WQ9gVs8Xb1wXlf+BUiBeF7va4QTCMKiyuXcRdSQI=; b=44Veb7J9Vn7x0tAwe5nqK3s0HM nr9tWRakPFkXJxDEzEd/mYy41LSNOW/zPk9ztkmxd5uAb0JvX8j5fF6OQl8p5fskKeJTAqMPL08On kcIOtq2x4Nwv0v/fRFNxUqaFCrpBKQtgI+TVhfTcAmj1hRolo9lYyLsaIBa0x2VXreSo=; Received: from andrew by vps0.lunn.ch with local (Exim 4.94.2) (envelope-from ) id 1mhd42-00CKZd-Ps; Mon, 01 Nov 2021 20:33:50 +0100 Date: Mon, 1 Nov 2021 20:33:50 +0100 From: Andrew Lunn To: Grygorii Strashko Cc: "David S. Miller" , netdev@vger.kernel.org, Jakub Kicinski , Heiner Kallweit , Russell King , Florian Fainelli , linux-kernel@vger.kernel.org, Vignesh Raghavendra Subject: Re: [RFC PATCH] net: phy/mdio: enable mmd indirect access through phy_mii_ioctl() Message-ID: References: <20211101182859.24073-1-grygorii.strashko@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20211101182859.24073-1-grygorii.strashko@ti.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 01, 2021 at 08:28:59PM +0200, Grygorii Strashko wrote: > This patch enables access to C22 PHY MMD address space through I'm not sure the terminology is correct here. I think it actually enables access to C45 address space, making use of C45 over C22. > phy_mii_ioctl() SIOCGMIIREG/SIOCSMIIREG IOCTLs. It checks if R/W request is > received with C45 flag enabled while MDIO bus doesn't support C45 and, in > this case, tries to treat prtad as PHY MMD selector and use MMD API. > > With this change it's possible to r/w PHY MMD registers with phytool, for > example, before: > > phytool read eth0/0x1f:0/0x32 > 0xffea > > after: > phytool read eth0/0x1f:0/0x32 > 0x00d1 > @@ -300,8 +300,19 @@ int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd) > prtad = mii_data->phy_id; > devad = mii_data->reg_num; > } > - mii_data->val_out = mdiobus_read(phydev->mdio.bus, prtad, > - devad); > + if (mdio_phy_id_is_c45(mii_data->phy_id) && > + phydev->mdio.bus->probe_capabilities <= MDIOBUS_C22) { > + phy_lock_mdio_bus(phydev); > + > + mii_data->val_out = __mmd_phy_read(phydev->mdio.bus, > + mdio_phy_id_devad(mii_data->phy_id), > + prtad, > + mii_data->reg_num); > + > + phy_unlock_mdio_bus(phydev); > + } else { > + mii_data->val_out = mdiobus_read(phydev->mdio.bus, prtad, devad); > + } The layering look wrong here. You are trying to perform MDIO bus operation here, so it seems odd to perform __mmd_phy_read(). I wonder if it would be cleaner to move C45 over C22 down into the mdiobus_ level API? Andrew