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 C1E51ECAAA1 for ; Fri, 16 Sep 2022 16:23:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229471AbiIPQXJ (ORCPT ); Fri, 16 Sep 2022 12:23:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39414 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229454AbiIPQXI (ORCPT ); Fri, 16 Sep 2022 12:23:08 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D3A89B6569 for ; Fri, 16 Sep 2022 09:23:07 -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 5348062CCA for ; Fri, 16 Sep 2022 16:23:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6358C433C1; Fri, 16 Sep 2022 16:23:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1663345386; bh=v5HJNIOU5xWbCFd0rGpuOhpj9GLTczU7qj0YbyVeTpo=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=tHz69b0EPqA/WimaFqLFFTQ+ylfwduePCLEQylvlkZCKSlUvxgOk4iitsPD9H3EBZ br6SWP1/qwzAPTSUqV8fZxrheZOwUNOxhKie8uiH+wytpma9M1nFUZZOZE2VLIHE9y 8gBnDTw3sIosn2GDwoROCD1YktyK9iHQhr0IOrROtUE1GqOU4szLKHo+jj0INiEXvY 5T0r2Qk3/Zg5+Xu9ciKQox9XOMewEYEaGyFSNF7kSX/XrNMQN15XNwXkEJLgsA+NyT Aj+MhO+1X3AZCbep/o277DFVJmlerpl4cMpBDSu2WLW0EiPhm71V8Hv2jNusnDD4gt rqxnJd+zuIoRg== Date: Fri, 16 Sep 2022 18:23:02 +0200 From: Marek =?UTF-8?B?QmVow7pu?= To: Lorenzo Pieralisi Cc: Lorenzo Pieralisi , Bjorn Helgaas , Krzysztof =?UTF-8?B?V2lsY3p5xYRza2k=?= , pali@kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, maz@kernel.org, tglx@linutronix.de Subject: Re: [PATCH 03/11] PCI: aardvark: Add support for DLLSC and hotplug interrupt Message-ID: <20220916182302.4eba1b48@dellmb> In-Reply-To: References: <20220818135140.5996-1-kabel@kernel.org> <20220818135140.5996-4-kabel@kernel.org> X-Mailer: Claws Mail 3.19.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org On Fri, 9 Sep 2022 16:57:11 +0200 Lorenzo Pieralisi wrote: > [+Marc, Thomas - I can't merge this code without them reviewing it, > I am not sure at all you can mix the timer/IRQ code the way you do] >=20 > On Thu, Aug 18, 2022 at 03:51:32PM +0200, Marek Beh=C3=BAn wrote: > > From: Pali Roh=C3=A1r > >=20 > > Add support for Data Link Layer State Change in the emulated slot > > registers and hotplug interrupt via the emulated root bridge. > >=20 > > This is mainly useful for when an error causes link down event. With > > this change, drivers can try recovery. > >=20 > > Link down state change can be implemented because Aardvark supports Link > > Down event interrupt. Use it for signaling that Data Link Layer Link is > > not active anymore via Hot-Plug Interrupt on emulated root bridge. > >=20 > > Link up interrupt is not available on Aardvark, but we check for whether > > link is up in the advk_pcie_link_up() function. By triggering Hot-Plug > > Interrupt from this function we achieve Link up event, so long as the > > function is called (which it is after probe and when rescanning). > > Although it is not ideal, it is better than nothing. =20 >=20 > So before even coming to the code review: this patch does two things. >=20 > 1) It adds support for handling the Link down state > 2) It adds some code to emulate a Link-up event >=20 > Now, for (2). IIUC you are adding code to make sure that an HP > event is triggered if advk_pcie_link_up() is called and it > detects a Link-down->Link-up transition, that has to be notified > through an HP event. >=20 > If that's correct, you have to explain to me please what this is > actually achieving and a specific scenario where we want this to be > implemented, in fine details; then we add it to the commit log. Hello Lorenzo, sorry for not replying earlier. Would something like this be sufficient? DLLSC is needed by the pciehp driver, which handles hotplug, but also link state change events. AFAIK no Aardvark devices support hotplug, but link state change events are required for graceful driver unbinding in case of link down event. So with this change we achieve graceful driver unbind for example when WiFi card PCIe link goes down (we've seen this with ath10k and mt76 WiFi cards). Before the WiFi driver started spitting out errors, or even taking the whole system down. Since after link goes down, it can come back up if the WiFi card can recover (or if reset pin is used to reset the card), we need to be able to recognize link up event. Since AFAIK Aardvark does not have interrupt for link up event, the best thing we can do is simulate it - whenever we read the link state, find it is up, and have cached value saying it is down, we trigger the link up event. We read link state whenever the configuration space is read, for example by writing 1 to /sys/bus/pci/rescan. Marek 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 DE74CECAAA1 for ; Fri, 16 Sep 2022 16:24:31 +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:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=NeV36TlXoqisopYXPv5SAQnejWEz5GhFiv5J68sN6UA=; b=B7CFO0z0TXBk7p 7o9hSwLQfrmL94qQnK9ERqEHcOBuLaZ4/PxVABnTLsO2tm3emCmST9zu/LDbqBr5XQP4j2liBpg4E A/uRWjaUeDoiCDiXBF5ytof7yRJR5+ByV6Qvu5R4HSiQCHaNZauC4xiCTtmogr+nsfRSVKyaYzRdJ t+uABeZFZlaf6s0Kqvl7u5HG11Q6FiAvgDAQWfgwAUmSXXPTsiDEV2OwUn+8z/wVVD36BQkqLM6v7 jQ9IPbpy8hr0CzdrGmkUDdxbm78b/YTdcth+T3VR31/F3C87xVlYFcaWnxV5v4kzU5kJnvnLtsDHP dNhr3yQzkeyrtf5zyDHA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oZE7b-00Eyvd-8F; Fri, 16 Sep 2022 16:23:19 +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 1oZE7Q-00EyqX-Q7 for linux-arm-kernel@lists.infradead.org; Fri, 16 Sep 2022 16:23:16 +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 46ED362C1E; Fri, 16 Sep 2022 16:23:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6358C433C1; Fri, 16 Sep 2022 16:23:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1663345386; bh=v5HJNIOU5xWbCFd0rGpuOhpj9GLTczU7qj0YbyVeTpo=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=tHz69b0EPqA/WimaFqLFFTQ+ylfwduePCLEQylvlkZCKSlUvxgOk4iitsPD9H3EBZ br6SWP1/qwzAPTSUqV8fZxrheZOwUNOxhKie8uiH+wytpma9M1nFUZZOZE2VLIHE9y 8gBnDTw3sIosn2GDwoROCD1YktyK9iHQhr0IOrROtUE1GqOU4szLKHo+jj0INiEXvY 5T0r2Qk3/Zg5+Xu9ciKQox9XOMewEYEaGyFSNF7kSX/XrNMQN15XNwXkEJLgsA+NyT Aj+MhO+1X3AZCbep/o277DFVJmlerpl4cMpBDSu2WLW0EiPhm71V8Hv2jNusnDD4gt rqxnJd+zuIoRg== Date: Fri, 16 Sep 2022 18:23:02 +0200 From: Marek =?UTF-8?B?QmVow7pu?= To: Lorenzo Pieralisi Cc: Lorenzo Pieralisi , Bjorn Helgaas , Krzysztof =?UTF-8?B?V2lsY3p5xYRza2k=?= , pali@kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, maz@kernel.org, tglx@linutronix.de Subject: Re: [PATCH 03/11] PCI: aardvark: Add support for DLLSC and hotplug interrupt Message-ID: <20220916182302.4eba1b48@dellmb> In-Reply-To: References: <20220818135140.5996-1-kabel@kernel.org> <20220818135140.5996-4-kabel@kernel.org> X-Mailer: Claws Mail 3.19.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220916_092308_988391_2302FE38 X-CRM114-Status: GOOD ( 31.39 ) 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 T24gRnJpLCA5IFNlcCAyMDIyIDE2OjU3OjExICswMjAwCkxvcmVuem8gUGllcmFsaXNpIDxscGll cmFsaXNpQGtlcm5lbC5vcmc+IHdyb3RlOgoKPiBbK01hcmMsIFRob21hcyAtIEkgY2FuJ3QgbWVy Z2UgdGhpcyBjb2RlIHdpdGhvdXQgdGhlbSByZXZpZXdpbmcgaXQsCj4gSSBhbSBub3Qgc3VyZSBh dCBhbGwgeW91IGNhbiBtaXggdGhlIHRpbWVyL0lSUSBjb2RlIHRoZSB3YXkgeW91IGRvXQo+IAo+ IE9uIFRodSwgQXVnIDE4LCAyMDIyIGF0IDAzOjUxOjMyUE0gKzAyMDAsIE1hcmVrIEJlaMO6biB3 cm90ZToKPiA+IEZyb206IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+Cj4gPiAKPiA+IEFk ZCBzdXBwb3J0IGZvciBEYXRhIExpbmsgTGF5ZXIgU3RhdGUgQ2hhbmdlIGluIHRoZSBlbXVsYXRl ZCBzbG90Cj4gPiByZWdpc3RlcnMgYW5kIGhvdHBsdWcgaW50ZXJydXB0IHZpYSB0aGUgZW11bGF0 ZWQgcm9vdCBicmlkZ2UuCj4gPiAKPiA+IFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCBmb3Igd2hlbiBh biBlcnJvciBjYXVzZXMgbGluayBkb3duIGV2ZW50LiBXaXRoCj4gPiB0aGlzIGNoYW5nZSwgZHJp dmVycyBjYW4gdHJ5IHJlY292ZXJ5Lgo+ID4gCj4gPiBMaW5rIGRvd24gc3RhdGUgY2hhbmdlIGNh biBiZSBpbXBsZW1lbnRlZCBiZWNhdXNlIEFhcmR2YXJrIHN1cHBvcnRzIExpbmsKPiA+IERvd24g ZXZlbnQgaW50ZXJydXB0LiBVc2UgaXQgZm9yIHNpZ25hbGluZyB0aGF0IERhdGEgTGluayBMYXll ciBMaW5rIGlzCj4gPiBub3QgYWN0aXZlIGFueW1vcmUgdmlhIEhvdC1QbHVnIEludGVycnVwdCBv biBlbXVsYXRlZCByb290IGJyaWRnZS4KPiA+IAo+ID4gTGluayB1cCBpbnRlcnJ1cHQgaXMgbm90 IGF2YWlsYWJsZSBvbiBBYXJkdmFyaywgYnV0IHdlIGNoZWNrIGZvciB3aGV0aGVyCj4gPiBsaW5r IGlzIHVwIGluIHRoZSBhZHZrX3BjaWVfbGlua191cCgpIGZ1bmN0aW9uLiBCeSB0cmlnZ2VyaW5n IEhvdC1QbHVnCj4gPiBJbnRlcnJ1cHQgZnJvbSB0aGlzIGZ1bmN0aW9uIHdlIGFjaGlldmUgTGlu ayB1cCBldmVudCwgc28gbG9uZyBhcyB0aGUKPiA+IGZ1bmN0aW9uIGlzIGNhbGxlZCAod2hpY2gg aXQgaXMgYWZ0ZXIgcHJvYmUgYW5kIHdoZW4gcmVzY2FubmluZykuCj4gPiBBbHRob3VnaCBpdCBp cyBub3QgaWRlYWwsIGl0IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuICAKPiAKPiBTbyBiZWZvcmUg ZXZlbiBjb21pbmcgdG8gdGhlIGNvZGUgcmV2aWV3OiB0aGlzIHBhdGNoIGRvZXMgdHdvIHRoaW5n cy4KPiAKPiAxKSBJdCBhZGRzIHN1cHBvcnQgZm9yIGhhbmRsaW5nIHRoZSBMaW5rIGRvd24gc3Rh dGUKPiAyKSBJdCBhZGRzIHNvbWUgY29kZSB0byBlbXVsYXRlIGEgTGluay11cCBldmVudAo+IAo+ IE5vdywgZm9yICgyKS4gSUlVQyB5b3UgYXJlIGFkZGluZyBjb2RlIHRvIG1ha2Ugc3VyZSB0aGF0 IGFuIEhQCj4gZXZlbnQgaXMgdHJpZ2dlcmVkIGlmIGFkdmtfcGNpZV9saW5rX3VwKCkgaXMgY2Fs bGVkIGFuZCBpdAo+IGRldGVjdHMgYSBMaW5rLWRvd24tPkxpbmstdXAgdHJhbnNpdGlvbiwgdGhh dCBoYXMgdG8gYmUgbm90aWZpZWQKPiB0aHJvdWdoIGFuIEhQIGV2ZW50Lgo+IAo+IElmIHRoYXQn cyBjb3JyZWN0LCB5b3UgaGF2ZSB0byBleHBsYWluIHRvIG1lIHBsZWFzZSB3aGF0IHRoaXMgaXMK PiBhY3R1YWxseSBhY2hpZXZpbmcgYW5kIGEgc3BlY2lmaWMgc2NlbmFyaW8gd2hlcmUgd2Ugd2Fu dCB0aGlzIHRvIGJlCj4gaW1wbGVtZW50ZWQsIGluIGZpbmUgZGV0YWlsczsgdGhlbiB3ZSBhZGQg aXQgdG8gdGhlIGNvbW1pdCBsb2cuCgpIZWxsbyBMb3JlbnpvLCBzb3JyeSBmb3Igbm90IHJlcGx5 aW5nIGVhcmxpZXIuCgpXb3VsZCBzb21ldGhpbmcgbGlrZSB0aGlzIGJlIHN1ZmZpY2llbnQ/Cgog IERMTFNDIGlzIG5lZWRlZCBieSB0aGUgcGNpZWhwIGRyaXZlciwgd2hpY2ggaGFuZGxlcyBob3Rw bHVnLCBidXQgYWxzbwogIGxpbmsgc3RhdGUgY2hhbmdlIGV2ZW50cy4gQUZBSUsgbm8gQWFyZHZh cmsgZGV2aWNlcyBzdXBwb3J0IGhvdHBsdWcsCiAgYnV0IGxpbmsgc3RhdGUgY2hhbmdlIGV2ZW50 cyBhcmUgcmVxdWlyZWQgZm9yIGdyYWNlZnVsIGRyaXZlcgogIHVuYmluZGluZyBpbiBjYXNlIG9m IGxpbmsgZG93biBldmVudC4KCiAgU28gd2l0aCB0aGlzIGNoYW5nZSB3ZSBhY2hpZXZlIGdyYWNl ZnVsIGRyaXZlciB1bmJpbmQgZm9yIGV4YW1wbGUKICB3aGVuIFdpRmkgY2FyZCBQQ0llIGxpbmsg Z29lcyBkb3duICh3ZSd2ZSBzZWVuIHRoaXMgd2l0aCBhdGgxMGsgYW5kCiAgbXQ3NiBXaUZpIGNh cmRzKS4gQmVmb3JlIHRoZSBXaUZpIGRyaXZlciBzdGFydGVkIHNwaXR0aW5nIG91dCBlcnJvcnMs CiAgb3IgZXZlbiB0YWtpbmcgdGhlIHdob2xlIHN5c3RlbSBkb3duLgoKICBTaW5jZSBhZnRlciBs aW5rIGdvZXMgZG93biwgaXQgY2FuIGNvbWUgYmFjayB1cCBpZiB0aGUgV2lGaSBjYXJkIGNhbgog IHJlY292ZXIgKG9yIGlmIHJlc2V0IHBpbiBpcyB1c2VkIHRvIHJlc2V0IHRoZSBjYXJkKSwgd2Ug bmVlZCB0byBiZQogIGFibGUgdG8gcmVjb2duaXplIGxpbmsgdXAgZXZlbnQuIFNpbmNlIEFGQUlL IEFhcmR2YXJrIGRvZXMgbm90IGhhdmUKICBpbnRlcnJ1cHQgZm9yIGxpbmsgdXAgZXZlbnQsIHRo ZSBiZXN0IHRoaW5nIHdlIGNhbiBkbyBpcyBzaW11bGF0ZSBpdAogIC0gd2hlbmV2ZXIgd2UgcmVh ZCB0aGUgbGluayBzdGF0ZSwgZmluZCBpdCBpcyB1cCwgYW5kIGhhdmUgY2FjaGVkCiAgdmFsdWUg c2F5aW5nIGl0IGlzIGRvd24sIHdlIHRyaWdnZXIgdGhlIGxpbmsgdXAgZXZlbnQuIFdlIHJlYWQg bGluawogIHN0YXRlIHdoZW5ldmVyIHRoZSBjb25maWd1cmF0aW9uIHNwYWNlIGlzIHJlYWQsIGZv ciBleGFtcGxlIGJ5CiAgd3JpdGluZyAxIHRvIC9zeXMvYnVzL3BjaS9yZXNjYW4uCgpNYXJlawoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=