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 96BCACA9ED1 for ; Mon, 12 Oct 2026 07:01:22 +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:Date:References: In-Reply-To:Cc:To:Subject:From:Message-ID:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=BOT+Pvs7HJBXM/yknufTXcwKZsHaeBywO4/7pnWROvs=; b=q78lXS7EGEbpgJ Gx4EuUhLMfxtOIHiQDiB+r9w69CbFAnq55zY9av6T4XVaJC/1iWmJ6NG3z+yB8dB3hGY7M6wMyRiP /KOic8xvY3rPEOuQFKxPdnAXIrtN4LcpYoJIMeBR44ACWr3vbmef01+Zymv5SU13PuTZK7USeiZQw 9ZwE3nuKSZWwA4sLlh6xZ5ysoFiCMwYevsXCkGcPb/b4KiJlYcGSkGUNPAfH0ipGa4mUchzWBnDc0 yhWvPN32SNcKlHYxgn8hblU7tdWbdG4nfDAwGiZSrA9sfOOur0h16k9F9pNzELBBFcQyNM6Gq5ec5 57w3QP8OafLIf1ZIDdpw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xGA2E-00000009nXM-1E7m; Mon, 12 Oct 2026 07:01:22 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xGA2C-00000009nWd-396g for linux-phy@lists.infradead.org; Mon, 12 Oct 2026 07:01:20 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 3778760D9B; Mon, 12 Oct 2026 07:01:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6F5F81F0089C; Mon, 12 Oct 2026 07:01:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791788479; bh=PRY+T6WtU9BxPUl0dyJCXNU0xzVlV8gm7CCcrRvJqFA=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=ocRAnCNsi5VzJ/CQIvIMtUP/iDbLxTSSIKzdpvF5I9t9ulPCirOQ2LJpa+IniOnVO izO7zMG4fAuTCTqf7qpJkprhdRLd6fh0JxoK6qGK84Y3TfdFAtTmNW1CKHPf78VYRv oQnv9QKGEYZPWe2GdTIrA14Fum9Wl6+mG1TXuz6Gcn3nSG5mQ/FSdeN3VJ5eeZY6Mm BWbEcY3iCr5DeUxJQngo+/tal2/D2KMZoInztp/tHlE+SFHagcU1w+A3MB8NZJ6F6Q JUbLVWN1OKHvtrzAfCz6x15yZhqan4ZhKzx2X7QMlU05AwJ5ibFCVczkS/EUr4BZuL 0VRNPnC+KaRqw== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v21 10/14] media: qcom: camss: tpg: Add support for v2.4.0 TPG To: "Hangxiang Ma" Cc: devicetree@vger.kernel.org, vkoul@kernel.org, conor+dt@kernel.org, olteanv@gmail.com, media-ci@linuxtv.org, linux-phy@lists.infradead.org, robh@kernel.org, neil.armstrong@linaro.org In-Reply-To: <20261011-kaanapali-camss-v21-10-04fd28d815c6@oss.qualcomm.com> References: <20261011-kaanapali-camss-v21-0-04fd28d815c6@oss.qualcomm.com> <20261011-kaanapali-camss-v21-10-04fd28d815c6@oss.qualcomm.com> Date: Mon, 12 Oct 2026 07:01:18 +0000 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 MiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW01lZGl1bV0gbWVkaWE6IHFjb206 IGNhbXNzOiBjc2lkOiBpbmNvcnJlY3QgZmFsbGJhY2sgdG8gcGh5c2ljYWwgUEhZIHdoZW4gVFBH IGRpc2FibGVkCi0gW01lZGl1bV0gbWVkaWE6IHFjb206IGNhbXNzOiB1bmluaXRpYWxpemVkIGh3 X3ZlcnNpb24gdXNlZCBpbiB0cGdfcmVzZXQKLS0KCmNvbW1pdCA4M2MxNWE4NzkzMGEzYjI5MmMy ZWViOWIwMzRkNjQzNjgyOGZkNWRlCkF1dGhvcjogSGFuZ3hpYW5nIE1hIDxoYW5neGlhbmcubWFA b3NzLnF1YWxjb21tLmNvbT4KCm1lZGlhOiBxY29tOiBjYW1zczogdHBnOiBBZGQgc3VwcG9ydCBm b3IgdjIuNC4wIFRQRwoKQWRkIHN1cHBvcnQgZm9yIHRoZSBUUEcgZm91bmQgb24gS2FhbmFwYWxp LiBUaGlzIFRQRyB1c2VzIGhhcmR3YXJlCnZlcnNpb24gMi40LjAsIHdoaWNoIGRyaXZlcyB0ZXN0 LWVuYWJsZSBhbmQgcmVzZXQgdGhyb3VnaCB0aGUKVFBHX0NUUkxfQ01EIHJlZ2lzdGVyIGF0IG9m ZnNldCAweDFmNCBpbnN0ZWFkIG9mIHRoZSBURVNUX0VOIGJpdCBpbgpUUEdfQ1RSTCBhbmQgdGhl IFRQR19DTEVBUiByZWdpc3Rlci4gSXRzIG91dHB1dCBpcyByb3V0ZWQgaW50byB0aGUKQ1NJRCAx MDgwIFJYIHRocm91Z2ggdGhlIENTSTIgVFBHIG11eCwgc28gdGhlIENTSUQgc2VsZWN0cyB0aGUg VFBHIGFzCnRoZSBkYXRhIHNvdXJjZSB3aGVuIGEgdGVzdCBwYXR0ZXJuIGlzIHNlbGVjdGVkLgoK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLWNz aWQtMTA4MC5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLWNzaWQt MTA4MC5jCj4gaW5kZXggNDZlNDQzZTA1MTk1YS4uODUxYjNjZDcxMmY1MiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vY2Ftc3MvY2Ftc3MtY3NpZC0xMDgwLmMKPiAr KysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vY2Ftc3MvY2Ftc3MtY3NpZC0xMDgwLmMK WyAuLi4gXQo+IEBAIC0xNDgsOCArMTUxLDE2IEBAIHN0YXRpYyB2b2lkIF9fY3NpZF9jb25maWd1 cmVfcngoc3RydWN0IGNzaWRfZGV2aWNlICpjc2lkLAo+ICAKPiAgCXZhbCA9IChsYW5lX2NudCAt IDEpIDw8IENTSTJfUlhfQ0ZHMF9OVU1fQUNUSVZFX0xBTkVTOwo+ICAJdmFsIHw9IHBoeS0+bGFu ZV9hc3NpZ24gPDwgQ1NJMl9SWF9DRkcwX0RMMF9JTlBVVF9TRUw7Cj4gLQl2YWwgfD0gKHBoeS0+ Y3NpcGh5X2lkICsgQ1NJMl9SWF9DRkcwX1BIWV9TRUxfQkFTRV9JRFgpCj4gLQkgICAgICAgPDwg Q1NJMl9SWF9DRkcwX1BIWV9OVU1fU0VMOwo+ICsKPiArCWlmIChjYW1zcy0+dHBnICYmIGNzaWQt PnRwZ19saW5rZWQgJiYKPiArCSAgICBjYW1zcy0+dHBnW3BoeS0+Y3NpcGh5X2lkXS50ZXN0Z2Vu Lm1vZGUgIT0gVFBHX1BBWUxPQURfTU9ERV9ESVNBQkxFRCkgewo+ICsJCXZhbCB8PSBGSUVMRF9Q UkVQKENTSTJfUlhfQ0ZHMF9UUEdfTVVYX1NFTCwgcGh5LT5jc2lwaHlfaWQgKyAxKTsKPiArCQl2 YWwgfD0gQ1NJMl9SWF9DRkcwX1RQR19NVVhfRU47Cj4gKwl9IGVsc2Ugewo+ICsJCXZhbCB8PSAo cGh5LT5jc2lwaHlfaWQgKyBDU0kyX1JYX0NGRzBfUEhZX1NFTF9CQVNFX0lEWCkKPiArCQkJPDwg Q1NJMl9SWF9DRkcwX1BIWV9OVU1fU0VMOwo+ICsJfQo+ICsKCltTZXZlcml0eTogTWVkaXVtXQpX aGVuIGNzaWQtPnRwZ19saW5rZWQgaXMgdHJ1ZSwgY3NpZF9saW5rX3NldHVwKCkgaGFzIGFscmVh ZHkgb3ZlcndyaXR0ZW4KcGh5LT5jc2lwaHlfaWQgd2l0aCB0aGUgdHBnLT5pZC4gSWYgYSB1c2Vy IGxlYXZlcyB0aGUgVFBHIGluIHRoZSBkZWZhdWx0CmRpc2FibGVkIG1vZGUgKHRlc3RnZW4ubW9k ZSA9PSBUUEdfUEFZTE9BRF9NT0RFX0RJU0FCTEVEKSwgZG9lcyB0aGlzCmZhbGxiYWNrIHRvIHRo ZSBlbHNlIGJyYW5jaCBtaXN0YWtlbmx5IHVzZSB0aGUgdHBnLT5pZCBhcyBhIHBoeXNpY2FsCkNT SVBIWSBpbmRleD8KClRoaXMgYXBwZWFycyB0byBtaXNjb25maWd1cmUgdGhlIGhhcmR3YXJlIHRv IHJvdXRlIGRhdGEgZnJvbSBhIHBoeXNpY2FsCmNhbWVyYSBzZW5zb3IgdGhhdCBoYXBwZW5zIHRv IHNoYXJlIHRoZSBzYW1lIG51bWVyaWMgSUQgYXMgdGhlIHJlcXVlc3RlZApUUEcsIHNpbGVudGx5 IGJ5cGFzc2luZyB0aGUgVFBHIGVudGlyZWx5LgoKPiAgCXdyaXRlbCh2YWwsIGNzaWQtPmJhc2Ug KyBDU0lEX0NTSTJfUlhfQ0ZHMCk7Cj4gIAo+ICAJdmFsID0gQ1NJMl9SWF9DRkcxX0VDQ19DT1JS RUNUSU9OX0VOOwoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2Nh bXNzL2NhbXNzLXRwZy1nZW4xLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vY2Ftc3Mv Y2Ftc3MtdHBnLWdlbjEuYwo+IGluZGV4IGQyOWRlNWY5M2MxOGUuLmNhYmJiMjYzOGNmMzggMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLXRwZy1n ZW4xLmMKPiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vY2Ftc3MvY2Ftc3MtdHBn LWdlbjEuYwpbIC4uLiBdCj4gQEAgLTE2NCwxOCArMTY3LDI2IEBAIHN0YXRpYyBpbnQgdHBnX3N0 cmVhbV9vbihzdHJ1Y3QgdHBnX2RldmljZSAqdHBnKQpbIC4uLiBdCj4gIHN0YXRpYyBpbnQgdHBn X3Jlc2V0KHN0cnVjdCB0cGdfZGV2aWNlICp0cGcpCj4gIHsKPiAtCXdyaXRlbCgwLCB0cGctPmJh c2UgKyBUUEdfQ1RSTCk7Cj4gLQl3cml0ZWwoMSwgdHBnLT5iYXNlICsgVFBHX0NMRUFSKTsKPiAr CWlmICh0cGctPmh3X3ZlcnNpb24gPCBUUEdfSFdfVkVSXzJfNF8wKQo+ICsJCXdyaXRlbCgwLCB0 cGctPmJhc2UgKyBUUEdfQ1RSTCk7CgpbU2V2ZXJpdHk6IE1lZGl1bV0KSXMgdHBnLT5od192ZXJz aW9uIHByb3Blcmx5IGluaXRpYWxpemVkIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9y CnRoZSBmaXJzdCB0aW1lPyBMb29raW5nIGF0IHRwZ19zZXRfcG93ZXIoKSBpbiBjYW1zcy10cGcu YywgaXQgaW52b2tlcwp0aGUgcmVzZXQgY2FsbGJhY2sgYmVmb3JlIGh3X3ZlcnNpb24gaXMgcG9w dWxhdGVkIG9uIHBvd2VyLW9uOgoKdHBnX3NldF9wb3dlcigpCiAgIC4uLgogICB0cGctPnJlcy0+ aHdfb3BzLT5yZXNldCh0cGcpOwogICB0cGctPnJlcy0+aHdfb3BzLT5od192ZXJzaW9uKHRwZyk7 CgpTaW5jZSB0aGUgc3RydWN0IGlzIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBhbmQgemVyb2VkLCB0 aGUgZmlyc3QKdHBnX3Jlc2V0KCkgd2lsbCBldmFsdWF0ZSB0cGctPmh3X3ZlcnNpb24gYXMgMC4g VGhpcyBzYXRpc2ZpZXMgdGhlCmNvbmRpdGlvbiBhbmQgaW5jb3JyZWN0bHkgZXhlY3V0ZXMgdGhl IGxlZ2FjeSB3cml0ZSB0byBUUEdfQ1RSTCBldmVuIG9uCm5ld2VyIHYyLjQuMCBoYXJkd2FyZS4K Cj4gKwo+ICsJd3JpdGVsKFRQR19DVFJMX0NNRF9IV19SRVNFVCwgdHBnLT5iYXNlICsgVFBHX0NU UkxfQ01EKTsKPiAgCj4gIAlyZXR1cm4gMDsKPiAgfQoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3 IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2MTAxMS1rYWFuYXBhbGktY2Ftc3Mt djIxLTAtMDRmZDI4ZDgxNWM2QG9zcy5xdWFsY29tbS5jb20/cGFydD0xMAoKLS0gCmxpbnV4LXBo eSBtYWlsaW5nIGxpc3QKbGludXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cHM6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcGh5Cg== 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 10C1643DEDE for ; Mon, 12 Oct 2026 07:01:20 +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=1791788481; cv=none; b=UCnaS7FndpPUifGr41NO/O+36kZ+pL57rmr/har6oM8pmqrMvLgZLxQrpGR7DP3Q1/lhKeXhHKCuRKyG0x8OTTuKr9XEDdF3aI9BykotLeV7jwBSZuRAs/Qg1U+b256J6KYj0IvppG8X5qHq00ONkaroWAzXfRYV3ajAvsRqSdo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791788481; c=relaxed/simple; bh=TNb+a+SHc2V9tu2qDmHWOQIC4rHeDBdDpzIPoG4N/Qo=; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type: Date; b=hklpdz1WhCu3kWaoPTzS3gcFLfJQepE55okB1AElcmS9jIf68YU8s9ob5iJXRSjA1Djs/D1l8xeOg5ZffQiN7gIFaG1XRh++GTrBVKqT4X+CW1cXy30hq9pt0pPCehkuBuRkaE6+/+mou2pXzGv3msdUN0W5lSm0y+yBpF1B+yg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ocRAnCNs; 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="ocRAnCNs" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6F5F81F0089C; Mon, 12 Oct 2026 07:01:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791788479; bh=PRY+T6WtU9BxPUl0dyJCXNU0xzVlV8gm7CCcrRvJqFA=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=ocRAnCNsi5VzJ/CQIvIMtUP/iDbLxTSSIKzdpvF5I9t9ulPCirOQ2LJpa+IniOnVO izO7zMG4fAuTCTqf7qpJkprhdRLd6fh0JxoK6qGK84Y3TfdFAtTmNW1CKHPf78VYRv oQnv9QKGEYZPWe2GdTIrA14Fum9Wl6+mG1TXuz6Gcn3nSG5mQ/FSdeN3VJ5eeZY6Mm BWbEcY3iCr5DeUxJQngo+/tal2/D2KMZoInztp/tHlE+SFHagcU1w+A3MB8NZJ6F6Q JUbLVWN1OKHvtrzAfCz6x15yZhqan4ZhKzx2X7QMlU05AwJ5ibFCVczkS/EUr4BZuL 0VRNPnC+KaRqw== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v21 10/14] media: qcom: camss: tpg: Add support for v2.4.0 TPG Reply-To: sashiko-reviews@lists.linux.dev To: "Hangxiang Ma" Cc: devicetree@vger.kernel.org, vkoul@kernel.org, conor+dt@kernel.org, olteanv@gmail.com, media-ci@linuxtv.org, linux-phy@lists.infradead.org, robh@kernel.org, neil.armstrong@linaro.org In-Reply-To: <20261011-kaanapali-camss-v21-10-04fd28d815c6@oss.qualcomm.com> References: <20261011-kaanapali-camss-v21-0-04fd28d815c6@oss.qualcomm.com> <20261011-kaanapali-camss-v21-10-04fd28d815c6@oss.qualcomm.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Mon, 12 Oct 2026 07:01:18 +0000 Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 2 potential issue(= s) to consider: - [Medium] media: qcom: camss: csid: incorrect fallback to physical PHY whe= n TPG disabled - [Medium] media: qcom: camss: uninitialized hw_version used in tpg_reset -- commit 83c15a87930a3b292c2eeb9b034d6436828fd5de Author: Hangxiang Ma media: qcom: camss: tpg: Add support for v2.4.0 TPG Add support for the TPG found on Kaanapali. This TPG uses hardware version 2.4.0, which drives test-enable and reset through the TPG_CTRL_CMD register at offset 0x1f4 instead of the TEST_EN bit in TPG_CTRL and the TPG_CLEAR register. Its output is routed into the CSID 1080 RX through the CSI2 TPG mux, so the CSID selects the TPG as the data source when a test pattern is selected. > diff --git a/drivers/media/platform/qcom/camss/camss-csid-1080.c b/driver= s/media/platform/qcom/camss/camss-csid-1080.c > index 46e443e05195a..851b3cd712f52 100644 > --- a/drivers/media/platform/qcom/camss/camss-csid-1080.c > +++ b/drivers/media/platform/qcom/camss/camss-csid-1080.c [ ... ] > @@ -148,8 +151,16 @@ static void __csid_configure_rx(struct csid_device *= csid, > =20 > val =3D (lane_cnt - 1) << CSI2_RX_CFG0_NUM_ACTIVE_LANES; > val |=3D phy->lane_assign << CSI2_RX_CFG0_DL0_INPUT_SEL; > - val |=3D (phy->csiphy_id + CSI2_RX_CFG0_PHY_SEL_BASE_IDX) > - << CSI2_RX_CFG0_PHY_NUM_SEL; > + > + if (camss->tpg && csid->tpg_linked && > + camss->tpg[phy->csiphy_id].testgen.mode !=3D TPG_PAYLOAD_MODE_DISAB= LED) { > + val |=3D FIELD_PREP(CSI2_RX_CFG0_TPG_MUX_SEL, phy->csiphy_id + 1); > + val |=3D CSI2_RX_CFG0_TPG_MUX_EN; > + } else { > + val |=3D (phy->csiphy_id + CSI2_RX_CFG0_PHY_SEL_BASE_IDX) > + << CSI2_RX_CFG0_PHY_NUM_SEL; > + } > + [Severity: Medium] When csid->tpg_linked is true, csid_link_setup() has already overwritten phy->csiphy_id with the tpg->id. If a user leaves the TPG in the default disabled mode (testgen.mode =3D=3D TPG_PAYLOAD_MODE_DISABLED), does this fallback to the else branch mistakenly use the tpg->id as a physical CSIPHY index? This appears to misconfigure the hardware to route data from a physical camera sensor that happens to share the same numeric ID as the requested TPG, silently bypassing the TPG entirely. > writel(val, csid->base + CSID_CSI2_RX_CFG0); > =20 > val =3D CSI2_RX_CFG1_ECC_CORRECTION_EN; > diff --git a/drivers/media/platform/qcom/camss/camss-tpg-gen1.c b/drivers= /media/platform/qcom/camss/camss-tpg-gen1.c > index d29de5f93c18e..cabbb2638cf38 100644 > --- a/drivers/media/platform/qcom/camss/camss-tpg-gen1.c > +++ b/drivers/media/platform/qcom/camss/camss-tpg-gen1.c [ ... ] > @@ -164,18 +167,26 @@ static int tpg_stream_on(struct tpg_device *tpg) [ ... ] > static int tpg_reset(struct tpg_device *tpg) > { > - writel(0, tpg->base + TPG_CTRL); > - writel(1, tpg->base + TPG_CLEAR); > + if (tpg->hw_version < TPG_HW_VER_2_4_0) > + writel(0, tpg->base + TPG_CTRL); [Severity: Medium] Is tpg->hw_version properly initialized when this function is called for the first time? Looking at tpg_set_power() in camss-tpg.c, it invokes the reset callback before hw_version is populated on power-on: tpg_set_power() ... tpg->res->hw_ops->reset(tpg); tpg->res->hw_ops->hw_version(tpg); Since the struct is dynamically allocated and zeroed, the first tpg_reset() will evaluate tpg->hw_version as 0. This satisfies the condition and incorrectly executes the legacy write to TPG_CTRL even on newer v2.4.0 hardware. > + > + writel(TPG_CTRL_CMD_HW_RESET, tpg->base + TPG_CTRL_CMD); > =20 > return 0; > } --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261011-kaanapali-= camss-v21-0-04fd28d815c6@oss.qualcomm.com?part=3D10