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 7195AECAAD2 for ; Mon, 29 Aug 2022 08:34:05 +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:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=mRXUYgk/6+pHhlDQfiSLGh2+D8+bTTiGd6vAedjnuUw=; b=rhmbA8l1Bke4em uievKhhrjHWuo0nNvmm5hFoq6WK1nwOctsyn7PrOin8fvlq+wE1pEg422Pw3/n3ymscn4ze5YpQpP L4m6XAqnRzE/rUKGsAoK4quOrlPxbhhEfSVjsRraODN6x1Esa89wrLnGDXqTpGSi9XXIBp9YTA2sq CLRNgGUQBItO1Vyzx17dhICFr+wfwxoUnq3RSZjZhVIaBq9jyfVlMmIcpskBevZx2Ljv2lhDP/Mua RSVFi4oUirWEg0Yq8b2MTscruW+iiWQnROw8VKV280QEVoLxWwwSiz2QrxBHqOtXGyjlUJ90miEbl zsl6723VtH39NYIx+Djg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oSaDc-006Ewp-CU; Mon, 29 Aug 2022 08:34:04 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oSaBF-006DTu-Fi for linux-phy@lists.infradead.org; Mon, 29 Aug 2022 08:31:45 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 4F12860E2D; Mon, 29 Aug 2022 08:31:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D6D3C433C1; Mon, 29 Aug 2022 08:31:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1661761895; bh=3jH5SG6hTNC6C1QI89LN0qcoIT6c8NN92IdtHImbUb0=; h=From:To:Cc:Subject:Date:From; b=ShumgAqYIarUYTZ9T/aynRkSsQJ1tIvvKeyL8qhCDCe0Zp/Vy0DiM9Svw8c+IyLzA pgvbZkJ69TEMPRqjv6x1qgOqb3a6JvYFO/561RPfiRdeSBWVKBJfjRNPZcyjainuhI /1iUSgTP9MwSYTGD2W2p22vwPzja94qtJuzZUEYly7lEVOHhUTCe1REI/jLKGpaQOp pHJCFJOXKzbk8FAKggn9tormrQw0aUiUL1uaAtJkX9CJE6V8KTh7ejc8KWRubskcPe ortxNjX0txmYq+d00Mr+9LoY5LFgjEosf1iMf+9+FvPEx6D7hmVfc/AEsueYaBqkWS r3S1amzlybObw== Received: by pali.im (Postfix) id 38C5A7DE; Mon, 29 Aug 2022 10:31:32 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Miquel Raynal , Kishon Vijay Abraham I , Vinod Koul , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Shinichiro Kawasaki , Damien Le Moal Cc: linux-phy@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] phy: marvell: phy-mvebu-a3700-comphy: Remove broken reset support Date: Mon, 29 Aug 2022 10:30:46 +0200 Message-Id: <20220829083046.15082-1-pali@kernel.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220829_013140_082740_D7E7BBDB X-CRM114-Status: GOOD ( 23.15 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org UmVzZXQgc3VwcG9ydCBmb3IgU0FUQSBQSFkgaXMgc29tZWhvdyBicm9rZW4gYW5kIGFmdGVyIGNh bGxpbmcgaXQsIGtlcm5lbAppcyBub3QgYWJsZSB0byBkZXRlY3QgYW5kIGluaXRpYWxpemUgU0FU QSBkaXNrIFNhbXN1bmcgU1NEIDg1MCBFTVQwIFsxXS4KClJlc2V0IHN1cHBvcnQgd2FzIGludHJv ZHVjZWQgaW4gY29tbWl0IDkzNDMzNzA4MGM2YyAoInBoeTogbWFydmVsbDoKcGh5LW12ZWJ1LWEz NzAwLWNvbXBoeTogQWRkIG5hdGl2ZSBrZXJuZWwgaW1wbGVtZW50YXRpb24iKSBhcyBwYXJ0IG9m CmNvbXBsZXRlIHJld3JpdGUgb2YgdGhpcyBkcml2ZXIuIHYxIHBhdGNoIHNlcmllcyBvZiB0aGF0 IGNvbW1pdCBbMl3CoGRpZApub3QgY29udGFpbiByZXNldCBzdXBwb3J0IGFuZCB3YXMgdGVzdGVk IHRoYXQgaXMgd29ya2luZyBmaW5lIHdpdGgKRXRoZXJuZXQsIFNBVEEgYW5kIFVTQiBQSFlzIHdp dGhvdXQgaXNzdWVzIHRvby4KClNvIGZvciBub3cgcmVtb3ZlIGJyb2tlbiByZXNldCBzdXBwb3J0 IGFuZCBjaGFuZ2UgaW1wbGVtZW50YXRpb24gb2YKcG93ZXJfb2ZmIGNhbGxiYWNrIHRvIHBvd2Vy IG9mZiBhbGwgZnVuY3Rpb25zIG9uIHNwZWNpZmllZCBsYW5lIChhbmQgbm90Cm9ubHkgc2VsZWN0 ZWQgZnVuY3Rpb24pIGJlY2F1c2UgZHVyaW5nIHN0YXJ0dXAga2VybmVsIGRvZXMgbm90IGtub3cg d2hpY2gKZnVuY3Rpb24gd2FzIHNlbGVjdGVkIGFuZCBjb25maWd1cmVkIGJ5IGJvb3Rsb2FkZXIu IFNhbWUgbG9naWMgd2FzIHVzZWQKYWxzbyBpbiB2MSBwYXRjaCBzZXJpZXMgb2YgdGhhdCBjb21t aXQuCgpUaGlzIGNoYW5nZSBmaXhlcyBpc3N1ZXMgd2l0aCBpbml0aWFsaXphdGlvbiBvZiBTQVRB IGRpc2sgU2Ftc3VuZyBTU0QgODUwCmFuZCBkaXNrIGlzIHdvcmtpbmcgYWdhaW4sIGxpa2UgYmVm b3JlIG1lbnRpb25lZCBjb21taXQuCgpPbmNlIHByb2JsZW0gd2l0aCBQSFkgcmVzZXQgY2FsbGJh Y2sgaXMgc29sdmVkIGl0cyBmdW5jdGlvbmFsaXR5IGNvdWxkIGJlCnJlLWludHJvZHVjZWQuIEJ1 dCBmb3Igbm93IGl0IGlzIHVua25vd24gd2h5IGl0IGRvZXMgbm90IHdvcmsuCgpbMV0gLSBodHRw czovL2xvcmUua2VybmVsLm9yZy9yLzIwMjIwNTMxMTI0MTU5LjNlNGxnbjJ2NDYyaXJidHpAc2hp bmRldi8KWzJdIC0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDIxMTAyODE4NDI0Mi4yMjEw NS0xLWthYmVsQGtlcm5lbC5vcmcvCgpSZXBvcnRlZC1ieTogU2hpbmljaGlybyBLYXdhc2FraSA8 c2hpbmljaGlyby5rYXdhc2FraUB3ZGMuY29tPgpGaXhlczogOTM0MzM3MDgwYzZjICgicGh5OiBt YXJ2ZWxsOiBwaHktbXZlYnUtYTM3MDAtY29tcGh5OiBBZGQgbmF0aXZlIGtlcm5lbCBpbXBsZW1l bnRhdGlvbiIpCkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnICMgdjUuMTgrClNpZ25lZC1vZmYt Ynk6IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+Ci0tLQogZHJpdmVycy9waHkvbWFydmVs bC9waHktbXZlYnUtYTM3MDAtY29tcGh5LmMgfCA4NyArKysrLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvcGh5L21hcnZlbGwvcGh5LW12ZWJ1LWEzNzAwLWNvbXBoeS5jIGIvZHJpdmVy cy9waHkvbWFydmVsbC9waHktbXZlYnUtYTM3MDAtY29tcGh5LmMKaW5kZXggYTRkN2Q5YmQxMDBk Li42NzcxMmM3N2Q4MDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGh5L21hcnZlbGwvcGh5LW12ZWJ1 LWEzNzAwLWNvbXBoeS5jCisrKyBiL2RyaXZlcnMvcGh5L21hcnZlbGwvcGh5LW12ZWJ1LWEzNzAw LWNvbXBoeS5jCkBAIC0yNzQsNyArMjc0LDYgQEAgc3RydWN0IG12ZWJ1X2EzNzAwX2NvbXBoeV9s YW5lIHsKIAlpbnQgc3VibW9kZTsKIAlib29sIGludmVydF90eDsKIAlib29sIGludmVydF9yeDsK LQlib29sIG5lZWRzX3Jlc2V0OwogfTsKIAogc3RydWN0IGdiZV9waHlfaW5pdF9kYXRhX2ZpeCB7 CkBAIC0xMDk3LDQwICsxMDk2LDEyIEBAIG12ZWJ1X2EzNzAwX2NvbXBoeV9wY2llX3Bvd2VyX29m ZihzdHJ1Y3QgbXZlYnVfYTM3MDBfY29tcGh5X2xhbmUgKmxhbmUpCiAJCQkgICAgMHgwLCBQVV9Q TExfQklUIHwgUFVfUlhfQklUIHwgUFVfVFhfQklUKTsKIH0KIAotc3RhdGljIGludCBtdmVidV9h MzcwMF9jb21waHlfcmVzZXQoc3RydWN0IHBoeSAqcGh5KQorc3RhdGljIHZvaWQgbXZlYnVfYTM3 MDBfY29tcGh5X3VzYjNfcG93ZXJfb2ZmKHN0cnVjdCBtdmVidV9hMzcwMF9jb21waHlfbGFuZSAq bGFuZSkKIHsKLQlzdHJ1Y3QgbXZlYnVfYTM3MDBfY29tcGh5X2xhbmUgKmxhbmUgPSBwaHlfZ2V0 X2RydmRhdGEocGh5KTsKLQl1MTYgbWFzaywgZGF0YTsKLQotCWRldl9kYmcobGFuZS0+ZGV2LCAi cmVzZXR0aW5nIGxhbmUgJWRcbiIsIGxhbmUtPmlkKTsKLQotCS8qIENPTVBIWSByZXNldCBmb3Ig aW50ZXJuYWwgbG9naWMgKi8KLQljb21waHlfbGFuZV9yZWdfc2V0KGxhbmUsIENPTVBIWV9TRlRf UkVTRVQsCi0JCQkgICAgU0ZUX1JTVF9OT19SRUcsIFNGVF9SU1RfTk9fUkVHKTsKLQotCS8qIENP TVBIWSByZWdpc3RlciByZXNldCAoY2xlYXJlZCBhdXRvbWF0aWNhbGx5KSAqLwotCWNvbXBoeV9s YW5lX3JlZ19zZXQobGFuZSwgQ09NUEhZX1NGVF9SRVNFVCwgU0ZUX1JTVCwgU0ZUX1JTVCk7Ci0K LQkvKiBQSVBFIHNvZnQgYW5kIHJlZ2lzdGVyIHJlc2V0ICovCi0JZGF0YSA9IFBJUEVfU09GVF9S RVNFVCB8IFBJUEVfUkVHX1JFU0VUOwotCW1hc2sgPSBkYXRhOwotCWNvbXBoeV9sYW5lX3JlZ19z ZXQobGFuZSwgQ09NUEhZX1BJUEVfUlNUX0NMS19DVFJMLCBkYXRhLCBtYXNrKTsKLQotCS8qIFJl bGVhc2UgUElQRSByZWdpc3RlciByZXNldCAqLwotCWNvbXBoeV9sYW5lX3JlZ19zZXQobGFuZSwg Q09NUEhZX1BJUEVfUlNUX0NMS19DVFJMLAotCQkJICAgIDB4MCwgUElQRV9SRUdfUkVTRVQpOwot Ci0JLyogUmVzZXQgU0IgY29uZmlndXJhdGlvbiByZWdpc3RlciAob25seSBmb3IgbGFuZXMgMCBh bmQgMSkgKi8KLQlpZiAobGFuZS0+aWQgPT0gMCB8fCBsYW5lLT5pZCA9PSAxKSB7Ci0JCXUzMiBt YXNrLCBkYXRhOwotCi0JCWRhdGEgPSBQSU5fUkVTRVRfQ09SRV9CSVQgfCBQSU5fUkVTRVRfQ09N UEhZX0JJVCB8Ci0JCSAgICAgICBQSU5fUFVfUExMX0JJVCB8IFBJTl9QVV9SWF9CSVQgfCBQSU5f UFVfVFhfQklUOwotCQltYXNrID0gZGF0YSB8IFBJTl9QVV9JVlJFRl9CSVQgfCBQSU5fVFhfSURM RV9CSVQ7Ci0JCWNvbXBoeV9wZXJpcGhfcmVnX3NldChsYW5lLCBDT01QSFlfUEhZX0NGRzEsIGRh dGEsIG1hc2spOwotCX0KLQotCXJldHVybiAwOworCS8qCisJICogVGhlIFVTQjMgTUFDIHNldHMg dGhlIFVTQjMgUEhZIHRvIGxvdyBzdGF0ZSwgc28gd2UgZG8gbm90CisJICogbmVlZCB0byBwb3dl ciBvZmYgVVNCMyBQSFkgYWdhaW4uCisJICovCiB9CiAKIHN0YXRpYyBib29sIG12ZWJ1X2EzNzAw X2NvbXBoeV9jaGVja19tb2RlKGludCBsYW5lLApAQCAtMTE3MSwxMCArMTE0Miw2IEBAIHN0YXRp YyBpbnQgbXZlYnVfYTM3MDBfY29tcGh5X3NldF9tb2RlKHN0cnVjdCBwaHkgKnBoeSwgZW51bSBw aHlfbW9kZSBtb2RlLAogCSAgICAobGFuZS0+bW9kZSAhPSBtb2RlIHx8IGxhbmUtPnN1Ym1vZGUg IT0gc3VibW9kZSkpCiAJCXJldHVybiAtRUJVU1k7CiAKLQkvKiBJZiBjaGFuZ2luZyBtb2RlLCBl bnN1cmUgcmVzZXQgaXMgY2FsbGVkICovCi0JaWYgKGxhbmUtPm1vZGUgIT0gUEhZX01PREVfSU5W QUxJRCAmJiBsYW5lLT5tb2RlICE9IG1vZGUpCi0JCWxhbmUtPm5lZWRzX3Jlc2V0ID0gdHJ1ZTsK LQogCS8qIEp1c3QgcmVtZW1iZXIgdGhlIG1vZGUsIC0+cG93ZXJfb24oKSB3aWxsIGRvIHRoZSBy ZWFsIHNldHVwICovCiAJbGFuZS0+bW9kZSA9IG1vZGU7CiAJbGFuZS0+c3VibW9kZSA9IHN1Ym1v ZGU7CkBAIC0xMTg1LDcgKzExNTIsNiBAQCBzdGF0aWMgaW50IG12ZWJ1X2EzNzAwX2NvbXBoeV9z ZXRfbW9kZShzdHJ1Y3QgcGh5ICpwaHksIGVudW0gcGh5X21vZGUgbW9kZSwKIHN0YXRpYyBpbnQg bXZlYnVfYTM3MDBfY29tcGh5X3Bvd2VyX29uKHN0cnVjdCBwaHkgKnBoeSkKIHsKIAlzdHJ1Y3Qg bXZlYnVfYTM3MDBfY29tcGh5X2xhbmUgKmxhbmUgPSBwaHlfZ2V0X2RydmRhdGEocGh5KTsKLQlp bnQgcmV0OwogCiAJaWYgKCFtdmVidV9hMzcwMF9jb21waHlfY2hlY2tfbW9kZShsYW5lLT5pZCwg bGFuZS0+bW9kZSwKIAkJCQkJICAgbGFuZS0+c3VibW9kZSkpIHsKQEAgLTExOTMsMTQgKzExNTks NiBAQCBzdGF0aWMgaW50IG12ZWJ1X2EzNzAwX2NvbXBoeV9wb3dlcl9vbihzdHJ1Y3QgcGh5ICpw aHkpCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChsYW5lLT5uZWVkc19yZXNldCkgewot CQlyZXQgPSBtdmVidV9hMzcwMF9jb21waHlfcmVzZXQocGh5KTsKLQkJaWYgKHJldCkKLQkJCXJl dHVybiByZXQ7Ci0KLQkJbGFuZS0+bmVlZHNfcmVzZXQgPSBmYWxzZTsKLQl9Ci0KIAlzd2l0Y2gg KGxhbmUtPm1vZGUpIHsKIAljYXNlIFBIWV9NT0RFX1VTQl9IT1NUX1NTOgogCQlkZXZfZGJnKGxh bmUtPmRldiwgInNldCBsYW5lICVkIHRvIFVTQjMgaG9zdCBtb2RlXG4iLCBsYW5lLT5pZCk7CkBA IC0xMjI0LDM4ICsxMTgyLDI4IEBAIHN0YXRpYyBpbnQgbXZlYnVfYTM3MDBfY29tcGh5X3Bvd2Vy X29mZihzdHJ1Y3QgcGh5ICpwaHkpCiB7CiAJc3RydWN0IG12ZWJ1X2EzNzAwX2NvbXBoeV9sYW5l ICpsYW5lID0gcGh5X2dldF9kcnZkYXRhKHBoeSk7CiAKLQlzd2l0Y2ggKGxhbmUtPm1vZGUpIHsK LQljYXNlIFBIWV9NT0RFX1VTQl9IT1NUX1NTOgotCQkvKgotCQkgKiBUaGUgVVNCMyBNQUMgc2V0 cyB0aGUgVVNCMyBQSFkgdG8gbG93IHN0YXRlLCBzbyB3ZSBkbyBub3QKLQkJICogbmVlZCB0byBw b3dlciBvZmYgVVNCMyBQSFkgYWdhaW4uCi0JCSAqLwotCQlicmVhazsKLQotCWNhc2UgUEhZX01P REVfU0FUQToKLQkJbXZlYnVfYTM3MDBfY29tcGh5X3NhdGFfcG93ZXJfb2ZmKGxhbmUpOwotCQli cmVhazsKLQotCWNhc2UgUEhZX01PREVfRVRIRVJORVQ6CisJc3dpdGNoIChsYW5lLT5pZCkgewor CWNhc2UgMDoKKwkJbXZlYnVfYTM3MDBfY29tcGh5X3VzYjNfcG93ZXJfb2ZmKGxhbmUpOwogCQlt dmVidV9hMzcwMF9jb21waHlfZXRoZXJuZXRfcG93ZXJfb2ZmKGxhbmUpOwotCQlicmVhazsKLQot CWNhc2UgUEhZX01PREVfUENJRToKKwkJcmV0dXJuIDA7CisJY2FzZSAxOgogCQltdmVidV9hMzcw MF9jb21waHlfcGNpZV9wb3dlcl9vZmYobGFuZSk7Ci0JCWJyZWFrOwotCisJCW12ZWJ1X2EzNzAw X2NvbXBoeV9ldGhlcm5ldF9wb3dlcl9vZmYobGFuZSk7CisJCXJldHVybiAwOworCWNhc2UgMjoK KwkJbXZlYnVfYTM3MDBfY29tcGh5X3VzYjNfcG93ZXJfb2ZmKGxhbmUpOworCQltdmVidV9hMzcw MF9jb21waHlfc2F0YV9wb3dlcl9vZmYobGFuZSk7CisJCXJldHVybiAwOwogCWRlZmF1bHQ6CiAJ CWRldl9lcnIobGFuZS0+ZGV2LCAiaW52YWxpZCBDT01QSFkgbW9kZVxuIik7CiAJCXJldHVybiAt RUlOVkFMOwogCX0KLQotCXJldHVybiAwOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeV9v cHMgbXZlYnVfYTM3MDBfY29tcGh5X29wcyA9IHsKIAkucG93ZXJfb24JPSBtdmVidV9hMzcwMF9j b21waHlfcG93ZXJfb24sCiAJLnBvd2VyX29mZgk9IG12ZWJ1X2EzNzAwX2NvbXBoeV9wb3dlcl9v ZmYsCi0JLnJlc2V0CQk9IG12ZWJ1X2EzNzAwX2NvbXBoeV9yZXNldCwKIAkuc2V0X21vZGUJPSBt dmVidV9hMzcwMF9jb21waHlfc2V0X21vZGUsCiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogfTsK QEAgLTEzOTMsOCArMTM0MSw3IEBAIHN0YXRpYyBpbnQgbXZlYnVfYTM3MDBfY29tcGh5X3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCSAqIFRvIGF2b2lkIHJlbHlpbmcgb24g dGhlIGJvb3Rsb2FkZXIvZmlybXdhcmUgY29uZmlndXJhdGlvbiwKIAkJICogcG93ZXIgb2ZmIGFs bCBjb21waHlzLgogCQkgKi8KLQkJbXZlYnVfYTM3MDBfY29tcGh5X3Jlc2V0KHBoeSk7Ci0JCWxh bmUtPm5lZWRzX3Jlc2V0ID0gZmFsc2U7CisJCW12ZWJ1X2EzNzAwX2NvbXBoeV9wb3dlcl9vZmYo cGh5KTsKIAl9CiAKIAlwcm92aWRlciA9IGRldm1fb2ZfcGh5X3Byb3ZpZGVyX3JlZ2lzdGVyKCZw ZGV2LT5kZXYsCi0tIAoyLjIwLjEKCgotLSAKbGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51eC1w aHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1h bi9saXN0aW5mby9saW51eC1waHkK 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 B86B0ECAAD2 for ; Mon, 29 Aug 2022 08:31:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229750AbiH2Ibp (ORCPT ); Mon, 29 Aug 2022 04:31:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35006 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229727AbiH2Ibh (ORCPT ); Mon, 29 Aug 2022 04:31:37 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9FE74D4EB for ; Mon, 29 Aug 2022 01:31:36 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 529A160ECB for ; Mon, 29 Aug 2022 08:31:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D6D3C433C1; Mon, 29 Aug 2022 08:31:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1661761895; bh=3jH5SG6hTNC6C1QI89LN0qcoIT6c8NN92IdtHImbUb0=; h=From:To:Cc:Subject:Date:From; b=ShumgAqYIarUYTZ9T/aynRkSsQJ1tIvvKeyL8qhCDCe0Zp/Vy0DiM9Svw8c+IyLzA pgvbZkJ69TEMPRqjv6x1qgOqb3a6JvYFO/561RPfiRdeSBWVKBJfjRNPZcyjainuhI /1iUSgTP9MwSYTGD2W2p22vwPzja94qtJuzZUEYly7lEVOHhUTCe1REI/jLKGpaQOp pHJCFJOXKzbk8FAKggn9tormrQw0aUiUL1uaAtJkX9CJE6V8KTh7ejc8KWRubskcPe ortxNjX0txmYq+d00Mr+9LoY5LFgjEosf1iMf+9+FvPEx6D7hmVfc/AEsueYaBqkWS r3S1amzlybObw== Received: by pali.im (Postfix) id 38C5A7DE; Mon, 29 Aug 2022 10:31:32 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Miquel Raynal , Kishon Vijay Abraham I , Vinod Koul , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Shinichiro Kawasaki , Damien Le Moal Cc: linux-phy@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] phy: marvell: phy-mvebu-a3700-comphy: Remove broken reset support Date: Mon, 29 Aug 2022 10:30:46 +0200 Message-Id: <20220829083046.15082-1-pali@kernel.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Reset support for SATA PHY is somehow broken and after calling it, kernel is not able to detect and initialize SATA disk Samsung SSD 850 EMT0 [1]. Reset support was introduced in commit 934337080c6c ("phy: marvell: phy-mvebu-a3700-comphy: Add native kernel implementation") as part of complete rewrite of this driver. v1 patch series of that commit [2] did not contain reset support and was tested that is working fine with Ethernet, SATA and USB PHYs without issues too. So for now remove broken reset support and change implementation of power_off callback to power off all functions on specified lane (and not only selected function) because during startup kernel does not know which function was selected and configured by bootloader. Same logic was used also in v1 patch series of that commit. This change fixes issues with initialization of SATA disk Samsung SSD 850 and disk is working again, like before mentioned commit. Once problem with PHY reset callback is solved its functionality could be re-introduced. But for now it is unknown why it does not work. [1] - https://lore.kernel.org/r/20220531124159.3e4lgn2v462irbtz@shindev/ [2] - https://lore.kernel.org/r/20211028184242.22105-1-kabel@kernel.org/ Reported-by: Shinichiro Kawasaki Fixes: 934337080c6c ("phy: marvell: phy-mvebu-a3700-comphy: Add native kernel implementation") Cc: stable@vger.kernel.org # v5.18+ Signed-off-by: Pali Rohár --- drivers/phy/marvell/phy-mvebu-a3700-comphy.c | 87 ++++---------------- 1 file changed, 17 insertions(+), 70 deletions(-) diff --git a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c index a4d7d9bd100d..67712c77d806 100644 --- a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c +++ b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c @@ -274,7 +274,6 @@ struct mvebu_a3700_comphy_lane { int submode; bool invert_tx; bool invert_rx; - bool needs_reset; }; struct gbe_phy_init_data_fix { @@ -1097,40 +1096,12 @@ mvebu_a3700_comphy_pcie_power_off(struct mvebu_a3700_comphy_lane *lane) 0x0, PU_PLL_BIT | PU_RX_BIT | PU_TX_BIT); } -static int mvebu_a3700_comphy_reset(struct phy *phy) +static void mvebu_a3700_comphy_usb3_power_off(struct mvebu_a3700_comphy_lane *lane) { - struct mvebu_a3700_comphy_lane *lane = phy_get_drvdata(phy); - u16 mask, data; - - dev_dbg(lane->dev, "resetting lane %d\n", lane->id); - - /* COMPHY reset for internal logic */ - comphy_lane_reg_set(lane, COMPHY_SFT_RESET, - SFT_RST_NO_REG, SFT_RST_NO_REG); - - /* COMPHY register reset (cleared automatically) */ - comphy_lane_reg_set(lane, COMPHY_SFT_RESET, SFT_RST, SFT_RST); - - /* PIPE soft and register reset */ - data = PIPE_SOFT_RESET | PIPE_REG_RESET; - mask = data; - comphy_lane_reg_set(lane, COMPHY_PIPE_RST_CLK_CTRL, data, mask); - - /* Release PIPE register reset */ - comphy_lane_reg_set(lane, COMPHY_PIPE_RST_CLK_CTRL, - 0x0, PIPE_REG_RESET); - - /* Reset SB configuration register (only for lanes 0 and 1) */ - if (lane->id == 0 || lane->id == 1) { - u32 mask, data; - - data = PIN_RESET_CORE_BIT | PIN_RESET_COMPHY_BIT | - PIN_PU_PLL_BIT | PIN_PU_RX_BIT | PIN_PU_TX_BIT; - mask = data | PIN_PU_IVREF_BIT | PIN_TX_IDLE_BIT; - comphy_periph_reg_set(lane, COMPHY_PHY_CFG1, data, mask); - } - - return 0; + /* + * The USB3 MAC sets the USB3 PHY to low state, so we do not + * need to power off USB3 PHY again. + */ } static bool mvebu_a3700_comphy_check_mode(int lane, @@ -1171,10 +1142,6 @@ static int mvebu_a3700_comphy_set_mode(struct phy *phy, enum phy_mode mode, (lane->mode != mode || lane->submode != submode)) return -EBUSY; - /* If changing mode, ensure reset is called */ - if (lane->mode != PHY_MODE_INVALID && lane->mode != mode) - lane->needs_reset = true; - /* Just remember the mode, ->power_on() will do the real setup */ lane->mode = mode; lane->submode = submode; @@ -1185,7 +1152,6 @@ static int mvebu_a3700_comphy_set_mode(struct phy *phy, enum phy_mode mode, static int mvebu_a3700_comphy_power_on(struct phy *phy) { struct mvebu_a3700_comphy_lane *lane = phy_get_drvdata(phy); - int ret; if (!mvebu_a3700_comphy_check_mode(lane->id, lane->mode, lane->submode)) { @@ -1193,14 +1159,6 @@ static int mvebu_a3700_comphy_power_on(struct phy *phy) return -EINVAL; } - if (lane->needs_reset) { - ret = mvebu_a3700_comphy_reset(phy); - if (ret) - return ret; - - lane->needs_reset = false; - } - switch (lane->mode) { case PHY_MODE_USB_HOST_SS: dev_dbg(lane->dev, "set lane %d to USB3 host mode\n", lane->id); @@ -1224,38 +1182,28 @@ static int mvebu_a3700_comphy_power_off(struct phy *phy) { struct mvebu_a3700_comphy_lane *lane = phy_get_drvdata(phy); - switch (lane->mode) { - case PHY_MODE_USB_HOST_SS: - /* - * The USB3 MAC sets the USB3 PHY to low state, so we do not - * need to power off USB3 PHY again. - */ - break; - - case PHY_MODE_SATA: - mvebu_a3700_comphy_sata_power_off(lane); - break; - - case PHY_MODE_ETHERNET: + switch (lane->id) { + case 0: + mvebu_a3700_comphy_usb3_power_off(lane); mvebu_a3700_comphy_ethernet_power_off(lane); - break; - - case PHY_MODE_PCIE: + return 0; + case 1: mvebu_a3700_comphy_pcie_power_off(lane); - break; - + mvebu_a3700_comphy_ethernet_power_off(lane); + return 0; + case 2: + mvebu_a3700_comphy_usb3_power_off(lane); + mvebu_a3700_comphy_sata_power_off(lane); + return 0; default: dev_err(lane->dev, "invalid COMPHY mode\n"); return -EINVAL; } - - return 0; } static const struct phy_ops mvebu_a3700_comphy_ops = { .power_on = mvebu_a3700_comphy_power_on, .power_off = mvebu_a3700_comphy_power_off, - .reset = mvebu_a3700_comphy_reset, .set_mode = mvebu_a3700_comphy_set_mode, .owner = THIS_MODULE, }; @@ -1393,8 +1341,7 @@ static int mvebu_a3700_comphy_probe(struct platform_device *pdev) * To avoid relying on the bootloader/firmware configuration, * power off all comphys. */ - mvebu_a3700_comphy_reset(phy); - lane->needs_reset = false; + mvebu_a3700_comphy_power_off(phy); } provider = devm_of_phy_provider_register(&pdev->dev, -- 2.20.1