From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0F356C433FE for ; Mon, 11 Apr 2022 09:50:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Date:Message-Id:MIME-Version:Subject:Cc :To:From:References:In-Reply-To:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=I/IuNHBGCilSYLj2jt+f4YHGT4bSEHN61Tzdo0pun90=; b=q4tcz7kvHYacnD BpH6IE3Xjo1phd+fJggZXbvc+06PD5VkspWimevrtDb5T4rLUg/l5TCxBT4r0OmNy3LX975qRMDSp fEDC3wcnSyvluTDFsIjgWZMx07lCAFGSeCTDks5cKP61OKNKLNOi/tCcc5Xkv6Xqh6FrDo6aHnJDh 06eBU+9mdf9EU9DGnZkQu3HmIOTCThT6Ixx5KDFKONIBMbp91O4jtWIuOcMEC7pyY8kNh5Phe6++e xgfpz/Q/vcQ/cF9qGlDYUOaVsY1j9Tap4mPgzsTfa1ldp8mQlP0NwdvGxwMmbN/fYi3ctCMKXa6k6 K/ydyYiy9W/IncX+ATnA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ndqgQ-0082os-UG; Mon, 11 Apr 2022 09:50:06 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:32c8:5054:ff:fe00:142]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ndqcy-0080mk-Dt; Mon, 11 Apr 2022 09:46:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Date:Sender:Message-Id:Content-Type: Content-Transfer-Encoding:MIME-Version:Subject:Cc:To:From:References: In-Reply-To:Reply-To: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=PBUozL5TIxonaPPm3Nh+ChnOYojhIraEKu/Zpweidq8=; b=M6dCV8CgL0eONW2rbti+oomK6B GWDu2gkXKPxrycr//b8wvGNCUpHZB4kCvBFpsnZ5L4KNzPVsPYt7oQPgVX2Aw/0aFT5yGF8wNQfnr 8ya53a/jeyDy8eV2C6eux15IJmGI0ZKP+dfeukJQnBLxFCvCBaWBFb9mxeY3AiahOBstUAyx6NLWy vQWaWJhxpVUn1f/KLUvAxpsQFOwubsBCYzQVIScSqydRLrj/swPF86rk2CTPXo6HIUKIPqwVV8rpu uTE+pDVH7hHKyWfihTMfYdT45s9YsWvp1TjkmDnO5IZNKVBL8IyjtHG9Ax4HaQxCUB2S0BpC73Z1N R19SC6Ew==; Received: from e0022681537dd.dyn.armlinux.org.uk ([fd8f:7570:feb6:1:222:68ff:fe15:37dd]:52870 helo=rmk-PC.armlinux.org.uk) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ndqcu-0000HW-A2; Mon, 11 Apr 2022 10:46:28 +0100 Received: from rmk by rmk-PC.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1ndqct-0055RO-Da; Mon, 11 Apr 2022 10:46:27 +0100 In-Reply-To: References: From: "Russell King (Oracle)" To: Landen Chao , DENG Qingfang , Sean Wang Cc: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Jakub Kicinski , Paolo Abeni , Matthias Brugger , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: [PATCH net-next v2 7/9] net: dsa: mt7530: partially convert to phylink_pcs MIME-Version: 1.0 MIME-Version: 1.0 Content-Disposition: inline Message-Id: Date: Mon, 11 Apr 2022 10:46:27 +0100 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220411_024632_653832_4E3B70D6 X-CRM114-Status: GOOD ( 26.02 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org UGFydGlhbGx5IGNvbnZlcnQgdGhlIG10NzUzMCBkcml2ZXIgdG8gdXNlIHBoeWxpbmsncyBQQ1Mg c3VwcG9ydC4gVGhpcwppcyBhIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gYXMgd2UgZG9uJ3QgbW92 ZSBhbnl0aGluZyBpbnRvIHRoZQpwY3NfY29uZmlnIG1ldGhvZCB5ZXQgLSB0aGlzIGRyaXZlciBz dXBwb3J0cyBTR01JSSBvciAxMDAwQkFTRS1YCndpdGhvdXQgaW4tYmFuZC4KClRlc3RlZC1ieTog TWFyZWsgQmVow7puIDxrYWJlbEBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBSdXNzZWxsIEtp bmcgKE9yYWNsZSkgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPgotLS0KIGRyaXZlcnMvbmV0 L2RzYS9tdDc1MzAuYyB8IDE0NCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0KIGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaCB8ICAyMSArKystLS0KIDIgZmlsZXMgY2hhbmdl ZCwgOTUgaW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZHNhL210NzUzMC5jIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jCmluZGV4IGFhN2Yy MTY4M2EwNy4uMWMwZDkzMTk3M2U1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMw LmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jCkBAIC0yNCw2ICsyNCwxMSBAQAogCiAj aW5jbHVkZSAibXQ3NTMwLmgiCiAKK3N0YXRpYyBzdHJ1Y3QgbXQ3NTN4X3BjcyAqcGNzX3RvX210 NzUzeF9wY3Moc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpCit7CisJcmV0dXJuIGNvbnRhaW5lcl9v ZihwY3MsIHN0cnVjdCBtdDc1M3hfcGNzLCBwY3MpOworfQorCiAvKiBTdHJpbmcsIG9mZnNldCwg YW5kIHJlZ2lzdGVyIHNpemUgaW4gYnl0ZXMgaWYgZGlmZmVyZW50IGZyb20gNCBieXRlcyAqLwog c3RhdGljIGNvbnN0IHN0cnVjdCBtdDc1MzBfbWliX2Rlc2MgbXQ3NTMwX21pYltdID0gewogCU1J Ql9ERVNDKDEsIDB4MDAsICJUeERyb3AiKSwKQEAgLTI1MjEsMTIgKzI1MjYsMTEgQEAgc3RhdGlj IGludCBtdDc1MzFfcmdtaWlfc2V0dXAoc3RydWN0IG10NzUzMF9wcml2ICpwcml2LCB1MzIgcG9y dCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQKLW10NzUzMV9zZ21paV9saW5rX3VwX2Zv cmNlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCi0JCQkgICB1bnNpZ25lZCBpbnQg bW9kZSwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSwKLQkJCSAgIGludCBzcGVlZCwgaW50IGR1 cGxleCkKK3N0YXRpYyB2b2lkIG10NzUzMV9wY3NfbGlua191cChzdHJ1Y3QgcGh5bGlua19wY3Mg KnBjcywgdW5zaWduZWQgaW50IG1vZGUsCisJCQkgICAgICAgcGh5X2ludGVyZmFjZV90IGludGVy ZmFjZSwgaW50IHNwZWVkLCBpbnQgZHVwbGV4KQogewotCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJp diA9IGRzLT5wcml2OworCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IHBjc190b19tdDc1M3hf cGNzKHBjcyktPnByaXY7CisJaW50IHBvcnQgPSBwY3NfdG9fbXQ3NTN4X3BjcyhwY3MpLT5wb3J0 OwogCXVuc2lnbmVkIGludCB2YWw7CiAKIAkvKiBGb3IgYWRqdXN0aW5nIHNwZWVkIGFuZCBkdXBs ZXggb2YgU0dNSUkgZm9yY2UgbW9kZS4gKi8KQEAgLTI1NTIsNiArMjU1Niw5IEBAIG10NzUzMV9z Z21paV9saW5rX3VwX2ZvcmNlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCiAKIAkv KiBNVDc1MzEgU0dNSUkgMUcgZm9yY2UgbW9kZSBjYW4gb25seSB3b3JrIGluIGZ1bGwgZHVwbGV4 IG1vZGUsCiAJICogbm8gbWF0dGVyIE1UNzUzMV9TR01JSV9GT1JDRV9IQUxGX0RVUExFWCBpcyBz ZXQgb3Igbm90LgorCSAqCisJICogVGhlIHNwZWVkIGNoZWNrIGlzIHVubmVjZXNzYXJ5IGFzIHRo ZSBNQUMgY2FwYWJpbGl0aWVzIGFwcGx5CisJICogdGhpcyByZXN0cmljdGlvbi4gLS1ybWsKIAkg Ki8KIAlpZiAoKHNwZWVkID09IFNQRUVEXzEwIHx8IHNwZWVkID09IFNQRUVEXzEwMCkgJiYKIAkg ICAgZHVwbGV4ICE9IERVUExFWF9GVUxMKQpAQCAtMjYyNyw5ICsyNjM0LDEwIEBAIHN0YXRpYyBp bnQgbXQ3NTMxX3NnbWlpX3NldHVwX21vZGVfYW4oc3RydWN0IG10NzUzMF9wcml2ICpwcml2LCBp bnQgcG9ydCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgbXQ3NTMxX3NnbWlpX3Jlc3Rh cnRfYW4oc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCkKK3N0YXRpYyB2b2lkIG10NzUz MV9wY3NfYW5fcmVzdGFydChzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcykKIHsKLQlzdHJ1Y3QgbXQ3 NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsKKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBw Y3NfdG9fbXQ3NTN4X3BjcyhwY3MpLT5wcml2OworCWludCBwb3J0ID0gcGNzX3RvX210NzUzeF9w Y3MocGNzKS0+cG9ydDsKIAl1MzIgdmFsOwogCiAJLyogT25seSByZXN0YXJ0IEFOIHdoZW4gQU4g aXMgZW5hYmxlZCAqLwpAQCAtMjY4Niw2ICsyNjk0LDI0IEBAIG10NzUzeF9tYWNfY29uZmlnKHN0 cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIHVuc2lnbmVkIGludCBtb2RlLAogCXJldHVy biBwcml2LT5pbmZvLT5tYWNfcG9ydF9jb25maWcoZHMsIHBvcnQsIG1vZGUsIHN0YXRlLT5pbnRl cmZhY2UpOwogfQogCitzdGF0aWMgc3RydWN0IHBoeWxpbmtfcGNzICoKK210NzUzeF9waHlsaW5r X21hY19zZWxlY3RfcGNzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCisJCQkgICAg ICBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKQoreworCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJp diA9IGRzLT5wcml2OworCisJc3dpdGNoIChpbnRlcmZhY2UpIHsKKwljYXNlIFBIWV9JTlRFUkZB Q0VfTU9ERV9UUkdNSUk6CisJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfU0dNSUk6CisJY2FzZSBQ SFlfSU5URVJGQUNFX01PREVfMTAwMEJBU0VYOgorCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFXzI1 MDBCQVNFWDoKKwkJcmV0dXJuICZwcml2LT5wY3NbcG9ydF0ucGNzOworCisJZGVmYXVsdDoKKwkJ cmV0dXJuIE5VTEw7CisJfQorfQorCiBzdGF0aWMgdm9pZAogbXQ3NTN4X3BoeWxpbmtfbWFjX2Nv bmZpZyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgbW9kZSwK IAkJCSAgY29uc3Qgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpCkBAIC0yNzQ3LDE3 ICsyNzczLDYgQEAgbXQ3NTN4X3BoeWxpbmtfbWFjX2NvbmZpZyhzdHJ1Y3QgZHNhX3N3aXRjaCAq ZHMsIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgbW9kZSwKIAkJbXQ3NTMwX3dyaXRlKHByaXYsIE1U NzUzMF9QTUNSX1AocG9ydCksIG1jcl9uZXcpOwogfQogCi1zdGF0aWMgdm9pZAotbXQ3NTN4X3Bo eWxpbmtfbWFjX2FuX3Jlc3RhcnQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCkKLXsK LQlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsKLQotCWlmICghcHJpdi0+aW5m by0+bWFjX3Bjc19hbl9yZXN0YXJ0KQotCQlyZXR1cm47Ci0KLQlwcml2LT5pbmZvLT5tYWNfcGNz X2FuX3Jlc3RhcnQoZHMsIHBvcnQpOwotfQotCiBzdGF0aWMgdm9pZCBtdDc1M3hfcGh5bGlua19t YWNfbGlua19kb3duKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCiAJCQkJCSB1bnNp Z25lZCBpbnQgbW9kZSwKIAkJCQkJIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpCkBAIC0yNzY3 LDE2ICsyNzgyLDEzIEBAIHN0YXRpYyB2b2lkIG10NzUzeF9waHlsaW5rX21hY19saW5rX2Rvd24o c3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAltdDc1MzBfY2xlYXIocHJpdiwgTVQ3 NTMwX1BNQ1JfUChwb3J0KSwgUE1DUl9MSU5LX1NFVFRJTkdTX01BU0spOwogfQogCi1zdGF0aWMg dm9pZCBtdDc1M3hfbWFjX3Bjc19saW5rX3VwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBv cnQsCi0JCQkJICAgdW5zaWduZWQgaW50IG1vZGUsIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2Us Ci0JCQkJICAgaW50IHNwZWVkLCBpbnQgZHVwbGV4KQorc3RhdGljIHZvaWQgbXQ3NTN4X3BoeWxp bmtfcGNzX2xpbmtfdXAoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsCisJCQkJICAgICAgIHVuc2ln bmVkIGludCBtb2RlLAorCQkJCSAgICAgICBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlLAorCQkJ CSAgICAgICBpbnQgc3BlZWQsIGludCBkdXBsZXgpCiB7Ci0Jc3RydWN0IG10NzUzMF9wcml2ICpw cml2ID0gZHMtPnByaXY7Ci0KLQlpZiAoIXByaXYtPmluZm8tPm1hY19wY3NfbGlua191cCkKLQkJ cmV0dXJuOwotCi0JcHJpdi0+aW5mby0+bWFjX3Bjc19saW5rX3VwKGRzLCBwb3J0LCBtb2RlLCBp bnRlcmZhY2UsIHNwZWVkLCBkdXBsZXgpOworCWlmIChwY3MtPm9wcy0+cGNzX2xpbmtfdXApCisJ CXBjcy0+b3BzLT5wY3NfbGlua191cChwY3MsIG1vZGUsIGludGVyZmFjZSwgc3BlZWQsIGR1cGxl eCk7CiB9CiAKIHN0YXRpYyB2b2lkIG10NzUzeF9waHlsaW5rX21hY19saW5rX3VwKHN0cnVjdCBk c2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCkBAIC0yNzg5LDggKzI4MDEsNiBAQCBzdGF0aWMgdm9p ZCBtdDc1M3hfcGh5bGlua19tYWNfbGlua191cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBw b3J0LAogCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2OwogCXUzMiBtY3I7CiAK LQltdDc1M3hfbWFjX3Bjc19saW5rX3VwKGRzLCBwb3J0LCBtb2RlLCBpbnRlcmZhY2UsIHNwZWVk LCBkdXBsZXgpOwotCiAJbWNyID0gUE1DUl9SWF9FTiB8IFBNQ1JfVFhfRU4gfCBQTUNSX0ZPUkNF X0xOSzsKIAogCS8qIE1UNzUzeCBNQUMgd29ya3MgaW4gMUcgZnVsbCBkdXBsZXggbW9kZSBmb3Ig YWxsIHVwLWNsb2NrZWQKQEAgLTI4NzAsNiArMjg4MCw4IEBAIG10NzUzMV9jcHVfcG9ydF9jb25m aWcoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCkKIAkJcmV0dXJuIHJldDsKIAltdDc1 MzBfd3JpdGUocHJpdiwgTVQ3NTMwX1BNQ1JfUChwb3J0KSwKIAkJICAgICBQTUNSX0NQVV9QT1JU X1NFVFRJTkcocHJpdi0+aWQpKTsKKwltdDc1M3hfcGh5bGlua19wY3NfbGlua191cCgmcHJpdi0+ cGNzW3BvcnRdLnBjcywgTUxPX0FOX0ZJWEVELAorCQkJCSAgIGludGVyZmFjZSwgc3BlZWQsIERV UExFWF9GVUxMKTsKIAltdDc1M3hfcGh5bGlua19tYWNfbGlua191cChkcywgcG9ydCwgTUxPX0FO X0ZJWEVELCBpbnRlcmZhY2UsIE5VTEwsCiAJCQkJICAgc3BlZWQsIERVUExFWF9GVUxMLCB0cnVl LCB0cnVlKTsKIApAQCAtMjkwOSwxNiArMjkyMSwxMyBAQCBtdDc1M3hfcGh5bGlua192YWxpZGF0 ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAogCWxpbmttb2RlX2FuZChzdGF0ZS0+ YWR2ZXJ0aXNpbmcsIHN0YXRlLT5hZHZlcnRpc2luZywgbWFzayk7CiB9CiAKLXN0YXRpYyBpbnQK LW10NzUzMF9waHlsaW5rX21hY19saW5rX3N0YXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50 IHBvcnQsCi0JCQkgICAgICBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkKK3N0YXRp YyB2b2lkIG10NzUzMF9wY3NfZ2V0X3N0YXRlKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLAorCQkJ CSBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgbXQ3NTMwX3By aXYgKnByaXYgPSBkcy0+cHJpdjsKKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBwY3NfdG9f bXQ3NTN4X3BjcyhwY3MpLT5wcml2OworCWludCBwb3J0ID0gcGNzX3RvX210NzUzeF9wY3MocGNz KS0+cG9ydDsKIAl1MzIgcG1zcjsKIAotCWlmIChwb3J0IDwgMCB8fCBwb3J0ID49IE1UNzUzMF9O VU1fUE9SVFMpCi0JCXJldHVybiAtRUlOVkFMOwotCiAJcG1zciA9IG10NzUzMF9yZWFkKHByaXYs IE1UNzUzMF9QTVNSX1AocG9ydCkpOwogCiAJc3RhdGUtPmxpbmsgPSAocG1zciAmIFBNU1JfTElO Syk7CkBAIC0yOTQ1LDggKzI5NTQsNiBAQCBtdDc1MzBfcGh5bGlua19tYWNfbGlua19zdGF0ZShz dHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAogCQlzdGF0ZS0+cGF1c2UgfD0gTUxPX1BB VVNFX1JYOwogCWlmIChwbXNyICYgUE1TUl9UWF9GQykKIAkJc3RhdGUtPnBhdXNlIHw9IE1MT19Q QVVTRV9UWDsKLQotCXJldHVybiAxOwogfQogCiBzdGF0aWMgaW50CkBAIC0yOTg4LDMyICsyOTk1 LDQ5IEBAIG10NzUzMV9zZ21paV9wY3NfZ2V0X3N0YXRlX2FuKHN0cnVjdCBtdDc1MzBfcHJpdiAq cHJpdiwgaW50IHBvcnQsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKLW10NzUzMV9waHls aW5rX21hY19saW5rX3N0YXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCi0JCQkg ICAgICBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkKK3N0YXRpYyB2b2lkIG10NzUz MV9wY3NfZ2V0X3N0YXRlKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLAorCQkJCSBzdHJ1Y3QgcGh5 bGlua19saW5rX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBk cy0+cHJpdjsKKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBwY3NfdG9fbXQ3NTN4X3Bjcyhw Y3MpLT5wcml2OworCWludCBwb3J0ID0gcGNzX3RvX210NzUzeF9wY3MocGNzKS0+cG9ydDsKIAog CWlmIChzdGF0ZS0+aW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV9TR01JSSkKLQkJcmV0 dXJuIG10NzUzMV9zZ21paV9wY3NfZ2V0X3N0YXRlX2FuKHByaXYsIHBvcnQsIHN0YXRlKTsKLQot CXJldHVybiAtRU9QTk9UU1VQUDsKKwkJbXQ3NTMxX3NnbWlpX3Bjc19nZXRfc3RhdGVfYW4ocHJp diwgcG9ydCwgc3RhdGUpOworCWVsc2UKKwkJc3RhdGUtPmxpbmsgPSBmYWxzZTsKIH0KIAotc3Rh dGljIGludAotbXQ3NTN4X3BoeWxpbmtfbWFjX2xpbmtfc3RhdGUoc3RydWN0IGRzYV9zd2l0Y2gg KmRzLCBpbnQgcG9ydCwKLQkJCSAgICAgIHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRl KQorc3RhdGljIGludCBtdDc1M3hfcGNzX2NvbmZpZyhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywg dW5zaWduZWQgaW50IG1vZGUsCisJCQkgICAgIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UsCisJ CQkgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmFkdmVydGlzaW5nLAorCQkJICAgICBib29sIHBl cm1pdF9wYXVzZV90b19tYWMpCiB7Ci0Jc3RydWN0IG10NzUzMF9wcml2ICpwcml2ID0gZHMtPnBy aXY7CisJcmV0dXJuIDA7Cit9CiAKLQlyZXR1cm4gcHJpdi0+aW5mby0+bWFjX3BvcnRfZ2V0X3N0 YXRlKGRzLCBwb3J0LCBzdGF0ZSk7CitzdGF0aWMgdm9pZCBtdDc1MzBfcGNzX2FuX3Jlc3RhcnQo c3RydWN0IHBoeWxpbmtfcGNzICpwY3MpCit7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5 bGlua19wY3Nfb3BzIG10NzUzMF9wY3Nfb3BzID0geworCS5wY3NfZ2V0X3N0YXRlID0gbXQ3NTMw X3Bjc19nZXRfc3RhdGUsCisJLnBjc19jb25maWcgPSBtdDc1M3hfcGNzX2NvbmZpZywKKwkucGNz X2FuX3Jlc3RhcnQgPSBtdDc1MzBfcGNzX2FuX3Jlc3RhcnQsCit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IHBoeWxpbmtfcGNzX29wcyBtdDc1MzFfcGNzX29wcyA9IHsKKwkucGNzX2dldF9zdGF0 ZSA9IG10NzUzMV9wY3NfZ2V0X3N0YXRlLAorCS5wY3NfY29uZmlnID0gbXQ3NTN4X3Bjc19jb25m aWcsCisJLnBjc19hbl9yZXN0YXJ0ID0gbXQ3NTMxX3Bjc19hbl9yZXN0YXJ0LAorCS5wY3NfbGlu a191cCA9IG10NzUzMV9wY3NfbGlua191cCwKK307CisKIHN0YXRpYyBpbnQKIG10NzUzeF9zZXR1 cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpCiB7CiAJc3RydWN0IG10NzUzMF9wcml2ICpwcml2ID0g ZHMtPnByaXY7CiAJaW50IHJldCA9IHByaXYtPmluZm8tPnN3X3NldHVwKGRzKTsKKwlpbnQgaTsK IAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC0zMDI2LDYgKzMwNTAsMTMgQEAgbXQ3NTN4 X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcykKIAlpZiAocmV0ICYmIHByaXYtPmlycSkKIAkJ bXQ3NTMwX2ZyZWVfaXJxX2NvbW1vbihwcml2KTsKIAorCS8qIEluaXRpYWxpc2UgdGhlIFBDUyBk ZXZpY2VzICovCisJZm9yIChpID0gMDsgaSA8IHByaXYtPmRzLT5udW1fcG9ydHM7IGkrKykgewor CQlwcml2LT5wY3NbaV0ucGNzLm9wcyA9IHByaXYtPmluZm8tPnBjc19vcHM7CisJCXByaXYtPnBj c1tpXS5wcml2ID0gcHJpdjsKKwkJcHJpdi0+cGNzW2ldLnBvcnQgPSBpOworCX0KKwogCXJldHVy biByZXQ7CiB9CiAKQEAgLTMwODcsOSArMzExOCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNh X3N3aXRjaF9vcHMgbXQ3NTMwX3N3aXRjaF9vcHMgPSB7CiAJLnBvcnRfbWlycm9yX2RlbAk9IG10 NzUzeF9wb3J0X21pcnJvcl9kZWwsCiAJLnBoeWxpbmtfZ2V0X2NhcHMJPSBtdDc1M3hfcGh5bGlu a19nZXRfY2FwcywKIAkucGh5bGlua192YWxpZGF0ZQk9IG10NzUzeF9waHlsaW5rX3ZhbGlkYXRl LAotCS5waHlsaW5rX21hY19saW5rX3N0YXRlCT0gbXQ3NTN4X3BoeWxpbmtfbWFjX2xpbmtfc3Rh dGUsCisJLnBoeWxpbmtfbWFjX3NlbGVjdF9wY3MJPSBtdDc1M3hfcGh5bGlua19tYWNfc2VsZWN0 X3BjcywKIAkucGh5bGlua19tYWNfY29uZmlnCT0gbXQ3NTN4X3BoeWxpbmtfbWFjX2NvbmZpZywK LQkucGh5bGlua19tYWNfYW5fcmVzdGFydAk9IG10NzUzeF9waHlsaW5rX21hY19hbl9yZXN0YXJ0 LAogCS5waHlsaW5rX21hY19saW5rX2Rvd24JPSBtdDc1M3hfcGh5bGlua19tYWNfbGlua19kb3du LAogCS5waHlsaW5rX21hY19saW5rX3VwCT0gbXQ3NTN4X3BoeWxpbmtfbWFjX2xpbmtfdXAsCiAJ LmdldF9tYWNfZWVlCQk9IG10NzUzeF9nZXRfbWFjX2VlZSwKQEAgLTMwOTksMzYgKzMxMjksMzQg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBtdDc1MzBfc3dpdGNoX29wcyA9 IHsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3NTN4X2luZm8gbXQ3NTN4X3RhYmxlW10gPSB7CiAJ W0lEX01UNzYyMV0gPSB7CiAJCS5pZCA9IElEX01UNzYyMSwKKwkJLnBjc19vcHMgPSAmbXQ3NTMw X3Bjc19vcHMsCiAJCS5zd19zZXR1cCA9IG10NzUzMF9zZXR1cCwKIAkJLnBoeV9yZWFkID0gbXQ3 NTMwX3BoeV9yZWFkLAogCQkucGh5X3dyaXRlID0gbXQ3NTMwX3BoeV93cml0ZSwKIAkJLnBhZF9z ZXR1cCA9IG10NzUzMF9wYWRfY2xrX3NldHVwLAogCQkubWFjX3BvcnRfZ2V0X2NhcHMgPSBtdDc1 MzBfbWFjX3BvcnRfZ2V0X2NhcHMsCi0JCS5tYWNfcG9ydF9nZXRfc3RhdGUgPSBtdDc1MzBfcGh5 bGlua19tYWNfbGlua19zdGF0ZSwKIAkJLm1hY19wb3J0X2NvbmZpZyA9IG10NzUzMF9tYWNfY29u ZmlnLAogCX0sCiAJW0lEX01UNzUzMF0gPSB7CiAJCS5pZCA9IElEX01UNzUzMCwKKwkJLnBjc19v cHMgPSAmbXQ3NTMwX3Bjc19vcHMsCiAJCS5zd19zZXR1cCA9IG10NzUzMF9zZXR1cCwKIAkJLnBo eV9yZWFkID0gbXQ3NTMwX3BoeV9yZWFkLAogCQkucGh5X3dyaXRlID0gbXQ3NTMwX3BoeV93cml0 ZSwKIAkJLnBhZF9zZXR1cCA9IG10NzUzMF9wYWRfY2xrX3NldHVwLAogCQkubWFjX3BvcnRfZ2V0 X2NhcHMgPSBtdDc1MzBfbWFjX3BvcnRfZ2V0X2NhcHMsCi0JCS5tYWNfcG9ydF9nZXRfc3RhdGUg PSBtdDc1MzBfcGh5bGlua19tYWNfbGlua19zdGF0ZSwKIAkJLm1hY19wb3J0X2NvbmZpZyA9IG10 NzUzMF9tYWNfY29uZmlnLAogCX0sCiAJW0lEX01UNzUzMV0gPSB7CiAJCS5pZCA9IElEX01UNzUz MSwKKwkJLnBjc19vcHMgPSAmbXQ3NTMxX3Bjc19vcHMsCiAJCS5zd19zZXR1cCA9IG10NzUzMV9z ZXR1cCwKIAkJLnBoeV9yZWFkID0gbXQ3NTMxX2luZF9waHlfcmVhZCwKIAkJLnBoeV93cml0ZSA9 IG10NzUzMV9pbmRfcGh5X3dyaXRlLAogCQkucGFkX3NldHVwID0gbXQ3NTMxX3BhZF9zZXR1cCwK IAkJLmNwdV9wb3J0X2NvbmZpZyA9IG10NzUzMV9jcHVfcG9ydF9jb25maWcsCiAJCS5tYWNfcG9y dF9nZXRfY2FwcyA9IG10NzUzMV9tYWNfcG9ydF9nZXRfY2FwcywKLQkJLm1hY19wb3J0X2dldF9z dGF0ZSA9IG10NzUzMV9waHlsaW5rX21hY19saW5rX3N0YXRlLAogCQkubWFjX3BvcnRfY29uZmln ID0gbXQ3NTMxX21hY19jb25maWcsCi0JCS5tYWNfcGNzX2FuX3Jlc3RhcnQgPSBtdDc1MzFfc2dt aWlfcmVzdGFydF9hbiwKLQkJLm1hY19wY3NfbGlua191cCA9IG10NzUzMV9zZ21paV9saW5rX3Vw X2ZvcmNlLAogCX0sCiB9OwogCkBAIC0zMTg2LDcgKzMyMTQsNyBAQCBtdDc1MzBfcHJvYmUoc3Ry dWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KQogCWlmICghcHJpdi0+aW5mby0+c3dfc2V0dXAgfHwg IXByaXYtPmluZm8tPnBhZF9zZXR1cCB8fAogCSAgICAhcHJpdi0+aW5mby0+cGh5X3JlYWQgfHwg IXByaXYtPmluZm8tPnBoeV93cml0ZSB8fAogCSAgICAhcHJpdi0+aW5mby0+bWFjX3BvcnRfZ2V0 X2NhcHMgfHwKLQkgICAgIXByaXYtPmluZm8tPm1hY19wb3J0X2dldF9zdGF0ZSB8fCAhcHJpdi0+ aW5mby0+bWFjX3BvcnRfY29uZmlnKQorCSAgICAhcHJpdi0+aW5mby0+bWFjX3BvcnRfY29uZmln KQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXByaXYtPmlkID0gcHJpdi0+aW5mby0+aWQ7CmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmggYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMw LmgKaW5kZXggNzNjZmQyOWZiYjE3Li43MWUzNmI2OWI5NmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2RzYS9tdDc1MzAuaAorKysgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmgKQEAgLTc0MSw2 ICs3NDEsMTIgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnA1X2ludGZfbW9kZXModW5zaWduZWQgaW50 IHA1X2ludGVyZmFjZSkKIAogc3RydWN0IG10NzUzMF9wcml2OwogCitzdHJ1Y3QgbXQ3NTN4X3Bj cyB7CisJc3RydWN0IHBoeWxpbmtfcGNzIHBjczsKKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXY7 CisJaW50IHBvcnQ7Cit9OworCiAvKiBzdHJ1Y3QgbXQ3NTN4X2luZm8gLQlUaGlzIGlzIHRoZSBt YWluIGRhdGEgc3RydWN0dXJlIGZvciBob2xkaW5nIHRoZSBzcGVjaWZpYwogICoJCQlwYXJ0IGZv ciBlYWNoIHN1cHBvcnRlZCBkZXZpY2UKICAqIEBzd19zZXR1cDoJCUhvbGRpbmcgdGhlIGhhbmRs ZXIgdG8gYSBkZXZpY2UgaW5pdGlhbGl6YXRpb24KQEAgLTc1MiwxOCArNzU4LDE0IEBAIHN0cnVj dCBtdDc1MzBfcHJpdjsKICAqCQkJcG9ydAogICogQG1hY19wb3J0X3ZhbGlkYXRlOglIb2xkaW5n IHRoZSB3YXkgdG8gc2V0IGFkZGl0aW9uIHZhbGlkYXRlIHR5cGUgZm9yIGEKICAqCQkJY2VydGFu IE1BQyBwb3J0Ci0gKiBAbWFjX3BvcnRfZ2V0X3N0YXRlOiBIb2xkaW5nIHRoZSB3YXkgZ2V0dGlu ZyB0aGUgTUFDL1BDUyBzdGF0ZSBmb3IgYSBjZXJ0YWluCi0gKgkJCU1BQyBwb3J0CiAgKiBAbWFj X3BvcnRfY29uZmlnOglIb2xkaW5nIHRoZSB3YXkgc2V0dGluZyB1cCB0aGUgUEhZIGF0dHJpYnV0 ZSB0byBhCiAgKgkJCWNlcnRhaW4gTUFDIHBvcnQKLSAqIEBtYWNfcGNzX2FuX3Jlc3RhcnQJSG9s ZGluZyB0aGUgd2F5IHJlc3RhcnRpbmcgUENTIGF1dG9uZWdvdGlhdGlvbiBmb3IgYQotICoJCQlj ZXJ0YWluIE1BQyBwb3J0Ci0gKiBAbWFjX3Bjc19saW5rX3VwOglIb2xkaW5nIHRoZSB3YXkgc2V0 dGluZyB1cCB0aGUgUEhZIGF0dHJpYnV0ZSB0byB0aGUgcGNzCi0gKgkJCW9mIHRoZSBjZXJ0YWlu IE1BQyBwb3J0CiAgKi8KIHN0cnVjdCBtdDc1M3hfaW5mbyB7CiAJZW51bSBtdDc1M3hfaWQgaWQ7 CiAKKwljb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzICpwY3Nfb3BzOworCiAJaW50ICgqc3df c2V0dXApKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyk7CiAJaW50ICgqcGh5X3JlYWQpKHN0cnVjdCBt dDc1MzBfcHJpdiAqcHJpdiwgaW50IHBvcnQsIGludCByZWdudW0pOwogCWludCAoKnBoeV93cml0 ZSkoc3RydWN0IG10NzUzMF9wcml2ICpwcml2LCBpbnQgcG9ydCwgaW50IHJlZ251bSwgdTE2IHZh bCk7CkBAIC03NzQsMTUgKzc3Niw5IEBAIHN0cnVjdCBtdDc1M3hfaW5mbyB7CiAJdm9pZCAoKm1h Y19wb3J0X3ZhbGlkYXRlKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAogCQkJCSAg cGh5X2ludGVyZmFjZV90IGludGVyZmFjZSwKIAkJCQkgIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRl ZCk7Ci0JaW50ICgqbWFjX3BvcnRfZ2V0X3N0YXRlKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGlu dCBwb3J0LAotCQkJCSAgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpOwogCWludCAo Km1hY19wb3J0X2NvbmZpZykoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAkJCSAg ICAgICB1bnNpZ25lZCBpbnQgbW9kZSwKIAkJCSAgICAgICBwaHlfaW50ZXJmYWNlX3QgaW50ZXJm YWNlKTsKLQl2b2lkICgqbWFjX3Bjc19hbl9yZXN0YXJ0KShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMs IGludCBwb3J0KTsKLQl2b2lkICgqbWFjX3Bjc19saW5rX3VwKShzdHJ1Y3QgZHNhX3N3aXRjaCAq ZHMsIGludCBwb3J0LAotCQkJCXVuc2lnbmVkIGludCBtb2RlLCBwaHlfaW50ZXJmYWNlX3QgaW50 ZXJmYWNlLAotCQkJCWludCBzcGVlZCwgaW50IGR1cGxleCk7CiB9OwogCiAvKiBzdHJ1Y3QgbXQ3 NTMwX3ByaXYgLQlUaGlzIGlzIHRoZSBtYWluIGRhdGEgc3RydWN0dXJlIGZvciBob2xkaW5nIHRo ZSBzdGF0ZQpAQCAtODI0LDYgKzgyMCw3IEBAIHN0cnVjdCBtdDc1MzBfcHJpdiB7CiAJdTgJCQlt aXJyb3JfdHg7CiAKIAlzdHJ1Y3QgbXQ3NTMwX3BvcnQJcG9ydHNbTVQ3NTMwX05VTV9QT1JUU107 CisJc3RydWN0IG10NzUzeF9wY3MJcGNzW01UNzUzMF9OVU1fUE9SVFNdOwogCS8qIHByb3RlY3Qg YW1vbmcgcHJvY2Vzc2VzIGZvciByZWdpc3RlcnMgYWNjZXNzKi8KIAlzdHJ1Y3QgbXV0ZXggcmVn X211dGV4OwogCWludCBpcnE7Ci0tIAoyLjMwLjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1tZWRpYXRlayBtYWlsaW5nIGxpc3QKTGludXgt bWVkaWF0ZWtAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LW1lZGlhdGVrCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 63AAFC433EF for ; Mon, 11 Apr 2022 09:50:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Date:Message-Id:MIME-Version:Subject:Cc :To:From:References:In-Reply-To:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=wiCsz5jEcdnh63/pl4vfByleuczdyp5ZtRqBFBfKBN0=; b=mer/fo7cmUwSbe vf4ggUunt5hCELaHKopWcyQFQOQXVPtM0FFzAbKL1AEzhc7pEiN66gCHtZs3I5UYVMosIKTpuFzsL h8TXJuAbF1K0yUq9Ypi91jYa0hRYpk5Ual8/YblI8346HPsQqoU129HXPt6PGueHBiyDN/hA8qNQU mDIZrwT7jOpjMTiy/jbT3GNT4E0HLqTjoz9sduTwr5JOAEKGa/fN1cJX+BzMwyDiiP9IGRFajxwzF Wuqo+sEB5q2jxyW7a0H+zN9h+lnuot5hWqc2hBTO1n34z7Eu81yJ3JQ+nY3lx7RXcRu2gJkbkVObh s96eO1tRQoP38vECOveA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ndqf6-00824C-Ie; Mon, 11 Apr 2022 09:48:44 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:32c8:5054:ff:fe00:142]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ndqcy-0080mk-Dt; Mon, 11 Apr 2022 09:46:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Date:Sender:Message-Id:Content-Type: Content-Transfer-Encoding:MIME-Version:Subject:Cc:To:From:References: In-Reply-To:Reply-To: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=PBUozL5TIxonaPPm3Nh+ChnOYojhIraEKu/Zpweidq8=; b=M6dCV8CgL0eONW2rbti+oomK6B GWDu2gkXKPxrycr//b8wvGNCUpHZB4kCvBFpsnZ5L4KNzPVsPYt7oQPgVX2Aw/0aFT5yGF8wNQfnr 8ya53a/jeyDy8eV2C6eux15IJmGI0ZKP+dfeukJQnBLxFCvCBaWBFb9mxeY3AiahOBstUAyx6NLWy vQWaWJhxpVUn1f/KLUvAxpsQFOwubsBCYzQVIScSqydRLrj/swPF86rk2CTPXo6HIUKIPqwVV8rpu uTE+pDVH7hHKyWfihTMfYdT45s9YsWvp1TjkmDnO5IZNKVBL8IyjtHG9Ax4HaQxCUB2S0BpC73Z1N R19SC6Ew==; Received: from e0022681537dd.dyn.armlinux.org.uk ([fd8f:7570:feb6:1:222:68ff:fe15:37dd]:52870 helo=rmk-PC.armlinux.org.uk) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ndqcu-0000HW-A2; Mon, 11 Apr 2022 10:46:28 +0100 Received: from rmk by rmk-PC.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1ndqct-0055RO-Da; Mon, 11 Apr 2022 10:46:27 +0100 In-Reply-To: References: From: "Russell King (Oracle)" To: Landen Chao , DENG Qingfang , Sean Wang Cc: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Jakub Kicinski , Paolo Abeni , Matthias Brugger , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: [PATCH net-next v2 7/9] net: dsa: mt7530: partially convert to phylink_pcs MIME-Version: 1.0 MIME-Version: 1.0 Content-Disposition: inline Message-Id: Date: Mon, 11 Apr 2022 10:46:27 +0100 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220411_024632_653832_4E3B70D6 X-CRM114-Status: GOOD ( 26.02 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org UGFydGlhbGx5IGNvbnZlcnQgdGhlIG10NzUzMCBkcml2ZXIgdG8gdXNlIHBoeWxpbmsncyBQQ1Mg c3VwcG9ydC4gVGhpcwppcyBhIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gYXMgd2UgZG9uJ3QgbW92 ZSBhbnl0aGluZyBpbnRvIHRoZQpwY3NfY29uZmlnIG1ldGhvZCB5ZXQgLSB0aGlzIGRyaXZlciBz dXBwb3J0cyBTR01JSSBvciAxMDAwQkFTRS1YCndpdGhvdXQgaW4tYmFuZC4KClRlc3RlZC1ieTog TWFyZWsgQmVow7puIDxrYWJlbEBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBSdXNzZWxsIEtp bmcgKE9yYWNsZSkgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPgotLS0KIGRyaXZlcnMvbmV0 L2RzYS9tdDc1MzAuYyB8IDE0NCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0KIGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaCB8ICAyMSArKystLS0KIDIgZmlsZXMgY2hhbmdl ZCwgOTUgaW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZHNhL210NzUzMC5jIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jCmluZGV4IGFhN2Yy MTY4M2EwNy4uMWMwZDkzMTk3M2U1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMw LmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jCkBAIC0yNCw2ICsyNCwxMSBAQAogCiAj aW5jbHVkZSAibXQ3NTMwLmgiCiAKK3N0YXRpYyBzdHJ1Y3QgbXQ3NTN4X3BjcyAqcGNzX3RvX210 NzUzeF9wY3Moc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpCit7CisJcmV0dXJuIGNvbnRhaW5lcl9v ZihwY3MsIHN0cnVjdCBtdDc1M3hfcGNzLCBwY3MpOworfQorCiAvKiBTdHJpbmcsIG9mZnNldCwg YW5kIHJlZ2lzdGVyIHNpemUgaW4gYnl0ZXMgaWYgZGlmZmVyZW50IGZyb20gNCBieXRlcyAqLwog c3RhdGljIGNvbnN0IHN0cnVjdCBtdDc1MzBfbWliX2Rlc2MgbXQ3NTMwX21pYltdID0gewogCU1J Ql9ERVNDKDEsIDB4MDAsICJUeERyb3AiKSwKQEAgLTI1MjEsMTIgKzI1MjYsMTEgQEAgc3RhdGlj IGludCBtdDc1MzFfcmdtaWlfc2V0dXAoc3RydWN0IG10NzUzMF9wcml2ICpwcml2LCB1MzIgcG9y dCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQKLW10NzUzMV9zZ21paV9saW5rX3VwX2Zv cmNlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCi0JCQkgICB1bnNpZ25lZCBpbnQg bW9kZSwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSwKLQkJCSAgIGludCBzcGVlZCwgaW50IGR1 cGxleCkKK3N0YXRpYyB2b2lkIG10NzUzMV9wY3NfbGlua191cChzdHJ1Y3QgcGh5bGlua19wY3Mg KnBjcywgdW5zaWduZWQgaW50IG1vZGUsCisJCQkgICAgICAgcGh5X2ludGVyZmFjZV90IGludGVy ZmFjZSwgaW50IHNwZWVkLCBpbnQgZHVwbGV4KQogewotCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJp diA9IGRzLT5wcml2OworCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IHBjc190b19tdDc1M3hf cGNzKHBjcyktPnByaXY7CisJaW50IHBvcnQgPSBwY3NfdG9fbXQ3NTN4X3BjcyhwY3MpLT5wb3J0 OwogCXVuc2lnbmVkIGludCB2YWw7CiAKIAkvKiBGb3IgYWRqdXN0aW5nIHNwZWVkIGFuZCBkdXBs ZXggb2YgU0dNSUkgZm9yY2UgbW9kZS4gKi8KQEAgLTI1NTIsNiArMjU1Niw5IEBAIG10NzUzMV9z Z21paV9saW5rX3VwX2ZvcmNlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCiAKIAkv KiBNVDc1MzEgU0dNSUkgMUcgZm9yY2UgbW9kZSBjYW4gb25seSB3b3JrIGluIGZ1bGwgZHVwbGV4 IG1vZGUsCiAJICogbm8gbWF0dGVyIE1UNzUzMV9TR01JSV9GT1JDRV9IQUxGX0RVUExFWCBpcyBz ZXQgb3Igbm90LgorCSAqCisJICogVGhlIHNwZWVkIGNoZWNrIGlzIHVubmVjZXNzYXJ5IGFzIHRo ZSBNQUMgY2FwYWJpbGl0aWVzIGFwcGx5CisJICogdGhpcyByZXN0cmljdGlvbi4gLS1ybWsKIAkg Ki8KIAlpZiAoKHNwZWVkID09IFNQRUVEXzEwIHx8IHNwZWVkID09IFNQRUVEXzEwMCkgJiYKIAkg ICAgZHVwbGV4ICE9IERVUExFWF9GVUxMKQpAQCAtMjYyNyw5ICsyNjM0LDEwIEBAIHN0YXRpYyBp bnQgbXQ3NTMxX3NnbWlpX3NldHVwX21vZGVfYW4oc3RydWN0IG10NzUzMF9wcml2ICpwcml2LCBp bnQgcG9ydCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgbXQ3NTMxX3NnbWlpX3Jlc3Rh cnRfYW4oc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCkKK3N0YXRpYyB2b2lkIG10NzUz MV9wY3NfYW5fcmVzdGFydChzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcykKIHsKLQlzdHJ1Y3QgbXQ3 NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsKKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBw Y3NfdG9fbXQ3NTN4X3BjcyhwY3MpLT5wcml2OworCWludCBwb3J0ID0gcGNzX3RvX210NzUzeF9w Y3MocGNzKS0+cG9ydDsKIAl1MzIgdmFsOwogCiAJLyogT25seSByZXN0YXJ0IEFOIHdoZW4gQU4g aXMgZW5hYmxlZCAqLwpAQCAtMjY4Niw2ICsyNjk0LDI0IEBAIG10NzUzeF9tYWNfY29uZmlnKHN0 cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIHVuc2lnbmVkIGludCBtb2RlLAogCXJldHVy biBwcml2LT5pbmZvLT5tYWNfcG9ydF9jb25maWcoZHMsIHBvcnQsIG1vZGUsIHN0YXRlLT5pbnRl cmZhY2UpOwogfQogCitzdGF0aWMgc3RydWN0IHBoeWxpbmtfcGNzICoKK210NzUzeF9waHlsaW5r X21hY19zZWxlY3RfcGNzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCisJCQkgICAg ICBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKQoreworCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJp diA9IGRzLT5wcml2OworCisJc3dpdGNoIChpbnRlcmZhY2UpIHsKKwljYXNlIFBIWV9JTlRFUkZB Q0VfTU9ERV9UUkdNSUk6CisJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfU0dNSUk6CisJY2FzZSBQ SFlfSU5URVJGQUNFX01PREVfMTAwMEJBU0VYOgorCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFXzI1 MDBCQVNFWDoKKwkJcmV0dXJuICZwcml2LT5wY3NbcG9ydF0ucGNzOworCisJZGVmYXVsdDoKKwkJ cmV0dXJuIE5VTEw7CisJfQorfQorCiBzdGF0aWMgdm9pZAogbXQ3NTN4X3BoeWxpbmtfbWFjX2Nv bmZpZyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgbW9kZSwK IAkJCSAgY29uc3Qgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpCkBAIC0yNzQ3LDE3 ICsyNzczLDYgQEAgbXQ3NTN4X3BoeWxpbmtfbWFjX2NvbmZpZyhzdHJ1Y3QgZHNhX3N3aXRjaCAq ZHMsIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgbW9kZSwKIAkJbXQ3NTMwX3dyaXRlKHByaXYsIE1U NzUzMF9QTUNSX1AocG9ydCksIG1jcl9uZXcpOwogfQogCi1zdGF0aWMgdm9pZAotbXQ3NTN4X3Bo eWxpbmtfbWFjX2FuX3Jlc3RhcnQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCkKLXsK LQlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsKLQotCWlmICghcHJpdi0+aW5m by0+bWFjX3Bjc19hbl9yZXN0YXJ0KQotCQlyZXR1cm47Ci0KLQlwcml2LT5pbmZvLT5tYWNfcGNz X2FuX3Jlc3RhcnQoZHMsIHBvcnQpOwotfQotCiBzdGF0aWMgdm9pZCBtdDc1M3hfcGh5bGlua19t YWNfbGlua19kb3duKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCiAJCQkJCSB1bnNp Z25lZCBpbnQgbW9kZSwKIAkJCQkJIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpCkBAIC0yNzY3 LDE2ICsyNzgyLDEzIEBAIHN0YXRpYyB2b2lkIG10NzUzeF9waHlsaW5rX21hY19saW5rX2Rvd24o c3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAltdDc1MzBfY2xlYXIocHJpdiwgTVQ3 NTMwX1BNQ1JfUChwb3J0KSwgUE1DUl9MSU5LX1NFVFRJTkdTX01BU0spOwogfQogCi1zdGF0aWMg dm9pZCBtdDc1M3hfbWFjX3Bjc19saW5rX3VwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBv cnQsCi0JCQkJICAgdW5zaWduZWQgaW50IG1vZGUsIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2Us Ci0JCQkJICAgaW50IHNwZWVkLCBpbnQgZHVwbGV4KQorc3RhdGljIHZvaWQgbXQ3NTN4X3BoeWxp bmtfcGNzX2xpbmtfdXAoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsCisJCQkJICAgICAgIHVuc2ln bmVkIGludCBtb2RlLAorCQkJCSAgICAgICBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlLAorCQkJ CSAgICAgICBpbnQgc3BlZWQsIGludCBkdXBsZXgpCiB7Ci0Jc3RydWN0IG10NzUzMF9wcml2ICpw cml2ID0gZHMtPnByaXY7Ci0KLQlpZiAoIXByaXYtPmluZm8tPm1hY19wY3NfbGlua191cCkKLQkJ cmV0dXJuOwotCi0JcHJpdi0+aW5mby0+bWFjX3Bjc19saW5rX3VwKGRzLCBwb3J0LCBtb2RlLCBp bnRlcmZhY2UsIHNwZWVkLCBkdXBsZXgpOworCWlmIChwY3MtPm9wcy0+cGNzX2xpbmtfdXApCisJ CXBjcy0+b3BzLT5wY3NfbGlua191cChwY3MsIG1vZGUsIGludGVyZmFjZSwgc3BlZWQsIGR1cGxl eCk7CiB9CiAKIHN0YXRpYyB2b2lkIG10NzUzeF9waHlsaW5rX21hY19saW5rX3VwKHN0cnVjdCBk c2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCkBAIC0yNzg5LDggKzI4MDEsNiBAQCBzdGF0aWMgdm9p ZCBtdDc1M3hfcGh5bGlua19tYWNfbGlua191cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBw b3J0LAogCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2OwogCXUzMiBtY3I7CiAK LQltdDc1M3hfbWFjX3Bjc19saW5rX3VwKGRzLCBwb3J0LCBtb2RlLCBpbnRlcmZhY2UsIHNwZWVk LCBkdXBsZXgpOwotCiAJbWNyID0gUE1DUl9SWF9FTiB8IFBNQ1JfVFhfRU4gfCBQTUNSX0ZPUkNF X0xOSzsKIAogCS8qIE1UNzUzeCBNQUMgd29ya3MgaW4gMUcgZnVsbCBkdXBsZXggbW9kZSBmb3Ig YWxsIHVwLWNsb2NrZWQKQEAgLTI4NzAsNiArMjg4MCw4IEBAIG10NzUzMV9jcHVfcG9ydF9jb25m aWcoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCkKIAkJcmV0dXJuIHJldDsKIAltdDc1 MzBfd3JpdGUocHJpdiwgTVQ3NTMwX1BNQ1JfUChwb3J0KSwKIAkJICAgICBQTUNSX0NQVV9QT1JU X1NFVFRJTkcocHJpdi0+aWQpKTsKKwltdDc1M3hfcGh5bGlua19wY3NfbGlua191cCgmcHJpdi0+ cGNzW3BvcnRdLnBjcywgTUxPX0FOX0ZJWEVELAorCQkJCSAgIGludGVyZmFjZSwgc3BlZWQsIERV UExFWF9GVUxMKTsKIAltdDc1M3hfcGh5bGlua19tYWNfbGlua191cChkcywgcG9ydCwgTUxPX0FO X0ZJWEVELCBpbnRlcmZhY2UsIE5VTEwsCiAJCQkJICAgc3BlZWQsIERVUExFWF9GVUxMLCB0cnVl LCB0cnVlKTsKIApAQCAtMjkwOSwxNiArMjkyMSwxMyBAQCBtdDc1M3hfcGh5bGlua192YWxpZGF0 ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAogCWxpbmttb2RlX2FuZChzdGF0ZS0+ YWR2ZXJ0aXNpbmcsIHN0YXRlLT5hZHZlcnRpc2luZywgbWFzayk7CiB9CiAKLXN0YXRpYyBpbnQK LW10NzUzMF9waHlsaW5rX21hY19saW5rX3N0YXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50 IHBvcnQsCi0JCQkgICAgICBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkKK3N0YXRp YyB2b2lkIG10NzUzMF9wY3NfZ2V0X3N0YXRlKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLAorCQkJ CSBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgbXQ3NTMwX3By aXYgKnByaXYgPSBkcy0+cHJpdjsKKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBwY3NfdG9f bXQ3NTN4X3BjcyhwY3MpLT5wcml2OworCWludCBwb3J0ID0gcGNzX3RvX210NzUzeF9wY3MocGNz KS0+cG9ydDsKIAl1MzIgcG1zcjsKIAotCWlmIChwb3J0IDwgMCB8fCBwb3J0ID49IE1UNzUzMF9O VU1fUE9SVFMpCi0JCXJldHVybiAtRUlOVkFMOwotCiAJcG1zciA9IG10NzUzMF9yZWFkKHByaXYs IE1UNzUzMF9QTVNSX1AocG9ydCkpOwogCiAJc3RhdGUtPmxpbmsgPSAocG1zciAmIFBNU1JfTElO Syk7CkBAIC0yOTQ1LDggKzI5NTQsNiBAQCBtdDc1MzBfcGh5bGlua19tYWNfbGlua19zdGF0ZShz dHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAogCQlzdGF0ZS0+cGF1c2UgfD0gTUxPX1BB VVNFX1JYOwogCWlmIChwbXNyICYgUE1TUl9UWF9GQykKIAkJc3RhdGUtPnBhdXNlIHw9IE1MT19Q QVVTRV9UWDsKLQotCXJldHVybiAxOwogfQogCiBzdGF0aWMgaW50CkBAIC0yOTg4LDMyICsyOTk1 LDQ5IEBAIG10NzUzMV9zZ21paV9wY3NfZ2V0X3N0YXRlX2FuKHN0cnVjdCBtdDc1MzBfcHJpdiAq cHJpdiwgaW50IHBvcnQsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKLW10NzUzMV9waHls aW5rX21hY19saW5rX3N0YXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCi0JCQkg ICAgICBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkKK3N0YXRpYyB2b2lkIG10NzUz MV9wY3NfZ2V0X3N0YXRlKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLAorCQkJCSBzdHJ1Y3QgcGh5 bGlua19saW5rX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBk cy0+cHJpdjsKKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBwY3NfdG9fbXQ3NTN4X3Bjcyhw Y3MpLT5wcml2OworCWludCBwb3J0ID0gcGNzX3RvX210NzUzeF9wY3MocGNzKS0+cG9ydDsKIAog CWlmIChzdGF0ZS0+aW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV9TR01JSSkKLQkJcmV0 dXJuIG10NzUzMV9zZ21paV9wY3NfZ2V0X3N0YXRlX2FuKHByaXYsIHBvcnQsIHN0YXRlKTsKLQot CXJldHVybiAtRU9QTk9UU1VQUDsKKwkJbXQ3NTMxX3NnbWlpX3Bjc19nZXRfc3RhdGVfYW4ocHJp diwgcG9ydCwgc3RhdGUpOworCWVsc2UKKwkJc3RhdGUtPmxpbmsgPSBmYWxzZTsKIH0KIAotc3Rh dGljIGludAotbXQ3NTN4X3BoeWxpbmtfbWFjX2xpbmtfc3RhdGUoc3RydWN0IGRzYV9zd2l0Y2gg KmRzLCBpbnQgcG9ydCwKLQkJCSAgICAgIHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRl KQorc3RhdGljIGludCBtdDc1M3hfcGNzX2NvbmZpZyhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywg dW5zaWduZWQgaW50IG1vZGUsCisJCQkgICAgIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UsCisJ CQkgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmFkdmVydGlzaW5nLAorCQkJICAgICBib29sIHBl cm1pdF9wYXVzZV90b19tYWMpCiB7Ci0Jc3RydWN0IG10NzUzMF9wcml2ICpwcml2ID0gZHMtPnBy aXY7CisJcmV0dXJuIDA7Cit9CiAKLQlyZXR1cm4gcHJpdi0+aW5mby0+bWFjX3BvcnRfZ2V0X3N0 YXRlKGRzLCBwb3J0LCBzdGF0ZSk7CitzdGF0aWMgdm9pZCBtdDc1MzBfcGNzX2FuX3Jlc3RhcnQo c3RydWN0IHBoeWxpbmtfcGNzICpwY3MpCit7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5 bGlua19wY3Nfb3BzIG10NzUzMF9wY3Nfb3BzID0geworCS5wY3NfZ2V0X3N0YXRlID0gbXQ3NTMw X3Bjc19nZXRfc3RhdGUsCisJLnBjc19jb25maWcgPSBtdDc1M3hfcGNzX2NvbmZpZywKKwkucGNz X2FuX3Jlc3RhcnQgPSBtdDc1MzBfcGNzX2FuX3Jlc3RhcnQsCit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IHBoeWxpbmtfcGNzX29wcyBtdDc1MzFfcGNzX29wcyA9IHsKKwkucGNzX2dldF9zdGF0 ZSA9IG10NzUzMV9wY3NfZ2V0X3N0YXRlLAorCS5wY3NfY29uZmlnID0gbXQ3NTN4X3Bjc19jb25m aWcsCisJLnBjc19hbl9yZXN0YXJ0ID0gbXQ3NTMxX3Bjc19hbl9yZXN0YXJ0LAorCS5wY3NfbGlu a191cCA9IG10NzUzMV9wY3NfbGlua191cCwKK307CisKIHN0YXRpYyBpbnQKIG10NzUzeF9zZXR1 cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpCiB7CiAJc3RydWN0IG10NzUzMF9wcml2ICpwcml2ID0g ZHMtPnByaXY7CiAJaW50IHJldCA9IHByaXYtPmluZm8tPnN3X3NldHVwKGRzKTsKKwlpbnQgaTsK IAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC0zMDI2LDYgKzMwNTAsMTMgQEAgbXQ3NTN4 X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcykKIAlpZiAocmV0ICYmIHByaXYtPmlycSkKIAkJ bXQ3NTMwX2ZyZWVfaXJxX2NvbW1vbihwcml2KTsKIAorCS8qIEluaXRpYWxpc2UgdGhlIFBDUyBk ZXZpY2VzICovCisJZm9yIChpID0gMDsgaSA8IHByaXYtPmRzLT5udW1fcG9ydHM7IGkrKykgewor CQlwcml2LT5wY3NbaV0ucGNzLm9wcyA9IHByaXYtPmluZm8tPnBjc19vcHM7CisJCXByaXYtPnBj c1tpXS5wcml2ID0gcHJpdjsKKwkJcHJpdi0+cGNzW2ldLnBvcnQgPSBpOworCX0KKwogCXJldHVy biByZXQ7CiB9CiAKQEAgLTMwODcsOSArMzExOCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNh X3N3aXRjaF9vcHMgbXQ3NTMwX3N3aXRjaF9vcHMgPSB7CiAJLnBvcnRfbWlycm9yX2RlbAk9IG10 NzUzeF9wb3J0X21pcnJvcl9kZWwsCiAJLnBoeWxpbmtfZ2V0X2NhcHMJPSBtdDc1M3hfcGh5bGlu a19nZXRfY2FwcywKIAkucGh5bGlua192YWxpZGF0ZQk9IG10NzUzeF9waHlsaW5rX3ZhbGlkYXRl LAotCS5waHlsaW5rX21hY19saW5rX3N0YXRlCT0gbXQ3NTN4X3BoeWxpbmtfbWFjX2xpbmtfc3Rh dGUsCisJLnBoeWxpbmtfbWFjX3NlbGVjdF9wY3MJPSBtdDc1M3hfcGh5bGlua19tYWNfc2VsZWN0 X3BjcywKIAkucGh5bGlua19tYWNfY29uZmlnCT0gbXQ3NTN4X3BoeWxpbmtfbWFjX2NvbmZpZywK LQkucGh5bGlua19tYWNfYW5fcmVzdGFydAk9IG10NzUzeF9waHlsaW5rX21hY19hbl9yZXN0YXJ0 LAogCS5waHlsaW5rX21hY19saW5rX2Rvd24JPSBtdDc1M3hfcGh5bGlua19tYWNfbGlua19kb3du LAogCS5waHlsaW5rX21hY19saW5rX3VwCT0gbXQ3NTN4X3BoeWxpbmtfbWFjX2xpbmtfdXAsCiAJ LmdldF9tYWNfZWVlCQk9IG10NzUzeF9nZXRfbWFjX2VlZSwKQEAgLTMwOTksMzYgKzMxMjksMzQg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBtdDc1MzBfc3dpdGNoX29wcyA9 IHsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3NTN4X2luZm8gbXQ3NTN4X3RhYmxlW10gPSB7CiAJ W0lEX01UNzYyMV0gPSB7CiAJCS5pZCA9IElEX01UNzYyMSwKKwkJLnBjc19vcHMgPSAmbXQ3NTMw X3Bjc19vcHMsCiAJCS5zd19zZXR1cCA9IG10NzUzMF9zZXR1cCwKIAkJLnBoeV9yZWFkID0gbXQ3 NTMwX3BoeV9yZWFkLAogCQkucGh5X3dyaXRlID0gbXQ3NTMwX3BoeV93cml0ZSwKIAkJLnBhZF9z ZXR1cCA9IG10NzUzMF9wYWRfY2xrX3NldHVwLAogCQkubWFjX3BvcnRfZ2V0X2NhcHMgPSBtdDc1 MzBfbWFjX3BvcnRfZ2V0X2NhcHMsCi0JCS5tYWNfcG9ydF9nZXRfc3RhdGUgPSBtdDc1MzBfcGh5 bGlua19tYWNfbGlua19zdGF0ZSwKIAkJLm1hY19wb3J0X2NvbmZpZyA9IG10NzUzMF9tYWNfY29u ZmlnLAogCX0sCiAJW0lEX01UNzUzMF0gPSB7CiAJCS5pZCA9IElEX01UNzUzMCwKKwkJLnBjc19v cHMgPSAmbXQ3NTMwX3Bjc19vcHMsCiAJCS5zd19zZXR1cCA9IG10NzUzMF9zZXR1cCwKIAkJLnBo eV9yZWFkID0gbXQ3NTMwX3BoeV9yZWFkLAogCQkucGh5X3dyaXRlID0gbXQ3NTMwX3BoeV93cml0 ZSwKIAkJLnBhZF9zZXR1cCA9IG10NzUzMF9wYWRfY2xrX3NldHVwLAogCQkubWFjX3BvcnRfZ2V0 X2NhcHMgPSBtdDc1MzBfbWFjX3BvcnRfZ2V0X2NhcHMsCi0JCS5tYWNfcG9ydF9nZXRfc3RhdGUg PSBtdDc1MzBfcGh5bGlua19tYWNfbGlua19zdGF0ZSwKIAkJLm1hY19wb3J0X2NvbmZpZyA9IG10 NzUzMF9tYWNfY29uZmlnLAogCX0sCiAJW0lEX01UNzUzMV0gPSB7CiAJCS5pZCA9IElEX01UNzUz MSwKKwkJLnBjc19vcHMgPSAmbXQ3NTMxX3Bjc19vcHMsCiAJCS5zd19zZXR1cCA9IG10NzUzMV9z ZXR1cCwKIAkJLnBoeV9yZWFkID0gbXQ3NTMxX2luZF9waHlfcmVhZCwKIAkJLnBoeV93cml0ZSA9 IG10NzUzMV9pbmRfcGh5X3dyaXRlLAogCQkucGFkX3NldHVwID0gbXQ3NTMxX3BhZF9zZXR1cCwK IAkJLmNwdV9wb3J0X2NvbmZpZyA9IG10NzUzMV9jcHVfcG9ydF9jb25maWcsCiAJCS5tYWNfcG9y dF9nZXRfY2FwcyA9IG10NzUzMV9tYWNfcG9ydF9nZXRfY2FwcywKLQkJLm1hY19wb3J0X2dldF9z dGF0ZSA9IG10NzUzMV9waHlsaW5rX21hY19saW5rX3N0YXRlLAogCQkubWFjX3BvcnRfY29uZmln ID0gbXQ3NTMxX21hY19jb25maWcsCi0JCS5tYWNfcGNzX2FuX3Jlc3RhcnQgPSBtdDc1MzFfc2dt aWlfcmVzdGFydF9hbiwKLQkJLm1hY19wY3NfbGlua191cCA9IG10NzUzMV9zZ21paV9saW5rX3Vw X2ZvcmNlLAogCX0sCiB9OwogCkBAIC0zMTg2LDcgKzMyMTQsNyBAQCBtdDc1MzBfcHJvYmUoc3Ry dWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KQogCWlmICghcHJpdi0+aW5mby0+c3dfc2V0dXAgfHwg IXByaXYtPmluZm8tPnBhZF9zZXR1cCB8fAogCSAgICAhcHJpdi0+aW5mby0+cGh5X3JlYWQgfHwg IXByaXYtPmluZm8tPnBoeV93cml0ZSB8fAogCSAgICAhcHJpdi0+aW5mby0+bWFjX3BvcnRfZ2V0 X2NhcHMgfHwKLQkgICAgIXByaXYtPmluZm8tPm1hY19wb3J0X2dldF9zdGF0ZSB8fCAhcHJpdi0+ aW5mby0+bWFjX3BvcnRfY29uZmlnKQorCSAgICAhcHJpdi0+aW5mby0+bWFjX3BvcnRfY29uZmln KQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXByaXYtPmlkID0gcHJpdi0+aW5mby0+aWQ7CmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmggYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMw LmgKaW5kZXggNzNjZmQyOWZiYjE3Li43MWUzNmI2OWI5NmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2RzYS9tdDc1MzAuaAorKysgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmgKQEAgLTc0MSw2 ICs3NDEsMTIgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnA1X2ludGZfbW9kZXModW5zaWduZWQgaW50 IHA1X2ludGVyZmFjZSkKIAogc3RydWN0IG10NzUzMF9wcml2OwogCitzdHJ1Y3QgbXQ3NTN4X3Bj cyB7CisJc3RydWN0IHBoeWxpbmtfcGNzIHBjczsKKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXY7 CisJaW50IHBvcnQ7Cit9OworCiAvKiBzdHJ1Y3QgbXQ3NTN4X2luZm8gLQlUaGlzIGlzIHRoZSBt YWluIGRhdGEgc3RydWN0dXJlIGZvciBob2xkaW5nIHRoZSBzcGVjaWZpYwogICoJCQlwYXJ0IGZv ciBlYWNoIHN1cHBvcnRlZCBkZXZpY2UKICAqIEBzd19zZXR1cDoJCUhvbGRpbmcgdGhlIGhhbmRs ZXIgdG8gYSBkZXZpY2UgaW5pdGlhbGl6YXRpb24KQEAgLTc1MiwxOCArNzU4LDE0IEBAIHN0cnVj dCBtdDc1MzBfcHJpdjsKICAqCQkJcG9ydAogICogQG1hY19wb3J0X3ZhbGlkYXRlOglIb2xkaW5n IHRoZSB3YXkgdG8gc2V0IGFkZGl0aW9uIHZhbGlkYXRlIHR5cGUgZm9yIGEKICAqCQkJY2VydGFu IE1BQyBwb3J0Ci0gKiBAbWFjX3BvcnRfZ2V0X3N0YXRlOiBIb2xkaW5nIHRoZSB3YXkgZ2V0dGlu ZyB0aGUgTUFDL1BDUyBzdGF0ZSBmb3IgYSBjZXJ0YWluCi0gKgkJCU1BQyBwb3J0CiAgKiBAbWFj X3BvcnRfY29uZmlnOglIb2xkaW5nIHRoZSB3YXkgc2V0dGluZyB1cCB0aGUgUEhZIGF0dHJpYnV0 ZSB0byBhCiAgKgkJCWNlcnRhaW4gTUFDIHBvcnQKLSAqIEBtYWNfcGNzX2FuX3Jlc3RhcnQJSG9s ZGluZyB0aGUgd2F5IHJlc3RhcnRpbmcgUENTIGF1dG9uZWdvdGlhdGlvbiBmb3IgYQotICoJCQlj ZXJ0YWluIE1BQyBwb3J0Ci0gKiBAbWFjX3Bjc19saW5rX3VwOglIb2xkaW5nIHRoZSB3YXkgc2V0 dGluZyB1cCB0aGUgUEhZIGF0dHJpYnV0ZSB0byB0aGUgcGNzCi0gKgkJCW9mIHRoZSBjZXJ0YWlu IE1BQyBwb3J0CiAgKi8KIHN0cnVjdCBtdDc1M3hfaW5mbyB7CiAJZW51bSBtdDc1M3hfaWQgaWQ7 CiAKKwljb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzICpwY3Nfb3BzOworCiAJaW50ICgqc3df c2V0dXApKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyk7CiAJaW50ICgqcGh5X3JlYWQpKHN0cnVjdCBt dDc1MzBfcHJpdiAqcHJpdiwgaW50IHBvcnQsIGludCByZWdudW0pOwogCWludCAoKnBoeV93cml0 ZSkoc3RydWN0IG10NzUzMF9wcml2ICpwcml2LCBpbnQgcG9ydCwgaW50IHJlZ251bSwgdTE2IHZh bCk7CkBAIC03NzQsMTUgKzc3Niw5IEBAIHN0cnVjdCBtdDc1M3hfaW5mbyB7CiAJdm9pZCAoKm1h Y19wb3J0X3ZhbGlkYXRlKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAogCQkJCSAg cGh5X2ludGVyZmFjZV90IGludGVyZmFjZSwKIAkJCQkgIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRl ZCk7Ci0JaW50ICgqbWFjX3BvcnRfZ2V0X3N0YXRlKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGlu dCBwb3J0LAotCQkJCSAgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpOwogCWludCAo Km1hY19wb3J0X2NvbmZpZykoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAkJCSAg ICAgICB1bnNpZ25lZCBpbnQgbW9kZSwKIAkJCSAgICAgICBwaHlfaW50ZXJmYWNlX3QgaW50ZXJm YWNlKTsKLQl2b2lkICgqbWFjX3Bjc19hbl9yZXN0YXJ0KShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMs IGludCBwb3J0KTsKLQl2b2lkICgqbWFjX3Bjc19saW5rX3VwKShzdHJ1Y3QgZHNhX3N3aXRjaCAq ZHMsIGludCBwb3J0LAotCQkJCXVuc2lnbmVkIGludCBtb2RlLCBwaHlfaW50ZXJmYWNlX3QgaW50 ZXJmYWNlLAotCQkJCWludCBzcGVlZCwgaW50IGR1cGxleCk7CiB9OwogCiAvKiBzdHJ1Y3QgbXQ3 NTMwX3ByaXYgLQlUaGlzIGlzIHRoZSBtYWluIGRhdGEgc3RydWN0dXJlIGZvciBob2xkaW5nIHRo ZSBzdGF0ZQpAQCAtODI0LDYgKzgyMCw3IEBAIHN0cnVjdCBtdDc1MzBfcHJpdiB7CiAJdTgJCQlt aXJyb3JfdHg7CiAKIAlzdHJ1Y3QgbXQ3NTMwX3BvcnQJcG9ydHNbTVQ3NTMwX05VTV9QT1JUU107 CisJc3RydWN0IG10NzUzeF9wY3MJcGNzW01UNzUzMF9OVU1fUE9SVFNdOwogCS8qIHByb3RlY3Qg YW1vbmcgcHJvY2Vzc2VzIGZvciByZWdpc3RlcnMgYWNjZXNzKi8KIAlzdHJ1Y3QgbXV0ZXggcmVn X211dGV4OwogCWludCBpcnE7Ci0tIAoyLjMwLjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1CD21C433F5 for ; Mon, 11 Apr 2022 09:46:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344694AbiDKJsu (ORCPT ); Mon, 11 Apr 2022 05:48:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34828 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344693AbiDKJsq (ORCPT ); Mon, 11 Apr 2022 05:48:46 -0400 Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:32c8:5054:ff:fe00:142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 558DD3C71F for ; Mon, 11 Apr 2022 02:46:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Date:Sender:Message-Id:Content-Type: Content-Transfer-Encoding:MIME-Version:Subject:Cc:To:From:References: In-Reply-To:Reply-To: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=PBUozL5TIxonaPPm3Nh+ChnOYojhIraEKu/Zpweidq8=; b=M6dCV8CgL0eONW2rbti+oomK6B GWDu2gkXKPxrycr//b8wvGNCUpHZB4kCvBFpsnZ5L4KNzPVsPYt7oQPgVX2Aw/0aFT5yGF8wNQfnr 8ya53a/jeyDy8eV2C6eux15IJmGI0ZKP+dfeukJQnBLxFCvCBaWBFb9mxeY3AiahOBstUAyx6NLWy vQWaWJhxpVUn1f/KLUvAxpsQFOwubsBCYzQVIScSqydRLrj/swPF86rk2CTPXo6HIUKIPqwVV8rpu uTE+pDVH7hHKyWfihTMfYdT45s9YsWvp1TjkmDnO5IZNKVBL8IyjtHG9Ax4HaQxCUB2S0BpC73Z1N R19SC6Ew==; Received: from e0022681537dd.dyn.armlinux.org.uk ([fd8f:7570:feb6:1:222:68ff:fe15:37dd]:52870 helo=rmk-PC.armlinux.org.uk) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ndqcu-0000HW-A2; Mon, 11 Apr 2022 10:46:28 +0100 Received: from rmk by rmk-PC.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1ndqct-0055RO-Da; Mon, 11 Apr 2022 10:46:27 +0100 In-Reply-To: References: From: "Russell King (Oracle)" To: Landen Chao , DENG Qingfang , Sean Wang Cc: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Jakub Kicinski , Paolo Abeni , Matthias Brugger , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: [PATCH net-next v2 7/9] net: dsa: mt7530: partially convert to phylink_pcs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MIME-Version: 1.0 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" Message-Id: Sender: Russell King Date: Mon, 11 Apr 2022 10:46:27 +0100 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Partially convert the mt7530 driver to use phylink's PCS support. This is a partial implementation as we don't move anything into the pcs_config method yet - this driver supports SGMII or 1000BASE-X without in-band. Tested-by: Marek BehĂșn Signed-off-by: Russell King (Oracle) --- drivers/net/dsa/mt7530.c | 144 +++++++++++++++++++++++---------------- drivers/net/dsa/mt7530.h | 21 +++--- 2 files changed, 95 insertions(+), 70 deletions(-) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index aa7f21683a07..1c0d931973e5 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -24,6 +24,11 @@ #include "mt7530.h" +static struct mt753x_pcs *pcs_to_mt753x_pcs(struct phylink_pcs *pcs) +{ + return container_of(pcs, struct mt753x_pcs, pcs); +} + /* String, offset, and register size in bytes if different from 4 bytes */ static const struct mt7530_mib_desc mt7530_mib[] = { MIB_DESC(1, 0x00, "TxDrop"), @@ -2521,12 +2526,11 @@ static int mt7531_rgmii_setup(struct mt7530_priv *priv, u32 port, return 0; } -static void -mt7531_sgmii_link_up_force(struct dsa_switch *ds, int port, - unsigned int mode, phy_interface_t interface, - int speed, int duplex) +static void mt7531_pcs_link_up(struct phylink_pcs *pcs, unsigned int mode, + phy_interface_t interface, int speed, int duplex) { - struct mt7530_priv *priv = ds->priv; + struct mt7530_priv *priv = pcs_to_mt753x_pcs(pcs)->priv; + int port = pcs_to_mt753x_pcs(pcs)->port; unsigned int val; /* For adjusting speed and duplex of SGMII force mode. */ @@ -2552,6 +2556,9 @@ mt7531_sgmii_link_up_force(struct dsa_switch *ds, int port, /* MT7531 SGMII 1G force mode can only work in full duplex mode, * no matter MT7531_SGMII_FORCE_HALF_DUPLEX is set or not. + * + * The speed check is unnecessary as the MAC capabilities apply + * this restriction. --rmk */ if ((speed == SPEED_10 || speed == SPEED_100) && duplex != DUPLEX_FULL) @@ -2627,9 +2634,10 @@ static int mt7531_sgmii_setup_mode_an(struct mt7530_priv *priv, int port, return 0; } -static void mt7531_sgmii_restart_an(struct dsa_switch *ds, int port) +static void mt7531_pcs_an_restart(struct phylink_pcs *pcs) { - struct mt7530_priv *priv = ds->priv; + struct mt7530_priv *priv = pcs_to_mt753x_pcs(pcs)->priv; + int port = pcs_to_mt753x_pcs(pcs)->port; u32 val; /* Only restart AN when AN is enabled */ @@ -2686,6 +2694,24 @@ mt753x_mac_config(struct dsa_switch *ds, int port, unsigned int mode, return priv->info->mac_port_config(ds, port, mode, state->interface); } +static struct phylink_pcs * +mt753x_phylink_mac_select_pcs(struct dsa_switch *ds, int port, + phy_interface_t interface) +{ + struct mt7530_priv *priv = ds->priv; + + switch (interface) { + case PHY_INTERFACE_MODE_TRGMII: + case PHY_INTERFACE_MODE_SGMII: + case PHY_INTERFACE_MODE_1000BASEX: + case PHY_INTERFACE_MODE_2500BASEX: + return &priv->pcs[port].pcs; + + default: + return NULL; + } +} + static void mt753x_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode, const struct phylink_link_state *state) @@ -2747,17 +2773,6 @@ mt753x_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode, mt7530_write(priv, MT7530_PMCR_P(port), mcr_new); } -static void -mt753x_phylink_mac_an_restart(struct dsa_switch *ds, int port) -{ - struct mt7530_priv *priv = ds->priv; - - if (!priv->info->mac_pcs_an_restart) - return; - - priv->info->mac_pcs_an_restart(ds, port); -} - static void mt753x_phylink_mac_link_down(struct dsa_switch *ds, int port, unsigned int mode, phy_interface_t interface) @@ -2767,16 +2782,13 @@ static void mt753x_phylink_mac_link_down(struct dsa_switch *ds, int port, mt7530_clear(priv, MT7530_PMCR_P(port), PMCR_LINK_SETTINGS_MASK); } -static void mt753x_mac_pcs_link_up(struct dsa_switch *ds, int port, - unsigned int mode, phy_interface_t interface, - int speed, int duplex) +static void mt753x_phylink_pcs_link_up(struct phylink_pcs *pcs, + unsigned int mode, + phy_interface_t interface, + int speed, int duplex) { - struct mt7530_priv *priv = ds->priv; - - if (!priv->info->mac_pcs_link_up) - return; - - priv->info->mac_pcs_link_up(ds, port, mode, interface, speed, duplex); + if (pcs->ops->pcs_link_up) + pcs->ops->pcs_link_up(pcs, mode, interface, speed, duplex); } static void mt753x_phylink_mac_link_up(struct dsa_switch *ds, int port, @@ -2789,8 +2801,6 @@ static void mt753x_phylink_mac_link_up(struct dsa_switch *ds, int port, struct mt7530_priv *priv = ds->priv; u32 mcr; - mt753x_mac_pcs_link_up(ds, port, mode, interface, speed, duplex); - mcr = PMCR_RX_EN | PMCR_TX_EN | PMCR_FORCE_LNK; /* MT753x MAC works in 1G full duplex mode for all up-clocked @@ -2870,6 +2880,8 @@ mt7531_cpu_port_config(struct dsa_switch *ds, int port) return ret; mt7530_write(priv, MT7530_PMCR_P(port), PMCR_CPU_PORT_SETTING(priv->id)); + mt753x_phylink_pcs_link_up(&priv->pcs[port].pcs, MLO_AN_FIXED, + interface, speed, DUPLEX_FULL); mt753x_phylink_mac_link_up(ds, port, MLO_AN_FIXED, interface, NULL, speed, DUPLEX_FULL, true, true); @@ -2909,16 +2921,13 @@ mt753x_phylink_validate(struct dsa_switch *ds, int port, linkmode_and(state->advertising, state->advertising, mask); } -static int -mt7530_phylink_mac_link_state(struct dsa_switch *ds, int port, - struct phylink_link_state *state) +static void mt7530_pcs_get_state(struct phylink_pcs *pcs, + struct phylink_link_state *state) { - struct mt7530_priv *priv = ds->priv; + struct mt7530_priv *priv = pcs_to_mt753x_pcs(pcs)->priv; + int port = pcs_to_mt753x_pcs(pcs)->port; u32 pmsr; - if (port < 0 || port >= MT7530_NUM_PORTS) - return -EINVAL; - pmsr = mt7530_read(priv, MT7530_PMSR_P(port)); state->link = (pmsr & PMSR_LINK); @@ -2945,8 +2954,6 @@ mt7530_phylink_mac_link_state(struct dsa_switch *ds, int port, state->pause |= MLO_PAUSE_RX; if (pmsr & PMSR_TX_FC) state->pause |= MLO_PAUSE_TX; - - return 1; } static int @@ -2988,32 +2995,49 @@ mt7531_sgmii_pcs_get_state_an(struct mt7530_priv *priv, int port, return 0; } -static int -mt7531_phylink_mac_link_state(struct dsa_switch *ds, int port, - struct phylink_link_state *state) +static void mt7531_pcs_get_state(struct phylink_pcs *pcs, + struct phylink_link_state *state) { - struct mt7530_priv *priv = ds->priv; + struct mt7530_priv *priv = pcs_to_mt753x_pcs(pcs)->priv; + int port = pcs_to_mt753x_pcs(pcs)->port; if (state->interface == PHY_INTERFACE_MODE_SGMII) - return mt7531_sgmii_pcs_get_state_an(priv, port, state); - - return -EOPNOTSUPP; + mt7531_sgmii_pcs_get_state_an(priv, port, state); + else + state->link = false; } -static int -mt753x_phylink_mac_link_state(struct dsa_switch *ds, int port, - struct phylink_link_state *state) +static int mt753x_pcs_config(struct phylink_pcs *pcs, unsigned int mode, + phy_interface_t interface, + const unsigned long *advertising, + bool permit_pause_to_mac) { - struct mt7530_priv *priv = ds->priv; + return 0; +} - return priv->info->mac_port_get_state(ds, port, state); +static void mt7530_pcs_an_restart(struct phylink_pcs *pcs) +{ } +static const struct phylink_pcs_ops mt7530_pcs_ops = { + .pcs_get_state = mt7530_pcs_get_state, + .pcs_config = mt753x_pcs_config, + .pcs_an_restart = mt7530_pcs_an_restart, +}; + +static const struct phylink_pcs_ops mt7531_pcs_ops = { + .pcs_get_state = mt7531_pcs_get_state, + .pcs_config = mt753x_pcs_config, + .pcs_an_restart = mt7531_pcs_an_restart, + .pcs_link_up = mt7531_pcs_link_up, +}; + static int mt753x_setup(struct dsa_switch *ds) { struct mt7530_priv *priv = ds->priv; int ret = priv->info->sw_setup(ds); + int i; if (ret) return ret; @@ -3026,6 +3050,13 @@ mt753x_setup(struct dsa_switch *ds) if (ret && priv->irq) mt7530_free_irq_common(priv); + /* Initialise the PCS devices */ + for (i = 0; i < priv->ds->num_ports; i++) { + priv->pcs[i].pcs.ops = priv->info->pcs_ops; + priv->pcs[i].priv = priv; + priv->pcs[i].port = i; + } + return ret; } @@ -3087,9 +3118,8 @@ static const struct dsa_switch_ops mt7530_switch_ops = { .port_mirror_del = mt753x_port_mirror_del, .phylink_get_caps = mt753x_phylink_get_caps, .phylink_validate = mt753x_phylink_validate, - .phylink_mac_link_state = mt753x_phylink_mac_link_state, + .phylink_mac_select_pcs = mt753x_phylink_mac_select_pcs, .phylink_mac_config = mt753x_phylink_mac_config, - .phylink_mac_an_restart = mt753x_phylink_mac_an_restart, .phylink_mac_link_down = mt753x_phylink_mac_link_down, .phylink_mac_link_up = mt753x_phylink_mac_link_up, .get_mac_eee = mt753x_get_mac_eee, @@ -3099,36 +3129,34 @@ static const struct dsa_switch_ops mt7530_switch_ops = { static const struct mt753x_info mt753x_table[] = { [ID_MT7621] = { .id = ID_MT7621, + .pcs_ops = &mt7530_pcs_ops, .sw_setup = mt7530_setup, .phy_read = mt7530_phy_read, .phy_write = mt7530_phy_write, .pad_setup = mt7530_pad_clk_setup, .mac_port_get_caps = mt7530_mac_port_get_caps, - .mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_config = mt7530_mac_config, }, [ID_MT7530] = { .id = ID_MT7530, + .pcs_ops = &mt7530_pcs_ops, .sw_setup = mt7530_setup, .phy_read = mt7530_phy_read, .phy_write = mt7530_phy_write, .pad_setup = mt7530_pad_clk_setup, .mac_port_get_caps = mt7530_mac_port_get_caps, - .mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_config = mt7530_mac_config, }, [ID_MT7531] = { .id = ID_MT7531, + .pcs_ops = &mt7531_pcs_ops, .sw_setup = mt7531_setup, .phy_read = mt7531_ind_phy_read, .phy_write = mt7531_ind_phy_write, .pad_setup = mt7531_pad_setup, .cpu_port_config = mt7531_cpu_port_config, .mac_port_get_caps = mt7531_mac_port_get_caps, - .mac_port_get_state = mt7531_phylink_mac_link_state, .mac_port_config = mt7531_mac_config, - .mac_pcs_an_restart = mt7531_sgmii_restart_an, - .mac_pcs_link_up = mt7531_sgmii_link_up_force, }, }; @@ -3186,7 +3214,7 @@ mt7530_probe(struct mdio_device *mdiodev) if (!priv->info->sw_setup || !priv->info->pad_setup || !priv->info->phy_read || !priv->info->phy_write || !priv->info->mac_port_get_caps || - !priv->info->mac_port_get_state || !priv->info->mac_port_config) + !priv->info->mac_port_config) return -EINVAL; priv->id = priv->info->id; diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index 73cfd29fbb17..71e36b69b96d 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -741,6 +741,12 @@ static const char *p5_intf_modes(unsigned int p5_interface) struct mt7530_priv; +struct mt753x_pcs { + struct phylink_pcs pcs; + struct mt7530_priv *priv; + int port; +}; + /* struct mt753x_info - This is the main data structure for holding the specific * part for each supported device * @sw_setup: Holding the handler to a device initialization @@ -752,18 +758,14 @@ struct mt7530_priv; * port * @mac_port_validate: Holding the way to set addition validate type for a * certan MAC port - * @mac_port_get_state: Holding the way getting the MAC/PCS state for a certain - * MAC port * @mac_port_config: Holding the way setting up the PHY attribute to a * certain MAC port - * @mac_pcs_an_restart Holding the way restarting PCS autonegotiation for a - * certain MAC port - * @mac_pcs_link_up: Holding the way setting up the PHY attribute to the pcs - * of the certain MAC port */ struct mt753x_info { enum mt753x_id id; + const struct phylink_pcs_ops *pcs_ops; + int (*sw_setup)(struct dsa_switch *ds); int (*phy_read)(struct mt7530_priv *priv, int port, int regnum); int (*phy_write)(struct mt7530_priv *priv, int port, int regnum, u16 val); @@ -774,15 +776,9 @@ struct mt753x_info { void (*mac_port_validate)(struct dsa_switch *ds, int port, phy_interface_t interface, unsigned long *supported); - int (*mac_port_get_state)(struct dsa_switch *ds, int port, - struct phylink_link_state *state); int (*mac_port_config)(struct dsa_switch *ds, int port, unsigned int mode, phy_interface_t interface); - void (*mac_pcs_an_restart)(struct dsa_switch *ds, int port); - void (*mac_pcs_link_up)(struct dsa_switch *ds, int port, - unsigned int mode, phy_interface_t interface, - int speed, int duplex); }; /* struct mt7530_priv - This is the main data structure for holding the state @@ -824,6 +820,7 @@ struct mt7530_priv { u8 mirror_tx; struct mt7530_port ports[MT7530_NUM_PORTS]; + struct mt753x_pcs pcs[MT7530_NUM_PORTS]; /* protect among processes for registers access*/ struct mutex reg_mutex; int irq; -- 2.30.2