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 01586CA5FD6 for ; Thu, 1 Oct 2026 16:23: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:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QMpCJL1ZhvNyxze8S8nUJpj278hWhKPeGuC7/kZ98Ps=; b=et52aDiN6IC9PI xbyNjkKUSQhyrG0C7B2epWtEc8ZDn7+poW/KYxOUTz8kq2bNHJszjzKjw0e54BLEAIYb9Yn6unc/1 ZbylCOwXTKPXvVgy6ncl3IAWl27FoZmk8924sNZTQToQ9udrysDntN4klR4THlWJggRO/8cyctxGy Oeyr/0w5oju+uQxUURb7T/SJUw+RFoFPGA3SpdHLBGenjXQxW1OOXHrwqyzgpQmcZrt/D75lXhCWH jAxlrjotf8yRULU+voVb0gfHH1R/lPkU7vHYmzoHh3YWFe1P0VTYLfQ0DK10l6ht1wOhbnwQPs9hD rgIA0ETorBTOsjEsuSLQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xCJYx-00000009gsc-1FEw; Thu, 01 Oct 2026 16:23:15 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xCJYw-00000009gsI-1O51 for linux-amlogic@lists.infradead.org; Thu, 01 Oct 2026 16:23:14 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id B0B38400EA; Thu, 1 Oct 2026 16:23:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4333D1F000FF; Thu, 1 Oct 2026 16:23:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1790871793; bh=xjLL8eIMBdqQBls2GcjRMykfQnKUzce9QHNWWrZ5vxs=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=FSNq7/333rSM8BPAXFGbT7FTQ/sd16UxmAXiIcbM1UsMzKl9kCwaFlIq4SEHSlwCa 4RPcUfpUjZU88Ku5fK1yttzVuEZX3AzuOfmn6pHozImdoYnKjKPixpUtmyFHRybyPV l+1YAqzztk050t8Ytnl9A5r2n1037jHZFgv1VB8DdV/jMp8uwJ1FPfUDxj/GTJc2FH MkZKZW8qKyHB/Pa9IQtlTFcX9hAMBYOm+bKrd134MPR+tEcIcML9ShDJAPtDJqxIWO Ov2d0Mupx6MEKlYhwmj0WsGI7b2DPshUuo6JSCuKiZ5WWvS4cyO1RWWMtjEi7tFoq6 aJ3D2yC0Ym5CA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v4 4/7] ASoC: meson: add AUDIN driver To: "Valerio Setti" Cc: robh@kernel.org, neil.armstrong@linaro.org, linux-amlogic@lists.infradead.org, conor+dt@kernel.org, devicetree@vger.kernel.org In-Reply-To: <20261001-audin-v4-4-2476646118b5@baylibre.com> References: <20261001-audin-v4-0-2476646118b5@baylibre.com> <20261001-audin-v4-4-2476646118b5@baylibre.com> Date: Thu, 01 Oct 2026 16:23:12 +0000 Message-Id: <20261001162313.4333D1F000FF@smtp.kernel.org> X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MyBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIFJhY2UgY29uZGl0aW9u IGluIFBBVVNFX1JFTEVBU0UgY29ycnVwdHMgaHJ0aW1lciBzdGF0ZQotIFtIaWdoXSBVc2UtYWZ0 ZXItZnJlZSBvZiBocnRpbWVyIGRhdGEgZHVyaW5nIGRldmljZSB1bmJpbmQKLSBbTWVkaXVtXSBI YXJkd2FyZSBzdGF0ZSBsb3NzIGluIEFVRElOIEZJRk8gZHVyaW5nIHN5c3RlbSBzdXNwZW5kCi0t Cgpjb21taXQgMzUyNjA4N2FjMzc5YWE4NWRlOGFjYTNiNjk4YjgxMmExMGI1ZGE0ZQpBdXRob3I6 IFZhbGVyaW8gU2V0dGkgPHZzZXR0aUBiYXlsaWJyZS5jb20+CgpBU29DOiBtZXNvbjogYWRkIEFV RElOIGRyaXZlcgoKQVVESU4gcHJvdmlkZXMgYXVkaW8gaW5wdXQgc3VwcG9ydCB0byB0aGUgQW1s b2dpYyBHWCBiYXNlZCBwbGF0Zm9ybXMKKEdYQkIvR1hMKS4gSXQgaXMgdGhlIGNvdW50ZXJwYXJ0 IG9mIEFJVSBmb3IgY2FwdHVyZSBhbmQgaW5zdGFudGlhdGVzIGVhY2ggb2YKdGhlIEZJRk9zIGFz IGEgY29tcG9uZW50IERBSS4KCj4gZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9tZXNvbi9hdWRpbi1m aWZvLmMgYi9zb3VuZC9zb2MvbWVzb24vYXVkaW4tZmlmby5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAwLi5jYjU5YmIyNjdlODQ1Cj4gLS0tIC9kZXYvbnVsbAo+ ICsrKyBiL3NvdW5kL3NvYy9tZXNvbi9hdWRpbi1maWZvLmMKWyAuLi4gXQo+ICtzdGF0aWMgaW50 IGF1ZGluX2ZpZm9fZGFpX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJl YW0sIGludCBjbWQsCj4gKwkJCQkgIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQo+ICt7Cj4gKwlz dHJ1Y3QgYXVkaW5fZmlmb19kYWlfZGF0YSAqZGF0YSA9IHNuZF9zb2NfZGFpX2RtYV9kYXRhX2dl dF9jYXB0dXJlKGRhaSk7Cj4gKwlzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCA9 IGRhaS0+Y29tcG9uZW50Owo+ICsKPiArCXN3aXRjaCAoY21kKSB7Cj4gKwljYXNlIFNORFJWX1BD TV9UUklHR0VSX1NUQVJUOgo+ICsJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9SRVNVTUU6Cj4gKwlj YXNlIFNORFJWX1BDTV9UUklHR0VSX1BBVVNFX1JFTEVBU0U6Cj4gKwkJc25kX3NvY19jb21wb25l bnRfdXBkYXRlX2JpdHMoY29tcG9uZW50LCBkYWktPmRyaXZlci0+YmFzZSArIEFVRElOX0ZJRk9f Q1RSTCwKPiArCQkJCQkgICAgICBBVURJTl9GSUZPX0NUUkxfRU4sCj4gKwkJCQkJICAgICAgQVVE SU5fRklGT19DVFJMX0VOKTsKPiArCQlXUklURV9PTkNFKGRhdGEtPnJ1bm5pbmcsIHRydWUpOwo+ ICsJCWhydGltZXJfc3RhcnQoJmRhdGEtPnBvbGxpbmdfdGltZXIsCj4gKwkJCSAgICAgIGF1ZGlu X2ZpZm9fYnl0ZXNfdG9fbnMoZGF0YSwgZGF0YS0+cGVyaW9kX2J5dGVzKSwKPiArCQkJICAgICAg SFJUSU1FUl9NT0RFX1JFTF9TT0ZUKTsKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIGJsaW5k bHkgcmUtZW5xdWV1ZSB0aGUgdGltZXIgd2l0aG91dCBzeW5jaHJvbml6aW5nIHdpdGggYSBwb3Rl bnRpYWxseQpydW5uaW5nIGNhbGxiYWNrPwoKSWYgYSB1c2VyIHJhcGlkbHkgdG9nZ2xlcyBTTkRS Vl9QQ01fSU9DVExfUEFVU0UsIFBBVVNFX1BVU0ggdXNlcyBhCm5vbi1ibG9ja2luZyBocnRpbWVy X3RyeV90b19jYW5jZWwoKS4gSWYgdGhlIHRpbWVyIGlzIHJ1bm5pbmcgYW5kIHNraXBzCnNuZF9w Y21fcGVyaW9kX2VsYXBzZWQoKSAoZS5nLiBiZWNhdXNlIGRlbHRhIDwgcGVyaW9kX2J5dGVzKSwg aXQgd29uJ3QgdGFrZQp0aGUgUENNIHN0cmVhbSBsb2NrIGFuZCB3aWxsIGV4ZWN1dGUgaHJ0aW1l cl9mb3J3YXJkX25vdygpIGNvbmN1cnJlbnRseSB3aXRoClBBVVNFX1JFTEVBU0UuCgpQQVVTRV9S RUxFQVNFIHRoZW4gYmxpbmRseSBjYWxscyBocnRpbWVyX3N0YXJ0KCksIHdoaWNoIGVucXVldWVz IHRoZSB0aW1lci4KV2hlbiB0aGUgcnVubmluZyBjYWxsYmFjayBpbiBhdWRpbl9maWZvX3RpbWVy X2NiKCkgcmVhZHMgcnVubmluZz10cnVlLCBpdApyZXR1cm5zIEhSVElNRVJfUkVTVEFSVCwgcmVz dWx0aW5nIGluIGEgZG91YmxlIGVucXVldWUgb2YgdGhlIHNhbWUgdGltZXIKd2hpY2ggY2FuIGNv cnJ1cHQgdGhlIGhydGltZXIgcmJ0cmVlLgoKPiArCQlicmVhazsKPiArCWNhc2UgU05EUlZfUENN X1RSSUdHRVJfU1VTUEVORDoKPiArCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfUEFVU0VfUFVTSDoK PiArCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RPUDoKPiArCQlXUklURV9PTkNFKGRhdGEtPnJ1 bm5pbmcsIGZhbHNlKTsKPiArCQkvKgo+ICsJCSAqIFBDTSBzdHJlYW0gbG9jayBpcyBoZWxkIGhl cmUuIElmIHRoZSB0aW1lciBjYWxsYmFjayBpcyBydW5uaW5nCj4gKwkJICogKGkuZS4gaXQgY2Fu bm90IGJlIHN0b3BwZWQpIHRoZXJlIGlzIGFsc28gaHJ0aW1lcl9jYW5jZWwoKQo+ICsJCSAqIGlu IGh3X2ZyZWUoKS4KPiArCQkgKi8KPiArCQlocnRpbWVyX3RyeV90b19jYW5jZWwoJmRhdGEtPnBv bGxpbmdfdGltZXIpOwo+ICsJCXNuZF9zb2NfY29tcG9uZW50X3VwZGF0ZV9iaXRzKGNvbXBvbmVu dCwgZGFpLT5kcml2ZXItPmJhc2UgKyBBVURJTl9GSUZPX0NUUkwsCj4gKwkJCQkJICAgICAgQVVE SU5fRklGT19DVFJMX0VOLCAwKTsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJcmV0dXJu IC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KWyAuLi4gXQo+ICtzdGF0aWMg aW50IGF1ZGluX2ZpZm9fZGFpX3JlbW92ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKPiArewo+ ICsJa2ZyZWUoc25kX3NvY19kYWlfZG1hX2RhdGFfZ2V0X2NhcHR1cmUoZGFpKSk7Cj4gKwo+ICsJ cmV0dXJuIDA7Cj4gK30KCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIGZyZWUgdGhlIERBSSBk YXRhIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIHBvbGxpbmcgdGltZXIgdG8gZmluaXNoPwoKSWYg dGhlIGRyaXZlciBpcyB1bmJvdW5kIHdoaWxlIGFuIGF1ZGlvIHN0cmVhbSBpcyBvcGVuLCB0aGUg QUxTQSBjb3JlIHRyaWdnZXJzCmEgc3RyZWFtIHN0b3Agd2hpY2ggdXNlcyBhIG5vbi1ibG9ja2lu ZyBocnRpbWVyX3RyeV90b19jYW5jZWwoKS4gSWYgdGhlIHRpbWVyCmNhbGxiYWNrIGlzIHJ1bm5p bmcgY29uY3VycmVudGx5LCBpdCB3aWxsIHdyaXRlIHRvIHRoaXMgZnJlZWQgbWVtb3J5LgoKWyAu Li4gXQo+ICtpbnQgYXVkaW5fZmlmb19zeW5jX3N0b3Aoc3RydWN0IHNuZF9zb2NfY29tcG9uZW50 ICpjb21wb25lbnQsIHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQo+ICt7Cj4g KwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc25kX3NvY19zdWJzdHJlYW1fdG9f cnRkKHN1YnN0cmVhbSk7Cj4gKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSA9IHNuZF9zb2NfcnRk X3RvX2NwdShydGQsIDApOwo+ICsJc3RydWN0IGF1ZGluX2ZpZm9fZGFpX2RhdGEgKmRhdGEgPSBz bmRfc29jX2RhaV9kbWFfZGF0YV9nZXRfY2FwdHVyZShkYWkpOwo+ICsKPiArCWhydGltZXJfY2Fu Y2VsKCZkYXRhLT5wb2xsaW5nX3RpbWVyKTsKCltTZXZlcml0eTogSGlnaF0KQ291bGQgdGhpcyBk ZWZlcnJlZCBjYWxsYmFjayBhY2Nlc3MgdGhlIGZyZWVkIGRhdGEgcG9pbnRlcj8KCklmIHRoZSBk cml2ZXIgd2FzIHVuYm91bmQgYW5kIGF1ZGluX2ZpZm9fZGFpX3JlbW92ZSgpIGZyZWVkIHRoZSBE QUkgZGF0YSwKd2hlbiB0aGUgZmlsZSBkZXNjcmlwdG9yIGlzIGV2ZW50dWFsbHkgY2xvc2VkIHRo aXMgZGVmZXJyZWQgc3luY19zdG9wIGNhbGxiYWNrCndpbGwgYWNjZXNzIHRoZSBmcmVlZCBkYXRh IHBvaW50ZXIgdG8gY2FuY2VsIHRoZSB0aW1lci4KCj4gKwlXUklURV9PTkNFKGRhdGEtPnJ1bm5p bmcsIGZhbHNlKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+IGRpZmYgLS1naXQgYS9zb3VuZC9z b2MvbWVzb24vYXVkaW4uYyBiL3NvdW5kL3NvYy9tZXNvbi9hdWRpbi5jCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAwLi44MDhlN2Q0ZmQzMWEyCj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL3NvdW5kL3NvYy9tZXNvbi9hdWRpbi5jClsgLi4uIF0KPiArc3RhdGljIGNv bnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIGF1ZGluX3JlZ21hcF9jZmcgPSB7Cj4gKwkucmVnX2Jp dHMJPSAzMiwKPiArCS52YWxfYml0cwk9IDMyLAo+ICsJLnJlZ19zdHJpZGUJPSA0LAo+ICsJLm1h eF9yZWdpc3Rlcgk9IDB4MTQ4LAo+ICt9OwoKW1NldmVyaXR5OiBNZWRpdW1dCldpbGwgaGFyZHdh cmUgc3RhdGUgbGlrZSB0aGUgY2hhbm5lbCBtYXNrIGFuZCBlbmRpYW5uZXNzIGJlIGxvc3QgYWNy b3NzCnN5c3RlbSBzdXNwZW5kIGFuZCByZXN1bWUgY3ljbGVzPwoKQUxTQSBjYWxscyB0aGUgZHJp dmVyJ3MgcHJlcGFyZSgpIGNhbGxiYWNrIHRvIHJlY292ZXIgYSBzdXNwZW5kZWQgc3RyZWFtLApi dXQgbm90IGh3X3BhcmFtcygpLiBCZWNhdXNlIHRoaXMgcmVnbWFwIGxhY2tzIGEgY2FjaGUgY29u ZmlndXJhdGlvbiwgaXQKY2Fubm90IGF1dG9tYXRpY2FsbHkgcmVzdG9yZSB0aGUgcmVnaXN0ZXIg c3RhdGUgY29uZmlndXJlZCBkdXJpbmcgaHdfcGFyYW1zKCkKd2hlbiB0aGUgc3lzdGVtIHJlc3Vt ZXMuCgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNo c2V0LzIwMjYxMDAxLWF1ZGluLXY0LTAtMjQ3NjY0NjExOGI1QGJheWxpYnJlLmNvbT9wYXJ0PTQK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFt bG9naWMgbWFpbGluZyBsaXN0CmxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFtbG9naWMK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 6FB213B1029 for ; Thu, 1 Oct 2026 16:23:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790871799; cv=none; b=eMlCWuPCqYOqKEjAbO1NdS6VX6NTfyGfCWY8ofQFP8CtoEmdpq7Ymj5ZPjtbkTKRNEEluRDWXKypWV13itJyd1eMjKaxh59At7wBQrkHRjuimjesNoOMQBSPUtOLqEuKs/oIGnfJnX+afUCOqu1QsVO5u5UyIumKYolAx8LlQLc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790871799; c=relaxed/simple; bh=OCFcslysMXQR6Ws5BeRBa3GmSH6TfKN3SAwMUTl6AVs=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=rXdAdO1kvw1f85ZsOO01cmzwW1d3TBsudOGlCFz0PFS9T58PFB0jBEEk9YAPHcyRwGR8bAW/gfSBRMjhWxJYI4m10HkJ89uz33BFGRqS6JxfC38Z2rgmiA/ducUYKvhjAuZFXjVa35uk8HC2vq/CHrbZAP4nDCpEmJc+JuEnYMI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FSNq7/33; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FSNq7/33" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4333D1F000FF; Thu, 1 Oct 2026 16:23:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1790871793; bh=xjLL8eIMBdqQBls2GcjRMykfQnKUzce9QHNWWrZ5vxs=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=FSNq7/333rSM8BPAXFGbT7FTQ/sd16UxmAXiIcbM1UsMzKl9kCwaFlIq4SEHSlwCa 4RPcUfpUjZU88Ku5fK1yttzVuEZX3AzuOfmn6pHozImdoYnKjKPixpUtmyFHRybyPV l+1YAqzztk050t8Ytnl9A5r2n1037jHZFgv1VB8DdV/jMp8uwJ1FPfUDxj/GTJc2FH MkZKZW8qKyHB/Pa9IQtlTFcX9hAMBYOm+bKrd134MPR+tEcIcML9ShDJAPtDJqxIWO Ov2d0Mupx6MEKlYhwmj0WsGI7b2DPshUuo6JSCuKiZ5WWvS4cyO1RWWMtjEi7tFoq6 aJ3D2yC0Ym5CA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v4 4/7] ASoC: meson: add AUDIN driver Reply-To: sashiko-reviews@lists.linux.dev To: "Valerio Setti" Cc: robh@kernel.org, neil.armstrong@linaro.org, linux-amlogic@lists.infradead.org, conor+dt@kernel.org, devicetree@vger.kernel.org In-Reply-To: <20261001-audin-v4-4-2476646118b5@baylibre.com> References: <20261001-audin-v4-0-2476646118b5@baylibre.com> <20261001-audin-v4-4-2476646118b5@baylibre.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Thu, 01 Oct 2026 16:23:12 +0000 Message-Id: <20261001162313.4333D1F000FF@smtp.kernel.org> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 3 potential issue(= s) to consider: - [High] Race condition in PAUSE_RELEASE corrupts hrtimer state - [High] Use-after-free of hrtimer data during device unbind - [Medium] Hardware state loss in AUDIN FIFO during system suspend -- commit 3526087ac379aa85de8aca3b698b812a10b5da4e Author: Valerio Setti ASoC: meson: add AUDIN driver AUDIN provides audio input support to the Amlogic GX based platforms (GXBB/GXL). It is the counterpart of AIU for capture and instantiates each = of the FIFOs as a component DAI. > diff --git a/sound/soc/meson/audin-fifo.c b/sound/soc/meson/audin-fifo.c > new file mode 100644 > index 0000000000000..cb59bb267e845 > --- /dev/null > +++ b/sound/soc/meson/audin-fifo.c [ ... ] > +static int audin_fifo_dai_trigger(struct snd_pcm_substream *substream, i= nt cmd, > + struct snd_soc_dai *dai) > +{ > + struct audin_fifo_dai_data *data =3D snd_soc_dai_dma_data_get_capture(d= ai); > + struct snd_soc_component *component =3D dai->component; > + > + switch (cmd) { > + case SNDRV_PCM_TRIGGER_START: > + case SNDRV_PCM_TRIGGER_RESUME: > + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: > + snd_soc_component_update_bits(component, dai->driver->base + AUDIN_FIF= O_CTRL, > + AUDIN_FIFO_CTRL_EN, > + AUDIN_FIFO_CTRL_EN); > + WRITE_ONCE(data->running, true); > + hrtimer_start(&data->polling_timer, > + audin_fifo_bytes_to_ns(data, data->period_bytes), > + HRTIMER_MODE_REL_SOFT); [Severity: High] Does this blindly re-enqueue the timer without synchronizing with a potenti= ally running callback? If a user rapidly toggles SNDRV_PCM_IOCTL_PAUSE, PAUSE_PUSH uses a non-blocking hrtimer_try_to_cancel(). If the timer is running and skips snd_pcm_period_elapsed() (e.g. because delta < period_bytes), it won't take the PCM stream lock and will execute hrtimer_forward_now() concurrently with PAUSE_RELEASE. PAUSE_RELEASE then blindly calls hrtimer_start(), which enqueues the timer. When the running callback in audin_fifo_timer_cb() reads running=3Dtrue, it returns HRTIMER_RESTART, resulting in a double enqueue of the same timer which can corrupt the hrtimer rbtree. > + break; > + case SNDRV_PCM_TRIGGER_SUSPEND: > + case SNDRV_PCM_TRIGGER_PAUSE_PUSH: > + case SNDRV_PCM_TRIGGER_STOP: > + WRITE_ONCE(data->running, false); > + /* > + * PCM stream lock is held here. If the timer callback is running > + * (i.e. it cannot be stopped) there is also hrtimer_cancel() > + * in hw_free(). > + */ > + hrtimer_try_to_cancel(&data->polling_timer); > + snd_soc_component_update_bits(component, dai->driver->base + AUDIN_FIF= O_CTRL, > + AUDIN_FIFO_CTRL_EN, 0); > + break; > + default: > + return -EINVAL; > + } > + > + return 0; > +} [ ... ] > +static int audin_fifo_dai_remove(struct snd_soc_dai *dai) > +{ > + kfree(snd_soc_dai_dma_data_get_capture(dai)); > + > + return 0; > +} [Severity: High] Does this free the DAI data without waiting for the polling timer to finish? If the driver is unbound while an audio stream is open, the ALSA core trigg= ers a stream stop which uses a non-blocking hrtimer_try_to_cancel(). If the tim= er callback is running concurrently, it will write to this freed memory. [ ... ] > +int audin_fifo_sync_stop(struct snd_soc_component *component, struct snd= _pcm_substream *substream) > +{ > + struct snd_soc_pcm_runtime *rtd =3D snd_soc_substream_to_rtd(substream); > + struct snd_soc_dai *dai =3D snd_soc_rtd_to_cpu(rtd, 0); > + struct audin_fifo_dai_data *data =3D snd_soc_dai_dma_data_get_capture(d= ai); > + > + hrtimer_cancel(&data->polling_timer); [Severity: High] Could this deferred callback access the freed data pointer? If the driver was unbound and audin_fifo_dai_remove() freed the DAI data, when the file descriptor is eventually closed this deferred sync_stop callb= ack will access the freed data pointer to cancel the timer. > + WRITE_ONCE(data->running, false); > + > + return 0; > +} > diff --git a/sound/soc/meson/audin.c b/sound/soc/meson/audin.c > new file mode 100644 > index 0000000000000..808e7d4fd31a2 > --- /dev/null > +++ b/sound/soc/meson/audin.c [ ... ] > +static const struct regmap_config audin_regmap_cfg =3D { > + .reg_bits =3D 32, > + .val_bits =3D 32, > + .reg_stride =3D 4, > + .max_register =3D 0x148, > +}; [Severity: Medium] Will hardware state like the channel mask and endianness be lost across system suspend and resume cycles? ALSA calls the driver's prepare() callback to recover a suspended stream, but not hw_params(). Because this regmap lacks a cache configuration, it cannot automatically restore the register state configured during hw_params= () when the system resumes. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261001-audin-v4-0= -2476646118b5@baylibre.com?part=3D4