From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,net-next,06/21] net: usb: aqc111: Introduce link management From: Andrew Lunn Message-Id: <20181114211643.GF32305@lunn.ch> Date: Wed, 14 Nov 2018 22:16:43 +0100 To: Igor Russkikh Cc: "David S . Miller" , "linux-usb@vger.kernel.org" , "netdev@vger.kernel.org" , Dmitry Bezrukov List-ID: PiA+IFRoYXRzIGFnYWluIGJlY2F1c2Ugb2YgdGhpcyBwcm9kdWN0IGhhcyB0aWdodGx5IGludGVn cmF0ZWQgTUFDK1BoeS4KPiA+IE1BQyBGVyBjb250cm9scyBzeXN0ZW0gaW50ZXJmYWNlIGFuZCBy ZXBvcnRzL2FsdGVycyBsaW5rIHN0YXRlCj4gPiBhcyBhIGpvaW50IHN0YXRlIG9uIGNvcHBlciBh bmQgU0lGIChldmVuIGluIGRwYSBkaXJlY3QgcGh5IG1vZGUpLgo+ID4gCj4gPiBXZSBjYW4ndCBl eHRyYWN0IHBoeSBhcGkgaW50byBhIHN0YW5kYWxvbmUgZnVsbHkgZnVuY3Rpb25hbCBwaHlsaWIg dGhlcmVmb3JlLgo+ID4gQWxzbyBhcyBmYXIgYXMgSSBrbm93IHRoaXMgcGFydGljdWxhciBwaHkg aXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgd2lsZC4KPiAKPiBTbyB0aGUgcG9pbnQgaXMgdGhhdCBN QUMgZmlybXdhcmUgaXMgbWFuYWdpbmcgU0VSREVTIGFuZCBzeXN0ZW0gaW50ZXJmYWNlIGxpbmsu CgpMaW51eCBjYW4gbWFuYWdlIHRoYXQgU0VSREVTIGxpbmsgYmV0d2VlbiB0aGUgTUFDIGFuZCB0 aGUgUEhZLiBUaGVyZQphcmUgdHdvIHdheXMgdGhpcyBjYW4gZ286CgoxKSBZb3UgdXNlIHBoeWxp Yi4gV2hlbiB0aGUgUEhZIHJlcG9ydHMgbGluaywgdGhlIGFkanVzdF9saW5rIGNhbGxiYWNrCmlu IHRoZSBNQUMgaXMgY2FsbGVkLiBUaGUgcGh5ZGV2IHN0cnVjdHVyZSBjb250YWlucyBpbmZvcm1h dGlvbiBhYm91dApob3cgeW91IHNob3VsZCBjb25maWd1cmUgdGhlIFNFUkRFUywgU0dNSUksIDI1 MDBCYXNlLVgsIDUwMDBCYXNlLVguIEl0CndvcmtzLCBidXQgaXQgaXMgbm90IHNvIG5pY2UuCgoy KSBwaHlsaW5rIGdpdmVzIHlvdSBhIG11Y2ggbmljZXIgQVBJIHRvIGRvIHRoZSBzYW1lLiBBZ2Fp biwgdGhlIFBIWQpyZXBvcnRzIHRoZSBsaW5rIGlzIHVwLiBwaHlsaW5rIHdpbGwgdGhlbiB0ZWxs IHRoZSBNQUMgaG93IHRvCmNvbmZpZ3VyZSBpdHMgZW5kIG9mIHRoZSBTRVJERVMuIFRoZSBwcm9i bGVtIHdpdGggcGh5bGluayBpcyB0aGF0IGl0CmV4cGVjdHMgYSBEVCBidWlsZGluZy4gWW91IGRv bid0IGhhdmUgdGhhdCwgc2luY2UgdGhpcyBpcyBhIFVTQgpkZXZpY2UuIEJ1dCB5b3UgYWxzbyBk b24ndCBuZWVkIGEgbG90IG9mIHRoZSBmZWF0dXJlcyBvZiBwaHlsaW5rIGxpa2UKU0ZQcywgdGhl IGkyYyBidXMgZm9yIHRoZSBTRlBzLCBHUElPcyBldGMuIFNvIGl0IHNob3VsZCBub3QgYmUgdG8g aGFyZAp0byBtYWtlIHRoaXMgd29yayB3aXRob3V0IGRldmljZSB0cmVlLgoKQnkgdXNpbmcgY29y ZSBsaW51eCBjb2RlLCB3ZSBhdm9pZCBidWdzIGluIGZpcm13YXJlIHdoaWNoIG5vYm9keSBjYW4K Zml4LiBUaGUgTGludXggY29yZSBjb2RlIHNob3VsZCBiZSB3ZWxsIHRlc3RlZCBhbmQgc3VwcG9y dGVkLCBidXQKcGh5bGluayBpcyByYXRoZXIgbmV3LCBzbyBtaWdodCBzdGlsbCBoYXZlIHNvbWUg Y29ybmVyIGNhc2VzLgoKSSBhbHNvIGNhbm5vdCBpbWFnaW5nIHBhcnRzIG9mIHRoZSBQSFkgZHJp dmVyIHdpbGwgbm90IGJlIHJlLXVzYWJsZQpmb3Igb3RoZXIgQXF1YW50aWEgUEhZcy4gSSBoYXZl IGEgYm9hcmQgd2l0aCBhbiBBUUNTMTA5IHVuZGVyIG15IGRlc2sKd2FpdGluZyBmb3IgbWUgdG8g ZG8gc29tZXRoaW5nIHdpdGggaXQuIEkgcmVhbGx5IHdvdWxkIGxpa2UgYSBiZXR0ZXIKUEhZIGRy aXZlciBmb3IgaXQgdGhhbiB0aGUga2VybmVsIGN1cnJlbnRseSBoYXMuIEhvcGVmdWxseSB0aGVy ZSBpcwpzb21lIGNvZGUgcmV1c2UgcG9zc2liaWxpdGllcyBoZXJlLgoKICAgICBBbmRyZXcK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Lunn Subject: Re: [PATCH v2 net-next 06/21] net: usb: aqc111: Introduce link management Date: Wed, 14 Nov 2018 22:16:43 +0100 Message-ID: <20181114211643.GF32305@lunn.ch> References: <20181113205845.GB9828@lunn.ch> <6a92f825-576e-3826-66c7-791304661174@aquantia.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "David S . Miller" , "linux-usb@vger.kernel.org" , "netdev@vger.kernel.org" , Dmitry Bezrukov To: Igor Russkikh Return-path: Received: from vps0.lunn.ch ([185.16.172.187]:34903 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725756AbeKOHVj (ORCPT ); Thu, 15 Nov 2018 02:21:39 -0500 Content-Disposition: inline In-Reply-To: <6a92f825-576e-3826-66c7-791304661174@aquantia.com> Sender: netdev-owner@vger.kernel.org List-ID: > > Thats again because of this product has tightly integrated MAC+Phy. > > MAC FW controls system interface and reports/alters link state > > as a joint state on copper and SIF (even in dpa direct phy mode). > > > > We can't extract phy api into a standalone fully functional phylib therefore. > > Also as far as I know this particular phy is not available in the wild. > > So the point is that MAC firmware is managing SERDES and system interface link. Linux can manage that SERDES link between the MAC and the PHY. There are two ways this can go: 1) You use phylib. When the PHY reports link, the adjust_link callback in the MAC is called. The phydev structure contains information about how you should configure the SERDES, SGMII, 2500Base-X, 5000Base-X. It works, but it is not so nice. 2) phylink gives you a much nicer API to do the same. Again, the PHY reports the link is up. phylink will then tell the MAC how to configure its end of the SERDES. The problem with phylink is that it expects a DT building. You don't have that, since this is a USB device. But you also don't need a lot of the features of phylink like SFPs, the i2c bus for the SFPs, GPIOs etc. So it should not be to hard to make this work without device tree. By using core linux code, we avoid bugs in firmware which nobody can fix. The Linux core code should be well tested and supported, but phylink is rather new, so might still have some corner cases. I also cannot imaging parts of the PHY driver will not be re-usable for other Aquantia PHYs. I have a board with an AQCS109 under my desk waiting for me to do something with it. I really would like a better PHY driver for it than the kernel currently has. Hopefully there is some code reuse possibilities here. Andrew