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 BEDEDCD11DB for ; Thu, 21 Mar 2024 19:18:19 +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:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=NcbJIfOOlM2Jlromo38eeWQ2jaTEuV5LM1Tj4ZNrNfg=; b=e5GVNFg4FecYlo d0v6DW4hUPp/G7mBYyOHajlxB2S3rAPKg4DpSJ9lnC6/qkHGBaFJbdsGg0ieYUc/CZxJD2fF9lgOs 1d9ob78ZqYjDuiP4cJnY4WQEfrGnbl3RZvscFZjbO9CNlpiunHZwpxo7fqD88LIW6prz0nE/UtJHY 21ca5SqIewiTbSJ1Hg3/++Ca4x8VVwcrfDIUcRLvPYSTWjQxc4VWmlg4K/fxnnAj1n8DxmKEyPBVy SvDUSfTyviZ1Ktk5QA4WOMSl6Ta/1VlrfE2iMyi8gg4h5f3yUf/LF6bzqE56VcgTwNueqKek5nsH8 lJJ7/g5PQai4Ux9djyOA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rnNvS-00000004MrG-1YaU; Thu, 21 Mar 2024 19:18:06 +0000 Received: from out-177.mta0.migadu.com ([2001:41d0:1004:224b::b1]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rnNvO-00000004MqM-2bE7 for linux-arm-kernel@lists.infradead.org; Thu, 21 Mar 2024 19:18:04 +0000 Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1711048678; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kOtlv+4nkRuh9/gidbp7rsR+GDOClRxPEKCNqAqOIQE=; b=QjTdQaqbcBNzwpEMBU9IBZugzAMlhMMFdYxNitzgmpucKHWzSGX4Zk92SZbCFTpFDonZjf pR5tzcoM7uCYTAMk9SurGcJc2Qm0uPmQNJefv19v1kVOGATsq+dIEWbuchV5Ebs4siq+pE 4Bo/MU9UxGB63aNxcb3ud210HehtSBc= Date: Thu, 21 Mar 2024 15:17:44 -0400 MIME-Version: 1.0 Subject: Re: [PATCH v2 5/8] drm: zynqmp_dp: Don't retrain the link in our IRQ Content-Language: en-US To: Tomi Valkeinen Cc: Michal Simek , David Airlie , linux-kernel@vger.kernel.org, Daniel Vetter , linux-arm-kernel@lists.infradead.org, Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , dri-devel@lists.freedesktop.org References: <20240319225122.3048400-1-sean.anderson@linux.dev> <20240319225122.3048400-6-sean.anderson@linux.dev> <53b2df23-d5ea-498b-a501-b64f753c0074@linux.dev> <0514ef71-5baa-4989-9b7d-8bd9526c4d8d@ideasonboard.com> <16ccf678-270c-4770-8cc9-f676b4fabf09@linux.dev> <1f27ce69-9ea6-4df4-9147-332d74febdf0@ideasonboard.com> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Sean Anderson In-Reply-To: <1f27ce69-9ea6-4df4-9147-332d74febdf0@ideasonboard.com> X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240321_121802_952845_74BD168C X-CRM114-Status: GOOD ( 52.43 ) 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 T24gMy8yMS8yNCAxNTowOCwgVG9taSBWYWxrZWluZW4gd3JvdGU6Cj4gT24gMjEvMDMvMjAyNCAy MDowMSwgU2VhbiBBbmRlcnNvbiB3cm90ZToKPj4gT24gMy8yMS8yNCAxMzoyNSwgVG9taSBWYWxr ZWluZW4gd3JvdGU6Cj4+PiBPbiAyMS8wMy8yMDI0IDE3OjUyLCBTZWFuIEFuZGVyc29uIHdyb3Rl Ogo+Pj4+IE9uIDMvMjAvMjQgMDI6NTMsIFRvbWkgVmFsa2VpbmVuIHdyb3RlOgo+Pj4+PiBPbiAy MC8wMy8yMDI0IDAwOjUxLCBTZWFuIEFuZGVyc29uIHdyb3RlOgo+Pj4+Pj4gUmV0cmFpbmluZyB0 aGUgbGluayBjYW4gdGFrZSBhIHdoaWxlLCBhbmQgbWlnaHQgaW52b2x2ZSB3YWl0aW5nIGZvcgo+ Pj4+Pj4gRFBDRCByZWFkcy93cml0ZXMgdG8gY29tcGxldGUuIFRoaXMgaXMgaW5hcHByb3ByaWF0 ZSBmb3IgYW4gSVJRIGhhbmRsZXIuCj4+Pj4+PiBKdXN0IHNjaGVkdWxlIHRoaXMgd29yayBmb3Ig bGF0ZXIgY29tcGxldGlvbi4gVGhpcyBpcyByYWN5LCBidXQgd2lsbCBiZQo+Pj4+Pj4gZml4ZWQg aW4gdGhlIG5leHQgY29tbWl0Lgo+Pj4+Pgo+Pj4+PiBZb3Ugc2hvdWxkIGFkZCB0aGUgbG9ja3Mg Zmlyc3QsIGFuZCB1c2UgdGhlbSBoZXJlLCByYXRoZXIgdGhhbiBmaXJzdAo+Pj4+PiBhZGRpbmcg YSBidWdneSBjb21taXQgYW5kIGZpeGluZyBpdCBpbiB0aGUgbmV4dCBvbmUuCj4+Pj4KPj4+PiBJ IGRpZG4ndCB0aGluayBJIGNvdWxkIGFkZCB0aGUgbG9ja3MgZmlyc3Qgc2luY2UgSSBvbmx5IG5v dGljZWQgdGhlIElSUQo+Pj4+IHdhcyB0aHJlYWRlZCByaWdodCBiZWZvcmUgc2VuZGluZyBvdXQg dGhpcyBzZXJpZXMuIFNvIHllYWgsIHdlIGNvdWxkIGFkZAo+Pj4+IGxvY2tpbmcsIGFkZCB0aGUg d29ya3F1ZXVlLCBhbmQgdGhlbiB1bnRocmVhZCB0aGUgSVJRLgo+Pj4+Cj4+Pj4+PiBTaWduZWQt b2ZmLWJ5OiBTZWFuIEFuZGVyc29uIDxzZWFuLmFuZGVyc29uQGxpbnV4LmRldj4KPj4+Pj4+IC0t LQo+Pj4+Pj4gQWN0dWFsbHksIG9uIHNlY29uZCBsb29rIHRoaXMgSVJRIGlzIHRocmVhZGVkLiBT byB3aHkgZG8gd2UgaGF2ZSBhCj4+Pj4+PiB3b3JrcXVldWUgZm9yIEhQRCBldmVudHM/IE1heWJl IHdlIHNob3VsZCBtYWtlIGl0IHVudGhyZWFkZWQ/Cj4+Pj4+Cj4+Pj4+IEluZGVlZCwgdGhlcmUn cyBub3QgbXVjaCB3b3JrIGJlaW5nIGRvbmUgaW4gdGhlIElSUSBoYW5kbGVyLiBJIGRvbid0IGtu b3cgd2h5IGl0J3MgdGhyZWFkZWQuCj4+Pj4+Cj4+Pj4+IFdlIGNvdWxkIG1vdmUgdGhlIHF1ZXVl ZCB3b3JrIHRvIGJlIGluc2lkZSB0aGUgdGhyZWFkZWQgaXJxIGhhbmRsZXIsCj4+Pj4+IGJ1dCB3 aXRoIGEgcXVpY2sgbG9vaywgdGhlIEhQRCB3b3JrIGhhcyBsaW5lcyBsaWtlICJtc2xlZXAoMTAw KSIgKGFuZAo+Pj4+PiB0aGF0J3MgaW5zaWRlIGEgZm9yIGxvb3AuLi4pLCB3aGljaCBpcyBwcm9i YWJseSBub3QgYSBnb29kIHRoaW5nIHRvIGRvCj4+Pj4+IGV2ZW4gaW4gdGhyZWFkZWQgaXJxIGhh bmRsZXIuCj4+Pj4+Cj4+Pj4+IEFsdGhvdWdoIEknbSBub3Qgc3VyZSBpZiB0aGF0IGNvZGUgaXMg Z29vZCB0byBoYXZlIGFueXdoZXJlLiBXaHkgZG8gd2UKPj4+Pj4gZXZlbiBoYXZlIHN1Y2ggY29k ZSBpbiB0aGUgSFBEIHdvcmsgcGF0aC4uLiBXZSBhbHJlYWR5IGdvdCB0aGUgSFBECj4+Pj4+IGlu dGVycnVwdC4gV2hhdCBkb2VzICJJdCB0YWtlcyBzb21lIGRlbGF5IChleCwgMTAwIH4gNTAwIG1z ZWMpIHRvIGdldAo+Pj4+PiB0aGUgSFBEIHNpZ25hbCB3aXRoIHNvbWUgbW9uaXRvcnMiIGV2ZW4g bWVhbi4uLgo+Pj4+Cj4+Pj4gVGhlIGRvY3VtZW50YXRpb24gZm9yIHRoaXMgYml0IGlzCj4+Pj4K Pj4+PiB8IEhQRF9TVEFURcKgwqDCoCAwwqDCoMKgIHJvwqDCoMKgIDB4MMKgwqDCoCBDb250YWlu cyB0aGUgcmF3IHN0YXRlIG9mIHRoZSBIUEQgcGluIG9uIHRoZSBEaXNwbGF5UG9ydCBjb25uZWN0 b3IuCj4+Pj4KPj4+PiBTbyBJIHRoaW5rIHRoZSBpZGVhIGlzIHRvIHBlcmZvcm0gc29tZSBkZWJv dW5jaW5nLgo+Pj4KPj4+IEhtbSwgaXQganVzdCBsb29rcyBhIGJpdCBvZGQgdG8gbWUuIEl0IGNh biBzbGVlcCBmb3IgYSBzZWNvbmQuIEFuZCB0aGUgd29yZGluZyAiSXQgdGFrZXMgc29tZSBkZWxh eSAoZXgsIDEwMCB+IDUwMCBtc2VjKSB0byBnZXQgdGhlIEhQRCBzaWduYWwgd2l0aCBzb21lIG1v bml0b3JzIiBtYWtlcyBpdCBzb3VuZCBsaWtlIHNvbWUga2luZCBvZiBhIGhhY2suLi4KPj4+Cj4+ PiBUaGUgZG9jcyBtZW50aW9uIGRlYm91bmNlIG9uY2U6Cj4+Pgo+Pj4gaHR0cHM6Ly9kb2NzLmFt ZC5jb20vci9lbi1VUy9wZzI5OS12LWRwLXR4c3MxL0hvdC1QbHVnLURldGVjdGlvbgo+Pgo+PiBB cmUgeW91IHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgZG9jdW1lbnQ/IFRoaXMgc2VlbXMgdG8gYmUg ZG9jdW1lbnRhdGlvbiBmb3IgWzFdLiBJcyB0aGF0IGluc3RhbnRpYXRlZCBhcyBhIGhhcmQgYmxv Y2sgb24gdGhlIFp5bnFNUD8KPj4KPj4gWzFdIGh0dHBzOi8vd3d3LnhpbGlueC5jb20vcHJvZHVj dHMvaW50ZWxsZWN0dWFsLXByb3BlcnR5L2VmLWRpLWRpc3BsYXlwb3J0Lmh0bWwKPiAKPiBZb3Un cmUgcmlnaHQsIHdyb25nIGRvY3VtZW50LiBUaGUgcmVnaXN0ZXJzIGFuZCBiaXRmaWVsZCBuYW1l cyBJIGxvb2tlZCBhdCBqdXN0IG1hdGNoZWQsIHNvIEkgZGlkbid0IHRoaW5rIGl0IHRocm91Z2gu Li4KPiAKPiBUaGUgcmlnaHQgZG9jIHNheXMgZXZlbiBsZXNzOgo+IAo+IGh0dHBzOi8vZG9jcy5h bWQuY29tL3IvZW4tVVMvdWcxMDg1LXp5bnEtdWx0cmFzY2FsZS10cm0vVXBvbi1IUEQtQXNzZXJ0 aW9uCj4gCj4+PiBCdXQgaXQncyBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyB3aGF0IHRoZSBTVyBt dXN0IGRvIGFuZCB3aGF0J3MgZG9uZSBieSB0aGUgSFcuIERlYm91bmNlIGlzIG5vdCBtZW50aW9u ZWQgbGF0ZXIsIGUuZy4gaW4gdGhlIEhQRCBFdmVudCBIYW5kbGluZy4gQnV0IGlmIGRlYm91bmNl IGlzIG5lZWRlZCwgd291bGRuJ3QgaXQgYmUgcGVyaGFwcyBpbiBhIGZldyBtaWxsaXNlY29uZHMs IGluc3RlYWQgb2YgaHVuZHJlZHMgb2YgbWlsbGlzZWNvbmRzLi4uCj4+Cj4+IFdlbGwsIHRoZSBE UCBzcGVjIHNheXMKPj4KPj4gfCBJZiB0aGUgSFBEIGlzIHRoZSByZXN1bHQgb2YgYSBuZXcgZGV2 aWNlIGJlaW5nIGNvbm5lY3RlZCwgZWl0aGVyCj4+IHwgZGlyZWN0bHkgdG8gdGhlIFNvdXJjZSBk ZXZpY2UgKHNpZ25hbGVkIGJ5IGEgbG9uZyBIUEQpLCDigJNvcuKAkyBkb3duc3RyZWFtCj4+IHwg b2YgYSBCcmFuY2ggZGV2aWNlIChpbmRpY2F0ZWQgYnkgaW5jcmVtZW50aW5nIHRoZSBERlBfQ09V TlQgZmllbGQgdmFsdWUKPj4gfCBpbiB0aGUgRE9XTl9TVFJFQU1fUE9SVF9DT1VOVCByZWdpc3Rl ciAoRFBDRCAwMDAwN2hbMzowXSkgYW5kIHNpZ25hbGVkCj4+IHwgYnkgYW4gSVJRX0hQRCBwdWxz ZSksIHRoZSBTb3VyY2UgZGV2aWNlIHNoYWxsIHJlYWQgdGhlIG5ldyBEaXNwbGF5SUQgb3IKPj4g fCBsZWdhY3kgRURJRCB0aGF0IGhhcyBiZWVuIG1hZGUgYXZhaWxhYmxlIHRvIGl0IHRvIGVuc3Vy ZSB0aGF0IGNvbnRlbnQKPj4gfCBiZWluZyB0cmFuc21pdHRlZCBvdmVyIHRoZSBsaW5rIGlzIGFi bGUgdG8gYmUgcHJvcGVybHkgcmVjZWl2ZWQgYW5kCj4+IHwgcmVuZGVyZWQuCj4+IHwKPj4gfCBJ bmZvcm1hdGl2ZSBOb3RlOiBJZiB0aGUgSFBEIHNpZ25hbCB0b2dnbGluZyAob3IgYm91bmNpbmcp IGlzIHRoZQo+PiB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlc3VsdCBv ZiB0aGUgSG90IFVucGx1ZyBmb2xsb3dlZCBieSBIb3QgUGx1ZyBvZiBhCj4+IHzCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY2FibGUtY29ubmVjdG9yIGFzc2VtYmx5LCB0aGUg SFBEIHNpZ25hbCBpcyBsaWtlbHkKPj4gfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB0byByZW1haW4gdW5zdGFibGUgZHVyaW5nIHRoZSBkZS1ib3VuY2luZyBwZXJpb2QsCj4+ IHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgd2hpY2ggaXMgaW4gdGhlIG9y ZGVyIG9mIHRlbnMgb2YgbWlsbGlzZWNvbmRzLiBUaGUKPj4gfMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBTb3VyY2UgZGV2aWNlIG1heSBlaXRoZXIgY2hlY2sgdGhlIEhQRCBz aWduYWzigJlzCj4+IHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RhYmls aXR5IGJlZm9yZSBpbml0aWF0aW5nIGFuIEFVWCByZWFkIHRyYW5zYWN0aW9uLAo+PiB8wqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIOKAk29y4oCTIGltbWVkaWF0ZWx5IGluaXRp YXRlIHRoZSBBVVggcmVhZCB0cmFuc2FjdGlvbgo+PiB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGFmdGVyIGVhY2ggSFBEIHJpc2luZyBlZGdlLgo+Pgo+PiBTbyBhIDEwMCBt cyBkZWxheSBzZWVtcyBwbGF1c2libGUgZm9yIHNvbWUgbW9uaXRvcnMuCj4gCj4gSSByZWFkIHRo ZSB0ZXh0IGFib3ZlIGFzICJpdCBtYXkgdGFrZSB0ZW5zIG9mIG1pbGxpc2Vjb25kcyBmb3IgSFBE IHRvIHN0YWJpbGl6ZSIuIFNvIHBvbGxpbmcgaXQgZm9yIHRvdGFsIG9mIDEwMG1zIHNvdW5kcyBm aW5lLCBidXQgd2UncmUgcG9sbGluZyBpdCBmb3IgMTAwMG1zLgo+IAo+IEFuZCBJIHRoaW5rIGNo ZWNraW5nIGZvciBzdGFiaWxpdHkgaXMgZmluZSwgYnV0IGZvciBkZXRlY3QoKSBJIHRoaW5rIGl0 IGdvZXMgb3ZlcmJvYXJkOiBpZiB0aGUgY2FibGUgaXMgZGlzY29ubmVjdGVkLCBldmVyeSBkZXRl Y3QgY2FsbCBzcGVuZHMgYSBzZWNvbmQgY2hlY2tpbmcgZm9yIEhQRCwgZXZlbiBpZiB3ZSBoYXZl bid0IHNlZW4gYW55IHNpZ24gb2YgYW4gSFBEID0pLgo+IAo+IEFuZCBpZiB3ZSdyZSBjaGVja2lu ZyB0aGUgSFBEIHN0YWJpbGl0eSwgd291bGRuJ3Qgd2UsIHNheSwgcG9sbCB0aGUgSFBEIGZvciBz b21lIHRpbWUsIGFuZCBzZWUgaWYgaXQgc3RheXMgdGhlIHNhbWU/IEF0IHRoZSBtb21lbnQgdGhl IGNvZGUgcHJvY2VlZHMgcmlnaHQgYXdheSBpZiBIUEQgaXMgaGlnaCwgYnV0IGtlZXBzIHBvbGxp bmcgaWYgSFBEIGlzIGxvdy4KPiAKPj4gVGhhdCBzYWlkLCBtYXliZSB3ZSBjYW4ganVzdCBza2lw IHRoaXMgYW5kIGFsd2F5cyByZWFkIHRoZSBEUENELgo+IAo+IElmIHRoZSBIUEQgaXMgYm91bmNp bmcsIGlzIHRoZSBBVVggbGluZSBhbHNvIHVuc3RhYmxlPwo+IAo+IEkgZG9uJ3QgbWluZCBhIEhQ RCBzdGFiaWxpdHkgY2hlY2ssIEkgdGhpbmsgaXQgbWFrZXMgc2Vuc2UgYXMgKEkgdGhpbmspIHRo ZSBIVyBkb2Vzbid0IGhhbmRsZSBkZS1ib3VuY2luZyBoZXJlLiBJIHRoaW5rIHRoaW5rIGl0IGNv dWxkIGJlIG11Y2ggbXVjaCBzaG9ydGVyIHRoYW4gd2hhdCBpdCBpcyBub3csIGFuZCB0aGF0IGl0 IHdvdWxkIG1ha2Ugc2Vuc2UgdG8gb2JzZXJ2ZSB0aGUgSFBEIGZvciBhIHBlcmlvZCwgaW5zdGVh ZCBvZiBqdXN0IHdhaXRpbmcgZm9yIHRoZSBIUEQgdG8gZ28gaGlnaC4KPiAKPiBCdXQgdGhpcyBj b3VsZCBhbHNvIGJlIGxlZnQgZm9yIGxhdGVyLCBJIGRvbid0IHRoaW5rIGl0IG1hdHRlcnMgaW4g dGhlIGNvbnRleHQgb2YgdGhpcyBzZXJpZXMuCj4gCj4+PiB6eW5xbXBfZHBfYnJpZGdlX2RldGVj dCgpIGlzIHVzZWQgZm9yIGRybV9icmlkZ2VfZnVuY3MuZGV0ZWN0KCksIGFuZCBpZiB0aGUgY2Fi bGUgaXMgbm90IGNvbm5lY3RlZCwgaXQnbGwgc2xlZXAgZm9yIDEgc2Vjb25kIChwcm9iYWJseSBt b3JlKSB1bnRpbCByZXR1cm5pbmcgbm90IGNvbm5lY3RlZC4gSXQganVzdCBkb2Vzbid0IHNvdW5k IGNvcnJlY3QgdG8gbWUuCj4+Pgo+Pj4gV2VsbCwgaXQncyBub3QgcGFydCBvZiB0aGlzIHBhdGNo IGFzIHN1Y2gsIGJ1dCByZWxhdGVkIHRvIHRoZSBhbW91bnQgb2YgdGltZSB3ZSBzcGVuZCBpbiB0 aGUgaW50ZXJydXB0IGhhbmRsZXIgKGFuZCBhbHNvIHRoZSBkZXRlY3QoKSkuCj4+Pgo+Pj4+PiBX b3VsZCBpdCBiZSBwb3NzaWJsZSB0byBjbGVhbiB1cCB0aGUgd29yayBmdW5jcyBhIGJpdCAoSSBo YXZlbid0Cj4+Pj4+IGxvb2tlZCBhIHRoZSBuZXcgd29yayBmdW5jIHlldCksIHRvIHJlbW92ZSB0 aGUgd29yc3QgZXh0cmEgc2xlZXBzLCBhbmQKPj4+Pj4ganVzdCBkbyBhbGwgdGhhdCBpbnNpZGUg dGhlIHRocmVhZGVkIGlycSBoYW5kbGVyPwo+Pj4+Cj4+Pj4gUHJvYmFibHkgbm90LCBzaW5jZSBh IEhQRCBJUlEgcmVzdWx0cyBpbiBsaW5rIHJldHJhaW5pbmcsIHdoaWNoIGNhbiB0YWtlIGEgd2hp bGUuCj4+Pgo+Pj4gQnV0IGlzIGl0IGFueSBkaWZmZXJlbnQgaWYgeW91IGhhdmUgYSB3b3JrcXVl dWU/IElzbid0IGEgdGhyZWFkZWQgaW50ZXJydXB0IGhhbmRsZXIgYmFzaWNhbGx5IHRoZSBzYW1l IHRoaW5nPwo+Pj4KPj4+IFByb2JhYmx5IGF0IGxlYXN0IHRoZSB6eW5xbXBfZHBfaHBkX3dvcmtf ZnVuYygpIGNvdWxkIGJlIGRvbmUgaW4gdGhlIHRocmVhZGVkIGlycSBqdXN0IGZpbmUsIGlmIHRo ZSBpbnNhbmUgMXMgc2xlZXAgY2FuIGJlIGRyb3BwZWQuCj4+Cj4+IEFueXRoaW5nIGludm9sdmlu ZyBBVVggc2hvdWxkbid0IGJlZW4gaW4gYW4gSVJRLCBzaW5jZQo+PiB6eW5xbXBfZHBfYXV4X3Ry YW5zZmVyIHdpbGwgcmV0cnkgZm9yIHVwIHRvIDUwbXMgYnkgZGVmYXVsdC4KPiAKPiBQZXJoYXBz LiBJJ20gc3RpbGwgbm90IHN1cmUgaWYgdGhhdCdzIGEgcHJvYmxlbS4gSWYgYSB0aHJlYWRlZCBp cnEgaXMgZXNzZW50aWFsbHkgYSB3b3JrcXVldWUgZGVkaWNhdGVkIGZvciB0aGlzIGRldmljZSwg YW5kIHdlIGRvbid0IG5lZWQgdG8gaGFuZGxlIG90aGVyIGlycXMgd2hpbGUgdGhlIHdvcmsgaXMg YmVpbmcgZG9uZSwgdGhlbi4uLiBXaGF0J3MgdGhlIGRpZmZlcmVuY2Ugd2l0aCBhIHRocmVhZGVk IGlycSBhbmQgYSB3b3JrcXVldWU/Cj4gCj4gT2gsIGJ1dCB3ZSBkbyBuZWVkIHRvIGhhbmRsZSBp cnFzLCB3ZSBoYXZlIHRoZSB2YmxhbmsgaXJxIGluIHRoZXJlLiBXZSBkb24ndCB3YW50IHRoZSB2 YmxhbmtzIHRvIHN0b3AgaWYgdGhlcmUncyBhIEhQRCBJUlEuCj4gCj4gQnR3LCBsb29rcyBsaWtl IHp5bnFtcF9kcHN1Yl9kcm1faGFuZGxlX3ZibGFuaygpIGNhbiBzbGVlcCwgc28gd2UgY2FuJ3Qg bW92ZSB0byBub24tdGhyZWFkZWQgaXJxLgoKSSBkb24ndCBzZWUgdGhhdC4gV2UgaGF2ZQoKenlu cW1wX2Rwc3ViX2RybV9oYW5kbGVfdmJsYW5rCiAgZHJtX2NydGNfaGFuZGxlX3ZibGFuawogICAg ZHJtX2hhbmRsZV92YmxhbmsKICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoLi4uKQogICAgICAuLi4K ICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoLi4uKQogICAgICB2YmxhbmtfZGlzYWJsZV9mbiguLi4p CiAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoLi4uKQogICAgICAgIC4uLgogICAgICAgIHNwaW5f bG9ja19pcnFyZXN0b3JlKC4uLikKCnNvIG5vIHNsZWVwaW5nIEFGQUlDVC4KCi0tU2VhbgoKPj4+ Pj4gRG8gd2UgbmVlZCB0byBoYW5kbGUgaW50ZXJydXB0cyB3aGlsZSBlaXRoZXIgZGVsYXllZCB3 b3JrIGlzIGJlaW5nIGRvbmU/Cj4+Pj4KPj4+PiBQcm9iYWJseSBub3QuCj4+Pj4KPj4+Pj4gSWYg d2UgZG8gbmVlZCBhIGRlbGF5ZWQgd29yaywgd291bGQganVzdCBvbmUgd29yayBiZSBlbm91Z2gg d2hpY2gKPj4+Pj4gaGFuZGxlcyBib3RoIEhQRF9FVkVOVCBhbmQgSFBEX0lSUSwgaW5zdGVhZCBv ZiB0d28/Cj4+Pj4KPj4+PiBNYXliZSwgYnV0IHRoZW4gd2UgbmVlZCB0byBkZXRlcm1pbmUgd2hp Y2ggcGVuZGluZyBldmVudHMgd2UgbmVlZCB0bwo+Pj4+IGhhbmRsZS4gSSB0aGluayBzaW5jZSB3 ZSBoYXZlIG9ubHkgdHdvIGV2ZW50cyBpdCB3aWxsIGJlIGVhc2llciB0byBqdXN0Cj4+Pj4gaGF2 ZSBzZXBhcmF0ZSB3b3JrcXVldWVzLgo+Pj4KPj4+IFRoZSBsZXNzIGNvbmN1cnJlbmN5LCB0aGUg YmV0dGVyLi4uV2hpY2ggaXMgd2h5IGl0IHdvdWxkIGJlIG5pY2UgdG8gZG8gaXQgYWxsIGluIHRo ZSB0aHJlYWRlZCBpcnEuCj4+Cj4+IFllYWgsIGJ1dCB3ZSBjYW4gdXNlIGEgbXV0ZXggZm9yIHRo aXMgd2hpY2ggbWVhbnMgdGhlcmUgaXMgbm90IHRvbyBtdWNoCj4+IGludGVyZXN0aW5nIGdvaW5n IG9uLgo+IAo+IE9rLiBZZXAsIGlmIHdlIGdldCAoaG9wZWZ1bGx5KSBhIHNpbmdsZSBtdXRleCB3 aXRoIGNsZWFybHkgZGVmaW5lZCBmaWVsZHMgdGhhdCBpdCBwcm90ZWN0cywgSSdtIG9rIHdpdGgg d29ya3F1ZXVlcy4KPiAKPiBJJ2Qgc3RpbGwgcHJlZmVyIGp1c3Qgb25lIHdvcmtxdWV1ZSwgdGhv dWdoLi4uCgpZZWFoLCBidXQgdGhlbiB3ZSBuZWVkIGEgc3BpbmxvY2sgb3Igc29tZXRoaW5nIHRv IHRlbGwgdGhlIHdvcmtxdWV1ZSB3aGF0IGl0IHNob3VsZCBkby4KCi0tU2VhbgoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwg bWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 D5758C6FD1F for ; Thu, 21 Mar 2024 19:18:04 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1CEF411206E; Thu, 21 Mar 2024 19:18:04 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=linux.dev header.i=@linux.dev header.b="QjTdQaqb"; dkim-atps=neutral Received: from out-176.mta0.migadu.com (out-176.mta0.migadu.com [91.218.175.176]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2A59C112088 for ; Thu, 21 Mar 2024 19:18:01 +0000 (UTC) Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1711048678; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kOtlv+4nkRuh9/gidbp7rsR+GDOClRxPEKCNqAqOIQE=; b=QjTdQaqbcBNzwpEMBU9IBZugzAMlhMMFdYxNitzgmpucKHWzSGX4Zk92SZbCFTpFDonZjf pR5tzcoM7uCYTAMk9SurGcJc2Qm0uPmQNJefv19v1kVOGATsq+dIEWbuchV5Ebs4siq+pE 4Bo/MU9UxGB63aNxcb3ud210HehtSBc= Date: Thu, 21 Mar 2024 15:17:44 -0400 MIME-Version: 1.0 Subject: Re: [PATCH v2 5/8] drm: zynqmp_dp: Don't retrain the link in our IRQ Content-Language: en-US To: Tomi Valkeinen Cc: Michal Simek , David Airlie , linux-kernel@vger.kernel.org, Daniel Vetter , linux-arm-kernel@lists.infradead.org, Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , dri-devel@lists.freedesktop.org References: <20240319225122.3048400-1-sean.anderson@linux.dev> <20240319225122.3048400-6-sean.anderson@linux.dev> <53b2df23-d5ea-498b-a501-b64f753c0074@linux.dev> <0514ef71-5baa-4989-9b7d-8bd9526c4d8d@ideasonboard.com> <16ccf678-270c-4770-8cc9-f676b4fabf09@linux.dev> <1f27ce69-9ea6-4df4-9147-332d74febdf0@ideasonboard.com> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Sean Anderson In-Reply-To: <1f27ce69-9ea6-4df4-9147-332d74febdf0@ideasonboard.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On 3/21/24 15:08, Tomi Valkeinen wrote: > On 21/03/2024 20:01, Sean Anderson wrote: >> On 3/21/24 13:25, Tomi Valkeinen wrote: >>> On 21/03/2024 17:52, Sean Anderson wrote: >>>> On 3/20/24 02:53, Tomi Valkeinen wrote: >>>>> On 20/03/2024 00:51, Sean Anderson wrote: >>>>>> Retraining the link can take a while, and might involve waiting for >>>>>> DPCD reads/writes to complete. This is inappropriate for an IRQ handler. >>>>>> Just schedule this work for later completion. This is racy, but will be >>>>>> fixed in the next commit. >>>>> >>>>> You should add the locks first, and use them here, rather than first >>>>> adding a buggy commit and fixing it in the next one. >>>> >>>> I didn't think I could add the locks first since I only noticed the IRQ >>>> was threaded right before sending out this series. So yeah, we could add >>>> locking, add the workqueue, and then unthread the IRQ. >>>> >>>>>> Signed-off-by: Sean Anderson >>>>>> --- >>>>>> Actually, on second look this IRQ is threaded. So why do we have a >>>>>> workqueue for HPD events? Maybe we should make it unthreaded? >>>>> >>>>> Indeed, there's not much work being done in the IRQ handler. I don't know why it's threaded. >>>>> >>>>> We could move the queued work to be inside the threaded irq handler, >>>>> but with a quick look, the HPD work has lines like "msleep(100)" (and >>>>> that's inside a for loop...), which is probably not a good thing to do >>>>> even in threaded irq handler. >>>>> >>>>> Although I'm not sure if that code is good to have anywhere. Why do we >>>>> even have such code in the HPD work path... We already got the HPD >>>>> interrupt. What does "It takes some delay (ex, 100 ~ 500 msec) to get >>>>> the HPD signal with some monitors" even mean... >>>> >>>> The documentation for this bit is >>>> >>>> | HPD_STATE    0    ro    0x0    Contains the raw state of the HPD pin on the DisplayPort connector. >>>> >>>> So I think the idea is to perform some debouncing. >>> >>> Hmm, it just looks a bit odd to me. It can sleep for a second. And the wording "It takes some delay (ex, 100 ~ 500 msec) to get the HPD signal with some monitors" makes it sound like some kind of a hack... >>> >>> The docs mention debounce once: >>> >>> https://docs.amd.com/r/en-US/pg299-v-dp-txss1/Hot-Plug-Detection >> >> Are you sure this is the right document? This seems to be documentation for [1]. Is that instantiated as a hard block on the ZynqMP? >> >> [1] https://www.xilinx.com/products/intellectual-property/ef-di-displayport.html > > You're right, wrong document. The registers and bitfield names I looked at just matched, so I didn't think it through... > > The right doc says even less: > > https://docs.amd.com/r/en-US/ug1085-zynq-ultrascale-trm/Upon-HPD-Assertion > >>> But it's not immediately obvious what the SW must do and what's done by the HW. Debounce is not mentioned later, e.g. in the HPD Event Handling. But if debounce is needed, wouldn't it be perhaps in a few milliseconds, instead of hundreds of milliseconds... >> >> Well, the DP spec says >> >> | If the HPD is the result of a new device being connected, either >> | directly to the Source device (signaled by a long HPD), –or– downstream >> | of a Branch device (indicated by incrementing the DFP_COUNT field value >> | in the DOWN_STREAM_PORT_COUNT register (DPCD 00007h[3:0]) and signaled >> | by an IRQ_HPD pulse), the Source device shall read the new DisplayID or >> | legacy EDID that has been made available to it to ensure that content >> | being transmitted over the link is able to be properly received and >> | rendered. >> | >> | Informative Note: If the HPD signal toggling (or bouncing) is the >> |                   result of the Hot Unplug followed by Hot Plug of a >> |                   cable-connector assembly, the HPD signal is likely >> |                   to remain unstable during the de-bouncing period, >> |                   which is in the order of tens of milliseconds. The >> |                   Source device may either check the HPD signal’s >> |                   stability before initiating an AUX read transaction, >> |                   –or– immediately initiate the AUX read transaction >> |                   after each HPD rising edge. >> >> So a 100 ms delay seems plausible for some monitors. > > I read the text above as "it may take tens of milliseconds for HPD to stabilize". So polling it for total of 100ms sounds fine, but we're polling it for 1000ms. > > And I think checking for stability is fine, but for detect() I think it goes overboard: if the cable is disconnected, every detect call spends a second checking for HPD, even if we haven't seen any sign of an HPD =). > > And if we're checking the HPD stability, wouldn't we, say, poll the HPD for some time, and see if it stays the same? At the moment the code proceeds right away if HPD is high, but keeps polling if HPD is low. > >> That said, maybe we can just skip this and always read the DPCD. > > If the HPD is bouncing, is the AUX line also unstable? > > I don't mind a HPD stability check, I think it makes sense as (I think) the HW doesn't handle de-bouncing here. I think think it could be much much shorter than what it is now, and that it would make sense to observe the HPD for a period, instead of just waiting for the HPD to go high. > > But this could also be left for later, I don't think it matters in the context of this series. > >>> zynqmp_dp_bridge_detect() is used for drm_bridge_funcs.detect(), and if the cable is not connected, it'll sleep for 1 second (probably more) until returning not connected. It just doesn't sound correct to me. >>> >>> Well, it's not part of this patch as such, but related to the amount of time we spend in the interrupt handler (and also the detect()). >>> >>>>> Would it be possible to clean up the work funcs a bit (I haven't >>>>> looked a the new work func yet), to remove the worst extra sleeps, and >>>>> just do all that inside the threaded irq handler? >>>> >>>> Probably not, since a HPD IRQ results in link retraining, which can take a while. >>> >>> But is it any different if you have a workqueue? Isn't a threaded interrupt handler basically the same thing? >>> >>> Probably at least the zynqmp_dp_hpd_work_func() could be done in the threaded irq just fine, if the insane 1s sleep can be dropped. >> >> Anything involving AUX shouldn't been in an IRQ, since >> zynqmp_dp_aux_transfer will retry for up to 50ms by default. > > Perhaps. I'm still not sure if that's a problem. If a threaded irq is essentially a workqueue dedicated for this device, and we don't need to handle other irqs while the work is being done, then... What's the difference with a threaded irq and a workqueue? > > Oh, but we do need to handle irqs, we have the vblank irq in there. We don't want the vblanks to stop if there's a HPD IRQ. > > Btw, looks like zynqmp_dpsub_drm_handle_vblank() can sleep, so we can't move to non-threaded irq. I don't see that. We have zynqmp_dpsub_drm_handle_vblank drm_crtc_handle_vblank drm_handle_vblank spin_lock_irqsave(...) ... spin_lock_irqsave(...) vblank_disable_fn(...) spin_lock_irqsave(...) ... spin_lock_irqrestore(...) so no sleeping AFAICT. --Sean >>>>> Do we need to handle interrupts while either delayed work is being done? >>>> >>>> Probably not. >>>> >>>>> If we do need a delayed work, would just one work be enough which >>>>> handles both HPD_EVENT and HPD_IRQ, instead of two? >>>> >>>> Maybe, but then we need to determine which pending events we need to >>>> handle. I think since we have only two events it will be easier to just >>>> have separate workqueues. >>> >>> The less concurrency, the better...Which is why it would be nice to do it all in the threaded irq. >> >> Yeah, but we can use a mutex for this which means there is not too much >> interesting going on. > > Ok. Yep, if we get (hopefully) a single mutex with clearly defined fields that it protects, I'm ok with workqueues. > > I'd still prefer just one workqueue, though... Yeah, but then we need a spinlock or something to tell the workqueue what it should do. --Sean