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 17141C3DA4A for ; Thu, 1 Aug 2024 13:22:04 +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:MIME-Version:References: 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=EmybZ/E+yQB03NnatRzbiN7eEXwxXUgiQrPbWHjipEw=; b=If3S0V191HLBKi rFmbg4zEzSeL1bPAOMpo/YRQt5hP9XbL8Ln3Xn+Wo/xozol/HCgvUr3kBhAjqLE2RU6eJbqFeH/jm hertsVmum87uJt0kJV4OGPa0JwAs3fKcMpiaELDomLxELE8waqHQhfHVq23aEqiHxubbJpU3+XkJR mk/uQC7RsNmPpQnWDZ7xuhZsKIlbY4s3Wgm6kyYBZCpeVU5hBrf6bOxcgGv1GAWuIwXiw8dT69A1k r0zWjLcEgDWDVPh3LcBR2/4sx/X9qVcI/C/mgY/q0EfgmTLxrWDWU6qTK8dlUiJzOv9VoiHMCCGA/ qmxkkAlAo/A9qTzT+1pg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sZVkk-00000005UYH-05A0; Thu, 01 Aug 2024 13:21:58 +0000 Received: from sin.source.kernel.org ([145.40.73.55]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sZVhP-00000005TQZ-0fs2 for linux-rockchip@lists.infradead.org; Thu, 01 Aug 2024 13:18:32 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 4B3BBCE19E5; Thu, 1 Aug 2024 13:18:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7B3BBC4AF0A; Thu, 1 Aug 2024 13:18:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1722518308; bh=+O3CjmQEDNxF3Yqipd/id2mBUDJmKsQN7NTVWnjIxXc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=H3oeGyZB2cbtz0sjRO9aOVTlZS54uHfZdrl4kD7jWfV1M2onOl/u6ste15k/4vRvY REvzi1m7FJ2PJEh1MmXGHkrUM6n5Rmdr0Ey4xUHy9pwrzqJ3JvA9TIeVqTVPnLIVBM tRQcQKttOCyKn7htYKINuNU/mG8KA5sN1hIDzeP9kR/s0Abh1OKEr4GVRkiaIi7wbW TaK+4uBOf98lebmj81N/iyT66kDa11TlsKEwi5Gw6I+BWAJkzH1vVD1Qq7XiJVGzqa lAQuJAw67Oyt3nl913iuTETZSSX6yohboUOuCH1s1HHfQO5tRIl42HDILlZOi7vjo3 tnTHhF80nSyNg== Date: Thu, 1 Aug 2024 14:18:23 +0100 From: Lee Jones To: Sebastian Reichel Cc: Dmitrii Osipenko , Mark Brown , Urja , Heiko Stuebner , linux-rockchip@lists.infradead.org, linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, kernel@collabora.com, stable@vger.kernel.org Subject: Re: [PATCH v1 1/1] mfd: rk8xx: Fix shutdown handler Message-ID: <20240801131823.GB1019230@google.com> References: <20240730180903.81688-1-sebastian.reichel@collabora.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240730180903.81688-1-sebastian.reichel@collabora.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240801_061831_590317_CB5114B3 X-CRM114-Status: GOOD ( 42.54 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gVHVlLCAzMCBKdWwgMjAyNCwgU2ViYXN0aWFuIFJlaWNoZWwgd3JvdGU6Cgo+IFdoZW4gSSBj b252ZXJ0ZWQgcms4MDggdG8gZGV2aWNlIG1hbmFnZWQgcmVzb3VyY2VzIEkgY29udmVydGVkIHRo ZSByazgwOAo+IHNwZWNpZmljIHBtX3Bvd2VyX29mZiBoYW5kbGVyIHRvIGRldm1fcmVnaXN0ZXJf c3lzX29mZl9oYW5kbGVyKCkgdXNpbmcKPiBTWVNfT0ZGX01PREVfUE9XRVJfT0ZGX1BSRVBBUkUs IHdoaWNoIGlzIGFsbG93ZWQgdG8gc2xlZXAuIEkgZGlkIHRoaXMKPiBiZWNhdXNlIHRoZSBkcml2 ZXIncyBwb3dlcm9mZiBmdW5jdGlvbiBtYWtlcyB1c2Ugb2YgcmVnbWFwIGFuZCB0aGUgYmFja2Vu ZAo+IG9mIHRoYXQgbWlnaHQgc2xlZXAuCj4gCj4gQnV0IHRoZSBQTUlDIHBvd2Vyb2ZmIGZ1bmN0 aW9uIHdpbGwga2lsbCBvZmYgdGhlIGJvYXJkIHBvd2VyIGFuZCB0aGUKPiBrZXJuZWwgZG9lcyBz b21lIGV4dHJhIHN0ZXBzIGFmdGVyIHRoZSBwcmVwYXJlIGhhbmRsZXIuIFRodXMgdGhlIHByZXBh cmUKPiBoYW5kbGVyIHNob3VsZCBub3QgYmUgdXNlZCBmb3IgdGhlIFBNSUMncyBwb3dlcm9mZiBy b3V0aW5lLiBJbnN0ZWFkIHRoZQo+IG5vcm1hbCBTWVNfT0ZGX01PREVfUE9XRVJfT0ZGIHBoYXNl IHNob3VsZCBiZSB1c2VkLiBUaGUgb2xkIHBtX3Bvd2VyX29mZgo+IG1ldGhvZCBpcyBhbHNvIGJl aW5nIGNhbGxlZCBmcm9tIHRoZXJlLCBzbyB0aGlzIHdvdWxkIGhhdmUgYmVlbiBhCj4gY2xlYW5l ciBjb252ZXJzaW9uIGFueXdheXMuCj4gCj4gQnV0IGl0IHN0aWxsIG1ha2VzIHNlbnNlIHRvIGlu dmVzdGlnYXRlIHRoZSBzbGVlcCBoYW5kbGluZyBhbmQgY2hlY2sKPiBpZiB0aGVyZSBhcmUgYW55 IGlzc3Vlcy4gQXBwYXJlbnRseSB0aGUgUm9ja2NoaXAgYW5kIE1lc29uIEkyQyBkcml2ZXJzCj4g KHRoZSBvbmx5IHBsYXRmb3JtcyB1c2luZyB0aGUgUE1JQ3MgaGFuZGxlZCBieSB0aGlzIGRyaXZl cikgYm90aCBoYXZlCj4gc3VwcG9ydCBmb3IgYXRvbWljIHRyYW5zZmVycyBhbmQgdGh1cyBtYXkg YmUgY2FsbGVkIGZyb20gdGhlIHByb3Blcgo+IHBvd2Vyb2ZmIGNvbnRleHQuCj4gCj4gVGhpbmdz IGFyZSBkaWZmZXJlbnQgb24gdGhlIFNQSSBzaWRlLiBUaGF0IGlzIHNvIGZhciBvbmx5IHVzZWQg Ynkgcms4MDYKPiBhbmQgdGhhdCBvbmUgaXMgb25seSB1c2VkIGJ5IFJvY2tjaGlwIFJLMzU4OC4g VW5mb3J0dW5hdGVseSB0aGUgUm9ja2NoaXAKPiBTUEkgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQg YXRvbWljIHRyYW5zZmVycy4gVGhhdCBtZWFucyB1c2luZyB0aGUKPiBub3JtYWwgUE9XRVJfT0ZG IGhhbmRsZXIgd291bGQgaW50cm9kdWNlIHRoZSBmb2xsb3dpbmcgZXJyb3Igc3BsYXNoCj4gZHVy aW5nIHNodXRkb3duIG9uIGFsbCBSSzM1ODggYm9hcmRzIGN1cnJlbnRseSBzdXBwb3J0ZWQgdXBz dHJlYW06Cj4gCj4gWyAgIDEzLjc2MTM1M10gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0t LS0tLS0tCj4gWyAgIDEzLjc2MTc2NF0gVm9sdW50YXJ5IGNvbnRleHQgc3dpdGNoIHdpdGhpbiBS Q1UgcmVhZC1zaWRlIGNyaXRpY2FsIHNlY3Rpb24hCj4gWyAgIDEzLjc2MTc3Nl0gV0FSTklORzog Q1BVOiAwIFBJRDogMSBhdCBrZXJuZWwvcmN1L3RyZWVfcGx1Z2luLmg6MzMwIHJjdV9ub3RlX2Nv bnRleHRfc3dpdGNoKzB4M2FjLzB4NDA0Cj4gWyAgIDEzLjc2MzIxOV0gTW9kdWxlcyBsaW5rZWQg aW46Cj4gWyAgIDEzLjc2MzQ5OF0gQ1BVOiAwIFVJRDogMCBQSUQ6IDEgQ29tbTogc3lzdGVtZC1z aHV0ZG93IE5vdCB0YWludGVkIDYuMTAuMC0xMjI4NC1nMjgxOGE5YTE5NTE0ICMxNDk5Cj4gWyAg IDEzLjc2NDI5N10gSGFyZHdhcmUgbmFtZTogUm9ja2NoaXAgUkszNTg4IEVWQjEgVjEwIEJvYXJk IChEVCkKPiBbICAgMTMuNzY0ODEyXSBwc3RhdGU6IDYwNDAwMGM5IChuWkN2IGRhSUYgK1BBTiAt VUFPIC1UQ08gLURJVCAtU1NCUyBCVFlQRT0tLSkKPiBbICAgMTMuNzY1NDI3XSBwYyA6IHJjdV9u b3RlX2NvbnRleHRfc3dpdGNoKzB4M2FjLzB4NDA0Cj4gWyAgIDEzLjc2NTg3MV0gbHIgOiByY3Vf bm90ZV9jb250ZXh0X3N3aXRjaCsweDNhYy8weDQwNAo+IFsgICAxMy43NjYzMTRdIHNwIDogZmZm ZjgwMDA4NGY0YjViMAo+IFsgICAxMy43NjY2MDldIHgyOTogZmZmZjgwMDA4NGY0YjViMCB4Mjg6 IGZmZmYwMDA0MDEzOWI4MDAgeDI3OiAwMDAwN2RmYjQ0MzlhZTgwCj4gWyAgIDEzLjc2NzI0NV0g eDI2OiBmZmZmMDAwNDAxMzliYzgwIHgyNTogMDAwMDAwMDAwMDAwMDAwMCB4MjQ6IGZmZmY4MDAw ODIxMTg0NzAKPiBbICAgMTMuNzY3ODgwXSB4MjM6IDAwMDAwMDAwMDAwMDAwMDAgeDIyOiBmZmZm MDAwNDAwMzAwMDAwIHgyMTogZmZmZjAwMDQwMDMwMDAwMAo+IFsgICAxMy43Njg1MTVdIHgyMDog ZmZmZjgwMDA4M2E5ZDYwMCB4MTk6IGZmZmYwMDA0ZmVlNDg2MDAgeDE4OiBmZmZmZmZmZmZmZmVk NDQ4Cj4gWyAgIDEzLjc2OTE1MV0geDE3OiAwMDAwMDAwNDAwNDRmZmZmIHgxNjogMDA1MDAwZjJi NTUwMzUxMCB4MTU6IDAwMDAwMDAwMDAwMDAwNDgKPiBbICAgMTMuNzY5Nzg3XSB4MTQ6IGZmZmZm ZmZmZmZmZWQ0OTAgeDEzOiBmZmZmODAwMDg0NzNiM2MwIHgxMjogMDAwMDAwMDAwMDAwMDkwMAo+ IFsgICAxMy43NzA0MjFdIHgxMTogMDAwMDAwMDAwMDAwMDMwMCB4MTA6IGZmZmY4MDAwODQ3OTdi YzAgeDkgOiBmZmZmODAwMDg0NzNiM2MwCj4gWyAgIDEzLjc3MTA1N10geDggOiAwMDAwMDAwMGZm ZmZlZmZmIHg3IDogZmZmZjgwMDA4NDc5MzNjMCB4NiA6IDAwMDAwMDAwMDAwMDAzMDAKPiBbICAg MTMuNzcxNjkyXSB4NSA6IDAwMDAwMDAwMDAwMDAzMDEgeDQgOiA0MDAwMDAwMGZmZmZmMzAwIHgz IDogMDAwMDAwMDAwMDAwMDAwMAo+IFsgICAxMy43NzIzMjhdIHgyIDogMDAwMDAwMDAwMDAwMDAw MCB4MSA6IDAwMDAwMDAwMDAwMDAwMDAgeDAgOiBmZmZmMDAwNDAwMzAwMDAwCj4gWyAgIDEzLjc3 Mjk2NF0gQ2FsbCB0cmFjZToKPiBbICAgMTMuNzczMTg0XSAgcmN1X25vdGVfY29udGV4dF9zd2l0 Y2grMHgzYWMvMHg0MDQKPiBbICAgMTMuNzczNTk4XSAgX19zY2hlZHVsZSsweDk0LzB4YjBjCj4g WyAgIDEzLjc3MzkwN10gIHNjaGVkdWxlKzB4MzQvMHgxMDQKPiBbICAgMTMuNzc0MTk4XSAgc2No ZWR1bGVfdGltZW91dCsweDg0LzB4ZmMKPiBbICAgMTMuNzc0NTQ0XSAgd2FpdF9mb3JfY29tcGxl dGlvbl90aW1lb3V0KzB4NzgvMHgxNGMKPiBbICAgMTMuNzc0OTgwXSAgc3BpX3RyYW5zZmVyX29u ZV9tZXNzYWdlKzB4NTg4LzB4NjkwCj4gWyAgIDEzLjc3NTQwM10gIF9fc3BpX3B1bXBfdHJhbnNm ZXJfbWVzc2FnZSsweDE5Yy8weDRlYwo+IFsgICAxMy43NzU4NDZdICBfX3NwaV9zeW5jKzB4MmE4 LzB4M2M0Cj4gWyAgIDEzLjc3NjE2MV0gIHNwaV93cml0ZV90aGVuX3JlYWQrMHgxMjAvMHgyMDgK PiBbICAgMTMuNzc2NTQzXSAgcms4MDZfc3BpX2J1c19yZWFkKzB4NTQvMHg4OAo+IFsgICAxMy43 NzY5MDVdICBfcmVnbWFwX3Jhd19yZWFkKzB4ZWMvMHgxNmMKPiBbICAgMTMuNzc3MjU3XSAgX3Jl Z21hcF9idXNfcmVhZCsweDQ0LzB4N2MKPiBbICAgMTMuNzc3NjAxXSAgX3JlZ21hcF9yZWFkKzB4 NjAvMHhkOAo+IFsgICAxMy43Nzc5MTVdICBfcmVnbWFwX3VwZGF0ZV9iaXRzKzB4ZjQvMHgxM2MK PiBbICAgMTMuNzc4Mjg5XSAgcmVnbWFwX3VwZGF0ZV9iaXRzX2Jhc2UrMHg2NC8weDk4Cj4gWyAg IDEzLjc3ODY4Nl0gIHJrODA4X3Bvd2VyX29mZisweDcwLzB4ZmMKPiBbICAgMTMuNzc5MDI0XSAg c3lzX29mZl9ub3RpZnkrMHg0MC8weDZjCj4gWyAgIDEzLjc3OTM1Nl0gIGF0b21pY19ub3RpZmll cl9jYWxsX2NoYWluKzB4NjAvMHg5MAo+IFsgICAxMy43Nzk3NzZdICBkb19rZXJuZWxfcG93ZXJf b2ZmKzB4NTQvMHg2Ywo+IFsgICAxMy43ODAxNDZdICBtYWNoaW5lX3Bvd2VyX29mZisweDE4LzB4 MjQKPiBbICAgMTMuNzgwNDk5XSAga2VybmVsX3Bvd2VyX29mZisweDcwLzB4N2MKPiBbICAgMTMu NzgwODQ1XSAgX19kb19zeXNfcmVib290KzB4MjEwLzB4MjcwCj4gWyAgIDEzLjc4MTE5OF0gIF9f YXJtNjRfc3lzX3JlYm9vdCsweDI0LzB4MzAKPiBbICAgMTMuNzgxNTU4XSAgaW52b2tlX3N5c2Nh bGwrMHg0OC8weDEwYwo+IFsgICAxMy43ODE4OTddICBlbDBfc3ZjX2NvbW1vbisweDNjLzB4ZTgK PiBbICAgMTMuNzgyMjI4XSAgZG9fZWwwX3N2YysweDIwLzB4MmMKPiBbICAgMTMuNzgyNTI4XSAg ZWwwX3N2YysweDM0LzB4ZDgKPiBbICAgMTMuNzgyODA2XSAgZWwwdF82NF9zeW5jX2hhbmRsZXIr MHgxMjAvMHgxMmMKPiBbICAgMTMuNzgzMTk3XSAgZWwwdF82NF9zeW5jKzB4MTkwLzB4MTk0Cj4g WyAgIDEzLjc4MzUyN10gLS0tWyBlbmQgdHJhY2UgMDAwMDAwMDAwMDAwMDAwMCBdLS0tCj4gCj4g VG8gYXZvaWQgdGhpcyB3ZSBrZWVwIHRoZSBTWVNfT0ZGX01PREVfUE9XRVJfT0ZGX1BSRVBBUkUg aGFuZGxlciBmb3IgdGhlCj4gU1BJIGJhY2tlbmQuIFRoaXMgaXMgbm90IGdyZWF0LCBidXQgYXQg bGVhc3QgYXZvaWRzIHJlZ3Jlc3Npb25zIGFuZCB0aGUKPiBmaXggc2hvdWxkIGJlIHNtYWxsIGVu b3VnaCB0byBhbGxvdyBiYWNrcG9ydGluZy4KPiAKPiBBcyBhIHNpZGUtZWZmZWN0IHRoaXMgYWxz byB3b3JrcyBhcm91bmQgYSBzaHV0ZG93biBwcm9ibGVtIG9uIHRoZSBBc3VzCj4gQzIwMS4gRm9y IHJlYXNvbnMgdW5rbm93biB0aGF0IHNraXBzIGNhbGxpbmcgdGhlIHByZXBhcmUgaGFuZGxlciBh bmQKPiBkaXJlY3RseSBjYWxscyB0aGUgZmluYWwgc2h1dGRvd24gaGFuZGxlci4KPiAKPiBGaXhl czogNGZlYzhhNWE4NWM0OSAoIm1mZDogcms4MDg6IENvbnZlcnQgdG8gZGV2aWNlIG1hbmFnZWQg cmVzb3VyY2VzIikKPiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwo+IFJlcG9ydGVkLWJ5OiBV cmphIDx1cmphQHVyamEuZGV2Pgo+IFNpZ25lZC1vZmYtYnk6IFNlYmFzdGlhbiBSZWljaGVsIDxz ZWJhc3RpYW4ucmVpY2hlbEBjb2xsYWJvcmEuY29tPgo+IC0tLQo+ICBkcml2ZXJzL21mZC9yazh4 eC1jb3JlLmMgIHwgMTUgKysrKysrKysrKysrKy0tCj4gIGRyaXZlcnMvbWZkL3JrOHh4LWkyYy5j ICAgfCAgMiArLQo+ICBkcml2ZXJzL21mZC9yazh4eC1zcGkuYyAgIHwgIDIgKy0KPiAgaW5jbHVk ZS9saW51eC9tZmQvcms4MDguaCB8ICAyICstCj4gIDQgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0 aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvcms4 eHgtY29yZS5jIGIvZHJpdmVycy9tZmQvcms4eHgtY29yZS5jCj4gaW5kZXggNWVkYTNjMGRiYmRm Li43NTdlZjgxODEzMjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZmQvcms4eHgtY29yZS5jCj4g KysrIGIvZHJpdmVycy9tZmQvcms4eHgtY29yZS5jCj4gQEAgLTY5MiwxMCArNjkyLDExIEBAIHZv aWQgcms4eHhfc2h1dGRvd24oc3RydWN0IGRldmljZSAqZGV2KQo+ICB9Cj4gIEVYUE9SVF9TWU1C T0xfR1BMKHJrOHh4X3NodXRkb3duKTsKPiAgCj4gLWludCByazh4eF9wcm9iZShzdHJ1Y3QgZGV2 aWNlICpkZXYsIGludCB2YXJpYW50LCB1bnNpZ25lZCBpbnQgaXJxLCBzdHJ1Y3QgcmVnbWFwICpy ZWdtYXApCj4gK2ludCByazh4eF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCB2YXJpYW50 LCB1bnNpZ25lZCBpbnQgaXJxLCBzdHJ1Y3QgcmVnbWFwICpyZWdtYXAsIGJvb2wgaXNfc3BpKQo+ ICB7Cj4gIAlzdHJ1Y3Qgcms4MDggKnJrODA4Owo+ICAJY29uc3Qgc3RydWN0IHJrODA4X3JlZ19k YXRhICpwcmVfaW5pdF9yZWc7Cj4gKwllbnVtIHN5c19vZmZfbW9kZSBwd3Jfb2ZmX21vZGUgPSBT WVNfT0ZGX01PREVfUE9XRVJfT0ZGOwo+ICAJY29uc3Qgc3RydWN0IG1mZF9jZWxsICpjZWxsczsK PiAgCWludCBkdWFsX3N1cHBvcnQgPSAwOwo+ICAJaW50IG5yX3ByZV9pbml0X3JlZ3M7Cj4gQEAg LTc4NSwxMCArNzg2LDIwIEBAIGludCByazh4eF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGlu dCB2YXJpYW50LCB1bnNpZ25lZCBpbnQgaXJxLCBzdHJ1Y3QgcmVnbWFwCj4gIAlpZiAocmV0KQo+ ICAJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiZmFpbGVkIHRvIGFkZCBNRkQgZGV2 aWNlc1xuIik7Cj4gIAo+ICsJLyoKPiArCSAqIEN1cnJlbnRseSB0aGUgUm9ja2NoaXAgU1BJIGRy aXZlciBhbHdheXMgc2xlZXBzIHdoZW4gZG9pbmcgU1BJCj4gKwkgKiB0cmFuc2ZlcnMuIFRoaXMg aXMgbm90IGFsbG93ZWQgaW4gdGhlIFNZU19PRkZfTU9ERV9QT1dFUl9PRkYKPiArCSAqIGhhbmRs ZXIsIHNvIHdlIGFyZSB1c2luZyB0aGUgcHJlcGFyZSBoYW5kbGVyIGFzIGEgd29ya2Fyb3VuZC4K PiArCSAqIFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQgb25jZSB0aGUgUm9ja2NoaXAgU1BJIGRyaXZl ciBoYXMgYmVlbgo+ICsJICogYWRhcHRlZC4KPiArCSAqLwoKU28gd2h5IG5vdCBqdXN0IGFkYXB0 IHRoZSBTUEkgZHJpdmVyIG5vdz8KCldoYXQncyB0aGUgYmV0IHRoYXQgaWYgYWNjZXB0ZWQsIHRo aXMgaGFjayBpcyBzdGlsbCBoZXJlIGluIDUgeWVhcnMgdGltZT8KCj4gKwlpZiAoaXNfc3BpKQo+ ICsJCXB3cl9vZmZfbW9kZSA9IFNZU19PRkZfTU9ERV9QT1dFUl9PRkZfUFJFUEFSRTsKPiArCj4g IAlpZiAoZGV2aWNlX3Byb3BlcnR5X3JlYWRfYm9vbChkZXYsICJyb2NrY2hpcCxzeXN0ZW0tcG93 ZXItY29udHJvbGxlciIpIHx8Cj4gIAkgICAgZGV2aWNlX3Byb3BlcnR5X3JlYWRfYm9vbChkZXYs ICJzeXN0ZW0tcG93ZXItY29udHJvbGxlciIpKSB7Cj4gIAkJcmV0ID0gZGV2bV9yZWdpc3Rlcl9z eXNfb2ZmX2hhbmRsZXIoZGV2LAo+IC0JCQkJICAgIFNZU19PRkZfTU9ERV9QT1dFUl9PRkZfUFJF UEFSRSwgU1lTX09GRl9QUklPX0hJR0gsCj4gKwkJCQkgICAgcHdyX29mZl9tb2RlLCBTWVNfT0ZG X1BSSU9fSElHSCwKPiAgCQkJCSAgICAmcms4MDhfcG93ZXJfb2ZmLCByazgwOCk7Cj4gIAkJaWYg KHJldCkKPiAgCQkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQsCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbWZkL3JrOHh4LWkyYy5jIGIvZHJpdmVycy9tZmQvcms4eHgtaTJjLmMKPiBpbmRl eCA2OWE2YjI5N2Q3MjMuLmEyMDI5ZGVjZDY1NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21mZC9y azh4eC1pMmMuYwo+ICsrKyBiL2RyaXZlcnMvbWZkL3JrOHh4LWkyYy5jCj4gQEAgLTE4OSw3ICsx ODksNyBAQCBzdGF0aWMgaW50IHJrOHh4X2kyY19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xp ZW50KQo+ICAJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZjbGllbnQtPmRldiwgUFRSX0VSUihyZWdt YXApLAo+ICAJCQkJICAgICAicmVnbWFwIGluaXRpYWxpemF0aW9uIGZhaWxlZFxuIik7Cj4gIAo+ IC0JcmV0dXJuIHJrOHh4X3Byb2JlKCZjbGllbnQtPmRldiwgZGF0YS0+dmFyaWFudCwgY2xpZW50 LT5pcnEsIHJlZ21hcCk7Cj4gKwlyZXR1cm4gcms4eHhfcHJvYmUoJmNsaWVudC0+ZGV2LCBkYXRh LT52YXJpYW50LCBjbGllbnQtPmlycSwgcmVnbWFwLCBmYWxzZSk7Cj4gIH0KPiAgCj4gIHN0YXRp YyB2b2lkIHJrOHh4X2kyY19zaHV0ZG93bihzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL21mZC9yazh4eC1zcGkuYyBiL2RyaXZlcnMvbWZkL3JrOHh4LXNw aS5jCj4gaW5kZXggMzQwNWZiODJmZjlmLi4yMGY5NDI4Zjk0YmIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9tZmQvcms4eHgtc3BpLmMKPiArKysgYi9kcml2ZXJzL21mZC9yazh4eC1zcGkuYwo+IEBA IC05NCw3ICs5NCw3IEBAIHN0YXRpYyBpbnQgcms4eHhfc3BpX3Byb2JlKHN0cnVjdCBzcGlfZGV2 aWNlICpzcGkpCj4gIAkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnNwaS0+ZGV2LCBQVFJfRVJSKHJl Z21hcCksCj4gIAkJCQkgICAgICJGYWlsZWQgdG8gaW5pdCByZWdtYXBcbiIpOwo+ICAKPiAtCXJl dHVybiByazh4eF9wcm9iZSgmc3BpLT5kZXYsIFJLODA2X0lELCBzcGktPmlycSwgcmVnbWFwKTsK PiArCXJldHVybiByazh4eF9wcm9iZSgmc3BpLT5kZXYsIFJLODA2X0lELCBzcGktPmlycSwgcmVn bWFwLCB0cnVlKTsKPiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg cms4eHhfc3BpX29mX21hdGNoW10gPSB7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWZk L3JrODA4LmggYi9pbmNsdWRlL2xpbnV4L21mZC9yazgwOC5oCj4gaW5kZXggNjljYmVhNzhiNDMw Li5iZTE1Yjg0Y2ZmOWUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9saW51eC9tZmQvcms4MDguaAo+ ICsrKyBiL2luY2x1ZGUvbGludXgvbWZkL3JrODA4LmgKPiBAQCAtMTM0OSw3ICsxMzQ5LDcgQEAg c3RydWN0IHJrODA4IHsKPiAgfTsKPiAgCj4gIHZvaWQgcms4eHhfc2h1dGRvd24oc3RydWN0IGRl dmljZSAqZGV2KTsKPiAtaW50IHJrOHh4X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHZh cmlhbnQsIHVuc2lnbmVkIGludCBpcnEsIHN0cnVjdCByZWdtYXAgKnJlZ21hcCk7Cj4gK2ludCBy azh4eF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCB2YXJpYW50LCB1bnNpZ25lZCBpbnQg aXJxLCBzdHJ1Y3QgcmVnbWFwICpyZWdtYXAsIGJvb2wgaXNfc3BpKTsKPiAgaW50IHJrOHh4X3N1 c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KTsKPiAgaW50IHJrOHh4X3Jlc3VtZShzdHJ1Y3QgZGV2 aWNlICpkZXYpOwo+ICAKPiAtLSAKPiAyLjQzLjAKPiAKCi0tIApMZWUgSm9uZXMgW+adjueQvOaW r10KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4 LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2No aXAK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 DA0E9158A2C; Thu, 1 Aug 2024 13:18:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722518309; cv=none; b=fTa/lJFP/tMayU/a/2vA4/EXOeko/iD7PXWxm3Nx4wm8yChHyZTq0xeFT70sOWMlKlf7g72NS2p3cPNPdMtILP7swqdzmsYWFndFc5TPgZCrfju+nt5CtBHQKoM5s1GqwY0nuYGJXP4kug9wo9/gNcegCzsnd7U8GZ0DPSM1KEc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722518309; c=relaxed/simple; bh=+O3CjmQEDNxF3Yqipd/id2mBUDJmKsQN7NTVWnjIxXc=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=FhiPQsZkRKVHZYrZvcUZi7xsUdEP52N185kRv8JowiZ1+HyGhcooLBvPvvkGxiC06tC3sA3K58TrCctK8DgsXjQJQQ89XlfrhlJ7D5BgUHJsEIaA1ivdTANBy3ojBVoxko6VsDUXIbg5LNCy2IJKUYyZFDPm6BY2Qfrya+Vk4a0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=H3oeGyZB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="H3oeGyZB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7B3BBC4AF0A; Thu, 1 Aug 2024 13:18:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1722518308; bh=+O3CjmQEDNxF3Yqipd/id2mBUDJmKsQN7NTVWnjIxXc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=H3oeGyZB2cbtz0sjRO9aOVTlZS54uHfZdrl4kD7jWfV1M2onOl/u6ste15k/4vRvY REvzi1m7FJ2PJEh1MmXGHkrUM6n5Rmdr0Ey4xUHy9pwrzqJ3JvA9TIeVqTVPnLIVBM tRQcQKttOCyKn7htYKINuNU/mG8KA5sN1hIDzeP9kR/s0Abh1OKEr4GVRkiaIi7wbW TaK+4uBOf98lebmj81N/iyT66kDa11TlsKEwi5Gw6I+BWAJkzH1vVD1Qq7XiJVGzqa lAQuJAw67Oyt3nl913iuTETZSSX6yohboUOuCH1s1HHfQO5tRIl42HDILlZOi7vjo3 tnTHhF80nSyNg== Date: Thu, 1 Aug 2024 14:18:23 +0100 From: Lee Jones To: Sebastian Reichel Cc: Dmitrii Osipenko , Mark Brown , Urja , Heiko Stuebner , linux-rockchip@lists.infradead.org, linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, kernel@collabora.com, stable@vger.kernel.org Subject: Re: [PATCH v1 1/1] mfd: rk8xx: Fix shutdown handler Message-ID: <20240801131823.GB1019230@google.com> References: <20240730180903.81688-1-sebastian.reichel@collabora.com> Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20240730180903.81688-1-sebastian.reichel@collabora.com> On Tue, 30 Jul 2024, Sebastian Reichel wrote: > When I converted rk808 to device managed resources I converted the rk808 > specific pm_power_off handler to devm_register_sys_off_handler() using > SYS_OFF_MODE_POWER_OFF_PREPARE, which is allowed to sleep. I did this > because the driver's poweroff function makes use of regmap and the backend > of that might sleep. > > But the PMIC poweroff function will kill off the board power and the > kernel does some extra steps after the prepare handler. Thus the prepare > handler should not be used for the PMIC's poweroff routine. Instead the > normal SYS_OFF_MODE_POWER_OFF phase should be used. The old pm_power_off > method is also being called from there, so this would have been a > cleaner conversion anyways. > > But it still makes sense to investigate the sleep handling and check > if there are any issues. Apparently the Rockchip and Meson I2C drivers > (the only platforms using the PMICs handled by this driver) both have > support for atomic transfers and thus may be called from the proper > poweroff context. > > Things are different on the SPI side. That is so far only used by rk806 > and that one is only used by Rockchip RK3588. Unfortunately the Rockchip > SPI driver does not support atomic transfers. That means using the > normal POWER_OFF handler would introduce the following error splash > during shutdown on all RK3588 boards currently supported upstream: > > [ 13.761353] ------------[ cut here ]------------ > [ 13.761764] Voluntary context switch within RCU read-side critical section! > [ 13.761776] WARNING: CPU: 0 PID: 1 at kernel/rcu/tree_plugin.h:330 rcu_note_context_switch+0x3ac/0x404 > [ 13.763219] Modules linked in: > [ 13.763498] CPU: 0 UID: 0 PID: 1 Comm: systemd-shutdow Not tainted 6.10.0-12284-g2818a9a19514 #1499 > [ 13.764297] Hardware name: Rockchip RK3588 EVB1 V10 Board (DT) > [ 13.764812] pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) > [ 13.765427] pc : rcu_note_context_switch+0x3ac/0x404 > [ 13.765871] lr : rcu_note_context_switch+0x3ac/0x404 > [ 13.766314] sp : ffff800084f4b5b0 > [ 13.766609] x29: ffff800084f4b5b0 x28: ffff00040139b800 x27: 00007dfb4439ae80 > [ 13.767245] x26: ffff00040139bc80 x25: 0000000000000000 x24: ffff800082118470 > [ 13.767880] x23: 0000000000000000 x22: ffff000400300000 x21: ffff000400300000 > [ 13.768515] x20: ffff800083a9d600 x19: ffff0004fee48600 x18: fffffffffffed448 > [ 13.769151] x17: 000000040044ffff x16: 005000f2b5503510 x15: 0000000000000048 > [ 13.769787] x14: fffffffffffed490 x13: ffff80008473b3c0 x12: 0000000000000900 > [ 13.770421] x11: 0000000000000300 x10: ffff800084797bc0 x9 : ffff80008473b3c0 > [ 13.771057] x8 : 00000000ffffefff x7 : ffff8000847933c0 x6 : 0000000000000300 > [ 13.771692] x5 : 0000000000000301 x4 : 40000000fffff300 x3 : 0000000000000000 > [ 13.772328] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000400300000 > [ 13.772964] Call trace: > [ 13.773184] rcu_note_context_switch+0x3ac/0x404 > [ 13.773598] __schedule+0x94/0xb0c > [ 13.773907] schedule+0x34/0x104 > [ 13.774198] schedule_timeout+0x84/0xfc > [ 13.774544] wait_for_completion_timeout+0x78/0x14c > [ 13.774980] spi_transfer_one_message+0x588/0x690 > [ 13.775403] __spi_pump_transfer_message+0x19c/0x4ec > [ 13.775846] __spi_sync+0x2a8/0x3c4 > [ 13.776161] spi_write_then_read+0x120/0x208 > [ 13.776543] rk806_spi_bus_read+0x54/0x88 > [ 13.776905] _regmap_raw_read+0xec/0x16c > [ 13.777257] _regmap_bus_read+0x44/0x7c > [ 13.777601] _regmap_read+0x60/0xd8 > [ 13.777915] _regmap_update_bits+0xf4/0x13c > [ 13.778289] regmap_update_bits_base+0x64/0x98 > [ 13.778686] rk808_power_off+0x70/0xfc > [ 13.779024] sys_off_notify+0x40/0x6c > [ 13.779356] atomic_notifier_call_chain+0x60/0x90 > [ 13.779776] do_kernel_power_off+0x54/0x6c > [ 13.780146] machine_power_off+0x18/0x24 > [ 13.780499] kernel_power_off+0x70/0x7c > [ 13.780845] __do_sys_reboot+0x210/0x270 > [ 13.781198] __arm64_sys_reboot+0x24/0x30 > [ 13.781558] invoke_syscall+0x48/0x10c > [ 13.781897] el0_svc_common+0x3c/0xe8 > [ 13.782228] do_el0_svc+0x20/0x2c > [ 13.782528] el0_svc+0x34/0xd8 > [ 13.782806] el0t_64_sync_handler+0x120/0x12c > [ 13.783197] el0t_64_sync+0x190/0x194 > [ 13.783527] ---[ end trace 0000000000000000 ]--- > > To avoid this we keep the SYS_OFF_MODE_POWER_OFF_PREPARE handler for the > SPI backend. This is not great, but at least avoids regressions and the > fix should be small enough to allow backporting. > > As a side-effect this also works around a shutdown problem on the Asus > C201. For reasons unknown that skips calling the prepare handler and > directly calls the final shutdown handler. > > Fixes: 4fec8a5a85c49 ("mfd: rk808: Convert to device managed resources") > Cc: stable@vger.kernel.org > Reported-by: Urja > Signed-off-by: Sebastian Reichel > --- > drivers/mfd/rk8xx-core.c | 15 +++++++++++++-- > drivers/mfd/rk8xx-i2c.c | 2 +- > drivers/mfd/rk8xx-spi.c | 2 +- > include/linux/mfd/rk808.h | 2 +- > 4 files changed, 16 insertions(+), 5 deletions(-) > > diff --git a/drivers/mfd/rk8xx-core.c b/drivers/mfd/rk8xx-core.c > index 5eda3c0dbbdf..757ef8181328 100644 > --- a/drivers/mfd/rk8xx-core.c > +++ b/drivers/mfd/rk8xx-core.c > @@ -692,10 +692,11 @@ void rk8xx_shutdown(struct device *dev) > } > EXPORT_SYMBOL_GPL(rk8xx_shutdown); > > -int rk8xx_probe(struct device *dev, int variant, unsigned int irq, struct regmap *regmap) > +int rk8xx_probe(struct device *dev, int variant, unsigned int irq, struct regmap *regmap, bool is_spi) > { > struct rk808 *rk808; > const struct rk808_reg_data *pre_init_reg; > + enum sys_off_mode pwr_off_mode = SYS_OFF_MODE_POWER_OFF; > const struct mfd_cell *cells; > int dual_support = 0; > int nr_pre_init_regs; > @@ -785,10 +786,20 @@ int rk8xx_probe(struct device *dev, int variant, unsigned int irq, struct regmap > if (ret) > return dev_err_probe(dev, ret, "failed to add MFD devices\n"); > > + /* > + * Currently the Rockchip SPI driver always sleeps when doing SPI > + * transfers. This is not allowed in the SYS_OFF_MODE_POWER_OFF > + * handler, so we are using the prepare handler as a workaround. > + * This should be removed once the Rockchip SPI driver has been > + * adapted. > + */ So why not just adapt the SPI driver now? What's the bet that if accepted, this hack is still here in 5 years time? > + if (is_spi) > + pwr_off_mode = SYS_OFF_MODE_POWER_OFF_PREPARE; > + > if (device_property_read_bool(dev, "rockchip,system-power-controller") || > device_property_read_bool(dev, "system-power-controller")) { > ret = devm_register_sys_off_handler(dev, > - SYS_OFF_MODE_POWER_OFF_PREPARE, SYS_OFF_PRIO_HIGH, > + pwr_off_mode, SYS_OFF_PRIO_HIGH, > &rk808_power_off, rk808); > if (ret) > return dev_err_probe(dev, ret, > diff --git a/drivers/mfd/rk8xx-i2c.c b/drivers/mfd/rk8xx-i2c.c > index 69a6b297d723..a2029decd654 100644 > --- a/drivers/mfd/rk8xx-i2c.c > +++ b/drivers/mfd/rk8xx-i2c.c > @@ -189,7 +189,7 @@ static int rk8xx_i2c_probe(struct i2c_client *client) > return dev_err_probe(&client->dev, PTR_ERR(regmap), > "regmap initialization failed\n"); > > - return rk8xx_probe(&client->dev, data->variant, client->irq, regmap); > + return rk8xx_probe(&client->dev, data->variant, client->irq, regmap, false); > } > > static void rk8xx_i2c_shutdown(struct i2c_client *client) > diff --git a/drivers/mfd/rk8xx-spi.c b/drivers/mfd/rk8xx-spi.c > index 3405fb82ff9f..20f9428f94bb 100644 > --- a/drivers/mfd/rk8xx-spi.c > +++ b/drivers/mfd/rk8xx-spi.c > @@ -94,7 +94,7 @@ static int rk8xx_spi_probe(struct spi_device *spi) > return dev_err_probe(&spi->dev, PTR_ERR(regmap), > "Failed to init regmap\n"); > > - return rk8xx_probe(&spi->dev, RK806_ID, spi->irq, regmap); > + return rk8xx_probe(&spi->dev, RK806_ID, spi->irq, regmap, true); > } > > static const struct of_device_id rk8xx_spi_of_match[] = { > diff --git a/include/linux/mfd/rk808.h b/include/linux/mfd/rk808.h > index 69cbea78b430..be15b84cff9e 100644 > --- a/include/linux/mfd/rk808.h > +++ b/include/linux/mfd/rk808.h > @@ -1349,7 +1349,7 @@ struct rk808 { > }; > > void rk8xx_shutdown(struct device *dev); > -int rk8xx_probe(struct device *dev, int variant, unsigned int irq, struct regmap *regmap); > +int rk8xx_probe(struct device *dev, int variant, unsigned int irq, struct regmap *regmap, bool is_spi); > int rk8xx_suspend(struct device *dev); > int rk8xx_resume(struct device *dev); > > -- > 2.43.0 > -- Lee Jones [李琼斯]