From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Lunn Subject: Re: [PATCH] optoe: driver to read/write SFP/QSFP EEPROMs Date: Tue, 12 Jun 2018 20:11:09 +0200 Message-ID: <20180612181109.GD12251@lunn.ch> References: <20180611042515.ml6zbcmz6dlvjmrp@thebollingers.org> <496e06b9-9f02-c4ae-4156-ab6221ba23fd@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Don Bollinger , Arnd Bergmann , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, brandon_chuang@edge-core.com, wally_wang@accton.com, roy_lee@edge-core.com, rick_burchett@edge-core.com, quentin.chang@quantatw.com, jeffrey.townsend@bitswitch.com, scotte@cumulusnetworks.com, roopa@cumulusnetworks.com, David Ahern , luke.williams@canonical.com, Guohan Lu , Russell King , "netdev@vger.kernel.org" To: Tom Lendacky Return-path: Content-Disposition: inline In-Reply-To: <496e06b9-9f02-c4ae-4156-ab6221ba23fd@amd.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org > There's an SFP driver under drivers/net/phy. Can that driver be extended > to provide this support? Adding Russel King who developed sfp.c, as well > at the netdev mailing list. I agree, the current SFP code should be used. My observations seem to be there are two different ways {Q}SFP are used: 1) The Linux kernel has full control, as assumed by the devlink/SFP frame work. We parse the SFP data to find the capabilities of the SFP and use it to program the MAC to use the correct mode. The MAC can be a NIC, but it can also be a switch. DSA is gaining support for PHYLINK, so SFP modules should just work with most switches which DSA support. And there is no reason a plain switchdev switch can not use PHYLINK. 2) Firmware is in control of the PHY layer, but there is a wish to expose some of the data which is available via i2c from the {Q}SFP to linux. It appears this optoe supports this second case. It does not appear to support any in kernel API to actually make use of the SFP data in the kernel. We should not be duplicating code. We should share the SFP code for both use cases above. There is also a Linux standard API for getting access to this information. ethtool -m/--module-info. Anything which is exporting {Q}SFP data needs to use this API. Andrew