Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp1848582ybk; Mon, 11 May 2020 05:55:09 -0700 (PDT) X-Google-Smtp-Source: APiQypLaBcoiTG0t4D22iCD9kYVAVfRLzdAay77t/icoPAiX4yyDwA69KnjChaKxJrt6EoIyvtlD X-Received: by 2002:a17:906:bc4c:: with SMTP id s12mr4851969ejv.285.1589201709661; Mon, 11 May 2020 05:55:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589201709; cv=none; d=google.com; s=arc-20160816; b=loTAShMpSHv+jINU/7G5hL0qsexXJAtgD2Do3V1LGwAT/U+xgPEEf/CVgUUIkT6a7W qocyHA7pjyYSpVxeRa4ebdm3Ci/+RoP98/YNbjROCVlOGb/vdWPHuLHK16uec1fw1IOV V8D0vlF36DrbVc3ZpY1TibKxALQbuDERXhYif/qNzpkm1anONQ9JMadfvxVmjDgmPq4N K4u+cnI+r2vsfOdMZ9uoiK49Q7+sHS7jKZ+Cs34Ib/h6VXChAmFXkA2GsoEG8DbQEWci 33L+ecJfRPqpSJTBanyt16Kd3+wDw15fO2pdIblks946HOUgrZSU1SPzY+i3ZukaLLtd N7qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=UCjERt+maORMJwlHX05z+ypjOJgAfE49qXX7mxNSNHc=; b=NQvRyZF6cUjgos1iRMM4GBN1T/Mreo52CQLzdRPtUdtCLTBWoVcxvNnPDzzZ2A/0EE Ji+LEhOE8EsTUS03KE9ulwSgANOPdClnh2xT249qh8Imevb3iXBHYykS3gY8CaYzUCd1 p6zFYE0pRyVTpsY7kAGCr/l3Hpv0dKy/yqBScpbU+icuEXCN+SAlfuQaM4XGKu6PglNG U70uHgG9+KVs3sjvnOTai+/V204x3qOUq1PRnlgSfuhmIhNzqyket1bGq8zoVUz4uckT xpjAHZGLimiTNAsWL0/gALofZ1O56hNbK1aGmi8mpjDGrHtxkiNBug8hXVfj3cPSj2ts jAtQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@lunn.ch header.s=20171124 header.b=lYPYuNsq; 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 n8si801756ejy.388.2020.05.11.05.54.45; Mon, 11 May 2020 05:55:09 -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=fail header.i=@lunn.ch header.s=20171124 header.b=lYPYuNsq; 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 S1728090AbgEKMxZ (ORCPT + 99 others); Mon, 11 May 2020 08:53:25 -0400 Received: from vps0.lunn.ch ([185.16.172.187]:53402 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726891AbgEKMxY (ORCPT ); Mon, 11 May 2020 08:53:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lunn.ch; s=20171124; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=UCjERt+maORMJwlHX05z+ypjOJgAfE49qXX7mxNSNHc=; b=lYPYuNsqZF2PI5lTSomAC3i5Eq GaTSHIVKs+8UyVTVrO+sgqPtlyglYPKA7Zc6xhtKlQfsFxEMbHHzt0kq/Sb542KSkL9GxetKcUR61 z+RdHrnObgpc3s2OYXcus3QY1TGfX/h7TvLPK+0c25p9Bq8ifqnnEgtUuJMGlzBXX4T0=; Received: from andrew by vps0.lunn.ch with local (Exim 4.93) (envelope-from ) id 1jY7vn-001qt8-R0; Mon, 11 May 2020 14:53:15 +0200 Date: Mon, 11 May 2020 14:53:15 +0200 From: Andrew Lunn To: Calvin Johnson Cc: Jeremy Linton , Andy Shevchenko , "Rafael J . Wysocki" , Russell King - ARM Linux admin , linux.cj@gmail.com, Florian Fainelli , Cristi Sovaiala , Florin Laurentiu Chiculita , Ioana Ciornei , Madalin Bucur , Greg Kroah-Hartman , Heikki Krogerus , Varun Sethi , "Rajesh V . Bikkina" , ACPI Devel Maling List , Linux Kernel Mailing List , Diana Madalina Craciun , netdev , Marcin Wojtas , Laurentiu Tudor , Makarand Pawagi , linux-arm Mailing List , Pankaj Bansal , "David S. Miller" , Heiner Kallweit Subject: Re: [net-next PATCH v3 4/5] net: phy: Introduce fwnode_get_phy_id() Message-ID: <20200511125315.GB409897@lunn.ch> References: <20200505132905.10276-1-calvin.johnson@oss.nxp.com> <20200505132905.10276-5-calvin.johnson@oss.nxp.com> <67e263cf-5cd7-98d1-56ff-ebd9ac2265b6@arm.com> <83ab4ca4-9c34-4cdd-4413-3b4cdf96727d@arm.com> <20200508160755.GB10296@lsv03152.swis.in-blr01.nxp.com> <20200508181301.GF298574@lunn.ch> <20200511055231.GA12725@lsv03152.swis.in-blr01.nxp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200511055231.GA12725@lsv03152.swis.in-blr01.nxp.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 11, 2020 at 11:22:31AM +0530, Calvin Johnson wrote: > Thanks Andrew and Jeremy for the detailed discussion! > > On Fri, May 08, 2020 at 08:13:01PM +0200, Andrew Lunn wrote: > > > > It does have a numeric version defined for EISA types. OTOH I suspect that > > > > your right. If there were a "PHY\VEN_IDvvvv&ID_DDDD" definition, it may not > > > > be ideal to parse it. Instead the normal ACPI model of exactly matching the > > > > complete string in the phy driver might be more appropriate. > > > > > > IMO, it should be fine to parse the string to extract the phy_id. Is there any > > > reason why we cannot do this? > > > > Some background here, about what the PHY core does. > > > > PHYs have two ID registers. This contains vendor, device, and often > > revision of the PHY. Only the vendor part is standardised, vendors can > > decide how to use the device part, but it is common for the lowest > > nibble to be revision. The core will read these ID registers, and then > > go through all the PHY drivers registered and ask them if they support > > this ID. The drivers provide a table of IDs and masks. The mask is > > applied, and then if the ID matches, the driver is used. The mask > > allows the revision to be ignored, etc. > > > > There is a very small number of devices where the vendor messed up, > > and did not put valid contents in the ID registers. In such cases, we > > can read the IDs from device tree. These are then used in exactly the > > same way as if they were read from the device. > > > > If you want the ACPI model to be used, an exact match on the string, > > you are going to have to modify the core and the drivers. They > > currently don't have any string, and have no idea about different > > revisions which are out in the wild. > > I don't think ACPI mandates that OS driver use exact string match and not parse > the string. > > First of all, I would suggest that we use "compatible" property instead of _CID. > Not sure of a reason why we cannot. This will simplify implementation of fwnode > APIs. > > Already I've pointed out couple of ASL files in tianocore where they are already > used. > one eg:https://github.com/tianocore/edk2-platforms/blob/master/Silicon/Marvell/Armada7k8k/AcpiTables/Armada80x0McBin/Dsdt.asl#L280 > > Even if we use _CID, I'm not sure we are prohibited from extracting characters > (phy_id) from it. > If we decide to use _CID, then we need to define somewhere and standardize > exactly how we are going to use it. I'm not sure where we can do this. Hi Calvin Whatever is decided needs to be documented as it becomes a defacto standard. Once this is in the Linux PHY core, that is how it is done for all boards using ACPI. Maybe sometime in the future when the ACPI standards committee definitively defines how this should be done, we can add a second implementation which is standards conformant. Andrew