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 A4B88C624D6 for ; Thu, 3 Sep 2026 23:14:58 +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=f//bsf230YHSeH7z1JvMq6zdZ5oIIHfXPbkbIMtORSI=; b=kskvPBSwXV2x+u DRhjpauqt8e4puqc2kUoP48/gK/s7zyKBsnkpg5LowvTU9oCgOXf0vot2bSCmjjQD/hDbO9csViwd Yttzc5/6B6/vUlFZdAkf8cMoO3R8vXv3i1lXnOO+qSuniQW/yF0X5yzNYL4LvHN/YWpVsH3PHvN8a rtwVlFpzptLFCDuhotlHEVLRxJQUk3I97cld2rHW3nIHh64YPnsZaYMl0KruAPSLBST8BpyKZ3UE5 cLxLpMddIm9Eh0hsS6aLDxve0atEMA9inXOfyszzR9VHpPrK6NVE35civCbdPKMnJQHR7NYbISgmz ntVpti1sQINUZC7zYnNw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x2Ge2-00000000l0s-0iRB; Thu, 03 Sep 2026 23:14:58 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x2Ge0-00000000l0m-1vMX for linux-phy@lists.infradead.org; Thu, 03 Sep 2026 23:14:56 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 7FC7460234; Thu, 3 Sep 2026 23:14:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA9321F000E9; Thu, 3 Sep 2026 23:14:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788477295; bh=TRghEdnx3gqfkVD9icW/T9NrPQTeDKGKNaNxbM3ms3Y=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Az3+5AU1F7XcCmlRMAHQb5Xovknp+pMIzADTGe++FapptFEWfUgw3EiqylM8qRRY8 q7AzR1n8UzagXe3c4ddk8otpCIgiAoNlXBmNCpYv6m75t70Zkmy2mD5r1berhaJyoK vSYl+Ll4IIPs4GUe+CwCXZyANoItH1akYQtFJs2kL6mgX4LcAgbgQbJA9iaUngzuCW rhJuSfEKRTGmnbFUH4hmSAo6G829Ng9lQyP4Ztsk1iGzQpPgzGdgox1b1SmKu3uSg5 erAqpoyylNeiNQUjpijTXL+oZRz8eVXkCUZyMgJv+H9KYjwk7T+uYALpe1LwDdQSaL 3PhOLVKzFqBug== From: sashiko-bot@kernel.org Subject: Re: [PATCH v14 4/4] media: qcom: camss: Add support for PHY API devices To: =?utf-8?b?QnJ5YW4gTydEb25vZ2h1ZQ==?= Cc: linux-phy@lists.infradead.org, conor+dt@kernel.org, olteanv@gmail.com, neil.armstrong@linaro.org, devicetree@vger.kernel.org, vkoul@kernel.org, robh@kernel.org, linux-clk@vger.kernel.org, media-ci@linuxtv.org In-Reply-To: <20260903-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v14-4-01ef1eced075@linaro.org> References: <20260903-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v14-0-01ef1eced075@linaro.org> <20260903-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v14-4-01ef1eced075@linaro.org> Date: Thu, 03 Sep 2026 23:14:54 +0000 Message-Id: <20260903231454.CA9321F000E9@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 MyBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIEtjb25maWcgc3ltYm9s IGBWSURFT19RQ09NX0NBTVNTYCBzZWxlY3RzIGEgbm9uLWV4aXN0ZW50IGNvbmZpZ3VyYXRpb24g YFBIWV9RQ09NX01JUElfQ1NJMmAuCi0gW01lZGl1bV0gTWlzc2luZyBgcGh5X2V4aXQoKWAgY2xl YW51cCBvbiBlcnJvciBwYXRocyBsZWFkaW5nIHRvIGxlYWtlZCBQSFkgaGFyZHdhcmUgc3RhdGUu Ci0gW01lZGl1bV0gVW5jaGVja2VkIHJldHVybiB2YWx1ZSBvZiBgcGh5X21pcGlfZHBoeV9nZXRf ZGVmYXVsdF9jb25maWdfZm9yX2hzY2xrKClgIGxlYWRzIHRvIHVuaW5pdGlhbGl6ZWQgUEhZIGNv bmZpZ3VyYXRpb24uCi0tCgpjb21taXQgMjM1MzY4MDFjZWFiODk5NTYzYzcyNzY4ZjIwZTRjNDA0 YzM3Mzk3OApBdXRob3I6IEJyeWFuIE8nRG9ub2dodWUgPGJyeWFuLm9kb25vZ2h1ZUBsaW5hcm8u b3JnPgoKbWVkaWE6IHFjb206IGNhbXNzOiBBZGQgc3VwcG9ydCBmb3IgUEhZIEFQSSBkZXZpY2Vz CgpUaGlzIGNvbW1pdCBhZGRzIHRoZSBhYmlsaXR5IHRvIHVzZSBhIFBIWSBwb2ludGVyIHdoaWNo IGludGVyYWN0cyB3aXRoIHRoZQpzdGFuZGFyZCBQSFkgQVBJLiBJbiB0aGUgZmlyc3QgaW5zdGFu Y2UgdGhlIGNvZGUgd2lsbCB0cnkgdG8gdXNlIHRoZSBuZXcKUEhZIGludGVyZmFjZSwgZmFsbGlu ZyBiYWNrIHRvIHRoZSBsZWdhY3kgbWV0aG9kIGlmIG5vIFBIWXMgYXJlIHByZXNlbnQgaW4KdGhl IERULgoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL0tj b25maWcgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vY2Ftc3MvS2NvbmZpZwo+IC0tLSBh L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcWNvbS9jYW1zcy9LY29uZmlnCj4gKysrIGIvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL0tjb25maWcKPiBAQCAtNywzICs3LDQgQEAgY29u ZmlnIFZJREVPX1FDT01fQ0FNU1MKPiAgCXNlbGVjdCBWSURFT19WNEwyX1NVQkRFVl9BUEkKPiAg CXNlbGVjdCBWSURFT0JVRjJfRE1BX1NHCj4gIAlzZWxlY3QgVjRMMl9GV05PREUKPiArCXNlbGVj dCBQSFlfUUNPTV9NSVBJX0NTSTIKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGUgY29uZmlnIFBI WV9RQ09NX01JUElfQ1NJMiBhY3R1YWxseSBleGlzdD8KClNlbGVjdGluZyBhIG5vbi1leGlzdGVu dCBzeW1ib2wgY2FuIGxlYXZlIHRoZSByZXF1aXJlZCBQSFkgZHJpdmVyIHVuYnVpbHQsCmxlYWRp bmcgdG8gc2lsZW50IGRlcGVuZGVuY3kgZmFpbHVyZXMgd2hlcmUgdGhlIGhhcmR3YXJlIGRyaXZl ciB3aWxsIGxhY2sgaXRzCnJlcXVpcmVkIFBIWSBjb3VudGVycGFydCBhdCBydW50aW1lLgoKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLWNzaXBo eS5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLWNzaXBoeS5jCj4g LS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLWNzaXBoeS5jCj4g KysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLWNzaXBoeS5jCgpb IC4uLiBdCgo+IEBAIC0zMDYsMTEgKzMwOCw4OCBAQCBzdGF0aWMgaW50IGNzaXBoeV9zdHJlYW1f b24oc3RydWN0IGNzaXBoeV9kZXZpY2UgKmNzaXBoeSkKPiAgewo+ICAJdTggYnBwID0gY3NpcGh5 X2dldF9icHAoY3NpcGh5LT5yZXMtPmZvcm1hdHMtPmZvcm1hdHMsIGNzaXBoeS0+cmVzLT5mb3Jt YXRzLT5uZm9ybWF0cywKPiAgCQkJCWNzaXBoeS0+Zm10W01TTV9DU0lQSFlfUEFEX1NJTktdLmNv ZGUpOwo+ICAJc3RydWN0IGNzaXBoeV9sYW5lc19jZmcgKmxuY2ZnID0gJmNzaXBoeS0+Y2ZnLmNz aTItPmxhbmVfY2ZnOwo+ICAJc3RydWN0IHBoeV9jb25maWd1cmVfb3B0c19taXBpX2RwaHkgKmRw aHlfY2ZnOwo+ICAJdW5pb24gcGh5X2NvbmZpZ3VyZV9vcHRzIGRwaHlfb3B0cyA9IHsgMCB9Owo+ ICAJc3RydWN0IGRldmljZSAqZGV2ID0gY3NpcGh5LT5jYW1zcy0+ZGV2Owo+ICAJdTggbnVtX2xh bmVzID0gbG5jZmctPm51bV9kYXRhOwo+ICAJczY0IGxpbmtfZnJlcTsKPiAgCWludCByZXQ7Cj4g IAo+ICAJZHBoeV9jZmcgPSAmZHBoeV9vcHRzLm1pcGlfZHBoeTsKPiAgCj4gIAlsaW5rX2ZyZXEg PSBjYW1zc19nZXRfbGlua19mcmVxKCZjc2lwaHktPnN1YmRldi5lbnRpdHksIGJwcCwgbnVtX2xh bmVzKTsKPiAgCj4gIAlpZiAobGlua19mcmVxIDwgMCkgewo+ICAJCWRldl9lcnIoZGV2LAo+ICAJ CQkiQ2Fubm90IGdldCBDU0kyIHRyYW5zbWl0dGVyJ3MgbGluayBmcmVxdWVuY3lcbiIpOwo+ICAJ CXJldHVybiAtRUlOVkFMOwo+ICAJfQo+ICAKPiAgCXBoeV9taXBpX2RwaHlfZ2V0X2RlZmF1bHRf Y29uZmlnX2Zvcl9oc2NsayhsaW5rX2ZyZXEsIG51bV9sYW5lcywgZHBoeV9jZmcpOwo+ICAKPiAg CXBoeV9zZXRfbW9kZShjc2lwaHktPnBoeSwgUEhZX01PREVfTUlQSV9EUEhZKTsKPiAgCj4gIAly ZXQgPSBwaHlfY29uZmlndXJlKGNzaXBoeS0+cGh5LCAmZHBoeV9vcHRzKTsKCltTZXZlcml0eTog TWVkaXVtXQpTaG91bGQgd2UgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZgpwaHlfbWlwaV9kcGh5 X2dldF9kZWZhdWx0X2NvbmZpZ19mb3JfaHNjbGsoKSBoZXJlIGluIGNzaXBoeV9zdHJlYW1fb24o KT8KCklmIHRoaXMgY2FsY3VsYXRpb24gaGVscGVyIGZhaWxzLCBmb3IgZXhhbXBsZSBkdWUgdG8g YW4gdW5zdXBwb3J0ZWQgbGluawpmcmVxdWVuY3ksIGl0IHJldHVybnMgYSBuZWdhdGl2ZSBlcnJv ciBjb2RlIGFuZCBsZWF2ZXMgZHBoeV9jZmcKemVyby1pbml0aWFsaXplZC4gQmVjYXVzZSB0aGUg ZXJyb3IgaXNuJ3QgY2hlY2tlZCwgdGhlIHplcm9lZCBjb25maWd1cmF0aW9uCndvdWxkIGJlIHBh c3NlZCBkb3duIHRvIHBoeV9jb25maWd1cmUoKSwgcmlza2luZyBhbiBpbnZhbGlkIGhhcmR3YXJl IHN0YXRlIG9yCmEgZmFpbHVyZSB0byBzdGFydCB0aGUgdmlkZW8gc3RyZWFtLgoKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLmMgYi9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL3Fjb20vY2Ftc3MvY2Ftc3MuYwo+IC0tLSBhL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vcWNvbS9jYW1zcy9jYW1zcy5jCj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9y bS9xY29tL2NhbXNzL2NhbXNzLmMKClsgLi4uIF0KCj4gQEAgLTQ4MzIsMTQgKzQ4OTAsMjEgQEAg c3RhdGljIGludCBjYW1zc19pbml0X3N1YmRldmljZXMoc3RydWN0IGNhbXNzICpjYW1zcykKPiAg CXVuc2lnbmVkIGludCBpOwo+ICAJaW50IHJldDsKPiAgCj4gKwljYW1zc19kZXRlY3RfbGVnYWN5 X3BoeShjYW1zcyk7Cj4gKwo+ICAJZm9yIChpID0gMDsgaSA8IGNhbXNzLT5yZXMtPmNzaXBoeV9u dW07IGkrKykgewo+IC0JCXJldCA9IG1zbV9jc2lwaHlfc3ViZGV2X2luaXQoY2Ftc3MsICZjYW1z cy0+Y3NpcGh5W2ldLAo+IC0JCQkJCSAgICAgJnJlcy0+Y3NpcGh5X3Jlc1tpXSwKPiAtCQkJCQkg ICAgIHJlcy0+Y3NpcGh5X3Jlc1tpXS5jc2lwaHkuaWQpOwo+ICsJCWlmICghY2Ftc3MtPmxlZ2Fj eV9waHkpIHsKPiArCQkJcmV0ID0gbXNtX2NzaXBoeV9zdWJkZXZfaW5pdChjYW1zcywgaSk7Cj4g KwkJfSBlbHNlIHsKPiArCQkJcmV0ID0gbXNtX2NzaXBoeV9zdWJkZXZfaW5pdF9sZWdhY3koY2Ft c3MsCj4gKwkJCQkJCQkgICAgJmNhbXNzLT5jc2lwaHlbaV0sCj4gKwkJCQkJCQkgICAgJnJlcy0+ Y3NpcGh5X3Jlc1tpXSwKPiArCQkJCQkJCSAgICByZXMtPmNzaXBoeV9yZXNbaV0uY3NpcGh5Lmlk KTsKPiArCQl9Cj4gKwo+ICAJCWlmIChyZXQgPCAwKSB7Cj4gLQkJCWRldl9lcnIoY2Ftc3MtPmRl diwKPiAtCQkJCSJGYWlsZWQgdG8gaW5pdCBjc2lwaHklZCBzdWItZGV2aWNlOiAlZFxuIiwKPiAt CQkJCWksIHJldCk7Cj4gKwkJCWRldl9lcnIoY2Ftc3MtPmRldiwgImNzaXBoeSAlZCBpbml0IGZh aWxcbiIsCj4gKwkJCQlyZXMtPmNzaXBoeV9yZXNbaV0uY3NpcGh5LmlkKTsKPiAgCQkJcmV0dXJu IHJldDsKPiAgCQl9Cj4gIAl9CgpbU2V2ZXJpdHk6IE1lZGl1bV0KSWYgbXNtX2NzaXBoeV9zdWJk ZXZfaW5pdCgpIGZhaWxzIG9uIGEgbGF0ZXIgaXRlcmF0aW9uLCBkb2VzIHRoaXMgbG9vcCBsZWFr CnRoZSBQSFkgaGFyZHdhcmUgc3RhdGUgb2YgdGhlIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgUEhZ cz8KClRoZSBtc21fY3NpcGh5X3N1YmRldl9pbml0KCkgZnVuY3Rpb24gbm93IGNhbGxzIHBoeV9p bml0KCkuIElmIHdlIHJldHVybgplYXJseSBoZXJlLCB3ZSBuZXZlciBjYWxsIHBoeV9leGl0KCkg Zm9yIHRoZSBQSFlzIHRoYXQgc3VjY2Vzc2Z1bGx5CmluaXRpYWxpemVkIGluIHByaW9yIGxvb3Ag aXRlcmF0aW9ucy4KCkFkZGl0aW9uYWxseSwgdGhpcyBpbml0aWFsaXphdGlvbiBzdGF0ZSBhcHBl YXJzIHRvIGxlYWsgb24gb3RoZXIgZXJyb3IgcGF0aHMKdG9vLiBGb3IgZXhhbXBsZSwgaWYgY2Ft c3NfcmVnaXN0ZXJfZW50aXRpZXMoKSBmYWlsczoKCj4gQEAgLTUxMzEsOCArNTIwNywxMCBAQCBz dGF0aWMgaW50IGNhbXNzX3JlZ2lzdGVyX2VudGl0aWVzKHN0cnVjdCBjYW1zcyAqY2Ftc3MpCj4g IAo+ICAJaSA9IGNhbXNzLT5yZXMtPmNzaXBoeV9udW07Cj4gIGVycl9yZWdfY3NpcGh5Ogo+IC0J Zm9yIChpLS07IGkgPj0gMDsgaS0tKQo+IC0JCW1zbV9jc2lwaHlfdW5yZWdpc3Rlcl9lbnRpdHko JmNhbXNzLT5jc2lwaHlbaV0pOwo+ICsJZm9yIChpLS07IGkgPj0gMDsgaS0tKSB7Cj4gKwkJaWYg KGNzaXBoeV9lbmFibGVkKGNhbXNzLCAmY2Ftc3MtPmNzaXBoeVtpXSkpCj4gKwkJCW1zbV9jc2lw aHlfdW5yZWdpc3Rlcl9lbnRpdHkoJmNhbXNzLT5jc2lwaHlbaV0pOwo+ICsJfQo+ICAKPiAgCXJl dHVybiByZXQ7Cj4gIH0KCklmIGNhbXNzX3JlZ2lzdGVyX2VudGl0aWVzKCkgZmFpbHMgb24gdGhl IHZlcnkgZmlyc3QgUEhZIChpPTApLCB0aGUgY2xlYW51cApsb29wIHNraXBzIG1zbV9jc2lwaHlf dW5yZWdpc3Rlcl9lbnRpdHkoKSBmb3IgYWxsIFBIWXMgYmVjYXVzZSBpIGJlY29tZXMgLTEuCgpT aW5jZSBtc21fY3NpcGh5X3VucmVnaXN0ZXJfZW50aXR5KCkgaXMgd2hhdCBjdXJyZW50bHkgY2Fs bHMgcGh5X2V4aXQoKSwgdGhpcwptZWFucyBhbGwgUEhZcyB0aGF0IHdlcmUgcGh5X2luaXQoKWVk IGR1cmluZyBjYW1zc19pbml0X3N1YmRldmljZXMoKSBhcmUKbmV2ZXIgdG9ybiBkb3duLCBsZWFr aW5nIHRoZWlyIGluaXRpYWxpemF0aW9uIHN0YXRlIGFuZCByZWZlcmVuY2UgY291bnRzLgoKLS0g ClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2 MDkwMy1iNC1saW51eC1uZXh0LTI1LTAzLTEzLWR0c2kteDFlODAxMDAtY2Ftc3MtdjE0LTAtMDFl ZjFlY2VkMDc1QGxpbmFyby5vcmc/cGFydD00CgotLSAKbGludXgtcGh5IG1haWxpbmcgbGlzdAps aW51eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1waHkK 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 924542BFC7B; Thu, 3 Sep 2026 23:14:55 +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=1788477296; cv=none; b=WjsFiF1S2e+6ELO4+deplUZkjmAx0jVrHFlwiveSsMBwGM43sCGm4W2UVJiamo5O54cAhp0MU74GHcNQsZtsd0JqWixHQ/XrSYYjrHNFilcUMVsarxa0WShdYffFm0LWvoC19XWnMvsJvt5Sr/bhCB8bCcKKlkZeyG1OKid03Xs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788477296; c=relaxed/simple; bh=CL7iZ/BeTokLaIvZlj0KogQBKIo6IwH0FkJa+50oP3A=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=ci3JxB4VZUse/u7Y0/xCTBThViI0Ey+IUUjDhBTg0KGqzHnMhAW7Fstd1R4pOZI+vvECZt+VuL6ETA4HnsaouS8GSF4UU89rPX8G1oDJ+Xg+jtiH9IrMbAOjQ5IK6n3+jKpzGXZ4c5Z0+UAKPQ8r31tHNHvTSEBKeL+HEUcAmy4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Az3+5AU1; 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="Az3+5AU1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA9321F000E9; Thu, 3 Sep 2026 23:14:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788477295; bh=TRghEdnx3gqfkVD9icW/T9NrPQTeDKGKNaNxbM3ms3Y=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Az3+5AU1F7XcCmlRMAHQb5Xovknp+pMIzADTGe++FapptFEWfUgw3EiqylM8qRRY8 q7AzR1n8UzagXe3c4ddk8otpCIgiAoNlXBmNCpYv6m75t70Zkmy2mD5r1berhaJyoK vSYl+Ll4IIPs4GUe+CwCXZyANoItH1akYQtFJs2kL6mgX4LcAgbgQbJA9iaUngzuCW rhJuSfEKRTGmnbFUH4hmSAo6G829Ng9lQyP4Ztsk1iGzQpPgzGdgox1b1SmKu3uSg5 erAqpoyylNeiNQUjpijTXL+oZRz8eVXkCUZyMgJv+H9KYjwk7T+uYALpe1LwDdQSaL 3PhOLVKzFqBug== From: sashiko-bot@kernel.org Subject: Re: [PATCH v14 4/4] media: qcom: camss: Add support for PHY API devices Reply-To: sashiko-reviews@lists.linux.dev To: =?utf-8?b?QnJ5YW4gTydEb25vZ2h1ZQ==?= Cc: linux-phy@lists.infradead.org, conor+dt@kernel.org, olteanv@gmail.com, neil.armstrong@linaro.org, devicetree@vger.kernel.org, vkoul@kernel.org, robh@kernel.org, linux-clk@vger.kernel.org, media-ci@linuxtv.org In-Reply-To: <20260903-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v14-4-01ef1eced075@linaro.org> References: <20260903-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v14-0-01ef1eced075@linaro.org> <20260903-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v14-4-01ef1eced075@linaro.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Thu, 03 Sep 2026 23:14:54 +0000 Message-Id: <20260903231454.CA9321F000E9@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] Kconfig symbol `VIDEO_QCOM_CAMSS` selects a non-existent configura= tion `PHY_QCOM_MIPI_CSI2`. - [Medium] Missing `phy_exit()` cleanup on error paths leading to leaked PH= Y hardware state. - [Medium] Unchecked return value of `phy_mipi_dphy_get_default_config_for_= hsclk()` leads to uninitialized PHY configuration. -- commit 23536801ceab899563c72768f20e4c404c373978 Author: Bryan O'Donoghue media: qcom: camss: Add support for PHY API devices This commit adds the ability to use a PHY pointer which interacts with the standard PHY API. In the first instance the code will try to use the new PHY interface, falling back to the legacy method if no PHYs are present in the DT. > diff --git a/drivers/media/platform/qcom/camss/Kconfig b/drivers/media/pl= atform/qcom/camss/Kconfig > --- a/drivers/media/platform/qcom/camss/Kconfig > +++ b/drivers/media/platform/qcom/camss/Kconfig > @@ -7,3 +7,4 @@ config VIDEO_QCOM_CAMSS > select VIDEO_V4L2_SUBDEV_API > select VIDEOBUF2_DMA_SG > select V4L2_FWNODE > + select PHY_QCOM_MIPI_CSI2 [Severity: High] Does the config PHY_QCOM_MIPI_CSI2 actually exist? Selecting a non-existent symbol can leave the required PHY driver unbuilt, leading to silent dependency failures where the hardware driver will lack i= ts required PHY counterpart at runtime. > diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.c b/drivers/m= edia/platform/qcom/camss/camss-csiphy.c > --- a/drivers/media/platform/qcom/camss/camss-csiphy.c > +++ b/drivers/media/platform/qcom/camss/camss-csiphy.c [ ... ] > @@ -306,11 +308,88 @@ static int csiphy_stream_on(struct csiphy_device *c= siphy) > { > u8 bpp =3D csiphy_get_bpp(csiphy->res->formats->formats, csiphy->res->f= ormats->nformats, > csiphy->fmt[MSM_CSIPHY_PAD_SINK].code); > struct csiphy_lanes_cfg *lncfg =3D &csiphy->cfg.csi2->lane_cfg; > struct phy_configure_opts_mipi_dphy *dphy_cfg; > union phy_configure_opts dphy_opts =3D { 0 }; > struct device *dev =3D csiphy->camss->dev; > u8 num_lanes =3D lncfg->num_data; > s64 link_freq; > int ret; > =20 > dphy_cfg =3D &dphy_opts.mipi_dphy; > =20 > link_freq =3D camss_get_link_freq(&csiphy->subdev.entity, bpp, num_lane= s); > =20 > if (link_freq < 0) { > dev_err(dev, > "Cannot get CSI2 transmitter's link frequency\n"); > return -EINVAL; > } > =20 > phy_mipi_dphy_get_default_config_for_hsclk(link_freq, num_lanes, dphy_c= fg); > =20 > phy_set_mode(csiphy->phy, PHY_MODE_MIPI_DPHY); > =20 > ret =3D phy_configure(csiphy->phy, &dphy_opts); [Severity: Medium] Should we check the return value of phy_mipi_dphy_get_default_config_for_hsclk() here in csiphy_stream_on()? If this calculation helper fails, for example due to an unsupported link frequency, it returns a negative error code and leaves dphy_cfg zero-initialized. Because the error isn't checked, the zeroed configuration would be passed down to phy_configure(), risking an invalid hardware state = or a failure to start the video stream. > diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/pl= atform/qcom/camss/camss.c > --- a/drivers/media/platform/qcom/camss/camss.c > +++ b/drivers/media/platform/qcom/camss/camss.c [ ... ] > @@ -4832,14 +4890,21 @@ static int camss_init_subdevices(struct camss *ca= mss) > unsigned int i; > int ret; > =20 > + camss_detect_legacy_phy(camss); > + > for (i =3D 0; i < camss->res->csiphy_num; i++) { > - ret =3D msm_csiphy_subdev_init(camss, &camss->csiphy[i], > - &res->csiphy_res[i], > - res->csiphy_res[i].csiphy.id); > + if (!camss->legacy_phy) { > + ret =3D msm_csiphy_subdev_init(camss, i); > + } else { > + ret =3D msm_csiphy_subdev_init_legacy(camss, > + &camss->csiphy[i], > + &res->csiphy_res[i], > + res->csiphy_res[i].csiphy.id); > + } > + > if (ret < 0) { > - dev_err(camss->dev, > - "Failed to init csiphy%d sub-device: %d\n", > - i, ret); > + dev_err(camss->dev, "csiphy %d init fail\n", > + res->csiphy_res[i].csiphy.id); > return ret; > } > } [Severity: Medium] If msm_csiphy_subdev_init() fails on a later iteration, does this loop leak the PHY hardware state of the previously initialized PHYs? The msm_csiphy_subdev_init() function now calls phy_init(). If we return early here, we never call phy_exit() for the PHYs that successfully initialized in prior loop iterations. Additionally, this initialization state appears to leak on other error paths too. For example, if camss_register_entities() fails: > @@ -5131,8 +5207,10 @@ static int camss_register_entities(struct camss *c= amss) > =20 > i =3D camss->res->csiphy_num; > err_reg_csiphy: > - for (i--; i >=3D 0; i--) > - msm_csiphy_unregister_entity(&camss->csiphy[i]); > + for (i--; i >=3D 0; i--) { > + if (csiphy_enabled(camss, &camss->csiphy[i])) > + msm_csiphy_unregister_entity(&camss->csiphy[i]); > + } > =20 > return ret; > } If camss_register_entities() fails on the very first PHY (i=3D0), the clean= up loop skips msm_csiphy_unregister_entity() for all PHYs because i becomes -1. Since msm_csiphy_unregister_entity() is what currently calls phy_exit(), th= is means all PHYs that were phy_init()ed during camss_init_subdevices() are never torn down, leaking their initialization state and reference counts. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260903-b4-linux-n= ext-25-03-13-dtsi-x1e80100-camss-v14-0-01ef1eced075@linaro.org?part=3D4