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 D0834CA601E for ; Sat, 10 Oct 2026 00:25:45 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:To:Subject:Cc: 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=Ag/VA0ZqRPGoVSEilDxNIj/rm1lD2GjSzDpNxgqD66w=; b=WknsIoNdHVemYe KpM2qngUEdQF5xjCXB7iLisUFxHO4HEtp+s8uM75t9HmVIgNV7WJCerBtCwHuoTWpFihHHW+0Lfgl OqfPInEQm/J9tfADo29BXWDgrJJO+iCqk1P90sEvKV881WJ+sgbZLcyFNu+pxAwDuYVJuqTCathL5 KDZCRFi+kJ97HSZt3MKyZfDNko5hkO4rBryik0YLeQOYoHAfODyMoVcXxU/JSFUJf9zpJyVjXfNO3 jkOMJ29GubJ0QH0cZV4mQxKHra59gcqjeGKIGEaoYLh3vGFDLqXTdQmj5QjnkK8KY4uop6rc9XhnS zZLB9YasZw8fUXSFIh6w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xFKts-00000007MgP-0uK2; Sat, 10 Oct 2026 00:25:20 +0000 Received: from mail-m9351.xmail.ntesmail.com ([103.126.93.51]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xFKtn-00000007Mfu-298O for linux-rockchip@lists.infradead.org; Sat, 10 Oct 2026 00:25:18 +0000 Received: from [172.16.12.48] (unknown [61.154.14.86]) by smtp.qiye.163.com (Hmail) with ESMTP id 5080294ff; Sat, 10 Oct 2026 08:25:09 +0800 (GMT+08:00) Message-ID: <9dbcf07c-d419-49af-8973-e8ad4eaa6a04@rock-chips.com> Date: Sat, 10 Oct 2026 08:25:06 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Cc: shawn.lin@rock-chips.com, linux-rockchip@lists.infradead.org, linux-pci@vger.kernel.org, Niklas Cassel , Diederik de Haas Subject: Re: [PATCH v4] PCI: dw-rockchip: Move the INTx irq setup to probe To: Manivannan Sadhasivam , Bjorn Helgaas References: <1790222793-77182-1-git-send-email-shawn.lin@rock-chips.com> From: Shawn Lin In-Reply-To: <1790222793-77182-1-git-send-email-shawn.lin@rock-chips.com> X-HM-Tid: 0aa12333097603a4kunm69849e103de83 X-HM-MType: 1 X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFITzdXWRgWCB1ZQUpXWS1ZQUlXWQ8JGhUIEh9ZQVlCHR8eVh9ITE9DSxhOQ0NLTVYVFA kWGhdVEwETFhoSFyQUDg9ZV1kYEgtZQVlNSlVKTk9VSk9VQ01ZV1kWGg8SFR0UWUFZT0tIVUpLSU 9PT0hVSktLVUpCS0tZBg++ DKIM-Signature: a=rsa-sha256; b=c4daUppCQdM6nxUlqfqyhYf24jnKXM0jApWeFdyWmnymge0PwhpMJ/a0QkfqqnkPIf/S412V85ecyro4jhvtgLgc5dB7NT6luSl4flYXbq0CTuFE9yO4cWUBFoa3hUwsz5f++MD17nQAETWxHqlfhgo0FygUGlZ8KH18OQgsblQ=; c=relaxed/relaxed; s=default; d=rock-chips.com; v=1; bh=yWXryQvPqykwhvyA9eaQayuovKocXa9vYqkFwBkwj8c=; h=date:mime-version:subject:message-id:from; X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20261009_172516_113428_623E885D X-CRM114-Status: GOOD ( 30.58 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org SGkgTWFuaSwgQmpvcm4KCuWcqCAyMDI2LzA5LzI0IOaYn+acn+WbmyAxMjowNiwgU2hhd24gTGlu IOWGmemBkzoKPiBTaW5jZSBjb21taXQgYjM3NmIzZmY5Y2IwICgiUENJOiBkdy1yb2NrY2hpcDog SW1wbGVtZW50IC5yZXNldF9yb290X3BvcnQoKQo+IGFuZCB1c2UgZm9yIGxpbmsgZG93biIpLCAu cmVzZXRfcm9vdF9wb3J0KCkgcmUtcnVucyB0aGUgaG9zdCBvcHMgLmluaXQoKQo+IGNhbGxiYWNr IHRvIHJlcHJvZ3JhbSB0aGUgUm9vdCBDb21wbGV4IGFmdGVyIGEgY29udHJvbGxlciByZXNldC4g VGhhdAo+IHdvcmtzIGZvciB0aGUgcmVnaXN0ZXIgcHJvZ3JhbW1pbmcsIGJ1dCAuaW5pdCgpIGlz IG5vdCByZS1lbnRyYW50OiBpdAo+IGFsc28gY3JlYXRlcyB0aGUgSU5UeCBpcnEgZG9tYWluIGFu ZCBpbnN0YWxscyB0aGUgY2hhaW5lZCBJTlR4IGhhbmRsZXIuCj4gRXZlcnkgcm9vdCBwb3J0IHJl c2V0IHRoZXJlZm9yZSBlbmRzIHVwIHdpdGggYSBzZWNvbmQgaXJxIGRvbWFpbgo+IHJlZ2lzdGVy ZWQgZm9yIHRoZSBzYW1lIGZ3bm9kZTogdGhlIHByZXZpb3VzIG9uZSBpcyBsZWFrZWQsIGFzIGl0 IGlzCj4gbmV2ZXIgcmVtb3ZlZCwgYW5kIHdvcnNlLCB0aGUgSU5UeCB2aXJxcyBvZiB0aGUgZG93 bnN0cmVhbSBQQ0kgZGV2aWNlcwo+IHdlcmUgYWxsb2NhdGVkIGluIHRoZSBwcmV2aW91cyBpcnEg ZG9tYWluIGFuZCBhcmUgbmV2ZXIgcmUtbWFwcGVkLCB3aGlsZQo+IHRoZSBjaGFpbmVkIGhhbmRs ZXIgbm93IGxvb2tzIHVwIHZpcnFzIGluIHRoZSBuZXcsIGVtcHR5IGRvbWFpbi4gQWZ0ZXIgYQo+ IGxpbmsgZG93biByZWNvdmVyeSwgSU5UeCBpbnRlcnJ1cHRzIGFyZSBzaWxlbnRseSBsb3N0Lgo+ IAo+IEZpeCBpdCBieSBtb3ZpbmcgdGhlIG9mX2lycV9nZXRfYnluYW1lKCkgbG9va3VwLCB0aGUg SU5UeCBpcnEgZG9tYWluCj4gY3JlYXRpb24gYW5kIHRoZSBjaGFpbmVkIGhhbmRsZXIgaW5zdGFs bGF0aW9uIG91dCBvZiAuaW5pdCgpIGFuZCBpbnRvCj4gcm9ja2NoaXBfcGNpZV9jb25maWd1cmVf cmMoKSwganVzdCBiZWZvcmUgZHdfcGNpZV9ob3N0X2luaXQoKS4gVGhlCj4gbG9va3VwIGhhcyB0 byBoYXBwZW4gYmVmb3JlIHRoZSBob3N0IGlzIGluaXRpYWxpemVkLCBiZWNhdXNlCj4gZHdfcGNp ZV9ob3N0X2luaXQoKSBlbnVtZXJhdGVzIHRoZSBidXMgYW5kIHByb2JlcyB0aGUgZG93bnN0cmVh bQo+IGRldmljZXMsIGFuZCBwY2lfYXNzaWduX2lycSgpIG1hcHMgdGhlaXIgSU5UeCBpbnRlcnJ1 cHRzIGF0IHRoYXQgcG9pbnQ6Cj4gaWYgdGhlIGRvbWFpbiBkb2VzIG5vdCBleGlzdCB5ZXQsIHRo ZSBtYXBwaW5nIGZhaWxzIGFuZCB0aGUgZGV2aWNlcyBlbmQKPiB1cCB3aXRob3V0IGEgdXNhYmxl IElOVHguIFRoaXMgYWxzbyBtaXJyb3JzIGhvdyB0aGUgcWNvbSBkcml2ZXIgcmVxdWVzdHMKPiBp dHMgZ2xvYmFsIElSUSwgYW5kIGxlYXZlcyAuaW5pdCgpIHdpdGggbm90aGluZyBidXQgaWRlbXBv dGVudCByZWdpc3Rlcgo+IHByb2dyYW1taW5nLCBzbyBib3RoIC5yZXNldF9yb290X3BvcnQoKSBh bmQgZHdfcGNpZV9yZXN1bWVfbm9pcnEoKSBjYW4KPiBzYWZlbHkgcmUtcnVuIGl0LiBSZS1ydW5u aW5nIG9mX2lycV9nZXRfYnluYW1lKCkgb24gZXZlcnkgcmVzdW1lIGlzIGFsc28KPiBnb25lLgo+ IAoKVGhlIG9mZmVuZGluZyBjb21taXQgd2FzIGludHJvZHVjZWQgaW4gdGhpcyBjeWNsZS4gSXMg dGhlcmUgYW4Kb3Bwb3J0dW5pdHkgdG8gbWVyZ2UgdGhpcyBmaXggaW50byA3LjM/Cgo+IEZpeGVz OiBiMzc2YjNmZjljYjAgKCJQQ0k6IGR3LXJvY2tjaGlwOiBJbXBsZW1lbnQgLnJlc2V0X3Jvb3Rf cG9ydCgpIGFuZCB1c2UgZm9yIGxpbmsgZG93biIpCj4gU3VnZ2VzdGVkLWJ5OiBOaWtsYXMgQ2Fz c2VsIDxjYXNzZWxAa2VybmVsLm9yZz4KPiBTaWduZWQtb2ZmLWJ5OiBTaGF3biBMaW4gPHNoYXdu LmxpbkByb2NrLWNoaXBzLmNvbT4KPiAtLS0KPiAKPiBDaGFuZ2VzIGluIHY0Ogo+IC0gZHJvcCB0 aGUgY29kZSBjb21tZW50IChOaWtsYXMpCj4gLSBjcmVhdGUgdGhlIElOVHggaXJxIGRvbWFpbiBi ZWZvcmUgZHdfcGNpZV9ob3N0X2luaXQoKSBpbnN0ZWFkIG9mCj4gICAgYWZ0ZXIgaXQuIGR3X3Bj aWVfaG9zdF9pbml0KCkgZW51bWVyYXRlcyB0aGUgYnVzIGFuZCBwcm9iZXMgdGhlCj4gICAgZG93 bnN0cmVhbSBkZXZpY2VzLCBhbmQgdGhlaXIgSU5UeCBpbnRlcnJ1cHRzIGdldCBtYXBwZWQgYXQg dGhhdAo+ICAgIHBvaW50LCBzbyByZWdpc3RlcmluZyB0aGUgZG9tYWluIGFmdGVyd2FyZHMgbGVm dCBldmVyeSBkb3duc3RyZWFtCj4gICAgZGV2aWNlIHdpdGhvdXQgYSB1c2FibGUgSU5UeCAoZmxh Z2dlZCBieSB0aGUgU2FzaGlrbyByZXZpZXcpLgo+IC0gdGhpcyBhbHNvIHJlbW92ZXMgdGhlIGZh aWxpbmcgc3RlcHMgYmVoaW5kIGR3X3BjaWVfaG9zdF9pbml0KCksIHNvCj4gICAgdGhlcmUgaXMg bm8gZXJyb3IgcGF0aCBsZWZ0IHRoYXQgd291bGQgcmV0dXJuIHdpdGggdGhlIHJvb3QgYnVzCj4g ICAgcmVnaXN0ZXJlZCBhbmQgdGhlIHJvY2tjaGlwIHN0cnVjdHVyZSBhYm91dCB0byBiZSBmcmVl ZCAoZmxhZ2dlZCBieQo+ICAgIHRoZSBTYXNoaWtvIHJldmlldykuCj4gCj4gQ2hhbmdlcyBpbiB2 MzoKPiAtIHNwbGl0IGRldm0tbWFuYWdlZCBwYXJ0IGludG8gYSBzZXBlcmF0ZSBwYXRjaAo+IAo+ IENoYW5nZXMgaW4gdjI6Cj4gLSBNb3ZlZCB0aGUgb2ZfaXJxX2dldF9ieW5hbWUoKSBsb29rdXAs IHRoZSBJTlR4IGlycSBkb21haW4gY3JlYXRpb24KPiAgICBhbmQgdGhlIGNoYWluZWQgaGFuZGxl ciBpbnN0YWxsYXRpb24gb3V0IG9mIHRoZSBob3N0IG9wcyAuaW5pdCgpCj4gICAgY2FsbGJhY2sg aW50byByb2NrY2hpcF9wY2llX2NvbmZpZ3VyZV9yYygpLCByaWdodCBhZnRlcgo+ICAgIGR3X3Bj aWVfaG9zdF9pbml0KCksIGFzIHN1Z2dlc3RlZCBieSBOaWtsYXMgQ2Fzc2VsLiBUaGlzIHN1cGVy c2VkZXMKPiAgICB2MSBwYXRjaCAxLzIsIGFzIC5pbml0KCkgbm8gbG9uZ2VyIGNyZWF0ZXMgdGhl IGlycSBkb21haW4sIGFuZAo+ICAgIHJlbW92ZXMgdGhlIHJvY2tjaGlwX3BjaWVfaG9zdF9od19p bml0KCkgaGVscGVyIGZyb20gdjEuCj4gLSBNYWRlIHRoZSBJTlR4IGlycSBkb21haW4gZGV2bS1t YW5hZ2VkIHdpdGgKPiAgICBkZXZtX2lycV9kb21haW5faW5zdGFudGlhdGUoKSBhbmQgdW5pbnN0 YWxsIHRoZSBjaGFpbmVkIGhhbmRsZXIKPiAgICB0aHJvdWdoIGEgZGV2cmVzIGFjdGlvbiwgYWRk cmVzc2luZyB0aGUgcHJvYmUgZmFpbHVyZSBsZWFrIGFuZAo+ICAgIHVzZS1hZnRlci1mcmVlIGZs YWdnZWQgYnkgdGhlIFNhc2hpa28gcmV2aWV3Lgo+IAo+ICAgZHJpdmVycy9wY2kvY29udHJvbGxl ci9kd2MvcGNpZS1kdy1yb2NrY2hpcC5jIHwgMjcgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t Cj4gICAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZHctcm9ja2No aXAuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZHctcm9ja2NoaXAuYwo+IGlu ZGV4IDE0OTc2ODYuLmJkODZlMzJjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaWUtZHctcm9ja2NoaXAuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv ZHdjL3BjaWUtZHctcm9ja2NoaXAuYwo+IEBAIC00MjIsMjMgKzQyMiw5IEBAIHN0YXRpYyB2b2lk IHJvY2tjaGlwX3BjaWVfc3RvcF9saW5rKHN0cnVjdCBkd19wY2llICpwY2kpCj4gICBzdGF0aWMg aW50IHJvY2tjaGlwX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgIHsK PiAgIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAtCXN0 cnVjdCByb2NrY2hpcF9wY2llICpyb2NrY2hpcCA9IHRvX3JvY2tjaGlwX3BjaWUocGNpKTsKPiAt CXN0cnVjdCBkZXZpY2UgKmRldiA9IHJvY2tjaGlwLT5wY2kuZGV2Owo+IC0JaW50IGlycSwgcmV0 Owo+IC0KPiAtCWlycSA9IG9mX2lycV9nZXRfYnluYW1lKGRldi0+b2Zfbm9kZSwgImxlZ2FjeSIp Owo+IC0JaWYgKGlycSA8IDApCj4gLQkJcmV0dXJuIGlycTsKPiAgIAo+ICAgCXBjaS0+ZGJpX2Jh c2UyID0gcGNpLT5kYmlfYmFzZSArIFBDSUVfVFlQRTBfSERSX0RCSTJfT0ZGU0VUOwo+ICAgCj4g LQlyZXQgPSByb2NrY2hpcF9wY2llX2luaXRfaXJxX2RvbWFpbihyb2NrY2hpcCk7Cj4gLQlpZiAo cmV0IDwgMCkKPiAtCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBpbml0IGlycSBkb21haW5cbiIp Owo+IC0KPiAtCWlycV9zZXRfY2hhaW5lZF9oYW5kbGVyX2FuZF9kYXRhKGlycSwgcm9ja2NoaXBf cGNpZV9pbnR4X2hhbmRsZXIsCj4gLQkJCQkJIHJvY2tjaGlwKTsKPiAtCj4gICAJcm9ja2NoaXBf cGNpZV9jb25maWd1cmVfbDFzcyhwY2kpOwo+ICAgCXJvY2tjaGlwX3BjaWVfZW5hYmxlX2wwcyhw Y2kpOwo+ICAgCXBwLT5icmlkZ2UtPnJlc2V0X3Jvb3RfcG9ydCA9IHJvY2tjaGlwX3BjaWVfcmNf cmVzZXRfcm9vdF9wb3J0Owo+IEBAIC03MzEsNiArNzE3LDE5IEBAIHN0YXRpYyBpbnQgcm9ja2No aXBfcGNpZV9jb25maWd1cmVfcmMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiAgIAkJ CQkgUENJRV9DTElFTlRfU0VUX01PREUoUENJRV9DTElFTlRfTU9ERV9SQyksCj4gICAJCQkJIFBD SUVfQ0xJRU5UX0dFTkVSQUxfQ09OKTsKPiAgIAo+ICsJaXJxID0gb2ZfaXJxX2dldF9ieW5hbWUo ZGV2LT5vZl9ub2RlLCAibGVnYWN5Iik7Cj4gKwlpZiAoaXJxIDwgMCkKPiArCQlyZXR1cm4gaXJx Owo+ICsKPiArCXJldCA9IHJvY2tjaGlwX3BjaWVfaW5pdF9pcnFfZG9tYWluKHJvY2tjaGlwKTsK PiArCWlmIChyZXQgPCAwKSB7Cj4gKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gaW5pdCBpcnEg ZG9tYWluXG4iKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCWlycV9zZXRfY2hhaW5l ZF9oYW5kbGVyX2FuZF9kYXRhKGlycSwgcm9ja2NoaXBfcGNpZV9pbnR4X2hhbmRsZXIsCj4gKwkJ CQkJIHJvY2tjaGlwKTsKPiArCj4gICAJcHAgPSAmcm9ja2NoaXAtPnBjaS5wcDsKPiAgIAlwcC0+ b3BzID0gJnJvY2tjaGlwX3BjaWVfaG9zdF9vcHM7Cj4gICAKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QK TGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-m1973173.qiye.163.com (mail-m1973173.qiye.163.com [220.197.31.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 42DEC22157B for ; Sat, 10 Oct 2026 01:40:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.73 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791596451; cv=none; b=sKDZ82mNRi08IHKsL8TMYChiD9i0rreETqBf2xXD54iK0A5N+zE7PIWWBpXWL+3aYSxIRzowdxRcJWvZ6DqtbdurKweahFfE029P9EYXuJvbjKk+X2qx4ssMk2K/pjNlvMhQZb8cV9ePkTT7twobB5m7Lafefbz0o+VwK36rwMo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791596451; c=relaxed/simple; bh=C3znX7W+hNGo6ZOG8vEciVXlKvoalT1H6PUMKYNtzqQ=; h=Message-ID:Date:MIME-Version:Cc:Subject:To:References:From: In-Reply-To:Content-Type; b=JxkJyfBjYeGFLiK85B+KPz5oA3NZic87SWUCxk/OWjkUc3GYQ+Jm0i8TzVMpXJwjA2B/oVNpaSJ41Q73fWbr7wxGOol1CdjmCWC/sjQX6+3yi8Ar/o8DySiOoorRPHbdWDY1OtmBenXXJuyP8hZUd17qBou0bz77kMW8BkW8g8s= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rock-chips.com; spf=pass smtp.mailfrom=rock-chips.com; dkim=pass (1024-bit key) header.d=rock-chips.com header.i=@rock-chips.com header.b=c4daUppC; arc=none smtp.client-ip=220.197.31.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rock-chips.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rock-chips.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=rock-chips.com header.i=@rock-chips.com header.b="c4daUppC" Received: from [172.16.12.48] (unknown [61.154.14.86]) by smtp.qiye.163.com (Hmail) with ESMTP id 5080294ff; Sat, 10 Oct 2026 08:25:09 +0800 (GMT+08:00) Message-ID: <9dbcf07c-d419-49af-8973-e8ad4eaa6a04@rock-chips.com> Date: Sat, 10 Oct 2026 08:25:06 +0800 Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Cc: shawn.lin@rock-chips.com, linux-rockchip@lists.infradead.org, linux-pci@vger.kernel.org, Niklas Cassel , Diederik de Haas Subject: Re: [PATCH v4] PCI: dw-rockchip: Move the INTx irq setup to probe To: Manivannan Sadhasivam , Bjorn Helgaas References: <1790222793-77182-1-git-send-email-shawn.lin@rock-chips.com> From: Shawn Lin In-Reply-To: <1790222793-77182-1-git-send-email-shawn.lin@rock-chips.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-HM-Tid: 0aa12333097603a4kunm69849e103de83 X-HM-MType: 1 X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFITzdXWRgWCB1ZQUpXWS1ZQUlXWQ8JGhUIEh9ZQVlCHR8eVh9ITE9DSxhOQ0NLTVYVFA kWGhdVEwETFhoSFyQUDg9ZV1kYEgtZQVlNSlVKTk9VSk9VQ01ZV1kWGg8SFR0UWUFZT0tIVUpLSU 9PT0hVSktLVUpCS0tZBg++ DKIM-Signature: a=rsa-sha256; b=c4daUppCQdM6nxUlqfqyhYf24jnKXM0jApWeFdyWmnymge0PwhpMJ/a0QkfqqnkPIf/S412V85ecyro4jhvtgLgc5dB7NT6luSl4flYXbq0CTuFE9yO4cWUBFoa3hUwsz5f++MD17nQAETWxHqlfhgo0FygUGlZ8KH18OQgsblQ=; c=relaxed/relaxed; s=default; d=rock-chips.com; v=1; bh=yWXryQvPqykwhvyA9eaQayuovKocXa9vYqkFwBkwj8c=; h=date:mime-version:subject:message-id:from; Hi Mani, Bjorn 在 2026/09/24 星期四 12:06, Shawn Lin 写道: > Since commit b376b3ff9cb0 ("PCI: dw-rockchip: Implement .reset_root_port() > and use for link down"), .reset_root_port() re-runs the host ops .init() > callback to reprogram the Root Complex after a controller reset. That > works for the register programming, but .init() is not re-entrant: it > also creates the INTx irq domain and installs the chained INTx handler. > Every root port reset therefore ends up with a second irq domain > registered for the same fwnode: the previous one is leaked, as it is > never removed, and worse, the INTx virqs of the downstream PCI devices > were allocated in the previous irq domain and are never re-mapped, while > the chained handler now looks up virqs in the new, empty domain. After a > link down recovery, INTx interrupts are silently lost. > > Fix it by moving the of_irq_get_byname() lookup, the INTx irq domain > creation and the chained handler installation out of .init() and into > rockchip_pcie_configure_rc(), just before dw_pcie_host_init(). The > lookup has to happen before the host is initialized, because > dw_pcie_host_init() enumerates the bus and probes the downstream > devices, and pci_assign_irq() maps their INTx interrupts at that point: > if the domain does not exist yet, the mapping fails and the devices end > up without a usable INTx. This also mirrors how the qcom driver requests > its global IRQ, and leaves .init() with nothing but idempotent register > programming, so both .reset_root_port() and dw_pcie_resume_noirq() can > safely re-run it. Re-running of_irq_get_byname() on every resume is also > gone. > The offending commit was introduced in this cycle. Is there an opportunity to merge this fix into 7.3? > Fixes: b376b3ff9cb0 ("PCI: dw-rockchip: Implement .reset_root_port() and use for link down") > Suggested-by: Niklas Cassel > Signed-off-by: Shawn Lin > --- > > Changes in v4: > - drop the code comment (Niklas) > - create the INTx irq domain before dw_pcie_host_init() instead of > after it. dw_pcie_host_init() enumerates the bus and probes the > downstream devices, and their INTx interrupts get mapped at that > point, so registering the domain afterwards left every downstream > device without a usable INTx (flagged by the Sashiko review). > - this also removes the failing steps behind dw_pcie_host_init(), so > there is no error path left that would return with the root bus > registered and the rockchip structure about to be freed (flagged by > the Sashiko review). > > Changes in v3: > - split devm-managed part into a seperate patch > > Changes in v2: > - Moved the of_irq_get_byname() lookup, the INTx irq domain creation > and the chained handler installation out of the host ops .init() > callback into rockchip_pcie_configure_rc(), right after > dw_pcie_host_init(), as suggested by Niklas Cassel. This supersedes > v1 patch 1/2, as .init() no longer creates the irq domain, and > removes the rockchip_pcie_host_hw_init() helper from v1. > - Made the INTx irq domain devm-managed with > devm_irq_domain_instantiate() and uninstall the chained handler > through a devres action, addressing the probe failure leak and > use-after-free flagged by the Sashiko review. > > drivers/pci/controller/dwc/pcie-dw-rockchip.c | 27 +++++++++++++-------------- > 1 file changed, 13 insertions(+), 14 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pcie-dw-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-rockchip.c > index 1497686..bd86e32c 100644 > --- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c > +++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c > @@ -422,23 +422,9 @@ static void rockchip_pcie_stop_link(struct dw_pcie *pci) > static int rockchip_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > - struct rockchip_pcie *rockchip = to_rockchip_pcie(pci); > - struct device *dev = rockchip->pci.dev; > - int irq, ret; > - > - irq = of_irq_get_byname(dev->of_node, "legacy"); > - if (irq < 0) > - return irq; > > pci->dbi_base2 = pci->dbi_base + PCIE_TYPE0_HDR_DBI2_OFFSET; > > - ret = rockchip_pcie_init_irq_domain(rockchip); > - if (ret < 0) > - dev_err(dev, "failed to init irq domain\n"); > - > - irq_set_chained_handler_and_data(irq, rockchip_pcie_intx_handler, > - rockchip); > - > rockchip_pcie_configure_l1ss(pci); > rockchip_pcie_enable_l0s(pci); > pp->bridge->reset_root_port = rockchip_pcie_rc_reset_root_port; > @@ -731,6 +717,19 @@ static int rockchip_pcie_configure_rc(struct platform_device *pdev, > PCIE_CLIENT_SET_MODE(PCIE_CLIENT_MODE_RC), > PCIE_CLIENT_GENERAL_CON); > > + irq = of_irq_get_byname(dev->of_node, "legacy"); > + if (irq < 0) > + return irq; > + > + ret = rockchip_pcie_init_irq_domain(rockchip); > + if (ret < 0) { > + dev_err(dev, "failed to init irq domain\n"); > + return ret; > + } > + > + irq_set_chained_handler_and_data(irq, rockchip_pcie_intx_handler, > + rockchip); > + > pp = &rockchip->pci.pp; > pp->ops = &rockchip_pcie_host_ops; >