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 98A42C44515 for ; Sat, 18 Jul 2026 02:51:14 +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=1X9mcdpXrzilA5fvOM7rosf2LghA4qbGbcodWgBZPas=; b=aw9ngIssCwkgpB eESSacsfw7fMJ1LJ67JHc/GSwBmejR+wPbOPCk+KRWdvzfI7vcyMVHQP8BuGiyxxFjvyzCPMtJSC4 m1Urr9Q+AXqHe23ehDGLWIhmvooAyVgMicQKBhmLo5k6/MQarbQSLM9+kEBl8uVY+iQQRkB9hZeb0 8V1ijC0phtq1CBZfXLvXwp0yVnvAyaUhjOE2pUEHE3z3oOHb6FbHCoVS9OS2uE9X4DchZpa54aUqB OE29VEgKFSAks7bZq+TLQ732x/tlFZa2xCpQFIiD63RGjID/rLpiQbxZDU1TIAAzf9ikMF9Zyew1z 6cv1FksNnspzAT1p2Tyw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wkv8z-00000003ZRY-1Q6k; Sat, 18 Jul 2026 02:51:13 +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 1wkv8x-00000003ZRO-1nhB for linux-phy@lists.infradead.org; Sat, 18 Jul 2026 02:51:11 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 9F5D540B51; Sat, 18 Jul 2026 02:51:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EED601F000E9; Sat, 18 Jul 2026 02:51:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784343070; bh=hfqshca3ABZCCxCo1Cns1ILbSPQRed2D2qDVbungei0=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=GpxTU5N2I7X/WdjZtmXmiFPAjVeS4rXjb0d8Ttn+J6btDrUGHqLakytg92zC+yfr5 HcnNZ1FwC8AvEd+sOJ1cju+AtOuTc+dcd6zBZ0/P+wxRDbwUUdwCLWAHqyU7P3nkuL jBNK7dCan5t2N9daptQDGXQUpZWd+Zgj+Dx+M+gnt43hyvRzkqUF65pTSCYeVSHC7G ITytLwFvr3VF2yVMtFXHvi0Uv3eSEpP+RCF/Y6b1WQOShHhixudts1UJonYk4ilKyq wQBX4Rxt61dB4gXRagKFSD+JRXkIe5FYAmh4hSyjn/NZAWYAWXEJWzokLu+Hn7gOYD BKqsF2hWCUecg== From: sashiko-bot@kernel.org Subject: Re: [PATCH v10 2/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver To: =?utf-8?b?QnJ5YW4gTydEb25vZ2h1ZQ==?= Cc: neil.armstrong@linaro.org, linux-phy@lists.infradead.org, olteanv@gmail.com, devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org, media-ci@linuxtv.org, vkoul@kernel.org In-Reply-To: <20260718-x1e-csi2-phy-v10-2-5720a7888953@linaro.org> References: <20260718-x1e-csi2-phy-v10-0-5720a7888953@linaro.org> <20260718-x1e-csi2-phy-v10-2-5720a7888953@linaro.org> Date: Sat, 18 Jul 2026 02:51:09 +0000 Message-Id: <20260718025109.EED601F000E9@smtp.kernel.org> X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list 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-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MyBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIEluY29ycmVjdCB0cmFu c2xhdGlvbiBvZiBsb2dpY2FsIHRvIHBoeXNpY2FsIGxhbmVzIGNhdXNlcyByZWdpc3RlciBvZmZz ZXQgZXJyb3JzIGFuZCBiaXR3aXNlIHRydW5jYXRpb24uCi0gW0hpZ2hdIEludGVnZXIgdHJ1bmNh dGlvbiBpbiBkaXZpc2lvbiBsZWFkcyB0byBwb3RlbnRpYWwgZGl2aXNpb24tYnktemVybyBwYW5p YyBpbiBzZXR0bGUgY291bnQgY2FsY3VsYXRpb24uCi0gW0xvd10gSGFyZHdhcmUgdmVyc2lvbiBy ZWdpc3RlciByZWFkIGRvZXMgbm90IG1hc2sgdXBwZXIgYml0cywgcG90ZW50aWFsbHkgY29ycnVw dGluZyB0aGUgdmVyc2lvbiBzdHJ1Y3QuCi0tCgotLS0gUGF0Y2ggWzJdOiBbUEFUQ0ggdjEwIDIv Ml0gcGh5OiBxY29tLW1pcGktY3NpMjogQWRkIGEgQ1NJMiBNSVBJIERQSFkgZHJpdmVyIC0tLQpj b21taXQgM2E0ZWY1MTNiYmVlZmU1MTg1YjBmMDhkMzQzZjk4ODgzY2JlNjZjYQpBdXRob3I6IEJy eWFuIE8nRG9ub2dodWUgPGJyeWFuLm9kb25vZ2h1ZUBsaW5hcm8ub3JnPgoKcGh5OiBxY29tLW1p cGktY3NpMjogQWRkIGEgQ1NJMiBNSVBJIERQSFkgZHJpdmVyCgpUaGlzIGNvbW1pdCBhZGRzIGEg bmV3IE1JUEkgQ1NJMiBkcml2ZXIgaW4gRFBIWSBtb2RlIGluaXRpYWxseS4gSXQgc3VwcG9ydHMK ZGV2aWNlcyBsaWtlICJxY29tLHgxZTgwMTAwLWNzaTItcGh5IiBhbmQgaW1wb3J0cyBDQU1TUyBD U0kgUEhZIGluaXQgc2VxdWVuY2VzLgoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvcXVhbGNv bW0vcGh5LXFjb20tbWlwaS1jc2kyLTNwaC1kcGh5LmMgYi9kcml2ZXJzL3BoeS9xdWFsY29tbS9w aHktcWNvbS1taXBpLWNzaTItM3BoLWRwaHkuYwo+IGluZGV4IDAwMDAwMDAwMDAwMDAuLjVhYzBk MDQxYjM2YjcKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9waHkvcXVhbGNvbW0vcGh5 LXFjb20tbWlwaS1jc2kyLTNwaC1kcGh5LmMKClsgLi4uIF0KCj4gK3N0YXRpYyB2b2lkIHBoeV9x Y29tX21pcGlfY3NpMl9od192ZXJzaW9uX3JlYWQoc3RydWN0IG1pcGlfY3NpMnBoeV9kZXZpY2Ug KmNzaTJwaHkpCj4gK3sKPiArCWNvbnN0IHN0cnVjdCBtaXBpX2NzaTJwaHlfZGV2aWNlX3JlZ3Mg KnJlZ3MgPSBjc2kycGh5X2Rldl90b19yZWdzKGNzaTJwaHkpOwo+ICsJdTMyIHRtcDsKPiArCj4g Kwl3cml0ZWwoQ1NJUEhZXzNQSF9DTU5fQ1NJX0NPTU1PTl9DVFJMNl9TSE9XX1JFVl9JRCwgY3Np MnBoeS0+YmFzZSArCj4gKwkgICAgICAgQ1NJUEhZXzNQSF9DTU5fQ1NJX0NPTU1PTl9DVFJMbihy ZWdzLT5jb21tb25fcmVnc19vZmZzZXQsIDYpKTsKPiArCj4gKwl0bXAgPSByZWFkbF9yZWxheGVk KGNzaTJwaHktPmJhc2UgKwo+ICsJCQkgICAgQ1NJUEhZXzNQSF9DTU5fQ1NJX0NPTU1PTl9TVEFU VVNuKHJlZ3MtPmNvbW1vbl9yZWdzX29mZnNldCwgMTIpKTsKPiArCWNzaTJwaHktPmh3X3ZlcnNp b24gPSB0bXA7CgpbU2V2ZXJpdHk6IExvd10KSXMgaXQgcG9zc2libGUgZm9yIHRoZSBoYXJkd2Fy ZSByZWdpc3RlciB0byByZXR1cm4gZ2FyYmFnZSBvciByZXNlcnZlZCBiaXRzIGluCnRoZSB1cHBl ciBieXRlcyBoZXJlPyBTaW5jZSB0aGlzIGZpcnN0IHJlYWQgaXMgYXNzaWduZWQgZGlyZWN0bHkg d2l0aG91dAptYXNraW5nIChlLmcuLCB0bXAgJiAweEZGKSwgYW55IHVwcGVyIGdhcmJhZ2UgYml0 cyB3b3VsZCByZW1haW4gaW4gaHdfdmVyc2lvbgphbmQgd291bGRuJ3QgYmUgY2xlYXJlZCBieSB0 aGUgc3Vic2VxdWVudCBiaXR3aXNlIE9SIG9wZXJhdGlvbnMuCgo+ICsKPiArCXRtcCA9IHJlYWRs X3JlbGF4ZWQoY3NpMnBoeS0+YmFzZSArCj4gKwkJCSAgICBDU0lQSFlfM1BIX0NNTl9DU0lfQ09N TU9OX1NUQVRVU24ocmVncy0+Y29tbW9uX3JlZ3Nfb2Zmc2V0LCAxMykpOwo+ICsJY3NpMnBoeS0+ aHdfdmVyc2lvbiB8PSAodG1wIDw8IDgpICYgMHhGRjAwOwoKWyAuLi4gXQoKPiArc3RhdGljIHU4 IHBoeV9xY29tX21pcGlfY3NpMl9zZXR0bGVfY250X2NhbGMoczY0IGxpbmtfZnJlcSwgdTMyIHRp bWVyX2Nsa19yYXRlKQo+ICt7Cj4gKwl1MzIgdF9oc19wcmVwYXJlX21heF9wczsKPiArCXUzMiB0 aW1lcl9wZXJpb2RfcHM7Cj4gKwl1MzIgdF9oc19zZXR0bGVfcHM7Cj4gKwl1OCBzZXR0bGVfY250 Owo+ICsJdTMyIHVpX3BzOwo+ICsKPiArCWlmIChsaW5rX2ZyZXEgPD0gMCkKPiArCQlyZXR1cm4g MDsKPiArCj4gKwl1aV9wcyA9IGRpdl91NjQoUFNFQ19QRVJfU0VDLCBsaW5rX2ZyZXEpOwoKW1Nl dmVyaXR5OiBIaWdoXQpEb2VzIHRoaXMgY29kZSBzaWxlbnRseSB0cnVuY2F0ZSBsaW5rX2ZyZXE/ CgpUaGUgZGl2X3U2NCgpIG1hY3JvIGV4cGVjdHMgYSB1MzIgZGl2aXNvciwgYnV0IGxpbmtfZnJl cSBpcyBhbiBzNjQuIFRoaXMgd2lsbAppbXBsaWNpdGx5IHRydW5jYXRlIHRoZSA2NC1iaXQgbGlu a19mcmVxIHZhbHVlIHRvIDMyIGJpdHMuCgpJZiBsaW5rX2ZyZXEgaGFwcGVucyB0byBiZSBhbiBl eGFjdCBtdWx0aXBsZSBvZiAyXjMyLCB0aGUgdHJ1bmNhdGVkIGRpdmlzb3IKYmVjb21lcyBleGFj dGx5IDAsIHdoaWNoIHdvdWxkIGNhdXNlIGEgZGl2aXNpb24tYnktemVybyBwYW5pYy4gRnJlcXVl bmNpZXMKZXhjZWVkaW5nIDQuMjkgR0h6IHdvdWxkIGFsc28gYmUgc2lsZW50bHkgY29ycnVwdGVk LgoKQ291bGQgdGhpcyBiZSB1cGRhdGVkIHRvIHVzZSBkaXY2NF91NjQoKSBvciBzaW1pbGFyIHRv IGF2b2lkIHRydW5jYXRpb24/Cgo+ICsJdWlfcHMgLz0gMjsKPiArCXRfaHNfcHJlcGFyZV9tYXhf cHMgPSA4NTAwMCArIDYgKiB1aV9wczsKClsgLi4uIF0KCj4gK3N0YXRpYyBpbnQgcGh5X3Fjb21f bWlwaV9jc2kyX2xhbmVzX2VuYWJsZShzdHJ1Y3QgbWlwaV9jc2kycGh5X2RldmljZSAqY3NpMnBo eSwKPiArCQkJCQkgICBzdHJ1Y3QgbWlwaV9jc2kycGh5X3N0cmVhbV9jZmcgKmNmZykKPiArewo+ ICsJY29uc3Qgc3RydWN0IG1pcGlfY3NpMnBoeV9kZXZpY2VfcmVncyAqcmVncyA9IGNzaTJwaHlf ZGV2X3RvX3JlZ3MoY3NpMnBoeSk7Cj4gKwlzdHJ1Y3QgbWlwaV9jc2kycGh5X2xhbmVzX2NmZyAq bGFuZV9jZmcgPSAmY2ZnLT5sYW5lX2NmZzsKPiArCXU4IHNldHRsZV9jbnQ7Cj4gKwl1OCB2YWw7 Cj4gKwlpbnQgaTsKPiArCj4gKwlzZXR0bGVfY250ID0gcGh5X3Fjb21fbWlwaV9jc2kyX3NldHRs ZV9jbnRfY2FsYyhjZmctPmxpbmtfZnJlcSwgY3NpMnBoeS0+dGltZXJfY2xrX3JhdGUpOwo+ICsJ aWYgKCFzZXR0bGVfY250KQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCS8qCj4gKwkgKiBD U0lfQ09NTU9OX0NUUkw1IGlzIGEgcGh5c2ljYWwgbGFuZSBwb3dlci11cCBiaXRtYXA6Cj4gKwkg KiAtIEJpdHMgWzAsMiw0LDZdIOKGkiBELVBIWSBkYXRhIGxhbmVzKExOMCwgTE4yLCBMTjQsIExO NikKPiArCSAqIC0gQml0cyBbMSwzLDVdIOKGkiBDLVBIWSB0cmlvIGxhbmVzKExOMSwgTE4zLCBM TjUpCj4gKwkgKiAtIEJpdCBbN10g4oaSIEQtUEhZIGNsb2NrIGxhbmUoTE5DSykgZGVkaWNhdGVk IGNsb2NrIGVuYWJsZQo+ICsJICovCj4gKwl2YWwgPSBCSVQobGFuZV9jZmctPmNsay5wb3MpOwo+ ICsJZm9yIChpID0gMDsgaSA8IGNmZy0+bnVtX2RhdGFfbGFuZXM7IGkrKykKPiArCQl2YWwgfD0g QklUKGxhbmVfY2ZnLT5kYXRhW2ldLnBvcyAqIDIpOwoKW1NldmVyaXR5OiBIaWdoXQpDYW4gdGhp cyBiaXRtYXNrIG92ZXJmbG93IHRoZSB1OCB2YWw/CgpJZiB0aGUgZGV2aWNlIHRyZWUgdXNlcyBw aHlzaWNhbCBpbmRpY2VzIChlLmcuLCA0IG9yIDYpIGZvciBwb3MsIHBvcyAqIDIKYmVjb21lcyA4 IG9yIDEyLiBTaW5jZSB2YWwgaXMgYSB1OCwgdXNpbmcgQklUKDgpIG9yIEJJVCgxMikgd2lsbCBv dmVyZmxvdwphbmQgc2lsZW50bHkgdHJ1bmNhdGUgdG8gMCwgZmFpbGluZyB0byBlbmFibGUgdGhl IGNvcnJlc3BvbmRpbmcgaGFyZHdhcmUgbGFuZS4KCj4gKwo+ICsJd3JpdGVsKHZhbCwgY3NpMnBo eS0+YmFzZSArCj4gKwkgICAgICAgQ1NJUEhZXzNQSF9DTU5fQ1NJX0NPTU1PTl9DVFJMbihyZWdz LT5jb21tb25fcmVnc19vZmZzZXQsIDUpKTsKPiArCj4gKwkvKiBMYW5lIGNvbmZpZ3VyYXRpb24g Zm9yIHBvbGFyaXR5IEAgQ1NJUEhZLWJhc2UgKyBDVFJMOSAqLwo+ICsJZm9yIChpID0gMDsgaSA8 IGNmZy0+bnVtX2RhdGFfbGFuZXM7IGkrKykgewo+ICsJCWlmIChsYW5lX2NmZy0+ZGF0YVtpXS5w b2wpIHsKPiArCQkJdTggcG9zID0gbGFuZV9jZmctPmRhdGFbaV0ucG9zOwo+ICsKPiArCQkJd3Jp dGVsKEJJVCgyKSwgY3NpMnBoeS0+YmFzZSArIENTSVBIWV8yUEhfTE5fQ1NJXzJQSEFTRV9DVFJM OW4ocG9zKSk7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyBjb3JyZWN0bHkgbWFwIGxvZ2lj YWwgdG8gcGh5c2ljYWwgbGFuZXM/CgpUaGUgQ1NJUEhZXzJQSF9MTl9DU0lfMlBIQVNFX0NUUkw5 bihwb3MpIG1hY3JvIGNvbXB1dGVzIDB4MjAwICogcG9zICsgMHgyNC4KSG93ZXZlciwgRC1QSFkg ZGF0YSBsYW5lIGJsb2NrcyBhcmUgc3BhY2VkIGF0IG9mZnNldHMgMCwgMHg0MDAsIDB4ODAwLCBh bmQKMHhDMDAuCgpJZiBwb3MgaXMgYSBsb2dpY2FsIGluZGV4IGxpa2UgMSwgdGhpcyB3b3VsZCBh Y2Nlc3Mgb2Zmc2V0IDB4MjAwICh3aGljaCBpcyBhCkMtUEhZIGxhbmUpIGluc3RlYWQgb2YgdGhl IGludGVuZGVkIDB4NDAwLgoKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJaWYgKGxhbmVfY2ZnLT5jbGsu cG9sKQo+ICsJCXdyaXRlbChCSVQoMiksIGNzaTJwaHktPmJhc2UgKyBDU0lQSFlfMlBIX0xOX0NT SV8yUEhBU0VfQ1RSTDluKGxhbmVfY2ZnLT5jbGsucG9zKSk7CgotLSAKU2FzaGlrbyBBSSByZXZp ZXcgwrcgaHR0cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYwNzE4LXgxZS1jc2kyLXBo eS12MTAtMC01NzIwYTc4ODg5NTNAbGluYXJvLm9yZz9wYXJ0PTIKCi0tIApsaW51eC1waHkgbWFp bGluZyBsaXN0CmxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHBzOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXBoeQo= 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 F379063CB for ; Sat, 18 Jul 2026 02:51:10 +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=1784343072; cv=none; b=FURdJ/ixrOoPn7la6IPqERApGw+qhRpm22XpIuS1hS3tJqQiZtlkUoc6/tl59ebHev94bd22q+Ub3Gnpk0AqM8TCTiVsaYV985WVJ7gKEju/Ks3PL+RFScNagNbnoEJvRWvl7GNxEYMA6UxUzRXvSe9KTVOr0kltY1Q+RPPLj/g= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784343072; c=relaxed/simple; bh=lYTvReqpKFzpk2B4UvM0Re5djCOnXkTvBFVEow6VZLE=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=M+0aHnPawKiSVA2YpOwTkcjGXTisDzScQblcCvCT0DFhifG1DPaJGxvjL3zGX6raBo8ydsoOq8L7fwLAHOI3jJaaf1ep9SFyAWvpMGkG302+AMGx0lAYmhpFOvcYNVkdL1k6+aM2IqWTq7YGT1906cG+HGA86YEVzBbieGEIAYc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GpxTU5N2; 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="GpxTU5N2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EED601F000E9; Sat, 18 Jul 2026 02:51:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784343070; bh=hfqshca3ABZCCxCo1Cns1ILbSPQRed2D2qDVbungei0=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=GpxTU5N2I7X/WdjZtmXmiFPAjVeS4rXjb0d8Ttn+J6btDrUGHqLakytg92zC+yfr5 HcnNZ1FwC8AvEd+sOJ1cju+AtOuTc+dcd6zBZ0/P+wxRDbwUUdwCLWAHqyU7P3nkuL jBNK7dCan5t2N9daptQDGXQUpZWd+Zgj+Dx+M+gnt43hyvRzkqUF65pTSCYeVSHC7G ITytLwFvr3VF2yVMtFXHvi0Uv3eSEpP+RCF/Y6b1WQOShHhixudts1UJonYk4ilKyq wQBX4Rxt61dB4gXRagKFSD+JRXkIe5FYAmh4hSyjn/NZAWYAWXEJWzokLu+Hn7gOYD BKqsF2hWCUecg== From: sashiko-bot@kernel.org Subject: Re: [PATCH v10 2/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver Reply-To: sashiko-reviews@lists.linux.dev To: =?utf-8?b?QnJ5YW4gTydEb25vZ2h1ZQ==?= Cc: neil.armstrong@linaro.org, linux-phy@lists.infradead.org, olteanv@gmail.com, devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org, media-ci@linuxtv.org, vkoul@kernel.org In-Reply-To: <20260718-x1e-csi2-phy-v10-2-5720a7888953@linaro.org> References: <20260718-x1e-csi2-phy-v10-0-5720a7888953@linaro.org> <20260718-x1e-csi2-phy-v10-2-5720a7888953@linaro.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Sat, 18 Jul 2026 02:51:09 +0000 Message-Id: <20260718025109.EED601F000E9@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] Incorrect translation of logical to physical lanes causes register= offset errors and bitwise truncation. - [High] Integer truncation in division leads to potential division-by-zero= panic in settle count calculation. - [Low] Hardware version register read does not mask upper bits, potentiall= y corrupting the version struct. -- --- Patch [2]: [PATCH v10 2/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY dr= iver --- commit 3a4ef513bbeefe5185b0f08d343f98883cbe66ca Author: Bryan O'Donoghue phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver This commit adds a new MIPI CSI2 driver in DPHY mode initially. It supports devices like "qcom,x1e80100-csi2-phy" and imports CAMSS CSI PHY init sequen= ces. > diff --git a/drivers/phy/qualcomm/phy-qcom-mipi-csi2-3ph-dphy.c b/drivers= /phy/qualcomm/phy-qcom-mipi-csi2-3ph-dphy.c > index 0000000000000..5ac0d041b36b7 > --- /dev/null > +++ b/drivers/phy/qualcomm/phy-qcom-mipi-csi2-3ph-dphy.c [ ... ] > +static void phy_qcom_mipi_csi2_hw_version_read(struct mipi_csi2phy_devic= e *csi2phy) > +{ > + const struct mipi_csi2phy_device_regs *regs =3D csi2phy_dev_to_regs(csi= 2phy); > + u32 tmp; > + > + writel(CSIPHY_3PH_CMN_CSI_COMMON_CTRL6_SHOW_REV_ID, csi2phy->base + > + CSIPHY_3PH_CMN_CSI_COMMON_CTRLn(regs->common_regs_offset, 6)); > + > + tmp =3D readl_relaxed(csi2phy->base + > + CSIPHY_3PH_CMN_CSI_COMMON_STATUSn(regs->common_regs_offset, 12)); > + csi2phy->hw_version =3D tmp; [Severity: Low] Is it possible for the hardware register to return garbage or reserved bits= in the upper bytes here? Since this first read is assigned directly without masking (e.g., tmp & 0xFF), any upper garbage bits would remain in hw_versi= on and wouldn't be cleared by the subsequent bitwise OR operations. > + > + tmp =3D readl_relaxed(csi2phy->base + > + CSIPHY_3PH_CMN_CSI_COMMON_STATUSn(regs->common_regs_offset, 13)); > + csi2phy->hw_version |=3D (tmp << 8) & 0xFF00; [ ... ] > +static u8 phy_qcom_mipi_csi2_settle_cnt_calc(s64 link_freq, u32 timer_cl= k_rate) > +{ > + u32 t_hs_prepare_max_ps; > + u32 timer_period_ps; > + u32 t_hs_settle_ps; > + u8 settle_cnt; > + u32 ui_ps; > + > + if (link_freq <=3D 0) > + return 0; > + > + ui_ps =3D div_u64(PSEC_PER_SEC, link_freq); [Severity: High] Does this code silently truncate link_freq? The div_u64() macro expects a u32 divisor, but link_freq is an s64. This wi= ll implicitly truncate the 64-bit link_freq value to 32 bits. If link_freq happens to be an exact multiple of 2^32, the truncated divisor becomes exactly 0, which would cause a division-by-zero panic. Frequencies exceeding 4.29 GHz would also be silently corrupted. Could this be updated to use div64_u64() or similar to avoid truncation? > + ui_ps /=3D 2; > + t_hs_prepare_max_ps =3D 85000 + 6 * ui_ps; [ ... ] > +static int phy_qcom_mipi_csi2_lanes_enable(struct mipi_csi2phy_device *c= si2phy, > + struct mipi_csi2phy_stream_cfg *cfg) > +{ > + const struct mipi_csi2phy_device_regs *regs =3D csi2phy_dev_to_regs(csi= 2phy); > + struct mipi_csi2phy_lanes_cfg *lane_cfg =3D &cfg->lane_cfg; > + u8 settle_cnt; > + u8 val; > + int i; > + > + settle_cnt =3D phy_qcom_mipi_csi2_settle_cnt_calc(cfg->link_freq, csi2p= hy->timer_clk_rate); > + if (!settle_cnt) > + return -EINVAL; > + > + /* > + * CSI_COMMON_CTRL5 is a physical lane power-up bitmap: > + * - Bits [0,2,4,6] =E2=86=92 D-PHY data lanes(LN0, LN2, LN4, LN6) > + * - Bits [1,3,5] =E2=86=92 C-PHY trio lanes(LN1, LN3, LN5) > + * - Bit [7] =E2=86=92 D-PHY clock lane(LNCK) dedicated clock enable > + */ > + val =3D BIT(lane_cfg->clk.pos); > + for (i =3D 0; i < cfg->num_data_lanes; i++) > + val |=3D BIT(lane_cfg->data[i].pos * 2); [Severity: High] Can this bitmask overflow the u8 val? If the device tree uses physical indices (e.g., 4 or 6) for pos, pos * 2 becomes 8 or 12. Since val is a u8, using BIT(8) or BIT(12) will overflow and silently truncate to 0, failing to enable the corresponding hardware la= ne. > + > + writel(val, csi2phy->base + > + CSIPHY_3PH_CMN_CSI_COMMON_CTRLn(regs->common_regs_offset, 5)); > + > + /* Lane configuration for polarity @ CSIPHY-base + CTRL9 */ > + for (i =3D 0; i < cfg->num_data_lanes; i++) { > + if (lane_cfg->data[i].pol) { > + u8 pos =3D lane_cfg->data[i].pos; > + > + writel(BIT(2), csi2phy->base + CSIPHY_2PH_LN_CSI_2PHASE_CTRL9n(pos)); [Severity: High] Does this correctly map logical to physical lanes? The CSIPHY_2PH_LN_CSI_2PHASE_CTRL9n(pos) macro computes 0x200 * pos + 0x24. However, D-PHY data lane blocks are spaced at offsets 0, 0x400, 0x800, and 0xC00. If pos is a logical index like 1, this would access offset 0x200 (which is a C-PHY lane) instead of the intended 0x400. > + } > + } > + > + if (lane_cfg->clk.pol) > + writel(BIT(2), csi2phy->base + CSIPHY_2PH_LN_CSI_2PHASE_CTRL9n(lane_cf= g->clk.pos)); --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260718-x1e-csi2-p= hy-v10-0-5720a7888953@linaro.org?part=3D2