From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 90ABE3E316F
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 07:11:24 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783321891; cv=none; b=fenzp0aQOmA37SMQrYrIhXDNrr8W7EFLBuAHUyQ+MIC/RXKxpk+Pmt4S2GGrCeuDU0F+JGQ4kMb+esvUnH0Y9Fxbf6ohRflvY3qc0aCAiNBWSrgiciLx/a8yPOTTptwrQCMDuGhgsTcQLYplHwr07oY0bvmOPNpsVD89EbsRVno=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783321891; c=relaxed/simple;
	bh=KKXZeb1RE0r005VvQQ7JENvpHu510rqjXgwKJAo5iQU=;
	h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:
	 MIME-Version; b=Caqqg+tAIBGQQoVFcHrCPvoqxNaVs4dJL/al7Uh9O33AXHWJtvB8m70qtU6dGWybE/oT8jzzzUe1I/YIi1gJLTDMUR+PV1bph0dRjrjgSViLFPUpVDiMTWGULtoWw7RVNKoUjyGLd5F9s29mSvc2THEbdkw8hoVKUEjBI11iZME=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=UMnyBI+f; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=OgAc+Uxk; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="UMnyBI+f";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="OgAc+Uxk"
Received: from pps.filterd (m0279870.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66641REb3585267
	for <devicetree@vger.kernel.org>; Mon, 6 Jul 2026 07:11:21 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=qcppdkim1; bh=KjE3aY0Hltr
	ecpTkRxum+Wgatm3vTg9XNPg/fbiZ22s=; b=UMnyBI+fLa7buZofz48salBJNU2
	JqbWnckE4T1F7ExiGYmWiIwpTAp/Pb8YMZFscaxNenoQIcZ3tRT+OTA5Yl+K2YQW
	6NUUEkGJ6yYlLS8Nq86P4qxeQLoxFABvXZE2yqXcdOGaftxrCu05axg81W/VU2vF
	U2IkbXiDnpROHMTuHVjKhFA3dYERcYXT4a5vhR5jzMXOb2VUK6P8dStr45xo7Ixh
	LjKUASyWcPAKQKgv1C2okskM+91Y6BwkAcaHwz9EP7PXEmeKXWk3Bw9kIYoczlj0
	aeKX91pmbQ4sROA+m+xtFtf01fKrkGbaTM9ySViOqA5pbAwqwWOO0Q7mHzw==
Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f6t8un0fr-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 07:11:21 +0000 (GMT)
Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-8ec45d9628aso65473966d6.1
        for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 00:11:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783321881; x=1783926681; darn=vger.kernel.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=KjE3aY0HltrecpTkRxum+Wgatm3vTg9XNPg/fbiZ22s=;
        b=OgAc+UxkmaoobJ10e5CWqEALgyUwmr5TUOC40BI5+owf3lw59C2+dWx/EtCjvfbdXS
         SZZwG3qI+DM9Yc4Yu0Rziwcew7wwdRyGVafUB1cCusoUnBvEIgX1MctlE3gRnM2wm2CZ
         yz50xb6JGFGXr9q7klf/juk3qv2GY8ITQ/qNQMCLFNDiaagqhaoRRlM7aYtQtwvhThPQ
         eok3fpsKzrxtDL5gGc0nA+TJZE0hAQlJLPRofL5uNfjpqmVj48iLzlfxa5CqjMqmS7u0
         Gc+yuOFXxI7YR69s5V9DS3xPWqB7VgtvMbpBlAByb59mCvVRZ14AP8wBGSbQwp0ewLgk
         p/Zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783321881; x=1783926681;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to:content-type;
        bh=KjE3aY0HltrecpTkRxum+Wgatm3vTg9XNPg/fbiZ22s=;
        b=sQb6HeBfo6YeasA9fYM7SztLzmlpVQQ8P+nQs8MG22mEuCrRq0pdvv0hsChVhp1aMj
         Sz+P/jfRPBPH5H0VFThbGpTxZuySP7pwjjNsY0pzOlgsBqK9f0xlj6aoNOOYpzF2TCPL
         ExtR0wKSsWcl9Vg7WThV0m1OzFX+Pv74MnfnM1d/CZuYliHLw2vuEvmaNbB5h2KfxUY0
         f/EEqozFbroyW33wl6Km1iZ5yr3f+0UQyzSJcUc3k4Slizu0M5mKn5mz1IGWA5MkEsF4
         22qqoAiY66AL0IIoh+uXRA6Iur2qIalnV15/0GFwsTb5b92mrHM5Che88+mQ/UwGYLWy
         ZT/g==
X-Forwarded-Encrypted: i=1; AHgh+Rp3Qj4o5Xgityh8OnFsI7xpjBSOfQPCU8IWwPEcH+CQBIEwMBMZlGfEpkvx9I8eErGxsU25UVL/bQjp@vger.kernel.org
X-Gm-Message-State: AOJu0Ywgpdk1dancsI7Pv3w6S+wtvdVmsYKwwwZ52vBkdR6s4J5lPrs4
	rEB6P4YGeWFxDTwAeb1nKK/D7JnByRNkEIYKpDr4ggivckLeHTt8vJfF1W4YHY4yk9AI4HS/mte
	CWWBWHw0aIK1obA/lQevgZk1AOZWk4hFTfyGZvdqr9l7NnJ7i1MpbtcDP80RJYotT
X-Gm-Gg: AfdE7clmIS6+8qWTxOv6R9ABZZkL/jhacZBkxma2Gt/oe2vTaMc0k27OR04aoi6mOyD
	MjNa5GY1cJ7ZLml0J0renUfr54wDRedVYQP0fQ+0ZXV7fmRWiWWUDu75heIRMWQx+73XDaxg+3d
	1mN+QJafSQ0VlOfkeUkGtfqEk0hdM69C+LjU7BBMLlO0avsBryYBa/HTzhfoVZ7gr4uSNolx1PB
	wjnxcQdX/t5d9/oDT4OnDxUz5ZcyCgq8XRg5xlPeQhLaVdcPV+ztpKm2BoSr998RN/Phpl24j/n
	C/08EaTLh2aS1aGOZ9Zm9D4dnInlh05vzmW9icVmuzcmWX4rn8Llj+dlWtJJ8xL3kLVLHet79N8
	xxs+0GoUJMMXKE40igVAparTSriGZB6bD9cs=
X-Received: by 2002:a05:620a:4624:b0:92e:68be:1c5 with SMTP id af79cd13be357-92e9a34e907mr1295276685a.21.1783321880851;
        Mon, 06 Jul 2026 00:11:20 -0700 (PDT)
X-Received: by 2002:a05:620a:4624:b0:92e:68be:1c5 with SMTP id af79cd13be357-92e9a34e907mr1295274885a.21.1783321880427;
        Mon, 06 Jul 2026 00:11:20 -0700 (PDT)
Received: from lin-0772.qualcomm.com ([212.136.9.4])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c12b62f3b40sm674673866b.56.2026.07.06.00.11.18
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Mon, 06 Jul 2026 00:11:19 -0700 (PDT)
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
To: linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>
Subject: [PATCH v4 2/5] dt-bindings: media: qcom,sm8250-camss: allow JPEG encoder child node
Date: Mon,  6 Jul 2026 10:11:10 +0300
Message-Id: <20260706071113.383215-3-atanas.filipov@oss.qualcomm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-ORIG-GUID: oJzrEfdrPF2KC878ikuBqtbo6a1Jdi5I
X-Proofpoint-GUID: oJzrEfdrPF2KC878ikuBqtbo6a1Jdi5I
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA2MDA3MCBTYWx0ZWRfXwZeUI/HrVXwv
 nc2eYgjn/sE0HEQ3N+uyGaANyH3xskinVMuCIobqaYk3n6fScyi3+WV5IvJ67Am30RJ6lY3sML/
 HvvnYpBAjLbBmun2OqavkuPyLHwiDoM=
X-Authority-Analysis: v=2.4 cv=MZxcfZ/f c=1 sm=1 tr=0 ts=6a4b5519 cx=c_pps
 a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=dNlqnMcrdpbb+gQrTujlOQ==:17
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8
 a=60vvH-AHyAWEQOE588EA:9 a=pJ04lnu7RYOZP9TFuWaZ:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA2MDA3MCBTYWx0ZWRfX8AtDfvohRTvM
 pqi5WcXoVbTQ2Kyj8nSKmKy642zUB3f+4D4nM5pQtFJLfydd0iVryg0GIH1sjqFB2xD7YdqmI9/
 3nyEUlWdBX01zC/GaVtrnsIGLs3zstn11L1rhTm/UQKdjHabYrTtQCL1TeoY9DZsKkkN9na4eh5
 otWi5OW2Zo81RLoHDNOtfXQHXeeGkNdFdiM28w3ech3HIbZ/F6fc5j5pOeOtmLq5xvYStN7vzsw
 uIlqxVsn45UarRoJdjm+qJDTtpvJmdg+f4B9Y1qQlXCpBMQuiPtC+aIhxkrg87EalP5m1GXdexo
 wPKdSpT2D6I5ku3SHmn2jbGSA8MlbisFxNzJhzk7w0XpcnqavSPicKI1Oz6x393m06nv0t/pQBF
 Vc9lqobZPGnW8tkD2NTIN+zKP31YqTbNTtAgz2GU/WwkaZr0MzMq5S6/gvgORlX/db21Je5Jt34
 MV3jhTRFUhc9/lmWStQ==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-07-05_02,2026-07-03_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 priorityscore=1501 impostorscore=0 malwarescore=0 bulkscore=0
 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607060070

The CAMSS node uses #address-cells = <2>, #size-cells = <2> and ranges
to act as a bus for child IP blocks such as the JPEG encoder. Add these
properties to the binding so that dtbs_check does not reject them.

Use unevaluatedProperties: false instead of additionalProperties: false
so that child nodes are validated against their own schema (matched by
compatible) without requiring the parent binding to enumerate each child
type explicitly. This is the correct approach for a bus-like container
node and avoids updating the camss binding for every new child device
added in the future.

No functional change.

Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
---
 .../devicetree/bindings/media/qcom,sm8250-camss.yaml   | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml b/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
index a509d4bbcb4a..6008938ee369 100644
--- a/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
+++ b/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
@@ -102,6 +102,14 @@ properties:
       - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller.
       - description: Titan GDSC - Titan ISP Block, Global Distributed Switch Controller.
 
+  "#address-cells":
+    const: 2
+
+  "#size-cells":
+    const: 2
+
+  ranges: true
+
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
 
@@ -317,7 +325,7 @@ required:
   - vdda-phy-supply
   - vdda-pll-supply
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
-- 
2.34.1


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 4698A39AD39
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 07:11:24 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783321891; cv=none; b=cyzqtwmUMPh+iDl2F3XzKIke7ZVLt34+UIGYp06MrxtOZysrSgwlq9fGrZ9noW0M2aAEmgKa4sC6lYNrKIxAE/B1ZtRBErCnLRbNfU3JET48E5jIUYeRIkRmh7OgSBZ5vhkdPflBr0tpmTNAEG5pC4lqMIbiOD1eF7cUp9jyxg8=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783321891; c=relaxed/simple;
	bh=kElZmKKbm5xIpz+kSCtdFiFIH027FUef5BgpVJDoZU8=;
	h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:
	 MIME-Version; b=WbRn0LbHIUAVPshAFC9kRKkHcI/SguRIa/5llPSRJ0+z+jLBKF1+lnCWHexAboDbREX9kNaIGsv/bqeWRqYgV1YRbFxCWzGEpL1iPN6bS43ScRQvrQxRy2SfLOl6po3KA0C/GQitPdKbTyBQ4fsHFIvdOK0buJQ1El3oTM1QX/w=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=O6kIbUFQ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hBLN8GB3; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="O6kIbUFQ";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hBLN8GB3"
Received: from pps.filterd (m0279865.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66641nFH3624728
	for <devicetree@vger.kernel.org>; Mon, 6 Jul 2026 07:11:20 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=qcppdkim1; bh=jwkwWmlhw7+
	/E2DUZ/PK8cNjP86wV3o1KNAvztdcFs0=; b=O6kIbUFQGlaJO8O8sW92QnXpr77
	NLrEYxxT3eNYhhLlti1CvEGeW8bqZbABiDSKqshRRr5HocoI3+ZheEMD9rr0TlXX
	QWTJK+vcyB5tpsntRozmrUKLXkJNFCWUUMVHeHqHXq1+10xokkuoaz+EbzevHhYr
	5d2Bc/cm+JZOXqqHyeXE8AAMg/elf+uB018OJRUM/U6FapKC0O/oj33yXlfKNhlF
	CJNqNET36FXjc4cKzgtj6L0TOpXN2WgfvGXA8kZ03MBGazJ37Vp2E0WGgXPZMk8a
	loVZFuawsflQwEWdCi+At4tK4AcZp6VZ+wjdJS8ZTVw+rqqb3YaR6CRgExA==
Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f6s4sw3cu-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 07:11:19 +0000 (GMT)
Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-92e68cb7a3eso507159885a.2
        for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 00:11:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783321879; x=1783926679; darn=vger.kernel.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=jwkwWmlhw7+/E2DUZ/PK8cNjP86wV3o1KNAvztdcFs0=;
        b=hBLN8GB3P3zva31o51S9WXXFPVQSxCVQR7+yDJcL6Yj74VBliwpHVQ2+FfRVS39Qxw
         5lItD1r6JA93qyXxEEMHI2gogPwv0mCmWzljGyd5co63HFYEwHzEKYqJplw8GAkXTekj
         4FBeH2VRAia+IkjQacqPBFrFXviGM3+TjFdTJKEIzFXvf/EoV6P+qyXeHRyHj30oO7Jv
         DsCQZ41Ka4uUP8fsj+RxahBPtKDLY8Kys1EK3dE2xyXHOjauC1QSASOUBK0vzcMa0dj1
         CBaiAfm+dRQw3vNZfkv/kn7lUH/wQhSAsMKFth9qJEOq6TK/VNxJ/6jSKCCTt0XGKYis
         HiFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783321879; x=1783926679;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to:content-type;
        bh=jwkwWmlhw7+/E2DUZ/PK8cNjP86wV3o1KNAvztdcFs0=;
        b=jFal3BOlVm7JesVs9TPEJ6ezSvvWBm/A/YvjkJmSR7YdVkksUp7uG2doN9eGSnrF0c
         svYI/hRYdgz1UfJT7EB+Q3wxaGxw7rwdvNOCyLD89TpJuIDKnmc/lI2+keIHUxKmhttZ
         qmiWMLCeF5TihXjuZVhLYXOXZAcX1yFJTI6w9Y4ga3qaFNCJqvAWb1ebp8xN2/iI5GxJ
         Cw4jLa4vsbhMBwE6IcK3AXuZ4qi3DvWugFBpv8LOKbTANk7FWT/nN5eNLVuVVf0vHnMc
         Yu6biq6bw75T5ObmwtmBuGVIpK1m1HxF3qKHyrpcf4BK8mBejuBfoJy7hgjpfiynG+s7
         vjiQ==
X-Forwarded-Encrypted: i=1; AHgh+Rq6CW0qT5usCvL4CXq9UdVU9qS9giQrqA6R7LPjSE27Yy2kBd2Rm3mWvn3k7TP3QeZJJP81Qji2pFj0@vger.kernel.org
X-Gm-Message-State: AOJu0Yyua5LRud1FSNfijZxeWkCUtQfOxksArJwL4MsG7pyAHXFBj+LE
	N7eb7VbE1Gf6JWI+XsRmOjJu0PgVDFvFdD2Kt+4aCWzvpaVIv0sLlVw7veZPNZ11PLwutoHejst
	DStfpDXJ8HMeuFM9ATZy5fxmiY3BH8+DC12zEPYWdj8YbRTYFBNzAUfHl4yQEru4W
X-Gm-Gg: AfdE7cmtfnodOaNdmMfkOi7nNffIE6ceQ5Sgm6h6Ed+xov0LQi0o2mvvByoAeSKBgbj
	yEqRi+iynlogoTPK6PIb9BsHXb0RPpTKAJEd3p/utlEFjNwlgn7+rjiwZo0OWkQVNUEiygO7sS1
	0RST43go/4wfnESmSX2X7WYB0MjmTt1P8Wzvb94H/8fu5H6CGTjqrMNwdDOjTbBJmHNJwNmw5n2
	S48CoiYpBdS3kjgfAi4u4NSApLJyzFawFRqxW/Ri6wGCwMumSHebc+WIiGNdmdHzBC2Q6JnXcal
	7oWnd6J5/Fy+ov5dTl4fIqYk9PrhWPY4yjosHGxHOMe59zvTfuJ+YsozVt6QWFwfpD6/fHl1d1N
	BptDVwpfBwLb9rGJUn5MCYljoJhB/PP3ATdk=
X-Received: by 2002:a05:620a:4110:b0:915:9aa5:b5c6 with SMTP id af79cd13be357-92e9a418dc0mr1248768585a.36.1783321878913;
        Mon, 06 Jul 2026 00:11:18 -0700 (PDT)
X-Received: by 2002:a05:620a:4110:b0:915:9aa5:b5c6 with SMTP id af79cd13be357-92e9a418dc0mr1248766085a.36.1783321878516;
        Mon, 06 Jul 2026 00:11:18 -0700 (PDT)
Received: from lin-0772.qualcomm.com ([212.136.9.4])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c12b62f3b40sm674673866b.56.2026.07.06.00.11.17
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Mon, 06 Jul 2026 00:11:17 -0700 (PDT)
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
To: linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>
Subject: [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices via DT
Date: Mon,  6 Jul 2026 10:11:09 +0300
Message-Id: <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA2MDA3MCBTYWx0ZWRfXxUp5zNYNjzlX
 Is7g3PJO/iNXf+g3ML0OxO3xifwd4pxjJZD0SP7CiumVtdxyVRNWi7oFgqr31Xs81J3GgMDhjbz
 tZAIyNV2xnnagbopRlOraFhXynxu7Yg=
X-Proofpoint-ORIG-GUID: wgGDaJgsEEyjsLoky-1M1chEvaNBjA3s
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA2MDA3MCBTYWx0ZWRfX09oDLLmGK2xT
 MBoXtMlE4H+iNmxigNSFV9wzfvh6u8LG/z5WTXCSxF4y8sB35cbftXjKnjfV32VrHSb1520Yr+6
 p2FkG+4w7bXkNJ8qeNaoqZZy3RH/WcCTxHXfRIa4er0talNdKJFAUshXvOgsjQFJYqXm3YgzTOd
 MmJTdOzsahriWQuQ7C4PY1qgfIVyGuJTipwXYtR6pXtuZUtBC4fX8Fm/m2GZHenpXu/JoOlclMn
 3JYNONNwkhSNr/3DLLFo6K8/hrfUMaZ4DRkq4uiuckd0vc7oepWnziVOVfNkry4ytjQZNq02qrN
 Ark/nVWz3BzdRKZqaTQ4Nq3kVLuSVSGdYsGC88sY+PTWEH7DpKwH+cJYbH7lpUSLYGDoExemK6x
 GUmaJ7fhSgkmo6LBCJCK3gkQwkGRE5bErB62gUQaRFD5jashqdgsNPfGMbh50diA2J/yYcV5C5I
 sL3nJeVwi49NeUMDLeA==
X-Proofpoint-GUID: wgGDaJgsEEyjsLoky-1M1chEvaNBjA3s
X-Authority-Analysis: v=2.4 cv=ZfQt8MVA c=1 sm=1 tr=0 ts=6a4b5517 cx=c_pps
 a=50t2pK5VMbmlHzFWWp8p/g==:117 a=dNlqnMcrdpbb+gQrTujlOQ==:17
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=KKAkSRfTAAAA:8
 a=EUspDBNiAAAA:8 a=CvTwmiUEViyTWuGqE5AA:9 a=IoWCM6iH3mJn3m4BftBB:22
 a=cvBusfyB2V15izCimMoJ:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-07-05_02,2026-07-03_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 bulkscore=0 impostorscore=0 adultscore=0 phishscore=0
 priorityscore=1501 clxscore=1015 suspectscore=0 malwarescore=0 spamscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607060070

From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>

Use devm_of_platform_populate() so that child nodes declared under the
CAMSS device tree node (e.g. OPE) are automatically instantiated as
platform devices. This is required now that CAMSS is modelled as a
simple-bus and ISP blocks such as OPE are described as child nodes.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
---
 drivers/media/platform/qcom/camss/camss.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
index 2123f6388e3d..95e655a8b6aa 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c
@@ -16,6 +16,7 @@
 #include <linux/of.h>
 #include <linux/of_device.h>
 #include <linux/of_graph.h>
+#include <linux/of_platform.h>
 #include <linux/pm_runtime.h>
 #include <linux/pm_domain.h>
 #include <linux/slab.h>
@@ -5362,6 +5363,8 @@ static int camss_probe(struct platform_device *pdev)
 	if (!camss)
 		return -ENOMEM;
 
+	devm_of_platform_populate(dev);
+
 	camss->res = of_device_get_match_data(dev);
 
 	atomic_set(&camss->ref_count, 0);
-- 
2.34.1


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 93A0830F94B
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 07:11:25 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783321893; cv=none; b=reP8WQrj7mM440QJHIl0d3vS3btO2d+ZvWd496eza6vdhcKIs1mUwWabUhborm6JFHIhgdg/kuzQLvHc6QR4sbNixGV6vkAz+IblUYJgfX45eoaeiCrY6INormjD47aa75h50Ylpf/nSnAPklgKjqYsw1soRBJ7Jew3WoBqcLyw=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783321893; c=relaxed/simple;
	bh=Knxq4D5423UKAR3wkX3Via9xM0R1jLHouZ/zCcPtUQE=;
	h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:
	 MIME-Version; b=TezZGLSsPZNqS7AYGUe/tENCLtMsc56HcffgyphniHfXra6SzulOc+S2MTxFQGpQSkYZ99JFIeywezZBWlku3y/hjpo/9kvQfuYHXFRP8JNRUFIDpUICe4L4t/3PJQqqWVmKIqZJncJ8gS24j92mP0dkVoYBO0lpGXATQYjG6uA=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=eb8jbxDO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=O0d41f/I; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="eb8jbxDO";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="O0d41f/I"
Received: from pps.filterd (m0279869.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66641SS43616885
	for <devicetree@vger.kernel.org>; Mon, 6 Jul 2026 07:11:24 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=qcppdkim1; bh=CYG3iRypWTg
	hSWVq3cEnooEpodS3fjJadhGEx2ayCCA=; b=eb8jbxDOvLnt5Io2NkMS0BKWATF
	KdeSaX8cOXfQaduCNy2MjEAuMYrwI2Ilh43mdye4rmH/RBVBUmfvcPq7s7KJMECB
	U6Aj0EB6jjJmYjIrfyl1pBjZPw8vpuWRSY7rlN51mSXqBBPvobRDKzvixAhJw+i8
	+y4dzrd/4P/JVIIjhD387Rjoiaj6D2iPzbnp1/nnFQ2Fdzk2ZaJyiYO/Awytfxla
	ByB60TohccRc3wzv0933Vg6PxgoI1xw2fTRXFxQDbg0zWk3my3K2DsTQFtvs7nB1
	PVVhgHj00gXPmMCCblGLu3d2TICpCUwDoDBdkjgWP1jy5NxQh4qgaTrrbRw==
Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f6s64n3dy-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 07:11:23 +0000 (GMT)
Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-8ee2847cbd4so31444856d6.3
        for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 00:11:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783321883; x=1783926683; darn=vger.kernel.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CYG3iRypWTghSWVq3cEnooEpodS3fjJadhGEx2ayCCA=;
        b=O0d41f/IXQsdvTNK4lfl0/ya4uDz8yH4qkVqUgKUl4CgR9z4yFv+YJHubWw0e4GJmt
         XCFahEJ+Y0EJtZ0xgRL+VAx2ZqpgTRRipVYoNWGTnlO6pbUfUjUSWOhY7t6pLxl0g17Y
         uTOS9HsW2JMCkLGjXJT0Uo5XcfiazsHal6FNtZyi68FzO+21aHnH88bDlg05BaDmQZAm
         i4k6bMvuaP7PsOoG2Q6yE8BLrx/mc+0D+QXvF2qzUsRGGg5BNxwvHeeL3l8J6915xI4d
         V04zfIfoMVO5RCRoA0iHc8JjvTeqwXDAYlMTxlGty+tlHzYMhkEygX/2FM5RM8Jq0gEA
         6Zzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783321883; x=1783926683;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=CYG3iRypWTghSWVq3cEnooEpodS3fjJadhGEx2ayCCA=;
        b=ljW6SuIrqDMMm++gp28JQbgNkLPoxYgSx4qKOLQ3jCZX1hp7kf4rv4R3CklwbdxXI0
         N9Pprfh7bYVuU+YN68dFGw8NmstCNAnYizwthosCsZ0hyg+8wA47XePtViydnRXZY+Ai
         jS0Yy9h1Yei53z0RmMxgP8WwGal6gDhP409npc7y5mDjKWn7wovbXNIEFr4qm0t+ux8V
         EOMdSW7hoJBXWo/04Ozfj6jz95LWKIP7Ayvs3UYD/d0GA/Tb5RtoS4fg5uKRdx31owVy
         +bxbNBQTbCpI+fdF4R6yT/f54/+05W2LQXPSyUwkwVQ3hQX/IqDPY+VN3ovu+yJ6cMl2
         qa8Q==
X-Forwarded-Encrypted: i=1; AHgh+Rq0l/revYcX2GTBgtZtD9kl6O5UQSYZ/gpAR9uHHpnIzhbYBRR8UDPTLUHqHA6VtRehDWFI2Z6zul8k@vger.kernel.org
X-Gm-Message-State: AOJu0YzdOcZWxGhWh611GKNty/5SmQIq2z+76XNeQsVccuqiS0g5vo+h
	ZtUpS4y9iB4AAOweyAK2Z7YWHV7uUW9drpdwxL8WiPpXsWbGNR6gPn0QJ+RgDtps+A2iBgzvd17
	N+zCriYaW98gPYWRp2BT1po/CKyFsNDXKeaRHn7Up0h823p2/MUM5jeNBRckiNDxfQzTFTMAdB+
	8=
X-Gm-Gg: AfdE7cmDruLeTlk9eO8liIVBThVF5QPMyNR334I3VYVbqwD38NV063wg6r7yWMsanlw
	GwINEUv6Ne3lyW7b6CjlLKEZjMmaMVcXFVjQ1ew2FB2q0XMSD0SwWLHUQhTP+FReIph9yphTALb
	kIH+MgQwIDtNUWaFuWWBT5M6EcP8ngGQe+sRsh/qn88uQSBVHHj/HRc0gu9h2zZvMRXLO3pT96A
	ZWgtqpTgxe1xNsCPfH3UUTaRZwXnnW6jipav8J6HQXlxky2rnq+3V9IE+IhwIwoI+kyxIpiexp5
	iwlCwppvnNJ3CivrhGr7WEnskWkCpcN0sYl0LPfR+AtAQpCraKUCmP2QsIRJOKqsw6Pw/Bb5W1w
	macojg7xz6ZvmPbrzgKSmN89jz+DyguqjEA0=
X-Received: by 2002:a05:620a:6888:b0:92e:74a5:c70a with SMTP id af79cd13be357-92e9a4172f3mr1241901985a.33.1783321882772;
        Mon, 06 Jul 2026 00:11:22 -0700 (PDT)
X-Received: by 2002:a05:620a:6888:b0:92e:74a5:c70a with SMTP id af79cd13be357-92e9a4172f3mr1241899185a.33.1783321882344;
        Mon, 06 Jul 2026 00:11:22 -0700 (PDT)
Received: from lin-0772.qualcomm.com ([212.136.9.4])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c12b62f3b40sm674673866b.56.2026.07.06.00.11.20
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Mon, 06 Jul 2026 00:11:21 -0700 (PDT)
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
To: linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>
Subject: [PATCH v4 3/5] dt-bindings: media: qcom: Add JPEG encoder binding
Date: Mon,  6 Jul 2026 10:11:11 +0300
Message-Id: <20260706071113.383215-4-atanas.filipov@oss.qualcomm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA2MDA3MCBTYWx0ZWRfX2zCJ+QG1KRkS
 GKjW73NoAGQyCCfnmgXFlfWWgf+blyxjcLsEtZpbIp5bTB/jXx2k8YwJISf3xE3bVi1cIGTjXCm
 05wkzDfLQSijbwWWwLc8Yq1w0XpCJhGb8aX6tR4DTXSxZzblhvlckaVMSrI/0S0r4tRKq9UuREu
 lLRf43AnXyiDqRZvJ54jRWmqnfmBPDs2bVEfEWnvFFlaGdvylDrojsVZ9+sdOBg6hAgSM34XowH
 rej/fkJwgt/QDHYM08TMxfu+GW+J1h08JM3y8fNfE7YQXZ/5eKuQlkCEKnKBGTrWINnUfA+gYea
 ZlTnlLHVimuKcEEHbXlxsu80X1PqfnOX0Ji4m6KAcIZWkXMh62fsyovyE1V3hp9tBRxHEk6gDeC
 PhL5YIXGJw9dKn+EkNDL3wKy2c6GVlGY1tKZQwlMoGPYrBQfkjI8cZlkR1K4SV3QrNMKSEgd5pD
 50AV6AzvjxT7LjeKEpg==
X-Authority-Analysis: v=2.4 cv=VvITxe2n c=1 sm=1 tr=0 ts=6a4b551b cx=c_pps
 a=wEM5vcRIz55oU/E2lInRtA==:117 a=dNlqnMcrdpbb+gQrTujlOQ==:17
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=gEfo2CItAAAA:8
 a=EUspDBNiAAAA:8 a=2iIih-OIPD95PTVVQyMA:9 a=OIgjcC2v60KrkQgK7BGD:22
 a=sptkURWiP4Gy88Gu7hUp:22
X-Proofpoint-ORIG-GUID: HPpItpHoHnHZMven4QwOXgrDyawLaAht
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA2MDA3MCBTYWx0ZWRfX9kLT1uzJtXHE
 +umLydHn4/ADkBXyY6J/3dlei0xMJN7bMnFtLDiApDFsRCdMySQZvKK4JtRh/WD3Y3sKNgOMmaG
 xY0kWAwuUMGgla4i36g7j3017WI/X5k=
X-Proofpoint-GUID: HPpItpHoHnHZMven4QwOXgrDyawLaAht
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-07-05_02,2026-07-03_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 malwarescore=0 spamscore=0 suspectscore=0 bulkscore=0 adultscore=0
 priorityscore=1501 lowpriorityscore=0 phishscore=0 clxscore=1015
 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000
 definitions=main-2607060070

Add device-tree binding for the Qualcomm JPEG encoder hardware block
present in SM8250 (Kona) SoCs.

The JPEG encoder is a standalone hardware IP within the camera subsystem
that performs JPEG compression in memory-to-memory fashion.  It is
separate from the CAMSS ISP pipeline and has its own register space,
interrupt, clocks, power domain, IOMMU streams, and interconnect paths.

Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
---
 .../bindings/media/qcom,jpeg-encoder.yaml     | 151 ++++++++++++++++++
 1 file changed, 151 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml

diff --git a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
new file mode 100644
index 000000000000..e4c16388ef07
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
@@ -0,0 +1,151 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/qcom,jpeg-encoder.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm JPEG Encoder
+
+maintainers:
+  - Atanas Filipov <atanas.filipov@oss.qualcomm.com>
+
+description:
+  Qualcomm JPEG Encoder is the JPEG encode hardware present in Qualcomm SoCs.
+
+properties:
+  compatible:
+    enum:
+      - qcom,sm8250-jenc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 6
+
+  clock-names:
+    items:
+      - const: hf_axi
+      - const: sf_axi
+      - const: core_ahb
+      - const: cpas_ahb
+      - const: cnoc_axi
+      - const: jpeg
+
+  interconnects:
+    maxItems: 3
+
+  interconnect-names:
+    items:
+      - const: cpu-cfg
+      - const: hf-mnoc
+      - const: sf-mnoc
+
+  iommus:
+    maxItems: 1
+
+  operating-points-v2: true
+
+  opp-table:
+    type: object
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+  - interconnects
+  - interconnect-names
+  - iommus
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,camcc-sm8250.h>
+    #include <dt-bindings/clock/qcom,gcc-sm8250.h>
+    #include <dt-bindings/interconnect/qcom,icc.h>
+    #include <dt-bindings/interconnect/qcom,sm8250.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    jpeg-encoder@ac53000 {
+        compatible = "qcom,sm8250-jenc";
+        reg = <0xac53000 0x1000>;
+
+        interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
+
+        clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
+                 <&gcc GCC_CAMERA_SF_AXI_CLK>,
+                 <&camcc CAM_CC_CORE_AHB_CLK>,
+                 <&camcc CAM_CC_CPAS_AHB_CLK>,
+                 <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                 <&camcc CAM_CC_JPEG_CLK>;
+        clock-names = "hf_axi",
+                      "sf_axi",
+                      "core_ahb",
+                      "cpas_ahb",
+                      "cnoc_axi",
+                      "jpeg";
+
+        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
+                         &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
+                        <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
+                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>,
+                        <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ALWAYS
+                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>;
+        interconnect-names = "cpu-cfg",
+                             "hf-mnoc",
+                             "sf-mnoc";
+
+        iommus = <&apps_smmu 0x2040 0x400>;
+
+        operating-points-v2 = <&jpeg_opp_table>;
+
+        jpeg_opp_table: opp-table {
+            compatible = "operating-points-v2";
+
+            opp-100000000 {
+                opp-hz = /bits/ 64 <400000000>,
+                         /bits/ 64 <100000000>;
+                opp-peak-kBps = <76800 104166 104166>;
+                opp-avg-kBps = <38400 33569 33569>;
+                required-opps = <&rpmhpd_opp_min_svs>;
+            };
+
+            opp-200000000 {
+                opp-hz = /bits/ 64 <400000000>,
+                         /bits/ 64 <200000000>;
+                opp-peak-kBps = <76800 208333 208333>;
+                opp-avg-kBps = <38400 67138 67138>;
+                required-opps = <&rpmhpd_opp_low_svs>;
+            };
+
+            opp-400000000 {
+                opp-hz = /bits/ 64 <400000000>,
+                         /bits/ 64 <400000000>;
+                opp-peak-kBps = <76800 416666 416666>;
+                opp-avg-kBps = <38400 134277 134277>;
+                required-opps = <&rpmhpd_opp_svs>;
+            };
+
+            opp-480000000 {
+                opp-hz = /bits/ 64 <400000000>,
+                         /bits/ 64 <480000000>;
+                opp-peak-kBps = <76800 500000 500000>;
+                opp-avg-kBps = <38400 161132 161132>;
+                required-opps = <&rpmhpd_opp_svs_l1>;
+            };
+
+            opp-600000000 {
+                opp-hz = /bits/ 64 <400000000>,
+                         /bits/ 64 <600000000>;
+                opp-peak-kBps = <76800 625000 625000>;
+                opp-avg-kBps = <38400 201416 201416>;
+                required-opps = <&rpmhpd_opp_nom>;
+            };
+        };
+    };
-- 
2.34.1


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 96AA03E557A
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 07:11:32 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783321898; cv=none; b=D8RSxKDWNnT+JrcHT4hR16RYk3lkWiskmSj8AFEhv5GkWIL3joy5eIkIKY+ivbCUCnXXudbyl38RQTAlfdApHJzjDmj8430Zo+sIGAZhCEb1wofBo9TESWvABh/6Ytk5Zys7ca5owl8A9Bxo6qP2qdZl1G6BBRUiN7Hi1JCFfnA=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783321898; c=relaxed/simple;
	bh=TOQJxNULiklYva5GtZvPg2vR0ieetZoPJmde1SseNns=;
	h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:
	 MIME-Version; b=apMdliZr6LyxOv5DyFqu6RSO65/8tFserEiS5QNzMr6uOvB3aqxldY72tsdJ7MIWqGA7DSe+0xaDW6nK7GzKP3wVrH0N1/enKifvP0reT7kKGNm3S0pZG5S/rwwv3s7sI8Q7yGeoUKifkPmxrPX3gv6IBsEy1g9kc3B8yFXqsJs=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=hlq8kI0h; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cLBjVKVB; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="hlq8kI0h";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cLBjVKVB"
Received: from pps.filterd (m0279865.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66641js13624558
	for <devicetree@vger.kernel.org>; Mon, 6 Jul 2026 07:11:26 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=qcppdkim1; bh=STeIGRcFLrK
	xSeTilY6t4degzcf5r4/MkwEugpmVYMI=; b=hlq8kI0hP8x7GBUXObcjV4k17PW
	hiJ7ePBh8hfcRCX01r1fz5UkzMMzUbEVfRmNcMNDx0WUnQZUJvKXHXEpQad0LUmX
	UuODIDldJXFxvRtCnKGxVn4L+z7W5wemI/KuYU3u15Elt5I6ALwrtfs0TEaG7fUp
	x1TuH+wLlMGCSvpPjnGUBIW0RNEELiA+kLPVl+suQ9dl7Kucu1Pmwea9a04DzDER
	T2TfB42Pkfw327GEgdXUDJEaRt9Oe+xDNqTTCVrDjDM2MNNZnmsuNtdCgWqBJwP/
	ipzXfFNr+Teeqbc7VCYtv1yVwVzyId98IGSYixTknx7VNUuuYh5N5lD8YrQ==
Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f6s4sw3d9-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 07:11:26 +0000 (GMT)
Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-92e6ed4fe99so461624785a.0
        for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 00:11:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783321885; x=1783926685; darn=vger.kernel.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=STeIGRcFLrKxSeTilY6t4degzcf5r4/MkwEugpmVYMI=;
        b=cLBjVKVBUSyLIOSnvzMnLD6yOW3Rc7NXOHlH8EdfqEl9VwJyODDytZJmV9WDUhOho8
         kyySCgowuQGlXPoexFSKKYvsBckk+4L3C/TBIYu1537QW0MnRzAsMAhUgBcOnec+DBO3
         wLTFD1J0Qj/m4hcz1QXK7MYDfXpPx1QX8g+xKCDtphuwdekLF+QfGA9XPY7jSu5Ewz3I
         VtEx4Cl6Qc31m2yElnNp2wtJU8Pg0zeFtPsA+BIfaoH2sHDPuj9e/68bondOi9r/ZpKe
         GcNyyfP2y0rK5JD0d1bZEMkeCKQkU+ppgqTatFrJ72pImqRPeppsl24CKLK7u1sO+WYs
         MN4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783321885; x=1783926685;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to:content-type;
        bh=STeIGRcFLrKxSeTilY6t4degzcf5r4/MkwEugpmVYMI=;
        b=qOEV1nBADxiV4tzAmkcO9PZG/j9cha5tC4Aw60y70JVZZ7SZ33eMjseNngJzUbVz7Y
         pbn+VYwfqIdLe0RVdiDNZfUAtcUKrMWDZ5V5TPjT8Z8WBc4IqWrJobi9wO/8mAxkWAMK
         LjdRaq7RE+usJIglMcEIhE8pBlI23MsL+N1MULSWmGkzuIi7Dk5hkcNZHYQRLCj7frD2
         4rUktGOzQR5N+tCz06tBJPBaQdxZHBJAWb6My87CM4wOPoXvhILyWVbfP+qPJbmldh7Z
         gMWSKwL2qGu2rxzTguwrvbIKSNnsJJD4EHXKrLAyWMLvtZHQ9geZtoOYwHgEDlqSNqQy
         7Jlw==
X-Forwarded-Encrypted: i=1; AHgh+Rpp99xxG6O5+rR68ikicYW3noTuZz+mz9my5Aeax9izw6kyMhHeWyHs1INrDV+zNCGJQiYpR7CQmIOW@vger.kernel.org
X-Gm-Message-State: AOJu0Yw1VNI1A2xTH7VRLzzhKCaz8cl6Ot62dXywEDgFlLZm4msqO9Od
	Sks1uxIlIZPYFksT6Uj4tbtqZ5QdoZ2kf2DrWGsdfAi30qVm47/sxAve7+rJzaob36JKLHS66Fh
	/2WJdBAIqmhQ8PLYusLqbhVfMUOymJQEzCUnzzVDfSwzWmTxHBch1lzTb/uwNk5Hl
X-Gm-Gg: AfdE7clVSvwD7ieIrg7Zl/cOKIs7mtuHzJcBza5TV/m+lxXMj/DnVuqIqYZYHy2rtJs
	bGGlgp0rjm0exuHiQZbS+Ydrh92Vj4bZlAClkgqNGlMzGvqWiWO472WuDYvXn5jYbigMEl86DWE
	3UtXm6S6OV1qS36VuKGxfZLzFzSlJb9F5IvF4Xopo5z/un4sqHyzoeLuCMfnyMGrxmrYLLtwF4q
	x8/sHTTRrafWkvw/uyzggh82cYISuZIpbo5Mh0RRcE1StwXt6IChQ23ejsI3AmPfUCgRSMu4ZEJ
	sgiIauacA04kJz95Y6jXN9PbA08RBz71ODoQ5HOdyxLIB323mZpn6QzHHbZ8hGqNNa/YAfjl0eG
	yWUKT3uyOpyDETMYkpR/n6P6VBaOT9zpMXKU=
X-Received: by 2002:a05:620a:4503:b0:910:87f4:9a26 with SMTP id af79cd13be357-92e9a419085mr1274121885a.41.1783321885171;
        Mon, 06 Jul 2026 00:11:25 -0700 (PDT)
X-Received: by 2002:a05:620a:4503:b0:910:87f4:9a26 with SMTP id af79cd13be357-92e9a419085mr1274118785a.41.1783321884602;
        Mon, 06 Jul 2026 00:11:24 -0700 (PDT)
Received: from lin-0772.qualcomm.com ([212.136.9.4])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c12b62f3b40sm674673866b.56.2026.07.06.00.11.22
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Mon, 06 Jul 2026 00:11:23 -0700 (PDT)
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
To: linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>
Subject: [PATCH v4 4/5] arm64: dts: qcom: sm8250: Add JPEG encoder node
Date: Mon,  6 Jul 2026 10:11:12 +0300
Message-Id: <20260706071113.383215-5-atanas.filipov@oss.qualcomm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA2MDA3MCBTYWx0ZWRfXw/9705lCibck
 JQb+JxPP68hwOXP9gKkaewr6PkyPzs7OVzf0oQI/g8V6/CTkUFNOxJcBGRML77nrCwRstKPnXew
 v5zPQhfWCoRBKgyj0x26nCxfWX3P4xE=
X-Proofpoint-ORIG-GUID: 2oA_GeAXxswl2raT6QA-ACaUaaPO13nj
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA2MDA3MCBTYWx0ZWRfX1Yr1mKyCi54b
 ojnAw5y0alfyKSvfeeFzIV6jIMIxXhkuxOvA2VY+B9IfaXy2KcNUycKGv0FnE4tFw81+yM0zSqW
 rGkbQrOAYTQc4ZmXZSHOBvYpUd9A2jBr1ABY2CwwLaxiJA7wew30MDdX7bHwxWYGnjcyMkdLOmN
 LetXPLn46SI/nSLSGbB5YP43U0XGprxCn0N9Vucb9n8jqbvRZW+XRKjbRMhuf12eBOVr22j6u7C
 C+YT+xN5GnmR9pMWN5qYREYvx5AfKD6VADorC/w0/adJiM7KMHimEZIiE9QI2YTTfSKq94fPFLC
 D49fK4JylkODgmwupB4N7u6eQvzji1Kq8+7JJ5/f3R7lTjtGfocPNohOpl25oodPv/4fJusKatT
 giejVVoCFgEyj93o1BKB+htlPVk23L5d3hfgkDE5/3j5TRuOPPIPlMCkfIcq4+70jZAD0YExxeR
 aiVkHf4RPtPnuAPm3+Q==
X-Proofpoint-GUID: 2oA_GeAXxswl2raT6QA-ACaUaaPO13nj
X-Authority-Analysis: v=2.4 cv=ZfQt8MVA c=1 sm=1 tr=0 ts=6a4b551e cx=c_pps
 a=qKBjSQ1v91RyAK45QCPf5w==:117 a=dNlqnMcrdpbb+gQrTujlOQ==:17
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8
 a=iYwodULRRiReAau0VbEA:9 a=NFOGd7dJGGMPyQGDc5-O:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-07-05_02,2026-07-03_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 bulkscore=0 impostorscore=0 adultscore=0 phishscore=0
 priorityscore=1501 clxscore=1015 suspectscore=0 malwarescore=0 spamscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607060070

Add the JPEG encoder hardware node to the SM8250 device tree so the
qcom-jpeg V4L2 encoder driver can bind and operate on this platform.

Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8250.dtsi | 81 ++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index 7076720413ab..a089b706f60c 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -12,6 +12,7 @@
 #include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interconnect/qcom,osm-l3.h>
+#include <dt-bindings/interconnect/qcom,icc.h>
 #include <dt-bindings/interconnect/qcom,sm8250.h>
 #include <dt-bindings/mailbox/qcom-ipcc.h>
 #include <dt-bindings/phy/phy-qcom-qmp.h>
@@ -4471,6 +4472,10 @@ cci1_i2c1: i2c-bus@1 {
 
 		camss: camss@ac6a000 {
 			compatible = "qcom,sm8250-camss";
+			#address-cells = <2>;
+			#size-cells = <2>;
+			ranges;
+
 			status = "disabled";
 
 			reg = <0 0x0ac6a000 0 0x2000>,
@@ -4649,6 +4654,82 @@ port@5 {
 					reg = <5>;
 				};
 			};
+
+			jpeg-encoder@ac53000 {
+				compatible = "qcom,sm8250-jenc";
+
+				reg = <0 0x0ac53000 0 0x1000>;
+
+				interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
+
+				clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
+					 <&gcc GCC_CAMERA_SF_AXI_CLK>,
+					 <&camcc CAM_CC_CORE_AHB_CLK>,
+					 <&camcc CAM_CC_CPAS_AHB_CLK>,
+					 <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+					 <&camcc CAM_CC_JPEG_CLK>;
+
+				clock-names = "hf_axi",
+					      "sf_axi",
+					      "core_ahb",
+					      "cpas_ahb",
+					      "cnoc_axi",
+					      "jpeg";
+
+				interconnects = <&gem_noc MASTER_AMPSS_M0
+						 QCOM_ICC_TAG_ACTIVE_ONLY
+						 &config_noc SLAVE_CAMERA_CFG
+						 QCOM_ICC_TAG_ACTIVE_ONLY>,
+						<&mmss_noc MASTER_CAMNOC_HF
+						 QCOM_ICC_TAG_ALWAYS
+						 &mc_virt SLAVE_EBI_CH0
+						 QCOM_ICC_TAG_ALWAYS>,
+						<&mmss_noc MASTER_CAMNOC_SF
+						 QCOM_ICC_TAG_ALWAYS
+						 &mc_virt SLAVE_EBI_CH0
+						 QCOM_ICC_TAG_ALWAYS>;
+				interconnect-names = "cpu-cfg",
+						     "hf-mnoc",
+						     "sf-mnoc";
+
+				iommus = <&apps_smmu 0x2040 0x400>;
+
+				operating-points-v2 = <&jpeg_opp_table>;
+
+				jpeg_opp_table: opp-table {
+					compatible = "operating-points-v2";
+
+					opp-100000000 {
+						opp-hz = /bits/ 64 <400000000>,
+							 /bits/ 64 <100000000>;
+						required-opps = <&rpmhpd_opp_min_svs>;
+					};
+
+					opp-200000000 {
+						opp-hz = /bits/ 64 <400000000>,
+							 /bits/ 64 <200000000>;
+						required-opps = <&rpmhpd_opp_low_svs>;
+					};
+
+					opp-400000000 {
+						opp-hz = /bits/ 64 <400000000>,
+							 /bits/ 64 <400000000>;
+						required-opps = <&rpmhpd_opp_svs>;
+					};
+
+					opp-480000000 {
+						opp-hz = /bits/ 64 <400000000>,
+							 /bits/ 64 <480000000>;
+						required-opps = <&rpmhpd_opp_svs_l1>;
+					};
+
+					opp-600000000 {
+						opp-hz = /bits/ 64 <400000000>,
+							 /bits/ 64 <600000000>;
+						required-opps = <&rpmhpd_opp_nom>;
+					};
+				};
+			};
 		};
 
 		camcc: clock-controller@ad00000 {
-- 
2.34.1


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 CDCB13AFB1A
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 07:11:31 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783321899; cv=none; b=o1W/Ee6dCaPOkoHLjXuWgJ63XcrkSFK/o+ia7ns9K+72+R8uqiryFO9PC+oOCEI2AYMsDM7ulj0EIH6zphXk8q3frP75i+e/VWC8pzDO4KSfzz9UtZSDGrG1HXNO32vYhJBgisaAktHcUqCbQ/ujPsat4yk2RaWnoPQGRc/zvO0=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783321899; c=relaxed/simple;
	bh=r1jwcyxr5Dt3ECzt6tKAgLMIjDYT8uuPD5cATFscYPc=;
	h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=ZHoTIcJqKmDIt5jfabx2oQKbGwwt4po0pt7b4vzK1FftOGZpB4vwq3GAzJIK4IZS0Z/GA9zBgpT/HibFfSa7/s7s012FEp19f98uucTPhH25juJC15gbO7W4RhL8CeeLCg8uyGYtTAxg88UxOYeF7MBdq2+wM6zp0CiOwVGxkM0=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=oW2GRq2I; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=DRjjCKjZ; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="oW2GRq2I";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="DRjjCKjZ"
Received: from pps.filterd (m0279864.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66641drc3402319
	for <devicetree@vger.kernel.org>; Mon, 6 Jul 2026 07:11:26 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=qcppdkim1; bh=J74KsC5QU9N7JkW3KRj+XSHfFO4dRMv8Liw
	gGdvHfPE=; b=oW2GRq2IzvD72W577JBoe17OxOKTr5esnC58wwGNV02DZaUZ1Sj
	II5a4WYriE/McnSS1+jcIHvXyy1O+C36UZtx1qDEiKBvJMHUhs5PnzPnfqYhXnks
	xRP+lDevqwoCbVVI5Eghz7c10ykXTGnBiuW7VVvQG3nccT32S/7e9/09wQR0yI+n
	5ScV9a9s3+oSEddgKMr4aRm44BqM77YWMNdlfNEgpbtmqGjvon/AYWrYgXxvgW4t
	BwrSMX56/b8bx4PMMOEMqmhssNT0tQcO3QIOmY/ERUc8PhaRSyXo1EexrhQqESov
	qOKkYmBOeDZj/Q82k3D0DAgTr8p1N0LxNuQ==
Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f6ubgmtb3-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 07:11:22 +0000 (GMT)
Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-92158791d14so252086485a.2
        for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 00:11:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783321877; x=1783926677; darn=vger.kernel.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to:content-type;
        bh=J74KsC5QU9N7JkW3KRj+XSHfFO4dRMv8LiwgGdvHfPE=;
        b=DRjjCKjZBe4yeV1ubryyfWtwhRD2a7o8lO0S85IIbZzF5q26jPOpBBF+mWQisWias5
         MiW6P7f5Nkf0jDCpTRJ/z0u/edI/G+DrEMjuCeIQQzUAEqd/bUV5L2Mk8O/vOblemxNg
         HLFvnjmHPH64H8if1ndsNCiyjjJp5O/BLEAim9ZxQfbJNlGbRzWO92wf7OoirEjvBIDr
         9qu62BZKUidi9ZQEOnj71/eX1n+5/THXe+imX3G8sEVaTTSJXCZzb89NPiRTII8RqAer
         vAGoh8P2TFvQiJPzbD1OPFYXAzmOTGnuArSUHrGaaxwxE1ppKbDykG5JUBtKgIYmDnIo
         t1wQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783321877; x=1783926677;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=J74KsC5QU9N7JkW3KRj+XSHfFO4dRMv8LiwgGdvHfPE=;
        b=Wed3IqC9df+LXbDKC8KgWjC5RcPRtU5DIpakUJ4u0FHBiagrkd4OQGYLACnm3bOKR9
         Rfqv1bg/FLRmDrHhQ3ee0cKeeIE3w5YlYVeQtOhO1fAaGeIt2xnGHT2yx2gELF/tnBom
         F1M2wTVe9XPiAtUYZYHdoFax2mAFtW8Vtv+/xgOHSEKPIoYMyzDe1sn3aw7a3FFOIN7h
         Jb19miA6wZXUjTfTN1f4WxeMFpT2tCWr8Kesk71rA6r561RBFNQcf4hbKU0IZsn64A2i
         SueyHKeyVck36PpZHUxzdrUDea7q4M/xBFhvtrg+6qNB77SNXdJVPTi0lIVX8+OTIEWZ
         chgQ==
X-Forwarded-Encrypted: i=1; AHgh+RqPP7k3gulsDzvLZB1s1hoj9EaCemkEP2X2cufsklAAkVdbDq7W6UO2uRux3O1N8kqhzFpqnqkqY/hk@vger.kernel.org
X-Gm-Message-State: AOJu0Yz2lV9n8h0mGdqNzuFzdxdULXkilYeh/uknB+gyZ4CClxE4XqI6
	uXORec4LdwvNgJDhPn+GidoF+f7mB4Lfq1K1ZC/8YWvdYh5Ubgll4vPJLkiloId8vIAUbHEp67K
	bH7sgd853sj7h7jkpTv1IwQH64ztDo/F4tpKFJafWpxekG0wUmOvJmaE/OVlFLjYK
X-Gm-Gg: AfdE7clxTR7X4FxLG4cJRI9Jyaa+cLB6AL7ZI07d21dzZ0PR1pXS7Fo6Oy6sC0QeiAl
	VoN6avO5JwiG9dkvCIneTchMl+3I7HmxlL/N7U8aGeNoye+naBLXnheVSVkTqkR0nxMCPDx4DiL
	JV+APKxTfn+v1DxsA5pRVhFTR42Ejv2fwTI53qBmPtO+ppmf0ti5qvManu7Fp1weQiED5Hk8Qlb
	XTTH0odMLeuhdB0m0ZSjOkOo09DxkDGhFyPgO2bBSyT5LN2qeqmm2wTDnJmun4vuStSm1wxe54n
	CyAeqoh5k92UPeWXWSoZfT4JxmWxZ/9AIGbdQ2gTRQ+Fz1kROHsvqOmOxBewqI6S7Fwyn87J1aO
	iR4zB5kloubDcit2m8J+ilF4RcrSljPc3Atg=
X-Received: by 2002:a05:620a:28c6:b0:92b:7420:bd7b with SMTP id af79cd13be357-92e9a529a23mr1371422385a.66.1783321877294;
        Mon, 06 Jul 2026 00:11:17 -0700 (PDT)
X-Received: by 2002:a05:620a:28c6:b0:92b:7420:bd7b with SMTP id af79cd13be357-92e9a529a23mr1371419385a.66.1783321876806;
        Mon, 06 Jul 2026 00:11:16 -0700 (PDT)
Received: from lin-0772.qualcomm.com ([212.136.9.4])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c12b62f3b40sm674673866b.56.2026.07.06.00.11.14
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Mon, 06 Jul 2026 00:11:15 -0700 (PDT)
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
To: linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>
Subject: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
Date: Mon,  6 Jul 2026 10:11:08 +0300
Message-Id: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
X-Mailer: git-send-email 2.34.1
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA2MDA3MCBTYWx0ZWRfX8ybWMz/HjKT7
 j9ZhTm87XdbLANQpCsO62CUAnxEQMK2z5Cz6H3hMxKXwpQh0dupZtnltjNgmWRjeocPpXZ7IwTV
 Pn9/jzZKyWQTEQC/RWLEdt9eBFQgUVc=
X-Proofpoint-ORIG-GUID: IonuqX_f3HsJuJnFYMCgoRVvwMgKX5MX
X-Proofpoint-GUID: IonuqX_f3HsJuJnFYMCgoRVvwMgKX5MX
X-Authority-Analysis: v=2.4 cv=FJwrAeos c=1 sm=1 tr=0 ts=6a4b551a cx=c_pps
 a=qKBjSQ1v91RyAK45QCPf5w==:117 a=dNlqnMcrdpbb+gQrTujlOQ==:17
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=xq3W2uTSAAAA:8
 a=KKAkSRfTAAAA:8 a=fvEfv-lMOMBzJYUFIVYA:9 a=NFOGd7dJGGMPyQGDc5-O:22
 a=P5L7wpMTXyg1GfFA3Gwx:22 a=cvBusfyB2V15izCimMoJ:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA2MDA3MCBTYWx0ZWRfX9D1bt7uxNlkp
 nH8esN2zWKzpaDI5vnx8Eh5vD88Yri+akzDUem+bHt9pcWKqQ5f+8IYbbMghee2B9Ga3/hkHE3W
 3BcwLTblqM8w3lEt3HENNmJooFU7u9QLeecoUStMImRj/AG6BxPPdbbF0HJFZPIsnmiXQ8crCzB
 eiQBNwReS7XDhp7nx3uMRJuVTn5keFGHQDLgeCIj7/H9x7ppA4oCcUh6y43//LyRmp1puZXww5j
 L/dDxzahauI9yoIvgfBo+PmcFxCkzQbAzgy4G71R1MCloYC87a1pOl199hCgPgYvH4ioetqvHlD
 lpZpwfxUlqGAbtdxHQOEYu6R02T1991r/HudP74fzTNcpLEu9V3jz9b6bYEUmu+WrvcGNX3wwWN
 m0Bz4z3ebuA3HorhMjTznET6YN/PVf3G2+EyN6ew1X6bqU1iuf8dWLEr7AHLrtHOSjICTos9KYq
 bPhs5vSdTTafCa0XdkQ==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-07-05_02,2026-07-03_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 impostorscore=0 adultscore=0 priorityscore=1501 bulkscore=0 suspectscore=0
 lowpriorityscore=0 clxscore=1015 spamscore=0 malwarescore=0 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607060070

This series adds support for the Qualcomm JPEG V4L2 mem2mem encoder on SM8250.

The goal is to upstream a standards-based JPEG encode path using the V4L2 M2M
framework, with DT-described hardware resources and SoC DTS integration.

The JPEG encoder is part of the Camera SubSystem (CAMSS) and is described as a
child node of the CAMSS block, allowing of_platform_populate() in camss_probe()
to register and probe it automatically.

Dependencies:
- Patch 1/5 is related to bod's work queued in patchwork:
  https://patchwork.linuxtv.org/project/linux-media/patch/20260326-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v11-4-5b93415be6dd@linaro.org/

Supported compatibles:
- qcom,sm8250-jenc

Driver scope and design choices:
- uses the standard V4L2 mem2mem + vb2 workflow
- maps runtime resources from DT (clocks/interconnects/iommu/etc.)

Functional validation:
- tested with v4l2-ctl and GStreamer (v4l2jpegenc)
- V4L2 compliance test (v4l2-compliance) passed

Note: The handling of shared camera subsystem resources (power domains,
interconnects) for child IP blocks is still an open design question.
We have followed the established SM8250 pattern for now and would
welcome guidance from maintainers on the preferred approach.

Changes since v3:

  CAMSS binding (dt-bindings: media: qcom,sm8250-camss):
  - Added as new patch 2/5; allows #address-cells, #size-cells, ranges,
    and child nodes using unevaluatedProperties: false so that dtbs_check
    validates child nodes against their own schema without requiring the
    parent binding to enumerate each child type explicitly.

  Binding (dt-bindings: media: qcom,jpeg-encoder):
  - Dropped soc and camss wrapper nodes from example. (Dmitry)
  - Removed opp-level from all OPP table entries. (Dmitry)

  CAMSS (media: qcom: camss):
  - Replaced patch 1/4 with Bryan O'Donoghue's original upstream commit. (Vladimir, bod)

  Driver (media: qcom: jpeg):
  - Cleaned up driver patch commit. (bod)
  - Removed redundant "Provides" section from Kconfig help. (Dmitry)
  - Removed unneeded headers from qcom_jenc_defs.h. (Dmitry)
  - Moved V4L2_CID_QCOM_JPEG_* defines to v4l2-controls.h. (Dmitry)
  - Removed perf level and clock frequency constants. (Dmitry)
  - Replaced register mask enum with direct mask constants. (Dmitry)
  - Replaced manual clock scaling with dev_pm_opp_set_opp(). (Dmitry)
  - Fixed clock teardown order in PM suspend. (Dmitry)
  - Removed ICC management from driver. (Dmitry)
  - Switched to _DEFINE_DEV_PM_OPS for PM operations. (Dmitry)
  - Replaced kzalloc_obj() with devm_kzalloc() in probe. (Dmitry)
  - Added IRQF_NO_AUTOEN to defer IRQ until hardware is acquired. (Dmitry)
  - Used devm_add_action_or_reset() for v4l2_device_unregister cleanup. (Dmitry)
  - Moved generic JPEG marker defines to include/media/jpeg.h. (Dmitry)
  - Reused v4l2-jpeg reference Huffman tables in header generation. (Dmitry)
  - Added usage examples to the driver commit log. (bod)
  - Added baseline performance measurements table. (bod)

  DTS (arm64: dts: qcom: sm8250):
  - Restored camss interconnect-names to original values.
  - Removed icp-mnoc interconnect from jpeg-encoder node. (bod)
  - Added #address-cells, #size-cells and ranges before status. (Dmitry)
  - Padded jpeg-encoder reg address to 8 digits: 0x0ac53000. (Dmitry)
  - Removed TITAN_TOP_GDSC power-domain from jpeg-encoder sub-node. (Dmitry)
  - Removed duplicate iommus entry. (Dmitry)
  - Used ICC defines instead of 0 in interconnects. (Dmitry)

Changes since v2:

  Binding (dt-bindings: media: qcom,jpeg-encoder):
  - IOMMU stream IDs documented in binding description. (bod)
  - Dropped "Properties documented:" section from commit message. (krzk)
  - Dropped clocks minItems constraint. (krzk)
  - Renamed clock-names to match hardware signal names. (krzk)
  - Renamed interconnect-names to reflect path topology. (krzk, Dmitry)

  DTS (arm64: dts: qcom: sm8250):
  - Removed cell-index; use lowercase hex, no 0x0 padding. (Dmitry)
  - Moved jpeg-encoder node into the camss block as a child node. (bod)
  - MMCX power domain not added to jpeg-encoder; on SM8250 MMCX is
    voted by camcc, not by individual IP blocks. (bod, kept as-is)

  CAMSS (media: qcom: camss):
  - Added of_platform_populate() in camss_probe() to register child
    platform devices; no conflicts with existing CAMSS resource
    management observed. (bod)

  Driver (media: qcom: jpeg):
  - Sort obj-y entries alphabetically in qcom/Makefile. (krzk)
  - Use devm_mutex_init() instead of mutex_init(). (Frank Li)
  - Check return value of devm_mutex_init(). (Frank Li)
  - Kept return value check on dma_set_mask_and_coherent(); consistent
    with upstream media driver practice. (Frank Li, kept as-is)

Changes since v1:

  Binding (dt-bindings: media: qcom,jpeg-encoder):
  - Removed qcm6490 and sm8550 compatible strings; this series is SM8250
    only.
  - Fixed clock-names block in the binding example.
  - Added operating-points-v2 property documentation.
  - Fixed reg in the example to use the correct 2-cell (64-bit) format
    matching the sm8250 soc node address/size cells.
  - Dropped reg-names: with a single reg entry it is unnecessary.
  - Removed description literal block scalar (|).
  - Dropped _clk suffix from clock-names.
  - Added iommus description in the properties section with
    minItems/maxItems constraints.

  Driver (media: qcom: jpeg):
  - Trimmed hardware register map and definitions.
  - Migrated to devm_clk_bulk_get_all() replacing per-SoC named clock
    arrays.
  - Migrated to the OPP framework for core clock rate and performance
    level management.
  - Switched to devm_platform_ioremap_resource(pdev, 0).
  - Switched to RUNTIME_PM_OPS() and SYSTEM_SLEEP_PM_OPS() macros.
  - platform_set_drvdata() moved to immediately after allocation.
  - .pm uses pm_ptr().

Known limitations:
- scaling is not supported
- width and height must be aligned to 16 pixels


Atanas Filipov (4):
  dt-bindings: media: qcom,sm8250-camss: allow JPEG encoder child node
  dt-bindings: media: qcom: Add JPEG encoder binding
  arm64: dts: qcom: sm8250: Add JPEG encoder node
  media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder

Bryan O'Donoghue (1):
  media: qcom: camss: Populate CAMSS child devices via DT

 .../bindings/media/qcom,jpeg-encoder.yaml     |  146 ++
 .../bindings/media/qcom,sm8250-camss.yaml     |   10 +-
 arch/arm64/boot/dts/qcom/sm8250.dtsi          |   81 +
 drivers/media/platform/qcom/Kconfig           |    1 +
 drivers/media/platform/qcom/Makefile          |    1 +
 drivers/media/platform/qcom/camss/camss.c     |    3 +
 drivers/media/platform/qcom/jpeg/Kconfig      |   15 +
 drivers/media/platform/qcom/jpeg/Makefile     |    9 +
 .../media/platform/qcom/jpeg/qcom_jenc_defs.h |   37 +
 .../media/platform/qcom/jpeg/qcom_jenc_dev.c  |  314 ++++
 .../media/platform/qcom/jpeg/qcom_jenc_dev.h  |  109 ++
 .../media/platform/qcom/jpeg/qcom_jenc_hdr.c  |  331 ++++
 .../media/platform/qcom/jpeg/qcom_jenc_hdr.h  |  119 ++
 .../media/platform/qcom/jpeg/qcom_jenc_ops.c  | 1625 +++++++++++++++++
 .../media/platform/qcom/jpeg/qcom_jenc_ops.h  |   52 +
 .../media/platform/qcom/jpeg/qcom_jenc_res.c  |   15 +
 .../media/platform/qcom/jpeg/qcom_jenc_res.h  |   19 +
 .../qcom/jpeg/qcom_jenc_v420_hw_info.h        |  410 +++++
 .../media/platform/qcom/jpeg/qcom_jenc_v4l2.c | 1154 ++++++++++++
 .../media/platform/qcom/jpeg/qcom_jenc_v4l2.h |   23 +
 include/media/jpeg.h                          |   33 +
 include/uapi/linux/v4l2-controls.h            |   21 +
 22 files changed, 4527 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
 create mode 100644 drivers/media/platform/qcom/jpeg/Kconfig
 create mode 100644 drivers/media/platform/qcom/jpeg/Makefile
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_dev.h
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.h
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_ops.c
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_ops.h
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_res.c
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_res.h
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_v420_hw_info.h
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.c
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.h


base-commit: 8d6dbbbe3ba62de0a63e962ee004afb848c8e3ac
-- 
2.34.1


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 7AE4A3914FF
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 07:11:36 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783321911; cv=none; b=LkdaJaR4bK54bxapn2x0rs9wHHDXGAr9kU11J7F2MTY9pkclQNOb0l2uAmgGzgo958VA2/fyHRpTC2I7n5DbQJ88n6sZIcIj1N5qI8TyirXOzppqS7UHQ9Ioc3Sj925qBq/Ye/9c12jXKMAexhjgTuL9U1sRBbw3FSFpMM2LvEY=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783321911; c=relaxed/simple;
	bh=5u9stqC0KF3uYSx7HJ8fkCoL49Xcw7bLd/d4Npe/jYg=;
	h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:
	 MIME-Version:Content-Type; b=lsI4TY7SfzdiOtvQfJ8zfvsnZUFSqPi6yRX1fuihVxR9L8d9OkapH9DvRoK7oabIX4139HTyICKwxF30OZvgWqmlbTyeb6tJrZ+iF7LIk96F0IEY0VJsRYyY8Dbt9jSZtvyl3SlsmagBlCl/1ZTQFvomAAu1VHgX5q+NmmYeZ/E=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=DKyyUa8F; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QYE7TClA; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="DKyyUa8F";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QYE7TClA"
Received: from pps.filterd (m0279871.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66641cfS3614111
	for <devicetree@vger.kernel.org>; Mon, 6 Jul 2026 07:11:33 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	h0KxipLgGa8sY5GQKtpRGmvNmTv2ldkKF3pFetpcdiM=; b=DKyyUa8FeeyGDxrw
	nRmKIGXjFZg/l1Puh7gRejtyHHzbfmopCOMaPbgrbq3ejIHJ2KFuDic0NrMZFl7F
	mIPqFDB104EWxqoPZX8knCBrlslWVsOYclA1sY1mBQvmuzRSrnwAoCKZ4Un8ltJW
	KGp+tUmOW1HQO+9JnfNmdabUuf2EJclBczUMo5bxb777A/JCXXqHFR3ICGOanumV
	u9iQiC1RhI3yYq5dW5Vg9EnTQyEVnHDQlwO5s9Z/5Bp9kahUysEatED1E3uahmaK
	vE4s7bieQNqwgu20Td2/gB9vIDiOVNj/oNr+FyJqnuKGKl1Sv149MtjygXQD10JI
	0mAQ8Q==
Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f6srvn1rs-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 07:11:32 +0000 (GMT)
Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-91ed0e140c5so492769485a.0
        for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 00:11:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783321892; x=1783926692; darn=vger.kernel.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h0KxipLgGa8sY5GQKtpRGmvNmTv2ldkKF3pFetpcdiM=;
        b=QYE7TClAeA4UpsBKLLFP6zzX1zCnYkJUNKSUbLbHFRrMxgj9wXDukEtns9KKPD7s1f
         DHaeVCIZJYiLKq8WvBCQSJ/vLVOtckj6nTlpe59NYYV+1NxQGANwwYT6KlGDI5AURUXS
         jc49nsYKPGAyGL0DSRnxi0EQD7QMXja/6Ops7jYGTU6ZVgMzed2UPJpw6RcYE7Qpo047
         8Q6LLcVmKFAX/+yG3lHAHJsHK22ivM6yfiIyRj3lX6/+HvxGxz1Xqx7+9nqa2EFezebL
         T56gQ2yjO5ttlTwa57Vc3de9uyiYmh0DNaOkFxCpJDoQxDD3lwPTPNd2u1HTELolblFo
         jhTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783321892; x=1783926692;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=h0KxipLgGa8sY5GQKtpRGmvNmTv2ldkKF3pFetpcdiM=;
        b=BKD+U3vfAvMvOZjhdUR6WNryn8msTKUdDaPfSLseExXHfNoVy8k8XP4QUJDg6CKqeX
         cyOeW88DUuJhi1vharu7U62TvHKurmosyjvqP8cKkhlYALHiaky98sTXMl9QLsyWG5Uo
         oZzRd60j+JNLNuRbTBQo7Z81Uu4j8M7Arjpe7ZgKi74gYn6RAyqkDGBHkWaraxAakBwP
         tePJUGmBTcIqwJSygIx8wBzX/v+tJR6LnaBGo7zTD8DvzMu8Jt9yu80/7nnCLcJ7/JKK
         Ttc/zbMO73HMMjHyYxKe5Q9M4gdf44NeTNMwTY5U7FbxTjbWutwsrj3cfRdM13UvjJzf
         9gnA==
X-Forwarded-Encrypted: i=1; AHgh+RpHmREfTedaEPDTHl7T4bRcWA7Mg6PPLLx4gDA2dm0eRu2tf4TZ4GtbgVPJP9Eue1JfH5JPHudv6alv@vger.kernel.org
X-Gm-Message-State: AOJu0YwoVSAFidcKoKnBTHcVdvw/ixDKYOxwv6cfpP0ibKvXSxgqACqm
	+I1Te4rP+n4kPbDAYcFOxl4Q3rpatnAlQ7p5MsbZQUhYp1C/xhgPMn+FH/tj6wsFHiey9iAvTO2
	QE/QOiOjOFOHCBLq0w0gowKjBhwO48AtToTEreOr1qylBKysXyXbEJvgHtVjB1T3D
X-Gm-Gg: AfdE7cmPpYS/pJvPwmjL0rTGtE5hMCDyiJvGOsLluZpCHWCBODYnvZWWnZ9vM1uEpAI
	ixToVDEH4+ydoe6WkIJP0XDkr20pIK6qK4MtbbFUI/uQTRV3U4GJI7lbP81M4kO5Hj6019Yqkfn
	cl4X7pAIIEodTuN4VnQpzAQLo7jlhk+iPoMFDxUoW+SN6YcdytqgMdGXkmcGuRyogqP8+lP1u4O
	jHk6qiSSTaOyOmpKBq89LTWd/DKizvJ1sH3KLGATAUhnT8YjGc3hoH0Y/VEIIVdSt3GxSAywVhw
	YkfllkU26rQyoHzrTSAkoAimVdzWr414VBjW/GLwjSazo/yKMh8VdlJ6KrzKtMyoixvOts0bP+W
	Ch5c3zBCOL5iTXyUlbEheiThg+3N2Aw7PbQE=
X-Received: by 2002:a05:620a:2a01:b0:92b:6805:918a with SMTP id af79cd13be357-92e9a52511cmr1407503285a.66.1783321889819;
        Mon, 06 Jul 2026 00:11:29 -0700 (PDT)
X-Received: by 2002:a05:620a:2a01:b0:92b:6805:918a with SMTP id af79cd13be357-92e9a52511cmr1407496285a.66.1783321888164;
        Mon, 06 Jul 2026 00:11:28 -0700 (PDT)
Received: from lin-0772.qualcomm.com ([212.136.9.4])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c12b62f3b40sm674673866b.56.2026.07.06.00.11.24
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Mon, 06 Jul 2026 00:11:25 -0700 (PDT)
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
To: linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>
Subject: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
Date: Mon,  6 Jul 2026 10:11:13 +0300
Message-Id: <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Authority-Analysis: v=2.4 cv=TcamcxQh c=1 sm=1 tr=0 ts=6a4b5524 cx=c_pps
 a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=dNlqnMcrdpbb+gQrTujlOQ==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22
 a=SSmOFEACAAAA:8 a=EUspDBNiAAAA:8 a=zojmOFSC_1GoH6_D6NIA:9 a=3ZKOabzyN94A:10
 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=PEH46H7Ffwr30OY-TuGO:22
X-Proofpoint-ORIG-GUID: UziKqLKFFVuEGYXyolpE7vgyMlZG-8KR
X-Proofpoint-GUID: UziKqLKFFVuEGYXyolpE7vgyMlZG-8KR
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA2MDA3MCBTYWx0ZWRfX0zM+P4Io29nX
 BvujOL38hQ9mLNflixmQXRK2K9089+rXquds2RrDWNj5TWDCL89E12hLcS/IYBcPOiuozQnxSr6
 FYhz2lUXuKSgoSGW/0YZq89s/aukoebJ3MboUF82Qkipiz6h35zF6jFGf8EXfnhSEkyYf9lclk8
 tHJoI3EMd6OoKCdonPBFdpbAAdxPK9E4s8pervB4+NpVWn+D2Yv1CBJqHljtMZwkGfkf/QJlkM/
 0QRQba2CjASHlAsF4I2CO/LdDSeFaWiJjxU11gt8pq5EpV5tbNyaGpfkwKgfm0G06Bhcx2cBiuG
 SYykEyU7HqLIwFPyuVxICnsL/gWwbO4CJQUEuDmYh6XfNjR2w3yMsIwxqdY8etXcebrw1QVQszf
 l+VxAzLdUCiUjTAqSxr/15Ye+PQ3G31V4WAD2egV3JHXMC8YIXGXXT1JlpdHOb4F7pbKEzD6UL2
 TOhtFGMGx+MWY0vByGA==
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA2MDA3MCBTYWx0ZWRfX2cXoDCpqF2Rz
 s5BYuLsGnOZaCjD8UrkbWjQtkn+bPm+J5yYDOoddCLIVMg2dSQKrsoLbyGs2uPO5EH1jnA2piNB
 Yw0S4xnMRgzE5wDOU+bTjdAfGXDKtcc=
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49
 definitions=2026-07-05_02,2026-07-03_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501 spamscore=0 suspectscore=0 bulkscore=0 phishscore=0
 impostorscore=0 adultscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607060070

Add a Qualcomm JPEG encoder driver implemented on top of the
V4L2 mem2mem framework.

The driver wires vb2 queue handling, format negotiation, JPEG header
handling, interrupt-driven job completion, and runtime PM/clock/ICC
integration for the standalone JPEG encode hardware block.

This series targets SM8250 (Kona) platforms.

The jpeg-encoder node is described as a child node of the CAMSS block
and is probed automatically via of_platform_populate() in camss_probe().

Usage examples:

- Check of related video node: v4l2-ctl --list-devices
  The expected result:
   qcom-jpeg-enc (platform:qcom-jpeg-enc):
        /dev/videoX

V4L2 Examples:

v4l2-ctl -d /dev/video14 \
--set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
--stream-mmap --stream-out-mmap

v4l2-ctl -d /dev/video14 \
-c compression_quality=100 \
--set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
--stream-mmap --stream-out-mmap \
--stream-count=100

v4l2-ctl -d /dev/video14 \
--set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
--stream-mmap --stream-out-mmap \
--set-ctrl=perf_level_auto=1 \
--set-ctrl=fps_target=30 \
--stream-count=100

v4l2-ctl -d /dev/video14 \
--set-fmt-video-out=width=8192,height=8192,pixelformat=NM12 \
--stream-mmap --stream-out-mmap \
--stream-count=1 \
--stream-to=8192x8192_NM12.jpg

v4l2-ctl -d /dev/video14 \
--set-fmt-video-out=width=8192,height=8192,pixelformat=GREY \
--stream-mmap --stream-out-mmap \
--stream-count=1 \
--stream-to=OUT_8192x8192.jpg

v4l2-ctl -d /dev/video14 \
-c compression_quality=100 \
--set-fmt-video-out=width=1920,height=1088,pixelformat=NM12 \
--stream-mmap=4 --stream-out-mmap=4 \
--stream-count=100 \
--stream-out-pattern=21 \
--stream-to=OUT_1920x1088_100F.mjpg

GStreamer examples:

gst-launch-1.0 videotestsrc \
is-live=false pattern=ball num-buffers=50 ! \
video/x-raw,format=NV12,width=1920,height=1080 ! \
videoscale ! videoconvert ! \
video/x-raw,format=NV12,width=1920,height=1088 ! \
v4l2jpegenc ! \
fakesink sync=false

gst-launch-1.0 videotestsrc is-live=true pattern=smpte ! \
video/x-raw,format=NV12,width=1920,height=1088 ! \
v4l2jpegenc extra-controls="controls,compression_quality=85" ! \
fpsdisplaysink -v sync=false

Performance measurements on SM8250
(NV12, quality=100, GStreamer v4l2jpegenc vs jpegenc):

+------------+-----------------------------+-------------------+
| Resolution |    HW v4l2jpegenc (q100)    | SW jpegenc (q100) |
|            | Execution | avrFPS | maxFPS | Execution |  FPS  |
+------------+-----------+--------+--------+-----------+-------+
|   512x512  | 2.2332    | 1139.1 | 1195.4 | 7.1055    | 358.0 |
|  1280x720  | 1.7300    |  418.5 |  457.2 | 5.0585    | 143.1 |
| 1024x1024  | 1.6991    |  374.3 |  397.4 | 4.7304    | 134.4 |
| 1920x1088  | 1.6596    |  192.8 |  193.8 | 3.7913    |  84.4 |
| 2048x2048  | 1.7277    |   92.0 |   91.6 | 3.6343    |  43.7 |
| 4096x4096  | 1.5887    |   25.2 |   25.3 | 4.2163    |   9.5 |
| 8192x8192  | 1.3104    |    7.6 |    8.0 | 2.9987    |   3.3 |
+------------+-----------+--------+--------+-----------+-------+

Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
---
 .../bindings/media/qcom,jpeg-encoder.yaml     |  143 +-
 drivers/media/platform/qcom/Kconfig           |    1 +
 drivers/media/platform/qcom/Makefile          |    1 +
 drivers/media/platform/qcom/jpeg/Kconfig      |   15 +
 drivers/media/platform/qcom/jpeg/Makefile     |    9 +
 .../media/platform/qcom/jpeg/qcom_jenc_defs.h |   37 +
 .../media/platform/qcom/jpeg/qcom_jenc_dev.c  |  314 ++++
 .../media/platform/qcom/jpeg/qcom_jenc_dev.h  |  109 ++
 .../media/platform/qcom/jpeg/qcom_jenc_hdr.c  |  331 ++++
 .../media/platform/qcom/jpeg/qcom_jenc_hdr.h  |  119 ++
 .../media/platform/qcom/jpeg/qcom_jenc_ops.c  | 1625 +++++++++++++++++
 .../media/platform/qcom/jpeg/qcom_jenc_ops.h  |   52 +
 .../media/platform/qcom/jpeg/qcom_jenc_res.c  |   15 +
 .../media/platform/qcom/jpeg/qcom_jenc_res.h  |   19 +
 .../qcom/jpeg/qcom_jenc_v420_hw_info.h        |  410 +++++
 .../media/platform/qcom/jpeg/qcom_jenc_v4l2.c | 1154 ++++++++++++
 .../media/platform/qcom/jpeg/qcom_jenc_v4l2.h |   23 +
 include/media/jpeg.h                          |   33 +
 include/uapi/linux/v4l2-controls.h            |   21 +
 19 files changed, 4357 insertions(+), 74 deletions(-)
 create mode 100644 drivers/media/platform/qcom/jpeg/Kconfig
 create mode 100644 drivers/media/platform/qcom/jpeg/Makefile
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_dev.h
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.h
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_ops.c
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_ops.h
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_res.c
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_res.h
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_v420_hw_info.h
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.c
 create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.h

diff --git a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
index e4c16388ef07..53e83ebe4699 100644
--- a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
+++ b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
@@ -72,80 +72,75 @@ examples:
     #include <dt-bindings/interconnect/qcom,sm8250.h>
     #include <dt-bindings/interrupt-controller/arm-gic.h>
 
-    jpeg-encoder@ac53000 {
-        compatible = "qcom,sm8250-jenc";
-        reg = <0xac53000 0x1000>;
-
-        interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
-
-        clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
-                 <&gcc GCC_CAMERA_SF_AXI_CLK>,
-                 <&camcc CAM_CC_CORE_AHB_CLK>,
-                 <&camcc CAM_CC_CPAS_AHB_CLK>,
-                 <&camcc CAM_CC_CAMNOC_AXI_CLK>,
-                 <&camcc CAM_CC_JPEG_CLK>;
-        clock-names = "hf_axi",
-                      "sf_axi",
-                      "core_ahb",
-                      "cpas_ahb",
-                      "cnoc_axi",
-                      "jpeg";
-
-        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
-                         &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
-                        <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
-                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>,
-                        <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ALWAYS
-                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>;
-        interconnect-names = "cpu-cfg",
-                             "hf-mnoc",
-                             "sf-mnoc";
-
-        iommus = <&apps_smmu 0x2040 0x400>;
-
-        operating-points-v2 = <&jpeg_opp_table>;
-
-        jpeg_opp_table: opp-table {
-            compatible = "operating-points-v2";
-
-            opp-100000000 {
-                opp-hz = /bits/ 64 <400000000>,
-                         /bits/ 64 <100000000>;
-                opp-peak-kBps = <76800 104166 104166>;
-                opp-avg-kBps = <38400 33569 33569>;
-                required-opps = <&rpmhpd_opp_min_svs>;
-            };
-
-            opp-200000000 {
-                opp-hz = /bits/ 64 <400000000>,
-                         /bits/ 64 <200000000>;
-                opp-peak-kBps = <76800 208333 208333>;
-                opp-avg-kBps = <38400 67138 67138>;
-                required-opps = <&rpmhpd_opp_low_svs>;
-            };
-
-            opp-400000000 {
-                opp-hz = /bits/ 64 <400000000>,
-                         /bits/ 64 <400000000>;
-                opp-peak-kBps = <76800 416666 416666>;
-                opp-avg-kBps = <38400 134277 134277>;
-                required-opps = <&rpmhpd_opp_svs>;
-            };
-
-            opp-480000000 {
-                opp-hz = /bits/ 64 <400000000>,
-                         /bits/ 64 <480000000>;
-                opp-peak-kBps = <76800 500000 500000>;
-                opp-avg-kBps = <38400 161132 161132>;
-                required-opps = <&rpmhpd_opp_svs_l1>;
-            };
-
-            opp-600000000 {
-                opp-hz = /bits/ 64 <400000000>,
-                         /bits/ 64 <600000000>;
-                opp-peak-kBps = <76800 625000 625000>;
-                opp-avg-kBps = <38400 201416 201416>;
-                required-opps = <&rpmhpd_opp_nom>;
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        jpeg-encoder@ac53000 {
+            compatible = "qcom,sm8250-jenc";
+            reg = <0 0x0ac53000 0 0x1000>;
+
+            interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
+
+            clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
+                     <&gcc GCC_CAMERA_SF_AXI_CLK>,
+                     <&camcc CAM_CC_CORE_AHB_CLK>,
+                     <&camcc CAM_CC_CPAS_AHB_CLK>,
+                     <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                     <&camcc CAM_CC_JPEG_CLK>;
+            clock-names = "hf_axi",
+                          "sf_axi",
+                          "core_ahb",
+                          "cpas_ahb",
+                          "cnoc_axi",
+                          "jpeg";
+
+            interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
+                             &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
+                            <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
+                             &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>,
+                            <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ALWAYS
+                             &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>;
+            interconnect-names = "cpu-cfg",
+                                 "hf-mnoc",
+                                 "sf-mnoc";
+
+            iommus = <&apps_smmu 0x2040 0x400>;
+
+            operating-points-v2 = <&jpeg_opp_table>;
+
+            jpeg_opp_table: opp-table {
+                compatible = "operating-points-v2";
+
+                opp-100000000 {
+                    opp-hz = /bits/ 64 <400000000>,
+                             /bits/ 64 <100000000>;
+                    required-opps = <&rpmhpd_opp_min_svs>;
+                };
+
+                opp-200000000 {
+                    opp-hz = /bits/ 64 <400000000>,
+                             /bits/ 64 <200000000>;
+                    required-opps = <&rpmhpd_opp_low_svs>;
+                };
+
+                opp-400000000 {
+                    opp-hz = /bits/ 64 <400000000>,
+                             /bits/ 64 <400000000>;
+                    required-opps = <&rpmhpd_opp_svs>;
+                };
+
+                opp-480000000 {
+                    opp-hz = /bits/ 64 <400000000>,
+                             /bits/ 64 <480000000>;
+                    required-opps = <&rpmhpd_opp_svs_l1>;
+                };
+
+                opp-600000000 {
+                    opp-hz = /bits/ 64 <400000000>,
+                             /bits/ 64 <600000000>;
+                    required-opps = <&rpmhpd_opp_nom>;
+                };
             };
         };
     };
diff --git a/drivers/media/platform/qcom/Kconfig b/drivers/media/platform/qcom/Kconfig
index 4f4d3a68e6e5..f33d53a754a0 100644
--- a/drivers/media/platform/qcom/Kconfig
+++ b/drivers/media/platform/qcom/Kconfig
@@ -5,3 +5,4 @@ comment "Qualcomm media platform drivers"
 source "drivers/media/platform/qcom/camss/Kconfig"
 source "drivers/media/platform/qcom/iris/Kconfig"
 source "drivers/media/platform/qcom/venus/Kconfig"
+source "drivers/media/platform/qcom/jpeg/Kconfig"
diff --git a/drivers/media/platform/qcom/Makefile b/drivers/media/platform/qcom/Makefile
index ea2221a202c0..011b5d237193 100644
--- a/drivers/media/platform/qcom/Makefile
+++ b/drivers/media/platform/qcom/Makefile
@@ -1,4 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
 obj-y += camss/
 obj-y += iris/
+obj-y += jpeg/
 obj-y += venus/
diff --git a/drivers/media/platform/qcom/jpeg/Kconfig b/drivers/media/platform/qcom/jpeg/Kconfig
new file mode 100644
index 000000000000..d1949d277d2b
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/Kconfig
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: GPL-2.0-only
+config VIDEO_QCOM_JENC
+	tristate "Qualcomm V4L2 JPEG Encoder driver"
+	depends on V4L_MEM2MEM_DRIVERS
+	depends on (ARCH_QCOM && IOMMU_DMA) || COMPILE_TEST
+	depends on VIDEO_DEV
+	select VIDEOBUF2_DMA_SG
+	select V4L2_JPEG_HELPER
+	select V4L2_MEM2MEM_DEV
+	help
+	  V4L2 mem2mem driver for the Qualcomm JPEG encoder hardware
+	  found in Snapdragon SoCs.
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called qcom-jenc.
diff --git a/drivers/media/platform/qcom/jpeg/Makefile b/drivers/media/platform/qcom/jpeg/Makefile
new file mode 100644
index 000000000000..310f6c3c1f19
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/Makefile
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: GPL-2.0-only
+obj-$(CONFIG_VIDEO_QCOM_JENC) += qcom-jenc.o
+
+qcom-jenc-objs += \
+	qcom_jenc_dev.o \
+	qcom_jenc_v4l2.o \
+	qcom_jenc_ops.o \
+	qcom_jenc_res.o \
+	qcom_jenc_hdr.o
diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h b/drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h
new file mode 100644
index 000000000000..2ab29bfb9b88
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h
@@ -0,0 +1,37 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef QCOM_JENC_DEFS_H
+#define QCOM_JENC_DEFS_H
+
+#include <linux/types.h>
+#include <uapi/linux/v4l2-controls.h>
+
+/* Offline JPEG encoder constraints */
+#define QCOM_JPEG_HW_MAX_WIDTH	8192
+#define QCOM_JPEG_HW_MAX_HEIGHT	8192
+#define QCOM_JPEG_HW_MIN_WIDTH	256
+#define QCOM_JPEG_HW_MIN_HEIGHT	256
+
+#define QCOM_JPEG_HW_DEF_HSTEP	16
+#define QCOM_JPEG_HW_DEF_VSTEP	16
+
+#define QCOM_JPEG_HW_DEF_WIDTH	1920
+#define QCOM_JPEG_HW_DEF_HEIGHT	1088
+
+#define QCOM_JPEG_MAX_PLANES	3
+
+#define QCOM_JPEG_QUALITY_MIN	1
+#define QCOM_JPEG_QUALITY_DEF	98
+#define QCOM_JPEG_QUALITY_MAX	100
+#define QCOM_JPEG_QUALITY_MID	(QCOM_JPEG_QUALITY_MAX / 2)
+#define QCOM_JPEG_QUALITY_UNT	1
+
+#define QCOM_JPEG_FPS_MIN	1
+#define QCOM_JPEG_FPS_MAX	240
+#define QCOM_JPEG_FPS_DEF	30
+#define QCOM_JPEG_FPS_UNT	1
+
+#endif /* QCOM_JENC_DEFS_H */
diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c b/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c
new file mode 100644
index 000000000000..ddfa84838b6b
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c
@@ -0,0 +1,314 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#include <linux/clk.h>
+#include <linux/interrupt.h>
+#include <linux/mod_devicetable.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/pm_opp.h>
+#include <linux/pm_runtime.h>
+#include <linux/slab.h>
+
+#include <media/v4l2-mem2mem.h>
+
+#include "qcom_jenc_dev.h"
+#include "qcom_jenc_ops.h"
+#include "qcom_jenc_res.h"
+#include "qcom_jenc_v4l2.h"
+
+enum jpeg_opp_clks_id {
+	JPEG_OPP_CNOC_IDX = 0,
+	JPEG_OPP_CORE_IDX
+};
+
+static const char * const opp_clk_names[] = {
+	[JPEG_OPP_CNOC_IDX] = "cnoc_axi",
+	[JPEG_OPP_CORE_IDX] = "jpeg",
+	NULL,
+};
+
+static struct dev_pm_opp_config opp_config = {
+	.clk_names = opp_clk_names,
+	.config_clks = dev_pm_opp_config_clks_simple,
+};
+
+static int qcom_jpeg_opp_init(struct qcom_jenc_dev *jenc)
+{
+	struct dev_pm_opp *opp;
+	int rc;
+
+	rc = devm_pm_opp_set_config(jenc->dev, &opp_config);
+	if (rc)
+		return rc;
+
+	rc = devm_pm_opp_of_add_table(jenc->dev);
+	if (rc && rc != -ENODEV)
+		return rc;
+
+	/* initialize the maximum available frequency for the JPEG core */
+	jenc->max_freq = ULONG_MAX;
+	opp = dev_pm_opp_find_freq_floor_indexed(jenc->dev, &jenc->max_freq, JPEG_OPP_CORE_IDX);
+	if (IS_ERR(opp))
+		return PTR_ERR(opp);
+
+	dev_pm_opp_put(opp);
+
+	/* initialize the default optimized frequency for the JPEG core */
+	jenc->opt_freq = jenc->max_freq;
+
+	dev_dbg(jenc->dev, "JPEG max clocks is: %lu\n", jenc->max_freq);
+
+	return 0;
+}
+
+static int qcom_jpeg_clk_init(struct qcom_jenc_dev *jenc)
+{
+	jenc->num_clks = devm_clk_bulk_get_all(jenc->dev, &jenc->clks);
+	if (jenc->num_clks < 0)
+		return jenc->num_clks;
+
+	return 0;
+}
+
+static int qcom_jpeg_clk_on(struct qcom_jenc_dev *jenc)
+{
+	struct dev_pm_opp *opp;
+	int rc;
+
+	rc = clk_bulk_prepare_enable(jenc->num_clks, jenc->clks);
+	if (rc)
+		return rc;
+
+	/* setup the OPP according to the calculated optimal frequency */
+	opp = dev_pm_opp_find_freq_ceil_indexed(jenc->dev, &jenc->opt_freq, JPEG_OPP_CORE_IDX);
+	if (IS_ERR(opp)) {
+		rc = PTR_ERR(opp);
+		goto err_clk_disable;
+	}
+
+	rc = dev_pm_opp_set_opp(jenc->dev, opp);
+	if (rc)
+		goto err_dev_pm_opp;
+
+	dev_dbg(jenc->dev, "selected OPP clocks cnoc=%lu, core=%lu\n",
+		dev_pm_opp_get_freq_indexed(opp, JPEG_OPP_CNOC_IDX),
+		dev_pm_opp_get_freq_indexed(opp, JPEG_OPP_CORE_IDX));
+
+	dev_pm_opp_put(opp);
+
+	return 0;
+
+err_dev_pm_opp:
+	dev_pm_opp_put(opp);
+err_clk_disable:
+	clk_bulk_disable_unprepare(jenc->num_clks, jenc->clks);
+
+	return rc;
+}
+
+static void qcom_jpeg_clk_off(struct qcom_jenc_dev *jenc)
+{
+	dev_pm_opp_set_opp(jenc->dev, NULL);
+	clk_bulk_disable_unprepare(jenc->num_clks, jenc->clks);
+	jenc->opt_freq = jenc->max_freq;
+}
+
+/* qcom_jpeg_camss_get - resume the parent CAMSS device */
+static int qcom_jpeg_camss_get(struct qcom_jenc_dev *jenc)
+{
+	return pm_runtime_resume_and_get(jenc->camss_dev);
+}
+
+/* qcom_jpeg_camss_put - release the parent CAMSS device */
+static void qcom_jpeg_camss_put(struct qcom_jenc_dev *jenc)
+{
+	pm_runtime_put_sync(jenc->camss_dev);
+}
+
+static int qcom_jpeg_pm_suspend(struct device *dev)
+{
+	struct qcom_jenc_dev *jenc = dev_get_drvdata(dev);
+
+	qcom_jpeg_clk_off(jenc);
+	qcom_jpeg_camss_put(jenc);
+
+	return 0;
+}
+
+static int qcom_jpeg_pm_resume(struct device *dev)
+{
+	struct qcom_jenc_dev *jenc = dev_get_drvdata(dev);
+	int rc;
+
+	rc = qcom_jpeg_camss_get(jenc);
+	if (rc)
+		return rc;
+
+	rc = qcom_jpeg_clk_on(jenc);
+	if (rc) {
+		qcom_jpeg_camss_put(jenc);
+		return rc;
+	}
+
+	return 0;
+}
+
+static int qcom_jpeg_pm_system_suspend(struct device *dev)
+{
+	struct qcom_jenc_dev *jenc = dev_get_drvdata(dev);
+	int rc;
+
+	v4l2_m2m_suspend(jenc->m2m_dev);
+
+	rc = pm_runtime_force_suspend(dev);
+	if (rc)
+		v4l2_m2m_resume(jenc->m2m_dev);
+
+	return rc;
+}
+
+static int qcom_jpeg_pm_system_resume(struct device *dev)
+{
+	struct qcom_jenc_dev *jenc = dev_get_drvdata(dev);
+	int rc;
+
+	rc = pm_runtime_force_resume(dev);
+	if (rc)
+		return rc;
+
+	v4l2_m2m_resume(jenc->m2m_dev);
+
+	return 0;
+}
+
+static _DEFINE_DEV_PM_OPS(qcom_jpeg_pm_ops,
+			  qcom_jpeg_pm_system_suspend, qcom_jpeg_pm_system_resume,
+			  qcom_jpeg_pm_suspend, qcom_jpeg_pm_resume, NULL);
+
+static int qcom_jpeg_probe(struct platform_device *pdev)
+{
+	const struct qcom_dev_resources *res;
+	struct qcom_jenc_dev *jenc;
+	int rc;
+
+	jenc = devm_kzalloc(&pdev->dev, sizeof(*jenc), GFP_KERNEL);
+	if (!jenc)
+		return -ENOMEM;
+
+	jenc->dev = &pdev->dev;
+	jenc->camss_dev = pdev->dev.parent;
+	platform_set_drvdata(pdev, jenc);
+	rc = devm_mutex_init(&pdev->dev, &jenc->dev_mutex);
+	if (rc)
+		goto err_free_jenc;
+	spin_lock_init(&jenc->hw_lock);
+	init_completion(&jenc->reset_complete);
+	init_completion(&jenc->stop_complete);
+
+	res = device_get_match_data(jenc->dev);
+	if (!res) {
+		rc = dev_err_probe(jenc->dev, -ENODEV, "unsupported SoC\n");
+		goto err_free_jenc;
+	}
+	jenc->res = res;
+
+	if (!jenc->res->hw_ops) {
+		rc = dev_err_probe(jenc->dev, -EINVAL, "missing hw resources\n");
+		goto err_free_jenc;
+	}
+
+	rc = dma_set_mask_and_coherent(jenc->dev, DMA_BIT_MASK(32));
+	if (rc) {
+		dev_err_probe(jenc->dev, rc, "failed to set DMA mask\n");
+		goto err_free_jenc;
+	}
+
+	jenc->jpeg_base = devm_platform_ioremap_resource(pdev, 0);
+	if (IS_ERR(jenc->jpeg_base)) {
+		rc = dev_err_probe(jenc->dev, PTR_ERR(jenc->jpeg_base),
+				   "failed to map JPEG resource\n");
+		goto err_free_jenc;
+	}
+
+	rc = qcom_jpeg_opp_init(jenc);
+	if (rc) {
+		dev_err_probe(jenc->dev, rc, "failed to init OPP\n");
+		goto err_free_jenc;
+	}
+
+	rc = qcom_jpeg_clk_init(jenc);
+	if (rc) {
+		dev_err_probe(jenc->dev, rc, "failed to init clocks\n");
+		goto err_free_jenc;
+	}
+
+	jenc->irq = platform_get_irq(pdev, 0);
+	if (jenc->irq < 0) {
+		rc = dev_err_probe(jenc->dev, jenc->irq, "failed to get IRQ\n");
+		goto err_free_jenc;
+	}
+
+	rc = devm_request_threaded_irq(jenc->dev, jenc->irq,
+				       jenc->res->hw_ops->hw_irq_top,
+				       jenc->res->hw_ops->hw_irq_bot,
+				       IRQF_ONESHOT | IRQF_NO_AUTOEN, dev_name(jenc->dev), jenc);
+	if (rc) {
+		dev_err_probe(jenc->dev, rc, "failed to request IRQ\n");
+		goto err_free_jenc;
+	}
+
+	rc = v4l2_device_register(jenc->dev, &jenc->v4l2_dev);
+	if (rc) {
+		dev_err_probe(jenc->dev, rc, "failed to register V4L2 device\n");
+		goto err_free_jenc;
+	}
+
+	rc = devm_add_action_or_reset(jenc->dev,
+				      (void (*)(void *))v4l2_device_unregister,
+				      &jenc->v4l2_dev);
+	if (rc)
+		goto err_free_jenc;
+
+	rc = devm_pm_runtime_enable(jenc->dev);
+	if (rc)
+		goto err_free_jenc;
+
+	rc = qcom_jpeg_v4l2_register(jenc);
+	if (rc) {
+		dev_err_probe(jenc->dev, rc, "failed to register video device\n");
+		goto err_free_jenc;
+	}
+
+	dev_dbg(jenc->dev, "Qualcomm JPEG encoder registered\n");
+
+	return 0;
+
+err_free_jenc:
+	return rc;
+}
+
+static const struct of_device_id qcom_jpeg_of_match[] = {
+	{
+		.compatible	= "qcom,sm8250-jenc",
+		.data		= &qcom_t165_t480_jpeg_drvdata
+	},
+	{ }
+};
+MODULE_DEVICE_TABLE(of, qcom_jpeg_of_match);
+
+static struct platform_driver qcom_jpeg_platform_driver = {
+	.probe  = qcom_jpeg_probe,
+	.driver = {
+		.name = QCOM_JPEG_ENC_NAME,
+		.of_match_table = qcom_jpeg_of_match,
+		.pm             = pm_ptr(&qcom_jpeg_pm_ops),
+	},
+};
+
+module_platform_driver(qcom_jpeg_platform_driver);
+
+MODULE_DESCRIPTION("QCOM JPEG mem2mem V4L2 encoder");
+MODULE_LICENSE("GPL");
diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.h b/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.h
new file mode 100644
index 000000000000..1b5dff346fb9
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.h
@@ -0,0 +1,109 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef QCOM_JENC_DEV_H
+#define QCOM_JENC_DEV_H
+
+#include <linux/device.h>
+#include <linux/irqreturn.h>
+#include <linux/mutex.h>
+
+#include <media/v4l2-ctrls.h>
+#include <media/v4l2-device.h>
+#include <media/videobuf2-core.h>
+#include <media/videobuf2-v4l2.h>
+
+#include "qcom_jenc_defs.h"
+#include "qcom_jenc_hdr.h"
+#include "qcom_jenc_res.h"
+
+#define QCOM_JPEG_ENC_NAME "qcom-jpeg-enc"
+
+#define TYPE2QID(t) \
+	(V4L2_TYPE_IS_OUTPUT(t) ? JENC_SRC_QUEUE : JENC_DST_QUEUE)
+
+enum qcom_enc_qid {
+	JENC_SRC_QUEUE = 0,
+	JENC_DST_QUEUE,
+	JENC_QUEUE_MAX
+};
+
+struct jenc_enc_format {
+	u32 type;
+	u32 fourcc;
+};
+
+struct qcom_jpeg_buff {
+	struct {
+		struct sg_table		*sgt;
+		dma_addr_t		dma;
+		unsigned long		size;
+
+	} plns[QCOM_JPEG_MAX_PLANES];
+};
+
+struct qcom_jenc_queue {
+	struct v4l2_pix_format_mplane	vf;
+	u32				sequence;
+	struct qcom_jpeg_buff		buff[VB2_MAX_FRAME];
+	int				buff_id;
+};
+
+struct qcom_jenc_dev {
+	struct device			*dev;
+	struct device			*camss_dev;
+	struct v4l2_device		v4l2_dev;
+	struct v4l2_m2m_dev		*m2m_dev;
+	struct video_device		*vdev;
+	const struct qcom_dev_resources	*res;
+	int				irq;
+	void __iomem			*jpeg_base;
+	struct clk_bulk_data		*clks;
+	int				num_clks;
+	unsigned long			max_freq;
+	unsigned long			opt_freq;
+	/* device mutex lock */
+	struct mutex			dev_mutex;
+	atomic_t			ref_count;
+	struct completion		reset_complete;
+	struct completion		stop_complete;
+	/* encoder hardware lock */
+	spinlock_t			hw_lock;
+	struct jenc_context		*actx;
+
+	u32				pending_irq_status;
+
+	void (*enc_hw_irq_cb)
+		(void *data, enum vb2_buffer_state ev, size_t out_size);
+};
+
+struct jenc_context {
+	struct device		 *dev;
+	struct qcom_jenc_dev	 *jenc;
+	struct v4l2_fh		 fh;
+
+	/* quality update lock */
+	struct mutex		 quality_mutex;
+	struct v4l2_ctrl	 *quality_ctl;
+	u32			 quality_requested;
+	u32			 quality_programmed;
+	struct v4l2_ctrl	 *perf_level_auto_ctl;
+	struct v4l2_ctrl	 *fps_target_ctl;
+	struct v4l2_ctrl_handler ctrl_hdl;
+
+	/* session context lock */
+	struct mutex		 ctx_lock;
+
+	bool			 is_stopping;
+	bool			 hw_acquired;
+
+	struct qcom_jenc_queue	bufq[JENC_QUEUE_MAX];
+	struct qcom_jenc_header	hdr_cache;
+
+	struct work_struct finish_work;
+	struct work_struct stop_work;
+};
+
+#endif
diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c b/drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c
new file mode 100644
index 000000000000..c9959518c64d
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c
@@ -0,0 +1,331 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#include <linux/errno.h>
+#include <linux/string.h>
+
+#include <media/jpeg.h>
+#include <media/v4l2-jpeg.h>
+
+#include "qcom_jenc_dev.h"
+#include "qcom_jenc_hdr.h"
+
+/*
+ * The elements defined in this header are specified
+ * in the ITU-T T.81 / JPEG specification.
+ *
+ * https://www.w3.org/Graphics/JPEG/itu-t81.pdf
+ */
+
+#define JFIF_HEADER_WIDTH_OFFS		0x07
+#define JFIF_HEADER_HEIGHT_OFFS		0x05
+
+#define JFIF_APP0_LENGTH_HI		0x00
+#define JFIF_APP0_LENGTH_LO		0x10
+#define JFIF_IDENT_TERM		0x00
+#define JFIF_VERSION_MAJOR		0x01
+#define JFIF_VERSION_MINOR		0x01
+#define JFIF_DENSITY_HI			0x00
+#define JFIF_DENSITY_LO			0x01
+#define JFIF_THUMBNAIL_SIZE		0x00
+
+#define JPEG_SEG_LEN_HI			0x00
+#define JPEG_LEN_DQT_LUMA_LO		0x43
+#define JPEG_LEN_DQT_CHROMA_LO		0x43
+#define JPEG_LEN_SOF0_MONO_LO		0x0b
+#define JPEG_LEN_SOF0_COLOR_LO		0x11
+#define JPEG_LEN_DHT_MONO_LO		0xd2
+#define JPEG_LEN_DHT_COLOR_HI		0x01
+#define JPEG_LEN_DHT_COLOR_LO		0xa2
+#define JPEG_LEN_SOS_MONO_LO		0x08
+#define JPEG_LEN_SOS_COLOR_LO		0x0c
+
+struct jpeg_header_buf {
+	u8  *ptr;
+	u32 size;
+	u32 pos;
+};
+
+static const struct jpeg_soi_app0 soi_app0 = {
+	.soi		= { JPEG_MARKER_PREFIX, JPEG_MARKER_SOI },
+	.app0_marker	= { JPEG_MARKER_PREFIX, JPEG_MARKER_APP0 },
+	.app0_length	= { JFIF_APP0_LENGTH_HI, JFIF_APP0_LENGTH_LO },
+	.jfif_id	= { 'J', 'F', 'I', 'F', JFIF_IDENT_TERM },
+	.version	= { JFIF_VERSION_MAJOR, JFIF_VERSION_MINOR },
+	.units		= 0x00,
+	.density_x	= { JFIF_DENSITY_HI, JFIF_DENSITY_LO },
+	.density_y	= { JFIF_DENSITY_HI, JFIF_DENSITY_LO },
+	.thumb_x	= JFIF_THUMBNAIL_SIZE,
+	.thumb_y	= JFIF_THUMBNAIL_SIZE,
+};
+
+static const struct jpeg_record_hdr dqt_luma_hdr = {
+	.marker = { JPEG_MARKER_PREFIX, JPEG_MARKER_DQT },
+	.length = { JPEG_SEG_LEN_HI, JPEG_LEN_DQT_LUMA_LO }
+};
+
+static const struct jpeg_record_hdr dqt_chroma_hdr = {
+	.marker = { JPEG_MARKER_PREFIX, JPEG_MARKER_DQT },
+	.length = { JPEG_SEG_LEN_HI, JPEG_LEN_DQT_CHROMA_LO }
+};
+
+/* Luminance quantization table */
+static const struct jpeg_dqt_header dqt_luma_data = {
+	.index = 0x00,
+};
+
+/* Chrominance quantization table */
+static const struct jpeg_dqt_header dqt_chroma_data = {
+	.index = 0x01,
+};
+
+static const struct jpeg_record_hdr  sof0_mono_hdr = {
+	.marker	= { JPEG_MARKER_PREFIX, JPEG_MARKER_SOF0 },
+	.length	= { JPEG_SEG_LEN_HI, JPEG_LEN_SOF0_MONO_LO },
+};
+
+static const struct jpeg_sof0_mono sof0_mono_data = {
+	.precision	= JPEG_SAMPLE_PRECISION_BITS,
+	.height		= { 0x00, 0x00 },
+	.width		= { 0x00, 0x00 },
+	.components	= JPEG_COMP_MONO,
+	.y_id		= 1,
+	.y_sampling	= JPEG_SAMPLING_H1V1,
+	.y_qtable	= JPEG_QTABLE_LUMA,
+};
+
+static const struct jpeg_record_hdr  sof0_color_hdr = {
+	.marker	= { JPEG_MARKER_PREFIX, JPEG_MARKER_SOF0 },
+	.length	= { JPEG_SEG_LEN_HI, JPEG_LEN_SOF0_COLOR_LO },
+};
+
+static const struct jpeg_sof0_color sof0_color_data = {
+	.precision	= JPEG_SAMPLE_PRECISION_BITS,
+	.height		= { 0x00, 0x00 },
+	.width		= { 0x00, 0x00 },
+	.components	= JPEG_COMP_COLOR,
+	.y_id		= 1,
+	.y_sampling	= JPEG_SAMPLING_H2V2,
+	.y_qtable	= JPEG_QTABLE_LUMA,
+	.cb_id		= 2,
+	.cb_sampling	= JPEG_SAMPLING_H1V1,
+	.cb_qtable	= JPEG_QTABLE_CHROMA,
+	.cr_id		= 3,
+	.cr_sampling	= JPEG_SAMPLING_H1V1,
+	.cr_qtable	= JPEG_QTABLE_CHROMA,
+};
+
+static const struct jpeg_record_hdr coeff_mono_hdr = {
+	.marker = { JPEG_MARKER_PREFIX, JPEG_MARKER_DHT },
+	.length = { JPEG_SEG_LEN_HI, JPEG_LEN_DHT_MONO_LO },
+};
+
+static const struct jpeg_record_hdr coeff_color_hdr = {
+	.marker	= { JPEG_MARKER_PREFIX, JPEG_MARKER_DHT },
+	.length	= { JPEG_LEN_DHT_COLOR_HI, JPEG_LEN_DHT_COLOR_LO },
+};
+
+static const struct jpeg_record_hdr sos_mono_hdr = {
+	.marker	= { JPEG_MARKER_PREFIX, JPEG_MARKER_SOS },
+	.length	= { JPEG_SEG_LEN_HI, JPEG_LEN_SOS_MONO_LO },
+};
+
+static const struct jpeg_sos_mono sos_mono_data = {
+	.components	= JPEG_COMP_MONO,
+	.y_id		= 1,
+	.y_tables	= JPEG_TABLE_SEL_LUMA,
+	.spectral	= { JPEG_SPECTRAL_START, JPEG_SPECTRAL_END },
+	.approx		= JPEG_APPROX_HIGH_LOW,
+};
+
+static const struct jpeg_record_hdr sos_color_hdr = {
+	.marker	= { JPEG_MARKER_PREFIX, JPEG_MARKER_SOS },
+	.length	= { JPEG_SEG_LEN_HI, JPEG_LEN_SOS_COLOR_LO },
+};
+
+static const struct jpeg_sos_color sos_color_data = {
+	.components	= JPEG_COMP_COLOR,
+	.y_id		= 1,
+	.y_tables	= JPEG_TABLE_SEL_LUMA,
+	.cb_id		= 2,
+	.cb_tables	= JPEG_TABLE_SEL_CHROMA,
+	.cr_id		= 3,
+	.cr_tables	= JPEG_TABLE_SEL_CHROMA,
+	.spectral	= { JPEG_SPECTRAL_START, JPEG_SPECTRAL_END },
+	.approx		= JPEG_APPROX_HIGH_LOW,
+};
+
+static inline int jb_put_mem(struct jpeg_header_buf *hdr, const void *src, u32 len)
+{
+	if (len > hdr->size - hdr->pos)
+		return -ENOSPC;
+
+	memcpy(hdr->ptr + hdr->pos, src, len);
+	hdr->pos += len;
+
+	return 0;
+}
+
+static int jb_put_dht(struct jpeg_header_buf *hdr, u8 index, const u8 *table, u32 len)
+{
+	u8 data[1 + V4L2_JPEG_REF_HT_AC_LEN];
+
+	if (len > V4L2_JPEG_REF_HT_AC_LEN)
+		return -EINVAL;
+
+	data[0] = index;
+	memcpy(&data[1], table, len);
+
+	return jb_put_mem(hdr, data, len + 1);
+}
+
+static inline void patch_u16be(u8 *buf, u32 off, u16 v)
+{
+	buf[off]	= (v >> 8) & 0xff;
+	buf[off + 1]	=  v & 0xff;
+}
+
+int qcom_jenc_header_init(struct qcom_jenc_header *c, u32 fourcc)
+{
+	int rc;
+	struct jpeg_header_buf hdr = {
+		.ptr = c->data,
+		.size = sizeof(c->data),
+		.pos = 0,
+	};
+
+	c->sof_offset	= 0;
+	c->dqt_luma_offs = 0;
+	c->dqt_chroma_offs = 0;
+
+	rc = jb_put_mem(&hdr, &soi_app0, sizeof(soi_app0));
+	if (rc)
+		return rc;
+
+	/* luma DQT is always present */
+	rc = jb_put_mem(&hdr, &dqt_luma_hdr, sizeof(dqt_luma_hdr));
+	if (rc)
+		return rc;
+
+	c->dqt_luma_offs = hdr.pos;
+	rc = jb_put_mem(&hdr, &dqt_luma_data, sizeof(dqt_luma_data));
+	if (rc)
+		return rc;
+
+	/* chroma DQT only for color images */
+	if (fourcc != V4L2_PIX_FMT_GREY) {
+		rc = jb_put_mem(&hdr, &dqt_chroma_hdr, sizeof(dqt_chroma_hdr));
+		if (rc)
+			return rc;
+
+		c->dqt_chroma_offs = hdr.pos;
+		rc = jb_put_mem(&hdr, &dqt_chroma_data, sizeof(dqt_chroma_data));
+		if (rc)
+			return rc;
+	}
+
+	/* store the offset of the SOF record for later use */
+	c->sof_offset = hdr.pos;
+
+	if (fourcc != V4L2_PIX_FMT_GREY) {
+		rc = jb_put_mem(&hdr, &sof0_color_hdr, sizeof(sof0_color_hdr));
+		if (rc)
+			return rc;
+		rc = jb_put_mem(&hdr, &sof0_color_data, sizeof(sof0_color_data));
+		if (rc)
+			return rc;
+		rc = jb_put_mem(&hdr, &coeff_color_hdr, sizeof(coeff_color_hdr));
+		if (rc)
+			return rc;
+		rc = jb_put_dht(&hdr, JPEG_DC_HT_INDEX_LUMA,
+				v4l2_jpeg_ref_table_luma_dc_ht,
+				ARRAY_SIZE(v4l2_jpeg_ref_table_luma_dc_ht));
+		if (rc)
+			return rc;
+		rc = jb_put_dht(&hdr, JPEG_AC_HT_INDEX_LUMA,
+				v4l2_jpeg_ref_table_luma_ac_ht,
+				ARRAY_SIZE(v4l2_jpeg_ref_table_luma_ac_ht));
+		if (rc)
+			return rc;
+		rc = jb_put_dht(&hdr, JPEG_DC_HT_INDEX_CHROMA,
+				v4l2_jpeg_ref_table_chroma_dc_ht,
+				ARRAY_SIZE(v4l2_jpeg_ref_table_chroma_dc_ht));
+		if (rc)
+			return rc;
+		rc = jb_put_dht(&hdr, JPEG_AC_HT_INDEX_CHROMA,
+				v4l2_jpeg_ref_table_chroma_ac_ht,
+				ARRAY_SIZE(v4l2_jpeg_ref_table_chroma_ac_ht));
+		if (rc)
+			return rc;
+		rc = jb_put_mem(&hdr, &sos_color_hdr, sizeof(sos_color_hdr));
+		if (rc)
+			return rc;
+		rc = jb_put_mem(&hdr, &sos_color_data, sizeof(sos_color_data));
+		if (rc)
+			return rc;
+	} else {
+		rc = jb_put_mem(&hdr, &sof0_mono_hdr, sizeof(sof0_mono_hdr));
+		if (rc)
+			return rc;
+		rc = jb_put_mem(&hdr, &sof0_mono_data, sizeof(sof0_mono_data));
+		if (rc)
+			return rc;
+		rc = jb_put_mem(&hdr, &coeff_mono_hdr, sizeof(coeff_mono_hdr));
+		if (rc)
+			return rc;
+		rc = jb_put_dht(&hdr, JPEG_DC_HT_INDEX_LUMA,
+				v4l2_jpeg_ref_table_luma_dc_ht,
+				ARRAY_SIZE(v4l2_jpeg_ref_table_luma_dc_ht));
+		if (rc)
+			return rc;
+		rc = jb_put_dht(&hdr, JPEG_AC_HT_INDEX_LUMA,
+				v4l2_jpeg_ref_table_luma_ac_ht,
+				ARRAY_SIZE(v4l2_jpeg_ref_table_luma_ac_ht));
+		if (rc)
+			return rc;
+		rc = jb_put_mem(&hdr, &sos_mono_hdr, sizeof(sos_mono_hdr));
+		if (rc)
+			return rc;
+		rc = jb_put_mem(&hdr, &sos_mono_data, sizeof(sos_mono_data));
+		if (rc)
+			return rc;
+	}
+
+	c->size = hdr.pos;
+
+	return 0;
+}
+
+void qcom_jenc_dqts_emit(const struct qcom_jenc_header *c, u8 *dst)
+{
+	/* Propagate DQT tables into the JPEG header */
+	if (c->dqt_luma_offs) {
+		u32 luma_offs = c->dqt_luma_offs + sizeof(dqt_luma_data.index);
+
+		memcpy(dst + luma_offs, &c->data[luma_offs], sizeof(dqt_luma_data.value));
+	}
+
+	if (c->dqt_chroma_offs) {
+		u32 chroma_offs = c->dqt_chroma_offs + sizeof(dqt_chroma_data.index);
+
+		memcpy(dst + chroma_offs, &c->data[chroma_offs], sizeof(dqt_chroma_data.value));
+	}
+}
+
+u32 qcom_jenc_header_emit(const struct qcom_jenc_header *c, u8 *dst, u32 dst_size, u16 width,
+			  u16 height)
+{
+	/* Copy JFIF into JPEG header and update actual image size */
+	if (dst_size < c->size)
+		return 0;
+
+	memcpy(dst, c->data, c->size);
+
+	/* Update output image size */
+	patch_u16be(dst, c->sof_offset + JFIF_HEADER_WIDTH_OFFS, width);
+	patch_u16be(dst, c->sof_offset + JFIF_HEADER_HEIGHT_OFFS, height);
+
+	return c->size;
+}
diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.h b/drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.h
new file mode 100644
index 000000000000..db1e5298e51f
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.h
@@ -0,0 +1,119 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef QCOM_JENC_HDR_H
+#define QCOM_JENC_HDR_H
+
+#include <linux/types.h>
+
+#include <media/v4l2-jpeg.h>
+
+#include "qcom_jenc_defs.h"
+
+#define JPEG_HEADER_MAX	1024
+
+struct qcom_jenc_header {
+	u8  data[JPEG_HEADER_MAX];
+	u32 size;
+	u32 sof_offset;
+	u32 dqt_luma_offs;
+	u32 dqt_chroma_offs;
+};
+
+struct jpeg_record_hdr {
+	u8 marker[2];
+	u8 length[2];
+} __packed;
+
+struct jpeg_dqt_header {
+	u8 index;
+	u8 value[V4L2_JPEG_PIXELS_IN_BLOCK];
+} __packed;
+
+struct jpeg_soi_app0 {
+	u8 soi[2];
+	u8 app0_marker[2];
+	u8 app0_length[2];
+	u8 jfif_id[5];
+	u8 version[2];
+	u8 units;
+	u8 density_x[2];
+	u8 density_y[2];
+	u8 thumb_x;
+	u8 thumb_y;
+} __packed;
+
+struct jpeg_sof0_mono {
+	u8 precision;
+	u8 height[2];
+	u8 width[2];
+	u8 components;
+
+	u8 y_id;
+	u8 y_sampling;
+	u8 y_qtable;
+} __packed;
+
+struct jpeg_sof0_color {
+	u8 precision;
+	u8 height[2];
+	u8 width[2];
+	u8 components;
+
+	u8 y_id;
+	u8 y_sampling;
+	u8 y_qtable;
+
+	u8 cb_id;
+	u8 cb_sampling;
+	u8 cb_qtable;
+
+	u8 cr_id;
+	u8 cr_sampling;
+	u8 cr_qtable;
+} __packed;
+
+struct jpeg_sos_hdr {
+	u8 sos_marker[2];
+	u8 sos_length[2];
+	u8 components;
+} __packed;
+
+struct jpeg_sos_mono {
+	u8 components;
+
+	u8 y_id;
+	u8 y_tables;
+
+	u8 spectral[2];
+	u8 approx;
+} __packed;
+
+struct jpeg_sos_color {
+	u8 components;
+
+	u8 y_id;
+	u8 y_tables;
+
+	u8 cb_id;
+	u8 cb_tables;
+
+	u8 cr_id;
+	u8 cr_tables;
+
+	u8 spectral[2];
+	u8 approx;
+} __packed;
+
+struct jenc_context;
+
+int qcom_jenc_header_init(struct qcom_jenc_header *c, u32 fourcc);
+
+void qcom_jenc_dqts_emit(const struct qcom_jenc_header *c, u8 *dst);
+
+u32 qcom_jenc_header_emit(const struct qcom_jenc_header *c, u8 *dst, u32 dst_size, u16 width,
+			  u16 height);
+
+#endif /* QCOM_JENC_HDR_H */
diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_ops.c b/drivers/media/platform/qcom/jpeg/qcom_jenc_ops.c
new file mode 100644
index 000000000000..1f9841d27974
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_ops.c
@@ -0,0 +1,1625 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#include <linux/math64.h>
+#include <linux/pm_opp.h>
+#include <linux/pm_runtime.h>
+#include <linux/scatterlist.h>
+
+#include <media/v4l2-ctrls.h>
+#include <media/v4l2-mem2mem.h>
+#include <media/videobuf2-dma-sg.h>
+
+#include "qcom_jenc_defs.h"
+#include "qcom_jenc_dev.h"
+#include "qcom_jenc_ops.h"
+#include "qcom_jenc_v420_hw_info.h"
+
+/* Per-plane register offset lookup arrays (indexed by plane number 0..2) */
+static const u32 jpeg_v420_fe_pntr[] = {
+	JPEG_V420_REG_FE_PNTR_0,
+	JPEG_V420_REG_FE_PNTR_1,
+	JPEG_V420_REG_FE_PNTR_2,
+};
+
+static const u32 jpeg_v420_fe_offs[] = {
+	JPEG_V420_REG_FE_OFFS_0,
+	JPEG_V420_REG_FE_OFFS_1,
+	JPEG_V420_REG_FE_OFFS_2,
+};
+
+static const u32 jpeg_v420_fe_bsize[] = {
+	JPEG_V420_REG_FE_BSIZE_0,
+	JPEG_V420_REG_FE_BSIZE_1,
+	JPEG_V420_REG_FE_BSIZE_2,
+};
+
+static const u32 jpeg_v420_fe_stride[] = {
+	JPEG_V420_REG_FE_STRIDE_0,
+	JPEG_V420_REG_FE_STRIDE_1,
+	JPEG_V420_REG_FE_STRIDE_2,
+};
+
+static const u32 jpeg_v420_fe_hinit[] = {
+	JPEG_V420_REG_FE_HINIT_0,
+	JPEG_V420_REG_FE_HINIT_1,
+	JPEG_V420_REG_FE_HINIT_2,
+};
+
+static const u32 jpeg_v420_fe_vinit[] = {
+	JPEG_V420_REG_FE_VINIT_0,
+	JPEG_V420_REG_FE_VINIT_1,
+	JPEG_V420_REG_FE_VINIT_2,
+};
+
+static const u32 jpeg_v420_we_pntr[] = {
+	JPEG_V420_REG_WE_PNTR_0,
+	JPEG_V420_REG_WE_PNTR_1,
+	JPEG_V420_REG_WE_PNTR_2,
+};
+
+static const u32 jpeg_v420_we_stride[] = {
+	JPEG_V420_REG_WE_STRIDE_0,
+	JPEG_V420_REG_WE_STRIDE_1,
+	JPEG_V420_REG_WE_STRIDE_2,
+};
+
+static const u32 jpeg_v420_we_hinit[] = {
+	JPEG_V420_REG_WE_HINIT_0,
+	JPEG_V420_REG_WE_HINIT_1,
+	JPEG_V420_REG_WE_HINIT_2,
+};
+
+static const u32 jpeg_v420_we_hstep[] = {
+	JPEG_V420_REG_WE_HSTEP_0,
+	JPEG_V420_REG_WE_HSTEP_1,
+	JPEG_V420_REG_WE_HSTEP_2,
+};
+
+static const u32 jpeg_v420_we_vinit[] = {
+	JPEG_V420_REG_WE_VINIT_0,
+	JPEG_V420_REG_WE_VINIT_1,
+	JPEG_V420_REG_WE_VINIT_2,
+};
+
+static const u32 jpeg_v420_we_vstep[] = {
+	JPEG_V420_REG_WE_VSTEP_0,
+	JPEG_V420_REG_WE_VSTEP_1,
+	JPEG_V420_REG_WE_VSTEP_2,
+};
+
+static const u32 jpeg_v420_scale_hstep[] = {
+	JPEG_V420_REG_SCALE_HSTEP_0,
+	JPEG_V420_REG_SCALE_HSTEP_1,
+	JPEG_V420_REG_SCALE_HSTEP_2,
+};
+
+static const u32 jpeg_v420_scale_vstep[] = {
+	JPEG_V420_REG_SCALE_VSTEP_0,
+	JPEG_V420_REG_SCALE_VSTEP_1,
+	JPEG_V420_REG_SCALE_VSTEP_2,
+};
+
+static const u32 jpeg_v420_scale_out_cfg[] = {
+	JPEG_V420_REG_SCALE_OUT_CFG_0,
+	JPEG_V420_REG_SCALE_OUT_CFG_1,
+	JPEG_V420_REG_SCALE_OUT_CFG_2,
+};
+
+#define JPEG_RESET_TIMEOUT_MS	300
+#define JPEG_STOP_TIMEOUT_MS	200
+
+#define JPEG_DQT_SHIFT		20
+
+#define JPEG_MCU_BLOCK_8	8
+#define JPEG_MCU_BLOCK_16	16
+#define JPEG_MCU_BLOCK_128	128
+#define JPEG_MCU_BLOCK_256	256
+
+#define JPEG_DEFAULT_SCALE_STEP	0x200000
+
+#define JPEG_CLR_U32	(0U)
+#define JPEG_SET_U32	(~0U)
+
+/*
+ *  JPEG | V4L2
+ *  ---- | -------
+ *  H1V1 | GREY
+ *  H1V2 | YUV422M
+ *  H2V1 | NV16M
+ *  H2V2 | NV12M
+ */
+enum qcom_jpeg_encode_fmt {
+	JPEG_ENCODE_H1V1 = 0,
+	JPEG_ENCODE_H1V2,
+	JPEG_ENCODE_H2V1,
+	JPEG_ENCODE_H2V2,
+	JPEG_ENCODE_MONO,
+};
+
+enum qcom_jpeg_memory_fmt {
+	JPEG_MEM_FMT_PLANAR	 = 0x0,
+	JPEG_MEM_FMT_PPLANAR	 = 0x1,
+	JPEG_MEM_FMT_MONO	 = 0x2,
+	JPEG_MEM_FMT_COEFFICIENT = 0x3
+};
+
+enum jpeg_mal_bounds {
+	JPEG_CFG_MAL_BOUND_32_BYTES	= 0x0,
+	JPEG_CFG_MAL_BOUND_64_BYTES	= 0x1,
+	JPEG_CFG_MAL_BOUND_128_BYTES	= 0x2,
+	JPEG_CFG_MAL_BOUND_256_BYTES	= 0x3,
+	JPEG_CFG_MAL_BOUND_512_BYTES	= 0x4,
+	JPEG_CFG_MAL_BOUND_1K_BYTES	= 0x5,
+	JPEG_CFG_MAL_BOUND_2K_BYTES	= 0x6,
+	JPEG_CFG_MAL_BOUND_4K_BYTES	= 0x7
+};
+
+struct qcom_jpeg_scale_blocks {
+	u8 w_block[QCOM_JPEG_MAX_PLANES];
+	u8 h_block[QCOM_JPEG_MAX_PLANES];
+};
+
+struct qcom_jpeg_mal_boundary {
+	u32 bytes;
+	int boundary;
+};
+
+struct qcom_jpeg_formats {
+	enum qcom_jpeg_encode_fmt encode;
+	enum qcom_jpeg_memory_fmt memory;
+	u32 fourcc;
+};
+
+/*
+ * Luminance quantization table defined by CCITT T.81.
+ * See: https://www.w3.org/Graphics/JPEG/itu-t81.pdf
+ */
+static const u8 t81k1_dct_luma_table[V4L2_JPEG_PIXELS_IN_BLOCK] = {
+	16,  11,  10,  16,  24,  40,  51,  61,
+	12,  12,  14,  19,  26,  58,  60,  55,
+	14,  13,  16,  24,  40,  57,  69,  56,
+	14,  17,  22,  29,  51,  87,  80,  62,
+	18,  22,  37,  56,  68, 109, 103,  77,
+	24,  35,  55,  64,  81, 104, 113,  92,
+	49,  64,  78,  87, 103, 121, 120, 101,
+	72,  92,  95,  98, 112, 100, 103,  99
+};
+
+/*
+ * Chrominance quantization table defined by CCITT T.81.
+ * See: https://www.w3.org/Graphics/JPEG/itu-t81.pdf
+ */
+static const u8 t81k2_dct_chroma_table[V4L2_JPEG_PIXELS_IN_BLOCK] = {
+	17,  18,  24,  47,  99,  99,  99,  99,
+	18,  21,  26,  66,  99,  99,  99,  99,
+	24,  26,  56,  99,  99,  99,  99,  99,
+	47,  66,  99,  99,  99,  99,  99,  99,
+	99,  99,  99,  99,  99,  99,  99,  99,
+	99,  99,  99,  99,  99,  99,  99,  99,
+	99,  99,  99,  99,  99,  99,  99,  99,
+	99,  99,  99,  99,  99,  99,  99,  99
+};
+
+/*
+ * Zig-zag scan order for quantized DCT coefficients
+ * as defined by CCITT T.81.
+ * See: https://www.w3.org/Graphics/JPEG/itu-t81.pdf
+ */
+static const u8 t81a6_dct_zig_zag_table[] = {
+	 0,  1,  5,  6, 14, 15, 27, 28,
+	 2,  4,  7, 13, 16, 26, 29, 42,
+	 3,  8, 12, 17, 25, 30, 41, 43,
+	 9, 11, 18, 24, 31, 40, 44, 53,
+	10, 19, 23, 32, 39, 45, 52, 54,
+	20, 22, 33, 38, 46, 51, 55, 60,
+	21, 34, 37, 47, 50, 56, 59, 61,
+	35, 36, 48, 49, 57, 58, 62, 63
+};
+
+static const struct qcom_jpeg_formats jpeg_encode_fmt[] = {
+	{
+		.fourcc = V4L2_PIX_FMT_GREY,
+		.encode = JPEG_ENCODE_MONO,
+		.memory = JPEG_MEM_FMT_MONO
+	},
+	{
+		.fourcc = V4L2_PIX_FMT_JPEG,
+		.encode = JPEG_ENCODE_H1V1,
+		.memory = JPEG_MEM_FMT_PPLANAR
+	},
+	{
+		.fourcc = V4L2_PIX_FMT_YUV422M,
+		.encode = JPEG_ENCODE_H1V2,
+		.memory = JPEG_MEM_FMT_PLANAR
+	},
+	{
+		.fourcc = V4L2_PIX_FMT_YVU422M,
+		.encode = JPEG_ENCODE_H1V2,
+		.memory = JPEG_MEM_FMT_PLANAR
+	},
+	{
+		.fourcc = V4L2_PIX_FMT_NV16M,
+		.encode = JPEG_ENCODE_H2V1,
+		.memory = JPEG_MEM_FMT_PPLANAR
+	},
+	{
+		.fourcc = V4L2_PIX_FMT_NV61M,
+		.encode = JPEG_ENCODE_H2V1,
+		.memory = JPEG_MEM_FMT_PPLANAR
+	},
+	{
+		.fourcc = V4L2_PIX_FMT_NV12M,
+		.encode = JPEG_ENCODE_H2V2,
+		.memory = JPEG_MEM_FMT_PPLANAR
+	},
+	{
+		.fourcc = V4L2_PIX_FMT_NV21M,
+		.encode = JPEG_ENCODE_H2V2,
+		.memory = JPEG_MEM_FMT_PPLANAR
+	}
+};
+
+static const struct qcom_jpeg_mal_boundary jpeg_mal_bounds[] = {
+	{ .bytes =   32, .boundary = JPEG_CFG_MAL_BOUND_32_BYTES  },
+	{ .bytes =   64, .boundary = JPEG_CFG_MAL_BOUND_64_BYTES  },
+	{ .bytes =  128, .boundary = JPEG_CFG_MAL_BOUND_128_BYTES },
+	{ .bytes =  256, .boundary = JPEG_CFG_MAL_BOUND_256_BYTES },
+	{ .bytes =  512, .boundary = JPEG_CFG_MAL_BOUND_512_BYTES },
+	{ .bytes = 1024, .boundary = JPEG_CFG_MAL_BOUND_1K_BYTES  },
+	{ .bytes = 2048, .boundary = JPEG_CFG_MAL_BOUND_2K_BYTES  },
+	{ .bytes = 4096, .boundary = JPEG_CFG_MAL_BOUND_4K_BYTES  }
+};
+
+static const struct qcom_jpeg_scale_blocks jpeg_mcu_blocks[] = {
+	[JPEG_ENCODE_H1V1] = {
+		.w_block = { JPEG_MCU_BLOCK_8, JPEG_MCU_BLOCK_8, JPEG_MCU_BLOCK_8 },
+		.h_block = { JPEG_MCU_BLOCK_8, JPEG_MCU_BLOCK_8, JPEG_MCU_BLOCK_8 },
+	},
+	[JPEG_ENCODE_H1V2] = {
+		.w_block = { JPEG_MCU_BLOCK_8, JPEG_MCU_BLOCK_8, JPEG_MCU_BLOCK_8  },
+		.h_block = { JPEG_MCU_BLOCK_16, JPEG_MCU_BLOCK_8, JPEG_MCU_BLOCK_8 },
+	},
+	[JPEG_ENCODE_H2V1] = {
+		.w_block = { JPEG_MCU_BLOCK_16, JPEG_MCU_BLOCK_8, JPEG_MCU_BLOCK_8 },
+		.h_block = { JPEG_MCU_BLOCK_8, JPEG_MCU_BLOCK_8, JPEG_MCU_BLOCK_8  },
+	},
+	[JPEG_ENCODE_H2V2] = {
+		.w_block = { JPEG_MCU_BLOCK_16, JPEG_MCU_BLOCK_8, JPEG_MCU_BLOCK_8 },
+		.h_block = { JPEG_MCU_BLOCK_16, JPEG_MCU_BLOCK_8, JPEG_MCU_BLOCK_8 },
+	},
+	[JPEG_ENCODE_MONO] = {
+		.w_block = { JPEG_MCU_BLOCK_8 },
+		.h_block = { JPEG_MCU_BLOCK_8 }
+	},
+};
+
+static inline int jpeg_get_memory_fmt(u32 fourcc)
+{
+	u32 fi;
+
+	for (fi = 0; fi < ARRAY_SIZE(jpeg_encode_fmt); fi++) {
+		if (jpeg_encode_fmt[fi].fourcc == fourcc)
+			return jpeg_encode_fmt[fi].memory;
+	}
+
+	return -EINVAL;
+}
+
+static inline int jpeg_get_encode_fmt(u32 fourcc)
+{
+	u32 fi;
+
+	for (fi = 0; fi < ARRAY_SIZE(jpeg_encode_fmt); fi++) {
+		if (jpeg_encode_fmt[fi].fourcc == fourcc)
+			return jpeg_encode_fmt[fi].encode;
+	}
+
+	return -EINVAL;
+}
+
+static inline int jpeg_get_mal_boundary(u32 width, const struct qcom_jpeg_mal_boundary *table,
+					u32 count)
+{
+	u32 bi;
+
+	for (bi = 0; bi < count; bi++) {
+		if (table[bi].bytes > width)
+			break;
+	}
+
+	if (!bi)
+		return table[0].boundary;
+
+	if (bi >= count)
+		return table[count - 1].boundary;
+
+	return table[bi - 1].boundary;
+}
+
+static inline int jpeg_get_mcu_geometry(enum qcom_jpeg_encode_fmt fmt, u32 width, u32 height,
+					u32 *blk_w, u32 *blk_h, u32 *mcu_cols, u32 *mcu_rows)
+{
+	const struct qcom_jpeg_scale_blocks *blks;
+	u32 bw = 0, bh = 0;
+	u8 pln;
+
+	blks = &jpeg_mcu_blocks[fmt];
+
+	for (pln = 0; pln < QCOM_JPEG_MAX_PLANES; pln++) {
+		bw = max(bw, blks->w_block[pln]);
+		bh = max(bh, blks->h_block[pln]);
+	}
+
+	if (!bw || !bh)
+		return -EINVAL;
+
+	if (blk_w)
+		*blk_w = bw;
+	if (blk_h)
+		*blk_h = bh;
+
+	if (mcu_cols)
+		*mcu_cols = ALIGN(width, bw) / bw;
+
+	if (mcu_rows)
+		*mcu_rows = ALIGN(height, bh) / bh;
+
+	return 0;
+}
+
+static inline u32 jpeg_io_read(struct qcom_jenc_dev *jenc, u32 offset)
+{
+	return readl(jenc->jpeg_base + offset);
+}
+
+static inline void jpeg_io_write(struct qcom_jenc_dev *jenc, u32 offset, u32 value)
+{
+	writel(value, jenc->jpeg_base + offset);
+}
+
+/*
+ * Runtime bitfield helpers (for non-constant masks).
+ *
+ * Requirements:
+ *  - mask must be non-zero
+ *  - mask must be contiguous (e.g. 0x7u << n)
+ */
+
+static inline u32 jpeg_bits_get(u32 mask, u32 val)
+{
+	/* __ffs(0) is undefined; fail-safe on invalid masks. */
+	if (WARN_ON_ONCE(!mask))
+		return 0;
+
+	return (val & mask) >> __ffs(mask);
+}
+
+static inline u32 jpeg_bits_set(u32 mask, u32 val)
+{
+	/* __ffs(0) is undefined; fail-safe on invalid masks. */
+	if (WARN_ON_ONCE(!mask))
+		return 0;
+
+	return (val << __ffs(mask)) & mask;
+}
+
+static inline u32 jpeg_rd_bits(struct qcom_jenc_dev *jenc, u32 offs, u32 mask)
+{
+	u32 reg = jpeg_io_read(jenc, offs);
+
+	return jpeg_bits_get(mask, reg);
+}
+
+/*
+ * Read-modify-write (for R/W registers)
+ */
+static inline void jpeg_rw_bits(struct qcom_jenc_dev *jenc, u32 offs, u32 mask, u32 val)
+{
+	u32 reg = jpeg_io_read(jenc, offs);
+
+	reg &= ~mask;
+	reg |= jpeg_bits_set(mask, val);
+
+	jpeg_io_write(jenc, offs, reg);
+}
+
+/*
+ * Write-only variant (for write only registers)
+ */
+static inline void jpeg_wo_bits(struct qcom_jenc_dev *jenc, u32 offs, u32 mask, u32 val)
+{
+	jpeg_io_write(jenc, offs, jpeg_bits_set(mask, val));
+}
+
+static u8 jpeg_calculate_dqt(struct jenc_context *ectx, u8 dqt_value)
+{
+	u8 calc_val;
+	u64 ratio;
+
+	ratio = (QCOM_JPEG_QUALITY_MAX - ectx->quality_requested) << JPEG_DQT_SHIFT;
+	ratio = max_t(u64, 1, ratio);
+	do_div(ratio, QCOM_JPEG_QUALITY_MID);
+
+	calc_val = DIV64_U64_ROUND_CLOSEST(ratio * dqt_value, 1LU << JPEG_DQT_SHIFT);
+
+	return max_t(u8, 1, calc_val);
+}
+
+/*
+ * jpeg_update_dqt_cache - compute scaled DQT coefficients and store them in
+ * the software JPEG header cache (hdr_cache).  Safe to call from buf_prepare
+ * before the hardware is powered on; no MMIO access is performed here.
+ */
+static void jpeg_update_dqt_cache(struct jenc_context *ectx)
+{
+	u8 *base;
+	u8 dqt_val, idx;
+	int i;
+
+	/* Luma DQT cache update */
+	if (ectx->hdr_cache.dqt_luma_offs) {
+		base = &ectx->hdr_cache.data[ectx->hdr_cache.dqt_luma_offs + 1];
+		for (i = 0; i < ARRAY_SIZE(t81k1_dct_luma_table); i++) {
+			dqt_val = jpeg_calculate_dqt(ectx, t81k1_dct_luma_table[i]);
+			idx = t81a6_dct_zig_zag_table[i];
+			base[idx] = dqt_val;
+		}
+	}
+
+	/* Chroma DQT cache update */
+	if (ectx->hdr_cache.dqt_chroma_offs) {
+		base = &ectx->hdr_cache.data[ectx->hdr_cache.dqt_chroma_offs + 1];
+		for (i = 0; i < ARRAY_SIZE(t81k2_dct_chroma_table); i++) {
+			dqt_val = jpeg_calculate_dqt(ectx, t81k2_dct_chroma_table[i]);
+			idx = t81a6_dct_zig_zag_table[i];
+			base[idx] = dqt_val;
+		}
+	}
+}
+
+/*
+ * jpeg_upload_dmi_table - write the scaled DQT coefficients to the hardware
+ * DMI registers.  Must only be called from the job execution path where
+ * runtime PM has already been acquired (pm_runtime_resume_and_get).
+ *
+ * Reads precomputed values from hdr_cache (populated by jpeg_update_dqt_cache)
+ * to avoid redundant per-coefficient recalculation on the hot encode path.
+ */
+static void jpeg_upload_dmi_table(struct jenc_context *ectx)
+{
+	const u8 *luma_qt = &ectx->hdr_cache.data[ectx->hdr_cache.dqt_luma_offs + 1];
+	u32 pcfg = JPEG_DMI_ENABLE_UPLOAD;
+	u32 addr = 0x00000000;
+	u32 reg_val;
+	int i;
+
+	/* DMI upload start sequence */
+	jpeg_io_write(ectx->jenc, JPEG_V420_REG_DMI_ADDR, addr);
+	jpeg_io_write(ectx->jenc, JPEG_V420_REG_DMI_CFG, pcfg);
+
+	/* DMI Luma upload - values are stored in zigzag order in hdr_cache */
+	for (i = 0; i < ARRAY_SIZE(t81k1_dct_luma_table); i++) {
+		reg_val = div_u64(U16_MAX + 1U, luma_qt[i]);
+		reg_val = clamp_t(u32, reg_val, 0, U16_MAX);
+		jpeg_io_write(ectx->jenc, JPEG_V420_REG_DMI_DATA, reg_val);
+	}
+
+	/* DMI Chroma upload - only present for color formats */
+	if (ectx->hdr_cache.dqt_chroma_offs) {
+		const u8 *chroma_qt = &ectx->hdr_cache.data[ectx->hdr_cache.dqt_chroma_offs + 1];
+
+		for (i = 0; i < ARRAY_SIZE(t81k2_dct_chroma_table); i++) {
+			reg_val = div_u64(U16_MAX + 1U, chroma_qt[i]);
+			reg_val = clamp_t(u32, reg_val, 0, U16_MAX);
+			jpeg_io_write(ectx->jenc, JPEG_V420_REG_DMI_DATA, reg_val);
+		}
+	}
+
+	/* DMI upload end sequence */
+	jpeg_io_write(ectx->jenc, JPEG_V420_REG_DMI_CFG, addr);
+
+	ectx->quality_programmed = ectx->quality_requested;
+
+	dev_dbg(ectx->dev, "quality_programmed=%d\n", ectx->quality_programmed);
+}
+
+static void jpeg_sync_sg(struct device *dev,
+			 struct qcom_jpeg_buff *frame,
+			 enum dma_data_direction direction, bool for_device)
+{
+	u8 pln;
+
+	for (pln = 0; pln < QCOM_JPEG_MAX_PLANES; pln++) {
+		struct sg_table *sgt = frame->plns[pln].sgt;
+
+		if (!frame->plns[pln].dma || !sgt)
+			break;
+
+		if (for_device)
+			dma_sync_sgtable_for_device(dev, sgt, direction);
+		else
+			dma_sync_sgtable_for_cpu(dev, sgt, direction);
+	}
+}
+
+static int jpeg_init(struct qcom_jenc_dev *jenc)
+{
+	unsigned long rtime;
+	u32 hw_ver;
+
+	if (WARN_ON_ONCE(!jenc || !jenc->dev || !jenc->jpeg_base))
+		return -EINVAL;
+
+	jpeg_wo_bits(jenc, JPEG_V420_REG_INT_CLR, JPEG_V420_IRQ_STATUS_ALL_BITS, JPEG_SET_U32);
+
+	reinit_completion(&jenc->reset_complete);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_INT_MASK,
+		     JPEG_V420_IRQ_STATUS_RESET_ACK_MSK, JPEG_SET_U32);
+
+	jpeg_wo_bits(jenc, JPEG_V420_REG_RESET_CMD,
+		     JPEG_V420_RST_CMD_FE_RESET_MSK			|
+		     JPEG_V420_RST_CMD_WE_RESET_MSK			|
+		     JPEG_V420_RST_CMD_ENCODER_RESET_MSK		|
+		     JPEG_V420_RST_CMD_BLOCK_FORMATTER_RST_MSK	|
+		     JPEG_V420_RST_CMD_SCALE_RESET_MSK			|
+		     JPEG_V420_RST_CMD_REGISTER_RESET_MSK		|
+		     JPEG_V420_RST_CMD_MISR_RESET_MSK			|
+		     JPEG_V420_RST_CMD_CORE_RESET_MSK			|
+		     JPEG_V420_RST_CMD_JPEG_V420_DOMAIN_RESET_MSK,
+		     JPEG_SET_U32);
+
+	rtime = wait_for_completion_timeout(&jenc->reset_complete,
+					    msecs_to_jiffies(JPEG_RESET_TIMEOUT_MS));
+	if (!rtime) {
+		dev_err(jenc->dev, "encoder HW reset timeout\n");
+		return -ETIME;
+	}
+
+	hw_ver = jpeg_io_read(jenc, JPEG_V420_REG_HW_VERSION);
+	dev_dbg(jenc->dev, "JPEG HW encoder version %d.%d.%d\n",
+		jpeg_bits_get(JPEG_V420_HW_VER_MAJOR_MSK, hw_ver),
+		jpeg_bits_get(JPEG_V420_HW_VER_MINOR_MSK, hw_ver),
+		jpeg_bits_get(JPEG_V420_HW_VER_STEP_MSK, hw_ver));
+
+	jpeg_wo_bits(jenc, JPEG_V420_REG_HW_CMD, JPEG_V420_CMD_CLR_RD_PLN0_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_RD_PLN1_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_RD_PLN2_QUEUE_MSK, JPEG_SET_U32);
+	jpeg_wo_bits(jenc, JPEG_V420_REG_HW_CMD, JPEG_V420_CMD_CLR_RD_PLN0_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_RD_PLN1_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_RD_PLN2_QUEUE_MSK, JPEG_CLR_U32);
+
+	jpeg_wo_bits(jenc, JPEG_V420_REG_HW_CMD, JPEG_V420_CMD_CLR_WR_PLN0_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_WR_PLN1_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_WR_PLN2_QUEUE_MSK, JPEG_SET_U32);
+	jpeg_wo_bits(jenc, JPEG_V420_REG_HW_CMD, JPEG_V420_CMD_CLR_WR_PLN0_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_WR_PLN1_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_WR_PLN2_QUEUE_MSK, JPEG_CLR_U32);
+
+	jpeg_wo_bits(jenc, JPEG_V420_REG_INT_CLR, JPEG_V420_IRQ_STATUS_ALL_BITS, JPEG_SET_U32);
+	jpeg_wo_bits(jenc, JPEG_V420_REG_INT_MASK, JPEG_V420_IRQ_STATUS_ALL_BITS, JPEG_SET_U32);
+
+	return 0;
+}
+
+static int jpeg_exec(struct qcom_jenc_dev *jenc)
+{
+	jpeg_wo_bits(jenc, JPEG_V420_REG_HW_CMD, JPEG_V420_CMD_HW_START_MSK, 1);
+
+	return 0;
+}
+
+static void jpeg_stop(struct qcom_jenc_dev *jenc)
+{
+	jpeg_wo_bits(jenc, JPEG_V420_REG_HW_CMD, JPEG_V420_CMD_HW_START_MSK, 0);
+
+	jpeg_wo_bits(jenc, JPEG_V420_REG_HW_CMD, JPEG_V420_CMD_CLR_RD_PLN0_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_RD_PLN1_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_RD_PLN2_QUEUE_MSK, JPEG_SET_U32);
+	jpeg_wo_bits(jenc, JPEG_V420_REG_HW_CMD, JPEG_V420_CMD_CLR_RD_PLN0_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_RD_PLN1_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_RD_PLN2_QUEUE_MSK, JPEG_CLR_U32);
+
+	jpeg_wo_bits(jenc, JPEG_V420_REG_HW_CMD, JPEG_V420_CMD_CLR_WR_PLN0_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_WR_PLN1_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_WR_PLN2_QUEUE_MSK, JPEG_SET_U32);
+	jpeg_wo_bits(jenc, JPEG_V420_REG_HW_CMD, JPEG_V420_CMD_CLR_WR_PLN0_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_WR_PLN1_QUEUE_MSK |
+		     JPEG_V420_CMD_CLR_WR_PLN2_QUEUE_MSK, JPEG_CLR_U32);
+}
+
+static int jpeg_deinit(struct qcom_jenc_dev *jenc)
+{
+	unsigned long rtime;
+
+	jpeg_wo_bits(jenc, JPEG_V420_REG_INT_CLR, JPEG_V420_IRQ_STATUS_ALL_BITS, JPEG_SET_U32);
+
+	reinit_completion(&jenc->stop_complete);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_INT_MASK, JPEG_V420_IRQ_STATUS_STOP_ACK_MSK, JPEG_SET_U32);
+
+	jpeg_wo_bits(jenc, JPEG_V420_REG_HW_CMD, JPEG_V420_CMD_HW_STOP_MSK, 1);
+
+	rtime = wait_for_completion_timeout(&jenc->stop_complete,
+					    msecs_to_jiffies(JPEG_STOP_TIMEOUT_MS));
+	jpeg_wo_bits(jenc, JPEG_V420_REG_INT_MASK, JPEG_V420_IRQ_STATUS_ALL_BITS, JPEG_CLR_U32);
+	jpeg_wo_bits(jenc, JPEG_V420_REG_INT_CLR, JPEG_V420_IRQ_STATUS_ALL_BITS, JPEG_SET_U32);
+
+	if (!rtime) {
+		dev_err(jenc->dev, "encoder HW stop timeout\n");
+		return -ETIME;
+	}
+
+	return 0;
+}
+
+static int jpeg_apply_fe_addr(struct jenc_context *ectx, struct qcom_jenc_queue *q,
+			      struct vb2_buffer *vb)
+{
+	struct qcom_jpeg_buff *frame = &q->buff[vb->index];
+	struct v4l2_pix_format_mplane *fmt = &q->vf;
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	unsigned long flags;
+	u8 pln;
+
+	jpeg_sync_sg(jenc->dev, frame, DMA_TO_DEVICE, true);
+
+	for (pln = 0; pln < fmt->num_planes; pln++) {
+		if (!frame->plns[pln].sgt || !frame->plns[pln].sgt->sgl)
+			break;
+
+		jpeg_io_write(jenc, jpeg_v420_fe_pntr[pln], frame->plns[pln].dma);
+		jpeg_io_write(jenc, jpeg_v420_fe_offs[pln], 0);
+
+		dev_dbg(jenc->dev, "FE pln=%d addr=%pad idx:%d\n",
+			pln, &frame->plns[pln].dma, vb->index);
+	}
+
+	spin_lock_irqsave(&jenc->hw_lock, flags);
+	q->buff_id = vb->index;
+	spin_unlock_irqrestore(&jenc->hw_lock, flags);
+
+	return 0;
+}
+
+static int jpeg_store_fe_next(struct jenc_context *ectx, struct vb2_buffer *vb2)
+{
+	struct qcom_jenc_queue *q = &ectx->bufq[TYPE2QID(vb2->type)];
+	struct qcom_jpeg_buff *buff = &q->buff[vb2->index];
+	u8 pln;
+
+	for (pln = 0; pln < q->vf.num_planes; pln++) {
+		buff->plns[pln].sgt = vb2_dma_sg_plane_desc(vb2, pln);
+		if (!buff->plns[pln].sgt || !buff->plns[pln].sgt->sgl)
+			return -EINVAL;
+
+		buff->plns[pln].dma = sg_dma_address(buff->plns[pln].sgt->sgl);
+		if (!buff->plns[pln].dma)
+			return -EINVAL;
+
+		buff->plns[pln].size = vb2_plane_size(vb2, pln);
+		if (!buff->plns[pln].size)
+			return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int jpeg_setup_fe_size(struct jenc_context *ectx, struct qcom_jenc_queue *q)
+{
+	struct v4l2_pix_format_mplane *sfmt = &q->vf;
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	u8 pln;
+
+	for (pln = 0; pln < QCOM_JPEG_MAX_PLANES; pln++) {
+		jpeg_rw_bits(jenc, jpeg_v420_fe_bsize[pln],
+			     JPEG_V420_PLN_RD_BUFF_SIZE_WIDTH_MSK, 0);
+		jpeg_rw_bits(jenc, jpeg_v420_fe_bsize[pln],
+			     JPEG_V420_PLN_RD_BUFF_SIZE_HEIGHT_MSK, 0);
+		jpeg_rw_bits(jenc, jpeg_v420_fe_stride[pln], JPEG_V420_PLN_RD_STRIDE_STRIDE_MSK, 0);
+	}
+
+	for (pln = 0; pln < sfmt->num_planes; pln++) {
+		jpeg_rw_bits(jenc, jpeg_v420_fe_bsize[pln], JPEG_V420_PLN_RD_BUFF_SIZE_WIDTH_MSK,
+			     sfmt->width  - 1);
+		jpeg_rw_bits(jenc, jpeg_v420_fe_bsize[pln], JPEG_V420_PLN_RD_BUFF_SIZE_HEIGHT_MSK,
+			     sfmt->height  - 1);
+		jpeg_rw_bits(jenc, jpeg_v420_fe_stride[pln], JPEG_V420_PLN_RD_STRIDE_STRIDE_MSK,
+			     sfmt->plane_fmt[pln].bytesperline);
+
+		dev_dbg(ectx->dev, "FE pln=%d width=%d height=%d stride=%d\n",
+			pln,
+			jpeg_rd_bits(jenc, jpeg_v420_fe_bsize[pln],
+				     JPEG_V420_PLN_RD_BUFF_SIZE_WIDTH_MSK),
+			jpeg_rd_bits(jenc, jpeg_v420_fe_bsize[pln],
+				     JPEG_V420_PLN_RD_BUFF_SIZE_HEIGHT_MSK),
+			jpeg_rd_bits(jenc, jpeg_v420_fe_stride[pln],
+				     JPEG_V420_PLN_RD_STRIDE_STRIDE_MSK));
+	}
+
+	return 0;
+}
+
+static int jpeg_setup_fe_hinit(struct jenc_context *ectx, struct qcom_jenc_queue *q)
+{
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	u8 pln;
+
+	for (pln = 0; pln < QCOM_JPEG_MAX_PLANES; pln++)
+		jpeg_io_write(jenc, jpeg_v420_fe_hinit[pln], 0);
+
+	return 0;
+}
+
+static int jpeg_setup_fe_vinit(struct jenc_context *ectx, struct qcom_jenc_queue *q)
+{
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	u8 pln;
+
+	for (pln = 0; pln < QCOM_JPEG_MAX_PLANES; pln++)
+		jpeg_io_write(jenc, jpeg_v420_fe_vinit[pln], 0);
+
+	return 0;
+}
+
+static int jpeg_setup_fe_params(struct jenc_context *ectx, struct qcom_jenc_queue *q)
+{
+	struct v4l2_pix_format_mplane *sfmt = &q->vf;
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	u8 expected_planes, pln;
+	int rval;
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_MAL_EN_MSK, 1);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_BOTTOM_VPAD_EN_MSK, 1);
+
+	rval = jpeg_get_memory_fmt(sfmt->pixelformat);
+	if (rval < 0) {
+		dev_err(ectx->dev, "invalid memory format for v4l2 format: %p4cc\n",
+			&sfmt->pixelformat);
+		return -EINVAL;
+	}
+
+	switch (rval) {
+	case JPEG_MEM_FMT_MONO:
+		expected_planes = 1;
+		break;
+	case JPEG_MEM_FMT_PPLANAR:
+		expected_planes = 2;
+		break;
+	case JPEG_MEM_FMT_PLANAR:
+		expected_planes = 3;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	if (sfmt->num_planes != expected_planes) {
+		dev_err(ectx->dev, "plane mismatch fmt=%u expected=%u got=%u\n",
+			rval, expected_planes, sfmt->num_planes);
+		return -EINVAL;
+	}
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_MEMORY_FORMAT_MSK, rval);
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_PLN0_EN_MSK, 0);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_PLN1_EN_MSK, 0);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_PLN2_EN_MSK, 0);
+
+	/* Scaling is not supported; always configure for 1:1 */
+	jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_SIXTEEN_MCU_EN_MSK, 1);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_MCUS_PER_BLOCK_MSK, 0);
+
+	dev_dbg(ectx->dev, "sixteen MCU enabled=%d, %d MCU per blocks\n",
+		jpeg_rd_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_SIXTEEN_MCU_EN_MSK),
+		jpeg_rd_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_MCUS_PER_BLOCK_MSK));
+
+	rval = jpeg_get_mal_boundary(sfmt->width, jpeg_mal_bounds, ARRAY_SIZE(jpeg_mal_bounds));
+	if (rval < 0) {
+		dev_err(ectx->dev, "failed to get FE mal boundary width=%u\n",
+			sfmt->width);
+		return -EINVAL;
+	}
+	jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_MAL_BOUNDARY_MSK, rval);
+
+	dev_dbg(ectx->dev, "optimal FE mal boundary=%d\n",
+		jpeg_rd_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_MAL_BOUNDARY_MSK));
+
+	rval = jpeg_get_encode_fmt(sfmt->pixelformat);
+	if (rval < 0) {
+		dev_err(ectx->dev, "unsupported encode format %p4cc\n",
+			&sfmt->pixelformat);
+		return -EINVAL;
+	}
+
+	switch (rval) {
+	case JPEG_ENCODE_MONO:
+	case JPEG_ENCODE_H1V1:
+	case JPEG_ENCODE_H2V1:
+		jpeg_rw_bits(jenc, JPEG_V420_REG_FE_VBPAD_CFG, JPEG_V420_FE_VBPAD_CFG_BLOCK_ROW_MSK,
+			     DIV_ROUND_UP(sfmt->height, JPEG_MCU_BLOCK_8));
+		break;
+	case JPEG_ENCODE_H1V2:
+	case JPEG_ENCODE_H2V2:
+		jpeg_rw_bits(jenc, JPEG_V420_REG_FE_VBPAD_CFG, JPEG_V420_FE_VBPAD_CFG_BLOCK_ROW_MSK,
+			     DIV_ROUND_UP(sfmt->height, JPEG_MCU_BLOCK_16));
+		break;
+	default:
+		dev_err(ectx->dev, "unsupported encode format: %d\n", rval);
+		return -EINVAL;
+	}
+
+	dev_dbg(ectx->dev, "FE vpad config=%d\n",
+		jpeg_rd_bits(jenc, JPEG_V420_REG_FE_VBPAD_CFG,
+			     JPEG_V420_FE_VBPAD_CFG_BLOCK_ROW_MSK));
+
+	if (sfmt->pixelformat == V4L2_PIX_FMT_NV21M || sfmt->pixelformat == V4L2_PIX_FMT_NV61M)
+		jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_CBCR_ORDER_MSK, 1);
+	else
+		jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG, JPEG_V420_FE_CFG_CBCR_ORDER_MSK, 0);
+
+	for (pln = 0; pln < sfmt->num_planes; pln++) {
+		if (sfmt->width && sfmt->height) {
+			switch (pln) {
+			case 0:
+				jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG,
+					     JPEG_V420_FE_CFG_PLN0_EN_MSK, 1);
+				break;
+			case 1:
+				jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG,
+					     JPEG_V420_FE_CFG_PLN1_EN_MSK, 1);
+				break;
+			case 2:
+				jpeg_rw_bits(jenc, JPEG_V420_REG_FE_CFG,
+					     JPEG_V420_FE_CFG_PLN2_EN_MSK, 1);
+				break;
+			}
+		}
+	}
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_CORE_CFG, JPEG_V420_CORE_CFG_FE_ENABLE_MSK, 1);
+
+	return 0;
+}
+
+static int jpeg_setup_fe(struct jenc_context *ectx, struct qcom_jenc_queue *q)
+{
+	int rc;
+
+	rc = jpeg_setup_fe_size(ectx, q);
+	if (rc)
+		return rc;
+
+	rc = jpeg_setup_fe_hinit(ectx, q);
+	if (rc)
+		return rc;
+
+	rc = jpeg_setup_fe_vinit(ectx, q);
+	if (rc)
+		return rc;
+
+	rc = jpeg_setup_fe_params(ectx, q);
+	if (rc)
+		return rc;
+
+	return 0;
+}
+
+static int jpeg_ensure_header_cache(struct jenc_context *ectx)
+{
+	struct qcom_jenc_queue *sq = &ectx->bufq[JENC_SRC_QUEUE];
+	int rc;
+
+	if (ectx->hdr_cache.size)
+		return 0;
+
+	rc = qcom_jenc_header_init(&ectx->hdr_cache, sq->vf.pixelformat);
+	if (rc) {
+		dev_err(ectx->dev, "JFIF header lazy init failed\n");
+		return rc;
+	}
+
+	return 0;
+}
+
+static int jpeg_apply_we_addr(struct jenc_context *ectx, struct qcom_jenc_queue *q,
+			      struct vb2_buffer *vb)
+{
+	struct qcom_jpeg_buff *frame = &q->buff[vb->index];
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	void *mptr = vb2_plane_vaddr(vb, 0);
+	dma_addr_t dma = frame->plns[0].dma;
+	unsigned long flags;
+	size_t header_size;
+	int rc;
+	u8 pln = 0;
+
+	if (WARN_ON_ONCE(!dma))
+		return -EPERM;
+
+	if (WARN_ON_ONCE(!mptr))
+		return -EPERM;
+
+	rc = jpeg_ensure_header_cache(ectx);
+	if (rc)
+		return rc;
+
+	/* Update DQT cache if quality changed, then upload to HW DMI. */
+	mutex_lock(&ectx->quality_mutex);
+	if (!ectx->hdr_cache.size || ectx->quality_programmed != ectx->quality_requested)
+		jpeg_update_dqt_cache(ectx);
+	jpeg_upload_dmi_table(ectx);
+	mutex_unlock(&ectx->quality_mutex);
+
+	/*
+	 * Invalidate stale CPU cache lines before writing the JPEG header
+	 * with the CPU into the destination buffer.
+	 */
+	jpeg_sync_sg(jenc->dev, frame, DMA_BIDIRECTIONAL, false);
+
+	header_size = min_t(size_t, vb->planes[0].length, ectx->hdr_cache.size);
+	header_size = qcom_jenc_header_emit(&ectx->hdr_cache, mptr,
+					    (u32)header_size, (u16)q->vf.width,
+					    (u16)q->vf.height);
+
+	dma += header_size;
+	qcom_jenc_dqts_emit(&ectx->hdr_cache, mptr);
+
+	/*
+	 * Flush CPU writes to the header before handing the buffer to the
+	 * hardware DMA engine.
+	 */
+	jpeg_sync_sg(jenc->dev, frame, DMA_BIDIRECTIONAL, true);
+
+	jpeg_io_write(jenc, jpeg_v420_we_pntr[pln], dma);
+
+	dev_dbg(jenc->dev, "WE pln=%d addr=%pad idx:%d\n",
+		pln, &dma, vb->index);
+
+	spin_lock_irqsave(&jenc->hw_lock, flags);
+	q->buff_id = vb->index;
+	spin_unlock_irqrestore(&jenc->hw_lock, flags);
+
+	return 0;
+}
+
+static int jpeg_store_we_next(struct jenc_context *ectx, struct vb2_buffer *vb2)
+{
+	struct qcom_jenc_queue *q = &ectx->bufq[TYPE2QID(vb2->type)];
+	struct qcom_jpeg_buff *frame = &q->buff[vb2->index];
+	struct sg_table *sgt;
+	dma_addr_t dma;
+
+	sgt = vb2_dma_sg_plane_desc(vb2, 0);
+	if (!sgt || !sgt->sgl)
+		return -EINVAL;
+
+	dma = sg_dma_address(sgt->sgl);
+	if (!dma)
+		return -EINVAL;
+
+	if (!vb2_plane_vaddr(vb2, 0))
+		return -EINVAL;
+
+	frame->plns[0].sgt = sgt;
+	frame->plns[0].dma = dma;
+	frame->plns[0].size = vb2_plane_size(vb2, 0);
+
+	return 0;
+}
+
+static int jpeg_setup_we_size(struct jenc_context *ectx, struct qcom_jenc_queue *q)
+{
+	struct v4l2_pix_format_mplane *dfmt = &q->vf;
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	u8 pln;
+
+	for (pln = 0; pln < QCOM_JPEG_MAX_PLANES; pln++)
+		jpeg_rw_bits(jenc, jpeg_v420_we_stride[pln], JPEG_V420_PLN_WR_STRIDE_STRIDE_MSK, 0);
+
+	jpeg_io_write(jenc, JPEG_V420_REG_WE_BSIZE_0, dfmt->plane_fmt[0].sizeimage);
+
+	dev_dbg(ectx->dev, "WE size=%u\n", dfmt->plane_fmt[0].sizeimage);
+
+	return 0;
+}
+
+static int jpeg_setup_we_hinit(struct jenc_context *ectx, struct qcom_jenc_queue *q)
+{
+	struct v4l2_pix_format_mplane *dfmt = &q->vf;
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	u8 pln;
+
+	if (!dfmt->width) {
+		dev_err(ectx->dev, "invalid destination width=%d\n", dfmt->width);
+		return -EINVAL;
+	}
+
+	for (pln = 0; pln < QCOM_JPEG_MAX_PLANES; pln++) {
+		jpeg_rw_bits(jenc, jpeg_v420_we_hinit[pln], JPEG_V420_PLN_WR_HINIT_INTEGER_MSK, 0);
+		jpeg_rw_bits(jenc, jpeg_v420_we_hstep[pln], JPEG_V420_PLN_WR_HSTEP_INTEGER_MSK, 0);
+	}
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_WE_HSTEP_0,
+		     JPEG_V420_PLN_WR_HSTEP_INTEGER_MSK, dfmt->width);
+
+	dev_dbg(ectx->dev, "WE hstep=%u\n",
+		jpeg_rd_bits(jenc, JPEG_V420_REG_WE_HSTEP_0, JPEG_V420_PLN_WR_HSTEP_INTEGER_MSK));
+
+	return 0;
+}
+
+static int jpeg_setup_we_vinit(struct jenc_context *ectx, struct qcom_jenc_queue *q)
+{
+	struct v4l2_pix_format_mplane *dfmt = &q->vf;
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	u8 pln;
+
+	if (!dfmt->height) {
+		dev_err(ectx->dev, "invalid destination height=%d\n", dfmt->height);
+		return -EINVAL;
+	}
+
+	for (pln = 0; pln < QCOM_JPEG_MAX_PLANES; pln++) {
+		jpeg_rw_bits(jenc, jpeg_v420_we_vinit[pln], JPEG_V420_PLN_WR_VINIT_INTEGER_MSK, 0);
+		jpeg_rw_bits(jenc, jpeg_v420_we_vstep[pln], JPEG_V420_PLN_WR_VSTEP_INTEGER_MSK, 0);
+	}
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_WE_VSTEP_0,
+		     JPEG_V420_PLN_WR_VSTEP_INTEGER_MSK, dfmt->height);
+
+	dev_dbg(ectx->dev, "WE vstep=%u\n",
+		jpeg_rd_bits(jenc, JPEG_V420_REG_WE_VSTEP_0, JPEG_V420_PLN_WR_VSTEP_INTEGER_MSK));
+
+	return 0;
+}
+
+static int jpeg_setup_we_params(struct jenc_context *ectx, struct qcom_jenc_queue *q)
+{
+	struct v4l2_pix_format_mplane *dfmt = &q->vf;
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	u32 blk_w = 0, blk_h = 0, mcu_cols = 0, mcu_rows = 0;
+	int rval;
+
+	rval = jpeg_get_memory_fmt(dfmt->pixelformat);
+	if (rval < 0) {
+		dev_err(ectx->dev, "invalid memory format for v4l2 format: %p4cc\n",
+			&dfmt->pixelformat);
+		return -EINVAL;
+	}
+	jpeg_rw_bits(jenc, JPEG_V420_REG_WE_CFG, JPEG_V420_WE_CFG_MEMORY_FORMAT_MSK, rval);
+
+	rval = jpeg_get_mal_boundary(dfmt->width, jpeg_mal_bounds, ARRAY_SIZE(jpeg_mal_bounds));
+	if (rval < 0) {
+		dev_err(ectx->dev, "failed to get WE mal boundary width=%u\n",
+			dfmt->width);
+		return -EINVAL;
+	}
+	jpeg_rw_bits(jenc, JPEG_V420_REG_WE_CFG, JPEG_V420_WE_CFG_MAL_BOUNDARY_MSK, rval);
+
+	dev_dbg(ectx->dev, "optimal WE mal boundary=%d\n",
+		jpeg_rd_bits(jenc, JPEG_V420_REG_WE_CFG, JPEG_V420_WE_CFG_MAL_BOUNDARY_MSK));
+
+	rval = jpeg_get_encode_fmt(dfmt->pixelformat);
+	if (rval < 0) {
+		dev_err(ectx->dev, "unsupported encode format %p4cc\n",
+			&dfmt->pixelformat);
+		return rval;
+	}
+
+	rval = jpeg_get_mcu_geometry(rval, dfmt->width, dfmt->height, &blk_w, &blk_h,
+				     &mcu_cols, &mcu_rows);
+	if (rval < 0) {
+		dev_err(ectx->dev, "invalid MCU geometry mcu_cols=%d mcu_rows=%d\n",
+			mcu_cols, mcu_rows);
+		return rval;
+	}
+
+	dev_dbg(ectx->dev, "WE blk_w=%u blk_h=%u cols=%u rows=%u\n",
+		blk_w, blk_h, mcu_cols, mcu_rows);
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_WE_BLOCKS_0,
+		     JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_ROW_MSK, mcu_rows - 1);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_WE_BLOCKS_0,
+		     JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_COL_MSK, mcu_cols - 1);
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_WE_CFG, JPEG_V420_WE_CFG_CBCR_ORDER_MSK, 1);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_WE_CFG, JPEG_V420_WE_CFG_MAL_EN_MSK, 1);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_WE_CFG, JPEG_V420_WE_CFG_POP_BUFF_ON_EOS_MSK, 1);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_WE_CFG, JPEG_V420_WE_CFG_PLN0_EN_MSK, 1);
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_CORE_CFG, JPEG_V420_CORE_CFG_MODE_MSK, 1);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_CORE_CFG, JPEG_V420_CORE_CFG_WE_ENABLE_MSK, 1);
+
+	return 0;
+}
+
+static int jpeg_setup_we(struct jenc_context *ectx, struct qcom_jenc_queue *q)
+{
+	int rc;
+
+	rc = jpeg_setup_we_size(ectx, q);
+	if (rc)
+		return rc;
+
+	rc = jpeg_setup_we_hinit(ectx, q);
+	if (rc)
+		return rc;
+
+	rc = jpeg_setup_we_vinit(ectx, q);
+	if (rc)
+		return rc;
+
+	return jpeg_setup_we_params(ectx, q);
+}
+
+static int jpeg_setup_scale(struct jenc_context *ectx)
+{
+	struct qcom_jenc_queue *sq = &ectx->bufq[JENC_SRC_QUEUE];
+	struct qcom_jenc_queue *dq = &ectx->bufq[JENC_DST_QUEUE];
+	struct v4l2_pix_format_mplane *sfmt = &sq->vf;
+	struct v4l2_pix_format_mplane *dfmt = &dq->vf;
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	u32 blk_w = 0, blk_h = 0, mcu_cols = 0, mcu_rows = 0;
+	int rval;
+	u8 pln;
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_RESET_CMD, JPEG_V420_RST_CMD_SCALE_RESET_MSK, 1);
+
+	/* explicit no scaling */
+	jpeg_rw_bits(jenc, JPEG_V420_REG_SCALE_CFG, JPEG_V420_SCALE_CFG_HSCALE_ENABLE_MSK, 0);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_SCALE_CFG, JPEG_V420_SCALE_CFG_VSCALE_ENABLE_MSK, 0);
+
+	for (pln = 0; pln < QCOM_JPEG_MAX_PLANES; pln++) {
+		jpeg_io_write(jenc, jpeg_v420_scale_hstep[pln], JPEG_DEFAULT_SCALE_STEP);
+		jpeg_io_write(jenc, jpeg_v420_scale_vstep[pln], JPEG_DEFAULT_SCALE_STEP);
+	}
+
+	rval = jpeg_get_encode_fmt(sfmt->pixelformat);
+	if (rval < 0) {
+		dev_err(ectx->dev, "unsupported encode format %p4cc\n",
+			&sfmt->pixelformat);
+		return -EINVAL;
+	}
+
+	rval = jpeg_get_mcu_geometry(rval, dfmt->width, dfmt->height, &blk_w, &blk_h,
+				     &mcu_cols, &mcu_rows);
+	if (rval < 0) {
+		dev_err(ectx->dev, "invalid MCU geometry blk_w=%d blk_h=%d\n",
+			blk_w, blk_h);
+		return -EINVAL;
+	}
+
+	dev_dbg(ectx->dev, "scale blk_w=%u blk_h=%u cols=%u rows=%u\n",
+		blk_w, blk_h, mcu_cols, mcu_rows);
+
+	for (pln = 0; pln < sq->vf.num_planes; pln++) {
+		jpeg_rw_bits(jenc, jpeg_v420_scale_out_cfg[pln],
+			     JPEG_V420_SCALE_OUT_CFG_BLOCK_WIDTH_MSK, blk_w - 1);
+		jpeg_rw_bits(jenc, jpeg_v420_scale_out_cfg[pln],
+			     JPEG_V420_SCALE_OUT_CFG_BLOCK_HEIGHT_MSK, blk_h - 1);
+	}
+
+	dev_dbg(ectx->dev, "scale src=%ux%u dst=%ux%u enable=%d/%d\n",
+		sfmt->width, sfmt->height, dfmt->width, dfmt->height,
+		jpeg_rd_bits(jenc, JPEG_V420_REG_SCALE_CFG, JPEG_V420_SCALE_CFG_HSCALE_ENABLE_MSK),
+		jpeg_rd_bits(jenc, JPEG_V420_REG_SCALE_CFG, JPEG_V420_SCALE_CFG_VSCALE_ENABLE_MSK));
+
+	/* Disabled, but must be configured */
+	jpeg_rw_bits(jenc, JPEG_V420_REG_CORE_CFG, JPEG_V420_CORE_CFG_SCALE_ENABLE_MSK, 0);
+
+	return 0;
+}
+
+static int jpeg_setup_encode(struct jenc_context *ectx)
+{
+	struct qcom_jenc_queue *sq = &ectx->bufq[JENC_SRC_QUEUE];
+	struct v4l2_pix_format_mplane *sfmt = &sq->vf;
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	u32 blk_w = 0, blk_h = 0, mcu_cols = 0, mcu_rows = 0;
+	int rval;
+
+	if (!sfmt->width || !sfmt->height)
+		return -EINVAL;
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_RESET_CMD, JPEG_V420_RST_CMD_ENCODER_RESET_MSK, 1);
+
+	rval = jpeg_get_encode_fmt(sfmt->pixelformat);
+	if (rval < 0) {
+		dev_err(ectx->dev, "unsupported encode format %p4cc\n",
+			&sfmt->pixelformat);
+		return -EINVAL;
+	}
+	jpeg_rw_bits(jenc, JPEG_V420_REG_ENC_CFG, JPEG_V420_ENC_CFG_IMAGE_FORMAT_MSK, rval);
+
+	rval = jpeg_get_mcu_geometry(rval, sfmt->width, sfmt->height, &blk_w, &blk_h,
+				     &mcu_cols, &mcu_rows);
+	if (rval < 0) {
+		dev_err(ectx->dev, "invalid MCU geometry mcu_cols=%d mcu_rows=%d\n",
+			mcu_cols, mcu_rows);
+		return -EINVAL;
+	}
+
+	dev_dbg(ectx->dev, "encode blk_w=%u blk_h=%u cols=%u rows=%u\n",
+		blk_w, blk_h, mcu_cols, mcu_rows);
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_ENC_IMG_SIZE,
+		     JPEG_V420_ENC_IMG_SIZE_ENCODE_WIDTH_MSK, mcu_cols - 1);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_ENC_IMG_SIZE,
+		     JPEG_V420_ENC_IMG_SIZE_ENCODE_HEIGHT_MSK, mcu_rows - 1);
+
+	dev_dbg(ectx->dev, "encode width=%d height=%d\n",
+		jpeg_rd_bits(jenc, JPEG_V420_REG_ENC_IMG_SIZE,
+			     JPEG_V420_ENC_IMG_SIZE_ENCODE_WIDTH_MSK),
+		jpeg_rd_bits(jenc, JPEG_V420_REG_ENC_IMG_SIZE,
+			     JPEG_V420_ENC_IMG_SIZE_ENCODE_HEIGHT_MSK));
+
+	jpeg_rw_bits(jenc, JPEG_V420_REG_ENC_CFG, JPEG_V420_ENC_CFG_APPLY_EOI_MSK, 1);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_CORE_CFG, JPEG_V420_CORE_CFG_ENC_ENABLE_MSK, 1);
+
+	return 0;
+}
+
+static irqreturn_t op_jpeg_irq_bot(int irq, void *data)
+{
+	struct qcom_jenc_dev *jenc = data;
+	unsigned long flags;
+	u32 irq_status;
+	u32 irq_mask;
+
+	irq_status = READ_ONCE(jenc->pending_irq_status);
+
+	irq_mask = JPEG_V420_IRQ_STATUS_SESSION_DONE_MSK;
+	if (jpeg_bits_get(irq_mask, irq_status)) {
+		struct jenc_context *ctx;
+
+		spin_lock_irqsave(&jenc->hw_lock, flags);
+		ctx = jenc->actx;
+		jenc->actx = NULL;
+		spin_unlock_irqrestore(&jenc->hw_lock, flags);
+
+		if (ctx && ctx->bufq[JENC_DST_QUEUE].buff_id >= 0) {
+			struct qcom_jenc_queue *dq = &ctx->bufq[JENC_DST_QUEUE];
+			struct qcom_jpeg_buff *frame = &dq->buff[dq->buff_id];
+			size_t out_size = jpeg_rd_bits(jenc, JPEG_V420_REG_ENC_OUT_SIZE,
+						       JPEG_V420_STATUS_OUT_SIZE_BYTES_MSK);
+
+			dev_dbg(jenc->dev, "complete idx:%d addr=%pad size=%zu\n",
+				dq->buff_id, &frame->plns[0].dma, out_size);
+
+			jenc->enc_hw_irq_cb(ctx, VB2_BUF_STATE_DONE,
+					    out_size + ctx->hdr_cache.size);
+		}
+
+		jpeg_stop(jenc);
+	}
+
+	irq_mask = JPEG_V420_IRQ_STATUS_SESION_ERROR_MSK;
+	if (jpeg_bits_get(irq_mask, irq_status)) {
+		struct jenc_context *ctx;
+
+		spin_lock_irqsave(&jenc->hw_lock, flags);
+		ctx = jenc->actx;
+		jenc->actx = NULL;
+		spin_unlock_irqrestore(&jenc->hw_lock, flags);
+
+		dev_err(jenc->dev, "encoder hardware failure=0x%x\n",
+			jpeg_bits_get(irq_mask, irq_status));
+		if (ctx)
+			jenc->enc_hw_irq_cb(ctx, VB2_BUF_STATE_ERROR, 0);
+
+		jpeg_stop(jenc);
+	}
+
+	return IRQ_HANDLED;
+}
+
+static irqreturn_t op_jpeg_irq_top(int irq, void *data)
+{
+	struct qcom_jenc_dev *jenc = data;
+	unsigned long flags;
+	u32 irq_status;
+	u32 irq_mask;
+
+	spin_lock_irqsave(&jenc->hw_lock, flags);
+
+	irq_status = jpeg_io_read(jenc, JPEG_V420_REG_INT_STATUS);
+	jpeg_wo_bits(jenc, JPEG_V420_REG_INT_CLR, JPEG_V420_IRQ_STATUS_ALL_BITS, irq_status);
+
+	irq_mask = JPEG_V420_IRQ_STATUS_RESET_ACK_MSK;
+	if (jpeg_bits_get(irq_mask, irq_status)) {
+		complete(&jenc->reset_complete);
+		spin_unlock_irqrestore(&jenc->hw_lock, flags);
+		return IRQ_HANDLED;
+	}
+
+	irq_mask = JPEG_V420_IRQ_STATUS_STOP_ACK_MSK;
+	if (jpeg_bits_get(irq_mask, irq_status)) {
+		complete(&jenc->stop_complete);
+		dev_dbg(jenc->dev, "hardware stop acknowledged\n");
+		spin_unlock_irqrestore(&jenc->hw_lock, flags);
+		return IRQ_HANDLED;
+	}
+
+	WRITE_ONCE(jenc->pending_irq_status, irq_status);
+
+	spin_unlock_irqrestore(&jenc->hw_lock, flags);
+
+	return IRQ_WAKE_THREAD;
+}
+
+static void op_jpeg_get_hw_caps(struct qcom_jenc_dev *jenc, u32 *caps)
+{
+	u32 hw_caps;
+
+	hw_caps = jpeg_io_read(jenc, JPEG_V420_REG_HW_CAPABILITY);
+	dev_dbg(jenc->dev, "CAPS: encode=%d decode=%d upscale=%d downscale=%d\n",
+		jpeg_bits_get(JPEG_V420_HW_CAP_ENCODE_MSK, hw_caps),
+		jpeg_bits_get(JPEG_V420_HW_CAP_DECODE_MSK, hw_caps),
+		jpeg_bits_get(JPEG_V420_HW_CAP_UPSCALE_MSK, hw_caps),
+		jpeg_bits_get(JPEG_V420_HW_CAP_DOWNSCALE_MSK, hw_caps));
+
+	*caps = hw_caps;
+}
+
+static struct qcom_jenc_queue *op_jpeg_get_buff_queue(struct jenc_context *ectx,
+						      enum qcom_enc_qid id)
+{
+	return &ectx->bufq[id];
+}
+
+static int op_jpeg_queue_setup(struct jenc_context *ectx, enum qcom_enc_qid id)
+{
+	int rc;
+
+	if (id == JENC_SRC_QUEUE) {
+		struct qcom_jenc_queue *q = &ectx->bufq[id];
+
+		rc = qcom_jenc_header_init(&ectx->hdr_cache, q->vf.pixelformat);
+		if (rc) {
+			dev_err(ectx->dev, "JFIF header init failed\n");
+			return rc;
+		}
+	}
+
+	return 0;
+}
+
+static int op_jpeg_src_fmt_update(struct jenc_context *ectx, u32 old_fourcc, u32 new_fourcc)
+{
+	bool old_is_mono = (old_fourcc == V4L2_PIX_FMT_GREY);
+	bool new_is_mono = (new_fourcc == V4L2_PIX_FMT_GREY);
+	int rc;
+
+	/* header layout changes only for mono <-> color source format switch */
+	if (old_is_mono == new_is_mono)
+		return 0;
+
+	rc = qcom_jenc_header_init(&ectx->hdr_cache, new_fourcc);
+	if (rc) {
+		dev_err(ectx->dev, "JFIF header reinit failed\n");
+		return rc;
+	}
+
+	/* force DQT upload after source profile switch */
+	mutex_lock(&ectx->quality_mutex);
+	ectx->quality_programmed = 0;
+	mutex_unlock(&ectx->quality_mutex);
+
+	return 0;
+}
+
+static int op_jpeg_buffer_prepare(struct jenc_context *ectx, struct vb2_buffer *vb2)
+{
+	int rc;
+
+	if (V4L2_TYPE_IS_OUTPUT(vb2->type)) {
+		rc = jpeg_store_fe_next(ectx, vb2);
+		if (rc)
+			dev_err(ectx->dev, "cannot set up fetch engine address\n");
+	} else {
+		rc = jpeg_store_we_next(ectx, vb2);
+		if (rc)
+			dev_err(ectx->dev, "cannot set up write engine address\n");
+	}
+
+	return rc;
+}
+
+static int op_jpeg_process_exec(struct qcom_jenc_dev *jenc, struct jenc_context *ectx,
+				struct vb2_buffer *vb)
+{
+	struct qcom_jenc_queue *sq = &ectx->bufq[JENC_SRC_QUEUE];
+	struct qcom_jenc_queue *dq = &ectx->bufq[JENC_DST_QUEUE];
+	unsigned long flags;
+	int rc;
+
+	spin_lock_irqsave(&jenc->hw_lock, flags);
+	jenc->actx = ectx;
+	spin_unlock_irqrestore(&jenc->hw_lock, flags);
+
+	if (V4L2_TYPE_IS_OUTPUT(vb->type)) {
+		rc = jpeg_setup_fe(ectx, sq);
+		if (rc)
+			goto err_clear_ctx;
+
+		rc = jpeg_apply_fe_addr(ectx, sq, vb);
+		if (rc)
+			goto err_clear_ctx;
+	} else {
+		rc = jpeg_setup_we(ectx, dq);
+		if (rc)
+			goto err_clear_ctx;
+
+		rc = jpeg_apply_we_addr(ectx, dq, vb);
+		if (rc)
+			goto err_clear_ctx;
+	}
+
+	/* Both src and dst buffers queued for this frame â€” trigger encode. */
+	if (sq->sequence == dq->sequence) {
+		rc = jpeg_setup_scale(ectx);
+		if (rc)
+			goto err_clear_ctx;
+
+		rc = jpeg_setup_encode(ectx);
+		if (rc)
+			goto err_clear_ctx;
+
+		jpeg_exec(jenc);
+	}
+
+	return 0;
+
+err_clear_ctx:
+	spin_lock_irqsave(&jenc->hw_lock, flags);
+	if (jenc->actx == ectx)
+		jenc->actx = NULL;
+	spin_unlock_irqrestore(&jenc->hw_lock, flags);
+
+	return rc;
+}
+
+static int op_jpeg_prepare(struct qcom_jenc_dev *jenc)
+{
+	jpeg_rw_bits(jenc, JPEG_V420_REG_RESET_CMD, JPEG_V420_RST_CMD_ENCODER_RESET_MSK, 1);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_RESET_CMD, JPEG_V420_RST_CMD_BLOCK_FORMATTER_RST_MSK, 1);
+	jpeg_rw_bits(jenc, JPEG_V420_REG_RESET_CMD, JPEG_V420_RST_CMD_CORE_RESET_MSK, 1);
+
+	return 0;
+}
+
+static unsigned long jpeg_calc_optimal_clk(struct qcom_jenc_dev *jenc,
+					   u32 width, u32 height, u32 fps)
+{
+	const struct qcom_dev_resources *res = jenc->res;
+	unsigned long ref_pixel_rate;
+	unsigned long optimal_clk;
+	unsigned long pixel_rate;
+
+	if (!width || !height || !fps)
+		return jenc->max_freq;
+
+	ref_pixel_rate = res->ref_throughput_mpps * 1000000UL;
+	pixel_rate = (unsigned long)width * height * fps;
+
+	optimal_clk = DIV_ROUND_UP_ULL(pixel_rate * res->ref_clk_hz, ref_pixel_rate);
+
+	return min_t(unsigned long, jenc->max_freq, optimal_clk);
+}
+
+static unsigned long jpeg_get_optimal_frequency(struct jenc_context *ectx)
+{
+	struct qcom_jenc_queue *sq = &ectx->bufq[JENC_SRC_QUEUE];
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	u32 fps;
+
+	/*
+	 * If adaptive performance scaling is not requested always run at
+	 * highest clock level for deterministic latency.
+	 */
+	if (!v4l2_ctrl_g_ctrl(ectx->perf_level_auto_ctl))
+		return jenc->max_freq;
+
+	fps = (u32)v4l2_ctrl_g_ctrl(ectx->fps_target_ctl);
+	fps = clamp(fps, (u32)QCOM_JPEG_FPS_MIN, (u32)QCOM_JPEG_FPS_MAX);
+
+	return jpeg_calc_optimal_clk(jenc, sq->vf.width, sq->vf.height, fps);
+}
+
+static int op_jpeg_acquire(struct jenc_context *ectx, struct vb2_queue *q)
+{
+	struct qcom_jenc_queue *sq = &ectx->bufq[JENC_SRC_QUEUE];
+	struct qcom_jenc_queue *dq = &ectx->bufq[JENC_DST_QUEUE];
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	int rc;
+
+	/* reset per-context stream state for each (re)acquire */
+	sq->sequence = 0;
+	sq->buff_id = -1;
+	dq->sequence = 0;
+	dq->buff_id = -1;
+	/*
+	 * Recreate JPEG header lazily per destination buffer to tolerate
+	 * different valid V4L2 call orders (e.g. STREAMON before first QBUF).
+	 */
+	ectx->hdr_cache.size = 0;
+	/* force DQT upload on first frame after (re)acquire */
+	mutex_lock(&ectx->quality_mutex);
+	ectx->quality_programmed = 0;
+	mutex_unlock(&ectx->quality_mutex);
+
+	if (atomic_inc_return(&jenc->ref_count) == 1) {
+		jenc->opt_freq = jpeg_get_optimal_frequency(ectx);
+
+		dev_dbg(jenc->dev, "freq=%lu src=%ux%u\n", jenc->opt_freq,
+			sq->vf.width, sq->vf.height);
+
+		rc = pm_runtime_resume_and_get(jenc->dev);
+		if (rc < 0) {
+			dev_err(jenc->dev, "PM runtime get failed\n");
+			atomic_dec(&jenc->ref_count);
+			return rc;
+		}
+
+		enable_irq(jenc->irq);
+
+		rc = jpeg_init(jenc);
+		if (rc) {
+			dev_err(jenc->dev, "hardware init failed\n");
+			disable_irq(jenc->irq);
+			atomic_dec(&jenc->ref_count);
+			pm_runtime_put_sync(jenc->dev);
+			return rc;
+		}
+	}
+
+	return 0;
+}
+
+static int op_jpeg_release(struct jenc_context *ectx, struct vb2_queue *q)
+{
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	int rc = 0;
+	int pm_rc;
+	int ref;
+
+	ref = atomic_dec_if_positive(&jenc->ref_count);
+	if (ref < 0) {
+		WARN_ON_ONCE(1);
+		return 0;
+	}
+
+	if (!ref) {
+		rc = jpeg_deinit(jenc);
+		if (rc)
+			dev_err(jenc->dev, "hardware exit failed\n");
+
+		disable_irq(jenc->irq);
+
+		pm_rc = pm_runtime_put_sync(jenc->dev);
+		if (pm_rc < 0) {
+			dev_err(jenc->dev, "PM runtime put failed\n");
+			if (!rc)
+				rc = pm_rc;
+		}
+
+		dev_dbg(jenc->dev, "JPEG HW encoder released\n");
+	}
+
+	return rc;
+}
+
+const struct qcom_jpeg_hw_ops qcom_jpeg_default_ops = {
+	.hw_get_cap	= op_jpeg_get_hw_caps,
+	.hw_acquire	= op_jpeg_acquire,
+	.hw_release	= op_jpeg_release,
+	.hw_prepare	= op_jpeg_prepare,
+	.get_queue	= op_jpeg_get_buff_queue,
+	.queue_setup	= op_jpeg_queue_setup,
+	.src_fmt_update	= op_jpeg_src_fmt_update,
+	.buf_prepare	= op_jpeg_buffer_prepare,
+	.process_exec	= op_jpeg_process_exec,
+	.hw_irq_top	= op_jpeg_irq_top,
+	.hw_irq_bot	= op_jpeg_irq_bot
+};
diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_ops.h b/drivers/media/platform/qcom/jpeg/qcom_jenc_ops.h
new file mode 100644
index 000000000000..5a64e33a28b0
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_ops.h
@@ -0,0 +1,52 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef QCOM_JENC_OPS_H
+#define QCOM_JENC_OPS_H
+
+#include <linux/device.h>
+#include <linux/types.h>
+#include <media/videobuf2-core.h>
+
+#include "qcom_jenc_dev.h"
+
+/*
+ * JENC encoder hardware operations.
+ */
+struct qcom_jpeg_hw_ops {
+	void (*hw_get_cap)
+		(struct qcom_jenc_dev *jenc_dev, u32 *hw_caps);
+
+	int (*hw_acquire)
+		(struct jenc_context *ectx, struct vb2_queue *queue);
+
+	int (*hw_release)
+		(struct jenc_context *ectx, struct vb2_queue *queue);
+
+	int (*hw_prepare)
+		(struct qcom_jenc_dev *jenc);
+
+	struct qcom_jenc_queue * (*get_queue)
+		(struct jenc_context *ectx, enum qcom_enc_qid id);
+
+	int (*queue_setup)
+		(struct jenc_context *ectx, enum qcom_enc_qid id);
+
+	int (*src_fmt_update)
+		(struct jenc_context *ectx, u32 old_fourcc, u32 new_fourcc);
+
+	int (*buf_prepare)
+		(struct jenc_context *ectx, struct vb2_buffer *vb2);
+
+	int (*process_exec)
+		(struct qcom_jenc_dev *jenc, struct jenc_context *ectx, struct vb2_buffer *vb2);
+
+	irqreturn_t (*hw_irq_top)(int irq_num, void *data);
+	irqreturn_t (*hw_irq_bot)(int irq_num, void *data);
+};
+
+extern const struct qcom_jpeg_hw_ops qcom_jpeg_default_ops;
+
+#endif /* QCOM_JENC_OPS_H */
diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_res.c b/drivers/media/platform/qcom/jpeg/qcom_jenc_res.c
new file mode 100644
index 000000000000..f9ab7c86792f
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_res.c
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#include "qcom_jenc_ops.h"
+#include "qcom_jenc_res.h"
+
+#include "qcom_jenc_v420_hw_info.h"
+
+const struct qcom_dev_resources qcom_t165_t480_jpeg_drvdata = {
+	.hw_ops			= &qcom_jpeg_default_ops,
+	.ref_clk_hz		= 600000000UL,
+	.ref_throughput_mpps	= 110UL,
+};
diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_res.h b/drivers/media/platform/qcom/jpeg/qcom_jenc_res.h
new file mode 100644
index 000000000000..91c6e789cffa
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_res.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef QCOM_JENC_RES_H
+#define QCOM_JENC_RES_H
+
+#include "qcom_jenc_defs.h"
+
+struct qcom_dev_resources {
+	const struct qcom_jpeg_hw_ops	*hw_ops;
+	unsigned long			ref_clk_hz;
+	unsigned long			ref_throughput_mpps;
+};
+
+extern const struct qcom_dev_resources qcom_t165_t480_jpeg_drvdata;
+
+#endif	/* QCOM_JENC_RES_H */
diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_v420_hw_info.h b/drivers/media/platform/qcom/jpeg/qcom_jenc_v420_hw_info.h
new file mode 100644
index 000000000000..ebf69128cc2b
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_v420_hw_info.h
@@ -0,0 +1,410 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef QCOM_JENC_V420_HW_INFO_H
+#define QCOM_JENC_V420_HW_INFO_H
+
+#include "qcom_jenc_defs.h"
+
+#define JPEG_V420_HW_VER_STEP_POS 0
+#define JPEG_V420_HW_VER_STEP_MSK \
+	(0xffffu << JPEG_V420_HW_VER_STEP_POS)
+
+#define JPEG_V420_HW_VER_MINOR_POS 16
+#define JPEG_V420_HW_VER_MINOR_MSK \
+	(0x0fffu << JPEG_V420_HW_VER_MINOR_POS)
+
+#define JPEG_V420_HW_VER_MAJOR_POS 28
+#define JPEG_V420_HW_VER_MAJOR_MSK \
+	(0xfu << JPEG_V420_HW_VER_MAJOR_POS)
+
+#define JPEG_V420_HW_CAP_ENCODE_MSK BIT_U32(0)
+#define JPEG_V420_HW_CAP_DECODE_MSK BIT_U32(1)
+
+#define JPEG_V420_HW_CAP_UPSCALE_POS 4
+#define JPEG_V420_HW_CAP_UPSCALE_MSK \
+	(0x7u << JPEG_V420_HW_CAP_UPSCALE_POS)
+
+#define JPEG_V420_HW_CAP_DOWNSCALE_POS 8
+#define JPEG_V420_HW_CAP_DOWNSCALE_MSK \
+	(0x7u << JPEG_V420_HW_CAP_DOWNSCALE_POS)
+
+#define JPEG_V420_RST_CMD_FE_RESET_MSK			BIT_U32(0)
+#define JPEG_V420_RST_CMD_WE_RESET_MSK			BIT_U32(1)
+#define JPEG_V420_RST_CMD_ENCODER_RESET_MSK		BIT_U32(4)
+#define JPEG_V420_RST_CMD_DECODER_RESET_MSK		BIT_U32(5)
+#define JPEG_V420_RST_CMD_BLOCK_FORMATTER_RST_MSK	BIT_U32(6)
+#define JPEG_V420_RST_CMD_SCALE_RESET_MSK		BIT_U32(7)
+#define JPEG_V420_RST_CMD_REGISTER_RESET_MSK		BIT_U32(13)
+#define JPEG_V420_RST_CMD_MISR_RESET_MSK		BIT_U32(16)
+#define JPEG_V420_RST_CMD_CORE_RESET_MSK		BIT_U32(17)
+#define JPEG_V420_RST_CMD_JPEG_V420_DOMAIN_RESET_MSK	BIT_U32(29)
+#define JPEG_V420_RST_CMD_RESET_BYPASS_MSK		BIT_U32(31)
+
+#define JPEG_V420_CORE_CFG_FE_ENABLE_MSK	BIT_U32(0)
+#define JPEG_V420_CORE_CFG_WE_ENABLE_MSK	BIT_U32(1)
+#define JPEG_V420_CORE_CFG_ENC_ENABLE_MSK	BIT_U32(4)
+#define JPEG_V420_CORE_CFG_SCALE_ENABLE_MSK	BIT_U32(7)
+#define JPEG_V420_CORE_CFG_TESTBUS_ENABLE_MSK	BIT_U32(19)
+#define JPEG_V420_CORE_CFG_MODE_MSK		BIT_U32(24)
+#define JPEG_V420_CORE_CFG_CGC_DISABLE_MSK	BIT_U32(31)
+
+#define JPEG_V420_CMD_HW_START_MSK		BIT_U32(0)
+#define JPEG_V420_CMD_HW_STOP_MSK		BIT_U32(1)
+#define JPEG_V420_CMD_CLR_RD_PLN0_QUEUE_MSK	BIT_U32(4)
+#define JPEG_V420_CMD_CLR_RD_PLN1_QUEUE_MSK	BIT_U32(5)
+#define JPEG_V420_CMD_CLR_RD_PLN2_QUEUE_MSK	BIT_U32(6)
+#define JPEG_V420_CMD_CLR_WR_PLN0_QUEUE_MSK	BIT_U32(8)
+#define JPEG_V420_CMD_CLR_WR_PLN1_QUEUE_MSK	BIT_U32(9)
+#define JPEG_V420_CMD_CLR_WR_PLN2_QUEUE_MSK	BIT_U32(10)
+#define JPEG_V420_CMD_APPLY_SWC_RD_PARAMS_MSK	BIT_U32(11)
+
+#define JPEG_V420_CORE_STATE_STATUS_ENCODE_STATE_MSK	BIT_U32(0)
+#define JPEG_V420_CORE_STATE_STATUS_SCALE_STATE_MSK	BIT_U32(2)
+#define JPEG_V420_CORE_STATE_STATUS_REALTIME_STATE_MSK	BIT_U32(4)
+#define JPEG_V420_CORE_STATE_STATUS_BUS_STATE_MSK	BIT_U32(8)
+#define JPEG_V420_CORE_STATE_STATUS_CGC_STATE_MSK	BIT_U32(9)
+
+#define JPEG_V420_FE_CFG_BYTE_ORDERING_POS 0
+#define JPEG_V420_FE_CFG_BYTE_ORDERING_MSK \
+	(0xfu << JPEG_V420_FE_CFG_BYTE_ORDERING_POS)
+
+#define JPEG_V420_FE_CFG_BURST_LENGTH_MAX_POS 4
+#define JPEG_V420_FE_CFG_BURST_LENGTH_MAX_MSK \
+	(0xfu << JPEG_V420_FE_CFG_BURST_LENGTH_MAX_POS)
+
+#define JPEG_V420_FE_CFG_MEMORY_FORMAT_POS 8
+#define JPEG_V420_FE_CFG_MEMORY_FORMAT_MSK \
+	(0x3u << JPEG_V420_FE_CFG_MEMORY_FORMAT_POS)
+
+#define JPEG_V420_FE_CFG_CBCR_ORDER_MSK		BIT_U32(12)
+#define JPEG_V420_FE_CFG_BOTTOM_VPAD_EN_MSK	BIT_U32(13)
+#define JPEG_V420_FE_CFG_PLN0_EN_MSK		BIT_U32(16)
+#define JPEG_V420_FE_CFG_PLN1_EN_MSK		BIT_U32(17)
+#define JPEG_V420_FE_CFG_PLN2_EN_MSK		BIT_U32(18)
+#define JPEG_V420_FE_CFG_SIXTEEN_MCU_EN_MSK	BIT_U32(21)
+#define JPEG_V420_FE_CFG_MCUS_PER_BLOCK_MSK	BIT_U32(22)
+#define JPEG_V420_FE_CFG_MAL_BOUNDARY_MSK	BIT_U32(24)
+#define JPEG_V420_FE_CFG_MAL_EN_MSK		BIT_U32(27)
+
+#define JPEG_V420_PLN_RD_OFFS_OFFSET_POS 0
+#define JPEG_V420_PLN_RD_OFFS_OFFSET_MSK \
+	(0x1fffffffu << JPEG_V420_PLN_RD_OFFS_OFFSET_POS)
+
+#define JPEG_V420_PLN_RD_BUFF_SIZE_WIDTH_POS 0
+#define JPEG_V420_PLN_RD_BUFF_SIZE_WIDTH_MSK \
+	(0xffffu << JPEG_V420_PLN_RD_BUFF_SIZE_WIDTH_POS)
+
+#define JPEG_V420_PLN_RD_BUFF_SIZE_HEIGHT_POS 16
+#define JPEG_V420_PLN_RD_BUFF_SIZE_HEIGHT_MSK \
+	(0xffffu << JPEG_V420_PLN_RD_BUFF_SIZE_HEIGHT_POS)
+
+#define JPEG_V420_PLN_RD_STRIDE_STRIDE_POS 0
+#define JPEG_V420_PLN_RD_STRIDE_STRIDE_MSK \
+	(0xffffu << JPEG_V420_PLN_RD_STRIDE_STRIDE_POS)
+
+#define JPEG_V420_PLN_RD_HINIT_FRACTIONAL_POS 0
+#define JPEG_V420_PLN_RD_HINIT_FRACTIONAL_MSK \
+	(0x1fffffu << JPEG_V420_PLN_RD_HINIT_FRACTIONAL_POS)
+
+#define JPEG_V420_PLN_RD_VINIT_FRACTIONAL_POS 0
+#define JPEG_V420_PLN_RD_VINIT_FRACTIONAL_MSK \
+	(0x1fffffu << JPEG_V420_PLN_RD_VINIT_FRACTIONAL_POS)
+
+#define JPEG_V420_WE_CFG_BYTE_ORDERING_POS 0
+#define JPEG_V420_WE_CFG_BYTE_ORDERING_MSK \
+	(0xfu << JPEG_V420_WE_CFG_BYTE_ORDERING_POS)
+
+#define JPEG_V420_WE_CFG_BURST_LENGTH_MAX_POS 4
+#define JPEG_V420_WE_CFG_BURST_LENGTH_MAX_MSK \
+	(0xfu << JPEG_V420_WE_CFG_BURST_LENGTH_MAX_POS)
+
+#define JPEG_V420_WE_CFG_MEMORY_FORMAT_POS 8
+#define JPEG_V420_WE_CFG_MEMORY_FORMAT_MSK \
+	(0x3u << JPEG_V420_WE_CFG_MEMORY_FORMAT_POS)
+
+#define JPEG_V420_WE_CFG_CBCR_ORDER_MSK		BIT_U32(12)
+#define JPEG_V420_WE_CFG_PLN0_EN_MSK		BIT_U32(16)
+#define JPEG_V420_WE_CFG_PLN1_EN_MSK		BIT_U32(17)
+#define JPEG_V420_WE_CFG_PLN2_EN_MSK		BIT_U32(18)
+#define JPEG_V420_WE_CFG_MAL_BOUNDARY_MSK	BIT_U32(24)
+#define JPEG_V420_WE_CFG_MAL_EN_MSK		BIT_U32(27)
+#define JPEG_V420_WE_CFG_POP_BUFF_ON_EOS_MSK	BIT_U32(28)
+
+#define JPEG_V420_PLN_WR_BUFF_SIZE_WIDTH_POS 0
+#define JPEG_V420_PLN_WR_BUFF_SIZE_WIDTH_MSK \
+	(0xffffu << JPEG_V420_PLN_WR_BUFF_SIZE_WIDTH_POS)
+
+#define JPEG_V420_PLN_WR_BUFF_SIZE_HEIGHT_POS 16
+#define JPEG_V420_PLN_WR_BUFF_SIZE_HEIGHT_MSK \
+	(0xffffu << JPEG_V420_PLN_WR_BUFF_SIZE_HEIGHT_POS)
+
+#define JPEG_V420_PLN_WR_STRIDE_STRIDE_POS 0
+#define JPEG_V420_PLN_WR_STRIDE_STRIDE_MSK \
+	(0xffffu << JPEG_V420_PLN_WR_STRIDE_STRIDE_POS)
+
+#define JPEG_V420_PLN_WR_HINIT_INTEGER_POS 0
+#define JPEG_V420_PLN_WR_HINIT_INTEGER_MSK \
+	(0xffffu << JPEG_V420_PLN_WR_HINIT_INTEGER_POS)
+
+#define JPEG_V420_PLN_WR_VINIT_INTEGER_POS 0
+#define JPEG_V420_PLN_WR_VINIT_INTEGER_MSK \
+	(0xffffu << JPEG_V420_PLN_WR_VINIT_INTEGER_POS)
+
+#define JPEG_V420_PLN_WR_HSTEP_INTEGER_POS 0
+#define JPEG_V420_PLN_WR_HSTEP_INTEGER_MSK \
+	(0x1ffffu << JPEG_V420_PLN_WR_HSTEP_INTEGER_POS)
+
+#define JPEG_V420_PLN_WR_VSTEP_INTEGER_POS 0
+#define JPEG_V420_PLN_WR_VSTEP_INTEGER_MSK \
+	(0x1ffffu << JPEG_V420_PLN_WR_VSTEP_INTEGER_POS)
+
+#define JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_COL_POS 0
+#define JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_COL_MSK \
+	(0xffffu << JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_COL_POS)
+
+#define JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_ROW_POS 16
+#define JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_ROW_MSK \
+	(0xffffu << JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_ROW_POS)
+
+#define JPEG_V420_ENC_CFG_IMAGE_FORMAT_POS 0
+#define JPEG_V420_ENC_CFG_IMAGE_FORMAT_MSK \
+	(0x7u << JPEG_V420_ENC_CFG_IMAGE_FORMAT_POS)
+
+#define JPEG_V420_ENC_CFG_APPLY_EOI_MSK		BIT_U32(7)
+#define JPEG_V420_ENC_CFG_HUFFMAN_SEL_MSK	BIT_U32(8)
+#define JPEG_V420_ENC_CFG_FSC_ENABLE_MSK	BIT_U32(11)
+#define JPEG_V420_ENC_CFG_OUTPUT_DISABLE_MSK	BIT_U32(15)
+#define JPEG_V420_ENC_CFG_RST_MARKER_PERIOD_MSK	BIT_U32(16)
+
+#define JPEG_V420_ENC_IMG_SIZE_ENCODE_WIDTH_POS 0u
+#define JPEG_V420_ENC_IMG_SIZE_ENCODE_WIDTH_MSK \
+	(0x1fffu << JPEG_V420_ENC_IMG_SIZE_ENCODE_WIDTH_POS)
+
+#define JPEG_V420_ENC_IMG_SIZE_ENCODE_HEIGHT_POS 16u
+#define JPEG_V420_ENC_IMG_SIZE_ENCODE_HEIGHT_MSK \
+	(0x1fffu << JPEG_V420_ENC_IMG_SIZE_ENCODE_HEIGHT_POS)
+
+#define JPEG_V420_STATUS_OUT_SIZE_BYTES_POS 0
+#define JPEG_V420_STATUS_OUT_SIZE_BYTES_MSK \
+	(0x1fffffffu << JPEG_V420_STATUS_OUT_SIZE_BYTES_POS)
+
+#define JPEG_V420_SCALE_CFG_HSCALE_ENABLE_MSK		BIT_U32(4)
+#define JPEG_V420_SCALE_CFG_VSCALE_ENABLE_MSK		BIT_U32(5)
+#define JPEG_V420_SCALE_CFG_UPSAMPLE_EN_MSK		BIT_U32(6)
+#define JPEG_V420_SCALE_CFG_SUBSAMPLE_EN_MSK		BIT_U32(7)
+#define JPEG_V420_SCALE_CFG_HSCALE_ALGO_MSK		BIT_U32(8)
+#define JPEG_V420_SCALE_CFG_VSCALE_ALGO_MSK		BIT_U32(9)
+
+#define JPEG_V420_SCALE_CFG_H_SCALE_FIR_ALGO_POS  12u
+#define JPEG_V420_SCALE_CFG_H_SCALE_FIR_ALGO_MSK \
+	(0x3u << JPEG_V420_SCALE_CFG_H_SCALE_FIR_ALGO_POS)
+
+#define JPEG_V420_SCALE_CFG_V_SCALE_FIR_ALGO_POS  16u
+#define JPEG_V420_SCALE_CFG_V_SCALE_FIR_ALGO_MSK \
+	(0x3u << JPEG_V420_SCALE_CFG_V_SCALE_FIR_ALGO_POS)
+
+#define JPEG_V420_SCALE_OUT_CFG_BLOCK_WIDTH_POS 0
+#define JPEG_V420_SCALE_OUT_CFG_BLOCK_WIDTH_MSK \
+	(0xffu << JPEG_V420_SCALE_OUT_CFG_BLOCK_WIDTH_POS)
+
+#define JPEG_V420_SCALE_OUT_CFG_BLOCK_HEIGHT_POS 16
+#define JPEG_V420_SCALE_OUT_CFG_BLOCK_HEIGHT_MSK \
+	(0xfu << JPEG_V420_SCALE_OUT_CFG_BLOCK_HEIGHT_POS)
+
+#define JPEG_V420_SCALE_PLN_HSTEP_FRACTIONAL_POS 0
+#define JPEG_V420_SCALE_PLN_HSTEP_FRACTIONAL_MSK \
+	(0x1fffffu << JPEG_V420_SCALE_PLN_HSTEP_FRACTIONAL_POS)
+
+#define JPEG_V420_SCALE_PLN_HSTEP_INTEGER_POS 21
+#define JPEG_V420_SCALE_PLN_HSTEP_INTEGER_MSK \
+	(0x3fu << JPEG_V420_SCALE_PLN_HSTEP_INTEGER_POS)
+
+#define JPEG_V420_SCALE_PLN_VSTEP_FRACTIONAL_POS 0
+#define JPEG_V420_SCALE_PLN_VSTEP_FRACTIONAL_MSK \
+	(0x1fffffu << JPEG_V420_SCALE_PLN_VSTEP_FRACTIONAL_POS)
+
+#define JPEG_V420_SCALE_PLN_VSTEP_INTEGER_POS 21
+#define JPEG_V420_SCALE_PLN_VSTEP_INTEGER_MSK \
+	(0x3fu << JPEG_V420_SCALE_PLN_VSTEP_INTEGER_POS)
+
+#define JPEG_V420_DMI_CFG_MEM_SEL_POS 0
+#define JPEG_V420_DMI_CFG_MEM_SEL_MSK \
+	(0x7u << JPEG_V420_DMI_CFG_MEM_SEL_POS)
+
+#define JPEG_V420_DMI_CFG_AUTO_INC_EN_MSK	BIT_U32(4)
+
+/* DMI_CFG value to select quantization table memory and enable auto-increment */
+#define JPEG_DMI_ENABLE_UPLOAD			(JPEG_V420_DMI_CFG_AUTO_INC_EN_MSK | 0x1u)
+
+#define JPEG_V420_DMI_ADDR_ADDR_POS 0
+#define JPEG_V420_DMI_ADDR_ADDR_MSK \
+	(0x3ffu << JPEG_V420_DMI_ADDR_ADDR_POS)
+
+#define JPEG_V420_TESTBUS_CFG_BUS_SEL_POS 0
+#define JPEG_V420_TESTBUS_CFG_BUS_SEL_MSK \
+	(0x3fu << JPEG_V420_TESTBUS_CFG_BUS_SEL_POS)
+
+#define JPEG_V420_FE_VBPAD_CFG_BLOCK_ROW_POS 0
+#define JPEG_V420_FE_VBPAD_CFG_BLOCK_ROW_MSK \
+	(0x1fffu << JPEG_V420_FE_VBPAD_CFG_BLOCK_ROW_POS)
+
+#define JPEG_V420_PLN_RD_HINIT_INT_INTEGER_POS 0
+#define JPEG_V420_PLN_RD_HINIT_INT_INTEGER_MSK \
+	(0x1ffffu << JPEG_V420_PLN_RD_HINIT_INT_INTEGER_POS)
+
+#define JPEG_V420_PLN_RD_VINIT_INT_INTEGER_POS 0
+#define JPEG_V420_PLN_RD_VINIT_INT_INTEGER_MSK \
+	(0x1ffffu << JPEG_V420_PLN_RD_VINIT_INT_INTEGER_POS)
+
+#define JPEG_V420_IRQ_STATUS_SESSION_DONE_MSK		BIT_U32(0)
+#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN0_DONE_MSK	BIT_U32(4)
+#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN1_DONE_MSK	BIT_U32(5)
+#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN2_DONE_MSK	BIT_U32(6)
+#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN0_REQ_ATTN_MSK	BIT_U32(7)
+#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN1_REQ_ATTN_MSK	BIT_U32(8)
+#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN2_REQ_ATTN_MSK	BIT_U32(9)
+#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_DONE_MSK	BIT_U32(10)
+#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN1_DONE_MSK	BIT_U32(11)
+#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN2_DONE_MSK	BIT_U32(12)
+#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_REQ_ATTN_MSK	BIT_U32(13)
+#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN1_REQ_ATTN_MSK	BIT_U32(14)
+#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN2_REQ_ATTN_MSK	BIT_U32(15)
+#define JPEG_V420_IRQ_STATUS_DCD_UNESCAPED_FF_MSK	BIT_U32(19)
+#define JPEG_V420_IRQ_STATUS_DCD_HUFFMAN_ERROR_MSK	BIT_U32(20)
+#define JPEG_V420_IRQ_STATUS_DCD_COEFF_ERROR_MSK	BIT_U32(21)
+#define JPEG_V420_IRQ_STATUS_DCD_MISSING_BITSTUFF_MSK	BIT_U32(22)
+#define JPEG_V420_IRQ_STATUS_DCD_SCAN_UNDERFLOW_MSK	BIT_U32(23)
+#define JPEG_V420_IRQ_STATUS_DCD_INVALID_RSM_MSK	BIT_U32(24)
+#define JPEG_V420_IRQ_STATUS_DCD_INVALID_RSM_SEQ_MSK	BIT_U32(25)
+#define JPEG_V420_IRQ_STATUS_DCD_MISSING_RSM_MSK	BIT_U32(26)
+#define JPEG_V420_IRQ_STATUS_STOP_ACK_MSK		BIT_U32(27)
+#define JPEG_V420_IRQ_STATUS_RESET_ACK_MSK		BIT_U32(28)
+
+#define	JPEG_V420_IRQ_STATUS_RD_BUF_PLNS_DONE_MSK \
+	(JPEG_V420_IRQ_STATUS_RD_BUF_PLN0_DONE_MSK	| \
+	 JPEG_V420_IRQ_STATUS_RD_BUF_PLN1_DONE_MSK	| \
+	 JPEG_V420_IRQ_STATUS_RD_BUF_PLN2_DONE_MSK)
+
+#define	JPEG_V420_IRQ_STATUS_WR_BUF_PLNS_DONE_MSK \
+	(JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_DONE_MSK	| \
+	 JPEG_V420_IRQ_STATUS_WR_BUF_PLN1_DONE_MSK	| \
+	 JPEG_V420_IRQ_STATUS_WR_BUF_PLN2_DONE_MSK)
+
+#define	JPEG_V420_IRQ_STATUS_RD_BUF_PLNS_REQ_ATTN_MSK \
+	(JPEG_V420_IRQ_STATUS_RD_BUF_PLN0_REQ_ATTN_MSK	| \
+	 JPEG_V420_IRQ_STATUS_RD_BUF_PLN1_REQ_ATTN_MSK	| \
+	 JPEG_V420_IRQ_STATUS_RD_BUF_PLN2_REQ_ATTN_MSK)
+
+#define	JPEG_V420_IRQ_STATUS_WR_BUF_PLNS_REQ_ATTN_MSK \
+	(JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_REQ_ATTN_MSK	| \
+	 JPEG_V420_IRQ_STATUS_WR_BUF_PLN1_REQ_ATTN_MSK	| \
+	 JPEG_V420_IRQ_STATUS_WR_BUF_PLN2_REQ_ATTN_MSK)
+
+#define	JPEG_V420_IRQ_STATUS_SESION_ERROR_MSK \
+	(JPEG_V420_IRQ_STATUS_DCD_UNESCAPED_FF_MSK	| \
+	 JPEG_V420_IRQ_STATUS_DCD_HUFFMAN_ERROR_MSK	| \
+	 JPEG_V420_IRQ_STATUS_DCD_COEFF_ERROR_MSK	| \
+	 JPEG_V420_IRQ_STATUS_DCD_MISSING_BITSTUFF_MSK	| \
+	 JPEG_V420_IRQ_STATUS_DCD_SCAN_UNDERFLOW_MSK	| \
+	 JPEG_V420_IRQ_STATUS_DCD_INVALID_RSM_MSK	| \
+	 JPEG_V420_IRQ_STATUS_DCD_INVALID_RSM_SEQ_MSK	| \
+	 JPEG_V420_IRQ_STATUS_DCD_MISSING_RSM_MSK)
+
+#define JPEG_V420_IRQ_STATUS_ALL_BITS \
+	(JPEG_V420_IRQ_STATUS_SESSION_DONE_MSK		| \
+	 JPEG_V420_IRQ_STATUS_RD_BUF_PLNS_DONE_MSK	| \
+	 JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_DONE_MSK	| \
+	 JPEG_V420_IRQ_STATUS_RD_BUF_PLNS_REQ_ATTN_MSK	| \
+	 JPEG_V420_IRQ_STATUS_WR_BUF_PLNS_REQ_ATTN_MSK	| \
+	 JPEG_V420_IRQ_STATUS_SESION_ERROR_MSK		| \
+	 JPEG_V420_IRQ_STATUS_STOP_ACK_MSK		| \
+	 JPEG_V420_IRQ_STATUS_RESET_ACK_MSK)
+
+/* Register offsets for JPEG v4.2.0 hardware */
+#define JPEG_V420_REG_HW_VERSION	0x000
+#define JPEG_V420_REG_HW_CAPABILITY	0x004
+#define JPEG_V420_REG_RESET_CMD		0x008
+#define JPEG_V420_REG_CORE_CFG		0x00c
+#define JPEG_V420_REG_HW_CMD		0x010
+#define JPEG_V420_REG_ENC_CORE_STATE	0x014
+#define JPEG_V420_REG_INT_MASK		0x018
+#define JPEG_V420_REG_INT_CLR		0x01c
+#define JPEG_V420_REG_INT_STATUS	0x020
+#define JPEG_V420_REG_FE_CFG		0x024
+
+/* FE (fetch engine) plane registers */
+#define JPEG_V420_REG_FE_PNTR_0		0x038
+#define JPEG_V420_REG_FE_PNTR_1		0x044
+#define JPEG_V420_REG_FE_PNTR_2		0x050
+#define JPEG_V420_REG_FE_OFFS_0		0x03c
+#define JPEG_V420_REG_FE_OFFS_1		0x048
+#define JPEG_V420_REG_FE_OFFS_2		0x054
+#define JPEG_V420_REG_FE_PNTR_CNT	0x05c
+#define JPEG_V420_REG_FE_BSIZE_0	0x060
+#define JPEG_V420_REG_FE_BSIZE_1	0x068
+#define JPEG_V420_REG_FE_BSIZE_2	0x070
+#define JPEG_V420_REG_FE_STRIDE_0	0x064
+#define JPEG_V420_REG_FE_STRIDE_1	0x06c
+#define JPEG_V420_REG_FE_STRIDE_2	0x08c
+#define JPEG_V420_REG_FE_HINIT_0	0x074
+#define JPEG_V420_REG_FE_HINIT_1	0x078
+#define JPEG_V420_REG_FE_HINIT_2	0x07c
+#define JPEG_V420_REG_FE_VINIT_0	0x080
+#define JPEG_V420_REG_FE_VINIT_1	0x084
+#define JPEG_V420_REG_FE_VINIT_2	0x088
+#define JPEG_V420_REG_FE_VBPAD_CFG	0x2e8
+
+/* WE (write engine) plane registers */
+#define JPEG_V420_REG_WE_CFG		0x0c0
+#define JPEG_V420_REG_WE_PNTR_CNT	0x0e4
+#define JPEG_V420_REG_WE_PNTR_0		0x0cc
+#define JPEG_V420_REG_WE_PNTR_1		0x0d0
+#define JPEG_V420_REG_WE_PNTR_2		0x0d4
+#define JPEG_V420_REG_WE_BSIZE_0	0x0e8
+#define JPEG_V420_REG_WE_BSIZE_1	0x0ec
+#define JPEG_V420_REG_WE_BSIZE_2	0x0f0
+#define JPEG_V420_REG_WE_STRIDE_0	0x0f4
+#define JPEG_V420_REG_WE_STRIDE_1	0x0f8
+#define JPEG_V420_REG_WE_STRIDE_2	0x0fc
+#define JPEG_V420_REG_WE_HINIT_0	0x100
+#define JPEG_V420_REG_WE_HINIT_1	0x104
+#define JPEG_V420_REG_WE_HINIT_2	0x108
+#define JPEG_V420_REG_WE_VINIT_0	0x10c
+#define JPEG_V420_REG_WE_VINIT_1	0x110
+#define JPEG_V420_REG_WE_VINIT_2	0x114
+#define JPEG_V420_REG_WE_HSTEP_0	0x118
+#define JPEG_V420_REG_WE_HSTEP_1	0x11c
+#define JPEG_V420_REG_WE_HSTEP_2	0x120
+#define JPEG_V420_REG_WE_VSTEP_0	0x124
+#define JPEG_V420_REG_WE_VSTEP_1	0x128
+#define JPEG_V420_REG_WE_VSTEP_2	0x12c
+#define JPEG_V420_REG_WE_BLOCKS_0	0x130
+#define JPEG_V420_REG_WE_BLOCKS_1	0x134
+#define JPEG_V420_REG_WE_BLOCKS_2	0x138
+
+/* Encoder registers */
+#define JPEG_V420_REG_ENC_CFG		0x13c
+#define JPEG_V420_REG_ENC_IMG_SIZE	0x140
+#define JPEG_V420_REG_ENC_OUT_SIZE	0x180
+
+/* Scaler registers */
+#define JPEG_V420_REG_SCALE_CFG		0x26c
+#define JPEG_V420_REG_SCALE_OUT_CFG_0	0x270
+#define JPEG_V420_REG_SCALE_OUT_CFG_1	0x274
+#define JPEG_V420_REG_SCALE_OUT_CFG_2	0x278
+#define JPEG_V420_REG_SCALE_HSTEP_0	0x27c
+#define JPEG_V420_REG_SCALE_HSTEP_1	0x280
+#define JPEG_V420_REG_SCALE_HSTEP_2	0x284
+#define JPEG_V420_REG_SCALE_VSTEP_0	0x28c
+#define JPEG_V420_REG_SCALE_VSTEP_1	0x290
+#define JPEG_V420_REG_SCALE_VSTEP_2	0x294
+
+/* DMI registers */
+#define JPEG_V420_REG_DMI_CFG		0x298
+#define JPEG_V420_REG_DMI_ADDR		0x29c
+#define JPEG_V420_REG_DMI_DATA		0x2a0
+
+#endif /* QCOM_JENC_V420_HW_INFO_H */
diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.c b/drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.c
new file mode 100644
index 000000000000..aca96b454ea2
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.c
@@ -0,0 +1,1154 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/videodev2.h>
+
+#include <media/v4l2-common.h>
+#include <media/v4l2-ctrls.h>
+#include <media/v4l2-device.h>
+#include <media/v4l2-event.h>
+#include <media/v4l2-fh.h>
+#include <media/v4l2-mem2mem.h>
+#include <media/videobuf2-dma-sg.h>
+#include <media/videobuf2-v4l2.h>
+
+#include "qcom_jenc_defs.h"
+#include "qcom_jenc_dev.h"
+#include "qcom_jenc_ops.h"
+#include "qcom_jenc_v4l2.h"
+
+static const struct v4l2_frmsizeenum jpeg_def_frmsize = {
+	.stepwise = {
+		.min_width	= QCOM_JPEG_HW_MIN_WIDTH,
+		.max_width	= QCOM_JPEG_HW_MAX_WIDTH,
+		.step_width	= QCOM_JPEG_HW_DEF_HSTEP,
+		.min_height	= QCOM_JPEG_HW_MIN_HEIGHT,
+		.max_height	= QCOM_JPEG_HW_MAX_HEIGHT,
+		.step_height	= QCOM_JPEG_HW_DEF_VSTEP,
+	},
+	.type = V4L2_FRMSIZE_TYPE_STEPWISE
+};
+
+static const struct jenc_enc_format jpeg_src_formats[] = {
+	{
+		.fourcc	= V4L2_PIX_FMT_NV12M,
+		.type	= V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+	},
+	{
+		.fourcc	= V4L2_PIX_FMT_NV21M,
+		.type	= V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+	},
+	{
+		.fourcc	= V4L2_PIX_FMT_GREY,
+		.type	= V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+	},
+};
+
+#define JPEG_SRC_FMT_COUNT ARRAY_SIZE(jpeg_src_formats)
+
+static const struct jenc_enc_format jpeg_dst_formats[] = {
+	{
+		.fourcc	= V4L2_PIX_FMT_JPEG,
+		.type	= V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE,
+	}
+};
+
+#define JPEG_DST_FMT_COUNT ARRAY_SIZE(jpeg_dst_formats)
+
+static inline struct jenc_context *jpeg_file2ctx(struct file *file)
+{
+	return container_of(file_to_v4l2_fh(file), struct jenc_context, fh);
+}
+
+static struct qcom_jenc_queue *jpeg_get_bufq(struct jenc_context *ectx, enum qcom_enc_qid id)
+{
+	return &ectx->bufq[id];
+}
+
+static bool jpeg_v4l2_queues_busy(struct jenc_context *ctx)
+{
+	struct vb2_queue *out_q;
+	struct vb2_queue *cap_q;
+
+	out_q = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE);
+
+	cap_q = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE);
+
+	return vb2_is_busy(out_q) || vb2_is_busy(cap_q);
+}
+
+static bool jpeg_is_invalid_src(struct jenc_context *ectx, u32 type)
+{
+	bool is_invalid = (type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE);
+
+	if (is_invalid)
+		dev_dbg(ectx->dev, "invalid src type or format\n");
+
+	return is_invalid;
+}
+
+static bool jpeg_is_invalid_dst(struct jenc_context *ectx, u32 type)
+{
+	bool is_invalid = (type != V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE);
+
+	if (is_invalid)
+		dev_dbg(ectx->dev, "invalid dst type or format\n");
+
+	return is_invalid;
+}
+
+static const struct jenc_enc_format *jpeg_find_pix_format(enum qcom_enc_qid id, u32 fourcc)
+{
+	const struct jenc_enc_format *efmt;
+	unsigned int i, count;
+
+	if (id == JENC_SRC_QUEUE) {
+		count = JPEG_SRC_FMT_COUNT;
+		efmt = &jpeg_src_formats[0];
+	} else {
+		count = JPEG_DST_FMT_COUNT;
+		efmt = &jpeg_dst_formats[0];
+	}
+
+	for (i = 0; i < count; i++) {
+		if (efmt[i].fourcc == fourcc)
+			return &efmt[i];
+	}
+
+	return NULL;
+}
+
+static const struct jenc_enc_format *jpeg_get_format(struct jenc_context *ectx,
+						     enum qcom_enc_qid qid, u32 pixelformat)
+{
+	const struct jenc_enc_format *efmt = jpeg_find_pix_format(qid, pixelformat);
+
+	if (!efmt)
+		efmt = (qid == JENC_SRC_QUEUE) ? &jpeg_src_formats[0] : &jpeg_dst_formats[0];
+
+	return efmt;
+}
+
+static int jpeg_update_src_planes(const struct jenc_enc_format *ef, struct v4l2_format *v4f)
+{
+	const struct v4l2_format_info *info = v4l2_format_info(ef->fourcc);
+	struct v4l2_pix_format_mplane *f = &v4f->fmt.pix_mp;
+	int rc;
+
+	if (!info)
+		return -EINVAL;
+
+	f->pixelformat = ef->fourcc;
+
+	f->field	= V4L2_FIELD_NONE;
+	f->colorspace	= V4L2_COLORSPACE_SRGB;
+	f->xfer_func	= V4L2_MAP_XFER_FUNC_DEFAULT(f->colorspace);
+	f->ycbcr_enc	= V4L2_MAP_YCBCR_ENC_DEFAULT(f->colorspace);
+	f->quantization =
+		V4L2_MAP_QUANTIZATION_DEFAULT(f->ycbcr_enc == V4L2_YCBCR_ENC_601,
+					      f->colorspace, f->ycbcr_enc);
+
+	v4l2_apply_frmsize_constraints(&f->width, &f->height, &jpeg_def_frmsize.stepwise);
+
+	rc = v4l2_fill_pixfmt_mp(f, ef->fourcc, f->width, f->height);
+	if (rc)
+		return rc;
+
+	return 0;
+}
+
+static void jpeg_update_dst_plane(const struct jenc_enc_format *ef, struct v4l2_format *v4f)
+{
+	struct v4l2_pix_format_mplane *f = &v4f->fmt.pix_mp;
+	u32 nbx, nby;
+	u64 size;
+
+	f->pixelformat  = ef->fourcc;
+	f->field	= V4L2_FIELD_NONE;
+	f->colorspace	= V4L2_COLORSPACE_SRGB;
+	f->xfer_func	= V4L2_MAP_XFER_FUNC_DEFAULT(f->colorspace);
+	f->ycbcr_enc	= V4L2_MAP_YCBCR_ENC_DEFAULT(f->colorspace);
+	f->quantization =
+		V4L2_MAP_QUANTIZATION_DEFAULT(f->ycbcr_enc == V4L2_YCBCR_ENC_601,
+					      f->colorspace, f->ycbcr_enc);
+
+	v4l2_apply_frmsize_constraints(&f->width, &f->height, &jpeg_def_frmsize.stepwise);
+
+	/*
+	 * JPEG is a variable-size format. The output size cannot be derived
+	 * from bits per point or line stride.
+	 *
+	 * Provide a conservative upper bound based on worst-case entropy
+	 * coding of 8x8 DCT blocks:
+	 *
+	 * - Each 8x8 block has 64 coefficients (1 DC + 63 AC).
+	 * - In worst-case (high-entropy input, low quantization), all
+	 *   coefficients may be non-zero.
+	 * - Huffman coding then emits (code + magnitude bits) per coefficient,
+	 *   which can approach ~2 bytes per coefficient in the worst case.
+	 *
+	 * => Worst-case is 64 coefficients * 2 bytes = 128 bytes per 8x8 block
+	 * => approximately 2 bytes per point
+	 *
+	 * This bound implicitly covers byte stuffing (0xFF escaping) and is
+	 * conservative with respect to subsampled formats (e.g. 4:2:0).
+	 *
+	 * Additional margin is added for headers and alignment.
+	 *
+	 * Note: This is a conservative upper bound, not an exact size.
+	 */
+
+	nbx = DIV_ROUND_UP(f->width,  8);
+	nby = DIV_ROUND_UP(f->height, 8);
+
+	size = nbx * nby * 128;
+	size += JPEG_HEADER_MAX; /* JPEG header written by CPU before HW DMA */
+	size += SZ_4K;           /* safety margin and alignment */
+
+	f->plane_fmt[0].bytesperline = 0;
+	f->plane_fmt[0].sizeimage    = ALIGN(size, SZ_4K);
+}
+
+static int jpeg_enum_fmt_src(struct v4l2_fmtdesc *f)
+{
+	if (f->index >= JPEG_SRC_FMT_COUNT)
+		return -EINVAL;
+
+	f->pixelformat = jpeg_src_formats[f->index].fourcc;
+
+	return 0;
+}
+
+static int jpeg_enum_fmt_dst(struct v4l2_fmtdesc *f)
+{
+	if (f->index >= JPEG_DST_FMT_COUNT)
+		return -EINVAL;
+
+	f->pixelformat = jpeg_dst_formats[f->index].fourcc;
+
+	return 0;
+}
+
+static int jpeg_v4l2_try_format(struct jenc_context *ectx, struct v4l2_format *f)
+{
+	struct v4l2_pix_format_mplane *pm = &f->fmt.pix_mp;
+	const struct jenc_enc_format *ef;
+	int rc;
+
+	/* The function always returns valid driver format */
+	ef = jpeg_get_format(ectx, TYPE2QID(f->type), pm->pixelformat);
+
+	dev_dbg(ectx->dev, "type=%d %p4cc\n",
+		TYPE2QID(f->type), &ef->fourcc);
+
+	if (V4L2_TYPE_IS_CAPTURE(f->type)) {
+		f->fmt.pix_mp.num_planes = 1;
+
+		jpeg_update_dst_plane(ef, f);
+
+		dev_dbg(ectx->dev, "\tImage: %dx%d Size:%9d\n", f->fmt.pix_mp.width,
+			f->fmt.pix_mp.height, f->fmt.pix_mp.plane_fmt[0].sizeimage);
+	} else {
+		const struct v4l2_format_info *info = v4l2_format_info(ef->fourcc);
+		u8 pln = 0;
+
+		if (!info)
+			return -EINVAL;
+
+		f->fmt.pix_mp.num_planes = info->comp_planes;
+
+		rc = jpeg_update_src_planes(ef, f);
+		if (rc)
+			return rc;
+
+		for (pln = 0; pln < f->fmt.pix_mp.num_planes; pln++)
+			dev_dbg(ectx->dev, "\tImage: %dx%d BPL:%5d Size:%9d\n",
+				pm->width, pm->height, pm->plane_fmt[pln].bytesperline,
+				pm->plane_fmt[pln].sizeimage);
+	}
+
+	return 0;
+}
+
+static int jpeg_v4l2_set_defaults(struct jenc_context *ectx)
+{
+	struct qcom_jenc_queue *sq = jpeg_get_bufq(ectx, JENC_SRC_QUEUE);
+	struct qcom_jenc_queue *dq = jpeg_get_bufq(ectx, JENC_DST_QUEUE);
+	struct v4l2_format f = {0};
+	int rc;
+
+	f.type			 = jpeg_src_formats->type;
+	f.fmt.pix_mp.pixelformat = jpeg_src_formats->fourcc;
+	f.fmt.pix_mp.width	 = QCOM_JPEG_HW_DEF_WIDTH;
+	f.fmt.pix_mp.height	 = QCOM_JPEG_HW_DEF_HEIGHT;
+
+	rc = jpeg_v4l2_try_format(ectx, &f);
+	if (rc)
+		return rc;
+
+	sq->vf = f.fmt.pix_mp;
+
+	f.type			 = jpeg_dst_formats->type;
+	f.fmt.pix_mp.pixelformat = jpeg_dst_formats->fourcc;
+	f.fmt.pix_mp.width	 = QCOM_JPEG_HW_DEF_WIDTH;
+	f.fmt.pix_mp.height	 = QCOM_JPEG_HW_DEF_HEIGHT;
+
+	rc = jpeg_v4l2_try_format(ectx, &f);
+	if (rc)
+		return rc;
+
+	dq->vf = f.fmt.pix_mp;
+
+	return 0;
+}
+
+static int jpeg_v4l2_set_format(struct jenc_context *ectx, struct v4l2_format *f)
+{
+	const struct qcom_jpeg_hw_ops *hw = ectx->jenc->res->hw_ops;
+	struct qcom_jenc_queue *q = jpeg_get_bufq(ectx, TYPE2QID(f->type));
+	struct qcom_jenc_queue *sq = jpeg_get_bufq(ectx, JENC_SRC_QUEUE);
+	struct v4l2_pix_format_mplane *pm = &f->fmt.pix_mp;
+	u32 old_src_fourcc = sq->vf.pixelformat;
+	int rc;
+
+	if (jpeg_v4l2_queues_busy(ectx))
+		return -EBUSY;
+
+	if (!v4l2_m2m_get_vq(ectx->fh.m2m_ctx, f->type)) {
+		dev_err(ectx->dev, "cannot get video queue\n");
+		return -EINVAL;
+	}
+
+	rc = jpeg_v4l2_try_format(ectx, f);
+	if (rc)
+		return rc;
+
+	/*
+	 * Because scaling is not supported, source and destination image
+	 * sizes must be equal.
+	 */
+	if (V4L2_TYPE_IS_CAPTURE(f->type)) {
+		/* Adjust source size to match capture size */
+		if (pm->width != sq->vf.width || pm->height != sq->vf.height) {
+			struct v4l2_format nf = {0};
+
+			nf.type			  = jpeg_src_formats->type;
+			nf.fmt.pix_mp.pixelformat = sq->vf.pixelformat;
+			nf.fmt.pix_mp.width	  = pm->width;
+			nf.fmt.pix_mp.height	  = pm->height;
+
+			rc = jpeg_v4l2_try_format(ectx, &nf);
+			if (rc)
+				return rc;
+
+			sq->vf = nf.fmt.pix_mp;
+		}
+
+	} else {
+		struct qcom_jenc_queue *dq = jpeg_get_bufq(ectx, JENC_DST_QUEUE);
+		struct v4l2_format nf = {0};
+
+		/* Adjust destination size to match source size */
+		if (pm->width != dq->vf.width || pm->height != dq->vf.height) {
+			nf.type			  = jpeg_dst_formats->type;
+			nf.fmt.pix_mp.pixelformat = dq->vf.pixelformat;
+			nf.fmt.pix_mp.width	  = pm->width;
+			nf.fmt.pix_mp.height	  = pm->height;
+
+			rc = jpeg_v4l2_try_format(ectx, &nf);
+			if (rc)
+				return rc;
+
+			dq->vf = nf.fmt.pix_mp;
+
+			/*
+			 * The horizontal alignment of the destination is larger, and the
+			 * result after adjustment may still differ. In this case, the
+			 * requested image size should also be modified.
+			 */
+			if (pm->width != nf.fmt.pix_mp.width ||
+			    pm->height != nf.fmt.pix_mp.height) {
+				pm->width  = nf.fmt.pix_mp.width;
+				pm->height = nf.fmt.pix_mp.height;
+			}
+		}
+	}
+
+	q->vf = *pm;
+
+	if (V4L2_TYPE_IS_OUTPUT(f->type) && hw->src_fmt_update) {
+		rc = hw->src_fmt_update(ectx, old_src_fourcc, q->vf.pixelformat);
+		if (rc)
+			return rc;
+	}
+
+	return 0;
+}
+
+static void jpeg_v4l2_get_format(struct jenc_context *ectx, struct v4l2_format *f)
+{
+	struct qcom_jenc_queue *q = jpeg_get_bufq(ectx, TYPE2QID(f->type));
+
+	f->fmt.pix_mp = q->vf;
+}
+
+static void jpeg_v4l2_work_stop(struct jenc_context *ctx, enum vb2_buffer_state buff_state);
+
+static void jpeg_finish_work(struct work_struct *work)
+{
+	struct jenc_context *ctx = container_of(work, struct jenc_context, finish_work);
+
+	v4l2_m2m_job_finish(ctx->jenc->m2m_dev, ctx->fh.m2m_ctx);
+}
+
+static void jpeg_stop_work(struct work_struct *work)
+{
+	struct jenc_context *ctx = container_of(work, struct jenc_context, stop_work);
+	struct qcom_jenc_dev *jenc = ctx->jenc;
+
+	mutex_lock(&jenc->dev_mutex);
+	jpeg_v4l2_work_stop(ctx, VB2_BUF_STATE_ERROR);
+	mutex_unlock(&jenc->dev_mutex);
+}
+
+static void jpeg_v4l2_work_done(struct jenc_context *ctx, size_t out_size)
+{
+	struct vb2_v4l2_buffer *vb;
+
+	vb = v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx);
+	if (vb)
+		v4l2_m2m_buf_done(vb, VB2_BUF_STATE_DONE);
+
+	vb = v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx);
+	if (vb) {
+		vb2_set_plane_payload(&vb->vb2_buf, 0, out_size);
+		v4l2_m2m_buf_done(vb, VB2_BUF_STATE_DONE);
+	}
+
+	schedule_work(&ctx->finish_work);
+}
+
+static void jpeg_v4l2_work_stop(struct jenc_context *ctx, enum vb2_buffer_state buff_state)
+{
+	bool was_stopping = ctx->is_stopping;
+	struct vb2_v4l2_buffer *vb;
+
+	ctx->is_stopping = false;
+
+	/* Drain CAPTURE queue; signal EOS on last buffer if V4L2_ENC_CMD_STOP. */
+	while ((vb = v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx))) {
+		if (was_stopping && !v4l2_m2m_last_dst_buf(ctx->fh.m2m_ctx)) {
+			vb2_set_plane_payload(&vb->vb2_buf, 0, 0);
+			v4l2_m2m_last_buffer_done(ctx->fh.m2m_ctx, vb);
+		} else {
+			v4l2_m2m_buf_done(vb, buff_state);
+		}
+	}
+
+	while ((vb = v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx)))
+		v4l2_m2m_buf_done(vb, buff_state);
+
+	/* Always call job_finish to let m2m schedule the next job. */
+	schedule_work(&ctx->finish_work);
+}
+
+static void jpeg_v4l2_process_cb(void *priv, enum vb2_buffer_state ev, size_t out_size)
+{
+	struct jenc_context *ctx = priv;
+	struct qcom_jenc_dev *jenc = ctx->jenc;
+
+	/* threaded IRQ path */
+	mutex_lock(&jenc->dev_mutex);
+
+	if (ev == VB2_BUF_STATE_DONE && out_size)
+		jpeg_v4l2_work_done(ctx, out_size);
+	else
+		jpeg_v4l2_work_stop(ctx, ev);
+
+	mutex_unlock(&jenc->dev_mutex);
+}
+
+static int jpeg_v4l2_s_ctrl(struct v4l2_ctrl *ctrl)
+{
+	struct jenc_context *ectx = container_of(ctrl->handler, struct jenc_context, ctrl_hdl);
+
+	switch (ctrl->id) {
+	case V4L2_CID_JPEG_COMPRESSION_QUALITY:
+		mutex_lock(&ectx->quality_mutex);
+		ectx->quality_requested = ctrl->val;
+		mutex_unlock(&ectx->quality_mutex);
+		break;
+	case V4L2_CID_QCOM_JPEG_PERF_LEVEL_AUTO:
+		/* value is read via v4l2_ctrl_g_ctrl() in jpeg_select_perf_level() */
+		break;
+	case V4L2_CID_QCOM_JPEG_FPS_TARGET:
+		/* value is read via v4l2_ctrl_g_ctrl() in jpeg_select_perf_level() */
+		break;
+	default:
+		dev_err(ectx->dev, "invalid control id=%#x\n", ctrl->id);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static const struct v4l2_ctrl_ops qcom_jpeg_v4l2_ctrl_ops = {
+	.s_ctrl = jpeg_v4l2_s_ctrl,
+};
+
+static const struct v4l2_ctrl_config qcom_jpeg_perf_level_auto_cfg = {
+	.ops	= &qcom_jpeg_v4l2_ctrl_ops,
+	.id	= V4L2_CID_QCOM_JPEG_PERF_LEVEL_AUTO,
+	.name	= "perf_level_auto",
+	.type	= V4L2_CTRL_TYPE_BOOLEAN,
+	.min	= 0,
+	.max	= 1,
+	.step	= 1,
+	.def	= 0,
+};
+
+static const struct v4l2_ctrl_config qcom_jpeg_fps_target_cfg = {
+	.ops	= &qcom_jpeg_v4l2_ctrl_ops,
+	.id	= V4L2_CID_QCOM_JPEG_FPS_TARGET,
+	.name	= "fps_target",
+	.type	= V4L2_CTRL_TYPE_INTEGER,
+	.min	= QCOM_JPEG_FPS_MIN,
+	.max	= QCOM_JPEG_FPS_MAX,
+	.step	= QCOM_JPEG_FPS_UNT,
+	.def	= QCOM_JPEG_FPS_DEF,
+};
+
+static int bop_jpeg_vb2_queue_setup(struct vb2_queue *vq, unsigned int *nbuffers,
+				    unsigned int *plns_per_buff, unsigned int sizes[],
+				    struct device *alloc_devs[])
+{
+	struct jenc_context *ectx = vb2_get_drv_priv(vq);
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	const struct qcom_jpeg_hw_ops *hw = jenc->res->hw_ops;
+	struct qcom_jenc_queue *q;
+	int pln;
+
+	q = hw->get_queue(ectx, TYPE2QID(vq->type));
+	if (!q || !q->vf.num_planes)
+		return -EINVAL;
+
+	if (*plns_per_buff) {
+		if (*plns_per_buff != q->vf.num_planes)
+			return -EINVAL;
+
+		for (pln = 0; pln < q->vf.num_planes; ++pln) {
+			if (sizes[pln] < q->vf.plane_fmt[pln].sizeimage)
+				return -EINVAL;
+		}
+
+		return 0;
+	}
+
+	*plns_per_buff = q->vf.num_planes;
+	for (pln = 0; pln < q->vf.num_planes; ++pln) {
+		sizes[pln] = q->vf.plane_fmt[pln].sizeimage;
+		dev_dbg(ectx->dev, "queue=%d size[%d]=%d\n", TYPE2QID(vq->type),
+			pln, sizes[pln]);
+	}
+
+	return hw->queue_setup(ectx, TYPE2QID(vq->type));
+}
+
+static int bop_jpeg_vb2_buf_out_validate(struct vb2_buffer *vb)
+{
+	struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
+
+	if (vbuf->field == V4L2_FIELD_ANY)
+		vbuf->field = V4L2_FIELD_NONE;
+
+	if (vbuf->field != V4L2_FIELD_NONE)
+		return -EINVAL;
+
+	return 0;
+}
+
+static int bop_jpeg_vb2_buf_prepare(struct vb2_buffer *vb)
+{
+	struct jenc_context *ectx = vb2_get_drv_priv(vb->vb2_queue);
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	const struct qcom_jpeg_hw_ops *hw = jenc->res->hw_ops;
+	struct qcom_jenc_queue *q = &ectx->bufq[TYPE2QID(vb->type)];
+	int pln;
+	int rc;
+
+	if (vb->num_planes != q->vf.num_planes)
+		return -EINVAL;
+
+	for (pln = 0; pln < q->vf.num_planes; pln++) {
+		if (q->vf.plane_fmt[pln].sizeimage == 0)
+			return -EINVAL;
+
+		if (vb2_plane_size(vb, pln) < q->vf.plane_fmt[pln].sizeimage)
+			return -EINVAL;
+	}
+
+	rc = hw->buf_prepare(ectx, vb);
+	if (rc) {
+		dev_err_ratelimited(ectx->dev, "buffer prepare failed\n");
+		return rc;
+	}
+
+	return 0;
+}
+
+static void bop_jpeg_vb2_buf_queue(struct vb2_buffer *vb)
+{
+	struct jenc_context *ectx = vb2_get_drv_priv(vb->vb2_queue);
+	struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
+
+	v4l2_m2m_buf_queue(ectx->fh.m2m_ctx, vbuf);
+}
+
+static int bop_jpeg_vb2_start_streaming(struct vb2_queue *q, unsigned int count)
+{
+	struct jenc_context *ectx = vb2_get_drv_priv(q);
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	const struct qcom_jpeg_hw_ops *hw = jenc->res->hw_ops;
+	struct qcom_jenc_queue *sq = jpeg_get_bufq(ectx, JENC_SRC_QUEUE);
+	struct qcom_jenc_queue *dq = jpeg_get_bufq(ectx, JENC_DST_QUEUE);
+	u32 hw_caps;
+	u8 pln;
+	int rc;
+
+	if (V4L2_TYPE_IS_OUTPUT(q->type)) {
+		dev_dbg(ectx->dev, "%p4cc %dx%d\n",
+			&sq->vf.pixelformat, sq->vf.width, sq->vf.height);
+
+		for (pln = 0; pln < sq->vf.num_planes; pln++) {
+			dev_dbg(ectx->dev, "\tpln=%d %dx%d bpl:%d size:%d\n", pln,
+				sq->vf.width, sq->vf.height,
+				sq->vf.plane_fmt[pln].bytesperline,
+				sq->vf.plane_fmt[pln].sizeimage);
+		}
+	} else {
+		dev_dbg(ectx->dev, "%p4cc %dx%d\n",
+			&dq->vf.pixelformat,
+			dq->vf.width, dq->vf.height);
+	}
+
+	mutex_lock(&jenc->dev_mutex);
+
+	/*
+	 * Header cache is initialized lazily on CAPTURE QBUF, so valid V4L2
+	 * orders like STREAMON before first QBUF still get a proper JPEG header.
+	 */
+	if (!ectx->hw_acquired) {
+		rc = hw->hw_acquire(ectx, q);
+		if (!rc) {
+			ectx->hw_acquired = true;
+			hw->hw_get_cap(jenc, &hw_caps);
+			dev_dbg(ectx->dev, "hw_caps=0x%x\n", hw_caps);
+		}
+	} else {
+		rc = 0;
+	}
+
+	mutex_unlock(&jenc->dev_mutex);
+
+	return rc;
+}
+
+static void bop_jpeg_vb2_stop_streaming(struct vb2_queue *q)
+{
+	struct jenc_context *ectx = vb2_get_drv_priv(q);
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	const struct qcom_jpeg_hw_ops *hw = jenc->res->hw_ops;
+	bool do_release;
+
+	mutex_lock(&jenc->dev_mutex);
+
+	jpeg_v4l2_work_stop(ectx, VB2_BUF_STATE_ERROR);
+
+	do_release = ectx->hw_acquired;
+	ectx->hw_acquired = false;
+
+	mutex_unlock(&jenc->dev_mutex);
+
+	/*
+	 * hw_release() calls jpeg_deinit() which issues HW_STOP and waits for
+	 * the STOP_ACK interrupt completion.  It must be called outside
+	 * dev_mutex to avoid a deadlock: the threaded IRQ handler acquires
+	 * dev_mutex before signalling the completion.
+	 */
+	if (do_release)
+		hw->hw_release(ectx, q);
+}
+
+static const struct vb2_ops qcom_jpeg_v4l2_vb2_ops = {
+	.queue_setup		= bop_jpeg_vb2_queue_setup,
+	.buf_out_validate	= bop_jpeg_vb2_buf_out_validate,
+	.buf_prepare		= bop_jpeg_vb2_buf_prepare,
+	.buf_queue		= bop_jpeg_vb2_buf_queue,
+	.start_streaming	= bop_jpeg_vb2_start_streaming,
+	.stop_streaming		= bop_jpeg_vb2_stop_streaming,
+};
+
+static void mop_jpeg_m2m_job_abort(void *priv)
+{
+	struct jenc_context *ectx = priv;
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+
+	mutex_lock(&jenc->dev_mutex);
+
+	jpeg_v4l2_work_stop(ectx, VB2_BUF_STATE_ERROR);
+
+	mutex_unlock(&jenc->dev_mutex);
+}
+
+static void mop_jpeg_m2m_job_run(void *priv)
+{
+	struct jenc_context *ectx = priv;
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	const struct qcom_jpeg_hw_ops *hw = jenc->res->hw_ops;
+	struct vb2_v4l2_buffer *src_vb, *dst_vb;
+	struct qcom_jenc_queue *sq, *dq;
+
+	mutex_lock(&jenc->dev_mutex);
+
+	src_vb = v4l2_m2m_next_src_buf(ectx->fh.m2m_ctx);
+	dst_vb = v4l2_m2m_next_dst_buf(ectx->fh.m2m_ctx);
+
+	if (!src_vb || !dst_vb)
+		goto err_stop;
+
+	if (hw->hw_prepare(jenc))
+		goto err_stop;
+
+	sq = hw->get_queue(ectx, TYPE2QID(src_vb->vb2_buf.type));
+	src_vb->sequence = sq->sequence++;
+	if (hw->process_exec(jenc, ectx, &src_vb->vb2_buf))
+		goto err_stop;
+
+	dq = hw->get_queue(ectx, TYPE2QID(dst_vb->vb2_buf.type));
+	dst_vb->sequence = dq->sequence++;
+	if (hw->process_exec(jenc, ectx, &dst_vb->vb2_buf))
+		goto err_stop;
+
+	v4l2_m2m_buf_copy_metadata(src_vb, dst_vb);
+
+	mutex_unlock(&jenc->dev_mutex);
+	return;
+
+err_stop:
+	jpeg_v4l2_work_stop(ectx, VB2_BUF_STATE_ERROR);
+	mutex_unlock(&jenc->dev_mutex);
+}
+
+static const struct v4l2_m2m_ops qcom_jpeg_v4l2_m2m_ops = {
+	.device_run	= mop_jpeg_m2m_job_run,
+	.job_abort	= mop_jpeg_m2m_job_abort,
+};
+
+static int iop_jpeg_querycap(struct file *file, void *priv, struct v4l2_capability *cap)
+{
+	strscpy(cap->driver, QCOM_JPEG_ENC_NAME, sizeof(cap->driver));
+	strscpy(cap->card, QCOM_JPEG_ENC_NAME, sizeof(cap->card));
+	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s", QCOM_JPEG_ENC_NAME);
+
+	return 0;
+}
+
+static int iop_jpeg_enum_fmt_vid_dst(struct file *file, void *priv, struct v4l2_fmtdesc *f)
+{
+	struct jenc_context *ectx = jpeg_file2ctx(file);
+
+	if (jpeg_is_invalid_dst(ectx, f->type))
+		return -EINVAL;
+
+	return jpeg_enum_fmt_dst(f);
+}
+
+static int iop_jpeg_enum_framesizes(struct file *file, void *priv, struct v4l2_frmsizeenum *fsize)
+{
+	const struct jenc_enc_format *efmt;
+
+	if (fsize->index != 0)
+		return -EINVAL;
+
+	efmt = jpeg_find_pix_format(JENC_SRC_QUEUE, fsize->pixel_format);
+	if (efmt) {
+		fsize->type	= jpeg_def_frmsize.type;
+		fsize->stepwise	= jpeg_def_frmsize.stepwise;
+		return 0;
+	}
+
+	efmt = jpeg_find_pix_format(JENC_DST_QUEUE, fsize->pixel_format);
+	if (efmt) {
+		fsize->type	= jpeg_def_frmsize.type;
+		fsize->stepwise	= jpeg_def_frmsize.stepwise;
+		return 0;
+	}
+
+	return -EINVAL;
+}
+
+static int iop_jpeg_enum_fmt_vid_src(struct file *file, void *priv, struct v4l2_fmtdesc *f)
+{
+	struct jenc_context *ectx = jpeg_file2ctx(file);
+
+	if (jpeg_is_invalid_src(ectx, f->type))
+		return -EINVAL;
+
+	return jpeg_enum_fmt_src(f);
+}
+
+static int iop_jpeg_get_fmt_vid_dst(struct file *file, void *priv, struct v4l2_format *f)
+{
+	struct jenc_context *ectx = jpeg_file2ctx(file);
+
+	if (jpeg_is_invalid_dst(ectx, f->type))
+		return -EINVAL;
+
+	jpeg_v4l2_get_format(ectx, f);
+
+	return 0;
+}
+
+static int iop_jpeg_try_fmt_vid_dst(struct file *file, void *priv, struct v4l2_format *f)
+{
+	struct jenc_context *ectx = jpeg_file2ctx(file);
+
+	if (jpeg_is_invalid_dst(ectx, f->type))
+		return -EINVAL;
+
+	return jpeg_v4l2_try_format(ectx, f);
+}
+
+static int iop_jpeg_set_fmt_vid_dst(struct file *file, void *priv, struct v4l2_format *f)
+{
+	struct jenc_context *ectx = jpeg_file2ctx(file);
+
+	if (jpeg_is_invalid_dst(ectx, f->type))
+		return -EINVAL;
+
+	return jpeg_v4l2_set_format(ectx, f);
+}
+
+static int iop_jpeg_get_fmt_vid_src(struct file *file, void *priv, struct v4l2_format *f)
+{
+	struct jenc_context *ectx = jpeg_file2ctx(file);
+
+	if (jpeg_is_invalid_src(ectx, f->type))
+		return -EINVAL;
+
+	jpeg_v4l2_get_format(ectx, f);
+
+	return 0;
+}
+
+static int iop_jpeg_try_fmt_vid_src(struct file *file, void *priv, struct v4l2_format *f)
+{
+	struct jenc_context *ectx = jpeg_file2ctx(file);
+
+	if (jpeg_is_invalid_src(ectx, f->type))
+		return -EINVAL;
+
+	return jpeg_v4l2_try_format(ectx, f);
+}
+
+static int iop_jpeg_set_fmt_vid_src(struct file *file, void *priv, struct v4l2_format *f)
+{
+	struct jenc_context *ectx = jpeg_file2ctx(file);
+
+	if (jpeg_is_invalid_src(ectx, f->type))
+		return -EINVAL;
+
+	return jpeg_v4l2_set_format(ectx, f);
+}
+
+static int iop_jpeg_encoder_command(struct file *file, void *priv, struct v4l2_encoder_cmd *ec)
+{
+	struct jenc_context *ectx = jpeg_file2ctx(file);
+	struct vb2_queue *vq;
+	int rc;
+
+	if (ec->cmd == V4L2_ENC_CMD_STOP) {
+		vq = v4l2_m2m_get_src_vq(ectx->fh.m2m_ctx);
+		if (!vb2_is_streaming(vq))
+			return 0;
+
+		vq = v4l2_m2m_get_dst_vq(ectx->fh.m2m_ctx);
+		if (!vb2_is_streaming(vq))
+			return 0;
+
+		rc = v4l2_m2m_ioctl_encoder_cmd(file, priv, ec);
+		if (rc)
+			return rc;
+
+		ectx->is_stopping = true;
+		schedule_work(&ectx->stop_work);
+
+		return 0;
+	}
+
+	return v4l2_m2m_ioctl_encoder_cmd(file, priv, ec);
+}
+
+static const struct v4l2_ioctl_ops qcom_jpeg_v4l2_ioctl_ops = {
+	.vidioc_querycap		= iop_jpeg_querycap,
+	.vidioc_enum_fmt_vid_cap	= iop_jpeg_enum_fmt_vid_dst,
+	.vidioc_enum_fmt_vid_out	= iop_jpeg_enum_fmt_vid_src,
+	.vidioc_enum_framesizes		= iop_jpeg_enum_framesizes,
+
+	.vidioc_g_fmt_vid_cap_mplane	= iop_jpeg_get_fmt_vid_dst,
+	.vidioc_try_fmt_vid_cap_mplane	= iop_jpeg_try_fmt_vid_dst,
+	.vidioc_s_fmt_vid_cap_mplane	= iop_jpeg_set_fmt_vid_dst,
+	.vidioc_g_fmt_vid_out_mplane	= iop_jpeg_get_fmt_vid_src,
+	.vidioc_try_fmt_vid_out_mplane	= iop_jpeg_try_fmt_vid_src,
+	.vidioc_s_fmt_vid_out_mplane	= iop_jpeg_set_fmt_vid_src,
+
+	.vidioc_reqbufs			= v4l2_m2m_ioctl_reqbufs,
+	.vidioc_querybuf		= v4l2_m2m_ioctl_querybuf,
+	.vidioc_prepare_buf		= v4l2_m2m_ioctl_prepare_buf,
+	.vidioc_create_bufs		= v4l2_m2m_ioctl_create_bufs,
+	.vidioc_streamon		= v4l2_m2m_ioctl_streamon,
+	.vidioc_streamoff		= v4l2_m2m_ioctl_streamoff,
+	.vidioc_qbuf			= v4l2_m2m_ioctl_qbuf,
+	.vidioc_dqbuf			= v4l2_m2m_ioctl_dqbuf,
+	.vidioc_expbuf			= v4l2_m2m_ioctl_expbuf,
+
+	.vidioc_subscribe_event		= v4l2_ctrl_subscribe_event,
+	.vidioc_unsubscribe_event	= v4l2_event_unsubscribe,
+
+	.vidioc_encoder_cmd		= iop_jpeg_encoder_command,
+	.vidioc_try_encoder_cmd		= v4l2_m2m_ioctl_try_encoder_cmd,
+};
+
+static int jpeg_v4l2_init_queue(void *priv, struct vb2_queue *sq, struct vb2_queue *dq)
+{
+	struct jenc_context *ectx = priv;
+	int rc;
+
+	sq->drv_priv		= ectx;
+	sq->dev			= ectx->dev;
+	sq->type		= V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+	sq->io_modes		= VB2_MMAP | VB2_DMABUF | VB2_USERPTR;
+	sq->buf_struct_size	= sizeof(struct v4l2_m2m_buffer);
+	sq->ops			= &qcom_jpeg_v4l2_vb2_ops;
+	sq->mem_ops		= &vb2_dma_sg_memops;
+	sq->timestamp_flags	= V4L2_BUF_FLAG_TIMESTAMP_COPY;
+	sq->lock		= &ectx->ctx_lock;
+	sq->min_queued_buffers	= 1;
+
+	rc = vb2_queue_init(sq);
+	if (rc)
+		return rc;
+
+	dq->drv_priv		= ectx;
+	dq->dev			= ectx->dev;
+	dq->type		= V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+	dq->io_modes		= VB2_MMAP | VB2_DMABUF | VB2_USERPTR;
+	dq->buf_struct_size	= sizeof(struct v4l2_m2m_buffer);
+	dq->ops			= &qcom_jpeg_v4l2_vb2_ops;
+	dq->mem_ops		= &vb2_dma_sg_memops;
+	dq->timestamp_flags	= V4L2_BUF_FLAG_TIMESTAMP_COPY;
+	dq->lock		= &ectx->ctx_lock;
+	dq->min_queued_buffers	= 1;
+
+	rc = vb2_queue_init(dq);
+	if (rc) {
+		vb2_queue_release(sq);
+		return rc;
+	}
+
+	return 0;
+}
+
+static int fop_jpeg_file_open(struct file *file)
+{
+	struct qcom_jenc_dev *jenc = video_drvdata(file);
+	struct video_device *vdev = video_devdata(file);
+	struct jenc_context *ectx;
+	int rc;
+
+	ectx = kzalloc_obj(*ectx, GFP_KERNEL);
+	if (!ectx)
+		return -ENOMEM;
+
+	ectx->dev  = jenc->dev;
+	ectx->jenc = jenc;
+
+	/* default quality if userspace does not set the control explicitly */
+	ectx->quality_requested = QCOM_JPEG_QUALITY_DEF;
+	ectx->quality_programmed = 0;
+
+	mutex_init(&ectx->ctx_lock);
+	mutex_init(&ectx->quality_mutex);
+
+	INIT_WORK(&ectx->finish_work, jpeg_finish_work);
+	INIT_WORK(&ectx->stop_work, jpeg_stop_work);
+
+	rc = jpeg_v4l2_set_defaults(ectx);
+	if (rc)
+		goto err_unlock_free;
+
+	v4l2_fh_init(&ectx->fh, vdev);
+	v4l2_fh_add(&ectx->fh, file);
+
+	v4l2_ctrl_handler_init(&ectx->ctrl_hdl, 3);
+	ectx->quality_ctl = v4l2_ctrl_new_std(&ectx->ctrl_hdl,
+					      &qcom_jpeg_v4l2_ctrl_ops,
+					      V4L2_CID_JPEG_COMPRESSION_QUALITY,
+					      QCOM_JPEG_QUALITY_MIN,
+					      QCOM_JPEG_QUALITY_MAX,
+					      QCOM_JPEG_QUALITY_UNT,
+					      QCOM_JPEG_QUALITY_DEF);
+	ectx->perf_level_auto_ctl =
+		v4l2_ctrl_new_custom(&ectx->ctrl_hdl,
+				     &qcom_jpeg_perf_level_auto_cfg, NULL);
+	ectx->fps_target_ctl =
+		v4l2_ctrl_new_custom(&ectx->ctrl_hdl,
+				     &qcom_jpeg_fps_target_cfg, NULL);
+	if (ectx->ctrl_hdl.error) {
+		rc = ectx->ctrl_hdl.error;
+		goto err_fh_exit;
+	}
+
+	ectx->fh.ctrl_handler = &ectx->ctrl_hdl;
+
+	rc = v4l2_ctrl_handler_setup(&ectx->ctrl_hdl);
+	if (rc)
+		goto err_ctrl_handler_free;
+
+	v4l2_m2m_get(jenc->m2m_dev);
+	ectx->fh.m2m_ctx = v4l2_m2m_ctx_init(jenc->m2m_dev, ectx, &jpeg_v4l2_init_queue);
+	if (IS_ERR(ectx->fh.m2m_ctx)) {
+		rc = PTR_ERR(ectx->fh.m2m_ctx);
+		v4l2_m2m_put(jenc->m2m_dev);
+		goto err_ctrl_handler_free;
+	}
+
+	return 0;
+
+err_ctrl_handler_free:
+	v4l2_ctrl_handler_free(&ectx->ctrl_hdl);
+err_fh_exit:
+	v4l2_fh_del(&ectx->fh, file);
+	v4l2_fh_exit(&ectx->fh);
+err_unlock_free:
+	mutex_destroy(&ectx->quality_mutex);
+	mutex_destroy(&ectx->ctx_lock);
+	kfree(ectx);
+
+	return rc;
+}
+
+static int fop_jpeg_file_release(struct file *file)
+{
+	struct jenc_context *ectx = jpeg_file2ctx(file);
+	struct v4l2_m2m_dev *m2m_dev = ectx->fh.m2m_ctx->m2m_dev;
+	struct qcom_jenc_dev *jenc = ectx->jenc;
+	unsigned long flags;
+
+	/*
+	 * Ensure the threaded IRQ handler cannot dereference this context
+	 * after it is freed.  Clear jenc->actx under hw_lock before
+	 * cancelling work and releasing the m2m context.
+	 */
+	spin_lock_irqsave(&jenc->hw_lock, flags);
+	if (jenc->actx == ectx)
+		jenc->actx = NULL;
+	spin_unlock_irqrestore(&jenc->hw_lock, flags);
+
+	cancel_work_sync(&ectx->stop_work);
+	cancel_work_sync(&ectx->finish_work);
+
+	v4l2_m2m_ctx_release(ectx->fh.m2m_ctx);
+	v4l2_m2m_put(m2m_dev);
+	v4l2_ctrl_handler_free(&ectx->ctrl_hdl);
+	v4l2_fh_del(&ectx->fh, file);
+	v4l2_fh_exit(&ectx->fh);
+	mutex_destroy(&ectx->quality_mutex);
+	mutex_destroy(&ectx->ctx_lock);
+	kfree(ectx);
+
+	return 0;
+}
+
+static const struct v4l2_file_operations qcom_jpeg_v4l2_file_ops = {
+	.owner		= THIS_MODULE,
+	.open		= fop_jpeg_file_open,
+	.release	= fop_jpeg_file_release,
+	.poll		= v4l2_m2m_fop_poll,
+	.mmap		= v4l2_m2m_fop_mmap,
+	.unlocked_ioctl = video_ioctl2,
+};
+
+/* Release callback: free jenc after last fd is closed. */
+static void jenc_v4l2_dev_release(struct v4l2_device *v4l2_dev)
+{
+	struct qcom_jenc_dev *jenc = container_of(v4l2_dev, struct qcom_jenc_dev, v4l2_dev);
+
+	v4l2_device_unregister(&jenc->v4l2_dev);
+	v4l2_m2m_put(jenc->m2m_dev);
+	kfree(jenc);
+}
+
+int qcom_jpeg_v4l2_register(struct qcom_jenc_dev *jenc)
+{
+	int rc;
+
+	mutex_lock(&jenc->dev_mutex);
+
+	jenc->enc_hw_irq_cb = jpeg_v4l2_process_cb;
+
+	jenc->m2m_dev = v4l2_m2m_init(&qcom_jpeg_v4l2_m2m_ops);
+	if (IS_ERR(jenc->m2m_dev)) {
+		dev_err(jenc->dev, "failed to init mem2mem device\n");
+		rc = PTR_ERR(jenc->m2m_dev);
+		goto err_mutex_unlock;
+	}
+
+	jenc->vdev = video_device_alloc();
+	if (!jenc->vdev) {
+		rc = -ENOMEM;
+		goto err_m2m_release;
+	}
+
+	snprintf(jenc->vdev->name, sizeof(jenc->vdev->name), "%s", QCOM_JPEG_ENC_NAME);
+	jenc->vdev->fops	= &qcom_jpeg_v4l2_file_ops;
+	jenc->vdev->ioctl_ops	= &qcom_jpeg_v4l2_ioctl_ops;
+	jenc->vdev->minor	= -1;
+	jenc->vdev->release	= video_device_release;
+	jenc->vdev->lock	= &jenc->dev_mutex;
+	jenc->vdev->v4l2_dev	= &jenc->v4l2_dev;
+	jenc->vdev->vfl_dir	= VFL_DIR_M2M;
+	jenc->vdev->device_caps	= V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M_MPLANE;
+
+	rc = video_register_device(jenc->vdev, VFL_TYPE_VIDEO, -1);
+	if (rc) {
+		dev_err(jenc->dev, "failed to register video device\n");
+		goto err_video_device_release;
+	}
+
+	video_set_drvdata(jenc->vdev, jenc);
+
+	jenc->v4l2_dev.release = jenc_v4l2_dev_release;
+
+	mutex_unlock(&jenc->dev_mutex);
+
+	dev_dbg(jenc->dev, "device registered as /dev/video%d\n", jenc->vdev->num);
+
+	return 0;
+
+err_video_device_release:
+	video_device_release(jenc->vdev);
+err_m2m_release:
+	v4l2_m2m_release(jenc->m2m_dev);
+err_mutex_unlock:
+	mutex_unlock(&jenc->dev_mutex);
+
+	return rc;
+}
+
diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.h b/drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.h
new file mode 100644
index 000000000000..781b26dbf664
--- /dev/null
+++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef QCOM_JENC_V4L2_H
+#define QCOM_JENC_V4L2_H
+
+#include <linux/types.h>
+#include <linux/videodev2.h>
+
+#include <media/v4l2-ctrls.h>
+#include <media/v4l2-dev.h>
+#include <media/v4l2-device.h>
+#include <media/v4l2-ioctl.h>
+#include <media/videobuf2-dma-contig.h>
+#include <media/videobuf2-v4l2.h>
+
+struct qcom_jenc_dev;
+
+int qcom_jpeg_v4l2_register(struct qcom_jenc_dev *jenc);
+
+#endif /* QCOM_JENC_V4L2_H */
diff --git a/include/media/jpeg.h b/include/media/jpeg.h
index a01e142e99a7..926943a0d412 100644
--- a/include/media/jpeg.h
+++ b/include/media/jpeg.h
@@ -17,4 +17,37 @@
 #define JPEG_MARKER_APP0	0xe0
 #define JPEG_MARKER_COM		0xfe
 
+/* JPEG marker prefix byte */
+#define JPEG_MARKER_PREFIX		0xff
+
+/* JPEG baseline sample precision (bits per sample) */
+#define JPEG_SAMPLE_PRECISION_BITS	8
+
+/* Number of components: greyscale (1) and colour YCbCr (3) */
+#define JPEG_COMP_MONO			1
+#define JPEG_COMP_COLOR			3
+
+/* Chroma subsampling factors encoded in SOF0 sampling byte */
+#define JPEG_SAMPLING_H1V1		0x11
+#define JPEG_SAMPLING_H2V2		0x22
+
+/* Quantization table destination identifiers */
+#define JPEG_QTABLE_LUMA		0
+#define JPEG_QTABLE_CHROMA		1
+
+/* Huffman table class/destination identifiers for DC and AC tables */
+#define JPEG_DC_HT_INDEX_LUMA		0x00
+#define JPEG_DC_HT_INDEX_CHROMA		0x01
+#define JPEG_AC_HT_INDEX_LUMA		0x10
+#define JPEG_AC_HT_INDEX_CHROMA		0x11
+
+/* SOS spectral selection and approximation fields (baseline JPEG) */
+#define JPEG_SPECTRAL_START		0x00
+#define JPEG_SPECTRAL_END		0x3f
+#define JPEG_APPROX_HIGH_LOW		0x00
+
+/* SOS table selector bytes (luma: DC=0/AC=0, chroma: DC=1/AC=1) */
+#define JPEG_TABLE_SEL_LUMA		0x00
+#define JPEG_TABLE_SEL_CHROMA		0x11
+
 #endif /* _MEDIA_JPEG_H_ */
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index affec0ab4781..6408d3da29d4 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -234,6 +234,27 @@ enum v4l2_colorfx {
  */
 #define V4L2_CID_USER_MALI_C55_BASE		(V4L2_CID_USER_BASE + 0x1230)
 
+/* Qualcomm JPEG encoder controls */
+#define V4L2_CID_USER_QCOM_JENC_BASE		(V4L2_CID_USER_BASE + 0x1240)
+
+/*
+ * V4L2_CID_QCOM_JPEG_PERF_LEVEL_AUTO - enable adaptive performance scaling.
+ *
+ * When set to 1 the driver selects the core clock OPP level based on the
+ * encoded frame resolution and fps target. When set to 0 (default) the
+ * driver always runs at NOMINAL (highest) OPP level.
+ */
+#define V4L2_CID_QCOM_JPEG_PERF_LEVEL_AUTO	(V4L2_CID_USER_QCOM_JENC_BASE + 0)
+
+/*
+ * V4L2_CID_QCOM_JPEG_FPS_TARGET - target encode rate in frames per second.
+ *
+ * Used together with V4L2_CID_QCOM_JPEG_PERF_LEVEL_AUTO to select the lowest
+ * OPP level whose throughput is sufficient for the requested frame rate.
+ * Has no effect when perf_level_auto is 0. Range: 1-240, default: 30.
+ */
+#define V4L2_CID_QCOM_JPEG_FPS_TARGET		(V4L2_CID_USER_QCOM_JENC_BASE + 1)
+
 /* MPEG-class control IDs */
 /* The MPEG controls are applicable to all codec controls
  * and the 'MPEG' part of the define is historical */
-- 
2.34.1


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 E4F9938B7D9
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 07:18:33 +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=1783322318; cv=none; b=U6fidrIyqQeNjhkTJ4un8RheGs+HpM6z+67KlrXqUeSuFevbgipkG9/WiMB/IU7b31EbgmXT3nYywPYwR3t+CQRw5xIJPNm6grEmUOCPLj/+MVlYouKYeL3PZ89eO4ZweA6Nl5Ww6GMvs2E6ot75lWGCmmal/UEdTffx2IzboI4=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783322318; c=relaxed/simple;
	bh=jRNpMW8CrhlRhfmjhjpxVZ6RQSMdInfKDYA3M4v4oFQ=;
	h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date:
	 Message-Id; b=irGcfzoKaLG9CXf6JvN4nA77BZPWZKfnPSdQlUGcDOJwDW4byX9x7RXxFYE5k6XNECL8MsWSRbOGxqkNbi2xJWvGjgWGSDzOSag2Z3yeKnqCLbRBlzDWAMcd+lFYjBGMQfVdT48oWNwD2HWrT/sXO+OVo5bMbIuZYQYjc0QaLpk=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=L4oosB5M; 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="L4oosB5M"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BB4091F000E9;
	Mon,  6 Jul 2026 07:18:29 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783322310;
	bh=TE7JL1r3kee2eQLh9GIgE3X/tn8qDzxd84zk5ehgZrA=;
	h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date;
	b=L4oosB5M1zQE4C9sDGQRX80vvGpsJxJTOpwsEq4cIlxFbyCnNzRY8m0rK75LuAKVt
	 fyEFFr88C9s7sQrtk/lg+vzaHH1sqPr1tw1uS1BxMvbYLdRVHZdF+4KXAW0RdDV9wi
	 +CgRQQDn/5BAcY1T4CkccYSd7L4KYRlQLXzzbwt5bc4Rj9uv1HzoX/G0IqeoM76y1n
	 /jgZgktm6pRjK9EB7f454xEGTCld4FZwWj5pe7GKYeVNsrzo7Sv1zSbirR/foStb4X
	 uAkVXexoBqrdAArtoLnIWSzuphelrOGWJIXbuIIF64FWNZIxb6QZIrF4P7JSwfaOJW
	 qVu8w+CQ1auXA==
From: sashiko-bot@kernel.org
Subject: Re: [PATCH v4 3/5] dt-bindings: media: qcom: Add JPEG encoder
 binding
Reply-To: sashiko-reviews@lists.linux.dev
To: "Atanas Filipov" <atanas.filipov@oss.qualcomm.com>
Cc: conor+dt@kernel.org, devicetree@vger.kernel.org, robh@kernel.org
In-Reply-To: <20260706071113.383215-4-atanas.filipov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-4-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Date: Mon, 06 Jul 2026 07:18:29 +0000
Message-Id: <20260706071829.BB4091F000E9@smtp.kernel.org>
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>

Thank you for your contribution! Sashiko AI review found 1 potential issue(=
s) to consider:
- [High] The `power-domains` property is missing from the binding's propert=
ies list and the example, despite being a hardware requirement and function=
ally necessary for OPP scaling.
--

commit a2cb92d2a69d2918ed65e723421db5b5ac1f0d1f
Author: Atanas Filipov <atanas.filipov@oss.qualcomm.com>

dt-bindings: media: qcom: Add JPEG encoder binding

Adds a device-tree binding for the Qualcomm JPEG encoder hardware block
present in SM8250 (Kona) SoCs.

> diff --git a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.ya=
ml b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> new file mode 100644
> index 0000000000000..e4c16388ef079
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> @@ -0,0 +1,151 @@
[ ... ]
> +properties:
> +  compatible:
> +    enum:
> +      - qcom,sm8250-jenc

[Severity: High]
The commit message states the hardware has its own power domain, but the
power-domains property is missing from this properties block.

Since additionalProperties is set to false, any device tree attempting to
specify the power-domains property will fail schema validation. Should
power-domains be added to the properties list?

[ ... ]
> +        iommus =3D <&apps_smmu 0x2040 0x400>;
> +
> +        operating-points-v2 =3D <&jpeg_opp_table>;
> +
> +        jpeg_opp_table: opp-table {
> +            compatible =3D "operating-points-v2";
> +
> +            opp-100000000 {
> +                opp-hz =3D /bits/ 64 <400000000>,
> +                         /bits/ 64 <100000000>;
> +                opp-peak-kBps =3D <76800 104166 104166>;
> +                opp-avg-kBps =3D <38400 33569 33569>;
> +                required-opps =3D <&rpmhpd_opp_min_svs>;
> +            };

[Severity: High]
Does this example node need to include the power-domains property?

The example defines required-opps for performance states, but omits the
power-domains property that links the device to the power domain provider.

--=20
Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260706071113.3832=
15-1-atanas.filipov@oss.qualcomm.com?part=3D3

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 A52D1309F09
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 07:23:21 +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=1783322609; cv=none; b=HS9YMyeXHmADRc8ry3CzbU/RC8656shjQ+EiI8yvyS0BA6FRko2WmVQBz+uSomrVrjaY7UZOu9dSF+gz05Dq6h5qLf+wJHdoWJfF9xlsnjVlxSL0xLaLqynG/1Acr0GJNQ9t956rTU0a0/uQYw4Y/feHqsppW6eR/sjwEFs7NJs=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783322609; c=relaxed/simple;
	bh=Jjpmb8U+Ia7SUe0hiylJm41EN/tZP0hvdbpZgIo5lMw=;
	h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date:
	 Message-Id; b=W25ygnOU/oqiMA0RKTH5Td9qLm3LuT6n0J0vTIITWdsUDcXBj7h9BQ1LgfwHj7GLMxzvbLdb6Z0QOAZW3SgTKaSxiovnuiWgPJ4KIgQRMzUm5jTQb5g/FrbDPuLYCE81hxoeAbZ7rjXz8mGpWYBGvBSrOLNulXsXmfH14oJbkxs=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=C5/knTGm; 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="C5/knTGm"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E807C1F00A3A;
	Mon,  6 Jul 2026 07:23:17 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783322598;
	bh=5Ygok8FvPz70cWWjRSeTvKlYj7bdvWn0xgnptd3Xrto=;
	h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date;
	b=C5/knTGmlnF+TVhur9407pOWvKKqwkLNgx+vZ5QMRtGScMJrmgXCrePklPa91qNPT
	 6jw4GzIwutLFsGQGDw+Az4+DbqW4Ak2MAzNzvUD9qIeqlL90qN/+EphJ+cy+WeYK5l
	 suHC8yICxxVcrHbNaP6nP2eGcOnjG0cczCQp0tTLm0WmfLy2cQJLgBAI8Nk4wBX/L/
	 TiNwVE3sdJzmKVInhLA7OszWNiqymcZvkhJH1ALGzdkwaZ3bsIGmyTW42kFe9Z1Bok
	 M/PTGRQzZeczmsrseR+Oh0lsgzFqQh3cdMxPqpISzmtJZ7+QBnQNEQ5CD42R/deEIp
	 FKKwkjqwn10+g==
From: sashiko-bot@kernel.org
Subject: Re: [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices
 via DT
Reply-To: sashiko-reviews@lists.linux.dev
To: "Atanas Filipov" <atanas.filipov@oss.qualcomm.com>
Cc: conor+dt@kernel.org, robh@kernel.org, devicetree@vger.kernel.org
In-Reply-To: <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Date: Mon, 06 Jul 2026 07:23:17 +0000
Message-Id: <20260706072317.E807C1F00A3A@smtp.kernel.org>
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>

Thank you for your contribution! Sashiko AI review found 2 potential issue(=
s) to consider:
- [High] The return value of `devm_of_platform_populate()` is silently igno=
red, potentially leaving the subsystem in a broken state without propagatin=
g the error.
- [High] Incorrect devres ordering causes child devices to be populated pre=
maturely and depopulated too late, leading to hardware faults and Use-After=
-Free during teardown.
--

commit 87e3279291715684d9b1d07a1326244dc96aa857
Author: Bryan O'Donoghue <bryan.odonoghue@linaro.org>

media: qcom: camss: Populate CAMSS child devices via DT

Use devm_of_platform_populate() so that child nodes declared under the
CAMSS device tree node (e.g. OPE) are automatically instantiated as
platform devices.

> diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/pl=
atform/qcom/camss/camss.c
> index 2123f6388e3d7..95e655a8b6aa0 100644
> --- a/drivers/media/platform/qcom/camss/camss.c
> +++ b/drivers/media/platform/qcom/camss/camss.c

[ ... ]

> @@ -5362,6 +5363,8 @@ static int camss_probe(struct platform_device *pdev)
>  	if (!camss)
>  		return -ENOMEM;
> =20
> +	devm_of_platform_populate(dev);

[Severity: High]
Does this code silently ignore initialization errors?

If devm_of_platform_populate() fails, the driver proceeds without propagati=
ng
the error. This could leave the required child devices unpopulated and the
camera subsystem in a partially initialized and functionally broken state.
Should the return value be checked here?

[Severity: High]
Could calling devm_of_platform_populate() this early in probe cause hardware
faults or use-after-free during driver teardown?

Because devm_of_platform_populate() is called at the very beginning of
camss_probe(), its devres cleanup (of_platform_depopulate()) is pushed to t=
he
bottom of the LIFO devres stack and runs last.

During driver removal, camss_remove() manually disables PM runtime and
destroys power domains via camss_genpd_cleanup() before the devres cleanup
unregisters the child devices.

This leaves a teardown window where the child video devices remain fully
registered and active while the parent's resources, memory, and power domai=
ns
are completely destroyed. If userspace accesses the child video device duri=
ng
this window, will it interact with unpowered or freed parent hardware?

> +
>  	camss->res =3D of_device_get_match_data(dev);
> =20
>  	atomic_set(&camss->ref_count, 0);

--=20
Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260706071113.3832=
15-1-atanas.filipov@oss.qualcomm.com?part=3D1

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 91D8D30BF6D
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 07:24:37 +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=1783322684; cv=none; b=eCpVeRYWitoHDO29dmbH/twGEeEouvhCIFutVnvqihQs42iLDj9XedM7nK3csPCyWvR+iKhuM2fqEcb7Xm8YGn7vzjb+60+a+o6rtU3B3DBlSXXIwX0W+oYnR/5+X/Eiv7rcieLX5a8J3ia2ea2quWN+31vaFeIdRcmWkmXfS+E=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783322684; c=relaxed/simple;
	bh=s3t/MXCx2ioiWJWJDWpE45uCS9FdeO6Nb5Op0ENqtuw=;
	h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date:
	 Message-Id; b=VMaXMwv2E8CG7ha3NdcV7qSG1wmmzHu3gs+wvtd2gtLugsNQ4ibOJ8PGmBeSaYVzTkXHAROnEabpQXRP8uvcTbIpcl+RvQFRNgtMYakvA59j9Il7y4KyCkWQDLjXJ80v4TpojwcjjVAfXKgBKRczAxIdWMkEp1hK9pjH4DQWHuY=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Hsm+zYzr; 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="Hsm+zYzr"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A4981F00A3A;
	Mon,  6 Jul 2026 07:24:35 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783322675;
	bh=z6xkpALhpBcWDej1dKMsLP7CfhqvQ9E4+rZjijLmS4I=;
	h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date;
	b=Hsm+zYzra5FSp6gvF4I4EfIh7+fq7jlYeOLWaksgm720AWBhtoemmAZXcdYo3pNRF
	 6r7COxjIztmx0p3oHBEzJCUtO3ttWBM/s81qUkVIHc/cRGcPfyNFkxuhsKon5xweoI
	 py/PAW3j2/BA4KbEOj5UqNyu8qIO2gAt534/8+S0FGC/c/ngeyk2ezt1bD+CTCbJwY
	 Pv0HuoaSoVCfxjcjQsLXBDDeiAosk9Ps7HfpmENaRoE3Orju0erbefv3qEZC1W+yKu
	 aQd7YUaJzv6vi6tt2VWjrANgd/h9QEI9fjlxV+Sr2zt4SCUZhE0FnLHS+Mln81VPRA
	 n7ZUH1s8urxvA==
From: sashiko-bot@kernel.org
Subject: Re: [PATCH v4 2/5] dt-bindings: media: qcom,sm8250-camss: allow
 JPEG encoder child node
Reply-To: sashiko-reviews@lists.linux.dev
To: "Atanas Filipov" <atanas.filipov@oss.qualcomm.com>
Cc: conor+dt@kernel.org, robh@kernel.org, devicetree@vger.kernel.org
In-Reply-To: <20260706071113.383215-3-atanas.filipov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-3-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Date: Mon, 06 Jul 2026 07:24:34 +0000
Message-Id: <20260706072435.1A4981F00A3A@smtp.kernel.org>
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>

Thank you for your contribution! Sashiko AI review found 1 potential issue(=
s) to consider:
- [Medium] Changing `additionalProperties: false` to `unevaluatedProperties=
: false` without defining `patternProperties` or a bus `$ref` will still re=
ject child nodes.
--

commit 4a343ca8c275f84ef82003dd286f9fc438eb243e
Author: Atanas Filipov <atanas.filipov@oss.qualcomm.com>

dt-bindings: media: qcom,sm8250-camss: allow JPEG encoder child node

This commit adds bus properties to the CAMSS node binding to support child
IP blocks like the JPEG encoder. It also changes additionalProperties to
unevaluatedProperties to allow child nodes to be validated against their
own schemas.

> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8250-camss.ya=
ml b/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
> index a509d4bbcb4aa..6008938ee369d 100644
> --- a/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
> +++ b/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
[ ... ]
> @@ -317,7 +325,7 @@ required:
>    - vdda-phy-supply
>    - vdda-pll-supply
> =20
> -additionalProperties: false
> +unevaluatedProperties: false

[Severity: Medium]
Does changing additionalProperties to unevaluatedProperties actually allow
child nodes without defining patternProperties or a bus $ref?

When unevaluatedProperties is set to false without a mechanism to evaluate
the child nodes in this schema, won't dtbs_check still reject device trees
containing the newly added jpeg-encoder child node?

> =20
>  examples:
>    - |

--=20
Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260706071113.3832=
15-1-atanas.filipov@oss.qualcomm.com?part=3D2

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 516643EB7F4
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 07:29:07 +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=1783322957; cv=none; b=U04qUN3hcLgZAQFze8HicwH0p9oQ6FZNTpZfa5zJipWD3e6pb9lWZvb6/JQcgLcLe1WhKky72ZksYRz1px9EReLWfLEiJS6ocRG/hJ0q9hZwQbVUtnP4J1mAt6xy24EtvbbCRfL7yFMZQTxT5rWBCO2CxdQRY/kN3VEVEVcLIxs=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783322957; c=relaxed/simple;
	bh=7tJ4twLONmOOz0ElowuuUtMGNPjXbw8uXCL3n04HiRQ=;
	h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date:
	 Message-Id; b=pJ85q+/zGXPRost3jzVASYKAonZDW9YtcoSQooh7Wzzg7sB2ILgMVNIdu2POVdsXlVyJww/OVqnaLfu/UKdTSkNumix6iXCVndJYlvLJRUv8HI8vCBZIABFvYCG1lorOLptkwlHCe1PRtRig6x34AsMMArM8J1l5ndyo3xBE1C8=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d8YsTh/K; 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="d8YsTh/K"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id F0C481F000E9;
	Mon,  6 Jul 2026 07:29:04 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783322945;
	bh=vdnTOBSrhHH6+gszY1RFinOrL6ia4reRz9DRuevoHDs=;
	h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date;
	b=d8YsTh/K2mhjAmoOjBK4u0fuLoxOBGTq86hOIhEyXLz0LZocwDiNrsizCjr3OdAZ/
	 Khowo+xYw81ciCvUr2r41fGowkw+1xgCXTYD3mb+GIZqpnqHMs6xXr918MSzDFNACK
	 RJC5ZHHjcsAvrz6fjxA55QXKCrKRiPjK5eJ9qK/Z2IVFlvzFQYTRBDugbNsSS7w/IR
	 PCuHZQCYyPUUvctb45F34Nd4jlX08LGpSbO1/wrqFMhNpmuV+Z6cJO3HvAsu97MngX
	 hN/Slo1f0xzB6N+UPb+nz4KG3EVsZwDfklC5ZAqcDmgyjQM7W61I5q6geSBUktPA7o
	 bZuNJSQwgmiyQ==
From: sashiko-bot@kernel.org
Subject: Re: [PATCH v4 4/5] arm64: dts: qcom: sm8250: Add JPEG encoder node
Reply-To: sashiko-reviews@lists.linux.dev
To: "Atanas Filipov" <atanas.filipov@oss.qualcomm.com>
Cc: robh@kernel.org, devicetree@vger.kernel.org, conor+dt@kernel.org
In-Reply-To: <20260706071113.383215-5-atanas.filipov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-5-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Date: Mon, 06 Jul 2026 07:29:04 +0000
Message-Id: <20260706072904.F0C481F000E9@smtp.kernel.org>
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>

Thank you for your contribution! Sashiko AI review found 1 potential issue(=
s) to consider:
- [High] Missing interconnect bandwidth configuration (`opp-peak-kBps`) in =
`jpeg_opp_table`
--

commit 616b7352b84f0f021a4d35b811588d48e0fe74d6
Author: Atanas Filipov <atanas.filipov@oss.qualcomm.com>

arm64: dts: qcom: sm8250: Add JPEG encoder node
   =20
Adds the JPEG encoder hardware node to the SM8250 device tree so the
qcom-jpeg V4L2 encoder driver can bind and operate on this platform.

> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/q=
com/sm8250.dtsi
> index 7076720413ab2..a089b706f60c6 100644
> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
[ ... ]
> @@ -4649,6 +4654,82 @@ port@5 {
>  					reg =3D <5>;
>  				};
>  			};
> +
> +			jpeg-encoder@ac53000 {
> +				compatible =3D "qcom,sm8250-jenc";
[ ... ]
> +				interconnects =3D <&gem_noc MASTER_AMPSS_M0
> +						 QCOM_ICC_TAG_ACTIVE_ONLY
> +						 &config_noc SLAVE_CAMERA_CFG
> +						 QCOM_ICC_TAG_ACTIVE_ONLY>,
> +						<&mmss_noc MASTER_CAMNOC_HF
> +						 QCOM_ICC_TAG_ALWAYS
> +						 &mc_virt SLAVE_EBI_CH0
> +						 QCOM_ICC_TAG_ALWAYS>,
> +						<&mmss_noc MASTER_CAMNOC_SF
> +						 QCOM_ICC_TAG_ALWAYS
> +						 &mc_virt SLAVE_EBI_CH0
> +						 QCOM_ICC_TAG_ALWAYS>;
> +				interconnect-names =3D "cpu-cfg",
> +						     "hf-mnoc",
> +						     "sf-mnoc";
> +
> +				iommus =3D <&apps_smmu 0x2040 0x400>;
> +
> +				operating-points-v2 =3D <&jpeg_opp_table>;
> +
> +				jpeg_opp_table: opp-table {
> +					compatible =3D "operating-points-v2";
> +
> +					opp-100000000 {
> +						opp-hz =3D /bits/ 64 <400000000>,
> +							 /bits/ 64 <100000000>;
> +						required-opps =3D <&rpmhpd_opp_min_svs>;
> +					};

[Severity: High]
Does this missing opp-peak-kBps configuration cause interconnect bandwidth =
to
default to 0?

Since the interconnects are defined on the jpeg-encoder node, when the driv=
er
dynamically sets an operating point via dev_pm_opp_set_opp() during runtime,
the OPP core will iterate over these interconnect paths and call icc_set_bw=
().

Without opp-peak-kBps, won't this vote for 0 bandwidth on the hf-mnoc, sf-m=
noc,
and cpu-cfg interconnects? This could effectively disable or clock-gate the
memory buses, triggering NoC stalls, SMMU faults, or fatal bus errors when =
the
encoder subsequently attempts DMA memory access.

--=20
Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260706071113.3832=
15-1-atanas.filipov@oss.qualcomm.com?part=3D4

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 4F0E43E4C64
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 07:33:32 +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=1783323220; cv=none; b=VNkG+E4PBlLlhfpSDK1gZZTOOcCpRDxsawJ9jjlVTHM0t+h+RwBAVRF/kjlJMRctUScxwltzm7dAZBrNdH0udPum6WrnBJ6Z+31ZG87XzwIv71Nig64naKR9Sbn1jddCe15POw0zic+U+HMmWJZXukOSqxK3I88XvEXVacgeEWY=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783323220; c=relaxed/simple;
	bh=UllkwhW08FVEx6AFizWLh8reoF8pS7tifXCb/Lu0lHs=;
	h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date:
	 Message-Id; b=Zl9qb0Yf2Yyja6OmXp8oPK3BZ5+ph0zRBDw9U44HBs6DnyNmg9COxEOvDztsyOrBNRUqMMD1dIFOJJRRIPNev3UwnKZi8zxxQqIW2Hd/Lszie74PUn75jh92vSFJ6f8udbTF48/ONz/gtRXcmdzBPvVL54bylX+n8d9SnrPxhog=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bVto6fRD; 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="bVto6fRD"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A2F31F000E9;
	Mon,  6 Jul 2026 07:33:28 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783323208;
	bh=V+3ccEx9ufLneWS5pdvR7n+MBr44kGk6VmL6adjlZsw=;
	h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date;
	b=bVto6fRDeJKURU2xzAYHkEbcb4gPQZrshmBqgMXt7Yp/8zLdLI1525ru+mIvgQliP
	 SrS0QU8jJVqOb68hgpwWnNpLk3qy5MaFyAh4f2KlXACakvuzND0IzIduwFkQdPVwJi
	 gqdKp3znGZm4oG/k+I394xyECEyBvdl/m+DdCucJjQwJ0mf3xAygXryEb0Aur81wGO
	 Me5/bIIMytlw+1k3Q+APQYqGzi1wNh24KJyupjDR81GxBntoujMLaBkDD4rDXAK5DX
	 HMT1mK3oXaQ8hDVg2a4M9LJKlJNVSX0eOEoyC1v6I9gdhtyiuc2aIFXHsRN1epJH2W
	 R83X1Nok8+IXQ==
From: sashiko-bot@kernel.org
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2
 encoder
Reply-To: sashiko-reviews@lists.linux.dev
To: "Atanas Filipov" <atanas.filipov@oss.qualcomm.com>
Cc: robh@kernel.org, devicetree@vger.kernel.org, conor+dt@kernel.org
In-Reply-To: <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Date: Mon, 06 Jul 2026 07:33:28 +0000
Message-Id: <20260706073328.9A2F31F000E9@smtp.kernel.org>
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>

Thank you for your contribution! Sashiko AI review found 11 potential issue=
(s) to consider:
- [Critical] The destination DMA buffer limits configured for the hardware =
do not account for the prepended JPEG header offset, allowing an out-of-bou=
nds write.
- [Critical] Hardware is not stopped when active jobs are aborted or queues=
 are stopped, leading to ongoing DMA into freed V4L2 buffers.
- [Critical] Context structure `ectx` is freed in the release handler witho=
ut synchronizing with the threaded IRQ handler.
- [High] Missing platform driver `.remove` hook causes a video device and V=
4L2 M2M context leak, leading to Use-After-Free on unbind.
- [High] The V4L2 device release callback attempts to call `kfree()` on a `=
devm_kzalloc` managed pointer.
- [High] Hardware registers for write engine blocks per row/column are swap=
ped.
- [High] Hardware release in `stop_streaming` is executed outside of `dev_m=
utex`, creating a race condition with concurrent V4L2 contexts acquiring th=
e hardware.
- [High] The driver requires contiguous DMA memory but improperly uses `vb2=
_dma_sg_memops` and ignores multi-entry scatterlists.
- [High] `jpeg_stop` is issued to the hardware after notifying the m2m fram=
ework of job completion, corrupting the subsequent job.
- [High] Bidirectional DMA sync is performed on a buffer that was mapped as=
 `DMA_FROM_DEVICE`.
- [High] If `start_streaming` fails to acquire the hardware, queued buffers=
 are leaked instead of being returned to the vb2 core.
--

commit 1e9c8c45335bfb3f6ed96f07a4bd3645221761b5
Author: Atanas Filipov <atanas.filipov@oss.qualcomm.com>

media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder

Add a Qualcomm JPEG encoder driver implemented on top of the
V4L2 mem2mem framework.

> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c b/drivers/m=
edia/platform/qcom/jpeg/qcom_jenc_dev.c
> --- /dev/null
> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c

[ ... ]

> +static struct platform_driver qcom_jpeg_platform_driver =3D {
> +	.probe  =3D qcom_jpeg_probe,
> +	.driver =3D {
> +		.name =3D QCOM_JPEG_ENC_NAME,
> +		.of_match_table =3D qcom_jpeg_of_match,
> +		.pm             =3D pm_ptr(&qcom_jpeg_pm_ops),
> +	},
> +};

[Severity: High]
Can this lead to a memory leak and use-after-free on driver unbind?

The platform driver registers the video device via qcom_jpeg_v4l2_register()
in qcom_jpeg_probe(), but lacks a .remove hook to unregister it. When the
device is unbound, devres will automatically free the jenc structure, but
the video node will remain active and could be accessed by userspace.

> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_ops.c b/drivers/m=
edia/platform/qcom/jpeg/qcom_jenc_ops.c
> --- /dev/null
> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_ops.c

[ ... ]

> +static int jpeg_apply_we_addr(struct jenc_context *ectx, struct qcom_jen=
c_queue *q,
> +			      struct vb2_buffer *vb)
> +{

[ ... ]

> +	dma +=3D header_size;
> +	qcom_jenc_dqts_emit(&ectx->hdr_cache, mptr);
> +
> +	/*
> +	 * Flush CPU writes to the header before handing the buffer to the
> +	 * hardware DMA engine.
> +	 */
> +	jpeg_sync_sg(jenc->dev, frame, DMA_BIDIRECTIONAL, true);
> +
> +	jpeg_io_write(jenc, jpeg_v420_we_pntr[pln], dma);

[Severity: Critical]
Does this allow the hardware to write past the end of the allocated DMA
mapping?

The DMA start address is advanced by header_size here. However, in
jpeg_setup_we_size() below, the hardware limit is programmed using the full
original buffer capacity (dfmt->plane_fmt[0].sizeimage) instead of the
remaining space.

[ ... ]

> +static int jpeg_setup_we_size(struct jenc_context *ectx, struct qcom_jen=
c_queue *q)
> +{
> +	struct v4l2_pix_format_mplane *dfmt =3D &q->vf;
> +	struct qcom_jenc_dev *jenc =3D ectx->jenc;
> +	u8 pln;
> +
> +	for (pln =3D 0; pln < QCOM_JPEG_MAX_PLANES; pln++)
> +		jpeg_rw_bits(jenc, jpeg_v420_we_stride[pln], JPEG_V420_PLN_WR_STRIDE_S=
TRIDE_MSK, 0);
> +
> +	jpeg_io_write(jenc, JPEG_V420_REG_WE_BSIZE_0, dfmt->plane_fmt[0].sizeim=
age);

[ ... ]

> +static int jpeg_setup_we_params(struct jenc_context *ectx, struct qcom_j=
enc_queue *q)
> +{

[ ... ]

> +	dev_dbg(ectx->dev, "WE blk_w=3D%u blk_h=3D%u cols=3D%u rows=3D%u\n",
> +		blk_w, blk_h, mcu_cols, mcu_rows);
> +
> +	jpeg_rw_bits(jenc, JPEG_V420_REG_WE_BLOCKS_0,
> +		     JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_ROW_MSK, mcu_rows - 1);
> +	jpeg_rw_bits(jenc, JPEG_V420_REG_WE_BLOCKS_0,
> +		     JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_COL_MSK, mcu_cols - 1);

[Severity: High]
Are the horizontal and vertical block counts swapped here?

It appears BLOCKS_PER_ROW_MSK is being assigned the vertical block count
(mcu_rows), and BLOCKS_PER_COL_MSK is receiving the horizontal block count
(mcu_cols).

[ ... ]

> +static int jpeg_store_fe_next(struct jenc_context *ectx, struct vb2_buff=
er *vb2)
> +{
> +	struct qcom_jenc_queue *q =3D &ectx->bufq[TYPE2QID(vb2->type)];
> +	struct qcom_jpeg_buff *buff =3D &q->buff[vb2->index];
> +	u8 pln;
> +
> +	for (pln =3D 0; pln < q->vf.num_planes; pln++) {
> +		buff->plns[pln].sgt =3D vb2_dma_sg_plane_desc(vb2, pln);
> +		if (!buff->plns[pln].sgt || !buff->plns[pln].sgt->sgl)
> +			return -EINVAL;
> +
> +		buff->plns[pln].dma =3D sg_dma_address(buff->plns[pln].sgt->sgl);
> +		if (!buff->plns[pln].dma)
> +			return -EINVAL;

[Severity: High]
Will this silently cross into unmapped memory for buffers larger than 64KB?

The queue is initialized with vb2_dma_sg_memops, which can generate multiple
scatterlist segments. However, this only extracts the DMA address from the
first segment. Because dma_set_max_seg_size() is not called, large buffers
may map into fragmented IOVA chunks that the linear DMA engine cannot handl=
e.

[ ... ]

> +static irqreturn_t op_jpeg_irq_bot(int irq, void *data)
> +{
> +	struct qcom_jenc_dev *jenc =3D data;

[ ... ]

> +		if (ctx && ctx->bufq[JENC_DST_QUEUE].buff_id >=3D 0) {
> +			struct qcom_jenc_queue *dq =3D &ctx->bufq[JENC_DST_QUEUE];
> +			struct qcom_jpeg_buff *frame =3D &dq->buff[dq->buff_id];
> +			size_t out_size =3D jpeg_rd_bits(jenc, JPEG_V420_REG_ENC_OUT_SIZE,
> +						       JPEG_V420_STATUS_OUT_SIZE_BYTES_MSK);
> +
> +			dev_dbg(jenc->dev, "complete idx:%d addr=3D%pad size=3D%zu\n",
> +				dq->buff_id, &frame->plns[0].dma, out_size);
> +
> +			jenc->enc_hw_irq_cb(ctx, VB2_BUF_STATE_DONE,
> +					    out_size + ctx->hdr_cache.size);
> +		}
> +
> +		jpeg_stop(jenc);

[Severity: High]
Could this jpeg_stop() call break the next queued job?

The enc_hw_irq_cb() callback invokes v4l2_m2m_job_finish(), which can
immediately schedule and start the next job on another CPU. If that happens,
this subsequent jpeg_stop() will reset the hardware while the new job is
actively running.

> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.c b/drivers/=
media/platform/qcom/jpeg/qcom_jenc_v4l2.c
> --- /dev/null
> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.c

[ ... ]

> +static int bop_jpeg_vb2_start_streaming(struct vb2_queue *q, unsigned in=
t count)
> +{

[ ... ]

> +	if (!ectx->hw_acquired) {
> +		rc =3D hw->hw_acquire(ectx, q);
> +		if (!rc) {
> +			ectx->hw_acquired =3D true;
> +			hw->hw_get_cap(jenc, &hw_caps);
> +			dev_dbg(ectx->dev, "hw_caps=3D0x%x\n", hw_caps);
> +		}
> +	} else {
> +		rc =3D 0;
> +	}
> +
> +	mutex_unlock(&jenc->dev_mutex);
> +
> +	return rc;
> +}

[Severity: High]
If hardware acquisition fails, are the queued buffers leaked?

The videobuf2 framework requires drivers to return all queued buffers via
vb2_buffer_done(..., VB2_BUF_STATE_QUEUED) when start_streaming() returns
an error, but this error path directly returns the error code without drain=
ing
the m2m queues.

[ ... ]

> +static void bop_jpeg_vb2_stop_streaming(struct vb2_queue *q)
> +{
> +	struct jenc_context *ectx =3D vb2_get_drv_priv(q);
> +	struct qcom_jenc_dev *jenc =3D ectx->jenc;
> +	const struct qcom_jpeg_hw_ops *hw =3D jenc->res->hw_ops;
> +	bool do_release;
> +
> +	mutex_lock(&jenc->dev_mutex);
> +
> +	jpeg_v4l2_work_stop(ectx, VB2_BUF_STATE_ERROR);
> +
> +	do_release =3D ectx->hw_acquired;
> +	ectx->hw_acquired =3D false;
> +
> +	mutex_unlock(&jenc->dev_mutex);
> +
> +	/*
> +	 * hw_release() calls jpeg_deinit() which issues HW_STOP and waits for
> +	 * the STOP_ACK interrupt completion.  It must be called outside
> +	 * dev_mutex to avoid a deadlock: the threaded IRQ handler acquires
> +	 * dev_mutex before signalling the completion.
> +	 */
> +	if (do_release)
> +		hw->hw_release(ectx, q);

[Severity: High]
Is there a race condition here exposing hardware teardown to concurrent
contexts?

The dev_mutex is unlocked before calling hw_release(). Concurrently,
another stream could be executing hw_acquire() (which runs under dev_mutex)
and calling jpeg_init(), causing both contexts to write to hardware
registers simultaneously.

[ ... ]

> +static void mop_jpeg_m2m_job_abort(void *priv)
> +{
> +	struct jenc_context *ectx =3D priv;
> +	struct qcom_jenc_dev *jenc =3D ectx->jenc;
> +
> +	mutex_lock(&jenc->dev_mutex);
> +
> +	jpeg_v4l2_work_stop(ectx, VB2_BUF_STATE_ERROR);
> +
> +	mutex_unlock(&jenc->dev_mutex);
> +}

[Severity: Critical]
Does this leave the hardware actively performing DMA into freed memory?

Active buffers are returned to userspace via jpeg_v4l2_work_stop(), but the
hardware engine is never halted. If another context keeps the reference
count above zero, the hardware continues its asynchronous transfers into
V4L2 buffers that userspace might have already freed.

[ ... ]

> +static int jpeg_v4l2_init_queue(void *priv, struct vb2_queue *sq, struct=
 vb2_queue *dq)
> +{

[ ... ]

> +	dq->drv_priv		=3D ectx;
> +	dq->dev			=3D ectx->dev;
> +	dq->type		=3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
> +	dq->io_modes		=3D VB2_MMAP | VB2_DMABUF | VB2_USERPTR;
> +	dq->buf_struct_size	=3D sizeof(struct v4l2_m2m_buffer);
> +	dq->ops			=3D &qcom_jpeg_v4l2_vb2_ops;
> +	dq->mem_ops		=3D &vb2_dma_sg_memops;
> +	dq->timestamp_flags	=3D V4L2_BUF_FLAG_TIMESTAMP_COPY;
> +	dq->lock		=3D &ectx->ctx_lock;
> +	dq->min_queued_buffers	=3D 1;
> +
> +	rc =3D vb2_queue_init(dq);

[Severity: High]
Will the bidirectional DMA sync used in jpeg_apply_we_addr() trigger a DMA =
API
violation?

The capture queue is initialized without setting dq->bidirectional =3D 1, so
it maps as DMA_FROM_DEVICE. Calling dma_sync_sgtable_for_cpu() or
dma_sync_sgtable_for_device() with DMA_BIDIRECTIONAL on a buffer mapped with
DMA_FROM_DEVICE is invalid and will fail.

[ ... ]

> +static int fop_jpeg_file_release(struct file *file)
> +{
> +	struct jenc_context *ectx =3D jpeg_file2ctx(file);
> +	struct v4l2_m2m_dev *m2m_dev =3D ectx->fh.m2m_ctx->m2m_dev;
> +	struct qcom_jenc_dev *jenc =3D ectx->jenc;
> +	unsigned long flags;
> +
> +	/*
> +	 * Ensure the threaded IRQ handler cannot dereference this context
> +	 * after it is freed.  Clear jenc->actx under hw_lock before
> +	 * cancelling work and releasing the m2m context.
> +	 */
> +	spin_lock_irqsave(&jenc->hw_lock, flags);
> +	if (jenc->actx =3D=3D ectx)
> +		jenc->actx =3D NULL;
> +	spin_unlock_irqrestore(&jenc->hw_lock, flags);
> +
> +	cancel_work_sync(&ectx->stop_work);
> +	cancel_work_sync(&ectx->finish_work);
> +
> +	v4l2_m2m_ctx_release(ectx->fh.m2m_ctx);
> +	v4l2_m2m_put(m2m_dev);
> +	v4l2_ctrl_handler_free(&ectx->ctrl_hdl);
> +	v4l2_fh_del(&ectx->fh, file);
> +	v4l2_fh_exit(&ectx->fh);
> +	mutex_destroy(&ectx->quality_mutex);
> +	mutex_destroy(&ectx->ctx_lock);
> +	kfree(ectx);

[Severity: Critical]
Is there a missing synchronize_irq() call before freeing the context?

The actx pointer is cleared under a spinlock, but if the threaded IRQ
handler (op_jpeg_irq_bot) has already fetched jenc->actx, it will proceed to
dereference the ectx pointer after it has been freed by kfree(ectx) here.

[ ... ]

> +static void jenc_v4l2_dev_release(struct v4l2_device *v4l2_dev)
> +{
> +	struct qcom_jenc_dev *jenc =3D container_of(v4l2_dev, struct qcom_jenc_=
dev, v4l2_dev);
> +
> +	v4l2_device_unregister(&jenc->v4l2_dev);
> +	v4l2_m2m_put(jenc->m2m_dev);
> +	kfree(jenc);
> +}

[Severity: High]
Does this cause a double free or memory corruption?

The jenc structure is allocated using devm_kzalloc() in qcom_jpeg_probe(),
but this release callback explicitly calls kfree(jenc). Freeing a
devres-managed pointer with kfree() corrupts the managed allocation list.

--=20
Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260706071113.3832=
15-1-atanas.filipov@oss.qualcomm.com?part=3D5

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id F15F63EA979
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 07:46:49 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.52
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783324024; cv=none; b=FpMJI4sYUL0sPMenUf4S7Rvk3Q74UEzh4asyohVcyDMuzaw90gyxS6u6h8+N2F7RHYdWAyhpYwMa5pvgEUnP24iDsTRAopd84DkXBB/0YBImnNcKemA4+AxruhgcZrF1VK7jZfaGTFIkrQOIgcytCyAcFtpAw4VurzIWN+WMJzU=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783324024; c=relaxed/simple;
	bh=jmRLWotoYEhjIX0eg1UI4ndyBKCd3zgokiRBmq8uD1A=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=td6KG3C6t/fXl4ftCy394Iu201hDRCTqDmAV12+bKdZkhb7zMXc7/N5tOAiAWsDI/8wCcGb3srBFp66UXIxm1FPtI212ueYwyV48GZJGZ2CYfXiOMto4aHyPKp7XTic8DpUvN23KMh5knT5uDtPW6WrogmhIQl7/HBXTy3r5hV4=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=tLt4uHFY; arc=none smtp.client-ip=209.85.167.52
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="tLt4uHFY"
Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-5aeb40ebefbso706350e87.0
        for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 00:46:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783324005; x=1783928805; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to:content-type;
        bh=ttbAS/8urIf+XGHC0s8dkc6oboku9enqLpUvWitBlDs=;
        b=tLt4uHFYctHsuyh6ToTy5Zri85Idx4aKWAEGSL5vjtSAEJ/FIO4Vmrnm7Lf6HS39wd
         BYznRTrGC+4AydE9ixKRMIAQk2SRyc7cqt+rscyZAKsqEjrnIgOZF3jW+kZ0Izwszcbg
         b2/a3dLM0op7XHNuY8V8z+glTCs2jhtfJBzR/QcEXjrhvktKOnhQGBUEkPfgRT5U1Fts
         hb7sTzxPFsu5JKAWYC7bN7S2Gl2oPrPk5zGICRbFP5TZDiVEParwGSuPGXg6aEvecitd
         /osDDyGlURTNFOetFlYqx5US5nNuBtbVoWuvlmWA/LRtk43k3tF67WNlNp4qkq/pEEXz
         ipXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783324005; x=1783928805;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=ttbAS/8urIf+XGHC0s8dkc6oboku9enqLpUvWitBlDs=;
        b=SPP2UmqfUOmL1if270xE8Ozmqti8CyTIy1wx8UycnKCrbrf4nfkxgRPmlstd4eWybX
         2Cil/VKkEGRmFqLoG/EAxL8eHYF2MuGLqgGofikq7ph82clLflvDkcgY7jamvUOG0M3b
         k1vpsFPaj7Rjk3F/MTPRExjwD2yraMliBkBbgNeRktjUhYgUKu2gXsoido6YlG4gCln1
         S3b4egpUCyu7eoSnNlOzcWSvjFKqVwxbF3s38W5XM3jEejQ4c8ik6N5sZX7nD3rWAIbR
         bBIGOnwXiGVHK2gehXf/UdIjqJNK+oxk4tK2Aqp3okEpMuB+q3vNu1ovacvy5bOCrKHe
         n04Q==
X-Forwarded-Encrypted: i=1; AHgh+Rp2Abyvk3mv7qhFFfXCLYTOnuD7Xfa0rMKLViv+8UYUWTbFgDrCtNV5q1BiZpuEAMFyOeuPhTOvnBu+@vger.kernel.org
X-Gm-Message-State: AOJu0YyZ6KFmhU49GJzSijfyuf70ypiHTW/89c01gdHZH3DGwBdxQFSu
	kC78xejVF6IbbM2vN8fDyY6dH6H92M6mGaY0lWaz7gZ0qNk6jmLfG2iZY9Bl/qomRAo=
X-Gm-Gg: AfdE7ckuHMkjBOuWYOutqyBPfCzROoFe9XRjJmc05xCjhkCxk4A2rg33cXvfb/phjpT
	e4cgBppPOd0fvBLPNOSae/II343Y7HFBZTuP29HZaN0R5rI1T1QCrj+0WgAJlCafS5BGLJoDyI1
	rXuaF4eE7469RbpMUJBbL96bmZLEzqz6tJv+OvQlLSTo8Gl2zE/1xbz0dsp4hJx7DBs1TA3x6oh
	zYH1A0E39e/y+3DfkMf7h5jAusA+/FAD6FpFQFokW8lYco8uD2UOba9vqNwLzpk8hHRf1Q8xJHM
	fAotn03hNjph1yt62KJORigRJwYavvFylZj5dFOYlayQIjUZhJ1WmHYVqP/Sqo96CddzDgxW8Vo
	yHLYEwdaKIro2Mof+oSByvAc3VmZYXka+wz7hZX2qY7eo8kqW5lyZ/lGdNgs9YshUqlJRwgkfot
	tAwVR8JcjE5HIbX8pbj23i5S27Y+KRSwEEZv76ElDJB6QhDjn4Le6Hc+RK32VChzHMJVqsHKgHC
	Pv6zw==
X-Received: by 2002:a05:6512:3d04:b0:5ae:b2df:c11a with SMTP id 2adb3069b0e04-5aed44f625emr1064910e87.0.1783324005196;
        Mon, 06 Jul 2026 00:46:45 -0700 (PDT)
Received: from [192.168.1.100] (91-159-24-186.elisa-laajakaista.fi. [91.159.24.186])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed132f89dsm2588450e87.0.2026.07.06.00.46.44
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 00:46:44 -0700 (PDT)
Message-ID: <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
Date: Mon, 6 Jul 2026 10:46:43 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
In-Reply-To: <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Atanas.

lt me provide a few initial simple review comments.

On 7/6/26 10:11, Atanas Filipov wrote:
> Add a Qualcomm JPEG encoder driver implemented on top of the
> V4L2 mem2mem framework.
> 
> The driver wires vb2 queue handling, format negotiation, JPEG header
> handling, interrupt-driven job completion, and runtime PM/clock/ICC
> integration for the standalone JPEG encode hardware block.
> 
> This series targets SM8250 (Kona) platforms.
> 
> The jpeg-encoder node is described as a child node of the CAMSS block
> and is probed automatically via of_platform_populate() in camss_probe().
> 
> Usage examples:
> 
> - Check of related video node: v4l2-ctl --list-devices
>    The expected result:
>     qcom-jpeg-enc (platform:qcom-jpeg-enc):
>          /dev/videoX
> 
> V4L2 Examples:
> 
> v4l2-ctl -d /dev/video14 \
> --set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
> --stream-mmap --stream-out-mmap
> 
> v4l2-ctl -d /dev/video14 \
> -c compression_quality=100 \
> --set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
> --stream-mmap --stream-out-mmap \
> --stream-count=100
> 
> v4l2-ctl -d /dev/video14 \
> --set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
> --stream-mmap --stream-out-mmap \
> --set-ctrl=perf_level_auto=1 \
> --set-ctrl=fps_target=30 \
> --stream-count=100
> 
> v4l2-ctl -d /dev/video14 \
> --set-fmt-video-out=width=8192,height=8192,pixelformat=NM12 \
> --stream-mmap --stream-out-mmap \
> --stream-count=1 \
> --stream-to=8192x8192_NM12.jpg
> 
> v4l2-ctl -d /dev/video14 \
> --set-fmt-video-out=width=8192,height=8192,pixelformat=GREY \
> --stream-mmap --stream-out-mmap \
> --stream-count=1 \
> --stream-to=OUT_8192x8192.jpg
> 
> v4l2-ctl -d /dev/video14 \
> -c compression_quality=100 \
> --set-fmt-video-out=width=1920,height=1088,pixelformat=NM12 \
> --stream-mmap=4 --stream-out-mmap=4 \
> --stream-count=100 \
> --stream-out-pattern=21 \
> --stream-to=OUT_1920x1088_100F.mjpg
> 
> GStreamer examples:
> 
> gst-launch-1.0 videotestsrc \
> is-live=false pattern=ball num-buffers=50 ! \
> video/x-raw,format=NV12,width=1920,height=1080 ! \
> videoscale ! videoconvert ! \
> video/x-raw,format=NV12,width=1920,height=1088 ! \
> v4l2jpegenc ! \
> fakesink sync=false
> 
> gst-launch-1.0 videotestsrc is-live=true pattern=smpte ! \
> video/x-raw,format=NV12,width=1920,height=1088 ! \
> v4l2jpegenc extra-controls="controls,compression_quality=85" ! \
> fpsdisplaysink -v sync=false
> 
> Performance measurements on SM8250
> (NV12, quality=100, GStreamer v4l2jpegenc vs jpegenc):
> 
> +------------+-----------------------------+-------------------+
> | Resolution |    HW v4l2jpegenc (q100)    | SW jpegenc (q100) |
> |            | Execution | avrFPS | maxFPS | Execution |  FPS  |
> +------------+-----------+--------+--------+-----------+-------+
> |   512x512  | 2.2332    | 1139.1 | 1195.4 | 7.1055    | 358.0 |
> |  1280x720  | 1.7300    |  418.5 |  457.2 | 5.0585    | 143.1 |
> | 1024x1024  | 1.6991    |  374.3 |  397.4 | 4.7304    | 134.4 |
> | 1920x1088  | 1.6596    |  192.8 |  193.8 | 3.7913    |  84.4 |
> | 2048x2048  | 1.7277    |   92.0 |   91.6 | 3.6343    |  43.7 |
> | 4096x4096  | 1.5887    |   25.2 |   25.3 | 4.2163    |   9.5 |
> | 8192x8192  | 1.3104    |    7.6 |    8.0 | 2.9987    |   3.3 |
> +------------+-----------+--------+--------+-----------+-------+
> 
> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> ---
>   .../bindings/media/qcom,jpeg-encoder.yaml     |  143 +-
>   drivers/media/platform/qcom/Kconfig           |    1 +
>   drivers/media/platform/qcom/Makefile          |    1 +
>   drivers/media/platform/qcom/jpeg/Kconfig      |   15 +
>   drivers/media/platform/qcom/jpeg/Makefile     |    9 +
>   .../media/platform/qcom/jpeg/qcom_jenc_defs.h |   37 +
>   .../media/platform/qcom/jpeg/qcom_jenc_dev.c  |  314 ++++
>   .../media/platform/qcom/jpeg/qcom_jenc_dev.h  |  109 ++
>   .../media/platform/qcom/jpeg/qcom_jenc_hdr.c  |  331 ++++
>   .../media/platform/qcom/jpeg/qcom_jenc_hdr.h  |  119 ++
>   .../media/platform/qcom/jpeg/qcom_jenc_ops.c  | 1625 +++++++++++++++++
>   .../media/platform/qcom/jpeg/qcom_jenc_ops.h  |   52 +
>   .../media/platform/qcom/jpeg/qcom_jenc_res.c  |   15 +
>   .../media/platform/qcom/jpeg/qcom_jenc_res.h  |   19 +
>   .../qcom/jpeg/qcom_jenc_v420_hw_info.h        |  410 +++++
>   .../media/platform/qcom/jpeg/qcom_jenc_v4l2.c | 1154 ++++++++++++
>   .../media/platform/qcom/jpeg/qcom_jenc_v4l2.h |   23 +
>   include/media/jpeg.h                          |   33 +
>   include/uapi/linux/v4l2-controls.h            |   21 +
>   19 files changed, 4357 insertions(+), 74 deletions(-)
>   create mode 100644 drivers/media/platform/qcom/jpeg/Kconfig
>   create mode 100644 drivers/media/platform/qcom/jpeg/Makefile
>   create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h
>   create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c
>   create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_dev.h
>   create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c
>   create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.h
>   create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_ops.c
>   create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_ops.h
>   create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_res.c
>   create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_res.h
>   create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_v420_hw_info.h
>   create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.c
>   create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.h
> 
> diff --git a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> index e4c16388ef07..53e83ebe4699 100644
> --- a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> +++ b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> @@ -72,80 +72,75 @@ examples:
>       #include <dt-bindings/interconnect/qcom,sm8250.h>
>       #include <dt-bindings/interrupt-controller/arm-gic.h>
>   
> -    jpeg-encoder@ac53000 {
> -        compatible = "qcom,sm8250-jenc";
> -        reg = <0xac53000 0x1000>;
> -
> -        interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
> -
> -        clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
> -                 <&gcc GCC_CAMERA_SF_AXI_CLK>,
> -                 <&camcc CAM_CC_CORE_AHB_CLK>,
> -                 <&camcc CAM_CC_CPAS_AHB_CLK>,
> -                 <&camcc CAM_CC_CAMNOC_AXI_CLK>,
> -                 <&camcc CAM_CC_JPEG_CLK>;
> -        clock-names = "hf_axi",
> -                      "sf_axi",
> -                      "core_ahb",
> -                      "cpas_ahb",
> -                      "cnoc_axi",
> -                      "jpeg";
> -
> -        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
> -                         &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
> -                        <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
> -                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>,
> -                        <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ALWAYS
> -                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>;
> -        interconnect-names = "cpu-cfg",
> -                             "hf-mnoc",
> -                             "sf-mnoc";
> -
> -        iommus = <&apps_smmu 0x2040 0x400>;
> -
> -        operating-points-v2 = <&jpeg_opp_table>;
> -
> -        jpeg_opp_table: opp-table {
> -            compatible = "operating-points-v2";
> -
> -            opp-100000000 {
> -                opp-hz = /bits/ 64 <400000000>,
> -                         /bits/ 64 <100000000>;
> -                opp-peak-kBps = <76800 104166 104166>;
> -                opp-avg-kBps = <38400 33569 33569>;
> -                required-opps = <&rpmhpd_opp_min_svs>;
> -            };
> -
> -            opp-200000000 {
> -                opp-hz = /bits/ 64 <400000000>,
> -                         /bits/ 64 <200000000>;
> -                opp-peak-kBps = <76800 208333 208333>;
> -                opp-avg-kBps = <38400 67138 67138>;
> -                required-opps = <&rpmhpd_opp_low_svs>;
> -            };
> -
> -            opp-400000000 {
> -                opp-hz = /bits/ 64 <400000000>,
> -                         /bits/ 64 <400000000>;
> -                opp-peak-kBps = <76800 416666 416666>;
> -                opp-avg-kBps = <38400 134277 134277>;
> -                required-opps = <&rpmhpd_opp_svs>;
> -            };
> -
> -            opp-480000000 {
> -                opp-hz = /bits/ 64 <400000000>,
> -                         /bits/ 64 <480000000>;
> -                opp-peak-kBps = <76800 500000 500000>;
> -                opp-avg-kBps = <38400 161132 161132>;
> -                required-opps = <&rpmhpd_opp_svs_l1>;
> -            };
> -
> -            opp-600000000 {
> -                opp-hz = /bits/ 64 <400000000>,
> -                         /bits/ 64 <600000000>;
> -                opp-peak-kBps = <76800 625000 625000>;
> -                opp-avg-kBps = <38400 201416 201416>;
> -                required-opps = <&rpmhpd_opp_nom>;
> +    soc {

The 'jpeg-encoder' devicetree node is not placed directly under 'soc', which
invalidates this one change in the dt-bindings documentation.

In any case, this change shall be squashed with 3/5, and the doc file should
be named by compatible value, i.e. 'qcom,sm8250-jenc.yaml'.

> +        #address-cells = <2>;
> +        #size-cells = <2>;
> +
> +        jpeg-encoder@ac53000 {
> +            compatible = "qcom,sm8250-jenc";
> +            reg = <0 0x0ac53000 0 0x1000>;
> +
> +            interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
> +
> +            clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
> +                     <&gcc GCC_CAMERA_SF_AXI_CLK>,
> +                     <&camcc CAM_CC_CORE_AHB_CLK>,
> +                     <&camcc CAM_CC_CPAS_AHB_CLK>,
> +                     <&camcc CAM_CC_CAMNOC_AXI_CLK>,
> +                     <&camcc CAM_CC_JPEG_CLK>;
> +            clock-names = "hf_axi",
> +                          "sf_axi",
> +                          "core_ahb",
> +                          "cpas_ahb",
> +                          "cnoc_axi",
> +                          "jpeg";
> +
> +            interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
> +                             &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
> +                            <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
> +                             &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>,
> +                            <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ALWAYS
> +                             &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>;
> +            interconnect-names = "cpu-cfg",
> +                                 "hf-mnoc",
> +                                 "sf-mnoc";

This is the topic, which may raise a disagreement, but I'll repeat my
position about the need to remove all "CAMSS bus" specific resources from
the device node, they are found and should be allocated on parent's side.

 From what I see it is applicable to all but one clock and all interconnects.

> +
> +            iommus = <&apps_smmu 0x2040 0x400>;
> +
> +            operating-points-v2 = <&jpeg_opp_table>;
> +
> +            jpeg_opp_table: opp-table {
> +                compatible = "operating-points-v2";
> +
> +                opp-100000000 {
> +                    opp-hz = /bits/ 64 <400000000>,
> +                             /bits/ 64 <100000000>;
> +                    required-opps = <&rpmhpd_opp_min_svs>;
> +                };
> +
> +                opp-200000000 {
> +                    opp-hz = /bits/ 64 <400000000>,
> +                             /bits/ 64 <200000000>;
> +                    required-opps = <&rpmhpd_opp_low_svs>;
> +                };
> +
> +                opp-400000000 {
> +                    opp-hz = /bits/ 64 <400000000>,
> +                             /bits/ 64 <400000000>;
> +                    required-opps = <&rpmhpd_opp_svs>;
> +                };
> +
> +                opp-480000000 {
> +                    opp-hz = /bits/ 64 <400000000>,
> +                             /bits/ 64 <480000000>;
> +                    required-opps = <&rpmhpd_opp_svs_l1>;
> +                };
> +
> +                opp-600000000 {
> +                    opp-hz = /bits/ 64 <400000000>,
> +                             /bits/ 64 <600000000>;
> +                    required-opps = <&rpmhpd_opp_nom>;
> +                };
>               };
>           };
>       };

<snip>

> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_res.c b/drivers/media/platform/qcom/jpeg/qcom_jenc_res.c
> new file mode 100644
> index 000000000000..f9ab7c86792f
> --- /dev/null
> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_res.c
> @@ -0,0 +1,15 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +#include "qcom_jenc_ops.h"
> +#include "qcom_jenc_res.h"
> +
> +#include "qcom_jenc_v420_hw_info.h"
> +
> +const struct qcom_dev_resources qcom_t165_t480_jpeg_drvdata = {
> +	.hw_ops			= &qcom_jpeg_default_ops,
> +	.ref_clk_hz		= 600000000UL,
> +	.ref_throughput_mpps	= 110UL,
> +};
> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_res.h b/drivers/media/platform/qcom/jpeg/qcom_jenc_res.h
> new file mode 100644
> index 000000000000..91c6e789cffa
> --- /dev/null
> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_res.h
> @@ -0,0 +1,19 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +#ifndef QCOM_JENC_RES_H
> +#define QCOM_JENC_RES_H
> +
> +#include "qcom_jenc_defs.h"
> +
> +struct qcom_dev_resources {
> +	const struct qcom_jpeg_hw_ops	*hw_ops;
> +	unsigned long			ref_clk_hz;
> +	unsigned long			ref_throughput_mpps;
> +};
> +
> +extern const struct qcom_dev_resources qcom_t165_t480_jpeg_drvdata;
> +
> +#endif	/* QCOM_JENC_RES_H */
> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_v420_hw_info.h b/drivers/media/platform/qcom/jpeg/qcom_jenc_v420_hw_info.h
> new file mode 100644
> index 000000000000..ebf69128cc2b
> --- /dev/null
> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_v420_hw_info.h
> @@ -0,0 +1,410 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +#ifndef QCOM_JENC_V420_HW_INFO_H
> +#define QCOM_JENC_V420_HW_INFO_H
> +
> +#include "qcom_jenc_defs.h"
> +
> +#define JPEG_V420_HW_VER_STEP_POS 0
> +#define JPEG_V420_HW_VER_STEP_MSK \
> +	(0xffffu << JPEG_V420_HW_VER_STEP_POS)
> +
> +#define JPEG_V420_HW_VER_MINOR_POS 16
> +#define JPEG_V420_HW_VER_MINOR_MSK \
> +	(0x0fffu << JPEG_V420_HW_VER_MINOR_POS)
> +
> +#define JPEG_V420_HW_VER_MAJOR_POS 28
> +#define JPEG_V420_HW_VER_MAJOR_MSK \
> +	(0xfu << JPEG_V420_HW_VER_MAJOR_POS)
> +
> +#define JPEG_V420_HW_CAP_ENCODE_MSK BIT_U32(0)
> +#define JPEG_V420_HW_CAP_DECODE_MSK BIT_U32(1)
> +
> +#define JPEG_V420_HW_CAP_UPSCALE_POS 4
> +#define JPEG_V420_HW_CAP_UPSCALE_MSK \
> +	(0x7u << JPEG_V420_HW_CAP_UPSCALE_POS)
> +
> +#define JPEG_V420_HW_CAP_DOWNSCALE_POS 8
> +#define JPEG_V420_HW_CAP_DOWNSCALE_MSK \
> +	(0x7u << JPEG_V420_HW_CAP_DOWNSCALE_POS)
> +
> +#define JPEG_V420_RST_CMD_FE_RESET_MSK			BIT_U32(0)
> +#define JPEG_V420_RST_CMD_WE_RESET_MSK			BIT_U32(1)
> +#define JPEG_V420_RST_CMD_ENCODER_RESET_MSK		BIT_U32(4)
> +#define JPEG_V420_RST_CMD_DECODER_RESET_MSK		BIT_U32(5)
> +#define JPEG_V420_RST_CMD_BLOCK_FORMATTER_RST_MSK	BIT_U32(6)
> +#define JPEG_V420_RST_CMD_SCALE_RESET_MSK		BIT_U32(7)
> +#define JPEG_V420_RST_CMD_REGISTER_RESET_MSK		BIT_U32(13)
> +#define JPEG_V420_RST_CMD_MISR_RESET_MSK		BIT_U32(16)
> +#define JPEG_V420_RST_CMD_CORE_RESET_MSK		BIT_U32(17)
> +#define JPEG_V420_RST_CMD_JPEG_V420_DOMAIN_RESET_MSK	BIT_U32(29)
> +#define JPEG_V420_RST_CMD_RESET_BYPASS_MSK		BIT_U32(31)
> +
> +#define JPEG_V420_CORE_CFG_FE_ENABLE_MSK	BIT_U32(0)
> +#define JPEG_V420_CORE_CFG_WE_ENABLE_MSK	BIT_U32(1)
> +#define JPEG_V420_CORE_CFG_ENC_ENABLE_MSK	BIT_U32(4)
> +#define JPEG_V420_CORE_CFG_SCALE_ENABLE_MSK	BIT_U32(7)
> +#define JPEG_V420_CORE_CFG_TESTBUS_ENABLE_MSK	BIT_U32(19)
> +#define JPEG_V420_CORE_CFG_MODE_MSK		BIT_U32(24)
> +#define JPEG_V420_CORE_CFG_CGC_DISABLE_MSK	BIT_U32(31)
> +
> +#define JPEG_V420_CMD_HW_START_MSK		BIT_U32(0)
> +#define JPEG_V420_CMD_HW_STOP_MSK		BIT_U32(1)
> +#define JPEG_V420_CMD_CLR_RD_PLN0_QUEUE_MSK	BIT_U32(4)
> +#define JPEG_V420_CMD_CLR_RD_PLN1_QUEUE_MSK	BIT_U32(5)
> +#define JPEG_V420_CMD_CLR_RD_PLN2_QUEUE_MSK	BIT_U32(6)
> +#define JPEG_V420_CMD_CLR_WR_PLN0_QUEUE_MSK	BIT_U32(8)
> +#define JPEG_V420_CMD_CLR_WR_PLN1_QUEUE_MSK	BIT_U32(9)
> +#define JPEG_V420_CMD_CLR_WR_PLN2_QUEUE_MSK	BIT_U32(10)
> +#define JPEG_V420_CMD_APPLY_SWC_RD_PARAMS_MSK	BIT_U32(11)
> +
> +#define JPEG_V420_CORE_STATE_STATUS_ENCODE_STATE_MSK	BIT_U32(0)
> +#define JPEG_V420_CORE_STATE_STATUS_SCALE_STATE_MSK	BIT_U32(2)
> +#define JPEG_V420_CORE_STATE_STATUS_REALTIME_STATE_MSK	BIT_U32(4)
> +#define JPEG_V420_CORE_STATE_STATUS_BUS_STATE_MSK	BIT_U32(8)
> +#define JPEG_V420_CORE_STATE_STATUS_CGC_STATE_MSK	BIT_U32(9)
> +
> +#define JPEG_V420_FE_CFG_BYTE_ORDERING_POS 0
> +#define JPEG_V420_FE_CFG_BYTE_ORDERING_MSK \
> +	(0xfu << JPEG_V420_FE_CFG_BYTE_ORDERING_POS)
> +
> +#define JPEG_V420_FE_CFG_BURST_LENGTH_MAX_POS 4
> +#define JPEG_V420_FE_CFG_BURST_LENGTH_MAX_MSK \
> +	(0xfu << JPEG_V420_FE_CFG_BURST_LENGTH_MAX_POS)
> +
> +#define JPEG_V420_FE_CFG_MEMORY_FORMAT_POS 8
> +#define JPEG_V420_FE_CFG_MEMORY_FORMAT_MSK \
> +	(0x3u << JPEG_V420_FE_CFG_MEMORY_FORMAT_POS)
> +
> +#define JPEG_V420_FE_CFG_CBCR_ORDER_MSK		BIT_U32(12)
> +#define JPEG_V420_FE_CFG_BOTTOM_VPAD_EN_MSK	BIT_U32(13)
> +#define JPEG_V420_FE_CFG_PLN0_EN_MSK		BIT_U32(16)
> +#define JPEG_V420_FE_CFG_PLN1_EN_MSK		BIT_U32(17)
> +#define JPEG_V420_FE_CFG_PLN2_EN_MSK		BIT_U32(18)
> +#define JPEG_V420_FE_CFG_SIXTEEN_MCU_EN_MSK	BIT_U32(21)
> +#define JPEG_V420_FE_CFG_MCUS_PER_BLOCK_MSK	BIT_U32(22)
> +#define JPEG_V420_FE_CFG_MAL_BOUNDARY_MSK	BIT_U32(24)
> +#define JPEG_V420_FE_CFG_MAL_EN_MSK		BIT_U32(27)
> +
> +#define JPEG_V420_PLN_RD_OFFS_OFFSET_POS 0
> +#define JPEG_V420_PLN_RD_OFFS_OFFSET_MSK \
> +	(0x1fffffffu << JPEG_V420_PLN_RD_OFFS_OFFSET_POS)
> +
> +#define JPEG_V420_PLN_RD_BUFF_SIZE_WIDTH_POS 0
> +#define JPEG_V420_PLN_RD_BUFF_SIZE_WIDTH_MSK \
> +	(0xffffu << JPEG_V420_PLN_RD_BUFF_SIZE_WIDTH_POS)
> +
> +#define JPEG_V420_PLN_RD_BUFF_SIZE_HEIGHT_POS 16
> +#define JPEG_V420_PLN_RD_BUFF_SIZE_HEIGHT_MSK \
> +	(0xffffu << JPEG_V420_PLN_RD_BUFF_SIZE_HEIGHT_POS)
> +
> +#define JPEG_V420_PLN_RD_STRIDE_STRIDE_POS 0
> +#define JPEG_V420_PLN_RD_STRIDE_STRIDE_MSK \
> +	(0xffffu << JPEG_V420_PLN_RD_STRIDE_STRIDE_POS)
> +
> +#define JPEG_V420_PLN_RD_HINIT_FRACTIONAL_POS 0
> +#define JPEG_V420_PLN_RD_HINIT_FRACTIONAL_MSK \
> +	(0x1fffffu << JPEG_V420_PLN_RD_HINIT_FRACTIONAL_POS)
> +
> +#define JPEG_V420_PLN_RD_VINIT_FRACTIONAL_POS 0
> +#define JPEG_V420_PLN_RD_VINIT_FRACTIONAL_MSK \
> +	(0x1fffffu << JPEG_V420_PLN_RD_VINIT_FRACTIONAL_POS)
> +
> +#define JPEG_V420_WE_CFG_BYTE_ORDERING_POS 0
> +#define JPEG_V420_WE_CFG_BYTE_ORDERING_MSK \
> +	(0xfu << JPEG_V420_WE_CFG_BYTE_ORDERING_POS)
> +
> +#define JPEG_V420_WE_CFG_BURST_LENGTH_MAX_POS 4
> +#define JPEG_V420_WE_CFG_BURST_LENGTH_MAX_MSK \
> +	(0xfu << JPEG_V420_WE_CFG_BURST_LENGTH_MAX_POS)
> +
> +#define JPEG_V420_WE_CFG_MEMORY_FORMAT_POS 8
> +#define JPEG_V420_WE_CFG_MEMORY_FORMAT_MSK \
> +	(0x3u << JPEG_V420_WE_CFG_MEMORY_FORMAT_POS)
> +
> +#define JPEG_V420_WE_CFG_CBCR_ORDER_MSK		BIT_U32(12)
> +#define JPEG_V420_WE_CFG_PLN0_EN_MSK		BIT_U32(16)
> +#define JPEG_V420_WE_CFG_PLN1_EN_MSK		BIT_U32(17)
> +#define JPEG_V420_WE_CFG_PLN2_EN_MSK		BIT_U32(18)
> +#define JPEG_V420_WE_CFG_MAL_BOUNDARY_MSK	BIT_U32(24)
> +#define JPEG_V420_WE_CFG_MAL_EN_MSK		BIT_U32(27)
> +#define JPEG_V420_WE_CFG_POP_BUFF_ON_EOS_MSK	BIT_U32(28)
> +
> +#define JPEG_V420_PLN_WR_BUFF_SIZE_WIDTH_POS 0
> +#define JPEG_V420_PLN_WR_BUFF_SIZE_WIDTH_MSK \
> +	(0xffffu << JPEG_V420_PLN_WR_BUFF_SIZE_WIDTH_POS)
> +
> +#define JPEG_V420_PLN_WR_BUFF_SIZE_HEIGHT_POS 16
> +#define JPEG_V420_PLN_WR_BUFF_SIZE_HEIGHT_MSK \
> +	(0xffffu << JPEG_V420_PLN_WR_BUFF_SIZE_HEIGHT_POS)
> +
> +#define JPEG_V420_PLN_WR_STRIDE_STRIDE_POS 0
> +#define JPEG_V420_PLN_WR_STRIDE_STRIDE_MSK \
> +	(0xffffu << JPEG_V420_PLN_WR_STRIDE_STRIDE_POS)
> +
> +#define JPEG_V420_PLN_WR_HINIT_INTEGER_POS 0
> +#define JPEG_V420_PLN_WR_HINIT_INTEGER_MSK \
> +	(0xffffu << JPEG_V420_PLN_WR_HINIT_INTEGER_POS)
> +
> +#define JPEG_V420_PLN_WR_VINIT_INTEGER_POS 0
> +#define JPEG_V420_PLN_WR_VINIT_INTEGER_MSK \
> +	(0xffffu << JPEG_V420_PLN_WR_VINIT_INTEGER_POS)
> +
> +#define JPEG_V420_PLN_WR_HSTEP_INTEGER_POS 0
> +#define JPEG_V420_PLN_WR_HSTEP_INTEGER_MSK \
> +	(0x1ffffu << JPEG_V420_PLN_WR_HSTEP_INTEGER_POS)
> +
> +#define JPEG_V420_PLN_WR_VSTEP_INTEGER_POS 0
> +#define JPEG_V420_PLN_WR_VSTEP_INTEGER_MSK \
> +	(0x1ffffu << JPEG_V420_PLN_WR_VSTEP_INTEGER_POS)
> +
> +#define JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_COL_POS 0
> +#define JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_COL_MSK \
> +	(0xffffu << JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_COL_POS)
> +
> +#define JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_ROW_POS 16
> +#define JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_ROW_MSK \
> +	(0xffffu << JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_ROW_POS)
> +
> +#define JPEG_V420_ENC_CFG_IMAGE_FORMAT_POS 0
> +#define JPEG_V420_ENC_CFG_IMAGE_FORMAT_MSK \
> +	(0x7u << JPEG_V420_ENC_CFG_IMAGE_FORMAT_POS)
> +
> +#define JPEG_V420_ENC_CFG_APPLY_EOI_MSK		BIT_U32(7)
> +#define JPEG_V420_ENC_CFG_HUFFMAN_SEL_MSK	BIT_U32(8)
> +#define JPEG_V420_ENC_CFG_FSC_ENABLE_MSK	BIT_U32(11)
> +#define JPEG_V420_ENC_CFG_OUTPUT_DISABLE_MSK	BIT_U32(15)
> +#define JPEG_V420_ENC_CFG_RST_MARKER_PERIOD_MSK	BIT_U32(16)
> +
> +#define JPEG_V420_ENC_IMG_SIZE_ENCODE_WIDTH_POS 0u
> +#define JPEG_V420_ENC_IMG_SIZE_ENCODE_WIDTH_MSK \
> +	(0x1fffu << JPEG_V420_ENC_IMG_SIZE_ENCODE_WIDTH_POS)
> +
> +#define JPEG_V420_ENC_IMG_SIZE_ENCODE_HEIGHT_POS 16u
> +#define JPEG_V420_ENC_IMG_SIZE_ENCODE_HEIGHT_MSK \
> +	(0x1fffu << JPEG_V420_ENC_IMG_SIZE_ENCODE_HEIGHT_POS)
> +
> +#define JPEG_V420_STATUS_OUT_SIZE_BYTES_POS 0
> +#define JPEG_V420_STATUS_OUT_SIZE_BYTES_MSK \
> +	(0x1fffffffu << JPEG_V420_STATUS_OUT_SIZE_BYTES_POS)
> +
> +#define JPEG_V420_SCALE_CFG_HSCALE_ENABLE_MSK		BIT_U32(4)
> +#define JPEG_V420_SCALE_CFG_VSCALE_ENABLE_MSK		BIT_U32(5)
> +#define JPEG_V420_SCALE_CFG_UPSAMPLE_EN_MSK		BIT_U32(6)
> +#define JPEG_V420_SCALE_CFG_SUBSAMPLE_EN_MSK		BIT_U32(7)
> +#define JPEG_V420_SCALE_CFG_HSCALE_ALGO_MSK		BIT_U32(8)
> +#define JPEG_V420_SCALE_CFG_VSCALE_ALGO_MSK		BIT_U32(9)
> +
> +#define JPEG_V420_SCALE_CFG_H_SCALE_FIR_ALGO_POS  12u
> +#define JPEG_V420_SCALE_CFG_H_SCALE_FIR_ALGO_MSK \
> +	(0x3u << JPEG_V420_SCALE_CFG_H_SCALE_FIR_ALGO_POS)
> +
> +#define JPEG_V420_SCALE_CFG_V_SCALE_FIR_ALGO_POS  16u
> +#define JPEG_V420_SCALE_CFG_V_SCALE_FIR_ALGO_MSK \
> +	(0x3u << JPEG_V420_SCALE_CFG_V_SCALE_FIR_ALGO_POS)
> +
> +#define JPEG_V420_SCALE_OUT_CFG_BLOCK_WIDTH_POS 0
> +#define JPEG_V420_SCALE_OUT_CFG_BLOCK_WIDTH_MSK \
> +	(0xffu << JPEG_V420_SCALE_OUT_CFG_BLOCK_WIDTH_POS)
> +
> +#define JPEG_V420_SCALE_OUT_CFG_BLOCK_HEIGHT_POS 16
> +#define JPEG_V420_SCALE_OUT_CFG_BLOCK_HEIGHT_MSK \
> +	(0xfu << JPEG_V420_SCALE_OUT_CFG_BLOCK_HEIGHT_POS)
> +
> +#define JPEG_V420_SCALE_PLN_HSTEP_FRACTIONAL_POS 0
> +#define JPEG_V420_SCALE_PLN_HSTEP_FRACTIONAL_MSK \
> +	(0x1fffffu << JPEG_V420_SCALE_PLN_HSTEP_FRACTIONAL_POS)
> +
> +#define JPEG_V420_SCALE_PLN_HSTEP_INTEGER_POS 21
> +#define JPEG_V420_SCALE_PLN_HSTEP_INTEGER_MSK \
> +	(0x3fu << JPEG_V420_SCALE_PLN_HSTEP_INTEGER_POS)
> +
> +#define JPEG_V420_SCALE_PLN_VSTEP_FRACTIONAL_POS 0
> +#define JPEG_V420_SCALE_PLN_VSTEP_FRACTIONAL_MSK \
> +	(0x1fffffu << JPEG_V420_SCALE_PLN_VSTEP_FRACTIONAL_POS)
> +
> +#define JPEG_V420_SCALE_PLN_VSTEP_INTEGER_POS 21
> +#define JPEG_V420_SCALE_PLN_VSTEP_INTEGER_MSK \
> +	(0x3fu << JPEG_V420_SCALE_PLN_VSTEP_INTEGER_POS)
> +
> +#define JPEG_V420_DMI_CFG_MEM_SEL_POS 0
> +#define JPEG_V420_DMI_CFG_MEM_SEL_MSK \
> +	(0x7u << JPEG_V420_DMI_CFG_MEM_SEL_POS)
> +
> +#define JPEG_V420_DMI_CFG_AUTO_INC_EN_MSK	BIT_U32(4)
> +
> +/* DMI_CFG value to select quantization table memory and enable auto-increment */
> +#define JPEG_DMI_ENABLE_UPLOAD			(JPEG_V420_DMI_CFG_AUTO_INC_EN_MSK | 0x1u)
> +
> +#define JPEG_V420_DMI_ADDR_ADDR_POS 0
> +#define JPEG_V420_DMI_ADDR_ADDR_MSK \
> +	(0x3ffu << JPEG_V420_DMI_ADDR_ADDR_POS)
> +
> +#define JPEG_V420_TESTBUS_CFG_BUS_SEL_POS 0
> +#define JPEG_V420_TESTBUS_CFG_BUS_SEL_MSK \
> +	(0x3fu << JPEG_V420_TESTBUS_CFG_BUS_SEL_POS)
> +
> +#define JPEG_V420_FE_VBPAD_CFG_BLOCK_ROW_POS 0
> +#define JPEG_V420_FE_VBPAD_CFG_BLOCK_ROW_MSK \
> +	(0x1fffu << JPEG_V420_FE_VBPAD_CFG_BLOCK_ROW_POS)
> +
> +#define JPEG_V420_PLN_RD_HINIT_INT_INTEGER_POS 0
> +#define JPEG_V420_PLN_RD_HINIT_INT_INTEGER_MSK \
> +	(0x1ffffu << JPEG_V420_PLN_RD_HINIT_INT_INTEGER_POS)
> +
> +#define JPEG_V420_PLN_RD_VINIT_INT_INTEGER_POS 0
> +#define JPEG_V420_PLN_RD_VINIT_INT_INTEGER_MSK \
> +	(0x1ffffu << JPEG_V420_PLN_RD_VINIT_INT_INTEGER_POS)
> +
> +#define JPEG_V420_IRQ_STATUS_SESSION_DONE_MSK		BIT_U32(0)
> +#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN0_DONE_MSK	BIT_U32(4)
> +#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN1_DONE_MSK	BIT_U32(5)
> +#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN2_DONE_MSK	BIT_U32(6)
> +#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN0_REQ_ATTN_MSK	BIT_U32(7)
> +#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN1_REQ_ATTN_MSK	BIT_U32(8)
> +#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN2_REQ_ATTN_MSK	BIT_U32(9)
> +#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_DONE_MSK	BIT_U32(10)
> +#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN1_DONE_MSK	BIT_U32(11)
> +#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN2_DONE_MSK	BIT_U32(12)
> +#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_REQ_ATTN_MSK	BIT_U32(13)
> +#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN1_REQ_ATTN_MSK	BIT_U32(14)
> +#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN2_REQ_ATTN_MSK	BIT_U32(15)
> +#define JPEG_V420_IRQ_STATUS_DCD_UNESCAPED_FF_MSK	BIT_U32(19)
> +#define JPEG_V420_IRQ_STATUS_DCD_HUFFMAN_ERROR_MSK	BIT_U32(20)
> +#define JPEG_V420_IRQ_STATUS_DCD_COEFF_ERROR_MSK	BIT_U32(21)
> +#define JPEG_V420_IRQ_STATUS_DCD_MISSING_BITSTUFF_MSK	BIT_U32(22)
> +#define JPEG_V420_IRQ_STATUS_DCD_SCAN_UNDERFLOW_MSK	BIT_U32(23)
> +#define JPEG_V420_IRQ_STATUS_DCD_INVALID_RSM_MSK	BIT_U32(24)
> +#define JPEG_V420_IRQ_STATUS_DCD_INVALID_RSM_SEQ_MSK	BIT_U32(25)
> +#define JPEG_V420_IRQ_STATUS_DCD_MISSING_RSM_MSK	BIT_U32(26)
> +#define JPEG_V420_IRQ_STATUS_STOP_ACK_MSK		BIT_U32(27)
> +#define JPEG_V420_IRQ_STATUS_RESET_ACK_MSK		BIT_U32(28)
> +
> +#define	JPEG_V420_IRQ_STATUS_RD_BUF_PLNS_DONE_MSK \
> +	(JPEG_V420_IRQ_STATUS_RD_BUF_PLN0_DONE_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_RD_BUF_PLN1_DONE_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_RD_BUF_PLN2_DONE_MSK)
> +
> +#define	JPEG_V420_IRQ_STATUS_WR_BUF_PLNS_DONE_MSK \
> +	(JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_DONE_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_WR_BUF_PLN1_DONE_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_WR_BUF_PLN2_DONE_MSK)
> +
> +#define	JPEG_V420_IRQ_STATUS_RD_BUF_PLNS_REQ_ATTN_MSK \
> +	(JPEG_V420_IRQ_STATUS_RD_BUF_PLN0_REQ_ATTN_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_RD_BUF_PLN1_REQ_ATTN_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_RD_BUF_PLN2_REQ_ATTN_MSK)
> +
> +#define	JPEG_V420_IRQ_STATUS_WR_BUF_PLNS_REQ_ATTN_MSK \
> +	(JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_REQ_ATTN_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_WR_BUF_PLN1_REQ_ATTN_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_WR_BUF_PLN2_REQ_ATTN_MSK)
> +
> +#define	JPEG_V420_IRQ_STATUS_SESION_ERROR_MSK \
> +	(JPEG_V420_IRQ_STATUS_DCD_UNESCAPED_FF_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_DCD_HUFFMAN_ERROR_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_DCD_COEFF_ERROR_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_DCD_MISSING_BITSTUFF_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_DCD_SCAN_UNDERFLOW_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_DCD_INVALID_RSM_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_DCD_INVALID_RSM_SEQ_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_DCD_MISSING_RSM_MSK)
> +
> +#define JPEG_V420_IRQ_STATUS_ALL_BITS \
> +	(JPEG_V420_IRQ_STATUS_SESSION_DONE_MSK		| \
> +	 JPEG_V420_IRQ_STATUS_RD_BUF_PLNS_DONE_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_DONE_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_RD_BUF_PLNS_REQ_ATTN_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_WR_BUF_PLNS_REQ_ATTN_MSK	| \
> +	 JPEG_V420_IRQ_STATUS_SESION_ERROR_MSK		| \
> +	 JPEG_V420_IRQ_STATUS_STOP_ACK_MSK		| \
> +	 JPEG_V420_IRQ_STATUS_RESET_ACK_MSK)
> +
> +/* Register offsets for JPEG v4.2.0 hardware */
> +#define JPEG_V420_REG_HW_VERSION	0x000
> +#define JPEG_V420_REG_HW_CAPABILITY	0x004
> +#define JPEG_V420_REG_RESET_CMD		0x008
> +#define JPEG_V420_REG_CORE_CFG		0x00c
> +#define JPEG_V420_REG_HW_CMD		0x010
> +#define JPEG_V420_REG_ENC_CORE_STATE	0x014
> +#define JPEG_V420_REG_INT_MASK		0x018
> +#define JPEG_V420_REG_INT_CLR		0x01c
> +#define JPEG_V420_REG_INT_STATUS	0x020
> +#define JPEG_V420_REG_FE_CFG		0x024
> +
> +/* FE (fetch engine) plane registers */
> +#define JPEG_V420_REG_FE_PNTR_0		0x038
> +#define JPEG_V420_REG_FE_PNTR_1		0x044
> +#define JPEG_V420_REG_FE_PNTR_2		0x050
> +#define JPEG_V420_REG_FE_OFFS_0		0x03c
> +#define JPEG_V420_REG_FE_OFFS_1		0x048
> +#define JPEG_V420_REG_FE_OFFS_2		0x054
> +#define JPEG_V420_REG_FE_PNTR_CNT	0x05c
> +#define JPEG_V420_REG_FE_BSIZE_0	0x060
> +#define JPEG_V420_REG_FE_BSIZE_1	0x068
> +#define JPEG_V420_REG_FE_BSIZE_2	0x070
> +#define JPEG_V420_REG_FE_STRIDE_0	0x064
> +#define JPEG_V420_REG_FE_STRIDE_1	0x06c
> +#define JPEG_V420_REG_FE_STRIDE_2	0x08c
> +#define JPEG_V420_REG_FE_HINIT_0	0x074
> +#define JPEG_V420_REG_FE_HINIT_1	0x078
> +#define JPEG_V420_REG_FE_HINIT_2	0x07c
> +#define JPEG_V420_REG_FE_VINIT_0	0x080
> +#define JPEG_V420_REG_FE_VINIT_1	0x084
> +#define JPEG_V420_REG_FE_VINIT_2	0x088
> +#define JPEG_V420_REG_FE_VBPAD_CFG	0x2e8
> +
> +/* WE (write engine) plane registers */
> +#define JPEG_V420_REG_WE_CFG		0x0c0
> +#define JPEG_V420_REG_WE_PNTR_CNT	0x0e4
> +#define JPEG_V420_REG_WE_PNTR_0		0x0cc
> +#define JPEG_V420_REG_WE_PNTR_1		0x0d0
> +#define JPEG_V420_REG_WE_PNTR_2		0x0d4
> +#define JPEG_V420_REG_WE_BSIZE_0	0x0e8
> +#define JPEG_V420_REG_WE_BSIZE_1	0x0ec
> +#define JPEG_V420_REG_WE_BSIZE_2	0x0f0
> +#define JPEG_V420_REG_WE_STRIDE_0	0x0f4
> +#define JPEG_V420_REG_WE_STRIDE_1	0x0f8
> +#define JPEG_V420_REG_WE_STRIDE_2	0x0fc
> +#define JPEG_V420_REG_WE_HINIT_0	0x100
> +#define JPEG_V420_REG_WE_HINIT_1	0x104
> +#define JPEG_V420_REG_WE_HINIT_2	0x108
> +#define JPEG_V420_REG_WE_VINIT_0	0x10c
> +#define JPEG_V420_REG_WE_VINIT_1	0x110
> +#define JPEG_V420_REG_WE_VINIT_2	0x114
> +#define JPEG_V420_REG_WE_HSTEP_0	0x118
> +#define JPEG_V420_REG_WE_HSTEP_1	0x11c
> +#define JPEG_V420_REG_WE_HSTEP_2	0x120
> +#define JPEG_V420_REG_WE_VSTEP_0	0x124
> +#define JPEG_V420_REG_WE_VSTEP_1	0x128
> +#define JPEG_V420_REG_WE_VSTEP_2	0x12c
> +#define JPEG_V420_REG_WE_BLOCKS_0	0x130
> +#define JPEG_V420_REG_WE_BLOCKS_1	0x134
> +#define JPEG_V420_REG_WE_BLOCKS_2	0x138
> +
> +/* Encoder registers */
> +#define JPEG_V420_REG_ENC_CFG		0x13c
> +#define JPEG_V420_REG_ENC_IMG_SIZE	0x140
> +#define JPEG_V420_REG_ENC_OUT_SIZE	0x180
> +
> +/* Scaler registers */
> +#define JPEG_V420_REG_SCALE_CFG		0x26c
> +#define JPEG_V420_REG_SCALE_OUT_CFG_0	0x270
> +#define JPEG_V420_REG_SCALE_OUT_CFG_1	0x274
> +#define JPEG_V420_REG_SCALE_OUT_CFG_2	0x278
> +#define JPEG_V420_REG_SCALE_HSTEP_0	0x27c
> +#define JPEG_V420_REG_SCALE_HSTEP_1	0x280
> +#define JPEG_V420_REG_SCALE_HSTEP_2	0x284
> +#define JPEG_V420_REG_SCALE_VSTEP_0	0x28c
> +#define JPEG_V420_REG_SCALE_VSTEP_1	0x290
> +#define JPEG_V420_REG_SCALE_VSTEP_2	0x294
> +
> +/* DMI registers */
> +#define JPEG_V420_REG_DMI_CFG		0x298
> +#define JPEG_V420_REG_DMI_ADDR		0x29c
> +#define JPEG_V420_REG_DMI_DATA		0x2a0
> +
> +#endif /* QCOM_JENC_V420_HW_INFO_H */

qcom_jenc_v420_hw_info.h shall be removed, and its content goes to
qcom_jenc_res.c file, no info is shared from the header, and static
declarations in header files are not favoured.

In general the driver loos good.

-- 
Best wishes,
Vladimir

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8FC683AA507
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 10:07:23 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.54
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783332446; cv=none; b=aoT9ZzIFIrCYY+/2BWpyUhFtTNicX3JlPn9g/P+j5TPIUl2ClAjJ2kwfJW8l4ci5AtYIv60PZfKg4dhmAWDmrUVbgtjhcCx9UUNBJjV/LyLSFDoOVqwJMIrEUBGo6jk/LvJIZd0yzxwtKqG0QoJmidOJi60E/pLeEFDx0Fgs+Z4=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783332446; c=relaxed/simple;
	bh=cRWNjKmduoK//U7tqDYvdW8Fw47BsRRlQaOBQhBhOfI=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=l2rdO3AcfCr6sbOhckl4YfvnP4AKDwO7NHBiPqUXkA2M/jr4w7W7PT8sDNruK33m03tUhoH4Ar+jEIjG0c9OQLFXhgiArDhYBdimMTJzcEKo+/xboONU86MvAuycczkTQNST37eN8T0jo/w44Fd4e7XzJL1JI2tWmEdeOHIPK/U=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=X1UxLoY9; arc=none smtp.client-ip=209.85.208.54
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="X1UxLoY9"
Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-698b6c87884so4965541a12.2
        for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 03:07:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783332442; x=1783937242; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to:content-type;
        bh=3UGN+tInxm7YHzGqwLdDJ1bWYCbBBGU54xQmERlMD08=;
        b=X1UxLoY9KDlDjt1y1R5kEZDF4V/rRkfJmQquq5271XE9EwHP32ww6JOrwjQDoOKfVT
         qnXjmNEhgL9eWPLX62XCD04i9N3VtrvgvBaHoT2ozZcKF+59IVeQXfy2wKSvR5O0rMVb
         43q2NVVvk9l4gqe5Og0cLHhbX3qlp0JRnQe4F2O3baDtvU1/c9VzW+3nDPiWsq4PwgGy
         8Dnk5tyTUl+EDyF/QaI6Fx1cgBxA7egkFaGUYBQITPdX+t6CLqxBlJMELiaRGDSZWPXY
         D15L5bQasIFmeSZGG89S3XRgGpQtGwhhoo0/0Lep19d+NyPaWgYu8+e0EBMDkXl97u6q
         WaAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783332442; x=1783937242;
        h=content-transfer-encoding:content-type:in-reply-to:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=3UGN+tInxm7YHzGqwLdDJ1bWYCbBBGU54xQmERlMD08=;
        b=mL/JKJ3A6Qjgm+bleVkpo7PXVJTyou5/fktvcjeS9AiMOvTD6sig3ypC7xYoe6jijM
         P2mb0yrj4LHaCuRWWAn/BwtqdkVBs5Qw89umfV1gBzEKtJkEDGk6CHazd/Qc25sedkdU
         vefie+zy73tuVnZX8vmofX9xT6LAm2XS7ZRapnbsq3IuFmXMwwCPaL+NntvIECNPl/QL
         Zi+/idAhehqnLhijNhN3A2eoQX+JpxwxBgc9yl9R8G9aW/8PdMZVAu49ASpXk27T70JW
         3KKUrDd3ADMg/60o811AJtgbnlFEf16i12vp+qxm3uDUgOYGd77rhDucQbdrcEFMXZVB
         2jTQ==
X-Forwarded-Encrypted: i=1; AHgh+RruHy1sCn0IUllARf/xmpoQ2BGLlkzSgxsouRIU+swK8r6nJMD7hb1yFAR+9LC7uuds8F1u1ETbztL7@vger.kernel.org
X-Gm-Message-State: AOJu0YwMcEPW+FRkMVAY+Yg+j/TZ4X5wgfcvrx+SS7W+aSrg5ca4b3q+
	ioALMhDIugHeb6M+h3rasDwpe6TPyk7oBo5UOtVVpvz9ctDei64Z+G3aTMJQ4GeLw5g=
X-Gm-Gg: AfdE7cmJzKTw2wTnPRyEZDvZPdetzScYLlIXESTxYwkiJ4qdJLKfUoQYh0rZMeHHXlA
	KVTFgGt6ynxDf0duFCArB+wf5CFmXSDDxQKmFW3fd6tdz9sQsCtqgfF++MwRxfkfrrHcHwU+qAZ
	zkAymE8LycH8mJOvUQG6G4qepPZAX33id9Bj0bc2zyEGNlFxH0JFVb+PbXcVflXqKsqyWzZZ60F
	GcDQUE0xzjIUBvLDowJOVcrZMDhgWgyE/gDtPrk0aiiuj4H52lcnRFLZVZHf6rEeBZhp7PQM5XC
	e5YXq3iwXNQDaqsRw/w1nQ+ovZe+TjdEJzipbAb4QWH7wBLiOixmJIIzjIxDz/YcbyaYyamvPJP
	iwNUlpnVj4NOswt/X+XTURfGHz7qQ1EtKMRD93s77GQOtZ9Y9cLO4v84tkDoH4O003FPenTKNg9
	ZQ207w0zwHYGFiRvd9ZjY0VGuACg==
X-Received: by 2002:a17:906:fe02:b0:beb:8c28:254 with SMTP id a640c23a62f3a-c12e66259a7mr358483366b.0.1783332441744;
        Mon, 06 Jul 2026 03:07:21 -0700 (PDT)
Received: from [192.168.0.101] ([109.77.44.220])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c12b62c552esm710202766b.49.2026.07.06.03.07.20
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 03:07:21 -0700 (PDT)
Message-ID: <b7c335fc-4a53-437d-824e-63f7ad6dd06f@linaro.org>
Date: Mon, 6 Jul 2026 11:07:19 +0100
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/5] dt-bindings: media: qcom,sm8250-camss: allow JPEG
 encoder child node
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org
Cc: vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-3-atanas.filipov@oss.qualcomm.com>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <20260706071113.383215-3-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/07/2026 08:11, Atanas Filipov wrote:
> The CAMSS node uses #address-cells = <2>, #size-cells = <2> and ranges
> to act as a bus for child IP blocks such as the JPEG encoder. Add these
> properties to the binding so that dtbs_check does not reject them.
> 
> Use unevaluatedProperties: false instead of additionalProperties: false
> so that child nodes are validated against their own schema (matched by
> compatible) without requiring the parent binding to enumerate each child
> type explicitly. This is the correct approach for a bus-like container
> node and avoids updating the camss binding for every new child device
> added in the future.
> 
> No functional change.
> 
> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> ---
>   .../devicetree/bindings/media/qcom,sm8250-camss.yaml   | 10 +++++++++-
>   1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml b/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
> index a509d4bbcb4a..6008938ee369 100644
> --- a/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
> +++ b/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
> @@ -102,6 +102,14 @@ properties:
>         - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller.
>         - description: Titan GDSC - Titan ISP Block, Global Distributed Switch Controller.
>   
> +  "#address-cells":
> +    const: 2
> +
> +  "#size-cells":
> +    const: 2
> +
> +  ranges: true
> +
>     ports:
>       $ref: /schemas/graph.yaml#/properties/ports
>   
> @@ -317,7 +325,7 @@ required:
>     - vdda-phy-supply
>     - vdda-pll-supply
>   
> -additionalProperties: false
> +unevaluatedProperties: false
>   
>   examples:
>     - |

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id B8F363D9540
	for <linux-media@vger.kernel.org>; Mon,  6 Jul 2026 10:12:25 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.48
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783332747; cv=none; b=qVo+rVpKeKk2Ro+s2PXkcLYhS33DHeyCqiDxFywVDboXpDdOMwgBh13nfQURhaxuyzyQuB9YnOxyNosmGtzIwViW/L35EBO7QsbMb3w8DfJ6GDxlhxjXpLbN1LudFGsUztZAbE3yBzujz0lD0g1LKVuONxd39YvutUbkJMDD/x4=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783332747; c=relaxed/simple;
	bh=gqgOIGIN6sXR8VaiD0l5Q2LHm5agZmjYy0VZs9k+yjg=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=V1kdILxXfp1leccBl6ygR7xcwB8r6kW+8QcQwn/obQ+gTVOiMeuv9iYJRPBqSweR8hVNqAEWgcph+7Oyg6hnqmQajVDahXLWcUDmbHkkNvcpy4+WvNtAaIxpb7HGfphLUEPYVR/Qv9H1vd1NQztSo4EXS9F7Z2jIBBEe8iPpXFQ=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=DRIBpWRj; arc=none smtp.client-ip=209.85.208.48
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="DRIBpWRj"
Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-697bd21fdc2so4653442a12.1
        for <linux-media@vger.kernel.org>; Mon, 06 Jul 2026 03:12:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783332744; x=1783937544; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=AqdiZptSXu3ipdJWB6QZa/nDkTWEQFhlT8vnJMgKmk4=;
        b=DRIBpWRjP6YIlMnqGcYDXJ+MeyD3nsqikVqkGuR//MWxv21DRVtdAje+7iHEXQM6wF
         l1ecU8eqR5Ggg8MjCn80bql/csRRt2hGBTTTbSudJG5Q9Waw0CWMDsf+GALBEnUiqCPs
         LUO+HQkplwRdHPevEt39FnHn0afp/ntUwN65pUtfgkZFFfpI22p7mb+LJxuIirRniumA
         uiMB3VeHVALtHIssz8Sk/ZtPNoj2OyWPmAHSa5DoYANBiS8u/u0485j1Uq+CrNxwhxJe
         6V2qABnaG8aA8nXlB11Q/s2FJ4Bv9KbzSmN01AF79BMbY25NwETuwZ/nHlGV9CAxsKjI
         aSyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783332744; x=1783937544;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=AqdiZptSXu3ipdJWB6QZa/nDkTWEQFhlT8vnJMgKmk4=;
        b=aRVi2Ifb9DJXlzYjs1jFkbnPKr9MnpEqLhfcNw063xSrG6ddifjG06goAaa4vsGCC8
         k5JWbgqHKguuLErDr0l50Ilt6CpqfzkJQ54mpAa7Fk58D9ZgGFgAw2eokjVtcvhNjF6I
         PbIATMXDuv7xIk7uVbh6U2Sh71AHtXsbuc/c9aG2DJaAYx51/6jm1PObaZRe+4btaSO9
         GEi2VJT6MSjtcJBM3UuIRpg3LVdQkeI2JFBpvvWgU5AVbEw/LDqU3xOUtPvYjQvF9p+l
         UABb7te6HWt+CElcBO510UFXQyF7RYpU625hDi17Sy1bRgZnubyfr2waxaFyRZ3lEDYg
         VXBw==
X-Forwarded-Encrypted: i=1; AHgh+RrAOdfLxXm5F7UXdKp9hHToAiELll0XTetyMpGXwk+nOdm+embmVX3nMrPJK6JvhekOlZE+zD//bgh+Nw==@vger.kernel.org
X-Gm-Message-State: AOJu0YyGDqlbm9IhqZcF3sCB+L+gicdlelL9T1gC3R0+cVY3jiDzlkkr
	kYv9iAV/yw6YgEjdvstydKnk/xQz8mMYiA4wM3LV/ajEhtbO+MjHULQ+F5Divm6fMIQ=
X-Gm-Gg: AfdE7clRyyKDPQNmthjPpAG79LAz5spBSm70WLrdIwemoYlULkg2WRsFe2Tu0brlvFh
	pd9wJwr9mVtfitRNf2XvrSafit2EpF7NLNXNiXfuC5x5l8xMASMORdCq/EBNlTlC/QcGqZuha37
	1mFqFdr+gtU/A5IvC1SKyED28FXAbuFQIcu8eS4dBoFCHlFoU7x8CDeos1RpK4oD8yWJw9cIXeA
	tvFXVEC4rDMIzNrUqsJXMaq1QsGK88uawrO1ye3K/pb2MFhLqjsPfhG6QciXKC+yNLlcCeeUmhS
	5/cRwFUk9UA4y9m1NggG9/FHoXv1Wbvcs7ILZtYC+8iEZf0A6fy11jpij7VFzew/PbxDhYMdJPr
	vpnvsRgs2b9hNlhu+asN5R5Dp3JYrHOJ9WrwckQQrRcpCRJFTseNXxRN+s5c1NItVoxhkQcoJHr
	sRes/86r6dFOpgdv+kTXhQ2nbYVJjwZqxCB6+L
X-Received: by 2002:a17:907:9454:b0:c0f:beeb:dbd8 with SMTP id a640c23a62f3a-c12e6b2e5ecmr395937066b.27.1783332744035;
        Mon, 06 Jul 2026 03:12:24 -0700 (PDT)
Received: from [192.168.0.101] ([109.77.44.220])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c12b6290972sm712364866b.41.2026.07.06.03.12.23
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 03:12:23 -0700 (PDT)
Message-ID: <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
Date: Mon, 6 Jul 2026 11:12:22 +0100
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org
Cc: vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/07/2026 08:11, Atanas Filipov wrote:
> Note: The handling of shared camera subsystem resources (power domains,
> interconnects) for child IP blocks is still an open design question.

Why ?

A device needs to vote on its own interconnect and power-domains on any 
bus. A sub-device of another device may wish to ramp a clock for 
whatever reason.

There is no "master" device in this block of devices - save perhaps for 
the CSID mux / wrappers on some of these parts.

We have shared resources like camera noc, system noc and external clocks.

Please include power-domains and interconnects.

---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id 018B0370AE2
	for <linux-media@vger.kernel.org>; Mon,  6 Jul 2026 10:19:45 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.53
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783333187; cv=none; b=CYabobxp73cMbu4tUJFVdA3Qvi9jPdx8KoViOm/u/y+jUj7vEfbI/bNZb6xo41vuLSE+rly3cCSBzJEcu3gZmdEiGDn3jpS4k+MXtfzdwxJNelkHAQ5hiBEo8+jMyPGcN9mWsPz/P1ijXsi0TFcfZFWZZnv2RhVR8askAnMowPI=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783333187; c=relaxed/simple;
	bh=KmfR6yIAJ2fYTP1OLR4lLsR44XEMajPeyLYwK0BAJsA=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=t1gqnEobjo+Ah53k9yA4KGmn4J7a2oVqdQq6GCGblcLhpNfLWnjaL8JJF842rEy4XtppqWSvzFUopJcQU+iLInBh1P6wwaibIph4VcURxn9dlWUi6TeTPNw9XCJ5bMDbooEkddlbbZieng7CqIor4x+MKMbSNJuMrErmCowDa0w=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=yeb9lfrm; arc=none smtp.client-ip=209.85.208.53
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="yeb9lfrm"
Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-699fbcd23ccso3501071a12.1
        for <linux-media@vger.kernel.org>; Mon, 06 Jul 2026 03:19:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783333184; x=1783937984; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=74gU3islGwdmxnesUaUsU+krAV2TXhAdAquxY2zrLBI=;
        b=yeb9lfrmZAuSU5aFKe3IupMgjw07nos7Rv8UtZbGvLisy7Ro58Y+0jpSWOdYqIo0BF
         wUNhy8sYQ91rTmSJoRAW5E/d9WnF7rL9dmu8vKPzS96gQ6laXocBkh9gNqlzorMgRq9s
         rNHcjix65uBMdVovu3qADKyPDERvC3A7X5fQuPBI9zlSQPV/hjAMrMZQRrcb37X/roNK
         8naPzIFoGve69cRcp1uR9D9FXK/aRpZXjHMmBQIkxUIFsoCDtK2OxBNrYFBIfZd5D4Jh
         lHS5ozylSLhONajDHXrqHzlzAvMKB2K1khsWi+HYEnXLgqVHf0pxbuIZ5b+7KHfEFEjG
         YKcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783333184; x=1783937984;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=74gU3islGwdmxnesUaUsU+krAV2TXhAdAquxY2zrLBI=;
        b=oR8ag5QXWrroQbgI9XAXNpQ3ViHnHA4ZA5ghcszw4NA4tS7JdUfu2zGJeotiIn8THj
         p/v2DajyQuww1WpY7/6s/XlFINRhMSquNY7lyPWRRQOVZjjN0igd6llr9LYOmZIiU+qe
         AF4W02D7gDZ1YYAzUA5ddPQucWASDEwRXBGjm90siPAwyoOc2zl5vdYlQ1ZwtrwR9Acq
         d8W5NvcsYqiWrUuJFJPJ2PI1sU52RWMLkLXHxU3vcgth2KTN7cKeLzQ1dzC9drdW3l2z
         2esN8VGH1AckBVeezrNtu3piSt3fBx12LmP377hA8JrKimAu6WIg9dDH0O7kVr6fAy4I
         c5jQ==
X-Forwarded-Encrypted: i=1; AHgh+RrxhV5V6l/rN8fCwUV1Z0tbtTkfsdYY12mxvXb3LUBMpPm8BuyJ3JhUuFSmIA2gKgKGvEOj0gnMlk1Tzw==@vger.kernel.org
X-Gm-Message-State: AOJu0Yy/VSh+9TzRWjJSK58IzBQ0DH2PEw4ahcy9vaVeACLmjFaK+Pry
	s7j+odPZ3YBWDdOPQpeS3RFvKsMjKBNl6xG6iXfmgx8MWvOEPKfTdOCPtBuPC1Ad5aA=
X-Gm-Gg: AfdE7cmASBYAJcksD9v3L0pjFVnLBTx/Y7x0N3iyYg/hIUROzE973qQzGPLNcMQf9pc
	BfkuA8JHCqkT7zgnGricS/BmbwZw9RdiXXJgfHDFkLRlu58g0hRJhBmtZvljLe9HlLnvuShzpvo
	adrTLxe38bTVSm6tJNErXeAeC7fFy2jUFFRrQfAHP42/OObFSeKWVTsr2JfRVopAvfn4ZGGWcbX
	vdpzksLXzaixX8K2iFeWdAGafOgxW/nWmeIdGn0QXQvWYX2BUaDH6ndDz5o8KeecjhFTe1YOCT1
	pmXPWQxqq4RL4wTBgM+9WLGzoI+tk7v+s4QCl4LQsSuK3B0sewbGuaM/0u7IQ2Rp6xlv9w67Tqk
	l2oHU12ln+7kMeAySMPoOP5wWMd1WQA/qboUJi4ydnvgc9I4BJhBAt0TYdT8juwAHcElHrRiDxz
	MY9Q8l6TY1hb3N0pcR51iaVjP4UiFRvtnKuUpt
X-Received: by 2002:a05:6402:a204:10b0:69a:11a3:ae82 with SMTP id 4fb4d7f45d1cf-69a85c0b975mr170a12.25.1783333184042;
        Mon, 06 Jul 2026 03:19:44 -0700 (PDT)
Received: from [192.168.0.101] ([109.77.44.220])
        by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69a19d78a08sm3829915a12.18.2026.07.06.03.19.43
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 03:19:43 -0700 (PDT)
Message-ID: <ff2a7084-f343-4121-8e44-a0777856af09@linaro.org>
Date: Mon, 6 Jul 2026 11:19:42 +0100
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/5] dt-bindings: media: qcom: Add JPEG encoder binding
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org
Cc: vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-4-atanas.filipov@oss.qualcomm.com>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <20260706071113.383215-4-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/07/2026 08:11, Atanas Filipov wrote:
> Add device-tree binding for the Qualcomm JPEG encoder hardware block
> present in SM8250 (Kona) SoCs.
> 
> The JPEG encoder is a standalone hardware IP within the camera subsystem
> that performs JPEG compression in memory-to-memory fashion.  It is
> separate from the CAMSS ISP pipeline and has its own register space,
> interrupt, clocks, power domain, IOMMU streams, and interconnect paths.
> 
> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> ---
>   .../bindings/media/qcom,jpeg-encoder.yaml     | 151 ++++++++++++++++++
>   1 file changed, 151 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> 
> diff --git a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> new file mode 100644
> index 000000000000..e4c16388ef07
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> @@ -0,0 +1,151 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/qcom,jpeg-encoder.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm JPEG Encoder
> +
> +maintainers:
> +  - Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> +
> +description:
> +  Qualcomm JPEG Encoder is the JPEG encode hardware present in Qualcomm SoCs.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - qcom,sm8250-jenc
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 6
> +
> +  clock-names:
> +    items:
> +      - const: hf_axi
> +      - const: sf_axi
> +      - const: core_ahb
> +      - const: cpas_ahb
> +      - const: cnoc_axi
> +      - const: jpeg
> +
> +  interconnects:
> +    maxItems: 3
> +
> +  interconnect-names:
> +    items:
> +      - const: cpu-cfg
> +      - const: hf-mnoc
> +      - const: sf-mnoc
> +
> +  iommus:
> +    maxItems: 1

We've been asking people to name the IOMMU SID to ensure we are 
including the right SID.

My own view is we should have a header for these items with a meaningful 
name - separate argument I'm not asking for that here but please do add 
a comment naming the SID.

> +
> +  operating-points-v2: true
> +
> +  opp-table:
> +    type: object
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - interrupts
> +  - interconnects
> +  - interconnect-names
> +  - iommus

If we have clocks and interconnects, there is no reason to omit 
power-domains.

Otherwise looking pretty good to me, thanks for sticking with it.

> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/qcom,camcc-sm8250.h>
> +    #include <dt-bindings/clock/qcom,gcc-sm8250.h>
> +    #include <dt-bindings/interconnect/qcom,icc.h>
> +    #include <dt-bindings/interconnect/qcom,sm8250.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +    jpeg-encoder@ac53000 {
> +        compatible = "qcom,sm8250-jenc";
> +        reg = <0xac53000 0x1000>;
> +
> +        interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
> +
> +        clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
> +                 <&gcc GCC_CAMERA_SF_AXI_CLK>,
> +                 <&camcc CAM_CC_CORE_AHB_CLK>,
> +                 <&camcc CAM_CC_CPAS_AHB_CLK>,
> +                 <&camcc CAM_CC_CAMNOC_AXI_CLK>,
> +                 <&camcc CAM_CC_JPEG_CLK>;
> +        clock-names = "hf_axi",
> +                      "sf_axi",
> +                      "core_ahb",
> +                      "cpas_ahb",
> +                      "cnoc_axi",
> +                      "jpeg";
> +
> +        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
> +                         &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
> +                        <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
> +                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>,
> +                        <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ALWAYS
> +                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>;
> +        interconnect-names = "cpu-cfg",
> +                             "hf-mnoc",
> +                             "sf-mnoc";
> +
> +        iommus = <&apps_smmu 0x2040 0x400>;
> +
> +        operating-points-v2 = <&jpeg_opp_table>;
> +
> +        jpeg_opp_table: opp-table {
> +            compatible = "operating-points-v2";
> +
> +            opp-100000000 {
> +                opp-hz = /bits/ 64 <400000000>,
> +                         /bits/ 64 <100000000>;
> +                opp-peak-kBps = <76800 104166 104166>;
> +                opp-avg-kBps = <38400 33569 33569>;
> +                required-opps = <&rpmhpd_opp_min_svs>;
> +            };
> +
> +            opp-200000000 {
> +                opp-hz = /bits/ 64 <400000000>,
> +                         /bits/ 64 <200000000>;
> +                opp-peak-kBps = <76800 208333 208333>;
> +                opp-avg-kBps = <38400 67138 67138>;
> +                required-opps = <&rpmhpd_opp_low_svs>;
> +            };
> +
> +            opp-400000000 {
> +                opp-hz = /bits/ 64 <400000000>,
> +                         /bits/ 64 <400000000>;
> +                opp-peak-kBps = <76800 416666 416666>;
> +                opp-avg-kBps = <38400 134277 134277>;
> +                required-opps = <&rpmhpd_opp_svs>;
> +            };
> +
> +            opp-480000000 {
> +                opp-hz = /bits/ 64 <400000000>,
> +                         /bits/ 64 <480000000>;
> +                opp-peak-kBps = <76800 500000 500000>;
> +                opp-avg-kBps = <38400 161132 161132>;
> +                required-opps = <&rpmhpd_opp_svs_l1>;
> +            };
> +
> +            opp-600000000 {
> +                opp-hz = /bits/ 64 <400000000>,
> +                         /bits/ 64 <600000000>;
> +                opp-peak-kBps = <76800 625000 625000>;
> +                opp-avg-kBps = <38400 201416 201416>;
> +                required-opps = <&rpmhpd_opp_nom>;
> +            };
> +        };
> +    };


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id B78E338BF97
	for <linux-kernel@vger.kernel.org>; Mon,  6 Jul 2026 10:21:36 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.41
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783333298; cv=none; b=aoKwkkE8/mbZ997X5hMu+rc91J4Nxqe1oSlhemJrkknnne3O613HyOssuMFOqFMmIpD1W0Rbv/I/BH1px7PJ/D2GDe8JpwOj2NF5own9eEOs/fxN/IhtPEs/1rFEWZDxGHZpGBCQRU4Rw0U32T0H8+zy0U77DARozV6Gx1ljAIo=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783333298; c=relaxed/simple;
	bh=6S2SgvezqyhABsae8XaEo3jxLGIxyVwk8lMJAuwNXbs=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=UABP68X9gjyFGU9hcmjKlk+uu0hAck9p7Hndn5EovdC4OzKmg2DB8IU2o7+UZY7t2RDTXv8iobHgRQxspybsUq2Ei3v45IUOP60kBgCex05hjkqwsWXPxSV+11T+yjuR09E1/p/kjVdYcioOzNdAQ8bJdHZXCMALvTBzkRNavyg=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Tez11U9N; arc=none smtp.client-ip=209.85.218.41
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Tez11U9N"
Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-c125bcfd9a1so390737366b.1
        for <linux-kernel@vger.kernel.org>; Mon, 06 Jul 2026 03:21:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783333295; x=1783938095; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0UD0HPClBBvfFssPeNFF6X+teF7h23w+B5z9TKSsVY8=;
        b=Tez11U9NL8HXVswVPhA0+GXvfmqYQquQxZx/SN6yhub7TZE9oXfJ5z8kyKlvF+fLZf
         m/u6s8oYaZT2FC9QhV47GD62KirlnXY7GiMeYwTY/UKBQ5x7gC+3n8v35nyw1y5FV+nL
         sY5ejvxNL4vi+5Qv9rTMQ5wTE8TtOyCLJ1NrBqJDV+8r6QYGcm5UEiCNxoERFwk0JTs0
         1swFoFPZyrYbdiV2lXFTIS3cOik9z80vilbq/Ch8IBgQB6mrFfy3NmQfxY8PZ+0jwAde
         NmLF4mUvsv39qgqtp4YKeSqaASN/nhRwY3c/bpo48dYmas7GCkdqnav699NqSb+Af87Z
         xkug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783333295; x=1783938095;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=0UD0HPClBBvfFssPeNFF6X+teF7h23w+B5z9TKSsVY8=;
        b=FzQFlMptQoaXv+nMjlaRFQZx8GNPuiflSHbywZ2LToIXn1UjOwGrczqxPFTENNqBGk
         zQ7mh+Q9BNz+/OtU+T4NxO7QSavGh10EqTC5KLY6rURbz39k85i9VrvO3mFIKy34ayWZ
         EniekoTLB8OFdDNooIeR3hC4uhv6dqcf6FxKA0Q163tOFMAbIjXHbZOjAJ1Jx21ipxTA
         eY4dqQJXZHGNEsgRAueAxX+VFACDpNRJqtvyhBaAyjJ9aJx1KZiuTYoLDKVyu5VsIOdI
         qLQz4s+/0eu8+Yzg91cb5PFgwaC6VcKlBBuzLkIeDCrhMYvfYThxYUwYu7Sl82ALwCQO
         e+jQ==
X-Forwarded-Encrypted: i=1; AHgh+Rrbc4o0ZugCQ7Ak4Pw6vdXIKeSlNPD/YhvBUU2J8UwA58anjOsrMW4xVmwe6SdkHA8XC7I4463yQVrNE2U=@vger.kernel.org
X-Gm-Message-State: AOJu0Ywe95SI4i521aUIBPM2O+hnhmEm9MQShK9e5pqcCEcW3G1wYChn
	004K8uiknOrLrHVvziz7GYW6rBx+HJ8B91liwSABr3PKTiYZKReodJ6TrJ8sKLPV0s0=
X-Gm-Gg: AfdE7cm/aAxg9azPYlmFywVWH7s119WLLyesJuhp1h1CoIi1aankwZAB0V3V5ske/tL
	OCVX5S6UhRKSIKiSJo6z5JMgIDcR/7W3kQxd45SuJvYmMxE7hxJD//zpZDC3GlPJHBY+D+aUdG3
	QRhLVOyWi+toGGay8nfCJ1CkZ5EtAv3W6cD6wVAwkE8uruWulNyr8SW42CDfQFKM22dWXxTMdRN
	inyacuI7YEWPgjDfCBL4Tb9vAuWDWEQzuQ/9DKKqlZEF7Rs5SSmtFLEOoqXLvMmzlXlRu9tR5un
	pxpfo1acX53hnU9Nj3ysLKXPOq8SODwIT4raNg6vESDT2yWUzv5FQujacitLRfcAQxPjeucq5lo
	htslHwRqDFRZPVdMh/zOlTtISdsfReZPgYTfC3rwQmIsITWxZh1MsmeFOvpDNURwcULejO4kw3k
	yTk8bi23K+4OueqDXs+rSOnLNvnA==
X-Received: by 2002:a17:907:9349:b0:c12:951a:48f1 with SMTP id a640c23a62f3a-c12e694c9bemr307424166b.22.1783333295018;
        Mon, 06 Jul 2026 03:21:35 -0700 (PDT)
Received: from [192.168.0.101] ([109.77.44.220])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c12b60f5ed2sm711731566b.28.2026.07.06.03.21.33
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 03:21:34 -0700 (PDT)
Message-ID: <f5665b0c-bf9c-4937-a0fa-2b245e8093f4@linaro.org>
Date: Mon, 6 Jul 2026 11:21:33 +0100
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org
Cc: vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/07/2026 08:11, Atanas Filipov wrote:
> +------------+-----------------------------+-------------------+
> | Resolution |    HW v4l2jpegenc (q100)    | SW jpegenc (q100) |
> |            | Execution | avrFPS | maxFPS | Execution |  FPS  |
> +------------+-----------+--------+--------+-----------+-------+
> |   512x512  | 2.2332    | 1139.1 | 1195.4 | 7.1055    | 358.0 |
> |  1280x720  | 1.7300    |  418.5 |  457.2 | 5.0585    | 143.1 |
> | 1024x1024  | 1.6991    |  374.3 |  397.4 | 4.7304    | 134.4 |
> | 1920x1088  | 1.6596    |  192.8 |  193.8 | 3.7913    |  84.4 |
> | 2048x2048  | 1.7277    |   92.0 |   91.6 | 3.6343    |  43.7 |
> | 4096x4096  | 1.5887    |   25.2 |   25.3 | 4.2163    |   9.5 |
> | 8192x8192  | 1.3104    |    7.6 |    8.0 | 2.9987    |   3.3 |
> +------------+-----------+--------+--------+-----------+-------+

Nice thank you this will really help me verify/test your work.

---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-lf1-f43.google.com (mail-lf1-f43.google.com [209.85.167.43])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A167423763
	for <linux-media@vger.kernel.org>; Mon,  6 Jul 2026 12:00:53 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.43
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783339254; cv=none; b=TtltJxiX/2U53299TxEdnWrBV+71kwy1MwuvJywgvmSad+SwmdN2YMd2RVXmR2Rwp8hdT6odL+yfxGG3nZNeTQRGSlhm4HZA1Z4+ee1LtkXmV+UcZsOaJa/ATtvPrCBJdHtgvMyjQ6BA/mcZijD6YV2b2tYq1PxsQEim7yFjdJU=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783339254; c=relaxed/simple;
	bh=r9XUtHpKfeTdXDwgOjlZYIyK35oBv8vrawLZipTt11Y=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=BvXpAvNGczU86NuTkbib3F2GPnx3YYYbxUOEV6gl8/vMMwOTPc+wZQdmAb32V/POkqY9aU59dQ1GsLjcuvH1bu/gy+N/cUrFEfYxKLTxGVEiVUTFAqs15zSiVp3EcrA/VpGXmPwcY5dnRP/54aU7/pjzE6Uk7okv3SskW3D4YRo=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=TIJAuIeQ; arc=none smtp.client-ip=209.85.167.43
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="TIJAuIeQ"
Received: by mail-lf1-f43.google.com with SMTP id 2adb3069b0e04-5aebf96bc89so518538e87.0
        for <linux-media@vger.kernel.org>; Mon, 06 Jul 2026 05:00:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783339252; x=1783944052; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to:content-type;
        bh=biOXAUvJRswLbNqI7JWxyP6Sd5/K1iR+OePGqxXqYqY=;
        b=TIJAuIeQdUVxneW1BXRkIaJnMy01Z/U574xTj0MpR7Gdt20jRThYWvII9tGddlU7UF
         THcgBVC7VEoJSTqPbuiMJGuc373I5ITnLAx2iYWP3IZTQUO+OdhIh32fw0fue2+SXqfa
         fCCxaHsZr4WvXKKn6wBcecsmP50nugO6h54EAvPV9OYJqvRlxgX/Y40Drw4aSU1g68nY
         ZIiEQ80NGeahRb70yt6B1JyTlnnj2aFbtm6+GJzQsfIu5VUXmn0N+Bmt3hpH0+8jxvdU
         c3JEOIn7k28yX50GecTTPJ6ifRltsU1CXaxaAi4pw9iN5fZT+1Pg/mDI0JlEp5cGMX84
         /mAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783339252; x=1783944052;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=biOXAUvJRswLbNqI7JWxyP6Sd5/K1iR+OePGqxXqYqY=;
        b=kc1Azw+f+fLYlGt569HZt/QnrtK8M2e+YEpYkT603cK8F5ZYY0Pe5o1x1kGeAGIgiH
         2ibJFeoElA9jFhB+yekWDypFfKRAafET7yMQweWdadDXiFmcHC45dfcVAbDBXR2far9O
         tDfB7J8IHNB98EpfOJ401oIkUl7i9Lmi/6Pl0tckxHhMcJzLFYTHMbaKEWyc2CGBZYfx
         XhXIO1RA0UBKEf9VtNxisDg88Qsi4zrYbtVGMQH8sfv6H0mGbw9NwI8Fijz6aOP1hk3L
         zp2jvq4XxKwPREFpcDzrcMNdNOD7As/gclJ6PvacRLg0y5ztR5hj3QRoH1QQbYFw92Jo
         tkew==
X-Forwarded-Encrypted: i=1; AHgh+RoYVbuNVkLjwCyvYXuDR7/86ceKe4L9FNx0dTTPZpNpw/9pQQeVBuF8FEfnpCYrSCb8mvfrVwcK0n48eg==@vger.kernel.org
X-Gm-Message-State: AOJu0YwUrVhTF8j8wgw44yoJ0dJqj2WQOW8wfeZygnxZl1VQ+g3+dM54
	pfRakcJ4amqQ9hF30NQPl0kWCo91WECrouXpcDgb1IMgH15F+p394HJ3Sc/hEu6siXE=
X-Gm-Gg: AfdE7cmeph1l8sMclsyVMZB5IWNDy1m0IEAtEMAA7P+ihr8rVjEqD6epeA7azDqWKFH
	OAG3wOvYfQp9za8pexU7KxeYvSHoHvGjnJ9+6vVButMmQQmaBvQ4keTC2W8PDlPVyhPVqxUb7mS
	GFIqIwcXj274yCovo5YPBRdoyOCH/LYauNvWxIRw6SgXFjfe+IuO7Yjc5v9uaugCkNc/wBdVHr4
	uqTv2xtp1TWKwzJQGd4Nlo12VN0K+hHA+Cn3sDssC8M0mf6Y5bJvVJCuxprD7BQequ8Q/+t7pE8
	aB+6ds+rH5gBoLuMVUGu0KkNI5k/yAluBuDIq38ALZVxNxP9ITs81D78WBTD+nDs1ejWA8qGX66
	knw9Oi6MmfR9LPbo+uST9eff6aPUHqV6PBr4EodFjrwvmSohBO1/GeQM2FqshOJEIzAq5hXNwnH
	wW9H5vugAXnxoUW90mBg8ziqF+CR85morMduJhnrZhgCBIwYWQps73jg3f80rCFZlrwNgcVP9X+
	JvuQA==
X-Received: by 2002:a05:6512:8348:b0:5ae:ba8f:ad39 with SMTP id 2adb3069b0e04-5aed454f924mr766872e87.4.1783339251496;
        Mon, 06 Jul 2026 05:00:51 -0700 (PDT)
Received: from [192.168.1.100] (91-159-24-186.elisa-laajakaista.fi. [91.159.24.186])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed13c8b5bsm2866776e87.80.2026.07.06.05.00.50
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 05:00:50 -0700 (PDT)
Message-ID: <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
Date: Mon, 6 Jul 2026 15:00:50 +0300
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
In-Reply-To: <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 7/6/26 13:12, Bryan O'Donoghue wrote:
> On 06/07/2026 08:11, Atanas Filipov wrote:
>> Note: The handling of shared camera subsystem resources (power domains,
>> interconnects) for child IP blocks is still an open design question.
> 
> Why ?
> 
> A device needs to vote on its own interconnect and power-domains on any
> bus. A sub-device of another device may wish to ramp a clock for
> whatever reason.

Certainly a CAMSS device will vote on all needed to it resources, some of
which are shared and got their description under CAMSS device tree node.

> There is no "master" device in this block of devices - save perhaps for
> the CSID mux / wrappers on some of these parts.
> 
> We have shared resources like camera noc, system noc and external clocks.
> 
> Please include power-domains and interconnects.
> 

Why? The common power domain and interconnects have already been
described as resources of the parent CAMSS device, there is no need
to duplicate descriptions in every child device tree node of CAMSS.

-- 
Best wishes,
Vladimir

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 3B3283FDBE2;
	Mon,  6 Jul 2026 12:09: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=1783339796; cv=none; b=mQbi4bq5IdvwTOrWJ1+gJDaT5A38deOpbuxoN2SqBT2nKIA6pK3M95frkbXdzm5K//+0CIuKI1iq5wPhYjTZsLaZOOHQqWDIRiY2ViSDbSmjFjvhddOm94ylXukrWXE4EFuGON8PkBkA80fmcmLaVQKy6yz/fCRpr58SeHqacSc=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783339796; c=relaxed/simple;
	bh=DvPc9QqRm1LHXaDbJX26sgs2Ta2R/ToTJQ6Inhepy4o=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=fv5qz7cRHqwv4YuWQog6mdqLHJcjR2ZrP9/CVjcP416kdogfh07zUFAfZG0o8SOWUOPcGD+snWksLVwsxoZq2Zb2E5imUdcYzM6CnHZJBeeU7r4RKsyCcTv8Ukp90xMRajJM0OhwFHFfB18ENYdqTybvCV7+txv24ETj3QLq44k=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ISTz2Nbn; 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="ISTz2Nbn"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5FA001F000E9;
	Mon,  6 Jul 2026 12:09:49 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783339795;
	bh=iFXj9diZ+LOixsk0T0ZaJQIX3INk/Tdi8RYdMzt4pzc=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To;
	b=ISTz2NbnE6igIuSvNFQgoRmkkp3NsyugcMLwLD0l3oJd5NGkfs9htVjyMhl3FrARC
	 s0K3hrt9KPSqtEaxKz4bnG/e5oY9UyW43/Du9AUgIMxusFXfudcKDzIpTN84SWD8yu
	 29lwdkCNpqIqMi52NAMFKzpsdteg5N8usalNYUTQV/TEj3n672tsWqYaKO1ICRjSLP
	 yP5wJ5kpDdv9nM3HQdyghEklAhxCO0wKry1BNiWq0EcmF7PAOp9sKIg4ETep2Y810e
	 4fRRX6jsKEo9KDK+xunsU/eSko8XTA1hZlT0XFcaJRAVkGY43w5NZINLEcJj2fUSck
	 r2kIp+P095zJw==
Message-ID: <389ff33a-b319-4f2e-9410-8ae962f2e844@kernel.org>
Date: Mon, 6 Jul 2026 14:09:46 +0200
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices
 via DT
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
 loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
From: Krzysztof Kozlowski <krzk@kernel.org>
Content-Language: en-US
Autocrypt: addr=krzk@kernel.org; keydata=
 xsFNBFVDQq4BEAC6KeLOfFsAvFMBsrCrJ2bCalhPv5+KQF2PS2+iwZI8BpRZoV+Bd5kWvN79
 cFgcqTTuNHjAvxtUG8pQgGTHAObYs6xeYJtjUH0ZX6ndJ33FJYf5V3yXqqjcZ30FgHzJCFUu
 JMp7PSyMPzpUXfU12yfcRYVEMQrmplNZssmYhiTeVicuOOypWugZKVLGNm0IweVCaZ/DJDIH
 gNbpvVwjcKYrx85m9cBVEBUGaQP6AT7qlVCkrf50v8bofSIyVa2xmubbAwwFA1oxoOusjPIE
 J3iadrwpFvsZjF5uHAKS+7wHLoW9hVzOnLbX6ajk5Hf8Pb1m+VH/E8bPBNNYKkfTtypTDUCj
 NYcd27tjnXfG+SDs/EXNUAIRefCyvaRG7oRYF3Ec+2RgQDRnmmjCjoQNbFrJvJkFHlPeHaeS
 BosGY+XWKydnmsfY7SSnjAzLUGAFhLd/XDVpb1Een2XucPpKvt9ORF+48gy12FA5GduRLhQU
 vK4tU7ojoem/G23PcowM1CwPurC8sAVsQb9KmwTGh7rVz3ks3w/zfGBy3+WmLg++C2Wct6nM
 Pd8/6CBVjEWqD06/RjI2AnjIq5fSEH/BIfXXfC68nMp9BZoy3So4ZsbOlBmtAPvMYX6U8VwD
 TNeBxJu5Ex0Izf1NV9CzC3nNaFUYOY8KfN01X5SExAoVTr09ewARAQABzSVLcnp5c3p0b2Yg
 S296bG93c2tpIDxrcnprQGtlcm5lbC5vcmc+wsGPBBMBCgA5AhsDBgsJCAcDAgYVCAIJCgsE
 FgIDAQIeAQIXgBYhBJvQfg4MUfjVlne3VBuTQ307QWKbBQJp2mE8AAoJEBuTQ307QWKbeaIP
 /ihHTkTW4KsN/DQ945JJbyu5tI0J80Wue7QyyLPglyKfhgb5cLLNPpOC8cCIJsc7+W3i2P38
 s2c1cOH6CYGE7E9ur3Vfme8NW2S2I/Z8VC7bZnzyS23wT17LrsdS/qCpx4o8U+pt/xdXDKph
 EGRYrIEmMpUWvyYzyYKGIe25FtaayIIKpq8eZYyFcp2f/sG5IkOW5uZzHPMPdcm87jU7fyuQ
 rAU2vx9r+ulUfQ/q9Z2roC/ode3l7t2pN7BCBCsUDp6JCrUyZrtT1e7EbA0ZRP3aOBNk2P2E
 DQOgJGjGdO5Yx2Y9LFtltu6JbsBJHi1syGRX3AtQYOMc4Y1WGoeZJmMlvKj2ZqqXNkcWi2DS
 IQEWB0uW6CqFsBBIMGDa+6OzdaVO/uAVXWDWml02Men3CILdI1MbVjoh8ECqYUY7OQ+JJvNN
 vnliuq5WM3Ghd3jg/LZZrxXjdIginRHFQCjIJYLKpLZWm1/iDFedcfzqRNYmTtqscdCNHW41
 oT3Z7BmO9xwdjuwBS6nmS6JJwkbf5Ot2QR4pB/DRU7ZwjT1qHe+9r9gF32wXVQatHNGK/VVu
 sfwOnkdxCWkp/qb2gdQRmZh+SedStWshigH6sNfuHBloF/q+hjMRc8b2m326OZdrbSHwY1Sz
 vti8Hn7n8NjdHO9LKB7BIdjkA9DA5WsqOuVCzsFNBFVDXDQBEADNkrQYSREUL4D3Gws46JEo
 Z9HEQOKtkrwjrzlw/tCmqVzERRPvz2Xg8n7+HRCrgqnodIYoUh5WsU84N03KlLueMNsWLJBv
 BaubYN4JuJIdRr4dS4oyF1/fQAQPHh8Thpiz0SAZFx6iWKB7Qrz3OrGCjTPcW6eiOMheesVS
 5hxietSmlin+SilmIAPZHx7n242u6kdHOh+/SyLImKn/dh9RzatVpUKbv34eP1wAGldWsRxb
 f3WP9pFNObSzI/Bo3kA89Xx2rO2roC+Gq4LeHvo7ptzcLcrqaHUAcZ3CgFG88CnA6z6lBZn0
 WyewEcPOPdcUB2Q7D/NiUY+HDiV99rAYPJztjeTrBSTnHeSBPb+qn5ZZGQwIdUW9YegxWKvX
 XHTwB5eMzo/RB6vffwqcnHDoe0q7VgzRRZJwpi6aMIXLfeWZ5Wrwaw2zldFuO4Dt91pFzBSO
 IpeMtfgb/Pfe/a1WJ/GgaIRIBE+NUqckM+3zJHGmVPqJP/h2Iwv6nw8U+7Yyl6gUBLHFTg2h
 YnLFJI4Xjg+AX1hHFVKmvl3VBHIsBv0oDcsQWXqY+NaFahT0lRPjYtrTa1v3tem/JoFzZ4B0
 p27K+qQCF2R96hVvuEyjzBmdq2esyE6zIqftdo4MOJho8uctOiWbwNNq2U9pPWmu4vXVFBYI
 GmpyNPYzRm0QPwARAQABwsF2BBgBCgAgAhsMFiEEm9B+DgxR+NWWd7dUG5NDfTtBYpsFAmna
 YUkACgkQG5NDfTtBYptX+BAApg32CkxwNucNEi8WfWA8oKkW0y8YDuY6ORMo9FWNGiT/OTy0
 vyJrLocrpn86zwfjVp+eCrssPYh8eqJfnWqmYv6ACQtHPYzPZQ3mSo8H97Z01oUxITzCxpXm
 ZkLgPIqtDPcC2E3dPM/fVxcyowM8XsaMA9wcsaUYrta8toOq2b9tKcjleKMfMrm0gQ9u7wUc
 QbLkwj6TCLOwucb07GXzLTNF9PZmaDUpKAZjMjmrW+le+SFvQbhamx0rxLWPR0NWntXpbCn+
 +ACch03p/JyTBVktxFsFyCt7pTPE1kEaeuXBTe/a2D9iQvRxRW19LvuO2e59/u1wYUiH/orz
 wbIC2S4dBsPAPihL3ztOU1yE86GPyQtSE0kU+/7snnLt4QGi6PChf3t5gnNjAzjUUovO8rgI
 c+5yN5heq5loYHgK6OQ9OlHzsPHO9e9MOQcKlFycs1pyijFGzDwdNUm/SchK8iWT2QApTx4A
 K9bCVaboTA2T77QYkRcRJYSsO1alGX0ome/hMLD1daXlkrNUp1HWa3K4iytLRXjCSIorWiGs
 n+q3krnpXu3TFkA8qtOFZMdnIiFuiq1yLT8hptsV5xh1TA2nsVvSYiaCr3q4s4BKjS/KrLDb
 qoxzw8ISjdUp4pA85vb6YLCmb39NgidD+7PmAr65lBNveIFynTgsja1rRQ4=
In-Reply-To: <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/07/2026 09:11, Atanas Filipov wrote:
> From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> 
> Use devm_of_platform_populate() so that child nodes declared under the
> CAMSS device tree node (e.g. OPE) are automatically instantiated as
> platform devices. This is required now that CAMSS is modelled as a
> simple-bus and ISP blocks such as OPE are described as child nodes.

I do not understand this rationale. How is this required now? Are
existing DTS broken and do not work? Then this needs to be explained.

Best regards,
Krzysztof

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id 02C09424660
	for <linux-media@vger.kernel.org>; Mon,  6 Jul 2026 12:11:12 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.45
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783339874; cv=none; b=lMBQJIfNrW3fqKVhjmEDfOamMUUyv72lF/z+cqoOrBAc1LmORlY30dv8wSABu80GZjV8EeGqAzqzMmIedWLZ/yEP8mWRYXalnq7x7lG4WhPzsr2BgBrVNNcKeEWf4aKsbTSxvy/rf226jDt/k0BVF61POa8lCphiIDEJyK/1dqk=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783339874; c=relaxed/simple;
	bh=Q2U+Op+VJBwZYOYmZL+6AFPmXvDyszSs9SWc4mWsXTQ=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=pohfUyXctH0eRLgE78+RicX0MP3UXuTdbXQE3Rg5Ch8KwYybdy90NjJuB31lgdkhv7LmMbsNvdiI5FaSmYmNJ/3k1iix99MkExaOm9246Id8BMz6OU5R9P+03c3z65R3atx/9y6ZELuSWlr5YGdKKjfBjrYEvmQpZU81Le6ypN0=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Y7nnWQrA; arc=none smtp.client-ip=209.85.218.45
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Y7nnWQrA"
Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-c125bcfd9a1so408297366b.1
        for <linux-media@vger.kernel.org>; Mon, 06 Jul 2026 05:11:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783339871; x=1783944671; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=PaIUyVR1PWkAm9FdD5PygQC8S63mBB2HotoKGs4tuv0=;
        b=Y7nnWQrAQH33hTrdMgl43FOkIkiPgwjlyVmPXc0AeLtOj95DJ/Bf3Qv9CLpmn6ekM4
         ThgMWcZ1Zsun/imq5Re0PE4p8/l+4x5m52h/PCM42DA1HpuEEl/4q1SbTMe6nOONX3+e
         qmZ1/JSFx5+eEiL8X5FTaBpSZY0CL5ND0Qztn63yEctP2IgJMn/FKB7EQC7JrRTiI8hM
         urq6scDiwaSJSWHsFxwNJCSZp5aWs/zlerN05cAtzVpVq8keecsMt/0VucnGlcY5Xn39
         cDgE6QBOunNPfTIYXbT+f/fawD3NszKM9bchaye7renITmT21R3d5DCvAuWO7LGE0OOg
         Z0Zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783339871; x=1783944671;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=PaIUyVR1PWkAm9FdD5PygQC8S63mBB2HotoKGs4tuv0=;
        b=IxmxNN4Eo8aBo8kIIZZ69IPocll65dGxTwfrWfXc3MnmVVudGelAyq7Y678as2ZuNE
         52XJIUCL2l1xWf7hwg7vKGmc0Wx3HUsJoTjDtRHutjzmi+p/EMeSfL4TfDi8yLgnO2N6
         rkn5fGQd8YABgqBdJiHxH1oWRblit/qD5l4xGhoh23q0cwuMkHG8SgCzkzyBTObrR866
         0l2DkITSFejHBzauvAEWyTIx0dWzXAsMV7H2qTbL8ntoqxl9uwf7imMXCAl3h1YA1BiQ
         GHXwpugkRoFwi1yZagDJo+/HakoXHWlEIo5J0oVkOa09Ja0f5lYINvIcS0Za66ioSMMy
         +Mjw==
X-Forwarded-Encrypted: i=1; AHgh+RoNSpLxlimjrlc2lF4NrKcIblYyZE6I4jgXk/X4eHqOS/WflmhAWkWhmVEbDIRf/7ndzt6B2765z00EYg==@vger.kernel.org
X-Gm-Message-State: AOJu0Yw2A4mCPzxmOAolPpoyA7ii9rTCqCGQVxL1BqbIqGnw68Lgc9Fo
	bDH2BlgjsWn/RuKGkyLTwEAvi/O/HYZtegDdsk84j1V7kHiebQ/o3K+E1sbuwD3bpHc=
X-Gm-Gg: AfdE7cmNnSVKm7tAu+ZViSJxPlAJtWYq9TJ6OaKUAxOk5Y1NlXKf/j68jIT895iwD0A
	h8loeAZhobEyHNH5/NZ3vuSHJjFX0jWFUTVgDBVQ0NFCni1CPxBEeT3yN5ueufhEoOvAwqWF0RO
	hflnBOR7E30mmaSkexjSpXhx/Q3UNdTJ+TZXheqM/Xuek7y+osVBpk1O2mcvBKbitpJIcNUE9dR
	pE9+ELL3h15xGtdsnFXnQHRQT45Xh+r5NLzl9yJP8wsjMWxCQ1UXrVo5LmAM568+YbtTm3jI/SN
	iN7nGUUe/Js38UCYhDV+oSz7W1Dn9H1gw0ykyi+AQG81WO52yLBixLavKqFExTDT2tMXXv0SbD/
	JL8OkyB6hn30/fbf65ha5htBXgwPNhqBLQLZ+G2KngO6HIXcaRuPgb/qRvTJbpUTqyU/lcO1vcp
	l2QKmkQV3pxVhAXSnaTleQMhWVBg==
X-Received: by 2002:a17:906:d30b:b0:bd7:f75a:817c with SMTP id a640c23a62f3a-c15a67f809fmr14565066b.17.1783339871421;
        Mon, 06 Jul 2026 05:11:11 -0700 (PDT)
Received: from [192.168.0.101] ([109.77.44.220])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c12b6054fe7sm732082766b.10.2026.07.06.05.11.10
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 05:11:10 -0700 (PDT)
Message-ID: <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
Date: Mon, 6 Jul 2026 13:11:09 +0100
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/07/2026 13:00, Vladimir Zapolskiy wrote:
>> There is no "master" device in this block of devices - save perhaps for
>> the CSID mux / wrappers on some of these parts.
>>
>> We have shared resources like camera noc, system noc and external clocks.
>>
>> Please include power-domains and interconnects.
>>
> 
> Why? The common power domain and interconnects have already been
> described as resources of the parent CAMSS device, there is no need
> to duplicate descriptions in every child device tree node of CAMSS.

CSID, IFE etc are not parents of the JPEG encoder.

The idea is to make all of these peers, eventually. Not particular block 
owns the TITAN_TOP_GDSC - the entire CAMSS block is a collapsible block.

---
bod

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 3C5A3282F3C;
	Mon,  6 Jul 2026 12:11:37 +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=1783339899; cv=none; b=bxCQLf4FHbSNcDx+W1fuf/+de7Mti4WIB6H9Z0zcQPR67OfY4vlumVQRtPpqHdYSe2UF8eDdQfvMoqRb5F54Om4nxhC8W9DAkyd0iexPRFDTs8+gp44+XAGlzSO32Z4vedIYRFLhLJekWDeok+44zElrU6/QcCa83idWrAphZuM=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783339899; c=relaxed/simple;
	bh=kZMeK8yn2Uu1efT2Cnufa0Q8eNMAasvSSblVCZoBDr8=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=rhE2w1p4dMdEcL44YbRpDcdnihusWkt0ervvZlUqXux4EaYzj93o2LOsR6wvUGlE+hMZfVCwv1UQn4yw5OHrnbVLWOPSc3S8oK7U5vlU52wYxQ33uXCt5MYomZcJykbu8VBLdpARGlb2gVPvZrgpzSfz6pJ4tQ0Y8KcEgt91yqE=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KanmXRCy; 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="KanmXRCy"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C16EE1F000E9;
	Mon,  6 Jul 2026 12:11:32 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783339897;
	bh=q0qhNGLTqdi9TuBCrwfUjAYck8KUePcexlYWx861TRY=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To;
	b=KanmXRCyAysqVjFIoSTBS7ABB6ko0bSJ0j2UR35rG0MEAOdTSgES3YzetVFQcQAMU
	 BKXHpeoktP1ZkhOtswcCUd3z8aWEMsYa1BalsrARQxMtVFmVlrIdtA03wHYnK6uEay
	 bR0Yfe7fsKNxQlYDnEAKJEv/BtvNIJFGvstRlTItk0IB2oCZz1BohHcvfq7hcZd1d7
	 jPARo3I/gRiD1o13bN1+XJXwfQ+rRohFZwKiRJYcGeNt/CUrtfycRknWgtZgLbbJhU
	 Yh4zAW0uoSoPggKBs+cCB//x8jUtmGsywMqmKn0UY2ErsHing4U1Vdu1aDL4t9WL7/
	 qKLbE02Z677ug==
Message-ID: <c233b312-9077-4d1b-bdcf-75561690d181@kernel.org>
Date: Mon, 6 Jul 2026 14:11:30 +0200
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/5] dt-bindings: media: qcom,sm8250-camss: allow JPEG
 encoder child node
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
 loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-3-atanas.filipov@oss.qualcomm.com>
From: Krzysztof Kozlowski <krzk@kernel.org>
Content-Language: en-US
Autocrypt: addr=krzk@kernel.org; keydata=
 xsFNBFVDQq4BEAC6KeLOfFsAvFMBsrCrJ2bCalhPv5+KQF2PS2+iwZI8BpRZoV+Bd5kWvN79
 cFgcqTTuNHjAvxtUG8pQgGTHAObYs6xeYJtjUH0ZX6ndJ33FJYf5V3yXqqjcZ30FgHzJCFUu
 JMp7PSyMPzpUXfU12yfcRYVEMQrmplNZssmYhiTeVicuOOypWugZKVLGNm0IweVCaZ/DJDIH
 gNbpvVwjcKYrx85m9cBVEBUGaQP6AT7qlVCkrf50v8bofSIyVa2xmubbAwwFA1oxoOusjPIE
 J3iadrwpFvsZjF5uHAKS+7wHLoW9hVzOnLbX6ajk5Hf8Pb1m+VH/E8bPBNNYKkfTtypTDUCj
 NYcd27tjnXfG+SDs/EXNUAIRefCyvaRG7oRYF3Ec+2RgQDRnmmjCjoQNbFrJvJkFHlPeHaeS
 BosGY+XWKydnmsfY7SSnjAzLUGAFhLd/XDVpb1Een2XucPpKvt9ORF+48gy12FA5GduRLhQU
 vK4tU7ojoem/G23PcowM1CwPurC8sAVsQb9KmwTGh7rVz3ks3w/zfGBy3+WmLg++C2Wct6nM
 Pd8/6CBVjEWqD06/RjI2AnjIq5fSEH/BIfXXfC68nMp9BZoy3So4ZsbOlBmtAPvMYX6U8VwD
 TNeBxJu5Ex0Izf1NV9CzC3nNaFUYOY8KfN01X5SExAoVTr09ewARAQABzSVLcnp5c3p0b2Yg
 S296bG93c2tpIDxrcnprQGtlcm5lbC5vcmc+wsGPBBMBCgA5AhsDBgsJCAcDAgYVCAIJCgsE
 FgIDAQIeAQIXgBYhBJvQfg4MUfjVlne3VBuTQ307QWKbBQJp2mE8AAoJEBuTQ307QWKbeaIP
 /ihHTkTW4KsN/DQ945JJbyu5tI0J80Wue7QyyLPglyKfhgb5cLLNPpOC8cCIJsc7+W3i2P38
 s2c1cOH6CYGE7E9ur3Vfme8NW2S2I/Z8VC7bZnzyS23wT17LrsdS/qCpx4o8U+pt/xdXDKph
 EGRYrIEmMpUWvyYzyYKGIe25FtaayIIKpq8eZYyFcp2f/sG5IkOW5uZzHPMPdcm87jU7fyuQ
 rAU2vx9r+ulUfQ/q9Z2roC/ode3l7t2pN7BCBCsUDp6JCrUyZrtT1e7EbA0ZRP3aOBNk2P2E
 DQOgJGjGdO5Yx2Y9LFtltu6JbsBJHi1syGRX3AtQYOMc4Y1WGoeZJmMlvKj2ZqqXNkcWi2DS
 IQEWB0uW6CqFsBBIMGDa+6OzdaVO/uAVXWDWml02Men3CILdI1MbVjoh8ECqYUY7OQ+JJvNN
 vnliuq5WM3Ghd3jg/LZZrxXjdIginRHFQCjIJYLKpLZWm1/iDFedcfzqRNYmTtqscdCNHW41
 oT3Z7BmO9xwdjuwBS6nmS6JJwkbf5Ot2QR4pB/DRU7ZwjT1qHe+9r9gF32wXVQatHNGK/VVu
 sfwOnkdxCWkp/qb2gdQRmZh+SedStWshigH6sNfuHBloF/q+hjMRc8b2m326OZdrbSHwY1Sz
 vti8Hn7n8NjdHO9LKB7BIdjkA9DA5WsqOuVCzsFNBFVDXDQBEADNkrQYSREUL4D3Gws46JEo
 Z9HEQOKtkrwjrzlw/tCmqVzERRPvz2Xg8n7+HRCrgqnodIYoUh5WsU84N03KlLueMNsWLJBv
 BaubYN4JuJIdRr4dS4oyF1/fQAQPHh8Thpiz0SAZFx6iWKB7Qrz3OrGCjTPcW6eiOMheesVS
 5hxietSmlin+SilmIAPZHx7n242u6kdHOh+/SyLImKn/dh9RzatVpUKbv34eP1wAGldWsRxb
 f3WP9pFNObSzI/Bo3kA89Xx2rO2roC+Gq4LeHvo7ptzcLcrqaHUAcZ3CgFG88CnA6z6lBZn0
 WyewEcPOPdcUB2Q7D/NiUY+HDiV99rAYPJztjeTrBSTnHeSBPb+qn5ZZGQwIdUW9YegxWKvX
 XHTwB5eMzo/RB6vffwqcnHDoe0q7VgzRRZJwpi6aMIXLfeWZ5Wrwaw2zldFuO4Dt91pFzBSO
 IpeMtfgb/Pfe/a1WJ/GgaIRIBE+NUqckM+3zJHGmVPqJP/h2Iwv6nw8U+7Yyl6gUBLHFTg2h
 YnLFJI4Xjg+AX1hHFVKmvl3VBHIsBv0oDcsQWXqY+NaFahT0lRPjYtrTa1v3tem/JoFzZ4B0
 p27K+qQCF2R96hVvuEyjzBmdq2esyE6zIqftdo4MOJho8uctOiWbwNNq2U9pPWmu4vXVFBYI
 GmpyNPYzRm0QPwARAQABwsF2BBgBCgAgAhsMFiEEm9B+DgxR+NWWd7dUG5NDfTtBYpsFAmna
 YUkACgkQG5NDfTtBYptX+BAApg32CkxwNucNEi8WfWA8oKkW0y8YDuY6ORMo9FWNGiT/OTy0
 vyJrLocrpn86zwfjVp+eCrssPYh8eqJfnWqmYv6ACQtHPYzPZQ3mSo8H97Z01oUxITzCxpXm
 ZkLgPIqtDPcC2E3dPM/fVxcyowM8XsaMA9wcsaUYrta8toOq2b9tKcjleKMfMrm0gQ9u7wUc
 QbLkwj6TCLOwucb07GXzLTNF9PZmaDUpKAZjMjmrW+le+SFvQbhamx0rxLWPR0NWntXpbCn+
 +ACch03p/JyTBVktxFsFyCt7pTPE1kEaeuXBTe/a2D9iQvRxRW19LvuO2e59/u1wYUiH/orz
 wbIC2S4dBsPAPihL3ztOU1yE86GPyQtSE0kU+/7snnLt4QGi6PChf3t5gnNjAzjUUovO8rgI
 c+5yN5heq5loYHgK6OQ9OlHzsPHO9e9MOQcKlFycs1pyijFGzDwdNUm/SchK8iWT2QApTx4A
 K9bCVaboTA2T77QYkRcRJYSsO1alGX0ome/hMLD1daXlkrNUp1HWa3K4iytLRXjCSIorWiGs
 n+q3krnpXu3TFkA8qtOFZMdnIiFuiq1yLT8hptsV5xh1TA2nsVvSYiaCr3q4s4BKjS/KrLDb
 qoxzw8ISjdUp4pA85vb6YLCmb39NgidD+7PmAr65lBNveIFynTgsja1rRQ4=
In-Reply-To: <20260706071113.383215-3-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/07/2026 09:11, Atanas Filipov wrote:
> The CAMSS node uses #address-cells = <2>, #size-cells = <2> and ranges
> to act as a bus for child IP blocks such as the JPEG encoder. Add these
> properties to the binding so that dtbs_check does not reject them.

There are no children, so above are not valid.

> 
> Use unevaluatedProperties: false instead of additionalProperties: false
> so that child nodes are validated against their own schema (matched by

This is not the purpose of unevaluatedProperties and it is not even true.


> compatible) without requiring the parent binding to enumerate each child
> type explicitly. This is the correct approach for a bus-like container
> node and avoids updating the camss binding for every new child device
> added in the future.
> 
> No functional change.

I see significant functional changes - you switched to unevaluatedProperties

> 
> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> ---
>  .../devicetree/bindings/media/qcom,sm8250-camss.yaml   | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml b/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
> index a509d4bbcb4a..6008938ee369 100644
> --- a/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
> +++ b/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
> @@ -102,6 +102,14 @@ properties:
>        - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller.
>        - description: Titan GDSC - Titan ISP Block, Global Distributed Switch Controller.
>  
> +  "#address-cells":
> +    const: 2
> +
> +  "#size-cells":
> +    const: 2
> +
> +  ranges: true
> +
>    ports:
>      $ref: /schemas/graph.yaml#/properties/ports
>  
> @@ -317,7 +325,7 @@ required:
>    - vdda-phy-supply
>    - vdda-pll-supply
>  
> -additionalProperties: false
> +unevaluatedProperties: false

No, NAK. I do not see how this patch makes any sense.

>  
>  examples:
>    - |


Best regards,
Krzysztof

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 51C22424656;
	Mon,  6 Jul 2026 12:17:16 +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=1783340237; cv=none; b=A8ainwGNNscC1t+N0QtPB6uDvKzYMyXSgYX26Nq4F5WuoaQWHuBJtqXTmn+OW52jLUdfc29YXHwooQDZRIvkhNWfq0eSviUlQgLfrpPH6Rk2ITPhQ8pYberYDWY4sqoe6Ql+65ncfCkVjFGI6HO2Y2XVpepOmY7V9lsZeHpPtQY=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783340237; c=relaxed/simple;
	bh=+OKDvchH9qG9ppTQa6lIGLwBZSTOvRgGmJ+6HpXPcVc=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=ux0jhoedvcKkIbzQuP29RAeHoxaySG6AtpTiayBATPrB/uX47n4Msg2kkWQ12bZ7NMbLpuem35ABu/O6sfHeKqf1oo+qjb1L4jsQK+UOSLlUvRa5ccBn67Cc6hJc26X7oE48mN/GWU1+79qAnmB8X6f0IOFhg8/zvNl32clgHJc=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fL4dxoKn; 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="fL4dxoKn"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1F9A61F000E9;
	Mon,  6 Jul 2026 12:17:10 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783340236;
	bh=DOvaaG+TvY0+8E0TA+B8EQheHUSZloYZfwpOHE2UeXk=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To;
	b=fL4dxoKnf/mceOY+I16BVre0UU2XXjPDDCO50TeDUW9udRQ6pMb6AEEoYO8uEp46q
	 4yeWJ/XqEz5CFN7GJdQX65X9u0xFxU76KMSo7paWQUHLScRQIc3VzvTu2gGzvfu7p/
	 x/xaiKpaFxMeXvu8qTVomoYjXLTGTvt9f2F+fCBK3YdyIa6LDMDLEwBad5ycAszoV2
	 6yO3SIFCSkLzA77uVgMXST9GYck79wJLsVO+5MreV8ScFkHzvVqwtdDTW7KgE97/cg
	 Dgq1RFPkVVEDwzU1ZRZZRutr55KnxoxPoub2d9lpGP+1FbeuIW+Jt5c8MM4PJa98WC
	 ZV5kUXCheu7Pg==
Message-ID: <95207310-12ad-4c2b-9ebb-b0a7bd27dac1@kernel.org>
Date: Mon, 6 Jul 2026 14:17:08 +0200
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/5] dt-bindings: media: qcom: Add JPEG encoder binding
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
 loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-4-atanas.filipov@oss.qualcomm.com>
From: Krzysztof Kozlowski <krzk@kernel.org>
Content-Language: en-US
Autocrypt: addr=krzk@kernel.org; keydata=
 xsFNBFVDQq4BEAC6KeLOfFsAvFMBsrCrJ2bCalhPv5+KQF2PS2+iwZI8BpRZoV+Bd5kWvN79
 cFgcqTTuNHjAvxtUG8pQgGTHAObYs6xeYJtjUH0ZX6ndJ33FJYf5V3yXqqjcZ30FgHzJCFUu
 JMp7PSyMPzpUXfU12yfcRYVEMQrmplNZssmYhiTeVicuOOypWugZKVLGNm0IweVCaZ/DJDIH
 gNbpvVwjcKYrx85m9cBVEBUGaQP6AT7qlVCkrf50v8bofSIyVa2xmubbAwwFA1oxoOusjPIE
 J3iadrwpFvsZjF5uHAKS+7wHLoW9hVzOnLbX6ajk5Hf8Pb1m+VH/E8bPBNNYKkfTtypTDUCj
 NYcd27tjnXfG+SDs/EXNUAIRefCyvaRG7oRYF3Ec+2RgQDRnmmjCjoQNbFrJvJkFHlPeHaeS
 BosGY+XWKydnmsfY7SSnjAzLUGAFhLd/XDVpb1Een2XucPpKvt9ORF+48gy12FA5GduRLhQU
 vK4tU7ojoem/G23PcowM1CwPurC8sAVsQb9KmwTGh7rVz3ks3w/zfGBy3+WmLg++C2Wct6nM
 Pd8/6CBVjEWqD06/RjI2AnjIq5fSEH/BIfXXfC68nMp9BZoy3So4ZsbOlBmtAPvMYX6U8VwD
 TNeBxJu5Ex0Izf1NV9CzC3nNaFUYOY8KfN01X5SExAoVTr09ewARAQABzSVLcnp5c3p0b2Yg
 S296bG93c2tpIDxrcnprQGtlcm5lbC5vcmc+wsGPBBMBCgA5AhsDBgsJCAcDAgYVCAIJCgsE
 FgIDAQIeAQIXgBYhBJvQfg4MUfjVlne3VBuTQ307QWKbBQJp2mE8AAoJEBuTQ307QWKbeaIP
 /ihHTkTW4KsN/DQ945JJbyu5tI0J80Wue7QyyLPglyKfhgb5cLLNPpOC8cCIJsc7+W3i2P38
 s2c1cOH6CYGE7E9ur3Vfme8NW2S2I/Z8VC7bZnzyS23wT17LrsdS/qCpx4o8U+pt/xdXDKph
 EGRYrIEmMpUWvyYzyYKGIe25FtaayIIKpq8eZYyFcp2f/sG5IkOW5uZzHPMPdcm87jU7fyuQ
 rAU2vx9r+ulUfQ/q9Z2roC/ode3l7t2pN7BCBCsUDp6JCrUyZrtT1e7EbA0ZRP3aOBNk2P2E
 DQOgJGjGdO5Yx2Y9LFtltu6JbsBJHi1syGRX3AtQYOMc4Y1WGoeZJmMlvKj2ZqqXNkcWi2DS
 IQEWB0uW6CqFsBBIMGDa+6OzdaVO/uAVXWDWml02Men3CILdI1MbVjoh8ECqYUY7OQ+JJvNN
 vnliuq5WM3Ghd3jg/LZZrxXjdIginRHFQCjIJYLKpLZWm1/iDFedcfzqRNYmTtqscdCNHW41
 oT3Z7BmO9xwdjuwBS6nmS6JJwkbf5Ot2QR4pB/DRU7ZwjT1qHe+9r9gF32wXVQatHNGK/VVu
 sfwOnkdxCWkp/qb2gdQRmZh+SedStWshigH6sNfuHBloF/q+hjMRc8b2m326OZdrbSHwY1Sz
 vti8Hn7n8NjdHO9LKB7BIdjkA9DA5WsqOuVCzsFNBFVDXDQBEADNkrQYSREUL4D3Gws46JEo
 Z9HEQOKtkrwjrzlw/tCmqVzERRPvz2Xg8n7+HRCrgqnodIYoUh5WsU84N03KlLueMNsWLJBv
 BaubYN4JuJIdRr4dS4oyF1/fQAQPHh8Thpiz0SAZFx6iWKB7Qrz3OrGCjTPcW6eiOMheesVS
 5hxietSmlin+SilmIAPZHx7n242u6kdHOh+/SyLImKn/dh9RzatVpUKbv34eP1wAGldWsRxb
 f3WP9pFNObSzI/Bo3kA89Xx2rO2roC+Gq4LeHvo7ptzcLcrqaHUAcZ3CgFG88CnA6z6lBZn0
 WyewEcPOPdcUB2Q7D/NiUY+HDiV99rAYPJztjeTrBSTnHeSBPb+qn5ZZGQwIdUW9YegxWKvX
 XHTwB5eMzo/RB6vffwqcnHDoe0q7VgzRRZJwpi6aMIXLfeWZ5Wrwaw2zldFuO4Dt91pFzBSO
 IpeMtfgb/Pfe/a1WJ/GgaIRIBE+NUqckM+3zJHGmVPqJP/h2Iwv6nw8U+7Yyl6gUBLHFTg2h
 YnLFJI4Xjg+AX1hHFVKmvl3VBHIsBv0oDcsQWXqY+NaFahT0lRPjYtrTa1v3tem/JoFzZ4B0
 p27K+qQCF2R96hVvuEyjzBmdq2esyE6zIqftdo4MOJho8uctOiWbwNNq2U9pPWmu4vXVFBYI
 GmpyNPYzRm0QPwARAQABwsF2BBgBCgAgAhsMFiEEm9B+DgxR+NWWd7dUG5NDfTtBYpsFAmna
 YUkACgkQG5NDfTtBYptX+BAApg32CkxwNucNEi8WfWA8oKkW0y8YDuY6ORMo9FWNGiT/OTy0
 vyJrLocrpn86zwfjVp+eCrssPYh8eqJfnWqmYv6ACQtHPYzPZQ3mSo8H97Z01oUxITzCxpXm
 ZkLgPIqtDPcC2E3dPM/fVxcyowM8XsaMA9wcsaUYrta8toOq2b9tKcjleKMfMrm0gQ9u7wUc
 QbLkwj6TCLOwucb07GXzLTNF9PZmaDUpKAZjMjmrW+le+SFvQbhamx0rxLWPR0NWntXpbCn+
 +ACch03p/JyTBVktxFsFyCt7pTPE1kEaeuXBTe/a2D9iQvRxRW19LvuO2e59/u1wYUiH/orz
 wbIC2S4dBsPAPihL3ztOU1yE86GPyQtSE0kU+/7snnLt4QGi6PChf3t5gnNjAzjUUovO8rgI
 c+5yN5heq5loYHgK6OQ9OlHzsPHO9e9MOQcKlFycs1pyijFGzDwdNUm/SchK8iWT2QApTx4A
 K9bCVaboTA2T77QYkRcRJYSsO1alGX0ome/hMLD1daXlkrNUp1HWa3K4iytLRXjCSIorWiGs
 n+q3krnpXu3TFkA8qtOFZMdnIiFuiq1yLT8hptsV5xh1TA2nsVvSYiaCr3q4s4BKjS/KrLDb
 qoxzw8ISjdUp4pA85vb6YLCmb39NgidD+7PmAr65lBNveIFynTgsja1rRQ4=
In-Reply-To: <20260706071113.383215-4-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/07/2026 09:11, Atanas Filipov wrote:
> Add device-tree binding for the Qualcomm JPEG encoder hardware block
> present in SM8250 (Kona) SoCs.
> 

You still ignored my comments from v1. You never responded to them,
never implemented. This is fifth version and you still ignore them.

Please go to the v1 and respond to EACH COMMENT that you acknowledge it
and going to implement it.

Otherwise I do not see how can we accept this, if you keep ignoring
maintainer's feedback, even if that feedback is about trivial things.

NAK

Best regards,
Krzysztof

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 8663542465F;
	Mon,  6 Jul 2026 12:18: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=1783340298; cv=none; b=Z9YAinJUNmxq0icKwAcFSi52BwRSr93WVaVN0cD/iN7jB7aS0v7fwD+7nehDC3qW6IYVZGaq3Puk4ThxfgaclqFHI5fafWifQPuYgMRmsvLPxnZ5C9e61Gk12LKQ/79wpqGWLOMmydYmH2q2hwpcJUoXCWCuL1DiRVZNxbkK3uw=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783340298; c=relaxed/simple;
	bh=8JLIK1LvnJV+bBncSze5RFsLP09bc19OrX8pU+cPeio=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=htTfqwhUbcA4wzjZceW4ypqUzEg8vH21g/rNBWtog3340+qHWFJTYUG+mq1xcPbk/IsYrVwJzrB0BS3yqjnAh/805KmEmJVF0TauAStKn7XybVSncoyTUW7FDC21fXKuIxuIFfMIx4Kw+cr3zzopGBiVSXMUV/MTuzTqwEiddPQ=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QGxw9el1; 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="QGxw9el1"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D755C1F000E9;
	Mon,  6 Jul 2026 12:18:08 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783340294;
	bh=84v2wZwJk06EXv42dYh4B82lIzT860ZELlK0wlFaWWU=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To;
	b=QGxw9el1lYHI8+bEYE8nC4Dr+CUp21wsYeBATKEy7V+M+g8IIUroiF1Wenw6UZlLT
	 P8rgtvRyWBJsSNs08H4Nv6rGHn/aeITNfGdw3pMt0eyB78AyIOL0OxRMprbJfadZ9C
	 j2hFlvWUKudze4nA80p7pt00QO2c998odWU84lamYkGmzX21KXJskcgtPR9+GMtRgO
	 Ob8yhZ1TOSDgeEEnQ8MRI/DgGKjOomsZ5HtxF6x8khsP7Qx02XJWHLMlFUMBy19cP8
	 ZC/xO6siYhh780xnB1zEWecPEKMEziowTMJXQ1m5+soGNbE6rsP+rzCxf02tu6HQan
	 MY0mcU83G/mXg==
Message-ID: <7f0c7e6b-e92e-4058-8662-52004625eebf@kernel.org>
Date: Mon, 6 Jul 2026 14:18:06 +0200
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/5] arm64: dts: qcom: sm8250: Add JPEG encoder node
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
 loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-5-atanas.filipov@oss.qualcomm.com>
From: Krzysztof Kozlowski <krzk@kernel.org>
Content-Language: en-US
Autocrypt: addr=krzk@kernel.org; keydata=
 xsFNBFVDQq4BEAC6KeLOfFsAvFMBsrCrJ2bCalhPv5+KQF2PS2+iwZI8BpRZoV+Bd5kWvN79
 cFgcqTTuNHjAvxtUG8pQgGTHAObYs6xeYJtjUH0ZX6ndJ33FJYf5V3yXqqjcZ30FgHzJCFUu
 JMp7PSyMPzpUXfU12yfcRYVEMQrmplNZssmYhiTeVicuOOypWugZKVLGNm0IweVCaZ/DJDIH
 gNbpvVwjcKYrx85m9cBVEBUGaQP6AT7qlVCkrf50v8bofSIyVa2xmubbAwwFA1oxoOusjPIE
 J3iadrwpFvsZjF5uHAKS+7wHLoW9hVzOnLbX6ajk5Hf8Pb1m+VH/E8bPBNNYKkfTtypTDUCj
 NYcd27tjnXfG+SDs/EXNUAIRefCyvaRG7oRYF3Ec+2RgQDRnmmjCjoQNbFrJvJkFHlPeHaeS
 BosGY+XWKydnmsfY7SSnjAzLUGAFhLd/XDVpb1Een2XucPpKvt9ORF+48gy12FA5GduRLhQU
 vK4tU7ojoem/G23PcowM1CwPurC8sAVsQb9KmwTGh7rVz3ks3w/zfGBy3+WmLg++C2Wct6nM
 Pd8/6CBVjEWqD06/RjI2AnjIq5fSEH/BIfXXfC68nMp9BZoy3So4ZsbOlBmtAPvMYX6U8VwD
 TNeBxJu5Ex0Izf1NV9CzC3nNaFUYOY8KfN01X5SExAoVTr09ewARAQABzSVLcnp5c3p0b2Yg
 S296bG93c2tpIDxrcnprQGtlcm5lbC5vcmc+wsGPBBMBCgA5AhsDBgsJCAcDAgYVCAIJCgsE
 FgIDAQIeAQIXgBYhBJvQfg4MUfjVlne3VBuTQ307QWKbBQJp2mE8AAoJEBuTQ307QWKbeaIP
 /ihHTkTW4KsN/DQ945JJbyu5tI0J80Wue7QyyLPglyKfhgb5cLLNPpOC8cCIJsc7+W3i2P38
 s2c1cOH6CYGE7E9ur3Vfme8NW2S2I/Z8VC7bZnzyS23wT17LrsdS/qCpx4o8U+pt/xdXDKph
 EGRYrIEmMpUWvyYzyYKGIe25FtaayIIKpq8eZYyFcp2f/sG5IkOW5uZzHPMPdcm87jU7fyuQ
 rAU2vx9r+ulUfQ/q9Z2roC/ode3l7t2pN7BCBCsUDp6JCrUyZrtT1e7EbA0ZRP3aOBNk2P2E
 DQOgJGjGdO5Yx2Y9LFtltu6JbsBJHi1syGRX3AtQYOMc4Y1WGoeZJmMlvKj2ZqqXNkcWi2DS
 IQEWB0uW6CqFsBBIMGDa+6OzdaVO/uAVXWDWml02Men3CILdI1MbVjoh8ECqYUY7OQ+JJvNN
 vnliuq5WM3Ghd3jg/LZZrxXjdIginRHFQCjIJYLKpLZWm1/iDFedcfzqRNYmTtqscdCNHW41
 oT3Z7BmO9xwdjuwBS6nmS6JJwkbf5Ot2QR4pB/DRU7ZwjT1qHe+9r9gF32wXVQatHNGK/VVu
 sfwOnkdxCWkp/qb2gdQRmZh+SedStWshigH6sNfuHBloF/q+hjMRc8b2m326OZdrbSHwY1Sz
 vti8Hn7n8NjdHO9LKB7BIdjkA9DA5WsqOuVCzsFNBFVDXDQBEADNkrQYSREUL4D3Gws46JEo
 Z9HEQOKtkrwjrzlw/tCmqVzERRPvz2Xg8n7+HRCrgqnodIYoUh5WsU84N03KlLueMNsWLJBv
 BaubYN4JuJIdRr4dS4oyF1/fQAQPHh8Thpiz0SAZFx6iWKB7Qrz3OrGCjTPcW6eiOMheesVS
 5hxietSmlin+SilmIAPZHx7n242u6kdHOh+/SyLImKn/dh9RzatVpUKbv34eP1wAGldWsRxb
 f3WP9pFNObSzI/Bo3kA89Xx2rO2roC+Gq4LeHvo7ptzcLcrqaHUAcZ3CgFG88CnA6z6lBZn0
 WyewEcPOPdcUB2Q7D/NiUY+HDiV99rAYPJztjeTrBSTnHeSBPb+qn5ZZGQwIdUW9YegxWKvX
 XHTwB5eMzo/RB6vffwqcnHDoe0q7VgzRRZJwpi6aMIXLfeWZ5Wrwaw2zldFuO4Dt91pFzBSO
 IpeMtfgb/Pfe/a1WJ/GgaIRIBE+NUqckM+3zJHGmVPqJP/h2Iwv6nw8U+7Yyl6gUBLHFTg2h
 YnLFJI4Xjg+AX1hHFVKmvl3VBHIsBv0oDcsQWXqY+NaFahT0lRPjYtrTa1v3tem/JoFzZ4B0
 p27K+qQCF2R96hVvuEyjzBmdq2esyE6zIqftdo4MOJho8uctOiWbwNNq2U9pPWmu4vXVFBYI
 GmpyNPYzRm0QPwARAQABwsF2BBgBCgAgAhsMFiEEm9B+DgxR+NWWd7dUG5NDfTtBYpsFAmna
 YUkACgkQG5NDfTtBYptX+BAApg32CkxwNucNEi8WfWA8oKkW0y8YDuY6ORMo9FWNGiT/OTy0
 vyJrLocrpn86zwfjVp+eCrssPYh8eqJfnWqmYv6ACQtHPYzPZQ3mSo8H97Z01oUxITzCxpXm
 ZkLgPIqtDPcC2E3dPM/fVxcyowM8XsaMA9wcsaUYrta8toOq2b9tKcjleKMfMrm0gQ9u7wUc
 QbLkwj6TCLOwucb07GXzLTNF9PZmaDUpKAZjMjmrW+le+SFvQbhamx0rxLWPR0NWntXpbCn+
 +ACch03p/JyTBVktxFsFyCt7pTPE1kEaeuXBTe/a2D9iQvRxRW19LvuO2e59/u1wYUiH/orz
 wbIC2S4dBsPAPihL3ztOU1yE86GPyQtSE0kU+/7snnLt4QGi6PChf3t5gnNjAzjUUovO8rgI
 c+5yN5heq5loYHgK6OQ9OlHzsPHO9e9MOQcKlFycs1pyijFGzDwdNUm/SchK8iWT2QApTx4A
 K9bCVaboTA2T77QYkRcRJYSsO1alGX0ome/hMLD1daXlkrNUp1HWa3K4iytLRXjCSIorWiGs
 n+q3krnpXu3TFkA8qtOFZMdnIiFuiq1yLT8hptsV5xh1TA2nsVvSYiaCr3q4s4BKjS/KrLDb
 qoxzw8ISjdUp4pA85vb6YLCmb39NgidD+7PmAr65lBNveIFynTgsja1rRQ4=
In-Reply-To: <20260706071113.383215-5-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/07/2026 09:11, Atanas Filipov wrote:
> Add the JPEG encoder hardware node to the SM8250 device tree so the
> qcom-jpeg V4L2 encoder driver can bind and operate on this platform.
> 
> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> ---
>  arch/arm64/boot/dts/qcom/sm8250.dtsi | 81 ++++++++++++++++++++++++++++
>  1 file changed, 81 insertions(+)

Why is DTS patch before driver? Driver CANNOT depend on this.

Please organize your work correctly, see submitting patches in DT
explaining how this should be done.

Best regards,
Krzysztof

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 4001F3B0ADA;
	Mon,  6 Jul 2026 12:19:59 +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=1783340402; cv=none; b=SQX3K27qs/DQSIopMEdH77LNfcaJ94GThpezBoJRJqDYT0bsD3cLbuelltsRL6HoyDrLeB1N7BoIm7BNs61JR7NSEcFUvLDtIAAe0OisZEK+bF0sQH1glBND/7Ai3Le6ep8X7t7RPPPQobflgSvkOQhg5BTa/Ok+Wywp9+zCoOw=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783340402; c=relaxed/simple;
	bh=vuhD2ruNDP9XAX+07swc46WOzxtmn76ztN32OiLFtgo=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=ErgAjrrALlzfpGPllLVheulniYYxfZcAz1fbfd/fD2aR8tl3s7OPf2PZOZiMH/WPo7huSTSFphUFMbzkf8FdN4h7sakcv5+Mj6YeUipQ+oCy47IUplCjn5degR+WjBduEIcZTXsrl5FFYNoiO7dhfKTZJBfMTdBJYtsP61hmIMw=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Jvm9YcVX; 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="Jvm9YcVX"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 597441F000E9;
	Mon,  6 Jul 2026 12:19:53 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783340399;
	bh=giQxIjT+Q3O/eFnuDAwV8ILVtxYAzTseRkaIYeV7mZQ=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To;
	b=Jvm9YcVXrz1O6pYIiIS/0sg7qujNcKm5DWsLfgauIG8oeINe+0bJD3qh8MIVghSC1
	 82u8aYb7qnCaXrrtCVmZC5PARsYFU6F6KdOKWEpYloIZ0QHPwIwbRVyCM5SSM0xi4a
	 wGm4xK9VzXOQfDqhZSa9EpLWGyo6EkG7Es+lpVMBdN4Ld+VTk8+OvGYnoUJqzfyY61
	 xQrRcLj4Cbyzn12B7aGI1uNb8oJsx9L7OqIBVNxho6AQgd6t+PQi7ankcrvs7Q56EP
	 l2+VwJZaNzTWp9c3fJIyKxiq1oCTBSHM4koz8EsD+2kpzau4/42CqZ31oQGIDynP/l
	 ddZs/0/R3tjzw==
Message-ID: <06834dd6-1221-463f-9543-600814c8fc83@kernel.org>
Date: Mon, 6 Jul 2026 14:19:51 +0200
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
 loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
From: Krzysztof Kozlowski <krzk@kernel.org>
Content-Language: en-US
Autocrypt: addr=krzk@kernel.org; keydata=
 xsFNBFVDQq4BEAC6KeLOfFsAvFMBsrCrJ2bCalhPv5+KQF2PS2+iwZI8BpRZoV+Bd5kWvN79
 cFgcqTTuNHjAvxtUG8pQgGTHAObYs6xeYJtjUH0ZX6ndJ33FJYf5V3yXqqjcZ30FgHzJCFUu
 JMp7PSyMPzpUXfU12yfcRYVEMQrmplNZssmYhiTeVicuOOypWugZKVLGNm0IweVCaZ/DJDIH
 gNbpvVwjcKYrx85m9cBVEBUGaQP6AT7qlVCkrf50v8bofSIyVa2xmubbAwwFA1oxoOusjPIE
 J3iadrwpFvsZjF5uHAKS+7wHLoW9hVzOnLbX6ajk5Hf8Pb1m+VH/E8bPBNNYKkfTtypTDUCj
 NYcd27tjnXfG+SDs/EXNUAIRefCyvaRG7oRYF3Ec+2RgQDRnmmjCjoQNbFrJvJkFHlPeHaeS
 BosGY+XWKydnmsfY7SSnjAzLUGAFhLd/XDVpb1Een2XucPpKvt9ORF+48gy12FA5GduRLhQU
 vK4tU7ojoem/G23PcowM1CwPurC8sAVsQb9KmwTGh7rVz3ks3w/zfGBy3+WmLg++C2Wct6nM
 Pd8/6CBVjEWqD06/RjI2AnjIq5fSEH/BIfXXfC68nMp9BZoy3So4ZsbOlBmtAPvMYX6U8VwD
 TNeBxJu5Ex0Izf1NV9CzC3nNaFUYOY8KfN01X5SExAoVTr09ewARAQABzSVLcnp5c3p0b2Yg
 S296bG93c2tpIDxrcnprQGtlcm5lbC5vcmc+wsGPBBMBCgA5AhsDBgsJCAcDAgYVCAIJCgsE
 FgIDAQIeAQIXgBYhBJvQfg4MUfjVlne3VBuTQ307QWKbBQJp2mE8AAoJEBuTQ307QWKbeaIP
 /ihHTkTW4KsN/DQ945JJbyu5tI0J80Wue7QyyLPglyKfhgb5cLLNPpOC8cCIJsc7+W3i2P38
 s2c1cOH6CYGE7E9ur3Vfme8NW2S2I/Z8VC7bZnzyS23wT17LrsdS/qCpx4o8U+pt/xdXDKph
 EGRYrIEmMpUWvyYzyYKGIe25FtaayIIKpq8eZYyFcp2f/sG5IkOW5uZzHPMPdcm87jU7fyuQ
 rAU2vx9r+ulUfQ/q9Z2roC/ode3l7t2pN7BCBCsUDp6JCrUyZrtT1e7EbA0ZRP3aOBNk2P2E
 DQOgJGjGdO5Yx2Y9LFtltu6JbsBJHi1syGRX3AtQYOMc4Y1WGoeZJmMlvKj2ZqqXNkcWi2DS
 IQEWB0uW6CqFsBBIMGDa+6OzdaVO/uAVXWDWml02Men3CILdI1MbVjoh8ECqYUY7OQ+JJvNN
 vnliuq5WM3Ghd3jg/LZZrxXjdIginRHFQCjIJYLKpLZWm1/iDFedcfzqRNYmTtqscdCNHW41
 oT3Z7BmO9xwdjuwBS6nmS6JJwkbf5Ot2QR4pB/DRU7ZwjT1qHe+9r9gF32wXVQatHNGK/VVu
 sfwOnkdxCWkp/qb2gdQRmZh+SedStWshigH6sNfuHBloF/q+hjMRc8b2m326OZdrbSHwY1Sz
 vti8Hn7n8NjdHO9LKB7BIdjkA9DA5WsqOuVCzsFNBFVDXDQBEADNkrQYSREUL4D3Gws46JEo
 Z9HEQOKtkrwjrzlw/tCmqVzERRPvz2Xg8n7+HRCrgqnodIYoUh5WsU84N03KlLueMNsWLJBv
 BaubYN4JuJIdRr4dS4oyF1/fQAQPHh8Thpiz0SAZFx6iWKB7Qrz3OrGCjTPcW6eiOMheesVS
 5hxietSmlin+SilmIAPZHx7n242u6kdHOh+/SyLImKn/dh9RzatVpUKbv34eP1wAGldWsRxb
 f3WP9pFNObSzI/Bo3kA89Xx2rO2roC+Gq4LeHvo7ptzcLcrqaHUAcZ3CgFG88CnA6z6lBZn0
 WyewEcPOPdcUB2Q7D/NiUY+HDiV99rAYPJztjeTrBSTnHeSBPb+qn5ZZGQwIdUW9YegxWKvX
 XHTwB5eMzo/RB6vffwqcnHDoe0q7VgzRRZJwpi6aMIXLfeWZ5Wrwaw2zldFuO4Dt91pFzBSO
 IpeMtfgb/Pfe/a1WJ/GgaIRIBE+NUqckM+3zJHGmVPqJP/h2Iwv6nw8U+7Yyl6gUBLHFTg2h
 YnLFJI4Xjg+AX1hHFVKmvl3VBHIsBv0oDcsQWXqY+NaFahT0lRPjYtrTa1v3tem/JoFzZ4B0
 p27K+qQCF2R96hVvuEyjzBmdq2esyE6zIqftdo4MOJho8uctOiWbwNNq2U9pPWmu4vXVFBYI
 GmpyNPYzRm0QPwARAQABwsF2BBgBCgAgAhsMFiEEm9B+DgxR+NWWd7dUG5NDfTtBYpsFAmna
 YUkACgkQG5NDfTtBYptX+BAApg32CkxwNucNEi8WfWA8oKkW0y8YDuY6ORMo9FWNGiT/OTy0
 vyJrLocrpn86zwfjVp+eCrssPYh8eqJfnWqmYv6ACQtHPYzPZQ3mSo8H97Z01oUxITzCxpXm
 ZkLgPIqtDPcC2E3dPM/fVxcyowM8XsaMA9wcsaUYrta8toOq2b9tKcjleKMfMrm0gQ9u7wUc
 QbLkwj6TCLOwucb07GXzLTNF9PZmaDUpKAZjMjmrW+le+SFvQbhamx0rxLWPR0NWntXpbCn+
 +ACch03p/JyTBVktxFsFyCt7pTPE1kEaeuXBTe/a2D9iQvRxRW19LvuO2e59/u1wYUiH/orz
 wbIC2S4dBsPAPihL3ztOU1yE86GPyQtSE0kU+/7snnLt4QGi6PChf3t5gnNjAzjUUovO8rgI
 c+5yN5heq5loYHgK6OQ9OlHzsPHO9e9MOQcKlFycs1pyijFGzDwdNUm/SchK8iWT2QApTx4A
 K9bCVaboTA2T77QYkRcRJYSsO1alGX0ome/hMLD1daXlkrNUp1HWa3K4iytLRXjCSIorWiGs
 n+q3krnpXu3TFkA8qtOFZMdnIiFuiq1yLT8hptsV5xh1TA2nsVvSYiaCr3q4s4BKjS/KrLDb
 qoxzw8ISjdUp4pA85vb6YLCmb39NgidD+7PmAr65lBNveIFynTgsja1rRQ4=
In-Reply-To: <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/07/2026 09:11, Atanas Filipov wrote:
> Add a Qualcomm JPEG encoder driver implemented on top of the
> V4L2 mem2mem framework.
> 
> The driver wires vb2 queue handling, format negotiation, JPEG header
> handling, interrupt-driven job completion, and runtime PM/clock/ICC
> integration for the standalone JPEG encode hardware block.
> 
> This series targets SM8250 (Kona) platforms.
> 
> The jpeg-encoder node is described as a child node of the CAMSS block
> and is probed automatically via of_platform_populate() in camss_probe().
> 
> Usage examples:
> 
> - Check of related video node: v4l2-ctl --list-devices
>   The expected result:
>    qcom-jpeg-enc (platform:qcom-jpeg-enc):
>         /dev/videoX
> 
> V4L2 Examples:
> 
> v4l2-ctl -d /dev/video14 \
> --set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
> --stream-mmap --stream-out-mmap
> 
> v4l2-ctl -d /dev/video14 \
> -c compression_quality=100 \
> --set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
> --stream-mmap --stream-out-mmap \
> --stream-count=100
> 
> v4l2-ctl -d /dev/video14 \
> --set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
> --stream-mmap --stream-out-mmap \
> --set-ctrl=perf_level_auto=1 \
> --set-ctrl=fps_target=30 \
> --stream-count=100
> 
> v4l2-ctl -d /dev/video14 \
> --set-fmt-video-out=width=8192,height=8192,pixelformat=NM12 \
> --stream-mmap --stream-out-mmap \
> --stream-count=1 \
> --stream-to=8192x8192_NM12.jpg
> 
> v4l2-ctl -d /dev/video14 \
> --set-fmt-video-out=width=8192,height=8192,pixelformat=GREY \
> --stream-mmap --stream-out-mmap \
> --stream-count=1 \
> --stream-to=OUT_8192x8192.jpg
> 
> v4l2-ctl -d /dev/video14 \
> -c compression_quality=100 \
> --set-fmt-video-out=width=1920,height=1088,pixelformat=NM12 \
> --stream-mmap=4 --stream-out-mmap=4 \
> --stream-count=100 \
> --stream-out-pattern=21 \
> --stream-to=OUT_1920x1088_100F.mjpg
> 
> GStreamer examples:
> 
> gst-launch-1.0 videotestsrc \
> is-live=false pattern=ball num-buffers=50 ! \
> video/x-raw,format=NV12,width=1920,height=1080 ! \
> videoscale ! videoconvert ! \
> video/x-raw,format=NV12,width=1920,height=1088 ! \
> v4l2jpegenc ! \
> fakesink sync=false
> 
> gst-launch-1.0 videotestsrc is-live=true pattern=smpte ! \
> video/x-raw,format=NV12,width=1920,height=1088 ! \
> v4l2jpegenc extra-controls="controls,compression_quality=85" ! \
> fpsdisplaysink -v sync=false
> 
> Performance measurements on SM8250
> (NV12, quality=100, GStreamer v4l2jpegenc vs jpegenc):
> 
> +------------+-----------------------------+-------------------+
> | Resolution |    HW v4l2jpegenc (q100)    | SW jpegenc (q100) |
> |            | Execution | avrFPS | maxFPS | Execution |  FPS  |
> +------------+-----------+--------+--------+-----------+-------+
> |   512x512  | 2.2332    | 1139.1 | 1195.4 | 7.1055    | 358.0 |
> |  1280x720  | 1.7300    |  418.5 |  457.2 | 5.0585    | 143.1 |
> | 1024x1024  | 1.6991    |  374.3 |  397.4 | 4.7304    | 134.4 |
> | 1920x1088  | 1.6596    |  192.8 |  193.8 | 3.7913    |  84.4 |
> | 2048x2048  | 1.7277    |   92.0 |   91.6 | 3.6343    |  43.7 |
> | 4096x4096  | 1.5887    |   25.2 |   25.3 | 4.2163    |   9.5 |
> | 8192x8192  | 1.3104    |    7.6 |    8.0 | 2.9987    |   3.3 |
> +------------+-----------+--------+--------+-----------+-------+
> 
> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> ---
>  .../bindings/media/qcom,jpeg-encoder.yaml     |  143 +-


NAK


...


> diff --git a/drivers/media/platform/qcom/Kconfig b/drivers/media/platform/qcom/Kconfig
> index 4f4d3a68e6e5..f33d53a754a0 100644
> --- a/drivers/media/platform/qcom/Kconfig
> +++ b/drivers/media/platform/qcom/Kconfig
> @@ -5,3 +5,4 @@ comment "Qualcomm media platform drivers"
>  source "drivers/media/platform/qcom/camss/Kconfig"
>  source "drivers/media/platform/qcom/iris/Kconfig"
>  source "drivers/media/platform/qcom/venus/Kconfig"
> +source "drivers/media/platform/qcom/jpeg/Kconfig"

Just like for other patch, you ignored reviewers' feedback.

I already asked you to go through previous comments around v3. I do not
see improvements, so I assume you do it deliberately.

NAK

Best regards,
Krzysztof

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 A85A142A14B;
	Mon,  6 Jul 2026 12:24:12 +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=1783340654; cv=none; b=DxvbduOP4+ONE9jsCIf8K0KCFBZap9j2phBXe1TnV+eiM2qqxUVbFIUkE40KwWnxB5sW17PV8AQ6iCm6pwdTXMTd4ZGRvT9bj/Ep5+J1Qe5Q+IovQuA5Lsvc0YwU8mG9HWSaFCynYafWO+4GCZ8AXENkqPWPGDfgMefHTlMIbt4=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783340654; c=relaxed/simple;
	bh=ecxXspoBspFpCMRQ4/g6+KdPTm2uyGFhebiLcnDUqQc=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=HnQvdUJMEK3RU7160hkhv58IyWEm5kGbat4HSX0BZeIeyVQkjttf9tAVhsByPvFbvdoIs5fIKeKo1SRSWCUW/rbKagBCqP2KBUdGfJ8NvFumEAjgQD8vUwSaCyunDC7RU0jcsZqAy/84W6HIXzbcnN0YOpzQdbQXWv+vnFKHsFA=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IWK0L2BU; 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="IWK0L2BU"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A343A1F000E9;
	Mon,  6 Jul 2026 12:24:06 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783340651;
	bh=qtI6LUHYPWCN4EfHXE3t+9GYUzEJ73DPndgZc9eZwrg=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To;
	b=IWK0L2BU8FnoIv+8Eg1122+RbsLB856v2YvmrYhnAlutHtrVqpkWDhwSqBxGW1hNt
	 DB07w/knqoxNIjrVqQvWKrutoQIXT6dZDp3DkLwiZVrQa1wTxKm/uSsMiO3m4+Sgy0
	 kDt7GLkkXeerpAusaJaYTrEHPFQBnhp1p3zjQRETEdPPbrJdFs6Er3kD/dS5f6k3l+
	 G8TIWFWO4XSA8KQaAas3qZLVjqvflBxML4PjRVkB9MKhca+TjViyEwI2ChPltfYLzI
	 6gQHlCx4eehb8qq6ZZC4IJ7vjpDdIhHnvMUbSm/LQ3CXerkmtQJqTslqTwMfout4dA
	 jUF4mTp+L4l1A==
Message-ID: <7479fb60-e14a-4c00-94bd-ecd5a493bec8@kernel.org>
Date: Mon, 6 Jul 2026 14:24:03 +0200
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
 loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
From: Krzysztof Kozlowski <krzk@kernel.org>
Content-Language: en-US
Autocrypt: addr=krzk@kernel.org; keydata=
 xsFNBFVDQq4BEAC6KeLOfFsAvFMBsrCrJ2bCalhPv5+KQF2PS2+iwZI8BpRZoV+Bd5kWvN79
 cFgcqTTuNHjAvxtUG8pQgGTHAObYs6xeYJtjUH0ZX6ndJ33FJYf5V3yXqqjcZ30FgHzJCFUu
 JMp7PSyMPzpUXfU12yfcRYVEMQrmplNZssmYhiTeVicuOOypWugZKVLGNm0IweVCaZ/DJDIH
 gNbpvVwjcKYrx85m9cBVEBUGaQP6AT7qlVCkrf50v8bofSIyVa2xmubbAwwFA1oxoOusjPIE
 J3iadrwpFvsZjF5uHAKS+7wHLoW9hVzOnLbX6ajk5Hf8Pb1m+VH/E8bPBNNYKkfTtypTDUCj
 NYcd27tjnXfG+SDs/EXNUAIRefCyvaRG7oRYF3Ec+2RgQDRnmmjCjoQNbFrJvJkFHlPeHaeS
 BosGY+XWKydnmsfY7SSnjAzLUGAFhLd/XDVpb1Een2XucPpKvt9ORF+48gy12FA5GduRLhQU
 vK4tU7ojoem/G23PcowM1CwPurC8sAVsQb9KmwTGh7rVz3ks3w/zfGBy3+WmLg++C2Wct6nM
 Pd8/6CBVjEWqD06/RjI2AnjIq5fSEH/BIfXXfC68nMp9BZoy3So4ZsbOlBmtAPvMYX6U8VwD
 TNeBxJu5Ex0Izf1NV9CzC3nNaFUYOY8KfN01X5SExAoVTr09ewARAQABzSVLcnp5c3p0b2Yg
 S296bG93c2tpIDxrcnprQGtlcm5lbC5vcmc+wsGPBBMBCgA5AhsDBgsJCAcDAgYVCAIJCgsE
 FgIDAQIeAQIXgBYhBJvQfg4MUfjVlne3VBuTQ307QWKbBQJp2mE8AAoJEBuTQ307QWKbeaIP
 /ihHTkTW4KsN/DQ945JJbyu5tI0J80Wue7QyyLPglyKfhgb5cLLNPpOC8cCIJsc7+W3i2P38
 s2c1cOH6CYGE7E9ur3Vfme8NW2S2I/Z8VC7bZnzyS23wT17LrsdS/qCpx4o8U+pt/xdXDKph
 EGRYrIEmMpUWvyYzyYKGIe25FtaayIIKpq8eZYyFcp2f/sG5IkOW5uZzHPMPdcm87jU7fyuQ
 rAU2vx9r+ulUfQ/q9Z2roC/ode3l7t2pN7BCBCsUDp6JCrUyZrtT1e7EbA0ZRP3aOBNk2P2E
 DQOgJGjGdO5Yx2Y9LFtltu6JbsBJHi1syGRX3AtQYOMc4Y1WGoeZJmMlvKj2ZqqXNkcWi2DS
 IQEWB0uW6CqFsBBIMGDa+6OzdaVO/uAVXWDWml02Men3CILdI1MbVjoh8ECqYUY7OQ+JJvNN
 vnliuq5WM3Ghd3jg/LZZrxXjdIginRHFQCjIJYLKpLZWm1/iDFedcfzqRNYmTtqscdCNHW41
 oT3Z7BmO9xwdjuwBS6nmS6JJwkbf5Ot2QR4pB/DRU7ZwjT1qHe+9r9gF32wXVQatHNGK/VVu
 sfwOnkdxCWkp/qb2gdQRmZh+SedStWshigH6sNfuHBloF/q+hjMRc8b2m326OZdrbSHwY1Sz
 vti8Hn7n8NjdHO9LKB7BIdjkA9DA5WsqOuVCzsFNBFVDXDQBEADNkrQYSREUL4D3Gws46JEo
 Z9HEQOKtkrwjrzlw/tCmqVzERRPvz2Xg8n7+HRCrgqnodIYoUh5WsU84N03KlLueMNsWLJBv
 BaubYN4JuJIdRr4dS4oyF1/fQAQPHh8Thpiz0SAZFx6iWKB7Qrz3OrGCjTPcW6eiOMheesVS
 5hxietSmlin+SilmIAPZHx7n242u6kdHOh+/SyLImKn/dh9RzatVpUKbv34eP1wAGldWsRxb
 f3WP9pFNObSzI/Bo3kA89Xx2rO2roC+Gq4LeHvo7ptzcLcrqaHUAcZ3CgFG88CnA6z6lBZn0
 WyewEcPOPdcUB2Q7D/NiUY+HDiV99rAYPJztjeTrBSTnHeSBPb+qn5ZZGQwIdUW9YegxWKvX
 XHTwB5eMzo/RB6vffwqcnHDoe0q7VgzRRZJwpi6aMIXLfeWZ5Wrwaw2zldFuO4Dt91pFzBSO
 IpeMtfgb/Pfe/a1WJ/GgaIRIBE+NUqckM+3zJHGmVPqJP/h2Iwv6nw8U+7Yyl6gUBLHFTg2h
 YnLFJI4Xjg+AX1hHFVKmvl3VBHIsBv0oDcsQWXqY+NaFahT0lRPjYtrTa1v3tem/JoFzZ4B0
 p27K+qQCF2R96hVvuEyjzBmdq2esyE6zIqftdo4MOJho8uctOiWbwNNq2U9pPWmu4vXVFBYI
 GmpyNPYzRm0QPwARAQABwsF2BBgBCgAgAhsMFiEEm9B+DgxR+NWWd7dUG5NDfTtBYpsFAmna
 YUkACgkQG5NDfTtBYptX+BAApg32CkxwNucNEi8WfWA8oKkW0y8YDuY6ORMo9FWNGiT/OTy0
 vyJrLocrpn86zwfjVp+eCrssPYh8eqJfnWqmYv6ACQtHPYzPZQ3mSo8H97Z01oUxITzCxpXm
 ZkLgPIqtDPcC2E3dPM/fVxcyowM8XsaMA9wcsaUYrta8toOq2b9tKcjleKMfMrm0gQ9u7wUc
 QbLkwj6TCLOwucb07GXzLTNF9PZmaDUpKAZjMjmrW+le+SFvQbhamx0rxLWPR0NWntXpbCn+
 +ACch03p/JyTBVktxFsFyCt7pTPE1kEaeuXBTe/a2D9iQvRxRW19LvuO2e59/u1wYUiH/orz
 wbIC2S4dBsPAPihL3ztOU1yE86GPyQtSE0kU+/7snnLt4QGi6PChf3t5gnNjAzjUUovO8rgI
 c+5yN5heq5loYHgK6OQ9OlHzsPHO9e9MOQcKlFycs1pyijFGzDwdNUm/SchK8iWT2QApTx4A
 K9bCVaboTA2T77QYkRcRJYSsO1alGX0ome/hMLD1daXlkrNUp1HWa3K4iytLRXjCSIorWiGs
 n+q3krnpXu3TFkA8qtOFZMdnIiFuiq1yLT8hptsV5xh1TA2nsVvSYiaCr3q4s4BKjS/KrLDb
 qoxzw8ISjdUp4pA85vb6YLCmb39NgidD+7PmAr65lBNveIFynTgsja1rRQ4=
In-Reply-To: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/07/2026 09:11, Atanas Filipov wrote:
> This series adds support for the Qualcomm JPEG V4L2 mem2mem encoder on SM8250.
> 
> The goal is to upstream a standards-based JPEG encode path using the V4L2 M2M
> framework, with DT-described hardware resources and SoC DTS integration.
> 

1. Here was NAK for v2:
https://lore.kernel.org/all/20260625133828.3221781-1-atanas.filipov@oss.qualcomm.com/

When I asked to implement previous comments.

Did you implement them? No.

2. At v2-1 version I already asked you to implement comments:
https://lore.kernel.org/all/c9006b67-aa43-41d3-8b13-f20dd2e544c6@kernel.org/

Basically now, THIRD TIME, you send the same and you still do not
implement the comments I asked you at v1.

I treat it as deliberate action to ignore review. Me asking the same for
the third time and expecting different results goes towards insanity, so
let's avoid me becoming insane and consider all future submissions also
NAK-ed:

Nacked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Best regards,
Krzysztof

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2FED541D4C1
	for <linux-kernel@vger.kernel.org>; Mon,  6 Jul 2026 12:27:09 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783340833; cv=none; b=Qgb5yLg3LTCt7TOU6xHcq8cFzS5+orHiISqeMiGNXb9CzeUZ5TjLDxE9R0P/nMyQnWi+FiCu1ZeULLVwZ7jG3mZudzyR7wFhdIK1P9KTtZeJeivtBP+4SBKXYv3XYnocplnf3ifnp9tbDEax+xYolqLO7RIPFRyVvNw7v679ba0=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783340833; c=relaxed/simple;
	bh=i3On1m+1xOP7BaqxdPfl0e+BIrUqtmSgKy1W2+LpuX8=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=sYmPqhQBraEMo+5t8KXwuuQ8Lp6zEdr3w4Vyy97xexvkqBmNS82FU4Z2mrjrU9G8pK1DBD8ztTpC9K5BbQLRHgVDyi0nYvYB2ol5QCXey4HCb1J0RJbPWn3iINIlrW8I8zHshgODwBIq2g/k6PhzdMm+fDjsErf/baJb/tqH8Lk=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=JmQ/2JrD; arc=none smtp.client-ip=209.85.208.42
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="JmQ/2JrD"
Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-69532288224so5338511a12.0
        for <linux-kernel@vger.kernel.org>; Mon, 06 Jul 2026 05:27:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783340827; x=1783945627; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=oqZgOHmUP2WhlukFUJpUWMWTr9sro7DNP6QMMUzHrZc=;
        b=JmQ/2JrD+d2kvtqkaU22bC2mWFrRlJ4H2FnVSktcJN0erOtu29cej990y36xBDfl6g
         /5dlt3o4eb7siCqhl5dNTGgoUcrgr4O2VB43aUlpVik2gYDjiaotg7bh/M2n65kKV2Bz
         ugswnz83dkP2pLwsQsUK75XSMU8njWzBpUwYjTaGzDJ3vGtc7taG0QNSy9OI1QvxhPRT
         NYnNI5nu4eXrFC5s0qwVoy2eNsXrJWjeQ2FQE1vqg5nZIVJJ2x6KyaM8HoZSBiJAwrv1
         8t3bPIsKcPyMAcKEe9I1R4SDYOleMzEYa6J/P+3ouANVbyKF1rm6x85ihf0gl63zpi18
         mgkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783340827; x=1783945627;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=oqZgOHmUP2WhlukFUJpUWMWTr9sro7DNP6QMMUzHrZc=;
        b=qqcDSfuw5jd0Vf6nhq+KQTMqCsZjvCCnb1H+Vg5huvY39XKbxFZtvPuACKW820sgdA
         Q5qkhfuTT7G7R35HNt+rgIlFijWhjGPQT9pj+TeGckWr4gp5Gyjq/RBj5PJtkngopT6t
         r0yzShPUYBFDFpLzufiwJXfbO0LG1XX+q0JsoSiKWpPEwRlgen8X55aSUgFygU8qbxc3
         jnDiQpw1Mxtl4YqekVd7ZjsSJy3P3srPCO7Z80nRG2srMZt5xinYRAssgpAvR2f5itMN
         BPPizuOHO4qiC5/ym3yRY5c4EVamg4lhlE9OzInclaFOlbs2XFRqWmgpIpOGX2AdkBSs
         MVRw==
X-Forwarded-Encrypted: i=1; AHgh+Rqpw5var5BLfpzkWt9PuDNKF6p/NCH27K2schPcvAMkkxODWWJSFsSxnl8g3A/ecgnnhBlh4nI3lG7zPBU=@vger.kernel.org
X-Gm-Message-State: AOJu0YwkJKnnyDjv6+NmPZQnrhpFTPWLD3KXPSdJLJm/eskN128zopoe
	sEvPEcci2MIu0qaxExnuKeOwaRhoQWEknE6eHS7MIcfFBnAj8orehheO0nl5n9hzYvY=
X-Gm-Gg: AfdE7cluQj33GUx0z9RrAxeixSe+Zeu5Q330NRN1saFDxw5rcxNSbJQvTtqsZudpRjS
	rii9rbXt8Z35pbTY0KuzVFHdC64swQ1q5lzbCPflrDiLnN22T1JNa9AvbU3SvP8T2f2bvqObMRJ
	qdJJ49LueXijq2ZRhWzpakFXUjTKlEDEvYievxChTA43rjBog3tae6y85FySnVVCOkfQiwHi7oP
	7xstw5JsUM36T+LmQTaSIH/3ovrGf962dXMY+aQ+Uon44zkxUhZ2HadoMvnumDh0tUuw0IaeyI6
	8w6H0AemEWjefRVeskB7NdEBi5dsVaTU6KDc4pK37zMgURfM/0qLQEYsAKTOKTTLAdpnXa8LOet
	UMtwQ69UmA9Y5ebfOJJfULa6G/C1lLa/5tTYGg9Tp2xKukRE4E9sRrvVr4GnVH9EBSvfb60Q85Y
	Su9sgU7kBcB5woeq/2M6yk0f/K2A==
X-Received: by 2002:a05:6402:2115:b0:697:8d48:7fa7 with SMTP id 4fb4d7f45d1cf-69a85ba021bmr238124a12.22.1783340827234;
        Mon, 06 Jul 2026 05:27:07 -0700 (PDT)
Received: from [192.168.0.101] ([109.77.44.220])
        by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69a19ce4a60sm3946787a12.8.2026.07.06.05.27.06
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 05:27:06 -0700 (PDT)
Message-ID: <8871f6d6-6102-49bd-9758-faebbd9fa19c@linaro.org>
Date: Mon, 6 Jul 2026 13:27:05 +0100
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices
 via DT
To: Krzysztof Kozlowski <krzk@kernel.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
 <389ff33a-b319-4f2e-9410-8ae962f2e844@kernel.org>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <389ff33a-b319-4f2e-9410-8ae962f2e844@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/07/2026 13:09, Krzysztof Kozlowski wrote:
> On 06/07/2026 09:11, Atanas Filipov wrote:
>> From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>
>> Use devm_of_platform_populate() so that child nodes declared under the
>> CAMSS device tree node (e.g. OPE) are automatically instantiated as
>> platform devices. This is required now that CAMSS is modelled as a
>> simple-bus and ISP blocks such as OPE are described as child nodes.
> 
> I do not understand this rationale. How is this required now? Are
> existing DTS broken and do not work? Then this needs to be explained.

Required is wrong, true. Existing DT is not broken no.

Should read something like:

"Use devm_of_platform_populate() so that child nodes declared under the 
CAMSS device tree node (e.g. OPE) are automatically instantiated as 
platform devices."

Why this patch ? We also discussed simple-mfd but then settled on this 
way instead.

https://lore.kernel.org/all/0f898ad3-156d-496c-b2c1-88646edc7ab6@kernel.org/

> Best regards,
> Krzysztof

Not withstanding this series, I'll fixup my version of this patch ;)

---
bod

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 EAE123FE35F;
	Mon,  6 Jul 2026 12:37:08 +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=1783341430; cv=none; b=E9NhVC7AjqjqNUnVYVUPkKm43E30nj0yJeSW0r1fU26UQbEq6wfxradwHoswZizifd0KhVDbePnYhfRihYp3ya9RYMzIcsMx0wa2LACzOn8S2tyKnmLJ6B9Iho57u2BIJfClfjwSzoICXdQsGjYyq7uTsoJwDvt0+tTZMsoy6w4=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783341430; c=relaxed/simple;
	bh=xKa+TVNCB1T93t+ZkgGKoHYSybGj/JKhIlmDllAOGXg=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=ZTrqsNSHe7KSAQXhHX2jkz7TNM2dKWaDIroYeElPvX8EAzM0jAkBUWgzhP96Q/uDBIr1zLYFS6QAHp7XL2fYxTT032swfL9rQj/32OkDQSqi/meIf+xsdR2nyzZKgXoQSNEBi8CI1H12VfUsqTdBLlE9y8U9TZoMUTEeq9U8Sz0=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YLfY2V0F; 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="YLfY2V0F"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D96721F000E9;
	Mon,  6 Jul 2026 12:37:02 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783341428;
	bh=++skhoLVzffVvUQeo14ZunDPKHthA/dJosH4iwTJQ5I=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To;
	b=YLfY2V0FxhC+pHx7r4YbvVgL7gOLR0Vyu3ptrTptsGlSwi5oWsUovtKlzMcZAaFlL
	 azpID723IAEVaKQlKBTQ0pvVGACu40YkDN9oP1SxRzC5PoQXcCmuu2lDgmuzEELXIh
	 DAzfay0IISBuCmD3Q4XPXFD9hnKWj9GjlEVcF9GBat9j0mBwbBeWblMVkP4mCrE7i/
	 A9ri7S5Q2pfro8UmcZya/+AignZHl8Dqd9QLsE7MsFGln4kXNrRWPbAZgBWSbhfGBC
	 q/FxwCA6nKTSgc20MunH1cGoknSrJzk0CzwyYQ2lvb7l2weiqAJwa/r2ucZvThfz8i
	 SfwoQsDoN/7YQ==
Message-ID: <612730a9-8d5a-4c3f-8e04-6a248258e51a@kernel.org>
Date: Mon, 6 Jul 2026 14:36:58 +0200
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices
 via DT
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
 <389ff33a-b319-4f2e-9410-8ae962f2e844@kernel.org>
 <8871f6d6-6102-49bd-9758-faebbd9fa19c@linaro.org>
From: Krzysztof Kozlowski <krzk@kernel.org>
Content-Language: en-US
Autocrypt: addr=krzk@kernel.org; keydata=
 xsFNBFVDQq4BEAC6KeLOfFsAvFMBsrCrJ2bCalhPv5+KQF2PS2+iwZI8BpRZoV+Bd5kWvN79
 cFgcqTTuNHjAvxtUG8pQgGTHAObYs6xeYJtjUH0ZX6ndJ33FJYf5V3yXqqjcZ30FgHzJCFUu
 JMp7PSyMPzpUXfU12yfcRYVEMQrmplNZssmYhiTeVicuOOypWugZKVLGNm0IweVCaZ/DJDIH
 gNbpvVwjcKYrx85m9cBVEBUGaQP6AT7qlVCkrf50v8bofSIyVa2xmubbAwwFA1oxoOusjPIE
 J3iadrwpFvsZjF5uHAKS+7wHLoW9hVzOnLbX6ajk5Hf8Pb1m+VH/E8bPBNNYKkfTtypTDUCj
 NYcd27tjnXfG+SDs/EXNUAIRefCyvaRG7oRYF3Ec+2RgQDRnmmjCjoQNbFrJvJkFHlPeHaeS
 BosGY+XWKydnmsfY7SSnjAzLUGAFhLd/XDVpb1Een2XucPpKvt9ORF+48gy12FA5GduRLhQU
 vK4tU7ojoem/G23PcowM1CwPurC8sAVsQb9KmwTGh7rVz3ks3w/zfGBy3+WmLg++C2Wct6nM
 Pd8/6CBVjEWqD06/RjI2AnjIq5fSEH/BIfXXfC68nMp9BZoy3So4ZsbOlBmtAPvMYX6U8VwD
 TNeBxJu5Ex0Izf1NV9CzC3nNaFUYOY8KfN01X5SExAoVTr09ewARAQABzSVLcnp5c3p0b2Yg
 S296bG93c2tpIDxrcnprQGtlcm5lbC5vcmc+wsGPBBMBCgA5AhsDBgsJCAcDAgYVCAIJCgsE
 FgIDAQIeAQIXgBYhBJvQfg4MUfjVlne3VBuTQ307QWKbBQJp2mE8AAoJEBuTQ307QWKbeaIP
 /ihHTkTW4KsN/DQ945JJbyu5tI0J80Wue7QyyLPglyKfhgb5cLLNPpOC8cCIJsc7+W3i2P38
 s2c1cOH6CYGE7E9ur3Vfme8NW2S2I/Z8VC7bZnzyS23wT17LrsdS/qCpx4o8U+pt/xdXDKph
 EGRYrIEmMpUWvyYzyYKGIe25FtaayIIKpq8eZYyFcp2f/sG5IkOW5uZzHPMPdcm87jU7fyuQ
 rAU2vx9r+ulUfQ/q9Z2roC/ode3l7t2pN7BCBCsUDp6JCrUyZrtT1e7EbA0ZRP3aOBNk2P2E
 DQOgJGjGdO5Yx2Y9LFtltu6JbsBJHi1syGRX3AtQYOMc4Y1WGoeZJmMlvKj2ZqqXNkcWi2DS
 IQEWB0uW6CqFsBBIMGDa+6OzdaVO/uAVXWDWml02Men3CILdI1MbVjoh8ECqYUY7OQ+JJvNN
 vnliuq5WM3Ghd3jg/LZZrxXjdIginRHFQCjIJYLKpLZWm1/iDFedcfzqRNYmTtqscdCNHW41
 oT3Z7BmO9xwdjuwBS6nmS6JJwkbf5Ot2QR4pB/DRU7ZwjT1qHe+9r9gF32wXVQatHNGK/VVu
 sfwOnkdxCWkp/qb2gdQRmZh+SedStWshigH6sNfuHBloF/q+hjMRc8b2m326OZdrbSHwY1Sz
 vti8Hn7n8NjdHO9LKB7BIdjkA9DA5WsqOuVCzsFNBFVDXDQBEADNkrQYSREUL4D3Gws46JEo
 Z9HEQOKtkrwjrzlw/tCmqVzERRPvz2Xg8n7+HRCrgqnodIYoUh5WsU84N03KlLueMNsWLJBv
 BaubYN4JuJIdRr4dS4oyF1/fQAQPHh8Thpiz0SAZFx6iWKB7Qrz3OrGCjTPcW6eiOMheesVS
 5hxietSmlin+SilmIAPZHx7n242u6kdHOh+/SyLImKn/dh9RzatVpUKbv34eP1wAGldWsRxb
 f3WP9pFNObSzI/Bo3kA89Xx2rO2roC+Gq4LeHvo7ptzcLcrqaHUAcZ3CgFG88CnA6z6lBZn0
 WyewEcPOPdcUB2Q7D/NiUY+HDiV99rAYPJztjeTrBSTnHeSBPb+qn5ZZGQwIdUW9YegxWKvX
 XHTwB5eMzo/RB6vffwqcnHDoe0q7VgzRRZJwpi6aMIXLfeWZ5Wrwaw2zldFuO4Dt91pFzBSO
 IpeMtfgb/Pfe/a1WJ/GgaIRIBE+NUqckM+3zJHGmVPqJP/h2Iwv6nw8U+7Yyl6gUBLHFTg2h
 YnLFJI4Xjg+AX1hHFVKmvl3VBHIsBv0oDcsQWXqY+NaFahT0lRPjYtrTa1v3tem/JoFzZ4B0
 p27K+qQCF2R96hVvuEyjzBmdq2esyE6zIqftdo4MOJho8uctOiWbwNNq2U9pPWmu4vXVFBYI
 GmpyNPYzRm0QPwARAQABwsF2BBgBCgAgAhsMFiEEm9B+DgxR+NWWd7dUG5NDfTtBYpsFAmna
 YUkACgkQG5NDfTtBYptX+BAApg32CkxwNucNEi8WfWA8oKkW0y8YDuY6ORMo9FWNGiT/OTy0
 vyJrLocrpn86zwfjVp+eCrssPYh8eqJfnWqmYv6ACQtHPYzPZQ3mSo8H97Z01oUxITzCxpXm
 ZkLgPIqtDPcC2E3dPM/fVxcyowM8XsaMA9wcsaUYrta8toOq2b9tKcjleKMfMrm0gQ9u7wUc
 QbLkwj6TCLOwucb07GXzLTNF9PZmaDUpKAZjMjmrW+le+SFvQbhamx0rxLWPR0NWntXpbCn+
 +ACch03p/JyTBVktxFsFyCt7pTPE1kEaeuXBTe/a2D9iQvRxRW19LvuO2e59/u1wYUiH/orz
 wbIC2S4dBsPAPihL3ztOU1yE86GPyQtSE0kU+/7snnLt4QGi6PChf3t5gnNjAzjUUovO8rgI
 c+5yN5heq5loYHgK6OQ9OlHzsPHO9e9MOQcKlFycs1pyijFGzDwdNUm/SchK8iWT2QApTx4A
 K9bCVaboTA2T77QYkRcRJYSsO1alGX0ome/hMLD1daXlkrNUp1HWa3K4iytLRXjCSIorWiGs
 n+q3krnpXu3TFkA8qtOFZMdnIiFuiq1yLT8hptsV5xh1TA2nsVvSYiaCr3q4s4BKjS/KrLDb
 qoxzw8ISjdUp4pA85vb6YLCmb39NgidD+7PmAr65lBNveIFynTgsja1rRQ4=
In-Reply-To: <8871f6d6-6102-49bd-9758-faebbd9fa19c@linaro.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/07/2026 14:27, Bryan O'Donoghue wrote:
> On 06/07/2026 13:09, Krzysztof Kozlowski wrote:
>> On 06/07/2026 09:11, Atanas Filipov wrote:
>>> From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>>
>>> Use devm_of_platform_populate() so that child nodes declared under the
>>> CAMSS device tree node (e.g. OPE) are automatically instantiated as
>>> platform devices. This is required now that CAMSS is modelled as a
>>> simple-bus and ISP blocks such as OPE are described as child nodes.
>>
>> I do not understand this rationale. How is this required now? Are
>> existing DTS broken and do not work? Then this needs to be explained.
> 
> Required is wrong, true. Existing DT is not broken no.
> 
> Should read something like:
> 
> "Use devm_of_platform_populate() so that child nodes declared under the 
> CAMSS device tree node (e.g. OPE) are automatically instantiated as 
> platform devices."

This patch then makes no sense before the binding defines such children.

If you carry this patch outside of this work, you do not need to keep
the Nacked-by tag. Only constant ignoring of review here is the reason
of Nacked-by.

However if you carry this patch separately, you still need to fix the
lack of sense of doing this at this point.

Best regards,
Krzysztof

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com [209.85.208.45])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id 74E3641D4E9
	for <linux-kernel@vger.kernel.org>; Mon,  6 Jul 2026 12:38:52 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.45
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783341534; cv=none; b=icOwZ3P9kc71qrO5sallvrWvoY/8vPYG2MrDbVoRc5DyADZzyjFn+XiPHr3jOjFh5fRNcDtEeoKycnCv7p4jL4Dv+g8aT89C/1Oy88pFE/ODVMPEqslSagVD2wIE/6ps/hS7/x2Pj8n5E7riFbY6XaDdJDEOJ7iPz3YoyBjxS1o=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783341534; c=relaxed/simple;
	bh=ZB9qw/FoktltYDTtZmKGAiHusi7djsQuc9QrlOagD8s=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=Yp+uuRfbuqvz6J2yFx8KRIsTLwb1eBxYmJ8XRC6tXjHbEnaaHYNWvqhGney72QL49LY3wyHZ5jyv6rFmdhmILVf2+BwbW79FuSJwZSg9JO0UXXHBykBWPWwuuBfd2cY7cDm5xHNLhbpRYndnxxZDEeRDuMFbmYfX5hyG5FNKbMo=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=uB6RGujH; arc=none smtp.client-ip=209.85.208.45
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="uB6RGujH"
Received: by mail-ed1-f45.google.com with SMTP id 4fb4d7f45d1cf-693c51a8a19so4398081a12.3
        for <linux-kernel@vger.kernel.org>; Mon, 06 Jul 2026 05:38:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783341531; x=1783946331; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=0R72pD2mExeKC5AJxZ73S5fYO6zCf9Lqx8bTZyttVKQ=;
        b=uB6RGujHOqaoyr1ZQLJR8lNbPuqVYIMxKuNZHXqZjk8NZlCUYDMJUnCAbLcbSQeIa/
         o8ks4Tl4cjn0P+nwbfJtzhN7AQ/5SeNYMeI+BdgiyZoqRbC1h+QpxyPK800bwOASTHdt
         3Uem8zZIdN/vUAyoyz36ZisCSR3bLl9uw3IZB/a5/abNqk6eV5NJuwvKtaZk4EjZ9heY
         ZxRSeg1o9sXDycgx258mz3coZFEDMQ+3xuS698RHR6LYjsOn4+Ikco75SBgKnnF8pxGv
         LDmE6lco517tZYZWL2m0gJfPJur9XNbHTAIZDWSCgYjwZ5TLhkXt3iGPhi+hiJCHvg67
         XDrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783341531; x=1783946331;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=0R72pD2mExeKC5AJxZ73S5fYO6zCf9Lqx8bTZyttVKQ=;
        b=c+1288D2Wt/NF0cFVmEW635TBBfRI6b+Vi5cjtaM/fQBCC3YBJQ0G7smnPpAsMaw96
         yTbxY54lcpkZe4vdQNYm4hGyq0/z5GH662Jz5xCJIG6yMRnvEglP8o+I1NSiLKmtkM3C
         vaNbMc7d/Bktnw8GWLqwahRRUXDGDjOW9Q3sS29gq7Z7y9gCr8RY42nlR3biSq1VZPp6
         BQsQVpZ5+un8d9kqNkstUP9/3bwHN7/0v/0qHdAMwJS6Ve5oKiejdzClqxSdTGBuynsR
         vHPgi9z+bKZ4iz+7TuiGVea6duw6h41i9nnUZfyPLep4CweE5vUm9AMCRAdyqziToHnY
         PUKg==
X-Forwarded-Encrypted: i=1; AHgh+RpU1idrVadTw6VAbLPote6pO32y8cifoio8ZS8BaB9ctodoP+LepUZQ8tR0qK08plXVimA2Xr9lrtpqvqI=@vger.kernel.org
X-Gm-Message-State: AOJu0Yyv2YEIp5uJjiP7+LtWxWcDOKklNSRE+0KjI/MHioTufxqtTzSn
	9Pvbcz2B+lYnUYjbK0z3GD8dKwqlofi8+H47p6rd2FsYIdrBuJ5lbjKxK7YkmdknJ8g=
X-Gm-Gg: AfdE7cmZdAmwgF8bzHsuYZnzxpgJ64AQaRpmZqxZVRrE71CmwqKKb5uvnWHjT9P+s24
	j5di0tfRSgx7JJxWbqjMwPLJ124TZDD1RKQL/m160LGn5CYpqMDei/eiYnXA6OI76CxKd+nvKsl
	M7yYuCynQHaHL0Jjq2CTZddd25WGGO+bVdWpofXys+/E71AYxW2J09BYAKP/MHCUFXIr4lSf23d
	TO6DoG+RnZREa7Cp63idqZ/OSYX/6o4ORa9/K23Od5DmQaG0TrL7MsLtnpcYtwUh+b2zhY1P5tb
	hIuPUVT0ok6cJSevEIEmWrdhcMAgMICLaITEADZwCEOMZhCkt7OMxlOwAA/OXVHQAOkE7uaoRBn
	Jx4joQ794uxlqc+QFRBT0BNWpXI+ZCT23w44ut0lqwlEhzNQR6qkpQyPeMBBjVcvaljexE17ZQn
	ZTUGqyBqkVEYXBj6QLphU7MGi3uA==
X-Received: by 2002:a17:906:3199:b0:c12:8c27:e2de with SMTP id a640c23a62f3a-c15a67c0b70mr18101966b.42.1783341530615;
        Mon, 06 Jul 2026 05:38:50 -0700 (PDT)
Received: from [192.168.0.101] ([109.77.44.220])
        by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69a19d9d1c7sm4068863a12.20.2026.07.06.05.38.49
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 05:38:50 -0700 (PDT)
Message-ID: <bf24e5b9-3407-4e81-a458-f365b89867ed@linaro.org>
Date: Mon, 6 Jul 2026 13:38:49 +0100
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices
 via DT
To: Krzysztof Kozlowski <krzk@kernel.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
 <389ff33a-b319-4f2e-9410-8ae962f2e844@kernel.org>
 <8871f6d6-6102-49bd-9758-faebbd9fa19c@linaro.org>
 <612730a9-8d5a-4c3f-8e04-6a248258e51a@kernel.org>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <612730a9-8d5a-4c3f-8e04-6a248258e51a@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/07/2026 13:36, Krzysztof Kozlowski wrote:
> On 06/07/2026 14:27, Bryan O'Donoghue wrote:
>> On 06/07/2026 13:09, Krzysztof Kozlowski wrote:
>>> On 06/07/2026 09:11, Atanas Filipov wrote:
>>>> From: Bryan O'Donoghue<bryan.odonoghue@linaro.org>
>>>>
>>>> Use devm_of_platform_populate() so that child nodes declared under the
>>>> CAMSS device tree node (e.g. OPE) are automatically instantiated as
>>>> platform devices. This is required now that CAMSS is modelled as a
>>>> simple-bus and ISP blocks such as OPE are described as child nodes.
>>> I do not understand this rationale. How is this required now? Are
>>> existing DTS broken and do not work? Then this needs to be explained.
>> Required is wrong, true. Existing DT is not broken no.
>>
>> Should read something like:
>>
>> "Use devm_of_platform_populate() so that child nodes declared under the
>> CAMSS device tree node (e.g. OPE) are automatically instantiated as
>> platform devices."
> This patch then makes no sense before the binding defines such children.
> 
> If you carry this patch outside of this work, you do not need to keep
> the Nacked-by tag. Only constant ignoring of review here is the reason
> of Nacked-by.
> 
> However if you carry this patch separately, you still need to fix the
> lack of sense of doing this at this point.
> 
> Best regards,
> Krzysztof

No I agree. It only makes sense to propose this patch after adding a DT 
that cares about it.

The ordering here doesn't make sense.

---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 0C9F7417369
	for <linux-kernel@vger.kernel.org>; Mon,  6 Jul 2026 12:42:00 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783341725; cv=none; b=TuZJIOSKj5mCTfWShXbJ0BaG9UDp8Qmbc3UoMlclsYCYpXeOZY8g9CmlxemLz99z6NPDY9ho4xthsdChKOUlnvKW1XDOcHkOwZxR0syCT7lpjszEKs5HRPzISh5Iv1UT1z5BOJuzeyTTazftCRi011dJCQyEMidQhbHUsMMZ9KM=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783341725; c=relaxed/simple;
	bh=5d5qoXwl6X/5EBmgduABc6v7RYTqWqznF2Ylbfa9TqA=;
	h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:
	 Content-Type:Content-Disposition:In-Reply-To; b=GKeTWLzFeiM/pumGq+dauHAaC6Q/wdWGxMFxpwGBvrFy0JVHG7PKmriJs8U08QL3ACDXSRAXSzGPimZJ2v9X9cVMunElh33OmdR36QBcme2SP2LvGGv5LoiVEj9WfgHp3NnsMH8p5W1Nu0mNp2uPV6lc2xxbFGE7alqHNa6OWIM=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=D2GfBjLY; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=NATlTPT2; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="D2GfBjLY";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="NATlTPT2"
Received: from pps.filterd (m0279866.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 666AxCNv238119
	for <linux-kernel@vger.kernel.org>; Mon, 6 Jul 2026 12:42:00 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=qcppdkim1; bh=E7a8FZgAvm2jtvI2nBoVIO8e
	/0jyCPrf9wufDVot4/A=; b=D2GfBjLYdRe1tLMLQF1YWlnizNBaOHEkRx8Eg8HC
	8dqKiG/a6cYKufC4d7/iy2x37ogIE8KIpXQQfO1F2NRU6qKQn4/tBO76n0uSD4Wm
	XUKDZZEOFmxCMuTZT3qej0eBsA14+iBArEWGQelS00rbBW/QIOMaa1EmsSLG1Cxa
	2IhW1DVVHbARbDv8B0iKq5EWnnUvLk4ObT+O+2Ddfa8PaJhwE1eAozGbpxmTJb6Y
	+ss/uWvVSojTX6HZYxRQO/dlqz6hzictxXfreMihG82MUlqoRkf6GHy7ajLfuAVf
	m/6mudTI+I2j7L3uK9a+fr/NMbTnYg00OQsW1NekaM90Ug==
Received: from mail-vk1-f200.google.com (mail-vk1-f200.google.com [209.85.221.200])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f88t88yj0-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-kernel@vger.kernel.org>; Mon, 06 Jul 2026 12:42:00 +0000 (GMT)
Received: by mail-vk1-f200.google.com with SMTP id 71dfb90a1353d-5bdaa7039d7so3996720e0c.1
        for <linux-kernel@vger.kernel.org>; Mon, 06 Jul 2026 05:42:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783341719; x=1783946519; darn=vger.kernel.org;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:from:to:cc:subject
         :date:message-id:reply-to:content-type;
        bh=E7a8FZgAvm2jtvI2nBoVIO8e/0jyCPrf9wufDVot4/A=;
        b=NATlTPT2OBA1sMfmqJiuzPUYyFa4/t+5WX4d4rgJARKf2k1UXi/4nbv2qDEcmrhigw
         3D9HJWLzs/vaugtNy+5jT1cmELppi00oApJPXRfMB4xoBRFIdbQCWgPw/AmRyx0vaf2y
         cfJl4bl4hfmQpZqDbfc0N+UxZx0M0jWnIDSyneNg1OrMKeT4UUZ/3kgGU9+DgrSdsLp8
         rFIaonLjin8NHfxDW3WEx79vFGj+6n1cfoOE56ErDFwvWLx4JIh8KJWMdwfpLPKRfwBv
         V+tntSFCP4aEn0G8GwNDGSTZR7hdQQFnpKAuAt9eT59jfs/NXTgGNRD7aXHD/1voROQR
         ISyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783341719; x=1783946519;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=E7a8FZgAvm2jtvI2nBoVIO8e/0jyCPrf9wufDVot4/A=;
        b=OYxOP/EkcfyKCjLWUe1xRf3gsESSpAo11s9wh37V5icYu7P0TSnLLSbMOKXLVFaQFR
         MbJ+EQgqjGpzOFILvY9X7xoI85gUxjNOsq/t/4KTHKQVi9tdV3SqEqAkIWWUOHS9ji0K
         Y/vrQ+7ATnD4YIhKKjUGaJoIxC1Z1WRt7/Vs5by6h706GslnRdXRxWo23Wr9HByaOqRo
         UyX1UUwGnOKZldYhq95pBQS4xQhke25jMZVJhznD9n9ndUyvfhkVSMlS8Lvi/OrP9QMz
         14CT946ZVv54jUQFMviGwwls6u+mLogODMO8lUMJOTWTOhEfINn43PMfCjMEIU4bX9jV
         ChFA==
X-Forwarded-Encrypted: i=1; AHgh+Rqp28TcdznDP56fy2bH9R1nr+V+nk2Et3VT8UZqsc9g/aJx30RbV3MH/uO/oJG7Ke2HPAKIZ/uj4/rbGIw=@vger.kernel.org
X-Gm-Message-State: AOJu0YwtRXyoNtheILMfSMkhdAJdDINPnluIWKt/RLVpQYyEAHgu0iS9
	xIBcZz9P6tpNy/TjKJJYiehjvAlBR9XZSeWhi6ScisxvjDCVbvJew32GHNlTXPDnyfxqeOO4/Nd
	nfXnqW61i6FUdoiCMzl7Wrb9D6SUjNbcnE1Th8SOlHK8dAnOSwpVANm3K4p/C3lmsgYI=
X-Gm-Gg: AfdE7cm76tz9I4sGxpskovipS3eZXcbbRWLQAmpJZjkoNEgE0/OIArZHwcEO1NTPU25
	Z7wkRaFlhKHlECxWJtZaAwFi6ihhNWJjWTb1Ur+9oOCcN1kERMStfwggw/sM3hDUqXfj52smket
	R8V2GoAn3Wk8hgYncYam1CpMKPo16nJZEFzRTPpiy6i2nbjHFGtkRh2G0cWAtuFhIhHusiq9IGT
	HnR5JbPQZHI2Ny3gj2nXj5ZJ/8BtJhw9+Uj97KjY0XyWHLo/BsnfdztVuRIn5SkQyc2mkBH43JG
	HnHdHlHRZu0NSHWjf6vfXHHNc/JIbKbgQ49bxv2+HO1nhIV7EhcRirEUjWH/Ayi3iPFKINPIFvX
	S6KEXRk0Xo56fCrtgO+blpNLoxi0if4Q4zQxZDodk36T0Zf2K+U6/2C8ymy9Jsao7rSA1r1IDmM
	R5vkCBjAeKcWPjG4Zbv9fzZDoV
X-Received: by 2002:a05:6122:1809:b0:5bc:58d:ce4 with SMTP id 71dfb90a1353d-5be8952c6d3mr190094e0c.0.1783341719196;
        Mon, 06 Jul 2026 05:41:59 -0700 (PDT)
X-Received: by 2002:a05:6122:1809:b0:5bc:58d:ce4 with SMTP id 71dfb90a1353d-5be8952c6d3mr190070e0c.0.1783341718729;
        Mon, 06 Jul 2026 05:41:58 -0700 (PDT)
Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed13bb685sm2849659e87.46.2026.07.06.05.41.57
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Mon, 06 Jul 2026 05:41:57 -0700 (PDT)
Date: Mon, 6 Jul 2026 15:41:55 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
Cc: linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
Subject: Re: [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices
 via DT
Message-ID: <7agyvdlmpnvvjnhigs2plukv26johazvxw23qg62v6eroavkih@dz45xwot36mx>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA2MDEyOSBTYWx0ZWRfX5+l+EpK/h4Vk
 d9jjDfju8/SxRJS5lu+ZY4XIWa3jvodCNRcGzQSivAx+lpGg3gh6nvMTqlLCGUlKwZmW9Gycwvg
 bzIpzc+xnACX1gekalCekQrN9uW22xE=
X-Proofpoint-GUID: CnpV25qFkUuJE0NhI6GgSBx7XKHfP6sg
X-Authority-Analysis: v=2.4 cv=C6zZDwP+ c=1 sm=1 tr=0 ts=6a4ba298 cx=c_pps
 a=wuOIiItHwq1biOnFUQQHKA==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=KKAkSRfTAAAA:8
 a=EUspDBNiAAAA:8 a=jnYD6DY7q27B8yBxuWgA:9 a=CjuIK1q_8ugA:10
 a=XD7yVLdPMpWraOa8Un9W:22 a=cvBusfyB2V15izCimMoJ:22
X-Proofpoint-ORIG-GUID: CnpV25qFkUuJE0NhI6GgSBx7XKHfP6sg
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA2MDEyOSBTYWx0ZWRfX3Bzegzikqn3v
 y8coQLVIwTSD0S+iCK173bkA60QEt9Z4sTG+3jvKCgKTSOgk/wi7iu/8dvP5GHNF8l4rxIzeivu
 RpKsiTSog1AjrAEhKcsQSuxrPjSgm7XegyQwe620zxmWa3s8zBw9EeOrLHjTy0yFEfjWG6Ksljb
 zQ4LCox5AaDlk0XvXz1/XogqLhIAFiAr1IXy24wpQPe5cDvTz0xa0X/FviV/cTVpgmXq6H647aQ
 Ay6jUzKmbgK0hO/ot0tlxnv+77HOMFv2ORL7Ki0+uSXxpB63w6Te6ATFCrTbFY7osJ5BAHqiS6L
 9wb0QzeVtImQBUHwzH3n7Ayczl/yqXcCOScUm83adIzcUxLG6Ke9O4Kp/RT7gpwhns42TBKRuTY
 s0mTPITf5RPURX9t4d4NqTEZidk6E64NoEBMz4/eSj6rMkGZ8gchHaGWHWgb8BJrdtA0fzQkcH2
 zbIwZEmHSJyLKKkM6pQ==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-06_01,2026-07-06_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 impostorscore=0 phishscore=0 clxscore=1015 spamscore=0 adultscore=0
 bulkscore=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000
 definitions=main-2607060129

On Mon, Jul 06, 2026 at 10:11:09AM +0300, Atanas Filipov wrote:
> From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> 
> Use devm_of_platform_populate() so that child nodes declared under the
> CAMSS device tree node (e.g. OPE) are automatically instantiated as
> platform devices. This is required now that CAMSS is modelled as a
> simple-bus and ISP blocks such as OPE are described as child nodes.
> 
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> Reviewed-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> ---
>  drivers/media/platform/qcom/camss/camss.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
> index 2123f6388e3d..95e655a8b6aa 100644
> --- a/drivers/media/platform/qcom/camss/camss.c
> +++ b/drivers/media/platform/qcom/camss/camss.c
> @@ -16,6 +16,7 @@
>  #include <linux/of.h>
>  #include <linux/of_device.h>
>  #include <linux/of_graph.h>
> +#include <linux/of_platform.h>
>  #include <linux/pm_runtime.h>
>  #include <linux/pm_domain.h>
>  #include <linux/slab.h>
> @@ -5362,6 +5363,8 @@ static int camss_probe(struct platform_device *pdev)
>  	if (!camss)
>  		return -ENOMEM;
>  
> +	devm_of_platform_populate(dev);

Don't ignore the error code. Also, are the children ready to be probed
at this point? Usually, it should happen _After_ the camss is being
fully set up.

> +
>  	camss->res = of_device_get_match_data(dev);
>  
>  	atomic_set(&camss->ref_count, 0);
> -- 
> 2.34.1
> 

-- 
With best wishes
Dmitry

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 907B84BCAA6
	for <linux-kernel@vger.kernel.org>; Mon,  6 Jul 2026 12:45:14 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783341918; cv=none; b=Ys6jf1xAunpbn+x93Oom5phwAPBGeBAXGf0phMN6z/QsqJ0HSBzjuWfkAibuMT07gKMAdIDBIKwpik1SQbkK5xhwbqkamiv9UNeOEg//TCn0Aj7FOxE1RDPAlBfsZKsDQX0R1gd0T78ra7W2rdU/SFrMV/WaJgnBrlJYwNlmNQU=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783341918; c=relaxed/simple;
	bh=0JPIOM3bKv+VlgOT5jfNWR3yS4XhT3HggZFHDmH/dys=;
	h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:
	 Content-Type:Content-Disposition:In-Reply-To; b=kVJHqWvPP22OmSTDpNtFz3wJ0wICUY1pkgqt2pLZx/Ehn7lLz6rBXJO5TqJ6VLgYWeLz0/NkimUWdOkDo5oLa9gCysirgjjP+ID35A3iIiyOxRmt0BSxcoceTLBdCfqAVn0sVeDc/pd6o4IG2LHTD9yQsG0fq2Op5WqzvwMbpso=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=DRz+/f4d; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=SAKQLwWp; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="DRz+/f4d";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="SAKQLwWp"
Received: from pps.filterd (m0279864.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 666AxHRv174777
	for <linux-kernel@vger.kernel.org>; Mon, 6 Jul 2026 12:45:11 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=qcppdkim1; bh=at2wG9fgDCzLJho8qAuNMi5f
	Pc/Fr7X6A05iUjg+Iuw=; b=DRz+/f4dZLxPlpoBorbK7Nb3wRrQ6wdJT7KcR9a1
	dkz9h+YfFn6qn3SxncWX1EG9PlHlDG4LP6cBk6Ofp8IarWrsPGvDlXFnwNFu+jc2
	HQrKHsH3coewPY0vc9ea7kiGhHhxouemHq3z0kgIVz6T+ZW2Tl9oIzDzILEyoJrl
	Uof8yqWrm6vla9q07m/xB6hywIXX8U3z07uwOVTUARrg9Fyw6GI25LQHK6EyaESy
	r/1d7UK6pU5LVGrksug1Yc8AeVvFm6HSuZKs9LDYnPi+mpoRtJ46lw62FTBW1hOV
	BFbpYNWtqZBXVrM1RSARWbYjwubcAtSwk3+Q7laHiAL1WA==
Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f87rxs96w-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-kernel@vger.kernel.org>; Mon, 06 Jul 2026 12:45:10 +0000 (GMT)
Received: by mail-vk1-f199.google.com with SMTP id 71dfb90a1353d-5bbecd250b7so736422e0c.3
        for <linux-kernel@vger.kernel.org>; Mon, 06 Jul 2026 05:45:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783341910; x=1783946710; darn=vger.kernel.org;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:from:to:cc:subject
         :date:message-id:reply-to:content-type;
        bh=at2wG9fgDCzLJho8qAuNMi5fPc/Fr7X6A05iUjg+Iuw=;
        b=SAKQLwWp2DyhygaK3PygNvCaFsm7vFnIvlqhKPu4jxQ01Du+/khADiQ7HCWQqKbX46
         wq/VIVmrAbhLzBeWGN2Tva7rlW2t8Jxkq3Zg5b8FC5/IPrfCysx2Wgm/NxViMqYAjepx
         ir3pR/Ac1yQDcEPvOXWGqS/JqBFSs4oPSmZfnaKm0X/T8dSHJNr23krEZ+GQtUHUeXk+
         nC+3sfpEuHKT0KGyqSmerCJqJwwz5CXphN1iVwwqoAoVcLRo+LJ4GgkX+6pF7iIFIE8W
         xgiLUA5hvsyuTe0pXQtHMaJas27aR+qts6RTYkHiAgZUflsfh8dcc1IxBAdUHvogROJ5
         xbpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783341910; x=1783946710;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=at2wG9fgDCzLJho8qAuNMi5fPc/Fr7X6A05iUjg+Iuw=;
        b=KQ3pG9YTljI0rwZwpC5R7aPhfP11IAf9A+9FqkZFLUWFZ47Yfg6Lc2SevabQPr3ZGy
         dQVuKyWpFWrBx6WgkW6TdG5uD+JXH0rHtFVfytxZTWPBYT1Nt9YYmc4x/lMIuL3ti4PQ
         CtabHKzDtoNVRLboauThmSSrf0q7zxOrYpoAJ4vHI/muA1lcziPlUBt9q4xVf8G2NYKK
         zAl3cyqcg2BHYPbB6Gt7qmgn2s4rTPzElwkOOYj+vsTZfSP6M0U8Jbfm1A2YWYQz63AM
         qjgCaas/kuA2i3gSZZDEPsyrHoEmzhXK8KUnogOiOjJvIoaE8RnnTyocTIvyIgNdeCoR
         6zbQ==
X-Forwarded-Encrypted: i=1; AHgh+Rr7kKw5P/vBe+qkoe0BYRQgFh+r+dbcmjHLQ7gUr1pACe1zxMQlMlOfQ4ku4242TVFvkk3ocjAif18UY04=@vger.kernel.org
X-Gm-Message-State: AOJu0YwKzxhzlOq0tapIyBS8SNJ0GedEydDDceL5C6lE0g8g7KdFKbUJ
	FSdFQSdG7n5Gx/w9k+uV/R4kvhXYb53RHD1ys8ynX2W68Bl7gLA92BL5drcKheKP+Lg9MmTMg8k
	pOQ3ap1huT7UhNZBYTgU3NIVYN8xNzZEiR6ROTVPgorf1j3qo3tjhCjEetkcfmVIW7f0=
X-Gm-Gg: AfdE7cnXkCKsqZ8jfOTqbb8jjhLve4ntLnzysSHupZpg87H/Zecm2eU9m2PtMmtqAtT
	rpqmyEiSSA7KBTHWpq48kt8K8RrNY3wHw0XUHBTyZdZVvKmYCpeCvTg28u/lA75/PHa1A3sDpCT
	eYZ+e0T7298LwgXMUSB6kRkzg4hxyTUFAQRFfG3lPrY3khVs15yP3DOoMtY9+PUJLw6QNie1oVC
	N1Jcn98jTyfMpUlX3L5tfLfHD718hDmdPmjnz7X4Alvfrl9E3ADy9nBeevk7MpKkw8xbOBoYSSz
	byv405G8gZvsBOxTRxCr+6vo80TdAzoJZbLpWcgOBOWnafdpv/vVfkcjFZgPAfdJOhsobtxGOYd
	DTldJFnJYENaC7IdwIpeBGv+vXUfWbcqY//sCPBWadTIpdfyr2bP3gb9KcFQoceFTyM5pVX380c
	zTxLfmuNTzoVWn0vEiaEz0Ykuv
X-Received: by 2002:a05:6122:16a8:b0:5bd:cb34:1b70 with SMTP id 71dfb90a1353d-5be89740b71mr170283e0c.1.1783341909865;
        Mon, 06 Jul 2026 05:45:09 -0700 (PDT)
X-Received: by 2002:a05:6122:16a8:b0:5bd:cb34:1b70 with SMTP id 71dfb90a1353d-5be89740b71mr170272e0c.1.1783341909306;
        Mon, 06 Jul 2026 05:45:09 -0700 (PDT)
Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed13bbbbbsm2839229e87.43.2026.07.06.05.45.07
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Mon, 06 Jul 2026 05:45:08 -0700 (PDT)
Date: Mon, 6 Jul 2026 15:45:06 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
Cc: linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
Subject: Re: [PATCH v4 4/5] arm64: dts: qcom: sm8250: Add JPEG encoder node
Message-ID: <h2fskxtlb6wusoz7o5pw34ii5n2il4jltcrogmt36676ioq5nd@klwft4s3mzgk>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-5-atanas.filipov@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260706071113.383215-5-atanas.filipov@oss.qualcomm.com>
X-Proofpoint-ORIG-GUID: E0t5ZSu58fYLwei0RcnDNW4pbPxLLC35
X-Authority-Analysis: v=2.4 cv=Hv1G3UTS c=1 sm=1 tr=0 ts=6a4ba356 cx=c_pps
 a=+D9SDfe9YZWTjADjLiQY5g==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8
 a=kM9LC2GvXd1nFKSqAPcA:9 a=CjuIK1q_8ugA:10 a=vmgOmaN-Xu0dpDh8OwbV:22
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA2MDEyOSBTYWx0ZWRfX/pwBvh5nDvqb
 kqBj3VPe5Zy3xB5HYdAk3G4O5D/SuecrvGokRr9+j797z3xUeTVdESY665ZvD2688iYWzgrFbck
 vKD2jNemPLMOoKkJglAklCl/H42rw5o=
X-Proofpoint-GUID: E0t5ZSu58fYLwei0RcnDNW4pbPxLLC35
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA2MDEyOSBTYWx0ZWRfXwQGXsYPe3bZs
 TXqVHB61WGriF6yVLx950J6P4+VsWj1dqBH1wzElyidaSC3xfE0m/IDdboPdk+nSAQws99lEz3M
 MJYmcPoGjzvTvGWYd2KSh0j/VTrH1TlZo/5tvP9Y5ajalyAq2HXRIj5wJRZxdgHTd29RKLlnKVH
 spR0R56nmFJmqtkQIdcCEmjt1DlhylB5BPa1DjPMb/Rm/zdf829y5avskr5ahPoS31zuMXQ5z1E
 WBa9XVmBsRtBIIawrdktr5IQ3pL4rz2FC0+Y2ELe1K/qV8LBYNEqO9MB5YVebPWckNe+/p6d09u
 XUs62EAXUA/j3dKLF/O3+qjOInyRJWVRLwUF9k/nRQqBSx401fcnV2W18j3ceo4whUaK839NoR6
 7s4UNpoQPOL09WO4uT5V9daBT8pqdwTVr55wmPiHfKrpU98TXqgQ7zFO+c93rqhrU1JSq+gWMg5
 +8Le4FVLfems+FS5qXw==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-06_01,2026-07-06_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 impostorscore=0 suspectscore=0 malwarescore=0 adultscore=0 priorityscore=1501
 spamscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607060129

On Mon, Jul 06, 2026 at 10:11:12AM +0300, Atanas Filipov wrote:
> Add the JPEG encoder hardware node to the SM8250 device tree so the
> qcom-jpeg V4L2 encoder driver can bind and operate on this platform.
> 
> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> ---
>  arch/arm64/boot/dts/qcom/sm8250.dtsi | 81 ++++++++++++++++++++++++++++
>  1 file changed, 81 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> index 7076720413ab..a089b706f60c 100644
> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> @@ -12,6 +12,7 @@
>  #include <dt-bindings/dma/qcom-gpi.h>
>  #include <dt-bindings/gpio/gpio.h>
>  #include <dt-bindings/interconnect/qcom,osm-l3.h>
> +#include <dt-bindings/interconnect/qcom,icc.h>
>  #include <dt-bindings/interconnect/qcom,sm8250.h>
>  #include <dt-bindings/mailbox/qcom-ipcc.h>
>  #include <dt-bindings/phy/phy-qcom-qmp.h>
> @@ -4471,6 +4472,10 @@ cci1_i2c1: i2c-bus@1 {
>  
>  		camss: camss@ac6a000 {
>  			compatible = "qcom,sm8250-camss";
> +			#address-cells = <2>;
> +			#size-cells = <2>;
> +			ranges;
> +
>  			status = "disabled";
>  
>  			reg = <0 0x0ac6a000 0 0x2000>,
> @@ -4649,6 +4654,82 @@ port@5 {
>  					reg = <5>;
>  				};
>  			};
> +
> +			jpeg-encoder@ac53000 {
> +				compatible = "qcom,sm8250-jenc";
> +
> +				reg = <0 0x0ac53000 0 0x1000>;

0x0 instead of just 0

> +
> +				interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
> +
> +				clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
> +					 <&gcc GCC_CAMERA_SF_AXI_CLK>,
> +					 <&camcc CAM_CC_CORE_AHB_CLK>,
> +					 <&camcc CAM_CC_CPAS_AHB_CLK>,
> +					 <&camcc CAM_CC_CAMNOC_AXI_CLK>,
> +					 <&camcc CAM_CC_JPEG_CLK>;
> +
> +				clock-names = "hf_axi",
> +					      "sf_axi",
> +					      "core_ahb",
> +					      "cpas_ahb",
> +					      "cnoc_axi",
> +					      "jpeg";

What are the clock _inputs_ on the JPEG core side?

> +
> +				interconnects = <&gem_noc MASTER_AMPSS_M0
> +						 QCOM_ICC_TAG_ACTIVE_ONLY

Put tags on the previous line (even if it is longer than 80 chars).

> +						 &config_noc SLAVE_CAMERA_CFG
> +						 QCOM_ICC_TAG_ACTIVE_ONLY>,
> +						<&mmss_noc MASTER_CAMNOC_HF
> +						 QCOM_ICC_TAG_ALWAYS
> +						 &mc_virt SLAVE_EBI_CH0
> +						 QCOM_ICC_TAG_ALWAYS>,
> +						<&mmss_noc MASTER_CAMNOC_SF
> +						 QCOM_ICC_TAG_ALWAYS
> +						 &mc_virt SLAVE_EBI_CH0
> +						 QCOM_ICC_TAG_ALWAYS>;
> +				interconnect-names = "cpu-cfg",
> +						     "hf-mnoc",
> +						     "sf-mnoc";
> +
> +				iommus = <&apps_smmu 0x2040 0x400>;
> +
> +				operating-points-v2 = <&jpeg_opp_table>;
> +
> +				jpeg_opp_table: opp-table {
> +					compatible = "operating-points-v2";
> +
> +					opp-100000000 {
> +						opp-hz = /bits/ 64 <400000000>,
> +							 /bits/ 64 <100000000>;
> +						required-opps = <&rpmhpd_opp_min_svs>;

Inside the DT example i saw bandwidth votes. Why are they gone from the
DT?

> +					};
> +
> +					opp-200000000 {
> +						opp-hz = /bits/ 64 <400000000>,
> +							 /bits/ 64 <200000000>;
> +						required-opps = <&rpmhpd_opp_low_svs>;
> +					};
> +
> +					opp-400000000 {
> +						opp-hz = /bits/ 64 <400000000>,
> +							 /bits/ 64 <400000000>;
> +						required-opps = <&rpmhpd_opp_svs>;
> +					};
> +
> +					opp-480000000 {
> +						opp-hz = /bits/ 64 <400000000>,
> +							 /bits/ 64 <480000000>;
> +						required-opps = <&rpmhpd_opp_svs_l1>;
> +					};
> +
> +					opp-600000000 {
> +						opp-hz = /bits/ 64 <400000000>,
> +							 /bits/ 64 <600000000>;
> +						required-opps = <&rpmhpd_opp_nom>;
> +					};
> +				};
> +			};
>  		};
>  
>  		camcc: clock-controller@ad00000 {
> -- 
> 2.34.1
> 

-- 
With best wishes
Dmitry

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id EECCB420881
	for <linux-media@vger.kernel.org>; Mon,  6 Jul 2026 13:02:24 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.53
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783342946; cv=none; b=IwG/hGNNC93MTnaNbdn52Qi8Yx2/XIo7kPfsfekreAJ9Rq1m0Mbi4d/hTyOWonaM+dGZbQrTLNY65GhJEG0eym+utQm2H+4QOQ49Z0jV/enggvhCrqTSuh5R0CWnyQwBAIxFKebp9NhtBkDNTvT/QrI2gtWP12VZbt3SWtQCb8s=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783342946; c=relaxed/simple;
	bh=iVB4Ya9lmgUdlW6rTmHOExjGXSicdFmtjWrsWgh55Zo=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=GbbKUBPEqGLFRZUtVUHqfJj9HLdYdWRJ/rrEHE1Bzi6sHjRj/HMsUErMImthC3tFPXSK7sEokkPWG2fKO9znhcQ/p+xf60bFHcAdJmJbSVVT5iGr9P8MIcuTYJ6qqliwyl0SkzUqRv5b3+IYAOukBnYkHTFlXt0x4j7udGeW6KM=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=y9ZrAHEM; arc=none smtp.client-ip=209.85.167.53
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="y9ZrAHEM"
Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-5aeb40ebefbso778705e87.0
        for <linux-media@vger.kernel.org>; Mon, 06 Jul 2026 06:02:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783342943; x=1783947743; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to:content-type;
        bh=7DO4KKs78C2tCMoRZ2/9ZKdQZwoZA/FI3KbAI5N32Bc=;
        b=y9ZrAHEMtpmlD3D0oPb2pu/hF/rQBau95y1dUmCgQFvvYRwanGZZTvWQ2W6I+l2ZLR
         SIxSUQb2m4UEZxpyO7L9BLb7xrDj0THZKHlkGXnUEI25N1ZmFhUJ0Kl0aKlEMw5RgBNy
         uhZ8sJhgAzHz4d6aNSAyNGGtvyzoQ4KyHqEUGVF7eE8Dein5O0Mfp3lnBpXdNbEKlWiw
         Y/NsfzBTAMl/sj3KYB0Uzeg3z1DIIBKbLUtz7GO72ozeElo03TKBBsxgX/cX8vBLCoBm
         8EVeCFC/GyCM8x9wfqSR28rB4Y6wLPSoEz3ulNrepO9Tyl3gRHLja10iobLgpuxbHt1b
         m+Uw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783342943; x=1783947743;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=7DO4KKs78C2tCMoRZ2/9ZKdQZwoZA/FI3KbAI5N32Bc=;
        b=nreN9l+xl3g+OR93hwWB93ugofjBhNUyOpif5os063sIlPH5sW7Br9g8S9ZrYMGZYS
         o7fJy1rBHtyPIw+6Ouda6bgQDdMv0qNNHK3O1U/6TuITKQXZDU0XGZeFYd8DC2IUZmrJ
         WeoxpmXEdifLBmxDwuuVBx05clR5Lr+JbWBypTXlwNmBW/tDldP1SIg1iBe2DdtvVO+K
         Euf2EPhmNEv7KG76iCTiH0Ej37r0e+BfRUj3nNNqU9Cr0s7hgWxlhu7bau9pclRyPsNk
         +5zwD3omsqoxmigctuVhenKcFYKjRM6+4Y3QX2pO2+HMGQHt6Jnbi/xrtUo0vBG0srqz
         UpTw==
X-Forwarded-Encrypted: i=1; AHgh+Roy4qRh0wqWG4WDT17TT5Xuj/TzeMSge7j24ukrtVhKN+xY7o4N5+m7RucDQZoW04T/dElDtjKXz7ynWw==@vger.kernel.org
X-Gm-Message-State: AOJu0YxKqRfSMFSUvmZLGtJdi3pd5EkgPtENscv2R/oPbzQwIwGp/NhO
	qyngl18FEp0HCIZ7Y5BvIz6+anWcdOyYbc6O1P1+sP1QH/vde7XUaKp18PLEeiZppOA=
X-Gm-Gg: AfdE7ckXY5+DWzEJu7tW2WrRiNvkXchUi3pakXWrXHpahAs59KKQ6Hfs/SiDw/o+yvV
	VzkJr6dhbY2PT/0ambcSiss1W9FdEDGFRPRacqXSzNI5leze43KgdaptprmeVNOno03WQOYIbda
	gVUm7QwuNNfzRt8EbmDo4vywMlQBm4aX7aZZucYeBVIcWgtY0fUVLloigcy6i5uzaOc8+89KDJK
	PpMWO10CLhNNp/0rJ0ySnH208gKA0gWdDFjnyxxY9I45Unh0oFgvgBX2ZfiXDxrOPL6YEjGAIsz
	2h1cEUm/JFwmIhRtP6nRdhUUyY5jYU8HnVlzdWruHV/SyWTo0otuNfylTBLK3e8Uj5RosPOi6z2
	PeSbGdxGbDuVO5b0yAnBqzegLLXERgT8dcKtLwT5LmcV3RpaJmSSA3NEtTm6GbYIqf/ZmheXJ0z
	zEhaHrbnamblaYaEaFIcaVc/byB2WPmpNEMPCKxBqhXmD57kpOtKIqgf+FPd0fd/CH3Cw=
X-Received: by 2002:a05:6512:3b20:b0:5ae:bfab:19c3 with SMTP id 2adb3069b0e04-5aed4541422mr1327878e87.2.1783342943056;
        Mon, 06 Jul 2026 06:02:23 -0700 (PDT)
Received: from [192.168.1.100] (91-159-24-186.elisa-laajakaista.fi. [91.159.24.186])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed13bb3aasm2833601e87.53.2026.07.06.06.02.22
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 06:02:22 -0700 (PDT)
Message-ID: <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
Date: Mon, 6 Jul 2026 16:02:21 +0300
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
In-Reply-To: <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 7/6/26 15:11, Bryan O'Donoghue wrote:
> On 06/07/2026 13:00, Vladimir Zapolskiy wrote:
>>> There is no "master" device in this block of devices - save perhaps for
>>> the CSID mux / wrappers on some of these parts.
>>>
>>> We have shared resources like camera noc, system noc and external clocks.
>>>
>>> Please include power-domains and interconnects.
>>>
>>
>> Why? The common power domain and interconnects have already been
>> described as resources of the parent CAMSS device, there is no need
>> to duplicate descriptions in every child device tree node of CAMSS.
> 
> CSID, IFE etc are not parents of the JPEG encoder.
> 
> The idea is to make all of these peers, eventually. Not particular block
> owns the TITAN_TOP_GDSC - the entire CAMSS block is a collapsible block.
> 

The statement provides the same information as before, e.g. it's found here:

https://lore.kernel.org/linux-media/fbc018f5-c025-4747-85f2-53b45b0f0496@nxsw.ie/

     There's no functional linkage between CAMSS/IFE and JPEG - they are
     peers within the CAMSS power-island.

Thus "the CAMSS power-island" exists, and it got its hardware description
as the CAMSS top device tree node, and TITAN_TOP_GDSC power domain is
a natural resource of all devices on "CAMSS power-island", including the
ones got their description inline CAMSS device tree node or children nodes.

There is a difference between 1 point of resource description and N points
of resource descriptions, the latter one is more complex and error prone,
therefore I belive it shall be disregarded in favour of the former option.

-- 
Best wishes,
Vladimir

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 F20813DDB11
	for <linux-kernel@vger.kernel.org>; Mon,  6 Jul 2026 13:11:18 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783343481; cv=none; b=AskREtNW8vPnGFwGaxf+3Sd6ILbs9tNRRxpkRycUw5yQ02sz3MYUCM6Nt/TOuVER43SehAmdV5qqgRMmW0R0MsngLPzpx9l/DVJu4Qd/5fZr+HehhdL16W6MhTqkgkuAySXQGfZNCzeLNLUSk6zAnF5MijMEASE+o4L8aCw+xNs=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783343481; c=relaxed/simple;
	bh=Jzjlbu26cJSPnFR74xBMg4xl5I0VMwG/k88kE50vD1Y=;
	h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:
	 Content-Type:Content-Disposition:In-Reply-To; b=mpRtQkWXV06cCHwc5eUcMSB92RtoMIsyu8IJN6k+/hG44Ru8lbuW2Mng91UfoFu/KSA+rPtnEPKpGPGt8YzbGxVtgYJNLsP6+VFBa+I3PSV9dxDBYOv3Zshnly7LCRv31a9RdiRZ31WCM51E+kBABvQk8yefHBqbYzCawqytKh8=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=iDmiKLZK; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LnLIJDIW; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="iDmiKLZK";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LnLIJDIW"
Received: from pps.filterd (m0279864.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 666AxHSC174778
	for <linux-kernel@vger.kernel.org>; Mon, 6 Jul 2026 13:11:18 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=qcppdkim1; bh=j21uOnLF7TkiT/E4hqJKxP79
	sEoMoJywprTScPsnTTM=; b=iDmiKLZKJ3WCO5eLwx/Q11x+qyFvqr1HbiP+fki7
	zWiAHM7nYPw33XHMqY7B2hPVwzpKV6CDfbIl6L26+A52lUiK0WHsGYiqmBn0CJwo
	kwzL+S+/plPUI0hwPrxQobuayxikF7CvuYswiziQI09m/UH9s7++atAqdOa58ZfL
	u+9RSGhkC35A2N2yhPJRXl49mhhl1Co5i6a56RoIpk01F4LrD8yn0eC+2E10PZim
	6FIXtAVrBgXLFUX6Yi+SSxEVanWbjGg/z+h02ezq3sbBULGdT0kYpKsNQZlu8TSf
	ZjyHrO0Lip1X5+FrKiDBa93JkuIDEGaD6J6ldmvaHrRfaQ==
Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f87rxsd3e-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-kernel@vger.kernel.org>; Mon, 06 Jul 2026 13:11:18 +0000 (GMT)
Received: by mail-vk1-f199.google.com with SMTP id 71dfb90a1353d-5a1912d5c85so3867296e0c.0
        for <linux-kernel@vger.kernel.org>; Mon, 06 Jul 2026 06:11:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783343477; x=1783948277; darn=vger.kernel.org;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:from:to:cc:subject
         :date:message-id:reply-to:content-type;
        bh=j21uOnLF7TkiT/E4hqJKxP79sEoMoJywprTScPsnTTM=;
        b=LnLIJDIWtzdNlVGE5XcugliPIBSPgM5KQnjlq3oC5e9x4sTDoEXosBrc7QfNkquIKK
         Kwc1M6r7VxtdivMvobEO4oQEQn7ZY+Wu2sKCH4Jc3My1FGLYOpuxGIOELmMMdzYjjAtT
         waU4MDpX6lTfZgoGrx201jw4qMvTw2UcIagvIwJm6iTttUqMSq8T6W2f3YdGmlRA0OZr
         IQRMuohKPXMKRkJpLq8i3K/hAr2aUwUVtWBr0jZ0RudjSNkQl0NURyMNY0aqF93A3R44
         42/ZwaPtQZXiLTPVNsRmxtJ18fxcOiGE5LVMidmpTUdoP+n0ft1pcpEsVaUokisVedKh
         fNZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783343477; x=1783948277;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=j21uOnLF7TkiT/E4hqJKxP79sEoMoJywprTScPsnTTM=;
        b=ifdd7Zm3Hx17bR8vkjMEgtwp29fUh4pRpP3n6PwgVPRbRQpamfK0FhclC9pbR3Mq/c
         z4TluVpEr3SsSeiTuAbAbpJ8AFlLdThkTN7dI/7D79F7RWM8VK7z/ShPf+YT8RtPjC0x
         Cx/no2L+KaH440UCBmVp2LuIsGResy2teGypOablbXh4HXt9Lo5wxl9c3Sd8nWD3dmh2
         bpzLrW9g9fhYVUPbgY6uLcN7JowLQqGSvzfhWJVLAPrHC36Nn+bD+2MqajZxmVdjZBQt
         H/BgUuB9eXjZKlvwWsj/Nsr+CLGJEQlaQhAF5fD82KUlkGKxmUfARrDsKlwuRAHK4Lf0
         cf4A==
X-Forwarded-Encrypted: i=1; AHgh+RrVFI3jbe8Dhga53ELxr2+sbhAsVy2d9Cv0ijXrLzGES+Z9MrbAoV2dZmQTGWFp28v16VSKQl9BoIZqrsk=@vger.kernel.org
X-Gm-Message-State: AOJu0Ywp1bkFR9ZmEmQ/zcJyHduWTZqtZPcM+cVUpdCNt4Rf3f8xj1Gf
	3haa4KbFNtWovOnn/hnbvwtmRSkupzhtS440rR3kM0bkW4sAKTd6z8GtmbP4IruFOSWtP1rZZsM
	ZxiG74yFR++fidfAV7CHg7LffdUv2Q0BWquuZMojq+eICTWfSgve8Uzvu2QQA7qdUW3E=
X-Gm-Gg: AfdE7cnKPADVP/K/ApLP2EGP4Y4fHenL5boczYlySWKk1O0x2kYW4v9i7YAtoGoQ0vN
	3HVQ7DGYxNq/cFmLzIPPLY7ehBFuF05K5RlLHTlYbEzb7Wyo/fCkELKx1hSa3lgv3izZXWUPVim
	CwV2w4SjdQPCzoSxBqYuxINbdQXSgFsfXIrYN82fFzujR1o9qP0Vc0CVnnsCnZ45NgHhPH2f3gO
	hyUhtLXAtU/0/S2Sat52d+fm6VW8NZwwZmgSEw8ZJzl1+s8Jicv4ANNL2xNYbA3pXw9PVAACwQY
	si2/rHyE0hw1bZtlyBiWhQY1oYm4Ycsg8MCJM3yTJnNh+h0i8nv+DwOUn1gwsSGc4edxrcYkyvr
	hFJ3onub+YSYqg0ynb3GuQ8/04qyw4w85F52OuB/64wuDznQ7o1fwxCRPsfIFf19a+zRRFlhjHv
	RaMxs4fIuu/+JHsf3ytv7h+k9q
X-Received: by 2002:a05:6122:1d8d:b0:5a5:4166:67c5 with SMTP id 71dfb90a1353d-5be8974bfb7mr242322e0c.3.1783343476997;
        Mon, 06 Jul 2026 06:11:16 -0700 (PDT)
X-Received: by 2002:a05:6122:1d8d:b0:5a5:4166:67c5 with SMTP id 71dfb90a1353d-5be8974bfb7mr242272e0c.3.1783343476408;
        Mon, 06 Jul 2026 06:11:16 -0700 (PDT)
Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed1377052sm2864610e87.21.2026.07.06.06.11.14
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Mon, 06 Jul 2026 06:11:15 -0700 (PDT)
Date: Mon, 6 Jul 2026 16:11:13 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
Cc: linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
Message-ID: <gri2pdgawm2ymbmebzzxfel5kx5nmyqzrdg6oikfhv5bgt7xem@uld56b6csqhi>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
X-Proofpoint-ORIG-GUID: sOKW35HrEgW_4q6s5XVjb3AFEpwivOz2
X-Authority-Analysis: v=2.4 cv=Hv1G3UTS c=1 sm=1 tr=0 ts=6a4ba976 cx=c_pps
 a=+D9SDfe9YZWTjADjLiQY5g==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=SSmOFEACAAAA:8
 a=nmMTCcMeLSeVR9BiHlsA:9 a=CjuIK1q_8ugA:10 a=vmgOmaN-Xu0dpDh8OwbV:22
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA2MDEzNCBTYWx0ZWRfX4N4wzItJwf+6
 LgfSPhjCVWVxAROOROfg7Df+pUz31USB+ndqf4zFoFEmKJniSdbxW8xmQZ08tFZpjzmjxnjEH0o
 jxalY6qgigFevM1+6ParKvXFL/huKaM=
X-Proofpoint-GUID: sOKW35HrEgW_4q6s5XVjb3AFEpwivOz2
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA2MDEzNCBTYWx0ZWRfX9dVL5KcQ+dFv
 u5gxsM0z2QbW9gL6MvvwQzjAb0F22oSLJSlkXJzV5JXvAXqRqJ6W9ywMkpMjFQ5hAE/85htFbFF
 kiUfCXxh4xq351+UoSOk2FntrR+JZS3atG8ibiygWMvTqfyATIjArHTZa8NgKtWa/q4HOB1QH2D
 ZsTU0J2Mee2O04wNwt5R4IVN6egIcpJ/APmo/Ce5HSGJC+DY9eduoXeYLbvNq5GNzd6wU2QMuyX
 nw/r1k3v/ztBe8g4SNfHUO/p32HsCSBfsdYzryBWKUfikx0bsI3tTNCp9CeIZsEua5z6BXL6fuz
 bP6Su+bnmyDiqLdGffIFrchC30ntIBTz21XjTU9VKrE6V4SA7UAI471e8WOw+NJYQiZVXO5Oc/P
 XEZdCuONfcLtvhZWtarZgjVjTrwLjmcW4W1r7RP/ZQLhnD543XrT0lIXTA148qThDVtjk6Aoq7H
 1RTrLdFgS6vmtpnVQsg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-06_01,2026-07-06_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 impostorscore=0 suspectscore=0 malwarescore=0 adultscore=0 priorityscore=1501
 spamscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607060134

On Mon, Jul 06, 2026 at 10:11:13AM +0300, Atanas Filipov wrote:
> Add a Qualcomm JPEG encoder driver implemented on top of the
> V4L2 mem2mem framework.
> 
> The driver wires vb2 queue handling, format negotiation, JPEG header
> handling, interrupt-driven job completion, and runtime PM/clock/ICC
> integration for the standalone JPEG encode hardware block.
> 
> This series targets SM8250 (Kona) platforms.
> 
> The jpeg-encoder node is described as a child node of the CAMSS block
> and is probed automatically via of_platform_populate() in camss_probe().
> 
> Usage examples:
> 
> - Check of related video node: v4l2-ctl --list-devices
>   The expected result:
>    qcom-jpeg-enc (platform:qcom-jpeg-enc):
>         /dev/videoX
> 
> 
> diff --git a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> index e4c16388ef07..53e83ebe4699 100644
> --- a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> +++ b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> @@ -72,80 +72,75 @@ examples:
>      #include <dt-bindings/interconnect/qcom,sm8250.h>
>      #include <dt-bindings/interrupt-controller/arm-gic.h>
>  
> -    jpeg-encoder@ac53000 {
> -        compatible = "qcom,sm8250-jenc";
> -        reg = <0xac53000 0x1000>;

What is going on here? And why?

> -
> -        interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
> -
> -        clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
> -                 <&gcc GCC_CAMERA_SF_AXI_CLK>,
> -                 <&camcc CAM_CC_CORE_AHB_CLK>,
> -                 <&camcc CAM_CC_CPAS_AHB_CLK>,
> -                 <&camcc CAM_CC_CAMNOC_AXI_CLK>,
> -                 <&camcc CAM_CC_JPEG_CLK>;
> -        clock-names = "hf_axi",
> -                      "sf_axi",
> -                      "core_ahb",
> -                      "cpas_ahb",
> -                      "cnoc_axi",
> -                      "jpeg";
> -
> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h b/drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h
> new file mode 100644
> index 000000000000..2ab29bfb9b88
> --- /dev/null
> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h
> @@ -0,0 +1,37 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +#ifndef QCOM_JENC_DEFS_H
> +#define QCOM_JENC_DEFS_H
> +
> +#include <linux/types.h>
> +#include <uapi/linux/v4l2-controls.h>

There includes are not necessary for this header.

> +
> +/* Offline JPEG encoder constraints */
> +#define QCOM_JPEG_HW_MAX_WIDTH	8192
> +#define QCOM_JPEG_HW_MAX_HEIGHT	8192
> +#define QCOM_JPEG_HW_MIN_WIDTH	256
> +#define QCOM_JPEG_HW_MIN_HEIGHT	256
> +
> +#define QCOM_JPEG_HW_DEF_HSTEP	16
> +#define QCOM_JPEG_HW_DEF_VSTEP	16
> +
> +#define QCOM_JPEG_HW_DEF_WIDTH	1920
> +#define QCOM_JPEG_HW_DEF_HEIGHT	1088
> +
> +#define QCOM_JPEG_MAX_PLANES	3
> +
> +#define QCOM_JPEG_QUALITY_MIN	1
> +#define QCOM_JPEG_QUALITY_DEF	98
> +#define QCOM_JPEG_QUALITY_MAX	100
> +#define QCOM_JPEG_QUALITY_MID	(QCOM_JPEG_QUALITY_MAX / 2)
> +#define QCOM_JPEG_QUALITY_UNT	1
> +
> +#define QCOM_JPEG_FPS_MIN	1
> +#define QCOM_JPEG_FPS_MAX	240
> +#define QCOM_JPEG_FPS_DEF	30
> +#define QCOM_JPEG_FPS_UNT	1

This is a collection of random defines, which are mostly used once.
Please move them to the corresponding source file.

> +
> +#endif /* QCOM_JENC_DEFS_H */
> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c b/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c
> new file mode 100644
> index 000000000000..ddfa84838b6b
> --- /dev/null
> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c
> @@ -0,0 +1,314 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +#include <linux/clk.h>
> +#include <linux/interrupt.h>
> +#include <linux/mod_devicetable.h>
> +#include <linux/module.h>
> +#include <linux/platform_device.h>
> +#include <linux/pm_opp.h>
> +#include <linux/pm_runtime.h>
> +#include <linux/slab.h>
> +
> +#include <media/v4l2-mem2mem.h>
> +
> +#include "qcom_jenc_dev.h"
> +#include "qcom_jenc_ops.h"
> +#include "qcom_jenc_res.h"
> +#include "qcom_jenc_v4l2.h"
> +
> +enum jpeg_opp_clks_id {
> +	JPEG_OPP_CNOC_IDX = 0,
> +	JPEG_OPP_CORE_IDX
> +};
> +
> +static const char * const opp_clk_names[] = {
> +	[JPEG_OPP_CNOC_IDX] = "cnoc_axi",

This way your driver will force its own frequency on the CNOC_AXI clock.
There are other clients of the clock, so there should be some kind of
voting on it. Either use icc-clk or add CAMSS API to sum the votes on
the CNOC_AXI.

> +	[JPEG_OPP_CORE_IDX] = "jpeg",
> +	NULL,
> +};
> +
> +static struct dev_pm_opp_config opp_config = {
> +	.clk_names = opp_clk_names,
> +	.config_clks = dev_pm_opp_config_clks_simple,
> +};
> +
> +static int qcom_jpeg_opp_init(struct qcom_jenc_dev *jenc)
> +{
> +	struct dev_pm_opp *opp;
> +	int rc;
> +
> +	rc = devm_pm_opp_set_config(jenc->dev, &opp_config);
> +	if (rc)
> +		return rc;
> +
> +	rc = devm_pm_opp_of_add_table(jenc->dev);
> +	if (rc && rc != -ENODEV)
> +		return rc;
> +
> +	/* initialize the maximum available frequency for the JPEG core */
> +	jenc->max_freq = ULONG_MAX;
> +	opp = dev_pm_opp_find_freq_floor_indexed(jenc->dev, &jenc->max_freq, JPEG_OPP_CORE_IDX);
> +	if (IS_ERR(opp))
> +		return PTR_ERR(opp);
> +
> +	dev_pm_opp_put(opp);
> +
> +	/* initialize the default optimized frequency for the JPEG core */
> +	jenc->opt_freq = jenc->max_freq;
> +
> +	dev_dbg(jenc->dev, "JPEG max clocks is: %lu\n", jenc->max_freq);
> +
> +	return 0;
> +}
> +
> +static int qcom_jpeg_clk_init(struct qcom_jenc_dev *jenc)
> +{
> +	jenc->num_clks = devm_clk_bulk_get_all(jenc->dev, &jenc->clks);
> +	if (jenc->num_clks < 0)
> +		return jenc->num_clks;
> +
> +	return 0;
> +}
> +
> +static int qcom_jpeg_clk_on(struct qcom_jenc_dev *jenc)
> +{
> +	struct dev_pm_opp *opp;
> +	int rc;
> +
> +	rc = clk_bulk_prepare_enable(jenc->num_clks, jenc->clks);
> +	if (rc)
> +		return rc;
> +
> +	/* setup the OPP according to the calculated optimal frequency */
> +	opp = dev_pm_opp_find_freq_ceil_indexed(jenc->dev, &jenc->opt_freq, JPEG_OPP_CORE_IDX);
> +	if (IS_ERR(opp)) {
> +		rc = PTR_ERR(opp);
> +		goto err_clk_disable;
> +	}
> +
> +	rc = dev_pm_opp_set_opp(jenc->dev, opp);
> +	if (rc)
> +		goto err_dev_pm_opp;
> +
> +	dev_dbg(jenc->dev, "selected OPP clocks cnoc=%lu, core=%lu\n",
> +		dev_pm_opp_get_freq_indexed(opp, JPEG_OPP_CNOC_IDX),
> +		dev_pm_opp_get_freq_indexed(opp, JPEG_OPP_CORE_IDX));

Drop extra debugging, you can enable debugging for OPP via
CONFIG_DEBUG_DRIVER.

> +
> +	dev_pm_opp_put(opp);
> +
> +	return 0;
> +
> +err_dev_pm_opp:
> +	dev_pm_opp_put(opp);

Once you drop excessive debugging code, the dev_pm_opp_put() will find
its natural place right after dev_pm_opp_set_opp(), before checking the
rc.

> +err_clk_disable:
> +	clk_bulk_disable_unprepare(jenc->num_clks, jenc->clks);
> +
> +	return rc;
> +}
> +
> +static void qcom_jpeg_clk_off(struct qcom_jenc_dev *jenc)
> +{
> +	dev_pm_opp_set_opp(jenc->dev, NULL);
> +	clk_bulk_disable_unprepare(jenc->num_clks, jenc->clks);
> +	jenc->opt_freq = jenc->max_freq;
> +}
> +
> +/* qcom_jpeg_camss_get - resume the parent CAMSS device */
> +static int qcom_jpeg_camss_get(struct qcom_jenc_dev *jenc)
> +{
> +	return pm_runtime_resume_and_get(jenc->camss_dev);

Use devlinks instead.

> +}
> +
> +/* qcom_jpeg_camss_put - release the parent CAMSS device */
> +static void qcom_jpeg_camss_put(struct qcom_jenc_dev *jenc)
> +{
> +	pm_runtime_put_sync(jenc->camss_dev);
> +}
> +
> +static int qcom_jpeg_pm_suspend(struct device *dev)
> +{
> +	struct qcom_jenc_dev *jenc = dev_get_drvdata(dev);
> +
> +	qcom_jpeg_clk_off(jenc);
> +	qcom_jpeg_camss_put(jenc);
> +
> +	return 0;
> +}
> +
> +static int qcom_jpeg_pm_resume(struct device *dev)
> +{
> +	struct qcom_jenc_dev *jenc = dev_get_drvdata(dev);
> +	int rc;
> +
> +	rc = qcom_jpeg_camss_get(jenc);
> +	if (rc)
> +		return rc;
> +
> +	rc = qcom_jpeg_clk_on(jenc);
> +	if (rc) {
> +		qcom_jpeg_camss_put(jenc);
> +		return rc;
> +	}
> +
> +	return 0;
> +}
> +
> +static int qcom_jpeg_pm_system_suspend(struct device *dev)
> +{
> +	struct qcom_jenc_dev *jenc = dev_get_drvdata(dev);
> +	int rc;
> +
> +	v4l2_m2m_suspend(jenc->m2m_dev);
> +
> +	rc = pm_runtime_force_suspend(dev);
> +	if (rc)
> +		v4l2_m2m_resume(jenc->m2m_dev);
> +
> +	return rc;
> +}
> +
> +static int qcom_jpeg_pm_system_resume(struct device *dev)
> +{
> +	struct qcom_jenc_dev *jenc = dev_get_drvdata(dev);
> +	int rc;
> +
> +	rc = pm_runtime_force_resume(dev);
> +	if (rc)
> +		return rc;
> +
> +	v4l2_m2m_resume(jenc->m2m_dev);
> +
> +	return 0;
> +}
> +
> +static _DEFINE_DEV_PM_OPS(qcom_jpeg_pm_ops,
> +			  qcom_jpeg_pm_system_suspend, qcom_jpeg_pm_system_resume,
> +			  qcom_jpeg_pm_suspend, qcom_jpeg_pm_resume, NULL);
> +
> +static int qcom_jpeg_probe(struct platform_device *pdev)
> +{
> +	const struct qcom_dev_resources *res;
> +	struct qcom_jenc_dev *jenc;
> +	int rc;
> +
> +	jenc = devm_kzalloc(&pdev->dev, sizeof(*jenc), GFP_KERNEL);
> +	if (!jenc)
> +		return -ENOMEM;
> +
> +	jenc->dev = &pdev->dev;
> +	jenc->camss_dev = pdev->dev.parent;
> +	platform_set_drvdata(pdev, jenc);
> +	rc = devm_mutex_init(&pdev->dev, &jenc->dev_mutex);
> +	if (rc)
> +		goto err_free_jenc;
> +	spin_lock_init(&jenc->hw_lock);
> +	init_completion(&jenc->reset_complete);
> +	init_completion(&jenc->stop_complete);
> +
> +	res = device_get_match_data(jenc->dev);
> +	if (!res) {
> +		rc = dev_err_probe(jenc->dev, -ENODEV, "unsupported SoC\n");
> +		goto err_free_jenc;

drop the gotos, it's an empty label now.

> +	}
> +	jenc->res = res;
> +
> +	if (!jenc->res->hw_ops) {
> +		rc = dev_err_probe(jenc->dev, -EINVAL, "missing hw resources\n");
> +		goto err_free_jenc;
> +	}
> +
> +	rc = dma_set_mask_and_coherent(jenc->dev, DMA_BIT_MASK(32));
> +	if (rc) {
> +		dev_err_probe(jenc->dev, rc, "failed to set DMA mask\n");
> +		goto err_free_jenc;
> +	}
> +
> +	jenc->jpeg_base = devm_platform_ioremap_resource(pdev, 0);
> +	if (IS_ERR(jenc->jpeg_base)) {
> +		rc = dev_err_probe(jenc->dev, PTR_ERR(jenc->jpeg_base),
> +				   "failed to map JPEG resource\n");
> +		goto err_free_jenc;
> +	}
> +
> +	rc = qcom_jpeg_opp_init(jenc);
> +	if (rc) {
> +		dev_err_probe(jenc->dev, rc, "failed to init OPP\n");
> +		goto err_free_jenc;
> +	}
> +
> +	rc = qcom_jpeg_clk_init(jenc);
> +	if (rc) {
> +		dev_err_probe(jenc->dev, rc, "failed to init clocks\n");
> +		goto err_free_jenc;
> +	}
> +
> +	jenc->irq = platform_get_irq(pdev, 0);
> +	if (jenc->irq < 0) {
> +		rc = dev_err_probe(jenc->dev, jenc->irq, "failed to get IRQ\n");
> +		goto err_free_jenc;
> +	}
> +
> +	rc = devm_request_threaded_irq(jenc->dev, jenc->irq,
> +				       jenc->res->hw_ops->hw_irq_top,
> +				       jenc->res->hw_ops->hw_irq_bot,
> +				       IRQF_ONESHOT | IRQF_NO_AUTOEN, dev_name(jenc->dev), jenc);
> +	if (rc) {
> +		dev_err_probe(jenc->dev, rc, "failed to request IRQ\n");
> +		goto err_free_jenc;
> +	}
> +
> +	rc = v4l2_device_register(jenc->dev, &jenc->v4l2_dev);
> +	if (rc) {
> +		dev_err_probe(jenc->dev, rc, "failed to register V4L2 device\n");
> +		goto err_free_jenc;
> +	}
> +
> +	rc = devm_add_action_or_reset(jenc->dev,
> +				      (void (*)(void *))v4l2_device_unregister,
> +				      &jenc->v4l2_dev);
> +	if (rc)
> +		goto err_free_jenc;
> +
> +	rc = devm_pm_runtime_enable(jenc->dev);
> +	if (rc)
> +		goto err_free_jenc;
> +
> +	rc = qcom_jpeg_v4l2_register(jenc);
> +	if (rc) {
> +		dev_err_probe(jenc->dev, rc, "failed to register video device\n");
> +		goto err_free_jenc;
> +	}
> +
> +	dev_dbg(jenc->dev, "Qualcomm JPEG encoder registered\n");
> +
> +	return 0;
> +
> +err_free_jenc:
> +	return rc;
> +}
> +

[...]

> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c b/drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c
> new file mode 100644
> index 000000000000..c9959518c64d
> --- /dev/null
> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c
> @@ -0,0 +1,331 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +#include <linux/errno.h>
> +#include <linux/string.h>
> +
> +#include <media/jpeg.h>
> +#include <media/v4l2-jpeg.h>
> +
> +#include "qcom_jenc_dev.h"
> +#include "qcom_jenc_hdr.h"
> +
> +/*
> + * The elements defined in this header are specified
> + * in the ITU-T T.81 / JPEG specification.
> + *
> + * https://www.w3.org/Graphics/JPEG/itu-t81.pdf
> + */
> +
> +#define JFIF_HEADER_WIDTH_OFFS		0x07
> +#define JFIF_HEADER_HEIGHT_OFFS		0x05

This is offset_of(), no need to define those.

I think, you already got a review from me. Move all standard-related
defines and code to the generic v4l2 code, unless you get an explicit
blessing from one of V4L2 maintainers not to do so.

> +#define JFIF_APP0_LENGTH_HI		0x00
> +#define JFIF_APP0_LENGTH_LO		0x10
> +#define JFIF_IDENT_TERM		0x00
> +#define JFIF_VERSION_MAJOR		0x01
> +#define JFIF_VERSION_MINOR		0x01
> +#define JFIF_DENSITY_HI			0x00
> +#define JFIF_DENSITY_LO			0x01
> +#define JFIF_THUMBNAIL_SIZE		0x00
> +
> +#define JPEG_SEG_LEN_HI			0x00
> +#define JPEG_LEN_DQT_LUMA_LO		0x43
> +#define JPEG_LEN_DQT_CHROMA_LO		0x43
> +#define JPEG_LEN_SOF0_MONO_LO		0x0b
> +#define JPEG_LEN_SOF0_COLOR_LO		0x11
> +#define JPEG_LEN_DHT_MONO_LO		0xd2
> +#define JPEG_LEN_DHT_COLOR_HI		0x01
> +#define JPEG_LEN_DHT_COLOR_LO		0xa2
> +#define JPEG_LEN_SOS_MONO_LO		0x08
> +#define JPEG_LEN_SOS_COLOR_LO		0x0c
> +
> +struct jpeg_header_buf {
> +	u8  *ptr;
> +	u32 size;
> +	u32 pos;
> +};
> +

-- 
With best wishes
Dmitry

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id E0A8D328B7B
	for <linux-kernel@vger.kernel.org>; Mon,  6 Jul 2026 13:37:57 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.43
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783345079; cv=none; b=CnxvEv1DioaTm3GUuWAzY315JMZC4QXVBKTe0ROIqd1H2KwcEeELlX5cVYmU8FuahVROlSU3gAjZgtXr+0kEXyLUXbRcUGz1HhQMFYI8fWfU6XhwijFrUIg++/tUmQ5A6qfGJYhEsE94JG9pncKe5aIaEwnhOo+A6zLCP/dAhj8=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783345079; c=relaxed/simple;
	bh=pQzZVG68wLqA4MOLkstXGFK0Y3+t6u/6Ggjx/nGFUAI=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=R+HmDq/SA0cjOpYOuXGzBjsEoJNSR4g9ydEdNz2oPZss2QcS4Ak+ZXuJOmWYXI83paWZveTQ/SxFz+OZ7Hi5dk2gLzUSkSQ87k1ZyzkEPHx/188j2u2VB6YkGsd4oH26Jo5fwb6Bdgv0mVmK9noB/pBe3vwKpAlJA8JWSK5FaxQ=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=n+llEDPV; arc=none smtp.client-ip=209.85.208.43
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="n+llEDPV"
Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-6983f20a8bfso5086658a12.1
        for <linux-kernel@vger.kernel.org>; Mon, 06 Jul 2026 06:37:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783345076; x=1783949876; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=s5Jq8Dzzgx40KsRam3OqWjyEnrA+cneHoYjGfjryQms=;
        b=n+llEDPVizmi+M1/OWAbMb3MfTOFXarZT7RmGOfdAr8UP8ERv8+1Ztujcff26iAgCk
         OWFlHAMwX0MkWtDJjMu4NEx0kSH1icFzkrFEeVqy4MkX+zut8VBNonqmo5Yryg9zLdw3
         wlDNpLVHGSWTleLGV0xKlSIiNQIR73X1io2FmnCudDxhkrHU1pQFuxZk4FxwzhN9PwvL
         Su71z4zjDw3/2JIejLz7KO0k3Jia/oOyKLr29jAPSZTJfuVhEUnFYFEEIMeK2uMPohoB
         IRGGkTx2Hd1o9+yX86/6zTIs5h9q13S3pqAIsggWIvMfTtSBomZOwPJMB9LisTMjqbuv
         TzEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783345076; x=1783949876;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=s5Jq8Dzzgx40KsRam3OqWjyEnrA+cneHoYjGfjryQms=;
        b=TXxDifGUt3UBrDccQmaDwdEfGeE6rJDPaVZpsnoRLxTxi/Tsh/WOtw2MtBDEoAazOr
         ACa9AB4dcaGw6szRbYwMUSiif3cWt3tRNg+kWJiDlnhQmqNmP7dmkjMtWZkyGljZDs8p
         bTIQQRaU1l/diXFXtV9N+UTwMGHNQFBg9ADdAR7fntcJJKQibGEZA7cLsqqibz+U43Oz
         9KzPT+QzVtDSQlcDSBFqCahs+BHLiRCWfKOMsqu3fZhbo6TTjN8AQy2r49OP+hagLrSi
         WQ/4d0lhhxcWuQAoXKAShc6YAgRnpEm5XrOXNDdUuGxvYxd4foR3k+bNiWlZq8lA9oI3
         C8UA==
X-Forwarded-Encrypted: i=1; AHgh+RpXyUFhgakLfTWqF9z/dFZRJicmYa4v/bywp4+xkT8Fs5yCMfGp8Xj2FuoX8FHdnRTb9b3BH6wwVJd//mM=@vger.kernel.org
X-Gm-Message-State: AOJu0Yx7kK6cM5FkzTCR/ZPHYVcYMX3G2//DK5iFx/RZ4qH96ccJvR7D
	kNcBtS9hqqG4wsa266m8EFapqpv8JfILGDZoKSZ368E1Za+EuKoJxNZqgFNJOxq+UKU=
X-Gm-Gg: AfdE7cmU9voOSuZfDBadt5Z4e0DQ7eMzIb89pHQnS5x133SZ4K9gq+BA8H5RNpu9JMt
	H8U944xzzpdKd/tL0vNcvXTP1eigf3THdJWnGpRt9jahGNl8ZGZdEW4SWR4d9DOBisfxhVhPcks
	M0XZSClwUJCqmJvVn3bbPNhFK46IcGFQzrcuCv4xY9zPudliGCLdLcXiBm5CERxgy/iH03mSaEc
	e/eWtQlzPSjx9r2pZu9AJfKSOQjsLaC/RaJXIOGM+wOioB1E6pXv4zqM/ZYeQsEcBA0W8TQlJnI
	klOd/OLPvjV80l46C3t5WeDRpeb9SsOeLe1t3ojkza6jmoNG/UDhiooy+s5VbcW1z1dNbVaMc/g
	bbnEiynUAmU89QnDm0sZw5mrwqZy4Q7EsCcnAF6hsFy/H01Dae9oTUiTNIEkq6g6S2Y5KK23vFI
	1rNmgfzrGDKUBaIqlE7z5m1RkXiw==
X-Received: by 2002:a17:907:9725:b0:c12:7e24:a76f with SMTP id a640c23a62f3a-c15a67cc186mr40096266b.20.1783345076089;
        Mon, 06 Jul 2026 06:37:56 -0700 (PDT)
Received: from [192.168.0.101] ([109.77.44.220])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c12bc53e065sm724560466b.46.2026.07.06.06.37.55
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 06:37:55 -0700 (PDT)
Message-ID: <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
Date: Mon, 6 Jul 2026 14:37:54 +0100
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 06/07/2026 14:02, Vladimir Zapolskiy wrote:
>>>
>>> Why? The common power domain and interconnects have already been
>>> described as resources of the parent CAMSS device, there is no need
>>> to duplicate descriptions in every child device tree node of CAMSS.
>>
>> CSID, IFE etc are not parents of the JPEG encoder.
>>
>> The idea is to make all of these peers, eventually. Not particular block
>> owns the TITAN_TOP_GDSC - the entire CAMSS block is a collapsible block.
>>
> 
> The statement provides the same information as before, e.g. it's found 
> here:
> 
> https://lore.kernel.org/linux-media/fbc018f5- 
> c025-4747-85f2-53b45b0f0496@nxsw.ie/
> 
>  Â Â Â  There's no functional linkage between CAMSS/IFE and JPEG - they are
>  Â Â Â  peers within the CAMSS power-island.
> 
> Thus "the CAMSS power-island" exists, and it got its hardware description
> as the CAMSS top device tree node, and TITAN_TOP_GDSC power domain is
> a natural resource of all devices on "CAMSS power-island",

Vlad honestly, TITAN_TOP_GDSC is provided to the CAMSS island - all of 
the nodes within it depend on that and it is _external_ to the block.

There is a CSID MUX on some SOC other than that I'll restate it again, 
I'm not sure why you won't accept it.

There is no dependency between JPEG and IFE, one is _not_ subordinate to 
the other and trying to find ways to invalidate that statement runs 
counter to the facts.

CAMCC provides TITAN_TOP_GDSC external to the CAMSS block, that GDSC 
effectively _is_ the power island.

This debate is going nowhere. Check the downstream you don't need the 
docs titan_top_gdsc is provided by CAMCC.

---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id 75D45329E7E
	for <linux-kernel@vger.kernel.org>; Mon,  6 Jul 2026 13:57:19 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.54
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783346241; cv=none; b=RoH2pnJ24ZcXAy3636EE8y7fSjeDtqsURicWzA2oTaEAWp7VYKC22eeH8G4rOwiWorsPzo9/jgKRuoOgIATkqbx6S0jZQUUNpcV1xortS0t5f4kycOauQ1DzCTLC6OLewb0HV494JyCCP6J1A3qlnIbHKZ35OvaR1hbWwKaxXYk=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783346241; c=relaxed/simple;
	bh=Xzs5g9dEsK628K9byNJTDAcYpR/tRUu1uwxqbtSIVxE=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=UymETSDGyjBwEG1f+KjsIfQLZWsmOqmOJSDvHJA4hhG7QMvPEVRSyk8Q/FYDaqBcZSEcjZSYmbzezgpBR8khJRgdl98097+tZL9DCoTIR9k7YHFRRSShsKXooWi/xFzBu6ZbfCDPK6VArG/MaF7EwdMUOR9jlxMSGjibQH1XYjU=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=v1J2dh9S; arc=none smtp.client-ip=209.85.167.54
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="v1J2dh9S"
Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-5ad4c966e63so214948e87.3
        for <linux-kernel@vger.kernel.org>; Mon, 06 Jul 2026 06:57:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783346238; x=1783951038; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to:content-type;
        bh=BU04O1xBoSt4cocqne7Ze3wRzgQFHUDYv7uZbNdZ/Xs=;
        b=v1J2dh9Sx1bZVNhrIkMtTOr81g5s2YwTDjUPDFabHYPX6G6PGDVyHlSrezejao9urS
         rHEAZGEYFhYxJQDFy2waH3jQnza69TMDOxRQ5KjOIkcqpiIjbCOPyrTGqJjQZfRuPIOM
         gpqc24N8WYjK3fw9Mr1PZtyzYo0alAlZ8qR9MzcZWsUqo7FoU/Vii6rLLNeJv/9THsCE
         +xqzX0z0NPxQQYsyRh4LlJJvNsFkHqzP/RZZKy2b+hnW+UTQ+hRkGopb+WjSLS/Z6eUV
         54wYIEol5+wCU/2FWwarq6lt8UPGPlHDhgrm059zaTob0gaveGgVBo+POJOsKcXOMora
         V5iQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783346238; x=1783951038;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=BU04O1xBoSt4cocqne7Ze3wRzgQFHUDYv7uZbNdZ/Xs=;
        b=JhB6xX+kIL/qz1r/55954RAiZcXYjqnhIAqQiQVzJOWztukUhzE1ifsqSvwYAiPFww
         XyTfHIVL1B0J+HW+2BkQ98q2hpsuq8hWEAEkJxQv/pmgX2wr5etxq4SM+ODMpNe/3JLu
         d+oUFVNxEiUMCajGpZZ7ALgsXqJeKQ6fBoj53xxMR22EVXoNL8x/NxtAnauWe3PDZBWE
         6odGf5y6Ry7F6LbjvCEZSU4rfcS+M3m57b1YLbAFtFmI4U+63zK7aJcfzHa9Nojv1Bgv
         xzCWHJ73r3r+XGyciv9m6RW8bvnE2HUADmHbvm1+CHtMt8KFl9EgVYYAGGhkpgefz2h7
         1vrA==
X-Forwarded-Encrypted: i=1; AHgh+RplDjEGIffvJK6fqIx1rN3odxMUCYgoOFiyaRuXEcasclORZ/b+0nqlZbjXclJj+CHOIlGpZ8co7GeJlV8=@vger.kernel.org
X-Gm-Message-State: AOJu0YyEEh6C7gWI4DakMUssP+RA+cN8c6xXz+XrCOLDAvSTtCfaL3bp
	y2qWgWdoFdrRIh2SFX++cduVpHupqVCvuX7EQk93q4RC6mvfWPgGmguMQWGZ//CbV0Q=
X-Gm-Gg: AfdE7cmYq5pRMxtgkUreutmpKpRLsw9exOuxdlR0psbRkmWBvrJAbzd+K4OdyL+oeTT
	+BX5kMzA67RjhzVf6HIDoeUfS7vRp6e5Z+jchPbzCQsJv6lt/gFzFMR2WJV9y3GxKoPSl5uT7UM
	U0m5hu5L3tgfRfWcM8E3foO7+kRRCPdY8Q2ELKmQqiO/rwy5jxKTkMl+wx5ncsqEx7qVw0rDbgQ
	evF91D4fqm12DWMnRaB/R5KKVs5PArpKjbvxlE4f5ftOi5FyQzpBaHK1k90cB8yhguPeYRx/63e
	XJTA7wsMaVWY0U/PKRI3R4/K1u1o+8rSiQXwMx00F5Y+mdu9nGKzaKV0pq0P2hl5RG5++3axyOk
	WG6Hr0Qcz9RcQN45KyeLjZA52yluDwR4Ud7T759ZUmdAauilSVakqlR8Lu+4oy1/Eip7D2jeZ7Y
	AxOmaL4nHoznA/HDwtfGQzLVdWhP0MszgnGzj7QJG3u2H/ZMlsap2mHmfl59nkmd0GTH0=
X-Received: by 2002:a05:6512:1328:b0:5aa:61ed:482c with SMTP id 2adb3069b0e04-5aed4557b80mr1425611e87.6.1783346237551;
        Mon, 06 Jul 2026 06:57:17 -0700 (PDT)
Received: from [192.168.1.100] (91-159-24-186.elisa-laajakaista.fi. [91.159.24.186])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed136f8b0sm2903301e87.4.2026.07.06.06.57.16
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 06:57:17 -0700 (PDT)
Message-ID: <48c3ce6b-1e2a-457c-93b2-8fbc0912dc20@linaro.org>
Date: Mon, 6 Jul 2026 16:57:16 +0300
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
In-Reply-To: <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 7/6/26 16:37, Bryan O'Donoghue wrote:
> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:
>>>>
>>>> Why? The common power domain and interconnects have already been
>>>> described as resources of the parent CAMSS device, there is no need
>>>> to duplicate descriptions in every child device tree node of CAMSS.
>>>
>>> CSID, IFE etc are not parents of the JPEG encoder.
>>>
>>> The idea is to make all of these peers, eventually. Not particular block
>>> owns the TITAN_TOP_GDSC - the entire CAMSS block is a collapsible block.
>>>
>>
>> The statement provides the same information as before, e.g. it's found
>> here:
>>
>> https://lore.kernel.org/linux-media/fbc018f5-
>> c025-4747-85f2-53b45b0f0496@nxsw.ie/
>>
>>   Â Â Â  There's no functional linkage between CAMSS/IFE and JPEG - they are
>>   Â Â Â  peers within the CAMSS power-island.
>>
>> Thus "the CAMSS power-island" exists, and it got its hardware description
>> as the CAMSS top device tree node, and TITAN_TOP_GDSC power domain is
>> a natural resource of all devices on "CAMSS power-island",
> 
> Vlad honestly, TITAN_TOP_GDSC is provided to the CAMSS island - all of
> the nodes within it depend on that and it is _external_ to the block.

So? There is no tension with my point of view.

> There is a CSID MUX on some SOC other than that I'll restate it again,
> I'm not sure why you won't accept it.
> 
> There is no dependency between JPEG and IFE, one is _not_ subordinate to
> the other and trying to find ways to invalidate that statement runs
> counter to the facts.
> 
> CAMCC provides TITAN_TOP_GDSC external to the CAMSS block, that GDSC
> effectively _is_ the power island.
> 
> This debate is going nowhere. Check the downstream you don't need the
> docs titan_top_gdsc is provided by CAMCC.
> 

There is no debate, since my arguments are not debated so far... Why?

And at the same time you didn't provide any support to have N identical
spread hardware property descriptions instead of the single one.

What is a good enough reason to prefer complexity over simplicity?

-- 
Best wishes,
Vladimir

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id BBCF03911AB
	for <devicetree@vger.kernel.org>; Mon,  6 Jul 2026 14:12:08 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783347131; cv=none; b=PHHTc1WUAtH5+FL67jII1C8tELhHAWggLSfyDlUtPKKcWLWEMpzNQhtkvUJF0Z/zw7vr98KjtGOLLFYxxB9mGPwW+k2r+fCmfJPV5O4XSsL44+lgAKTXOghPj323qrziOmEnfcdroQYbkP3Qm4JvSdZ2FVUYyPUDYiRrEwDZY2U=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783347131; c=relaxed/simple;
	bh=AUKedEW8L364I8JPQAlKye3yP1O85tY325vvcI429kg=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=ZB4st4vhqmpoUX+7xUvwGxD/hzz1P4WUWImcll39O4mJcVcKTVW5STMwPzbpODsLEgz/Yk+KD1l/B9Rly4kMeX/9LK8kFF5J9T1qta79aQfKQUFk/9ggYm2etReLYkROIEhNGGbzDIrEHan5sf8Nk4rChWCHvPCkADFCcmErnww=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=MA+Tf+UY; arc=none smtp.client-ip=209.85.128.45
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="MA+Tf+UY"
Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-493c2b3dc8bso21467005e9.2
        for <devicetree@vger.kernel.org>; Mon, 06 Jul 2026 07:12:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783347126; x=1783951926; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=SRglC65mYb/1PKnmY3GPB+Y//IKYaoRtYD9DfcwlSuc=;
        b=MA+Tf+UYpjIp5PwnmckYY7d65jEoi6xAkwBfJEDSFfM7S0DeC1DSCJnqYtPfxFWpK7
         SaW37deSkncxbWk4Vjiy0TX3EVCkZaypDiNF3OV7Z0uC1JxtpzQv7VdkdqFXk+yKuKZg
         sWo2+opfDfCtNmEqmukrcKYZWj0zfHdMUlHftTiwPTZSP3tLVkRYxObUDCypYNMJC8b0
         NHP8iwxXSKdy4TgU8SZOPUrDEWwrhIZiwIDTcY0CePmwqtguer0l2lzA5DG/xVlKGc8e
         T0yvlpOczcurrmZJtiApFTLgS5X8aYFgthqxcoCOu3UrBEv4hTFR0evrRCoL649V7g9F
         BzdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783347126; x=1783951926;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=SRglC65mYb/1PKnmY3GPB+Y//IKYaoRtYD9DfcwlSuc=;
        b=Xo6LQt4a9bTGGU9D/4JUp1kxPB3aZvi3ylyvIGgzmbkXZnaZL3ZYVxw/ODeNcFn3jT
         uIOFBL/H0GM51vEjlovhITZXN1MnXFZfKUf1h162mVaavwm7qHk/8huRGhksrzpWiOVJ
         ZDGxEpSm1dipTxl7l3gcZ7hBgd6HGdQ41k/x7W3OKpDXFdhs2Vqz57sWiyt6KbSWuOg0
         QV5+ESCcUyBu4F8i80XaK/LK5xgdQMn0ZvMNdd4zCI5iUToGiM3V2wOaUNcDun0565Ug
         nO/Pq6DRz2RGtYHoW+4AYxwPlY6IVZC+0HauvAcFz7R9ZM+TkyFhTUzwoRsmfafo1mn7
         yBhw==
X-Forwarded-Encrypted: i=1; AHgh+Rqs88vaCPsz9Ehp4Ikm4FznGjO66sH/Z8byfLtvcFGQqCunV8KZIeDUSKXhb0wSwghotH8lpzC0TBMK@vger.kernel.org
X-Gm-Message-State: AOJu0YyswOM+EJk0e9Gqdt/W7yY9DS2/05ah+8CUcXJdqKhavbFTK7W/
	5y9CPSWirN3eTGNh6qZxwmDvmKGdDpDRPpWV+Icv2OMJ6Pe6I3GOXgdxp7GXK5mdFLY=
X-Gm-Gg: AfdE7cmBRF9RVYHfuAEhvcuXdXMAiHQKYbQAs6YXfNntVHWIn4kEF6ooe3v8ZQOx4Rd
	XHscxxjth1FbjlO54/l4BUE+vCTRwt3X2JF/+/PnLT2ltyhqYKhXSz2iW6o5tFpN++yBFAVIB4l
	gU3TC82rZRPia0DxmL1SMiMC1eSTnl7agtrurnrIXRreBy07Xy4imjQNZZMsfgP72WvakpTAwBt
	xNdWjeDgvVgFObW0/jAKclxj2jO0639CafhAq0tyuwxb1wMuNhhkRPe7OJd3dB2IBuwGvnFB66u
	tzPb4/RcUqYZzt6BXoAGl8R5FF6CiZTibENbbN/dgsl9EE8WnZCOpJp0fa2vSMWWkYdOXCLvtRX
	pfqYe9QYaydZsoIy8qn47uei6CmmuvwJOLsDGr/LwktYKE6VhnnZOcyBpntTUoghMsbb4oMLIGl
	y3UCDFEo2yYjOJAsI51ZRGs5vH+w==
X-Received: by 2002:a05:600c:4747:b0:493:be3e:cc3 with SMTP id 5b1f17b1804b1-493df093146mr8495275e9.21.1783347125751;
        Mon, 06 Jul 2026 07:12:05 -0700 (PDT)
Received: from [192.168.0.101] ([109.77.44.220])
        by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47a9e4d83bdsm25651263f8f.13.2026.07.06.07.12.04
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 07:12:05 -0700 (PDT)
Message-ID: <f3d148cc-496d-4301-af45-51d8921d7798@linaro.org>
Date: Mon, 6 Jul 2026 15:12:04 +0100
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <48c3ce6b-1e2a-457c-93b2-8fbc0912dc20@linaro.org>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <48c3ce6b-1e2a-457c-93b2-8fbc0912dc20@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/07/2026 14:57, Vladimir Zapolskiy wrote:
>> This debate is going nowhere. Check the downstream you don't need the
>> docs titan_top_gdsc is provided by CAMCC.
>>
> 
> There is no debate, since my arguments are not debated so far... Why?

An odd claim, since this is the fourth ? level of email reply.

> And at the same time you didn't provide any support to have N identical
> spread hardware property descriptions instead of the single one.
> 
> What is a good enough reason to prefer complexity over simplicity?

I'm not sure I parse your here. The core fact is there is no "thing" in 
the CAMSS block that can be modelled as a provider to JPEG in lieu of 
TITAN_TOP_GDSC.

That GDSC is provided by CAMCC not by any other silicon block. So 
omitting power-domains for individual nodes is incorrect. Best practice 
and in fact the _only_ practice that can work is to list power-domains, 
interconnects in the individual nodes themselves as - I've pointed out 
multiple times now - those blocks have to ramp clocks and scale voltages 
dependent on their particular use cases.

---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id 978773988FF
	for <linux-media@vger.kernel.org>; Mon,  6 Jul 2026 14:35:16 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.45
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783348518; cv=none; b=rgvjbbVqMcHyrekn1Ya0snbOSFD+hTyqU6Em7EHx1h4jPPC49XVJway1OD1jOlNrcj/Ccmzo+ke5ajd9BN2UoZyarCt4QSL5vdcoImQBVSeRMt5dYHq1r6vdtgvGJxx8kx3fhrlOYtFYolCPaEWD2F69ZPjJdB4/KZZO6Wp1Oks=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783348518; c=relaxed/simple;
	bh=qbcykGapVHfJqKgmk81AzQE5m3FAmFj5hgBqq4G2K80=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=Ic5fnuTdzEWqjxfPnNM01vFhdEQxewGlEEejZ5h72Z7OkmNC7nL3uUPQGKavMU1T06esQDhSKMyH204b9XyZey0gKTvNMBufc9JiQSfy0te4M7lCwXrCF4RcRcy1g/23XODGjbpbvunIpq9JTKJiuCsJ8ltqT7Kh5mcM8RwDIP8=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=BMgJFb73; arc=none smtp.client-ip=209.85.167.45
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="BMgJFb73"
Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-5aebd7da975so368141e87.2
        for <linux-media@vger.kernel.org>; Mon, 06 Jul 2026 07:35:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783348515; x=1783953315; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to:content-type;
        bh=4NvKO6c1aWnO7A3eGSV7QhwSsdTS9m/BEA8j1DxA8pU=;
        b=BMgJFb73KuX+uJomEoYRx3iLRbw4WlxBxrRGOWglEJuA6fP45IHv5VjKFT455Grvky
         rRY3imrwdYW0UfR/Zpu/kTLx6VXsHZ654QgxFAoMoBQ1glWOFneQ1UgjtT/5r15b/PxT
         pfOiiGbVaTjs/wZZvZaxOP+/eobY9RZ2OMB/boyRJQ8zXMGaaprWZMJd2gUExA8BM9FK
         O8Xl/EKQbhTtiFkALC0q6ocLTpdwqREw+xYP3ufkASX1/OKFbFOjmWHJkxxHp3arXohS
         GcRAnq3k9HBYLpEb1viDb7v1uU3cc6y1vAhxJxIxUcM6xHsmTUxargiN8ogPSZ9HFbzp
         o90A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783348515; x=1783953315;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=4NvKO6c1aWnO7A3eGSV7QhwSsdTS9m/BEA8j1DxA8pU=;
        b=aOd2Ql9uOt4a0jtabLaxdZUhIIKWc6UjPVqj9VtUr899LxfWHaAO2yJu2qwxEihxXy
         rjcCeaQLVPZHmTp+tyCfVPGbVNipLnS1SB07Sn95bZcM+mZRmvCRXSi9cawQiYrl0cgO
         Hh7c26EUjrzqkW7SpdzIcOdadQBdRfG00UEZP83ESUVa82CTgTemihEd+diblo2lJOmN
         vutWkxsn7uzQY8MAUQtzjjoUnfk7HMMalr1efthd1GaJHtTxL3sf1zYkYZgYc4cnqHnY
         o9K6lu6dwyraLefZQZaMfkDEierd/G1mmfOsbc1J1ciJ2dfv1Yi7AxnwdB4s1jJrGlli
         9aXw==
X-Forwarded-Encrypted: i=1; AHgh+Rq4GDAW8vfxKev4/luLBRphTadD1IBp8BEubjVQBwhB72BCPrf/lHGwZ/lwopDpv8vZ3l9KJDMzqZLOGg==@vger.kernel.org
X-Gm-Message-State: AOJu0Yw/Asso1CBqVpVfulttEFizeP0FhgtfjIqfF6VDCWcW2eJbn+Jc
	FywmjfgK6gipgtxtl65mosSfWET/3OZfPBqBbLxo7C6VDuN5ayhY+xCRq1R5i4qWE2eEU97Ew34
	PUmlee5U=
X-Gm-Gg: AfdE7cnNZw8m4ETpINGIDnLZ0ybs3u7+YlW/bi7MkTepHhosl0E6BpQbM4Xha+P5dpF
	1Tu/HQcyCxlNP+500lEekxshFgKauNTyXfSLZ1Rhz6eDIdFNY/lIbl3QntNy754xOOYJEtWR7mu
	/ZOV1dEQGtIKPYcG3v4fCMFwyD3tOKA0pXWLJN1VN0NbjD+uD83lhwn6NVe4vplwVmNlmCoMq17
	zT8ZpOT6eMP1JJxpCEjhcBn8hygcvl+/vTcVvNw/0CalDANV/VowWOEbg2xf/soPoGxK1iwmrQw
	92cSUSzm5pnchIFzJ3F/jptltprExZNVTY/yBb+fzWfRc8cGSicoQ0wkiHcjfDfnPyeTO05lqEX
	FT+RgW3yKKlrm3wkOTm6lKZMnRXOPRE2Qz7xUKvj3WNrTFguJ6ajyCNU34QQxi0OsbLzqWk731F
	0FIRfkXVD3byzePWYzt7n7qndUa0YNzjP46Zyfq43Jga+QPP4B+6zCbpZ4zbtfzcZt1AY=
X-Received: by 2002:a05:6512:8348:b0:5ae:ba8f:ad39 with SMTP id 2adb3069b0e04-5aed454f924mr837407e87.4.1783348514716;
        Mon, 06 Jul 2026 07:35:14 -0700 (PDT)
Received: from [192.168.1.100] (91-159-24-186.elisa-laajakaista.fi. [91.159.24.186])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed13bffcasm2971872e87.61.2026.07.06.07.35.13
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 07:35:14 -0700 (PDT)
Message-ID: <3b0f7a36-05d7-417f-8efe-d6ba06488406@linaro.org>
Date: Mon, 6 Jul 2026 17:35:13 +0300
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <48c3ce6b-1e2a-457c-93b2-8fbc0912dc20@linaro.org>
 <f3d148cc-496d-4301-af45-51d8921d7798@linaro.org>
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
In-Reply-To: <f3d148cc-496d-4301-af45-51d8921d7798@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 7/6/26 17:12, Bryan O'Donoghue wrote:
> On 06/07/2026 14:57, Vladimir Zapolskiy wrote:
>>> This debate is going nowhere. Check the downstream you don't need the
>>> docs titan_top_gdsc is provided by CAMCC.
>>>
>>
>> There is no debate, since my arguments are not debated so far... Why?
> 
> An odd claim, since this is the fourth ? level of email reply.
> 
>> And at the same time you didn't provide any support to have N identical
>> spread hardware property descriptions instead of the single one.
>>
>> What is a good enough reason to prefer complexity over simplicity?
> 
> I'm not sure I parse your here. The core fact is there is no "thing" in
> the CAMSS block that can be modelled as a provider to JPEG in lieu of
> TITAN_TOP_GDSC.

That's fine, I have never said the opposite.

> That GDSC is provided by CAMCC not by any other silicon block. So

That's fine.

> omitting power-domains for individual nodes is incorrect. Best practice
> and in fact the _only_ practice that can work is to list power-domains,

Let's step back and discuss hardware description of CAMSS IPs, so far
there is no point to jump to the practice.

> interconnects in the individual nodes themselves as - I've pointed out
> multiple times now - those blocks have to ramp clocks and scale voltages
> dependent on their particular use cases.
> 

Right, you've pointed it a few times, no surprise a straw man fallacy
argument resembles as is, because it does not address or debate the
initial point of concern [1], when the absolutely excessive complexity
is proposed to be implemented for "CAMSS power island" and its IPs.

[1] https://lore.kernel.org/linux-media/e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org

-- 
Best wishes,
Vladimir

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id E3A423F8ED2
	for <linux-media@vger.kernel.org>; Mon,  6 Jul 2026 14:49:21 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783349363; cv=none; b=pWcKfEpjxRHaqGnXwsAnLBolzQOH53jBx+9SOofKdCp0vkzxLn2PFZlPatWgnfzt60DicD8zWsQ63FwJzhJAVXARGUv6GYJLYqBtMS730Z1hmZRTPMc1k/kMQcMoZFDXXlZRvk1mTHik6lg3PEPc6bVVkGcYJDdcra66CazvPuI=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783349363; c=relaxed/simple;
	bh=Y/EJaKXUiPjtu9QsTiWTSVoWswUxIqzGEcw/GlNHd2w=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=bD2oIvri9TdLWOf24WKnnSRYUSqdVnZo5z1ILpVg75o/e7mx1M4eWmLpu/YcYG6WPX1stTF0oBfCJ2Xym23Ldi/cJF9Tz9Vh+O+z+4bfdRovCg47mBs52KAcURQ1rDfMH7RMrMAv8Kio0yLTbgg8lO5dUiBYpZ14xMeO8OWsEn8=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=BQqkMLNq; arc=none smtp.client-ip=209.85.218.53
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="BQqkMLNq"
Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-c126fe7d0f3so402112366b.0
        for <linux-media@vger.kernel.org>; Mon, 06 Jul 2026 07:49:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783349360; x=1783954160; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=aktuCm4dzDRogmLQjOyUeMLfDpXuAbLPNIV0dLlhxik=;
        b=BQqkMLNqTgpHJc4zSxFVhNzaVp6NFTut5WaQU5Ry9ge+m2itHkI73gWK/Du2Sx32H6
         gZvNCxKqMf9gjhFhIUtGK/+YGP5D11WLV0YOlFxoIwkVEAKo7Je7TLNmVRvT+HeL3JmU
         AAU6YnTQPc3KUoQwBC2l4HEZdp8n0qmpazgaXgxM4+XqFfLMcDQieovdkEqdOA1rjlYj
         gC2xXSW213QbxueaKXgkOutQhCvCJ0Guq+Jle0ZbNAGyHJvIhan2fASc15VN6CTipmsR
         MCYgHnJHDYJkEJID/SBiRNKF+yQWoqYl5czG6zLCD6LH43KwPpqSIedAB7BMG7q7viw7
         aXTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783349360; x=1783954160;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=aktuCm4dzDRogmLQjOyUeMLfDpXuAbLPNIV0dLlhxik=;
        b=ZvTv4Nct5d3IQlHSwwppkC48JP1/qodbBf0xctisiFo9mdF+zAo/mO2OCZV1Pp/OWp
         VQ0CiDCy4NJLI60NRyVaCsW5kNc2vfx73Zd2XW6C9UGIL6vf+4aaiDV/3T05wnFHc40O
         71nF+IsV2vXuorNAJg21esLVVflOgKk4b1PtT0xtgo4STeE19daOBj+7p6RHfXKqiv2F
         AM5UugodaqkDGRAn+9upc1niwCOm3M8RuLganOercFkVPkvH9kVr7sFLYt7VVpbQqmC3
         /zbyxhiqwkTMOEokga3xU0GQkl1yoyAuJp54qAEPli88kx3AkdcBsrfGa9ehseHAOmSA
         LK/A==
X-Forwarded-Encrypted: i=1; AHgh+RoT+u3aSb0hHkM7zvpyJ8/A0MExQ3lit88gEIXPlq4ifvj6fR6Mn1JKpn5jMlm6PNvPiTMwbnBWWi4vxQ==@vger.kernel.org
X-Gm-Message-State: AOJu0YxSBj0mHMblsiinnqZ8jRNg0bTiDfCuCdtUn4zp8i6wAm4goOku
	DhjIfW70HpCwTZMwmmlCudqgt+HyxeL+q5rqhiiTKEsEi6kTQ4UNgcqo+F1lH22M5lk=
X-Gm-Gg: AfdE7clUjTrxLPn97JEO3SGWYVMQEGZcq1ZT+7Y4+Bo847MUoKer6RA0qAbavsiX5z3
	PLghkJdUWA2YGIBiR3HuBEv3zQv9QkSNYIMdPqIMVj9RRV0vuCv5hZoHuKYe2w4jEdppMQB5LPx
	8bz9YUyV0S678SfB3cqeIIG3ZC6i6kPKzRMl5xgq6AOhbEvfXc40LmHXDPe4lxWzLJ+iLxRwfgb
	0ulm7BS5jgLZ05RD627poWNrPMgwW0ZSKzP8A8ouFP4MbQxuFivq7kGJKi3M8oYjj7kCfeS2Rrr
	/ttPy51yoqR9/5T9kqYt/RTWRCds2ecwkm3QFf+C+nBAlrCoCy/FPvmEnApSOB6O3TfLUcFIVzN
	ltlN12SNZbumZECXChudD0LPbWB5x2uauW+Gm+UvzmM2h5VCOVQWVcaDieVaL3VQlpzh6eXjKbJ
	PxvOhAM7e9rZCSgZErrOBZNhzM+5QOzhQbsqyi
X-Received: by 2002:a17:907:742:b0:c12:8331:bd6d with SMTP id a640c23a62f3a-c15a6907332mr59088666b.44.1783349360298;
        Mon, 06 Jul 2026 07:49:20 -0700 (PDT)
Received: from [192.168.0.101] ([109.77.44.220])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c12b62f5c41sm768765266b.59.2026.07.06.07.49.19
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 07:49:19 -0700 (PDT)
Message-ID: <6e8ccebb-4eb8-479f-a589-6981b543fc2b@linaro.org>
Date: Mon, 6 Jul 2026 15:49:18 +0100
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <48c3ce6b-1e2a-457c-93b2-8fbc0912dc20@linaro.org>
 <f3d148cc-496d-4301-af45-51d8921d7798@linaro.org>
 <3b0f7a36-05d7-417f-8efe-d6ba06488406@linaro.org>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <3b0f7a36-05d7-417f-8efe-d6ba06488406@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/07/2026 15:35, Vladimir Zapolskiy wrote:
>> omitting power-domains for individual nodes is incorrect. Best practice
>> and in fact the _only_ practice that can work is to list power-domains,
> 
> Let's step back and discuss hardware description of CAMSS IPs, so far
> there is no point to jump to the practice.
> 
>> interconnects in the individual nodes themselves as - I've pointed out
>> multiple times now - those blocks have to ramp clocks and scale voltages
>> dependent on their particular use cases.
>>
> 
> Right, you've pointed it a few times, no surprise a straw man fallacy
> argument resembles as is, because it does not address or debate the
> initial point of concern [1], when the absolutely excessive complexity
> is proposed to be implemented for "CAMSS power island" and its IPs.
> 
> [1] https://lore.kernel.org/linux-media/e04cb9dc-76dd-4fa8-92f4- 
> be002bf7ee8b@linaro.org

You seem a little stuck on the term "CAMSS power island" the individual 
blocks within the CAMSS "island" are individually collapsible.

That is why they _must_ have their own power-domains.

The CamNoc is shared between these components but not outside. Hence it 
is more like a bus than a parent/child relationship.

As to your argument about complexity. I think that's subjective.

---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1513378828
	for <linux-media@vger.kernel.org>; Mon,  6 Jul 2026 15:00:46 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.48
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783350048; cv=none; b=XVZ+dh/0/sGEs1uJQr0IdAymFxf+o7abAuG9hCH+9c0qwX6u61zEy+qDwWclNILHnR80JuBtFfI9wW8GkTUMjUAB8uq4cgKH43w8yFedZ7JS7LLsowycbynkLe/W8WyXS3LKr0vBgQeY1Wqcy+eciT0FFcltxGJAlNLp7h4nor0=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783350048; c=relaxed/simple;
	bh=XedTG2IDkwdx5NfpwzrYaYqHqJ8175odIg3hePCzwGE=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=OYxsIlmMZ+s86y9K3vorertfObPvwAjwwTG4VxIc2dv2+g20sf5tXevv1x2uHZclUe5a0dVu0B7hz75kB3E3CCNSFHfP2d8LAA9HVsdBig/to1mIXdJZsb7JDPYEZc0BfqtRxPm3LRcOYEBz0Q5ohUlEUTwaIeIDLoyxQg/4RfI=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=kUX4AneU; arc=none smtp.client-ip=209.85.167.48
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="kUX4AneU"
Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-5aeb40ebefbso811762e87.0
        for <linux-media@vger.kernel.org>; Mon, 06 Jul 2026 08:00:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783350045; x=1783954845; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to:content-type;
        bh=60w9TL2qL6gOoHgKKaAE5HXP/8r+pqMsqQsZhkVDhRk=;
        b=kUX4AneUZOS98SlKNe8Kpsu7J0P4MKP0Q0Iw769bdSgq2ngBiT7fDInHF++nMRFrCF
         xCr4VYwhNJargur315nLxfFg1HNBLXAgoUWhcoj4LixhwqtTq1k7rwiz+/7PVawWgs/Y
         /LF0CckXf+RmmybNADKgzAzNIojPPO3DzkOiu0fD/sHHAGAWCLytekIdtTg4H84Hi3uU
         ZdOOOwEn6U2inW54wJNr2pM5Yj/t2eFvnCD9ycuktvaRYf0D+sVkYpGnP4ty+YVMTslw
         Qq8LRmB9KOmUoVAY1qaXp/tb9b4U1yYJa9TRhQK4tYzRo96k4pMLnh6O9jDgUxkVPVCT
         a6eg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783350045; x=1783954845;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=60w9TL2qL6gOoHgKKaAE5HXP/8r+pqMsqQsZhkVDhRk=;
        b=QhWdxAKJuRm35OrCN8ZNjwj3wdd0Oex+FQM7HYk8qdrUu7Pmq46E5G3C9bMmwLLLnw
         cMHBHVnOVzpwSOd2ZJyekTgh5aKE/tlCuZEXyZNBOVr1sGbFq7KfIUvuKmgEf4QPCFPQ
         fNsc0Jk7QwRG2YD/uI+oTZNbgxVpsvitN9y8KaOtNMuC314MRaz3qt/4W9GctWOiM3Xp
         sy2G4mWb11rXbUJg4iDeXrkUfHtNyBYzrpcsk3D3GYWP45bJrJ7IM3IGHyp0Cp1bNq5f
         MzYFRBxf/RZQ+NIppV4Abf7FmlmkA76ELzuFVMA9N3jwNPy5dYGRD0cw2FWbYeDkYPIU
         /n8g==
X-Forwarded-Encrypted: i=1; AHgh+RqLwfAZHJS3a7d8LquMT1RxG1OOCibJjnhpXskBl0beEaAN9VVSNhDYiS6+/t3iMSDezsE3qrV8jcXPAw==@vger.kernel.org
X-Gm-Message-State: AOJu0YyCIfsTOM2mZI7LXin8gFbHVzkONE87nlNbRdAtKjdb4kjgt58z
	TPlJJ4mO+nPlsHs5vLua/Vg9VIf9gZy74NiAHbvm/jJ0pQ9Xa7dgT71owhHhQlRSmyk=
X-Gm-Gg: AfdE7cn1gGH5rDTlUCHSs9NK2rBb4m17Q3lNQFvV8wLiNIwpWC72ZYZPkbGWf6Pi5wy
	BMF31+a2kEY7SeIIrCcv+mgw8OGGklo+DzP1FaFN2+uiAx5al2c2Ms8+s1DOZHA7v7Zhy3o4HZj
	23IUodyJNVffoQGzFaxRzXVPo8BUBzGDeh1XXbeHiL9eTP38tzi4G3s3IKpX0R0EoGZJ2wJMIWj
	c/AJKqS1fzSnkWT0E7B7HEp/7V/7cxGzdAR45YCUx8Cvj2cfDA5R7Hv0ft8ZRGbw5XWUweOoQu+
	zM40ECXnjY9PaU11naBH+5qDbc5m68NyktMFdG3rejLcr5P2dqp3T4OxyMKODD5gkYBxrILA47b
	Wbcr3mO6s0xWaWTCyuAhIlo9xVbE6OHpDuO+fawOKHurZADwTVZlY+YLPnzITxJhaYKNETx+SCS
	rd429kihhBBEMJKYSJyBoK2gY9pD+XgHT44D4ijHSFQHt5brkTkF3tD/bqqQYm554ul6s=
X-Received: by 2002:a05:6512:3d04:b0:5ae:b2df:c11a with SMTP id 2adb3069b0e04-5aed44f625emr1264574e87.0.1783350044591;
        Mon, 06 Jul 2026 08:00:44 -0700 (PDT)
Received: from [192.168.1.100] (91-159-24-186.elisa-laajakaista.fi. [91.159.24.186])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed13bfdf2sm2996177e87.58.2026.07.06.08.00.43
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 06 Jul 2026 08:00:44 -0700 (PDT)
Message-ID: <0a1e26f6-29be-4328-9b04-48daa6a0177f@linaro.org>
Date: Mon, 6 Jul 2026 18:00:43 +0300
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <48c3ce6b-1e2a-457c-93b2-8fbc0912dc20@linaro.org>
 <f3d148cc-496d-4301-af45-51d8921d7798@linaro.org>
 <3b0f7a36-05d7-417f-8efe-d6ba06488406@linaro.org>
 <6e8ccebb-4eb8-479f-a589-6981b543fc2b@linaro.org>
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
In-Reply-To: <6e8ccebb-4eb8-479f-a589-6981b543fc2b@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 7/6/26 17:49, Bryan O'Donoghue wrote:
> On 06/07/2026 15:35, Vladimir Zapolskiy wrote:
>>> omitting power-domains for individual nodes is incorrect. Best practice
>>> and in fact the _only_ practice that can work is to list power-domains,
>>
>> Let's step back and discuss hardware description of CAMSS IPs, so far
>> there is no point to jump to the practice.
>>
>>> interconnects in the individual nodes themselves as - I've pointed out
>>> multiple times now - those blocks have to ramp clocks and scale voltages
>>> dependent on their particular use cases.
>>>
>>
>> Right, you've pointed it a few times, no surprise a straw man fallacy
>> argument resembles as is, because it does not address or debate the
>> initial point of concern [1], when the absolutely excessive complexity
>> is proposed to be implemented for "CAMSS power island" and its IPs.
>>
>> [1] https://lore.kernel.org/linux-media/e04cb9dc-76dd-4fa8-92f4-
>> be002bf7ee8b@linaro.org
> 
> You seem a little stuck on the term "CAMSS power island" the individual
> blocks within the CAMSS "island" are individually collapsible.

It's not me, who stuck, but dt bindings documentation describes CAMSS on
a number of Qualcomm platforms.

> That is why they _must_ have their own power-domains.
> 
> The CamNoc is shared between these components but not outside. Hence it
> is more like a bus than a parent/child relationship.
> 
> As to your argument about complexity. I think that's subjective.
> 

What is subjective between one instance and multiple identical instances
of hardware properties? The first is simple the latter is complex.

-- 
Best wishes,
Vladimir

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD8EE338939
	for <linux-kernel@vger.kernel.org>; Mon,  6 Jul 2026 17:13:39 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783358021; cv=none; b=a1Z7DVTUfHSXco4ujibP5prSzTT9ILh6z9csKsUOrulXaQhjzew24NieCa/QI6Q3XsrJd0X7heLde6vDsLuUG89x/rugGXfvW/Xyneb4pCD20yR/gfIgMPb4kg3OwdMhgz2aiM6ERnFHrynAfAxxtjkrTV5BMIMMAQYGzecUd4s=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783358021; c=relaxed/simple;
	bh=MCc729RJhXwcN6DQHcIMn7v24UelBx5SMI5SMzKcwRQ=;
	h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:
	 Content-Type:Content-Disposition:In-Reply-To; b=nZ60URad8OAG1nxOJ9j4TaV8+Q0MZ6YH4LTlAcH9zEWcE5ID17AAGKVlMgHvzka/XinIwRMjtcH+bmMle0PKql39AZgTpHCgJwc5U+rjJrSWFZ/rAkycvkY8WJ+nwyeLWoNESPQ9YOwYGpvowUoJWrePdfTItLZn5MKb8Xov3xA=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre.com header.i=@baylibre.com header.b=VPp/K7mp; arc=none smtp.client-ip=209.85.221.43
Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=baylibre.com header.i=@baylibre.com header.b="VPp/K7mp"
Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-47122683cf3so2133681f8f.0
        for <linux-kernel@vger.kernel.org>; Mon, 06 Jul 2026 10:13:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=baylibre.com; s=google; t=1783358018; x=1783962818; darn=vger.kernel.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=MCc729RJhXwcN6DQHcIMn7v24UelBx5SMI5SMzKcwRQ=;
        b=VPp/K7mpu7oCEV5wS9BkjoY+PcSrSVOlvvMuCd+yKet0r0lgrAauN9X7zyFriLlCUC
         fdVZlV11MYTjaRhXu2wmxOGs4TKiQv1AKPtsAxQehxLdzcriW26UJJ6A3PL/4HwO1RZU
         EN0miJgog40UbZtw7F0WnXmztiWIfi0WMbMVuDEBE5nMOHpnEQVtgdVrsYwBzvw6KtTX
         997P3nl1MsANQeVRnfNbN8adC6GZpW6xN4PujZ3FMXSvbJ8+FBxs4t1QhNBhFvPZIRwj
         bvKJUBnA5HhKOTV8UqfiMUwS+sHDc54cQCoOqj12wR94VToLrAJQ9pINNd0zqbF6c2O4
         FyFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783358018; x=1783962818;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=MCc729RJhXwcN6DQHcIMn7v24UelBx5SMI5SMzKcwRQ=;
        b=qnrYCRXxcefpBUscNMRUSrur97DuiqxhYef5coXh0pbgOh9XGGecQVd1HVF9ONG8B3
         kV+vF5TV3RAAh6OiIAcm4Ys4aPQJDWOA6ykuKgLUdH7jNemLCTpCG3fuCiSnLR5UnrQ9
         SoT5wQPQqy1CVGP1oK4F1XbXoAwxJE06/Dl3wreRc360Z3f5sd5Km7Ln59NPFNroO+MM
         QJEU1ZNOA9K5UwlyTTPr4CUsp26tdCGgM6saJ2GKArhy7tLAEP3HO1/LYCh1rr50PbVX
         pfAR9/6lgud36NQVi0Lmada6w+X1vGPNtbDKrH9UEf3VbW6Mvn9LrjmaKhHxOK7Npn6d
         m1VA==
X-Forwarded-Encrypted: i=1; AHgh+RrLOapTncydqaXcOUApW9PZi0LyvK/nntg/JDpB+dhEjgqy7Iqj/kN46wO6jqHCjrR3GFMUPBzgDaqr2jg=@vger.kernel.org
X-Gm-Message-State: AOJu0Yxj7XDThewxKWY8tyAC5bnNkhTbEF5sYvxkA/xTRI0NMZLtUMHR
	2XDdAPvi1LDZeyWQ7rs8yoXhPYmlcWT6MvNSNLBkg8Omvxf15QGNcimiNJeUWaSBUswwMrLIaO1
	Xdm+z
X-Gm-Gg: AfdE7cmeYBG/Yn99/TgwMbT1wN4bC8YwYpJw+4+MSjiPcBibvE4eSDwkYBiKnTPZYP2
	S425DVbwoX4phTdNZXlPTHEYbKgeBrOkXOCJ2imP6Kc5e7tZx/S0EkwYIipE2M3Gpc5Nis5Ga5r
	oGLUrOL9FP46u2+0vTQMr2/Q9sxZxz74tspwdcqbQUkpsXh8fhUJZhvZMsoPVczzSKJBgzd+QLO
	Ezoyq2RvrYoh6QApyJS02BZ4eBAux84kJyiYJn7E3DVVf6dk1BesHgfrcixpMNVeE8xFNlAgrhM
	C5ymKARH1XyXdW4WLs3g7RcHKrS+T7qQenDfnVv5/fWtOdP3/Fe8HH5XbGT5tK5OCe2pgl7wT8F
	BeJ+d+04qTFaceKLI18MXlwZxJu/CZWcrrqYZ8D8QoBe/CcI55i2d7g/3atgD9BNrF89j6KPqOY
	sxYApbV6tzxWie4LkK+i4Mf3sJBgD5rRbTHM73tSjAfx0wHkQiGJowHCaeWxndCXKgyvGPxC8uH
	XNEXsspyAmFvQ==
X-Received: by 2002:a5d:4951:0:b0:46e:6210:ad4a with SMTP id ffacd0b85a97d-47de66678camr1240284f8f.5.1783358018039;
        Mon, 06 Jul 2026 10:13:38 -0700 (PDT)
Received: from localhost (p200300f65f47db0404eb41111570ffdc.dip0.t-ipconnect.de. [2003:f6:5f47:db04:4eb:4111:1570:ffdc])
        by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-47aa0960816sm25028351f8f.29.2026.07.06.10.13.37
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Mon, 06 Jul 2026 10:13:37 -0700 (PDT)
Date: Mon, 6 Jul 2026 19:13:36 +0200
From: Uwe =?utf-8?Q?Kleine-K=C3=B6nig?= <u.kleine-koenig@baylibre.com>
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
Cc: linux-media@vger.kernel.org, bryan.odonoghue@linaro.org, 
	vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com, mchehab@kernel.org, 
	robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org, 
	konradybcio@kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, 
	devicetree@vger.kernel.org
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
Message-ID: <akviE-ANATfFPdYZ@monoceros>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="2f7b3wyhcc726iyd"
Content-Disposition: inline
In-Reply-To: <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>


--2f7b3wyhcc726iyd
Content-Type: text/plain; protected-headers=v1; charset=us-ascii
Content-Disposition: inline
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
MIME-Version: 1.0

Hello,

On Mon, Jul 06, 2026 at 10:11:13AM +0300, Atanas Filipov wrote:
> +#include <linux/mod_devicetable.h>

Please don't add new users of this header. Only use the
<linux/device-id/*.h> that you actually need.

Best regards
Uwe

--2f7b3wyhcc726iyd
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAABCgAdFiEEP4GsaTp6HlmJrf7Tj4D7WH0S/k4FAmpL4j0ACgkQj4D7WH0S
/k59LwgAuTiKtFSft7ryJWgTp3oj8ijK3Ahhq+yQEbS4uMyOKNsstXY+Elk8JMCx
FxyXJEnGG2j+ygfRTonPe5nJ+MVypDKFkgwAw+Hh7enMUP6zOm57qLiVXH7B7EvG
PwFhKh58/IZjfVKTSQlqFg3+x2eC5YO9oYB+TdIxb8ZhWw1TPJAtJICLzcDQpZZC
NKDKzgQvTq6/x4i9Gio1RGSOHDlqMgKVkcDOWXhVNzZa1aETjAX4GsfiPciZEv4Q
MLhDaFZAj+kLgm6AjvvD4CM2/C2gBYXFXB7vHJBgVMBl6Mb/iJi/zltvGj069aHM
5+sMK+vEVq0oT22WbjohX9omeLDU4Q==
=WLCe
-----END PGP SIGNATURE-----

--2f7b3wyhcc726iyd--

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 44F1A3947B8
	for <devicetree@vger.kernel.org>; Tue,  7 Jul 2026 09:24:55 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783416296; cv=none; b=ggbj4M66gxL7smGKUE0gWDL63P37rbqrguh9n3pzIkrIE2vewpCagXfjrdUo10SvkQBXhaHd4EaItGGCwhsTAT71Rt2K6Fkp4ns6WInxzWdfA8pSBhfpwXbKjSlwdTIJhiGJop3KV1NfJGQQUU6siZSd+QnYfFuuZ+WNPPIsahQ=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783416296; c=relaxed/simple;
	bh=PiAuRzSrVirETb4Q+BzGnIPv2Qe3sql6vwSfUHtf+LY=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=C0rLfv/7JQeWAO/FHiqn9Jz0h86LYm+6yMLRJWEOBBbLPMMcJxjV9a4DSbRBphH7zUENVad/UMDBXf1s8UazzcWKplA/BzCvbOUgTFFnuWON8JiAqSPpsgt7HY99Ar4FkykA6KdNboZjEstjX3//RioBPUns47SgGCgGttjY5Y4=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=jc469BuK; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Ia1IV/Cp; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="jc469BuK";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Ia1IV/Cp"
Received: from pps.filterd (m0279862.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6678Dc6L3076590
	for <devicetree@vger.kernel.org>; Tue, 7 Jul 2026 09:24:54 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	CJJ9VNaQeNwXUw6b8nu2XuRz2oRtDJiBhPVRNK4TA9w=; b=jc469BuKXnRZ1rtO
	x4pnOasOJKO0SJMmI4FlsKicl0htYcIdlNlYQ+OVGt1f4QVNTbj5AkyqlbZsDgl+
	xjlopIg3v/Kf5BLrMrkqEMNrj7uO+XH1RjHXadz31UXHoflx55oVrNJ5LrYW23WU
	iPtpi92Ds4eEW9hP5TIoVAtZA21fXGcX23P17TwVBQA8T/Y76UNhBMGtRo8PJPtZ
	D9V2J4jK4YGlV5tRCFiwy5zrvuHtNnaig2FDlf+NdfQ8fwmtxvRHmeTkWp+lb70J
	AI8PS6/w1wdaoMAbOHvAIZcEOAlmhdE9xka4P9U23L/GOa2KAGWLQ8/Qfrr7EgmW
	r04jFQ==
Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f8vun0hf0-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Tue, 07 Jul 2026 09:24:54 +0000 (GMT)
Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c069f73e4so12841011cf.1
        for <devicetree@vger.kernel.org>; Tue, 07 Jul 2026 02:24:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783416293; x=1784021093; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=CJJ9VNaQeNwXUw6b8nu2XuRz2oRtDJiBhPVRNK4TA9w=;
        b=Ia1IV/Cp54L/zrFFbWavVePFv3GdsFcUEUZUyV3HUxfJ3zATY8kuAKHyRaceKZwNFY
         sTtIVvbYzFC6sk2YNK7iV9xjdDrvHk8d7dg6SX/PtBJlZ+7uRi7YVC12soWGChxWZswW
         bA614m+sLFsa49Huw0/a+TNvBYDz+m72HopIsEC6+n1D10Oko3mc7Zm8tD7O0fMOJkZ6
         drbwWFIi2wQUYSzM9m/tzhi7hkye6MW27tgzLcgde46qqxWS+iUOUChK2G7M5i6wiaij
         I+oPQcMnl/VseNmx8vqX0zo9dEsp+LhzKunqKPdOgZrT+4cR47kS8vqccRRUKSQ6LQef
         vhgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783416293; x=1784021093;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=CJJ9VNaQeNwXUw6b8nu2XuRz2oRtDJiBhPVRNK4TA9w=;
        b=OxbHGGl2sOLRmDkKjnu35O6bUU8xjZLcdGLO9NhvrJ0iGy/OJCMIOpQrXTcaXpQ4dy
         0klcXdXcy6VKIOEQawYkxavM2EpGGrCZu6lG7GGjMp8krBVgULiWSNZS0ng2cOinAxc4
         FcsOX1pCO0IKwWuAXR+QU0vJOh2f5X2FsrUcjgvVfvNGxJbTj6abStkMr7gnoPJ+7rob
         +CBkEoRH6etfT3hxNqq+q97ddIk6i1AIKhCuLRXDK6+GVVLkuLHWsqHr3eWJgZR3krog
         zPd2aNnvIsnTwAsGyWpgiAyK2tlfPJtvRs085+f7mATNRtcBRMU4DnLoEL+6iVLlkumv
         +l9Q==
X-Forwarded-Encrypted: i=1; AHgh+RphOxVGJXR5FD7rnh8a7JtVh4V11Oj3kaWBhGsNgN2l591+DMAmRAwVWszrYpceR0N3i2AtfvZz0k0g@vger.kernel.org
X-Gm-Message-State: AOJu0Yx31hxeXie652zaxwgqCbjt9DpOH0FE0elxGveF9lbxRST7Q697
	uNPqNLEHSwAfS9y41Z1L5fpp07Dmtl7lpepzTV45WwmFBNtCWnRpzfOVnY+v3DhGtjdj6g10lWQ
	JUapJYCxHFDQt0xpCycHGo4za2IsKwFu6ZAnREDZxu6EQ+DRzkgi+zav2K3LJ0wf6
X-Gm-Gg: AfdE7cmD8znlzn+HTONf86BOO0h7vHME/YonAiid5n16ifO8YC/JDeZ6KgsOXaziL/K
	Pq22BtdxPK4Qg13G6QlFjNTRMFsD3ZbByfQudQ4w+UW+vD8QPVk3d4yqzxgWmaJpwaGMDA5oyeJ
	WKMe5ixws7dlFkCf0VRDuqdjWxLyBItFMeJ0SqclDntSlYZGP8INzApVgvsRsyf9sDcjIBdh1nQ
	Xc5zez+Yly3Cafxr9mBwqJMzw8jrAj0MBKOzDoQtBaORnKccO+EtoItD39+1+yXVjgxNqU76jrA
	kqbAmiBqeEy8kDg9e+XX55e/1Z5j2BpEHZKbpdYXKSb29uN55PQw+Svklc5DHEcv7R7S3VhkRbd
	7d83ZtgKn9cb1/XCfsXrbSHISG3Kn0AzQz+8=
X-Received: by 2002:ac8:59c2:0:b0:51b:ff1a:3d80 with SMTP id d75a77b69052e-51c79ed7d5dmr19016111cf.7.1783416293517;
        Tue, 07 Jul 2026 02:24:53 -0700 (PDT)
X-Received: by 2002:ac8:59c2:0:b0:51b:ff1a:3d80 with SMTP id d75a77b69052e-51c79ed7d5dmr19015851cf.7.1783416293140;
        Tue, 07 Jul 2026 02:24:53 -0700 (PDT)
Received: from [192.168.120.193] ([178.235.128.140])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15adb482f7sm91703866b.59.2026.07.07.02.24.50
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Tue, 07 Jul 2026 02:24:52 -0700 (PDT)
Message-ID: <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
Date: Tue, 7 Jul 2026 11:24:49 +0200
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
        Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
Content-Language: en-US
From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
In-Reply-To: <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDA5MCBTYWx0ZWRfX3OiWMbRmoFdM
 hxtv6aUMDnIy3yqNcXyk+2R5SARBRfYOTEwmYp8OR5o9hKNvNXZ2MksP3c3v49REae4AUQX+xQF
 jNDy7cmIXB0UhAWiefAQS4tRqOMO9z0=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDA5MCBTYWx0ZWRfX5AD67ZB6fjOs
 FjvdGk3fm+xrRRlUjCS+bOk/Dm0uHuY6gsvk5+XvVWPpYJE7O2FmuTmN1p5sns+yQWJG7zZPThC
 uDh9zWE8jTjiyaxRx5HfbDHew5yMtFgmqnW6oNnCcxxZ1MxhoF3ypFFxTCY5LeL1eevRZg+ehNW
 AhoVUTVBsBP/5O1vmZYdxlK7L8D6up830nT/xYnRqydAW5e4mSWVHMEHLNHjys/jDIB1ovvWiMJ
 DIQ+oR23YPFB3HCbxIatNgbAFlli8p9bNHgHh0P2yelu+qG5srwAoFi9NbGB4tahsdZpLLENBw5
 RQeukXSywxAhuc3B4S8+Cnay4HoXtVNneQLyq6e9EkAtJaloOuoASouJLUOQdWcB74Olq5ye/F/
 H6KZI5RBmXjB6YOFJMDaYd1KuV6hCigHnDUg5G2umd9BoOeYFkqf5pMqMjsXH9hGHhBYTBy018c
 N8m4uJLKHYGShvZBQeg==
X-Proofpoint-GUID: V2PLoc19reNfzMhVUbRgORZHmXGpaZMp
X-Authority-Analysis: v=2.4 cv=N+IZ0W9B c=1 sm=1 tr=0 ts=6a4cc5e6 cx=c_pps
 a=WeENfcodrlLV9YRTxbY/uA==:117 a=PRfkaYvzSr8QmIIGAkY2Sg==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22
 a=VwQbUJbxAAAA:8 a=ZbAgfBTtTtZkgMFo8CMA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=kacYvNCVWA4VmyqE58fU:22
X-Proofpoint-ORIG-GUID: V2PLoc19reNfzMhVUbRgORZHmXGpaZMp
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-07_02,2026-07-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 spamscore=0 phishscore=0 priorityscore=1501 clxscore=1015 adultscore=0
 bulkscore=0 suspectscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607070090

On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:
>>>>
>>>> Why? The common power domain and interconnects have already been
>>>> described as resources of the parent CAMSS device, there is no need
>>>> to duplicate descriptions in every child device tree node of CAMSS.
>>>
>>> CSID, IFE etc are not parents of the JPEG encoder.

This is either a strawman argument or a misinterpretation of what
is being argued.

>>>
>>> The idea is to make all of these peers, eventually. Not particular block
>>> owns the TITAN_TOP_GDSC - the entire CAMSS block is a collapsible block.
>>>
>>
>> The statement provides the same information as before, e.g. it's found here:
>>
>> https://lore.kernel.org/linux-media/fbc018f5- c025-4747-85f2-53b45b0f0496@nxsw.ie/
>>
>> Â Â Â Â  There's no functional linkage between CAMSS/IFE and JPEG - they are
>> Â Â Â Â  peers within the CAMSS power-island.
>>
>> Thus "the CAMSS power-island" exists, and it got its hardware description
>> as the CAMSS top device tree node, and TITAN_TOP_GDSC power domain is
>> a natural resource of all devices on "CAMSS power-island",
> 
> Vlad honestly, TITAN_TOP_GDSC is provided to the CAMSS island - all of the nodes within it depend on that and it is _external_ to the block.
> 
> There is a CSID MUX on some SOC other than that I'll restate it again, I'm not sure why you won't accept it.
> 
> There is no dependency between JPEG and IFE, one is _not_ subordinate to the other and trying to find ways to invalidate that statement runs counter to the facts.

They are all subordinate to CAMSS_TOP - Vlad indeed said they are
peers (i.e. there's no co-dependence between them specifically, but
their parent is shared).

You can't use any of these IP blocks if you don't first power up
TOP because of the physical layout.

This is exactly identical to the MDSS case.
I was hoping this was clear after N other similar threads.

Konrad

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id B9A053C2BAF
	for <linux-kernel@vger.kernel.org>; Tue,  7 Jul 2026 10:00:22 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783418424; cv=none; b=BBIOIut++pzQ37UltuBnz4jO5RESt7HOfN/BWhLq0iXfvD3KuYRhKOFCBnoHmkBp9RrucVlhkLy4S/SUZmw8fD/Utm+cBkiTbudbPWYJaGuzk7sOiObsYF2N7XZ4NNGWCbqX6pYRw4OK18+u3TtqhFK1CpRSVYBPdU/y4vs6VPk=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783418424; c=relaxed/simple;
	bh=c65QzE5czqSOaABx6iCERkye7OSrbiesQtziyTE2+8Y=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=U2UrgQJC8ACaw0ds0LHb3Ts2sxm2K7o0MAbExDoMnl73uLp3av7MJfHfNuM5d06X4IUOvpsU6+SkXRjW4aplCkJaLiTe3Pq27YfN0jeKWSmLGzw2clXZ9tZSbHhAQ7GF6FpPkA/LTsHVHRDy/33voVLU7azhrOZwk9TLf63IJdA=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=uLBNXviF; arc=none smtp.client-ip=209.85.208.51
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="uLBNXviF"
Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-691c5776f95so7399809a12.3
        for <linux-kernel@vger.kernel.org>; Tue, 07 Jul 2026 03:00:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783418421; x=1784023221; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Tt0tjY8MMdm3JERGeSRwSamQ24kIgaZWAm0yZc7K9yc=;
        b=uLBNXviFBpmwLpqFh6rlkN0IIsxM8v2wKprHS5e8A6yHMKOYp1vlAvkdYyWLoCPiSG
         OBG66iCBdboxUmtggma6has6p1J2H38hzzutd+JzIWs4B8V6rrknPZHbALrnAwpQmW+b
         I6CelMXk+9Lxx44I20yS/epdt1VjoKBBQr8sZDfCi/jNyWQGhnTkHLRKN77qBOVx2FBr
         eM2LXzhsgxhL9oRgjHkWL8Ip/YqUXvVkdG4n9siJXcN6x4LAICHSXnPiBm7Saqvfyo/x
         x9brW84U6Ix7W9IfH8RhE4Bd7ba7YjO8XCnsKZxXZ7Pmu2m8cwZMfKeCHBKCd3JWfzKK
         S8HA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783418421; x=1784023221;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Tt0tjY8MMdm3JERGeSRwSamQ24kIgaZWAm0yZc7K9yc=;
        b=XXJfQo+kj6WK1pXBMlnKbfmoX1oJCmWHRBERdua8juYpeYWTJH0Lr05EnY6h4jBe4R
         Nm/NK+RSRXKN63k+KnT29xHo63hBPr2ts/dZphJbjtypxlTxiaf3rL4+w0+wR0kfITyb
         amxc/dWe2iDxrMGKnZ6NFwiNZyycbtKhi7P7+adgF4CvwWTKJHNym2byZUK3Fb7vPDZt
         a/vqqfbAL3LxH3HOyHzWxGIAcLghwq2YvUdFQHBEaZkSXIu0d5v3fJ8r95cj0ctFHGkw
         LZpNV8PJ/gcWtjYK/KsLVaA6PUDYYq8IFQej2CA6ojDOb1xDgbB8C1OA3D8T0Mm+5dPm
         yXZg==
X-Forwarded-Encrypted: i=1; AHgh+RpTmq3VetjU2Gf34rij/ndblQCjOlMCgO3dIeA7BPBDpKvzBKhar2lmkiq79tD926c4ubOsyxGkt6FsHEg=@vger.kernel.org
X-Gm-Message-State: AOJu0Yz2jFmkOMvY0QmYZ0iPi4W4F+/iG4QwPtQ1Hl7VzkrYtDT2OrLD
	ZVPzJxH1C+i7DMjbl5Lwnwb47cLRmBWHUywnzH0rr5T9L48fqunY0jtaeh99uUDoXaI=
X-Gm-Gg: AfdE7ckkzgA+hzXX7cr7R9z7qMyP7FuaahxgBAQQ21qkGhktZt/o8NYQfLuANxl/MUf
	4h2gJdhW5rguwSHe8BOiLJGBzzlAZa95DfRAMKyH3SDSYb/x6nOUrdRBF4t8OKOhrQ4rYVxzecS
	HahA/X88eh3FDlcldBCFnzpO02VfCMzhcx7qmJT3q1rVXR0zo3ct1U3kyIgR7GxwQyG6QLpOTx0
	I9MN7YK8RZgyDlfX34teFJEEit79v879oFt0ckTpmRCTZpW5Ar4Ll/PVeHNihXWUZub1dkVeBwc
	fsuanYXOllsrn13KdRSaG8pQdjCbHDnFgERHebqTV/1FTjjbR3zNTNstLdbCFtOdmjyh/ae63Cb
	f/PGd+Igw8RqPvbRBu5e7K12uq0XS3MZTW3MSo8GkBXOPjHVRawdtfe7oZASmlgNOhRuvxo1pep
	k2oKlmPDyMD4TuCswUlRyTCUjS
X-Received: by 2002:a17:906:22d8:b0:c12:7eeb:d2d5 with SMTP id a640c23a62f3a-c15a68d04efmr200611666b.33.1783418420861;
        Tue, 07 Jul 2026 03:00:20 -0700 (PDT)
Received: from [192.168.0.101] ([109.77.92.41])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15adb4416dsm98263066b.56.2026.07.07.03.00.19
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Tue, 07 Jul 2026 03:00:20 -0700 (PDT)
Message-ID: <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
Date: Tue, 7 Jul 2026 11:00:19 +0100
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
 Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
 Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 07/07/2026 10:24, Konrad Dybcio wrote:
> On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
>> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:

>>>>
>>>> The idea is to make all of these peers, eventually. Not particular block
>>>> owns the TITAN_TOP_GDSC - the entire CAMSS block is a collapsible block.
>>>>
>>>
>>> The statement provides the same information as before, e.g. it's found here:
>>>
>>> https://lore.kernel.org/linux-media/fbc018f5- c025-4747-85f2-53b45b0f0496@nxsw.ie/
>>>
>>>  Â Â Â Â  There's no functional linkage between CAMSS/IFE and JPEG - they are
>>>  Â Â Â Â  peers within the CAMSS power-island.
>>>
>>> Thus "the CAMSS power-island" exists, and it got its hardware description
>>> as the CAMSS top device tree node, and TITAN_TOP_GDSC power domain is
>>> a natural resource of all devices on "CAMSS power-island",
>>
>> Vlad honestly, TITAN_TOP_GDSC is provided to the CAMSS island - all of the nodes within it depend on that and it is _external_ to the block.
>>
>> There is a CSID MUX on some SOC other than that I'll restate it again, I'm not sure why you won't accept it.
>>
>> There is no dependency between JPEG and IFE, one is _not_ subordinate to the other and trying to find ways to invalidate that statement runs counter to the facts.
> 
> They are all subordinate to CAMSS_TOP - Vlad indeed said they are
> peers (i.e. there's no co-dependence between them specifically, but
> their parent is shared).
> 
> You can't use any of these IP blocks if you don't first power up
> TOP because of the physical layout.

Yes and I'm asking for TOP to be listed in each of the subordinate nodes 
for reasons given below.

But unlike MDSS - OPE for example doesn't require IFE or CSID to do its job.

Over time we can move the bindings to a model where the only thing in 
CAMSS is a top-level bus like declaration but _right_now_ what you would 
do is create an artificial dependency on say CSIPHY for JPEG.

> This is exactly identical to the MDSS case.
> I was hoping this was clear after N other similar threads.
When we split IFE, CSID etc up into their own individual nodes it would 
be possible to model as for argument sake

compat = "camss-bus";
power-domains = <TITAN_TOP_GDSC>;

jpeg@x {
	power-domains = <JPEG_GDSC>, <MMCX>, <MXC>;
};

What I'm saying here is do this

compat = "camss";
regs = ife, csid; // exisiting bindings for the last ~ 11 years
power-domains = <TITAN_TOP_GDSC>;

jpeg@x {
	power-domains = <TITAN_TOP_GDSC>, <JPEG_GDSC>, <MMCX>, <MXC>;
};

Otherwise you create entirely artificial dependencies between IFE, 
CSIPHY and JPEG, OPE et al.

And BTW if/when we get to the camss-bus stage of things having 
TITAN_TOP_GDSC listed in OPE and JPEG is a very small price to pay.

We've already agreed to gradually transition the bindings instead of go 
for a big-band integration several times.

---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 435AB26FA60
	for <linux-media@vger.kernel.org>; Tue,  7 Jul 2026 10:11:34 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783419095; cv=none; b=OwrxSUaAN4v6lbXWkg62Af7PNV0D3E97zQ5Y5k5f/AfN/OZ3OVJcCCxsMl/FudO2SsNt0EGoInDbMx6txhakgeQyqrp7wmNZjLdUd21xLBo7LUN0itKHo3N1ZHBoONi8iMJknC85IPyo53DPJtbLbyhR599NPmso2WxkOrUxXSE=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783419095; c=relaxed/simple;
	bh=6JL0HqvAqJn5maYjK3rA8vUw308VmjsNmU3ovua3Tc4=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=ULpNxARXJT4oi1PAGK2am9L5UDEuUZpfOIhfiHzEhuOeZogk/+WOC9sV3igsuEZBIScS++XMz2b48wq69ocvXESAbGn612vZ35j0GbgVFv1jMofYx9i3QPcleYc+XPKscgKBFV16xEa3kp5KakFHBf6lUeS1ua1CZCfYZTd2O+w=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=KtLPpa06; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YrtXcaqB; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="KtLPpa06";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YrtXcaqB"
Received: from pps.filterd (m0279867.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 667A7BtM3471645
	for <linux-media@vger.kernel.org>; Tue, 7 Jul 2026 10:11:33 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	SuuTWbnslk2/iT7IgwctDLxx0OexGzzGiaPtPGBGzo0=; b=KtLPpa06A5oo1t+L
	eIxFsHCf32opPqLCXZ3MLd5TpCSXBESUAPmbNluLiTU4CMxqbcJGrN6bAEKcGdmn
	GjOAcKt9lw7SNU5ZOUXAoal7+6epI/zKB3oMle6sdVJa1tb8AEsHoDy0wd1QNFYK
	35vwY5MD+AOIjHaP7LCrWoOVqtuFPrZ2R/kFUnjn2iA7vWmju94VCIjfm/Ago+dc
	M92fqp3S1SLaiUKma26iXOkhdQIP5TYZDqWDy9fzgiQ1qE15QnbBu4xcRxRHZw4S
	axlMOExk19kn68ctfOjN7OSa782NNQ/ipjAeies8cuYGur9Knk8CMT4iNYU2RepB
	0NMZjg==
Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f8ye0g0kj-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-media@vger.kernel.org>; Tue, 07 Jul 2026 10:11:33 +0000 (GMT)
Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51c2d2dd52eso3382111cf.3
        for <linux-media@vger.kernel.org>; Tue, 07 Jul 2026 03:11:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783419092; x=1784023892; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=SuuTWbnslk2/iT7IgwctDLxx0OexGzzGiaPtPGBGzo0=;
        b=YrtXcaqBeHxMYgHS32mLXya4P0mnmPInJeyTq5sLdnBAbYw16iKG48xYMi4e4g2kVq
         FHcHEKnYz6sdK6rg0x9p1mqeefca9bUrap32OyywKsCmonVpNUvcrXxHWSJBBbOHGiI1
         I0FLq+fz81EW30mo0SvzymqV9SB4g2w4p9VzevcelwdMWahhlEXYfupigkXMjaKKSu3/
         +muN54mUgMBraKIr0nuutLF+23WCq4JpfQBsvDk9U0JLWk1pLZrwFHvZ75Zh0Xa5XE8m
         xoJeq6xClisjh3CudLc954aGdkVM/2ReVOsyWCcxgI51nOW5CrUeYN/CH76IE5UJg9ez
         m7ow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783419092; x=1784023892;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=SuuTWbnslk2/iT7IgwctDLxx0OexGzzGiaPtPGBGzo0=;
        b=PdmQHJoifjShWaex1Badj4Aiap7Ck5ZbnpPkKktB7D4xitmTWMLuJ5c1Qq3MeDPCiv
         iasjlkSoWJsU+Igw8tHEwrIcFBgi3x+7/4OFNLqUTN+OB4HSj4KfMQfQLOkLLhNUm4Is
         Z/yWRFYQkM+vL+COJkCegNTyCr7Dff0kMV5BoFKfDxuE9TpA+TlocO/4Q1t/03v8rMHR
         Laq07gP4Y11TJSMd0Y8qjlddSfn0759iEAmxDAJw4dikvaHba4+1c7gahMX5T8oq3qlU
         cL6r7/3IZ8yLzwjko5bzIJYfmEPJYHqJFJ1LnpWGQP/ArlNwTE7l5kGekskhvW/9pRX6
         CdpQ==
X-Forwarded-Encrypted: i=1; AHgh+Rp3XXsX24u4qt5sbWydVz1F7aDCQ9r2tJQSaVnmB7jDQpq8o2QxarN/u8L88SL97g4F2Flk1RZgRajbyA==@vger.kernel.org
X-Gm-Message-State: AOJu0YzgMJJZsGjjLE7dHtJ6MPWcZseymVpul0w48QiL76VFsk1sV4ei
	MCCnbV9wm+S3k4KsNnufl5kdcOxlzD2gX8x2v65XWSK39FkRymclxXBF50GgphCg0ZI/+iozJRN
	bpGyQD3AiCAUc/licd4XjD1CAbLFjI/e5jeZYJlsW28bOauUn9ZXEfoQeaSp18jq/dA==
X-Gm-Gg: AfdE7cnAqTu3W8e7uWmcNScBolUL0tx+FlcFMuaaukMwk8IVRc3kZMHXFC6Y9qvSyP3
	wT8TqbZIL5J3v8nolQBNELGvSC6Kw/pzo4gTY8FDVZW3xPRE2oYyqIQ8/jlcGi6GzyupfO5MiX9
	jW0VdeT3ab3dengcwhhllpCpjP8AdBiqPpM7wpo0OpRHGfrQjSSrYjmctBReEjBJGVf/mR1t+7v
	ZgnGEx+5U5N1zkfB1pj7KOovHJqp+s+uCJK6xMuAyYM3fSwPOo0OxRhq3xRL5uHsUWyKulthDkn
	GSUyAAYLHX4HD31TDjShRjYud86Pj28qNAGk6PsEiIscgGPnk5+ixRW6+C8hZkulvAIPaw1lVSf
	P2Ubbqf5FseWmmGguCKftF1O0kkAnzZVVZ9k=
X-Received: by 2002:a05:622a:347:b0:51c:2101:f0 with SMTP id d75a77b69052e-51c4bda6c05mr134668971cf.2.1783419092387;
        Tue, 07 Jul 2026 03:11:32 -0700 (PDT)
X-Received: by 2002:a05:622a:347:b0:51c:2101:f0 with SMTP id d75a77b69052e-51c4bda6c05mr134668681cf.2.1783419091715;
        Tue, 07 Jul 2026 03:11:31 -0700 (PDT)
Received: from [192.168.120.193] ([178.235.128.140])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15ad84bc3dsm101215766b.21.2026.07.07.03.11.29
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Tue, 07 Jul 2026 03:11:30 -0700 (PDT)
Message-ID: <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
Date: Tue, 7 Jul 2026 12:11:28 +0200
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
        Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
Content-Language: en-US
From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
In-Reply-To: <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Proofpoint-ORIG-GUID: 0hlY8592TywgDy0hhdKdSlLKgu-QlkkT
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDA5NyBTYWx0ZWRfX43UOtiyySQUH
 +oVY6K/ZX/QLqPKK4KorJM/4xO2BntPLhrZGw0VZXER2AdwI0euxVAYlDqPDV3Q2eeI0vVmsP7T
 6FruKRfB0Yv7mGz+NZEJdwXbLJUNRuA=
X-Authority-Analysis: v=2.4 cv=SZfHsPRu c=1 sm=1 tr=0 ts=6a4cd0d5 cx=c_pps
 a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=PRfkaYvzSr8QmIIGAkY2Sg==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22
 a=VwQbUJbxAAAA:8 a=lEcDftd587Omc_cSSeQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=dawVfQjAaf238kedN5IG:22
X-Proofpoint-GUID: 0hlY8592TywgDy0hhdKdSlLKgu-QlkkT
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDA5NyBTYWx0ZWRfXxlKKAyEZ4qaW
 GyRwoCZ1+LQFw1lbmCujpduxAfC0/hCjajVSHmpxb8GCJwnIJxnjkGw8E1MTiChd0aZ17Nu2nUK
 bb7bWaMOqx8mB/tKtPejhU218hSMVb0znp2GmMEvCjSpeLEgt8FDOUrL1lYfvPWoE42OUSiVNwB
 5pvG1A65rIZUs1b0UbMWG3fU50B9N5jMrKAoZwRrHL7PBScAF45lKveEW8rT4t7g2cV53JrrkQ/
 FbjvuGzaJEdHCrrepC1ag78NEiAP50k0Em5nn/cnliCVRscr/jGnNFN1DqFYOxS5gD3oZcSArNS
 C8iRRaxNcvyfRbLi6HSfi0raytIeQbNHu+EOuALne/lKraVC+eTy1m+ebL3ITzcQtqZebmfDdWn
 JcQXjxLAISIpPeq6EuveunSPBy83NydnE7EaZmwBC/SSDQ/2na66eW/1cOyrOAGuuXZNrR+pLHk
 4JqugnIAgb/6y6j+Gkg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-07_02,2026-07-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501 impostorscore=0 malwarescore=0 bulkscore=0 spamscore=0
 adultscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607070097

On 7/7/26 12:00 PM, Bryan O'Donoghue wrote:
> On 07/07/2026 10:24, Konrad Dybcio wrote:
>> On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
>>> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:
> 
>>>>>
>>>>> The idea is to make all of these peers, eventually. Not particular block
>>>>> owns the TITAN_TOP_GDSC - the entire CAMSS block is a collapsible block.
>>>>>
>>>>
>>>> The statement provides the same information as before, e.g. it's found here:
>>>>
>>>> https://lore.kernel.org/linux-media/fbc018f5- c025-4747-85f2-53b45b0f0496@nxsw.ie/
>>>>
>>>> Â Â Â Â Â  There's no functional linkage between CAMSS/IFE and JPEG - they are
>>>> Â Â Â Â Â  peers within the CAMSS power-island.
>>>>
>>>> Thus "the CAMSS power-island" exists, and it got its hardware description
>>>> as the CAMSS top device tree node, and TITAN_TOP_GDSC power domain is
>>>> a natural resource of all devices on "CAMSS power-island",
>>>
>>> Vlad honestly, TITAN_TOP_GDSC is provided to the CAMSS island - all of the nodes within it depend on that and it is _external_ to the block.
>>>
>>> There is a CSID MUX on some SOC other than that I'll restate it again, I'm not sure why you won't accept it.
>>>
>>> There is no dependency between JPEG and IFE, one is _not_ subordinate to the other and trying to find ways to invalidate that statement runs counter to the facts.
>>
>> They are all subordinate to CAMSS_TOP - Vlad indeed said they are
>> peers (i.e. there's no co-dependence between them specifically, but
>> their parent is shared).
>>
>> You can't use any of these IP blocks if you don't first power up
>> TOP because of the physical layout.
> 
> Yes and I'm asking for TOP to be listed in each of the subordinate nodes for reasons given below.
> 
> But unlike MDSS - OPE for example doesn't require IFE or CSID to do its job.

MDSS also contains a number of unrelated peers - e.g. DP and DSI
controllers.

> Over time we can move the bindings to a model where the only thing in CAMSS is a top-level bus like declaration but _right_now_ what you would do is create an artificial dependency on say CSIPHY for JPEG.

I don't see where such a dependency is created.

>> This is exactly identical to the MDSS case.
>> I was hoping this was clear after N other similar threads.
> When we split IFE, CSID etc up into their own individual nodes it would be possible to model as for argument sake
> 
> compat = "camss-bus";
> power-domains = <TITAN_TOP_GDSC>;
> 
> jpeg@x {
> Â Â Â Â power-domains = <JPEG_GDSC>, <MMCX>, <MXC>;
> };
> 
> What I'm saying here is do this
> 
> compat = "camss";
> regs = ife, csid; // exisiting bindings for the last ~ 11 years
> power-domains = <TITAN_TOP_GDSC>;
> 
> jpeg@x {
> Â Â Â Â power-domains = <TITAN_TOP_GDSC>, <JPEG_GDSC>, <MMCX>, <MXC>;
> };
> 
> Otherwise you create entirely artificial dependencies between IFE, CSIPHY and JPEG, OPE et al.
> 
> And BTW if/when we get to the camss-bus stage of things having TITAN_TOP_GDSC listed in OPE and JPEG is a very small price to pay.

Patch 1 (+ devm_of_platform_populate(dev);) makes camss-bus a reality
today


> We've already agreed to gradually transition the bindings instead of go for a big-band integration several times.

JPEG isn't a block that's described today so I see no blockers here

Konrad

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 08BF93DA7F8;
	Tue,  7 Jul 2026 10:41:23 +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=1783420885; cv=none; b=eyi33v76FxLckTf2oJuAIXGd7qjoh9yWkRJ0QLi8N6qlrI4xPEgTrRG0UULTQFqJwUzwAFWmT7mFikthGtcU5GzDFv4HsuK+XxMDDoDMHvvEYr5N5zFi32VALyiSS+VYiVr2RcqGxhArAWZAVeGSQBOhz6BsWNsTZVwZbZCEiiM=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783420885; c=relaxed/simple;
	bh=3O6Ysib/EBFDCN2Vf57xgj0WB8+cWDuMialRUyEyo7k=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=ps22h5Uv789eiXmLITuSjnIcPWKs4/4o27iZU4Xq5k30KfUGz5nPXLOzmRywF5KJYx9Vj9uIGHSi2yZ8+6d0MrKz+C+plBnc/TTvx7SroO0tmtasrCAzI2CG2T8CAa34op60zuLJWfx1/u+9w13Qj/X1oLKLSZDLA3fv82RQGvs=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CvCduiWw; 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="CvCduiWw"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E36741F00A3A;
	Tue,  7 Jul 2026 10:41:20 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783420883;
	bh=KlgZ7P7IZ1tcZogmnB5NAiKND0y62Qae+ZrMg1gqv00=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To;
	b=CvCduiWwq1y4A4HzQHMAcWHhMnt4TuGRs/+IANYYWeuPh0SFBxYdkZY0iZRMEm5hJ
	 glDJVmyAGiKRPE911qxVo8M5sM5ssuwAO1WI+Q5XP3TgWgHFcTulS+OORrmrRZeI58
	 4DwB+pf4hWfDPBJLKIPeEO0RNJzo8Qbi0FBfxynSiLRB++fbXsbYJMiGwfOpmB/WnE
	 6LwKM94nkbSi0nLCUzoBJpIvqDAzOMvdbBJM6N6hplZIXNx5lZtR40TXIKpo0DRv2R
	 +LcUZC5/jJ34NNJK8eUmaofcQ6sZpVIMgErfH9Rlb2qACsjBbRc6SsQ9nBF8u25FBb
	 W5UGVhEYqhAMA==
Message-ID: <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
Date: Tue, 7 Jul 2026 11:41:19 +0100
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
 Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
 Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
 <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
From: Bryan O'Donoghue <bod@kernel.org>
Content-Language: en-US
Autocrypt: addr=bod@kernel.org; keydata=
 xsFNBGRJNSgBEADD7Vm2ZFa+v+JGJ2QYTJqQAkqis/uOHkhdFNXqpBarVBd47QU/DMNU5Rxg
 jedMQEmHoeDbJ6UOpjbrUQ63c5sgG1JbroHJJctwsEI75OOlekMuebEbjIJBLfgENGwPBMHv
 piv5TgCWr0VgYaXfp2eh2LINFywzqj823HiDPibQAXDrjzvF1ogksi/6cQZs8d4if8YQkLOr
 YISFouG+eR0nN1I7mUfIddXOWu6lJeTyqbWVurv58k2ekIXKaOC9ixLHFbcfYV0hOgRaTwQC
 B8CYF9nfqZla19iItfsN9QxN+ZdQjcRoYipp6HPCMfJlKH7GfaFcW93LKc4DKJ2lVL+pg/OQ
 lythZbjRPY492NG9kZ65aYstCs90uhMUEVVPuGUw7wBEku+6IEwZfrbMVKeWzLlPyM4Hv9hM
 8ktxSmxWsPTPqpBC8eyeAQLalMELAyVcZlkaCtEcbj7w4l/JkYz+4l37obG8ZD+B34udBUUz
 MsAJ8foDFrBh2MOFA3hxD6G90D23mmWsri7pnKA2tZs92aQX7Ee+FbCyg6g5ln62Sq83ZDbf
 53DdBs55EVpBadeInWmXhzCHPQx06H+CwTEjShTYIaMmBfrewvYUDKvFTC5iKQhAEUgt6i94
 JsbG7NoeqcxkUMcBOEUQ3uCQG1D70ugspgXc0wd3Rimiq6535wARAQABzSFCcnlhbiBPJ0Rv
 bm9naHVlIDxib2RAa2VybmVsLm9yZz7CwZEEEwEIADsWIQTmk/sqq6Nt4Rerb7QicTuzoY3I
 OgUCZ+R+mwIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRAicTuzoY3IOimUD/94
 BwVEJX31JRe2sxbB/e1w2p8x1bxvTw5AeIzpV3ox7coJg1bSU2mnGuj1V4o0Yxf/3zmcJzCN
 VfVjwRF8Ii3GnC7uUXk2t+87piQfKTyJAYQABhZUKgoVJbjJq/S+C3XCKIyBA+EiezoUsgsA
 jTzwU+FzV7zVWIXFPJNtBERLwboE9w9U3KjAExOa1kSY8eLrsg6kOwlOHWy5UsQqYOjrS96M
 mzm2xuc1+RCjrndAyYhCnrOKvJ67HsPnBeJCjw7ImGD/U1GchwYbX8o3DO3JNHm3qfC86ZqX
 2sCouENg4OzgPTtLKUrueM6xsu6KMM7gj17vxsiR3KQEoJnnMB8D1xtBofN3mFZE0wD9M24m
 8yGunZbtntMCUHzIrlJgAPwKWKuGOYtA8UgMTFkccnUJtQrg9KotKtEF/FuftG9zLG9XEkt4
 5ZdNgbSoLWgelu3T47mbOJ8LHhiLaCWP7yrovtVAvLUQ1BsiA42u8ECrFCFvQj9nrejE/ICv
 kP+uqcKtdDvP9HrIGycF1WZyfZLp0RvopKW92FLvI4I1QFWJ+wenk6+LGyJ5bzlrWzevjxmf
 nHcXE6sJBHrE7eijlbbImDAi3uLYN8Nd9Dm11IDAy4GAIQxSiQn0yblDhPiyGtchy80EVkCm
 g9k17Wol+2E2mC4DKgVdCkyUtTRSLgsJCs7BTQRkSTUoARAAuTnmWHBS6izRcEE93ajpzI7h
 dgQO4U3IRvOEsvIKR5NGcNEs0ngGebwsZ/lVULjN4vYU0LleqVhPBidNXUoZCN3A0F0Z2Ov8
 NZdef+2EhQPBVWxFO7JBzhe8Z3ALj+wFtlg8akJjBzU56azW/iJzAobqHVrudzKoO2b1/CMg
 VbiAQ+RXjgfN5kY/HqYDU7mw+hXuUV9PbtX1L8xqQQac95oM9rHzKHHpiVwxTeJnGQsa+THi
 Kze+YET3rCoGHMvOQEJhdrucTv5FpAakKdkOFNel9FFckLRKEuWgCzhpFsjQ7xbirQgFUxG9
 vlk1+q4hMRGNyEqoD6svYEeqbiUSd0oPUJeioiC3rNMRCNHLVrfZ2J6SCPkxfda08uzSdDQU
 1/YPjOh8ZtQDMu7WctZ3XO288Z1gyBR49V7fbFs2w4sQxG+h/enlxqP7fdw1mjUlZjU5huCJ
 ielS0oEaIpmUpkugli7x4WhwLnhK2EbSoz7nLBC0y+ALUOdMlz/Y1l9xRt+bkDhpmf4O4IcI
 MxgZ0QMLq8rHDkGaEbsgZZHQPS58T0XE3IP30Q9SNxsruCMXtd2hYtBssf/wohc6JVsTtMg2
 VYTPDPIFNZFSXupEJB7jlqpDWJ8ooJfJRLBatbjT5+mVQaMYB7Hs/t+zWYWaJKHyc8O6WLEC
 NUV5Tdt5EkkAEQEAAcLBdgQYAQoAIBYhBOaT+yqro23hF6tvtCJxO7Ohjcg6BQJkSTUoAhsM
 AAoJECJxO7Ohjcg6LuIQALnXt36OUuK43wqw6UYt0cnN6EbUqJHApAF5eNFn0jCCB2XELjSz
 JKJwuNAweowBdabiBniJ+501WIW+ewEsz1uby5fUQjZuCEsIkuaIluyfUFPb73qrQyAGuusd
 7teA4WT+/jUku9g7lX5sVoRCrKQPkd16f6Bzfztyqyjcn43/X5yQI+wlboQ6HuKe/3I3yiOx
 OgmCHzOawpC9PvhEcKj79RLM3Zz5Ts5AuHpRX70Jz8Be76LwVFLp5Msx3S24ZTU1lBo2uiJ3
 xSkay2lTpyVWRPx9vgcwzxGguOPJQJwsQeLb7wpoJMPpD3ERoaRii7Q7hvmxklpZjhKYWB3d
 t6nQ497Ek9loCrp3MIjRCSDN5xEGffiHks9yTeGMUQwO4tX8RE04uOJPkUY7uCFzFqN6/qey
 X3oFfPgkULMdiHofPAL1OskZSTzGPSfTYRE46NCJw8yoZBQ/oOyWeqaUQbK0wmW/g81wm8p7
 LKSGEglMpiX07M1AotgvylN5C8fjbouoK+/RAMsXkk8jba6rPfuuXPaDjCyyKn6zSVHETnHW
 3AJbgVY50T8STpnxayBQvWbCvu+6NOEjXCbyaOJig+5l0zlGN9XHjdANXC5HnwmyaGRL9YDq
 Jh2nVXVJDincOdQRdKcJjYLqaOAoWrYWSDi1iZGspHBTDrnOvfMQzzHY
In-Reply-To: <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 07/07/2026 11:11, Konrad Dybcio wrote:
> On 7/7/26 12:00 PM, Bryan O'Donoghue wrote:
>> On 07/07/2026 10:24, Konrad Dybcio wrote:
>>> On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
>>>> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:
>>
>>>>>>
>>>>>> The idea is to make all of these peers, eventually. Not particular block
>>>>>> owns the TITAN_TOP_GDSC - the entire CAMSS block is a collapsible block.
>>>>>>
>>>>>
>>>>> The statement provides the same information as before, e.g. it's found here:
>>>>>
>>>>> https://lore.kernel.org/linux-media/fbc018f5- c025-4747-85f2-53b45b0f0496@nxsw.ie/
>>>>>
>>>>>  Â Â Â Â Â  There's no functional linkage between CAMSS/IFE and JPEG - they are
>>>>>  Â Â Â Â Â  peers within the CAMSS power-island.
>>>>>
>>>>> Thus "the CAMSS power-island" exists, and it got its hardware description
>>>>> as the CAMSS top device tree node, and TITAN_TOP_GDSC power domain is
>>>>> a natural resource of all devices on "CAMSS power-island",
>>>>
>>>> Vlad honestly, TITAN_TOP_GDSC is provided to the CAMSS island - all of the nodes within it depend on that and it is _external_ to the block.
>>>>
>>>> There is a CSID MUX on some SOC other than that I'll restate it again, I'm not sure why you won't accept it.
>>>>
>>>> There is no dependency between JPEG and IFE, one is _not_ subordinate to the other and trying to find ways to invalidate that statement runs counter to the facts.
>>>
>>> They are all subordinate to CAMSS_TOP - Vlad indeed said they are
>>> peers (i.e. there's no co-dependence between them specifically, but
>>> their parent is shared).
>>>
>>> You can't use any of these IP blocks if you don't first power up
>>> TOP because of the physical layout.
>>
>> Yes and I'm asking for TOP to be listed in each of the subordinate nodes for reasons given below.
>>
>> But unlike MDSS - OPE for example doesn't require IFE or CSID to do its job.
> 
> MDSS also contains a number of unrelated peers - e.g. DP and DSI
> controllers.

OK, I can see how this thread is confusing.

The idea is to start to declare sub-nodes "on the road" to making camss 
into a bus. The legacy binding we have is really for the IFE domain - 
that is CSIPHY, CSID, IFE.

Right now the camss binding describes those things - so linking say OPE 
or JPEG back to the thing that describes those isn't right.

OTOH we _want_ to make the top-level binding into a bus, we've discussed 
that several times.

To transition from monolith IFE-domain only, to camss-bus, we should 
have the sub-nodes fully describe themselves as "camss-bus" doesn't 
exist yet.

Once we have compat="camss-bus" then fine, make that linkage, I fully 
support that.

That roadmap BTW is why I'm asking Antanas and Loic to make JPEG and OPE 
sub-nodes of camss - but make them complete sub-nodes - power-domains, 
clocks, nocs, including the TOP_GDSC.

It means we can work on splitting apart the existing camss node in 
isolation to make CSID, IFE as peer sub-nodes.

We definitely shouldn't be making those sub-nodes dependent on 
compat="camss" but they definitely will be dependent once we finish 
making compat="camss-bus".

When that is done I fully agree TOP_GDSC belongs in the bus node, like MDSS.

I hope that makes sense.

---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 ADC923F44E8
	for <devicetree@vger.kernel.org>; Tue,  7 Jul 2026 10:55:42 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783421744; cv=none; b=OCEv1snt8phyby2dSnS05cWvgrBEWwo34BpoXgz0asC8TgxCI0GqfBHv5epWy0s2remY/9JBRqHLkafKTaQYV2MY6cCkCdcKEK8BFm0i4MPKyyYX1qy5gNcnuB1LGXbIrrLiBZLCuUz3S4peE/NG1RoePez0fXRZ9DfL65L+7jg=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783421744; c=relaxed/simple;
	bh=/DSzcQElKq0mXa69/IQkZJAYGGmhD2CvPP4Qx3Y+EQA=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=QaQXZ/RabPcsu/D0tam3y3dzdhhVeinepP4td47FQo+mxHmFo3yZUPUujiDI5Av/sLcqXeWqTPNv+g/LafJ3W7EcbRn4npeW80isUCVre3N2/qbmXgRl/vWEKQ6PZbah7IMLbHHHpjCHpfUbV038EgYBhxk4I9sHj/XtH5lFnNw=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=UKdt/hnU; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KtUbdByD; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="UKdt/hnU";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KtUbdByD"
Received: from pps.filterd (m0279864.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6678E42u3004583
	for <devicetree@vger.kernel.org>; Tue, 7 Jul 2026 10:55:41 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	PPBAMksDVcTI0m93auLHoJ+VLwr7IoZUpwRRiS+q4QQ=; b=UKdt/hnUw4wLiLyV
	rpR/b9LZuITz9EXW/XgjtIbztvV5+dx9hqmObpB+DeC8aAEBhnFbEF+Eso77odbS
	TQf7Hmo8xbqd0xpFLVMsA1KfhOCHWcF8vQjb+S5CSLI1VcS0MQB7yChWQ/3B2cte
	BmB461TsnbM/bkp28ofoKorctAwAn5/X8AxsegGflq4qzs4uJthSwiveLHm1tXOO
	h7V2pa3VOh8l3j9IffGr9vOVOcaAJuKK0MhHGZOWaXOpaRVcNBhGTWMeN5FIKjJr
	pAdGwiQhxPEaJlu23ownx43hoha4M3AaAQAu+LOykUuYydPkQOWPsgg0wd+5xB0e
	LOUQZA==
Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f8su71k2e-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Tue, 07 Jul 2026 10:55:41 +0000 (GMT)
Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c20762d21so49060151cf.0
        for <devicetree@vger.kernel.org>; Tue, 07 Jul 2026 03:55:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783421740; x=1784026540; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=PPBAMksDVcTI0m93auLHoJ+VLwr7IoZUpwRRiS+q4QQ=;
        b=KtUbdByDai3yD183ek7z/6WqwIgQx8RsRyQhPEGd+2VNtKhmKhjMGmVqFBVZVzk7gd
         SiXo8pT4u+hOidKaGcMCTkmF3p5W+gk4ckPdnik+/m1PSKYChpOBillHwF0Alwu0jPUG
         EB058SaYkE7UV1A2PayavE4MzC4AjiZFNYVb3/G+xRf21drbSKBNmkTkez9gzBEkDGIO
         jzTvyh44YV1Vz8ZQYS9at+Wf3EFiU7RD0C0zpvDBx/KIX4uBWoq41oeN0MZr8Tq0Z1T/
         sSE5kS2wxaagF7zV4YoVdLHzVg6s2qLi6nm2GfkQadi6N6DCYkxbYnrCwpgZC0YVwU92
         4fsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783421740; x=1784026540;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=PPBAMksDVcTI0m93auLHoJ+VLwr7IoZUpwRRiS+q4QQ=;
        b=ZfMiqKWAfkXvs1aq96fVwSBlZ0NiI+kZgZBmc91/m6yyVGGmqJFFOxThVQ+L5owyIB
         LzndD5+g5hJjbLRFsA4sxW0T5meopKv0uqWDz2gFcPl5i9AjJmWZSb45EuBFVNwEmchG
         YPnWHS6umFQ15aroQqckbxsTf/DObkhGXOE9gH/bi66ASrLHMIREWuSTV5ejUKr3mH04
         1iMvxC3YdBaFrsP6iCJ4EyEp68ieSRXJSBI5gbdmWbXEAAkJZY0wr8Jfaf17LcIr+Nbi
         SaOomiPeSDhB1GV/rlEQzcX4s6HBbxcNQbO4bX2n6UBH0ep1eNOu7IH2AGkBOeJ/iL23
         bxng==
X-Forwarded-Encrypted: i=1; AHgh+RqHeAf0f4bMboukP4yPza45XG40bDh6Iz/iYEmlrgu9AkzdPPJ7Bx6mxev5FgRtfmMkzeT/6RDlFZFc@vger.kernel.org
X-Gm-Message-State: AOJu0Yx8zvMBy6B4a9gg5Yd3ySrqGGFyuIYISkbyPsOmf24aF2+nz9dA
	OdJg0FBWcnDf/BzFDwzno3B7fxbalR0imwjSfKBp2Za49WFPkI7DMhq4K8ZtlJeiRIaE2bEQp0o
	RUXi4cY+EeE1+X76hohMIY2gsL1rcPX4hnuLVTJM3+Q/uQzDtL4BRnnm4zLiR4L8O
X-Gm-Gg: AfdE7cljivIqvDp49jh6I59V1WgXjAsIaGk1D9HS3/vus1B2IjxBECHrzUgMnDNJcX5
	pTOLvn7j4UZPAbTwhibLbqhJPSj8gbbd4tU21MgjN59G1FAHeOUU+9WXz6XiyS1AKJ8g/Ip5cNC
	/ejcML0wQbtiQ2cakL/yuVDPT040/T5gL2m9UXGk+jEkbPCrGlRLV5AaCMv4/+Kg8MMicocWmw2
	OIjBrDenlKs0lO8Mu2N11AnXF8NEPeH+rspKSf/uQGQPk+VZNLBSva9JiZLP4/EOyAW4tn/27i0
	ujFJ+1rjQ+lS6S2YlGs0ulic8iDUhTMXjl0BUwPwqhwf11SpZDG5w1rQeJOAVga210WqqiftvIG
	oB8teDTn/OHeCDQbZB3UQ515eoeGcTl2/I07ZHRA0Irbjra8OhOF1+Vc5uA2aSvEra0CPkYlHKO
	un7WRwWBg=
X-Received: by 2002:ac8:5d8e:0:b0:519:8998:661b with SMTP id d75a77b69052e-51c747bb756mr47970981cf.20.1783421740194;
        Tue, 07 Jul 2026 03:55:40 -0700 (PDT)
X-Received: by 2002:ac8:5d8e:0:b0:519:8998:661b with SMTP id d75a77b69052e-51c747bb756mr47969931cf.20.1783421738054;
        Tue, 07 Jul 2026 03:55:38 -0700 (PDT)
Received: from [192.168.1.31] ([85.196.172.179])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15bc428775sm3346466b.6.2026.07.07.03.55.36
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Tue, 07 Jul 2026 03:55:37 -0700 (PDT)
Message-ID: <7e36238b-96ac-4269-a6e5-0a6763e437e7@oss.qualcomm.com>
Date: Tue, 7 Jul 2026 13:55:34 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
Content-Language: en-US
From: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>
In-Reply-To: <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDEwNSBTYWx0ZWRfX/gnOHKibtg0o
 w7Dm6OlAfAOWwuV4lRn3s+kWYmlErfwqPEJtjz8s9JcKggfOYTtFZOiSwZN8Z9YwJ9/+wvTuIJz
 ke/MQmTnmY55pOL4rKKrcYsDPTOuf9JEseAtOT5hQinVzIAD7lBuHSGk4vcpl7evXcLaowFNSxb
 pKSImdcsvQvmuSsShcJr5Fv1uqyvswS/4W6i1DK4e/yHplUcfW5OAWoXbpJykKYQvRD+SJ64ffz
 9YTVqkZUCZ+RtmZg03Dt/zRnRF6ijxqw6dxinc/Eawor7Rp4vMSVU6MKnTh+MaQ5EhJioqH3Uh1
 e4nbORgyZPkyXgezMHh33z6eKdwB8VORgHJXcFcT7Rx9rdR56pzUk1yUoOJAqjsVnjQDh9uZhk2
 9chIyCgCEqDasWslPDVB2AoPvvH05E1szXAlsdvX3Fpg/uUt3zKb0Lv0q2kZTl69AyLf6yhhZUU
 VR8u+4Goc6QIwlEovJA==
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDEwNSBTYWx0ZWRfX0MafXr3xRIov
 jc7dFW694IzWaTgXZIZUoZvlhyYRkJ6F+Fg9so2L/ttidBx8XH/4V2x+G/xcRqTxCxP3iTUlPmW
 xA0tfe42B2/v9TSZUHSSFQ1E4TOSaCI=
X-Proofpoint-GUID: ohLB0B76V50LurpUOKl857otCC4AKKv2
X-Proofpoint-ORIG-GUID: ohLB0B76V50LurpUOKl857otCC4AKKv2
X-Authority-Analysis: v=2.4 cv=HN7z0Itv c=1 sm=1 tr=0 ts=6a4cdb2d cx=c_pps
 a=WeENfcodrlLV9YRTxbY/uA==:117 a=Q/e3f29T3Hw2hnAEzBPF7w==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22
 a=g6G2TVJU6GBlO6KxhuQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=kacYvNCVWA4VmyqE58fU:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-07_02,2026-07-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 spamscore=0 priorityscore=1501 malwarescore=0 adultscore=0 clxscore=1011
 bulkscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607070105

Hi Vladimir, Bryan,

On 7/6/2026 3:00 PM, Vladimir Zapolskiy wrote:
> On 7/6/26 13:12, Bryan O'Donoghue wrote:
>> On 06/07/2026 08:11, Atanas Filipov wrote:
>>> Note: The handling of shared camera subsystem resources (power domains,
>>> interconnects) for child IP blocks is still an open design question.
>>
>> Why ?
>>
>> A device needs to vote on its own interconnect and power-domains on any
>> bus. A sub-device of another device may wish to ramp a clock for
>> whatever reason.
>
> Certainly a CAMSS device will vote on all needed to it resources, some of
> which are shared and got their description under CAMSS device tree node.
>
>> There is no "master" device in this block of devices - save perhaps for
>> the CSID mux / wrappers on some of these parts.
>>
>> We have shared resources like camera noc, system noc and external 
>> clocks.
>>
>> Please include power-domains and interconnects.
>>
>
> Why? The common power domain and interconnects have already been
> described as resources of the parent CAMSS device, there is no need
> to duplicate descriptions in every child device tree node of CAMSS.
>
The initial patch and work for JPEG was as independent driver.Â  I agree 
from hw perspective it is

part of CAMSS subsystem and maybe from design perspective proper way is 
to be child node not of the CAMSS.

However the resources shared by both can be abstracted in other 
frameworks, example ICC voting allows to have shared

clocks which can have policy to keep the higher rate and satisfy both of 
the HW's.

So maybe it need to be decided:

Do we want really additional logic for handling CAMSS resource of the 
CAMMS sub-devices by the CAMSS driver and create separate CAMSS API,s

or we can use existing fw's for that. ICC, clock, OPP which all allow 
sharing of the resources. Also there are cases where CAMSS and

is not needed but JPEG encoder is: Example RTSP streaming or UVC 
streaming which require jpeg encoder.

Anyways my opinion:

1. CAMSS is not prepared and not ready to handle child devices, only the 
populate child nodes is not enough. I think it is little bit mess,

some of the HW;s CSID, IFE etc are instantiated directly from CAMSS and 
jpeg and Ope are described as child nodes.

2. Jpeg on its own currently does not have any dependency with CAMSS 
driver code. It can use shared resources without issue and leave

the ICC, clock and other frameworks to do the job.

Also i dont see the reason to mix the both works. Lets have it jpeg as 
separate independend driver and the create series and rework CAMSS

to child nodes and move all existing sub-devices as child nodes, and 
then move the jpeg and Ope.

Regards,

~Gjorgji




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 110022E7393;
	Tue,  7 Jul 2026 11:13:25 +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=1783422807; cv=none; b=fr30FE5d3g91lUc9W5DkgVoUDB3ZKaBewwYQyPt0laIJ2G3uwGsZw10ZJiXqo3vHotn8Xns2NgZNEh82Ml+XbjNNOTzQEV5UyVCTt8ahhlus/XTZ94M44URCVJ/qW65IQAc5ff0uBcre0yfFZ4DEFUrlmGtwzvtAv4w+bntNNQM=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783422807; c=relaxed/simple;
	bh=ahmwbermViJuGDO0JlmdI+XCGsT2mqWi1L5lo+gNyC4=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=VviVKHAZwvzBzTERChwa8vJqwwqsrrgKPo9eUnGIrRoVVBAQCve7+C6sDjHHdGQr4H43S4uexAnTfv1LcefUXKM32LulIDDUh7QY2dVSAQpIns39HYnLijFiXOdv5NBFAmFRmUo+pH20+wqhMTPDO++jyV5FREN9d+sMrU8epY8=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18
Received: by smtp.kernel.org (Postfix) with ESMTPSA id F036A1F000E9;
	Tue,  7 Jul 2026 11:13:22 +0000 (UTC)
Message-ID: <6b5e573a-c13d-418c-af5b-759deb40bfab@nxsw.ie>
Date: Tue, 7 Jul 2026 12:13:21 +0100
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>,
 Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
 Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <bqRcqVTcU8Jl1ClRlFeaaigWdG8pICB20xCQDPVqOB5QHXdtjWu1UYXWqhvyAuj30sim2P91BHvVLHLYgdD7vw==@protonmail.internalid>
 <7e36238b-96ac-4269-a6e5-0a6763e437e7@oss.qualcomm.com>
From: Bryan O'Donoghue <bod.linux@nxsw.ie>
Content-Language: en-US
In-Reply-To: <7e36238b-96ac-4269-a6e5-0a6763e437e7@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 07/07/2026 11:55, Gjorgji Rosikopulos (Consultant) wrote:
> Hi Vladimir, Bryan,
> 
> On 7/6/2026 3:00 PM, Vladimir Zapolskiy wrote:
>> On 7/6/26 13:12, Bryan O'Donoghue wrote:
>>> On 06/07/2026 08:11, Atanas Filipov wrote:
>>>> Note: The handling of shared camera subsystem resources (power domains,
>>>> interconnects) for child IP blocks is still an open design question.
>>>
>>> Why ?
>>>
>>> A device needs to vote on its own interconnect and power-domains on any
>>> bus. A sub-device of another device may wish to ramp a clock for
>>> whatever reason.
>>
>> Certainly a CAMSS device will vote on all needed to it resources, some of
>> which are shared and got their description under CAMSS device tree node.
>>
>>> There is no "master" device in this block of devices - save perhaps for
>>> the CSID mux / wrappers on some of these parts.
>>>
>>> We have shared resources like camera noc, system noc and external
>>> clocks.
>>>
>>> Please include power-domains and interconnects.
>>>
>>
>> Why? The common power domain and interconnects have already been
>> described as resources of the parent CAMSS device, there is no need
>> to duplicate descriptions in every child device tree node of CAMSS.
>>
> The initial patch and work for JPEG was as independent driver.Â  I agree
> from hw perspective it is
> 
> part of CAMSS subsystem and maybe from design perspective proper way is
> to be child node not of the CAMSS.
> 
> However the resources shared by both can be abstracted in other
> frameworks, example ICC voting allows to have shared
> 
> clocks which can have policy to keep the higher rate and satisfy both of
> the HW's.
> 
> So maybe it need to be decided:
> 
> Do we want really additional logic for handling CAMSS resource of the
> CAMMS sub-devices by the CAMSS driver and create separate CAMSS API,s

No, agreed.

> or we can use existing fw's for that. ICC, clock, OPP which all allow
> sharing of the resources. Also there are cases where CAMSS and
> 
> is not needed but JPEG encoder is: Example RTSP streaming or UVC
> streaming which require jpeg encoder.

Yes.

> 
> Anyways my opinion:
> 
> 1. CAMSS is not prepared and not ready to handle child devices, only the
> populate child nodes is not enough. I think it is little bit mess,
> 
> some of the HW;s CSID, IFE etc are instantiated directly from CAMSS and
> jpeg and Ope are described as child nodes.

That's not the strategy.

The strategy is gradual transition from monolith to bus.

https://lore.kernel.org/all/d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org/


> 2. Jpeg on its own currently does not have any dependency with CAMSS
> driver code. It can use shared resources without issue and leave
> 
> the ICC, clock and other frameworks to do the job.

Yes as a fully self-described sub-node so that we can do 
compat="camss-bus" with the minimal amount of additional churn on top.

Make JPEG a distinct standlone node now, and you preclude the bus - you 
have to make the argument to Krzysztof, Rob and Conor that "the old 
binding was wrong but let me away with a change to it now"

Not an argument I will be making ;)

We should put the JPEG, OPE, ICP as sub-nodes of compat=camss so that we 
can make

camera-bus {
     compat=camss
     power-domains=<whatever is common>
     csid {
         compat=csid;
     }
     jpeg {
         compat=jpeg;
     }
}

a reality.

Put jpeg at the same level as camera-bus and you basically preclude that 
model.
---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-4320.protonmail.ch (mail-4320.protonmail.ch [185.70.43.20])
	(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 421AA3F4DD6
	for <devicetree@vger.kernel.org>; Tue,  7 Jul 2026 11:15:51 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.70.43.20
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783422953; cv=none; b=jMEC2CBuQyEIqeKDlg5/d7xQcg67+25Ob6U0v35i+fT0LTrID8YQRff45Gje4EOJx63RyJGvUj68NxYr5B65JPsu87mDoJfCOpF/W03pSwwfGUaOOXHAQ0jBtZtc1npN0lCQhHTqrR0UHpBYp8N0/hefTmvtnWzt3rzAzFun1FM=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783422953; c=relaxed/simple;
	bh=qI+Ei3tsAZSAGfCfZ7Shquqehahpqhe5H5hktkr4fto=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 MIME-Version:Content-Type; b=YCTj1lgCcKYdyedvrjc0tiQNUvZMRX2Y/QASqdgAeFkvMlyozeKA6x1rEjKT7eYjw5UrHCXT90IRmuyvaPgB6ypo2qivO3e26+dtJrjG6WSv/NcgEOaHATm/dWKEhEfMR56zzxF5c0H3N32fQQHnHjJ9/SBIcBdTCSbDVpq97yI=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=nxsw.ie; spf=pass smtp.mailfrom=nxsw.ie; dkim=pass (2048-bit key) header.d=nxsw.ie header.i=@nxsw.ie header.b=l6K72T/N; arc=none smtp.client-ip=185.70.43.20
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=nxsw.ie
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxsw.ie
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=nxsw.ie header.i=@nxsw.ie header.b="l6K72T/N"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxsw.ie;
	s=protonmail; t=1783422943; x=1783682143;
	bh=icBPuK8zJs9D4y8hJQBR50mYz7RAhS4xWm+I4ZBkNCM=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector;
	b=l6K72T/NwYBgzJmzdNcQcNFCsYmg3lXAUeOuJHCC+uDvqGyg3MRMiLImBOURLPWoo
	 PW6CCOUl2TAdPWAd4kWVeIXyxx/I4gWvmNht26gQIoKr6igPQgTliCNNds7y0801en
	 SZRrWFmmLxFfLdxqtZXGU18i40nETomBVF8CSCIEwDd7G7b/C2pBN2IBfHknuNw9dz
	 e7o6OarQ1ErNeX6WGOPXj3ZDEYPDSkmp1s9ttYj2DNkaS/i/NN9QukqmRFZyK4NdC+
	 osh1/HQQhsYPRDzqEHBhNVR45ndJX/J2Oq9K3Zq/TO7Y2kryfqXuAC4qtye7mmQ/2y
	 u/NHRGNXRgF4A==
Date: Tue, 07 Jul 2026 11:15:40 +0000
To: Bryan O'Donoghue <bod.linux@nxsw.ie>, "Gjorgji Rosikopulos (Consultant)" <gjorgji.rosikopulos@oss.qualcomm.com>, Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>, Bryan O'Donoghue <bryan.odonoghue@linaro.org>, Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
From: Bryan O'Donoghue <bod@nxsw.ie>
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
Message-ID: <4a2c098f-5d46-4339-9b09-e0ace37e4052@nxsw.ie>
In-Reply-To: <7e36238b-96ac-4269-a6e5-0a6763e437e7@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com> <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org> <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org> <7e36238b-96ac-4269-a6e5-0a6763e437e7@oss.qualcomm.com>
Feedback-ID: 54899767:user:proton
X-Pm-Message-ID: ae16e520ab282b7e3808bbc22be9f004beb69630
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 07/07/2026 12:13, Bryan O'Donoghue wrote:
> camera-bus {
>  =C2=A0=C2=A0=C2=A0 compat=3Dcamss
>  =C2=A0=C2=A0=C2=A0 power-domains=3D<whatever is common>
>  =C2=A0=C2=A0=C2=A0 csid {
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 compat=3Dcsid;
>  =C2=A0=C2=A0=C2=A0 }
>  =C2=A0=C2=A0=C2=A0 jpeg {
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 compat=3Djpeg;
>  =C2=A0=C2=A0=C2=A0 }
> }

* compat=3D"camss-bus"

---
bod


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 648443F9A05
	for <devicetree@vger.kernel.org>; Tue,  7 Jul 2026 11:20:31 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783423232; cv=none; b=SwXibi/VGrS7UVR1FspCUnUYh0UYcivZnveayV2ZcUG0ywlx9vJo7bWuw1mD7LbIPUSSJrGxgNRP2FpW903Jz13q7npagKqvBkMkzKNGow1ugymph3P4OTDsJeVmgDOWzmgKTzc8vTdRDZW1LrTWD3k1BoZ2ENlf4nni7nJlJYw=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783423232; c=relaxed/simple;
	bh=9JF5HwykZ2AmRNb+eHzU8Lff4gCdca3zI5sJWYFn3Gs=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=ZQywE4pDoZho5t0XTuFWn1CTmTBdnR9FGBsGca+QwixpEq6ALM5WQYhO2jXGdu+PPJb2mBoNLTMREcRpz2P+0uK781+vPYQKPMvwExrxNWAVFey6+ZUwyRFDNX7ybroSmWKVGCtWearopLkWKI+HDZA1ZC5ZlbNQsPlR+7H/gyk=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=cIUj0nlc; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=W4X9ISlB; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="cIUj0nlc";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="W4X9ISlB"
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6678Dm6X3138668
	for <devicetree@vger.kernel.org>; Tue, 7 Jul 2026 11:20:30 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	ozhkHGrtbGn2tsUAvP7G2WOvGFBIMdlw1yv9mdDL8IE=; b=cIUj0nlcnv6d9nH1
	AguUkjqucMzGKOaEs8Q0Q9lHHBacaIqkTlDmmt6pPK6ue/fvmmkmm4TLOFV6nz2h
	hbEzRBb/d7tCncrtdMm4I4fZWVDyt1aukWRNjk/4Ap9YCW2jLPP3+z4Og78Vd5cz
	gAFbPoEJ/axOaeJtehRCbGytjm40KEIesbV/4rlXOduJpuXYM+cH1tKv7qPUXrSM
	MCK6ywHH3iOVuid+eHx5ZofJfDbPgQfta8ZQxHPlS256S4n0Hwwv5ZPC+lWPHmSX
	iNldsNKFroo/HK/iCRIhwVG6BeyA4Mu9eGCaA9lP9na44QM3l3f2CIA3wjVMH/2/
	CZZvkQ==
Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f8t159psh-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Tue, 07 Jul 2026 11:20:30 +0000 (GMT)
Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51c1d30035dso34272511cf.2
        for <devicetree@vger.kernel.org>; Tue, 07 Jul 2026 04:20:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783423230; x=1784028030; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ozhkHGrtbGn2tsUAvP7G2WOvGFBIMdlw1yv9mdDL8IE=;
        b=W4X9ISlBW3HIFAaRyZGvhRKy9eJKiK6sAHhVvzjwE9jHai7G8HCszn6ggX8U38y8zK
         FvaHOEM6iwvHS0UL5Z8REm8hLxVF9rec+1s3s5ZBD1MA286qwE8MgVQ81/tbc3GulzIL
         2EMEr4WtzGl1Je+TrWc9wLMxmaqHkDHRvM+6qhVypuatYo608q/plSLzas8t75Wfw+Kx
         I9zVoE9C7SFJdebooAtCZNKA78mq+K48M+Q4+DxOLleAYl/46o61ILwz1bmDqPctZPaN
         wafH+w1aSX16Z45vzgedk8l/cSIsTyDOw7ipDYtIwH/JAfUb9XsF1i/04dSfmAtXQWQV
         bVNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783423230; x=1784028030;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ozhkHGrtbGn2tsUAvP7G2WOvGFBIMdlw1yv9mdDL8IE=;
        b=esPV6JrxUyakYbMgaLCmeyk/JJAW8CU36zYvcjxbpZW5YQxQ1EfWxsbuppe9xXikdY
         ccPJq/684EGzlwsvswqLxiYkw10qHJLHwxavlA2wVOKKOOlTnbsd84R6C2CJf4JoHqge
         cVhdFlAWqra1Q6CZydPIySAlFQYyOdTsQ5Vb4G54n9RGTgWXPJI/wb3HuMD3XnTcm8Vf
         KtVzytUvCNNUZDZ/gRURE63XZH1sycJvetnXiHuU2jbLkC526Cz6MJG7NAiG6yhhYqXY
         LzsmoK2uttbEqcRQkjZx22tC8GM+75p702MdNfXv6ZoC2tcqn2XVMJlPxSb8xfLXyJbo
         ZI7Q==
X-Forwarded-Encrypted: i=1; AHgh+Rqui0+fU7eFKAE8uN2wZdHAZ7jGVvYYQUmuFUifYhyScTuykl398pDjidj5PsWHe4OYCEIAhl1CO3Ej@vger.kernel.org
X-Gm-Message-State: AOJu0YzBng3051KvUzz05Tfww7kSMw1OxEyDt5Ofr8MBk0tBFeyM/OpB
	6cKBGrgjuT9cOZnhtyNn5ErcvBNVe6CdG3pmNXmEs0ZYxawpxISTV5GSg1RmAu2n6SA5p1UDJFn
	FfTcOV453MRXU+2Hod2OwB6WaJHdND92mzagE2FnbBAaLPkDtuyisR/HCNdf5woAa
X-Gm-Gg: AfdE7cl5Jk97Giwf5LqquvZu6A+kq+T6zODYK/Zlp1KrwAS5B5Y1rK3lIzB6Hl8zuXy
	HlF4FvE1aF5aLu9pSr7iq67xKIsbAYaBuiCEFqtHNITixw5QvpqLk/RjPG3+6JwBcKi7WztlugZ
	xWkBJIXkEtRwd1CVAGugvY/ytGgzml7nyf55FGLpkVcduWNYGGRON8k29qxlAypshQoRha1ZlOC
	OU58KlTuofJuQ89C0wgZTs+ytYWpUXPt1ly9d3JK0+OYSC1+grIqk1NDTXA6zqBUfDkatOvrUnE
	4ie0Nm7w4I0FkfIoTvaPL671xviL1grUE7s6PwYHztzi6PzQfkiJZU02ef4Ftgh2zXA+HapXfT9
	DaB9BDLqC4cskhrH1N9xwQxAeWZBbyTjQ8SkspQnmYPcv+loZImIxRzHxaDe+UzXuPEQzFbKsKL
	6bcSJIG4o=
X-Received: by 2002:a05:622a:130a:b0:51b:ec34:292 with SMTP id d75a77b69052e-51c748c4b5fmr49468131cf.53.1783423229488;
        Tue, 07 Jul 2026 04:20:29 -0700 (PDT)
X-Received: by 2002:a05:622a:130a:b0:51b:ec34:292 with SMTP id d75a77b69052e-51c748c4b5fmr49467731cf.53.1783423228842;
        Tue, 07 Jul 2026 04:20:28 -0700 (PDT)
Received: from [192.168.1.31] ([85.196.172.179])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15ada023cesm109077066b.44.2026.07.07.04.20.27
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Tue, 07 Jul 2026 04:20:28 -0700 (PDT)
Message-ID: <0426b129-5d03-467c-a61f-055e7dcf5654@oss.qualcomm.com>
Date: Tue, 7 Jul 2026 14:20:25 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Bryan O'Donoghue <bod.linux@nxsw.ie>,
        Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <bqRcqVTcU8Jl1ClRlFeaaigWdG8pICB20xCQDPVqOB5QHXdtjWu1UYXWqhvyAuj30sim2P91BHvVLHLYgdD7vw==@protonmail.internalid>
 <7e36238b-96ac-4269-a6e5-0a6763e437e7@oss.qualcomm.com>
 <6b5e573a-c13d-418c-af5b-759deb40bfab@nxsw.ie>
Content-Language: en-US
From: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>
In-Reply-To: <6b5e573a-c13d-418c-af5b-759deb40bfab@nxsw.ie>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: Ajh00FVMQRGGZR-_l-gcTTT33TijXcw_
X-Authority-Analysis: v=2.4 cv=HstG3UTS c=1 sm=1 tr=0 ts=6a4ce0fe cx=c_pps
 a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=Q/e3f29T3Hw2hnAEzBPF7w==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22
 a=VwQbUJbxAAAA:8 a=J2XvcvT0q4wf4MKS_j8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=a_PwQJl-kcHnX1M80qC6:22
X-Proofpoint-ORIG-GUID: Ajh00FVMQRGGZR-_l-gcTTT33TijXcw_
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDEwOSBTYWx0ZWRfX2bttN45JTFnM
 a0p1RKzAsnVrMWMCpoxKjT89DidzmtALqqfVndWiP0Yqsdy97y6go4XBxvfnGnusNe37NSHHZkN
 p6MGmkex17/5vJEgCbA8d+XpjfePOEc=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDEwOSBTYWx0ZWRfX/bBZnoz6xP55
 QHUrZitdGoyB0gEWwPtQ/iShoLVAUO4+RpuVRpavG46gNo7Nf2XzzT3ruDiXXDPBjVEeMluHcnM
 SErCvBUpTVTNs7r2N7WmqbPiJg7W6mgU8OKKVOcsFBOpytukPH9nnBaAFguDKAA6FnCaaUS/OWW
 IIPQOy2ic4fsc17AznYEYMtd4pfSzZKoR0k2c0NodrNMtkfPdrqGyXtNLw2h2gNh61AJ/ZKkf0I
 JvaMancgxWS4o1Wz5uUCxnPTWl1Lu4qt7+RzSnLR62lcYY+FFWPHtFm7Pqj5H7Bp+b/GMWC+Iwa
 jNME20DgVMsuSFZDYd86B+yT104JdeUpVWQKWnGaLAvUmD1SHlEKD36/U+M8p3sj2cR/nFLKkdo
 /ELG9gJaotK5MVmf7RkJYj7tD9R33WGSrBWJ5o+D83myQcegK3aJH2g1F8vMUGlpI0j0b01PlSV
 iEMxvHuSZoeT3oeuKsA==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-07_02,2026-07-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 phishscore=0 impostorscore=0 suspectscore=0 malwarescore=0 bulkscore=0
 clxscore=1015 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607070109


On 7/7/2026 2:13 PM, Bryan O'Donoghue wrote:
> On 07/07/2026 11:55, Gjorgji Rosikopulos (Consultant) wrote:
>> Hi Vladimir, Bryan,
>>
>> On 7/6/2026 3:00 PM, Vladimir Zapolskiy wrote:
>>> On 7/6/26 13:12, Bryan O'Donoghue wrote:
>>>> On 06/07/2026 08:11, Atanas Filipov wrote:
>>>>> Note: The handling of shared camera subsystem resources (power 
>>>>> domains,
>>>>> interconnects) for child IP blocks is still an open design question.
>>>>
>>>> Why ?
>>>>
>>>> A device needs to vote on its own interconnect and power-domains on 
>>>> any
>>>> bus. A sub-device of another device may wish to ramp a clock for
>>>> whatever reason.
>>>
>>> Certainly a CAMSS device will vote on all needed to it resources, 
>>> some of
>>> which are shared and got their description under CAMSS device tree 
>>> node.
>>>
>>>> There is no "master" device in this block of devices - save perhaps 
>>>> for
>>>> the CSID mux / wrappers on some of these parts.
>>>>
>>>> We have shared resources like camera noc, system noc and external
>>>> clocks.
>>>>
>>>> Please include power-domains and interconnects.
>>>>
>>>
>>> Why? The common power domain and interconnects have already been
>>> described as resources of the parent CAMSS device, there is no need
>>> to duplicate descriptions in every child device tree node of CAMSS.
>>>
>> The initial patch and work for JPEG was as independent driver. I agree
>> from hw perspective it is
>>
>> part of CAMSS subsystem and maybe from design perspective proper way is
>> to be child node not of the CAMSS.
>>
>> However the resources shared by both can be abstracted in other
>> frameworks, example ICC voting allows to have shared
>>
>> clocks which can have policy to keep the higher rate and satisfy both of
>> the HW's.
>>
>> So maybe it need to be decided:
>>
>> Do we want really additional logic for handling CAMSS resource of the
>> CAMMS sub-devices by the CAMSS driver and create separate CAMSS API,s
>
> No, agreed.
>
>> or we can use existing fw's for that. ICC, clock, OPP which all allow
>> sharing of the resources. Also there are cases where CAMSS and
>>
>> is not needed but JPEG encoder is: Example RTSP streaming or UVC
>> streaming which require jpeg encoder.
>
> Yes.
>
>>
>> Anyways my opinion:
>>
>> 1. CAMSS is not prepared and not ready to handle child devices, only the
>> populate child nodes is not enough. I think it is little bit mess,
>>
>> some of the HW;s CSID, IFE etc are instantiated directly from CAMSS and
>> jpeg and Ope are described as child nodes.
>
> That's not the strategy.
>
> The strategy is gradual transition from monolith to bus.
>
> https://lore.kernel.org/all/d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org/ 
>
Sorry i have missed that. I understand now the direction which has been 
agreed on.
>
>
>> 2. Jpeg on its own currently does not have any dependency with CAMSS
>> driver code. It can use shared resources without issue and leave
>>
>> the ICC, clock and other frameworks to do the job.
>
> Yes as a fully self-described sub-node so that we can do 
> compat="camss-bus" with the minimal amount of additional churn on top.
>
> Make JPEG a distinct standlone node now, and you preclude the bus - 
> you have to make the argument to Krzysztof, Rob and Conor that "the 
> old binding was wrong but let me away with a change to it now"
>
> Not an argument I will be making ;)
>
> We should put the JPEG, OPE, ICP as sub-nodes of compat=camss so that 
> we can make
>
> camera-bus {
> Â Â Â  compat=camss
> Â Â Â  power-domains=<whatever is common>
> Â Â Â  csid {
> Â Â Â Â Â Â Â  compat=csid;
> Â Â Â  }
> Â Â Â  jpeg {
> Â Â Â Â Â Â Â  compat=jpeg;
> Â Â Â  }
> }
>
> a reality.
>
> Put jpeg at the same level as camera-bus and you basically preclude 
> that model.

Ok understood, lets wait for more review comments, and move to this 
model for the next patchset. Thanks for the clarification :-)

~Gjorgji


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 6745E3EDAA2
	for <linux-media@vger.kernel.org>; Tue,  7 Jul 2026 12:17:54 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783426675; cv=none; b=LiOC/k12Axf43n+xNcuCzqVIcSCZR160ZeI+tTin8/E0GACDOKKIftSlrnCXvHBf6HLseGQZ2rwHkC78SdfijP74vmgg2U4nEUcch1aSVVyElQAtboGMNkNZ5fygMnRiK2ESKtIygK/ZRqsaVfSn2IOCsKhr0HOYvJPI3WvK0XA=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783426675; c=relaxed/simple;
	bh=Ta/bE9egbWl7Xktartl8cK27C2xuvBOh7ciGfNUeAeo=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=u22YVR8PEZhMR5b+uEpQ4mkB4q8PpXqU02gPM3NSQrRn8MYxApsbNwKmMm7lxqBddB201oDXToopfhYHrJR6AJQSaOcYQs3P8VPYeOPKgnoPe5ZkNW+dsUQI3msILu3gfkLqgelrd9zkll2Rzhr1QHH6srTIlVEEuFfhqB0IDO4=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=UzIJtxOz; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gvmRMiT3; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="UzIJtxOz";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gvmRMiT3"
Received: from pps.filterd (m0279870.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 667C8x5M3719155
	for <linux-media@vger.kernel.org>; Tue, 7 Jul 2026 12:17:53 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	2SiZ+GGo/Uh7dQhyhwAq6wJ90giuKEqOR8zd+Na239c=; b=UzIJtxOzV1cRutQd
	LSIBy1pYgk5U6t0gbqXaVaPELgnzQ7Fgt7J0491uxgy4H8Det52h/mOZIsq8l5OX
	VRG2x+1+D6XaVC1Ji7WT4pONK6cM0my+ta274ZayqF7h/fLoQAXC8IoRXFucj80s
	GEFO/+tCb2On0YkvEtbKrBwY+1UMdOV/DMGAWtG/usI2gXg1HWaQxwUF4Mn8lWBQ
	tAa4Vi+Lv6EJLukmd0UK8UfIe3rdtOwysmQ4YdpGIDlFndlMSdqE/CzlFaE6LgAd
	4EMVHX72KPC+RuMzuo/tSwT+ff2qK5yFnuPcfs+NxfZkG/L2i7vIbgUnXNJVuBMg
	EpVH9Q==
Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f8v3t9dex-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-media@vger.kernel.org>; Tue, 07 Jul 2026 12:17:53 +0000 (GMT)
Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-51c1c7f135bso78657691cf.0
        for <linux-media@vger.kernel.org>; Tue, 07 Jul 2026 05:17:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783426673; x=1784031473; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=2SiZ+GGo/Uh7dQhyhwAq6wJ90giuKEqOR8zd+Na239c=;
        b=gvmRMiT3WL4SnnE1vtXtuMrIC0z/mT98qoaU7cK4/ThdVWeOlIIOy+ZP6S+mnuEJ3o
         3DylnsrKgAqF+s2KI3wK+duzLOpqtZ1Xp5gXnvXyFHRuZx2mz/wr2cCf1Dy/LFVCnRIE
         AJfdZeN80DUsNoBIJVLE0okD/5H4qaVLEsQR6giAdVGoHHup6XUQHsdeFgOZWT7WgxDU
         ghWR8NDb3yreCHADtMuXLvJ4sZnyw2tMRz10Xd5MprlTGMOhNRdXKDfI73JJae7BbUDT
         7VfqZUe18SPgHRAgp0H05Fsjj9woFgZWXCXdvmsI3YeBZKgs8F+AkJyCvYz+fgZc7apa
         yiUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783426673; x=1784031473;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=2SiZ+GGo/Uh7dQhyhwAq6wJ90giuKEqOR8zd+Na239c=;
        b=CuZ3zIyiUIDK059UDQNBPqDkBJyBkEqj/lY1flp8dwEmrxLKG5YdSXZRH8Hdk3qf02
         BZ49co45q4p1I5jGOVAMIBNiWPpRYC+4uvEIeYuzRKOxdMyHFT/YKNkyoxVtE/tMJuxp
         1UL0RC+OrIVUE0T/HYuxqzTHZnREqQYYnjmx2s/C3+wsbiOfmUPvoPsQq+uD+F3VFCNZ
         3m1AwZn47iT9M1zse5+FLVmXuhh3daIiAcTj4+fj9Wu9MP4H2ZhfrOuJEh5CBho8Tq83
         4vszpT2WigV0SclSpM8sVOXWFV/n/sUhKVDLCSlx9s23zh1kYqtpXmkhfgUpn6vUJ7jH
         6GrQ==
X-Forwarded-Encrypted: i=1; AHgh+RosffONtnQl2rd4J3XfDNpJbjJpjlK8qOPxuk9IPUiIcnSOB2s6zY+5Q+DFuQiAQzFdZJvm4KfU72m8Vw==@vger.kernel.org
X-Gm-Message-State: AOJu0Yyd6OOqk+rwW222KNcp/gNp32e0mjJfijol7rWT+Jn5mUJ29h1f
	J0dQX2PZi9llyaB7J1Jx6ahjeIYq0hmlT6zXKVxwW8ms2ivn2IbT+/MBup+WJkTj7ct+FwwUHnO
	+PYyMuEZ6TBxUaNWOZs+PNtoYQbYGYyZxolhZhFginR4pjS1qln/8UmYvNVKpI9X5RTotrW4XFw
	==
X-Gm-Gg: AfdE7cm3INtFjCHx5EN5BhyczMXmSInevGdsa7k2ktefkMszZwsZjGGK0HzdTn53LJU
	f3++9vnyiAZO2LKaqBHGHnda5odLP4klNAfucvdYMrgG2Hk81EMX99jUwFazQppHEUu6ZOLUq/y
	0yWyTndZmHsO/iDJDpBexigNAkEEB1Sc/BEhEOwrkaQ0JyySRI9/B5syLcLsLH7R0rxyUgK0hk3
	r+K9JE/ko51fttvxNCBWsyDVAozp5S44QTWp3ZeXRf22Ea/FIDAVIFM21gio0xwNk06Zy8iWjbw
	4b30zLpEjADtdHCcHXPo3D/+TMW2q5pfGRw3z+r9Fh15GrgagtTGlq+g4BbxSfFqFub90pDxskc
	x5RPKb4zAJJHOgS1Z8UCpbATa2z8x1Cu0I77cgiB1HAfTvcEAUBWi2Loi0278adU+ubLQR210Xg
	tjxovEdZE=
X-Received: by 2002:a05:622a:286:b0:51c:7b12:120e with SMTP id d75a77b69052e-51c7b12172fmr21403941cf.76.1783426672493;
        Tue, 07 Jul 2026 05:17:52 -0700 (PDT)
X-Received: by 2002:a05:622a:286:b0:51c:7b12:120e with SMTP id d75a77b69052e-51c7b12172fmr21403491cf.76.1783426671913;
        Tue, 07 Jul 2026 05:17:51 -0700 (PDT)
Received: from [192.168.1.31] ([85.196.172.179])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15ad9bc655sm118332266b.41.2026.07.07.05.17.49
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Tue, 07 Jul 2026 05:17:50 -0700 (PDT)
Message-ID: <f9b667b3-26ef-4c1e-bff2-71533d657cce@oss.qualcomm.com>
Date: Tue, 7 Jul 2026 15:17:48 +0300
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
Content-Language: en-US
From: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>
In-Reply-To: <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: RvrHPaAbMUaoUr3iThsprWOI24jqZT5v
X-Proofpoint-ORIG-GUID: RvrHPaAbMUaoUr3iThsprWOI24jqZT5v
X-Authority-Analysis: v=2.4 cv=HqVG3UTS c=1 sm=1 tr=0 ts=6a4cee71 cx=c_pps
 a=JbAStetqSzwMeJznSMzCyw==:117 a=Q/e3f29T3Hw2hnAEzBPF7w==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22
 a=VwQbUJbxAAAA:8 a=uTxpKD40luCw_XNDSPAA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=uxP6HrT_eTzRwkO_Te1X:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDExOSBTYWx0ZWRfXwuR+0uCoG6al
 N92J0KXZYdnb27u970YJSINtPTn+JeaGvHvyIQzIb6Vo3yBh5scNFZu9gYQOhJmJPsI/SrG+pUj
 yrBgi1vffes0ZXkki0qmubJcaDfmdyRRR4aLEEixu/jNO24TBhPgB8N1hkJBzNISGlFvsNZdkI+
 FMd7iO3iG/AKO+idffnARLmYKNELa6tNv9IGQu6yN7GNFhOlgdl88Qtecrc0SrkHJQYsKL145EQ
 7oi7zNU6i5qAPAo5YnGXr9lqLzL/9/6bsjFJkORKYf8vK8lYZzJ5ruoSNrdCdsQjmISI0vo6p/o
 7oqJJg9WeTq5lNjM+Ga1TCn6K4UmkfTrXNMBt9CTgoBeMpYc2c2FujjWdwuiNOoTLVZ8LQQ+l8A
 n8P2+/5iYl8xuEJxZP9TTAq0BcIaXSC5mqDgSpXzaF/RdxuKMls1HP/NCBzQ/3zprv4jWHAJDgC
 Fl9zxFQ1+0gMSTvoE0g==
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDExOSBTYWx0ZWRfX9fbb14BOATp0
 3sgDDcNsfQ1fynDtkFvt4RF3IYvuYNiYDzzzXrKpObpPGSngy2wyJy/v7DKrT887KyMDmuCPdbX
 FbgpcQDcjv6XuJ0E/C0Yp+USW8r0vKg=
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-07_03,2026-07-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 impostorscore=0 adultscore=0 suspectscore=0 malwarescore=0
 bulkscore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 spamscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607070119

Hi Bryan,

On 7/7/2026 1:00 PM, Bryan O'Donoghue wrote:
> On 07/07/2026 10:24, Konrad Dybcio wrote:
>> On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
>>> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:
>
>>>>>
>>>>> The idea is to make all of these peers, eventually. Not particular 
>>>>> block
>>>>> owns the TITAN_TOP_GDSC - the entire CAMSS block is a collapsible 
>>>>> block.
>>>>>
>>>>
>>>> The statement provides the same information as before, e.g. it's 
>>>> found here:
>>>>
>>>> https://lore.kernel.org/linux-media/fbc018f5- 
>>>> c025-4747-85f2-53b45b0f0496@nxsw.ie/
>>>>
>>>> Â Â Â Â Â  There's no functional linkage between CAMSS/IFE and JPEG - 
>>>> they are
>>>> Â Â Â Â Â  peers within the CAMSS power-island.
>>>>
>>>> Thus "the CAMSS power-island" exists, and it got its hardware 
>>>> description
>>>> as the CAMSS top device tree node, and TITAN_TOP_GDSC power domain is
>>>> a natural resource of all devices on "CAMSS power-island",
>>>
>>> Vlad honestly, TITAN_TOP_GDSC is provided to the CAMSS island - all 
>>> of the nodes within it depend on that and it is _external_ to the 
>>> block.
>>>
>>> There is a CSID MUX on some SOC other than that I'll restate it 
>>> again, I'm not sure why you won't accept it.
>>>
>>> There is no dependency between JPEG and IFE, one is _not_ 
>>> subordinate to the other and trying to find ways to invalidate that 
>>> statement runs counter to the facts.
>>
>> They are all subordinate to CAMSS_TOP - Vlad indeed said they are
>> peers (i.e. there's no co-dependence between them specifically, but
>> their parent is shared).
>>
>> You can't use any of these IP blocks if you don't first power up
>> TOP because of the physical layout.
>
> Yes and I'm asking for TOP to be listed in each of the subordinate 
> nodes for reasons given below.
>
> But unlike MDSS - OPE for example doesn't require IFE or CSID to do 
> its job.
>
> Over time we can move the bindings to a model where the only thing in 
> CAMSS is a top-level bus like declaration but _right_now_ what you 
> would do is create an artificial dependency on say CSIPHY for JPEG.
>
>> This is exactly identical to the MDSS case.
>> I was hoping this was clear after N other similar threads.
> When we split IFE, CSID etc up into their own individual nodes it 
> would be possible to model as for argument sake
>
> compat = "camss-bus";
> power-domains = <TITAN_TOP_GDSC>;
>
> jpeg@x {
> Â Â Â Â power-domains = <JPEG_GDSC>, <MMCX>, <MXC>;
> };
>
> What I'm saying here is do this
>
> compat = "camss";
> regs = ife, csid; // exisiting bindings for the last ~ 11 years
> power-domains = <TITAN_TOP_GDSC>;
>
> jpeg@x {
> Â Â Â Â power-domains = <TITAN_TOP_GDSC>, <JPEG_GDSC>, <MMCX>, <MXC>;
> };
>
> Otherwise you create entirely artificial dependencies between IFE, 
> CSIPHY and JPEG, OPE et al.
>
> And BTW if/when we get to the camss-bus stage of things having 
> TITAN_TOP_GDSC listed in OPE and JPEG is a very small price to pay.
>
> We've already agreed to gradually transition the bindings instead of 
> go for a big-band integration several times.

Just to clarify, from the jpeg driver perspective does not make any 
difference whether is child node of camss or other node. For sure it 
will be explained in binding documentation,

but just in theory we may have jpeg encoder in future platforms without 
camera sub-system. So where jpeg is placed is strictly platform 
depended. Do you agree to have series just

for the jpeg driver as it should be, the changes in camss and device 
tree changes for this platform will be not part of this patch series but 
send as additional one. Or you prefer

everything to have in this patch series with different order of the changes.

~Gjorgji

>
> ---
> bod
>

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 EE5E83064B5
	for <devicetree@vger.kernel.org>; Tue,  7 Jul 2026 13:22:22 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783430544; cv=none; b=PNimQB4nxPVgCuvkO5heE6Yg5kafnEXjRaC+nXMcq+RoYkBErg4L3ZuMwpATK90ZwXMP8Eh9+74azNRyZiFVtzgiqaGDppVcKa9ZBwL7ao960G5oopd7zmzKq7J4lwZdx7xDiyFH4pSuVoECd04y+tubU4NU45+3U2pzulcHZUE=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783430544; c=relaxed/simple;
	bh=JLUVtpAcR7Sw3pbtVQgfJbUd6mFFYioquXqjBsVIPE4=;
	h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:
	 Content-Type:Content-Disposition:In-Reply-To; b=AHGe1f0WhL7daEffTj2fWwCS1aXI1Q7mnHajHw/uaqRGeO6NqI3wE1WPbjmYmsi4PpvUHXDfVens1WH7QAP3saVqh0H3WXzD9VAc5nUWV9FLMXCKxOFFnpZSJt5XekTMQNM2tuIFDWwLLDshjHferuiRNWjJ57BI/81p2SnD724=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=WuIfxalh; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=RHywep+1; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="WuIfxalh";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="RHywep+1"
Received: from pps.filterd (m0279865.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 667C8ZGe3783376
	for <devicetree@vger.kernel.org>; Tue, 7 Jul 2026 13:22:22 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	VmiOWeVXgmFMOpD0RMG3VxxL7rn3EHP1lcppg4A4U0A=; b=WuIfxalh9GeqxVmK
	LeN87fp4gUh4Wd7ecw9aOrJf5lFttjyOj5QZ9Tt6KQbbkx15dpHWRB19m+2+EHsj
	+eNqrHUtxFlZdO5gD5hH1aJo8d+1hnE3+VwS4xyssoqHNcdyAGcXMDO7GH8FxJRT
	M/szL0fFkYSbmrslQ70RRhow4A4jiXx1zthcl62e5HB4w84R8H4FPTtzUtkl/Q46
	ZoKSGFJ2qiG6YewzVwULSaIylOAgw+MAkK/OmfSfMGXyRlYTEt9pEBD2Pb0euUP3
	6b+wEN86NLLRmMRuTCZaLX1DSfPlQKfaBxptBlA+6PgAqBUyZIOzTJslZ4tXESRT
	ZGgcRA==
Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f8w11scq8-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Tue, 07 Jul 2026 13:22:22 +0000 (GMT)
Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-738ffe90415so960092137.3
        for <devicetree@vger.kernel.org>; Tue, 07 Jul 2026 06:22:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783430541; x=1784035341; darn=vger.kernel.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=VmiOWeVXgmFMOpD0RMG3VxxL7rn3EHP1lcppg4A4U0A=;
        b=RHywep+1AxCQ2M60OaaW0/Kzc5XkdZfFn5o+tHo4FjxAqhxxrnQkTE0h5QBvW27f2t
         Vdfcl4bUzBbcxArfwbGKawCAh5XDETzHygANODuIoAdhmsYaKAxROfpe8XF4CobWnJk5
         cH8pjC3cLB9q5SEuqbd7r1hVjgi54BL2VXuyv/OFV22YVDJEFVVdyblexzhVLH94Ib+f
         oCIoU2WLgBPGw6YgLeIZGfSv3L0yDUeULOZY/Jm1wXjUbEbAL6kS18ZrhL2J4b0M4Ks8
         UrcPfx3KPNgI1RyJPbtZLp9Zt5hvw2iK1X6RzNJbaCiVYr/ogHFCNTi90Rc2bJ5VkkzB
         MQYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783430541; x=1784035341;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=VmiOWeVXgmFMOpD0RMG3VxxL7rn3EHP1lcppg4A4U0A=;
        b=GZ2KY2ks5rREAChmC5H+/1jrz4v/xKpv8a0qJRZhxHlO/Do7P3pt0Q9hE23GeHTBaV
         5P8hPUCGhBvPbh5fsgGlgX5jz6qXdv0woebVFRI3B7Sm0YosQ2Imcg5sr83lYjlMp//I
         qiBQe6HMrDgd7E9Rm43fKGHGuvAoR7IceeXFWglF/3gdnT4Ljk4/MJhsVBRaQI00sd3U
         qBR2vJqFNyB0nDXnREwp/1xIQ9qFwR2t7UAlBmepol+Vu1NauE8l1VcZAivpZZ3MpIOy
         FjlTkWDfYrNJavySuJxyIg4uoTobP+cpzaL3aFkF19ZLoT4fruyswCtH7YBjPAXcBBkt
         yBKQ==
X-Forwarded-Encrypted: i=1; AHgh+RpWpfOcfOz8UYoHqkF2AqyFadEmKPISDzBfN04GqVsOrKqM/iCps+EXq+ETuK/8mMHxZ5ApYEcv9vFx@vger.kernel.org
X-Gm-Message-State: AOJu0Yzl7m8PxswXgeEHe3WpSfn9JaNrNgnhHpoAOarrN4YG3E9fntZg
	n18beqkVgycntUM88fAx84j8UWuHicakwciO/r76ET+Snxb48CBR8upZOm1xvs+o/T9Ol9VtJEw
	zte+SoWAjpr2YrpqOfBOv0bOAKv6dvIWX3unLL/x4p7oAfTlZpxiRTLyB7vxudXjO
X-Gm-Gg: AfdE7cnsyEk0M+4wm1SLdB4KwXwtWq47Tn281vsOB5nXnuZzkZS6nA964gC8XeQAAXH
	om8fiBBE1TjFeiSxOjcVfs+yChRdl9UAfjypk+9dVRJLvwD0aeLAn+lEdCKr83manYqZicvlOsK
	9ZME/noWaJxX4jfPDqaX+C8RmVFu0PYU9oYh4Q9+gsWSLO8k8tEtq2xwbV5LNGvNBJSMpztVIwj
	HKmbdvE7Uqb7YqBuxXkEFseEAJxB4owOCy/39AYv0ZegftuFvZJyAQoXyzw2nWmfl4QkFQddryX
	ULd3fJx6pyPzAdZC9wTO2ac/mmyCD5UBTWCBQEWSnRlks/Yytp4KukMwFhZv8l4gSyWIhTQoG/f
	VguKkTiYUMADuRHxhHx5FQ/pwFCxm6sMioLgYUoNn655tfdowwOyhu337/eARAotPlaHZbGNEjH
	4UqY0YliMwoxGh7qpPKbURAvDs
X-Received: by 2002:a05:6102:3e09:b0:64e:32c3:1371 with SMTP id ada2fe7eead31-744b7ae03a1mr2826794137.2.1783430541073;
        Tue, 07 Jul 2026 06:22:21 -0700 (PDT)
X-Received: by 2002:a05:6102:3e09:b0:64e:32c3:1371 with SMTP id ada2fe7eead31-744b7ae03a1mr2826755137.2.1783430540395;
        Tue, 07 Jul 2026 06:22:20 -0700 (PDT)
Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed1377075sm3648101e87.28.2026.07.07.06.22.18
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Tue, 07 Jul 2026 06:22:19 -0700 (PDT)
Date: Tue, 7 Jul 2026 16:22:17 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Bryan O'Donoghue <bod@nxsw.ie>
Cc: Bryan O'Donoghue <bod.linux@nxsw.ie>,
        "Gjorgji Rosikopulos (Consultant)" <gjorgji.rosikopulos@oss.qualcomm.com>,
        Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
Message-ID: <w6imdnlo3xron3f2cw7fq5jtwcgvyijciddxjftwf46kltjjqx@inipxbghzngc>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <7e36238b-96ac-4269-a6e5-0a6763e437e7@oss.qualcomm.com>
 <4a2c098f-5d46-4339-9b09-e0ace37e4052@nxsw.ie>
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4a2c098f-5d46-4339-9b09-e0ace37e4052@nxsw.ie>
X-Authority-Analysis: v=2.4 cv=DMe/JSNb c=1 sm=1 tr=0 ts=6a4cfd8e cx=c_pps
 a=P2rfLEam3zuxRRdjJWA2cw==:117 a=xqWC_Br6kY4A:10 a=8nJEP1OIZ-IA:10
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=17shpdAnEHHmTgLBXfwA:9
 a=3ZKOabzyN94A:10 a=wPNLvfGTeEIA:10 a=ODZdjJIeia2B_SHc_B0f:22
X-Proofpoint-GUID: 2qqRKktYRHctp3NgNjvpKc159QiGWbnr
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDEzMCBTYWx0ZWRfX6iRJHn6jB48F
 H43a/6C/hlXKffu9fBtrU0MIZq01HrseXH5N0qW78hz/qBWlFpj1gj0RdqMHyXKoZ+OkBClEFMR
 tRTVEgk0RfBHpVDhHjFTOrMkiHmF3fI=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDEzMCBTYWx0ZWRfXyoVASUNE8nmn
 pHFmU0j2PUfarkCXGVDph1XmRJJTFZA1bZYzfH8Gj3GTpFbjve5tga+JVePzh5fwQxQPEoN6g/c
 lov5O5s+XWq4ssSK2SONd+4lHdMs3G39UPxaZvnrouUgRDb3itYlnxfeAkUVowEn3LRVxqK6zgM
 YXQnfgKo5adwQzPANDdmWzqpLXblB34OqCDySYbO1Av14GdNsHIEU+EAVs8H3JFo1DJFX5a9y6/
 /k3LCj3yJ3zsiHWKAXeuPydUQn9cIPhiqfPh+mY560Pi1O4ihuXVw/cLFlLWHkiVWyYiadmo5I8
 TeNk5HkJHsQBoKoDWe9OCftCvlo5euoQyxD8mWPyzzWlmW+ekQf5yqtYBFxveiWSDGibE7rHowR
 xh+OlTVEhSKBccqh2tbnc/PyVepfgZTsS7uNRXLqMETP/lqwGBqn8wFs+3pQ6EQy1jJgEJlfrCp
 2mL9zZD5H877utdM7Uw==
X-Proofpoint-ORIG-GUID: 2qqRKktYRHctp3NgNjvpKc159QiGWbnr
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-07_03,2026-07-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 malwarescore=0 impostorscore=0 suspectscore=0 phishscore=0 clxscore=1015
 spamscore=0 priorityscore=1501 bulkscore=0 adultscore=0 lowpriorityscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607070130

On Tue, Jul 07, 2026 at 11:15:40AM +0000, Bryan O'Donoghue wrote:
> On 07/07/2026 12:13, Bryan O'Donoghue wrote:
> > camera-bus {
> >      compat=camss
> >      power-domains=<whatever is common>
> >      csid {
> >          compat=csid;
> >      }
> >      jpeg {
> >          compat=jpeg;
> >      }
> > }
> 
> * compat="camss-bus"

You can't change compat. There is no separate "camss bus". We have camss
block on, say, Hamoa. Or Glymur. Or CoolPlatform. This would mean
exactly qcom,x1e80100-camss, qcom,glymur-camss, etc.

Then, a part of that camss device we have all the IFE, PHY, JPEG and
other blocks. Each of them having a separate compat, etc.

But, there is no "camss-bus" (okay, there is a camnoc, but it is not
represented as such in DT).

-- 
With best wishes
Dmitry

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 09E264189A0
	for <linux-kernel@vger.kernel.org>; Tue,  7 Jul 2026 13:24:24 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783430666; cv=none; b=fqifEepebiIjrAGmHyXvOV4GRK5U4zkdXqehNK6sBI9tKKIOdVg+RGcNiZTxf89jgT1LyE3tWnkT7drQby0EmPUiOoyVmhi5gPT2yUxwF701YF+9jzcWfwdy/W5+71MGoHmXUVS1RfIYMv/wyXL4ziPsiqo8L5r9ehJk/I1YeIk=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783430666; c=relaxed/simple;
	bh=ja7GS54UR5AwuTz/Eekhp/5WWgMhkE+m92m9IozVLR4=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=Oj5b8qLQ8t56eLSDLkTmwQL/OdU8SYDmp0sTCR/Ycfme4BWFSqmCM2IjHKkHRnXkHNc8FIaayXW/pG9SoFNLMNkjSZw/wjPy1s5TU84WDybvPN6xCsKSuGqwT4/94N/RweCQE+Yu7mbAlPxTMiHSOmD8wISW6GkQifjRxgMTKLs=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=KhGUOvxM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Itp0J1qr; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="KhGUOvxM";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Itp0J1qr"
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 667C8wds3676764
	for <linux-kernel@vger.kernel.org>; Tue, 7 Jul 2026 13:24:24 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	PXzVPINo7UFBYynJVJKXjhFd6iei6NVvj44x8Vp1tjM=; b=KhGUOvxMrdzKWiD3
	ygV71kejrqfc6Y8MhpnI9PP4xZLkTuNFtG8EH8mkXAHPUXt/GuUd4ddgsarGRN+z
	201nTmuX4x3rmEQx/C3xRapGigQP/eFGAOnHIYOpJ8aTE6q9Y3b0BAgzj4Oag2Ml
	GG5YjjTVaF5Wm/8ILU8aKNkpvrM66U7X8aNqqr1etrhphr9JuEHVAbXNS8F/QXfe
	ntnBCp9czBaqLkk/I10XV4tr/9xvNMZ7YaN8MZ4RyMY3RFgJR8OzCvbN1rjrd+4T
	UB2eewueVSBmbDmEKhAuy4Ca0BuGRgWfLImugLMqWKX9NA3I72dTAXSqt4wl8jeD
	kogcdQ==
Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f8t15a5qh-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-kernel@vger.kernel.org>; Tue, 07 Jul 2026 13:24:23 +0000 (GMT)
Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-51c2af04aeeso8543471cf.0
        for <linux-kernel@vger.kernel.org>; Tue, 07 Jul 2026 06:24:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783430663; x=1784035463; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=PXzVPINo7UFBYynJVJKXjhFd6iei6NVvj44x8Vp1tjM=;
        b=Itp0J1qrkN5J1QtXJV6t/AYrCNVPRCgAVt2Wtsjg+Jd1TvPAOT/HHkVrgwRPiWsXYz
         CO16l4f8a/k0VnwyLLcUwSq+LLomt91pZrH9w76Mhiv3Od5PKKk2oCN0PthlMsLgE+Be
         EACj4eY+tIRR2z5qAZolsv31lcnOYyv/ut8dLm4I0/SZZJXKEGsE0FmTRe2pJPY69EaA
         EhTL2J+EBbgvc4IZ/Ox2hM4L4eNCyJadA+2sOHdnZzWyICMyiRn90TpJkYNfVQOqt9DL
         Klt+dhMBvnWQthzvuVn2i4AoU0s1o2dxgJ9AyULN5k9gU+meJ4rBXCDJZOAZ6S+cK+K2
         YBtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783430663; x=1784035463;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=PXzVPINo7UFBYynJVJKXjhFd6iei6NVvj44x8Vp1tjM=;
        b=ND6cV5R0ggLhYdctkMxiwbuwxDPQZpSBjY/JxhIC8I3Ax3yGCH6Qxl0HJs8w+MC1Nk
         JWmfNpVHtMv9QMfA9OLbubnOzBoPAnucL+5gRmHdY/PnAod1LJ5KY/z52lxxK6WgiqJr
         y1nIyy1RH5rMFwBU63JEY7fUFapUA33Ib5E+AvnC6d7uRkBJ3bax6fYaaS4NHilateYx
         VgF03+hzZwvJC6rd4CmBdkegV6CrELJ6fA+J4N0NL4fHXkO37B4xIocU8ozNiYvradf0
         +1KyH7b9tDloYvZ13TlP5JNeevAxtMl4NjoBI0yxLIIKa4bZ1EG/Eqk9vPt4D9Pobcp5
         pRLA==
X-Forwarded-Encrypted: i=1; AHgh+RrllvKZ4IJZka8ya58xHyUzvC4vUVmq+Gw2xJtLJoP9MjGfbBpSxd7148BasZj4787PI6exOt3lJakwZFU=@vger.kernel.org
X-Gm-Message-State: AOJu0Yy+XGGSH656hQB+//u+EHzV8VU5Q8vu3drcy0TY7R5wpjQ8XqK6
	jx6LMFGVZex8WJZyy+2zhKHVuK0wQOSSNcSEA3Es3AEpsuA4W6lKfbU2nk2fvhMksIQ6tkZghGg
	4AdhDLunlcV62kvCQ6HmUyzw5t7aMPlYOguJgZtdMSCV0AjiDcdEyF8yGXDLw3OXeMok=
X-Gm-Gg: AfdE7cnEeonlzLZp3shJwNkRGqOSRtjzFOsbEvqaTmqlYE3VCM/7I+XvxE6b4DyUnIa
	sCRsdWYsLY8CA0+twBZTIMLeBbeytS/31yga1/7v7IWx2pa5nK8dOm1YP0oXgMyNO86j/4Qli6x
	sVf5RTZbWkSHW/7VvPffZXoDWWq6Xd6mXQJUxbVriR3E6ZBZ+Z5u6nzw42u+qKO92h9N50XWeie
	g/QuiDgarYLWRUadRFWiVmtvVP+TOkm48Iw76lVlKQGGnfKmeEiqF4rwMzaexPTmu+tW46iNtmV
	DK28krnpRppRB4LwVYfNdUb+mNS84iVtSY5QAX15r+ECu4DFQJ1Nlpmh/0/+AlIJLIPUDonWqBv
	aI5mjwYMnG/dAxDmy+IxAsBVyx4xaUdZRKsqnCr6tkTxvr+VtwcK3G/ibIA9PQSSBsXSmLHcbOv
	aSdbqaMEY=
X-Received: by 2002:a05:622a:650:b0:51a:68df:a644 with SMTP id d75a77b69052e-51c7a46e933mr26366381cf.3.1783430663217;
        Tue, 07 Jul 2026 06:24:23 -0700 (PDT)
X-Received: by 2002:a05:622a:650:b0:51a:68df:a644 with SMTP id d75a77b69052e-51c7a46e933mr26365811cf.3.1783430662673;
        Tue, 07 Jul 2026 06:24:22 -0700 (PDT)
Received: from [192.168.1.31] ([85.196.172.179])
        by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69a19daa799sm5687429a12.23.2026.07.07.06.24.21
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Tue, 07 Jul 2026 06:24:21 -0700 (PDT)
Message-ID: <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
Date: Tue, 7 Jul 2026 16:24:19 +0300
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
Content-Language: en-US
From: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>
In-Reply-To: <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: LX0allvocRzDNC6cUAyXXoQbQ2Zp031k
X-Authority-Analysis: v=2.4 cv=HstG3UTS c=1 sm=1 tr=0 ts=6a4cfe07 cx=c_pps
 a=JbAStetqSzwMeJznSMzCyw==:117 a=Q/e3f29T3Hw2hnAEzBPF7w==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22
 a=RukG3nK3fvgRKkzuuZ8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=uxP6HrT_eTzRwkO_Te1X:22
X-Proofpoint-ORIG-GUID: LX0allvocRzDNC6cUAyXXoQbQ2Zp031k
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDEzMSBTYWx0ZWRfX8NUE7lP6icT9
 E5LVZxQjCYNCb8c3orVdQFb2B6u5P07x7y9GvLg4yLZiitNQUwygr0a8Xz1IpbHqH3HQPaNvmPS
 /pdYu4AlbNKtziINtIHHlMMQp3P129g=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDEzMSBTYWx0ZWRfXzbeoOUxgkgJJ
 +EppYk2xCxXayVbAPksJThHoiyuu3SHszad+SkYtN/IIW5jkr+xyf0jHttJlh4C5/SlEnHjCH1o
 oq6kpVFxRBTw/q1OH+Whl+uRcGQJ0/uf3DAfC9kwPceuqfL2+ZUdW1RlilqJeiqx/C1XHToa7wA
 PXcLqfXAqLSrpt0PLvXRcSD39va6afUZbDHNDJ/RLzT+Ojl8CC67SlHEdbEr5pU+u2dHf3spfas
 X5k0IHHIEjPGY4BnJvQT3r6SclPwXF1Ks+f923xgrkb1CXaSibgOqhIO51TMJ7kHXNWSWpAt1Rk
 Dlk5svyRZ2kvDkrbRtR7BEWrD0eRW3mSzRI0YrwsguHMMIeb+WumqHZLejffmRlLIkNhRJ9n7vd
 TiAAMVAM6fJs3vj98pppjuwTu1RTb4KMwHhi26++vS/z6W8C/QM+4KlgmGx/s04uL/Qk8Boo3pp
 D5XEAkh1DGtmIDEDzog==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-07_03,2026-07-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 phishscore=0 impostorscore=0 suspectscore=0 malwarescore=0 bulkscore=0
 clxscore=1015 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607070131

Hi Vlad,

On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
<snip>
>>
>> +Â Â Â Â Â Â Â Â Â Â Â  interconnects = <&gem_noc MASTER_AMPSS_M0 
>> QCOM_ICC_TAG_ACTIVE_ONLY
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &config_noc SLAVE_CAMERA_CFG 
>> QCOM_ICC_TAG_ACTIVE_ONLY>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_HF 
>> QCOM_ICC_TAG_ALWAYS
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0 
>> QCOM_ICC_TAG_ALWAYS>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_SF 
>> QCOM_ICC_TAG_ALWAYS
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0 
>> QCOM_ICC_TAG_ALWAYS>;
>> +Â Â Â Â Â Â Â Â Â Â Â  interconnect-names = "cpu-cfg",
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "hf-mnoc",
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf-mnoc";
>
> This is the topic, which may raise a disagreement, but I'll repeat my
> position about the need to remove all "CAMSS bus" specific resources from
> the device node, they are found and should be allocated on parent's side.

The interconnect has functionality to handle bw requests from different 
clients.

Yes the best will be to have camss interconnect, so jpeg and other hw's 
to vote

on that (actually it is possible in icc framework) but what is the 
benefit of moving

those to camss? Is it not better to create camss icc. I understand

you want them to be on parent side. But how to vote on bw? Most of the 
time it

depends on the jpeg encoder configuration based on resolution format 
etc. to set properly average bw.

So i dont see how that can be done with not explicit dependency on jpeg 
with camss and some exported

API's which we discussed with Bryan they are preferable.

Maybe i do not understand properly the proposal but can you just add 
some pseudo code

how you see the things?

Regards,

~Gjorgji


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 95D4C41A780
	for <linux-kernel@vger.kernel.org>; Tue,  7 Jul 2026 13:33:04 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783431185; cv=none; b=WnGbmG9vTs8yGn/+kc7n3ku5YNSzTu1vwtWOsFZIj0LT3THYhnqB4ju6BdgPWVUJGXmlAFN03c6eGwDSDOfcJnjmJjV/oRAfhIZIi/z7Ak1qFC5QoZEZ6IrWPto3P8DT2YpYQ35fdW92WnzsNXKcnuHDw3KcejiyPHrgvWsFB88=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783431185; c=relaxed/simple;
	bh=QW66NHVTI6Oj4WQFVixJ8XidASn4HkchNXi+aEftbi8=;
	h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:
	 Content-Type:Content-Disposition:In-Reply-To; b=DKrgjAmygSTgqrmLGlpJ100rC1+RgaKYW0hK31ydBIwTqsrWQSX501DVSc+HPAhEh14C39O6XmHzwVKDaZOewe68HIc3sA7hKSZBkA8JmFdT0elfyKTCpjEjGDKWhzISevoRr5sCN73d8AQSm0oZYpks9ZsVYAbE2nv1xeUNvr8=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=klrc312T; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZT3Pok1R; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="klrc312T";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZT3Pok1R"
Received: from pps.filterd (m0279866.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 667C8epC3606087
	for <linux-kernel@vger.kernel.org>; Tue, 7 Jul 2026 13:33:04 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	tFefM7BuRRk3FDn8aw0Ky5+cc0k1y191ixtbbp19Gbs=; b=klrc312TR6JIkbNg
	Kvp30MhZqDGDUr6Cok7o00LHV3rlEZC9UCRzbvKZrZydQftcN7J0BsOrtuH57MJ8
	HahYCLaEYo3j7595ExWHyVzujZs0fQ+TkEhESevi0vJcAe6mcYy/WcwuyWKrVCSa
	0uSYlbu2RBb0a6Y0B6athDDTcjuir1E2J5Trehoq+CcvAXOBdCMZ/RuPievSJ4Vd
	V512xfl2j6L78TLo/zB9WEHo18yFvz+cZaU+l8YNmI1MfstyWlMOal3pQsXTspob
	Ox67rUaZywidb7qehmxNKj3aiBAuI+tp9546cHbUEQl/SMSw0YVesCTCIf9jJfVJ
	TV4Bmg==
Received: from mail-vs1-f72.google.com (mail-vs1-f72.google.com [209.85.217.72])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f8sm8j726-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-kernel@vger.kernel.org>; Tue, 07 Jul 2026 13:33:03 +0000 (GMT)
Received: by mail-vs1-f72.google.com with SMTP id ada2fe7eead31-7377e2f1a62so1330029137.2
        for <linux-kernel@vger.kernel.org>; Tue, 07 Jul 2026 06:33:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783431183; x=1784035983; darn=vger.kernel.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :content-type:mime-version:references:message-id:subject:cc:to:from
         :date:from:to:cc:subject:date:message-id:reply-to:content-type;
        bh=tFefM7BuRRk3FDn8aw0Ky5+cc0k1y191ixtbbp19Gbs=;
        b=ZT3Pok1R63GBz4eHdlAN8+7z6foeSWqfuDeWBJ4cWKrfJ4OdI6sOXtj7Hkujd+PAQi
         UoH5xxi1Sfqb/sbHuTh3nwgw970AIpfYDyaQczLjKe6mAONBb5v6scUJ2mEcaDprNCXi
         Fh4iY0pRvSxDJFpKrCfmeluecZekVDkZHNZRUyK+5SgIUEYIDxLdyvCeDQTVId0uB5rx
         flzZWFTa/kXDHaYpVl18SygEaXKgXV42gmWQeYcxhVpQ48K4BYGtMoodyZlCy4uI9FQ5
         q6gTjkZLDJfJmiSwtMk3ZYurW6lCZ/lvTrMFfCll6f/+gIGlW6Kqatseu/35DuMZVtDR
         2fEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783431183; x=1784035983;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :content-type:mime-version:references:message-id:subject:cc:to:from
         :date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to:content-type;
        bh=tFefM7BuRRk3FDn8aw0Ky5+cc0k1y191ixtbbp19Gbs=;
        b=b31xynxJirUWzMTulbcgJKFCkkjRnOoc+wbdNLtkT2nUz8MBbSd6GeZNdTj30wLxgJ
         FmE6JwP7iFE4TF/FLHHv72+AVLgcG3dU2ZzcBvoo7iQLZeEABeF+8E3ksVsMWjmwC/SU
         DxWDSx1IOstHKSOvqwMp7+c5OylZv4W9UtfwYe0Voue6pPcDuDvkkK/mM9xh4Z24cLw/
         W6eUP9PFj5XmG2PRI4nxwoPENjRneHwq+50tNYzzKaLKH5RALDiCgrdDfkycKzFetqF3
         FmJjKKS0wxJ66Xavt0QhpZb9YB/P9xD3Ef9tI6Ulsc6iJJwNnLdO/vDYRAD86ly0TgCL
         TE6g==
X-Forwarded-Encrypted: i=1; AHgh+RoCwpwTOCQFpkN29EqPG/+T5iQANwVNDIeyojmbkxjwnIGmqzOcefaw5t6yoOZ5+FebfdWE/HoGdIGonc4=@vger.kernel.org
X-Gm-Message-State: AOJu0YzovCTl7F6GQa7KIMwEIilwLlOqEB5qS1ISkm4Yneq2u8XXQK8i
	qdVIpHKuhZ9EH43tM+0sgZ44N1vD43qkgIlyzY3Sh++ACmJHuFQ7PYGQYi7mwIntnL2BpEbc8a9
	5E1RgQkmjtDo1JIntREPoVPwE3AOGdpCtap6aAdQdA01yxkN+5kxvK5rbxYcVWxjarwCxk/Bqs+
	w=
X-Gm-Gg: AfdE7cktptTt4UTmxiNkytAhea1jHLySZLKQeq2Z1407+caiEKYg7d5kS87rHUsWZjE
	QsdJ/x831MTREuohcemV014s7HHHLD7av+k459CKdRi7WtwY3ZBm6pM7yHpdFTzrZRvFLwJk4gd
	yIp+Cu4XkR7W8v/Yw32HiJPLLm4Pjhxsx2BvdXTpAg4qGtFMaPxVHm0M3FyBXAMn13n8NeDXsTX
	3U3hNtsHPYNfchb8kn/blzs6hi56NYjrhiyp4DdWUbqxuh5hhQN/TLhuyvFtoNixXkIAfcwEpZv
	kP1rDWqQKWGJHxYe8dupqV4xKtvGlV0jVDRULyjEp03n/1YTRVKeCN8xhxzfYpT80Mo9cJXRI2W
	mDGhS/6PmrF/gXrDDee3jmahX/vNdda2y4mSviLHp4Eu/8XyBfdPfhTb/ctHe/De74ftR82UdPM
	LRTeXGtv0WXIqOdz5pkz8nhCr1
X-Received: by 2002:a05:6102:41a7:b0:73e:c6a0:328 with SMTP id ada2fe7eead31-744b7dacf37mr2764669137.19.1783431182746;
        Tue, 07 Jul 2026 06:33:02 -0700 (PDT)
X-Received: by 2002:a05:6102:41a7:b0:73e:c6a0:328 with SMTP id ada2fe7eead31-744b7dacf37mr2764645137.19.1783431182172;
        Tue, 07 Jul 2026 06:33:02 -0700 (PDT)
Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed13c8b5bsm3805297e87.80.2026.07.07.06.33.00
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Tue, 07 Jul 2026 06:33:00 -0700 (PDT)
Date: Tue, 7 Jul 2026 16:32:59 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: "Gjorgji Rosikopulos (Consultant)" <gjorgji.rosikopulos@oss.qualcomm.com>
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
Message-ID: <lxwvnkogwkwq72b7re25isnidjl5hzior4gvftww6vzmngus3d@sdqeb6heki76>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
 <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDEzMiBTYWx0ZWRfX/yC4J9D6qhnj
 Ku9PTnGUbjwA0ImjfEOWitaT6oiZsY2qbkS+Dkzvggn1gtMIfOcOte96egU9kLw7SCFh5URZ+w3
 IBEt17iuNzwR1XFCpb/nAyTLW1VpYHjtESNq2w585SPju66H1d82NR8OKlH6HTOs9TGkRPk/IMc
 zle3lIuPIw4Ox2s0pPd+mqpXBAmV0YMr9YuHSWvLCzEl8+1+Rk165/Q2mv7H+cpdXywyFru+7o8
 suBzYCMiZ0UFoc4YMKBMDO2hDkS2W+MtQ+Cf8M1D7RI3wtK/SoXbpIo856jYBpXpNxpZorCgC2r
 DCDiYYvpP8axq72L+ATm4P+1zRv63VAc2U8dZ5FRTBMF30s4Pm/2TWrfGEv+fr1AgYT8vjeScoa
 +15sQoVk+cz+S4B28PnzCSrN1s/FhYOm9AkePVl6Rw/l5KDV0EPQLPv0JEeh4MOTEZmstTq71yG
 x51J6slLK82PG4TYiNg==
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDEzMiBTYWx0ZWRfX5mYac8nm9/7H
 OCyGuBThNBCUrP4bp/rP+IXZmzbMHOdf6dEd+dxqwkNu6B35iSMLNsXHKOHuykIv3G5xdnWOC3T
 +1WyOxADQW4MZWgM25iERNu2rMakI64=
X-Proofpoint-GUID: W66_yynSuQ4QkwYxCNBPQVeaRnn6P6D3
X-Authority-Analysis: v=2.4 cv=UvdT8ewB c=1 sm=1 tr=0 ts=6a4d000f cx=c_pps
 a=DUEm7b3gzWu7BqY5nP7+9g==:117 a=xqWC_Br6kY4A:10 a=8nJEP1OIZ-IA:10
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=ahtVEZUH5jVL-0juYUwA:9
 a=3ZKOabzyN94A:10 a=wPNLvfGTeEIA:10 a=-aSRE8QhW-JAV6biHavz:22
X-Proofpoint-ORIG-GUID: W66_yynSuQ4QkwYxCNBPQVeaRnn6P6D3
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-07_03,2026-07-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 phishscore=0 malwarescore=0 bulkscore=0 suspectscore=0
 priorityscore=1501 lowpriorityscore=0 impostorscore=0 adultscore=0
 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000
 definitions=main-2607070132

On Tue, Jul 07, 2026 at 04:24:19PM +0300, Gjorgji Rosikopulos (Consultant) wrote:
> Hi Vlad,
> 
> On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
> <snip>
> > > 
> > > +            interconnects = <&gem_noc MASTER_AMPSS_M0
> > > QCOM_ICC_TAG_ACTIVE_ONLY
> > > +                             &config_noc SLAVE_CAMERA_CFG
> > > QCOM_ICC_TAG_ACTIVE_ONLY>,
> > > +                            <&mmss_noc MASTER_CAMNOC_HF
> > > QCOM_ICC_TAG_ALWAYS
> > > +                             &mc_virt SLAVE_EBI_CH0
> > > QCOM_ICC_TAG_ALWAYS>,
> > > +                            <&mmss_noc MASTER_CAMNOC_SF
> > > QCOM_ICC_TAG_ALWAYS
> > > +                             &mc_virt SLAVE_EBI_CH0
> > > QCOM_ICC_TAG_ALWAYS>;
> > > +            interconnect-names = "cpu-cfg",
> > > +                                 "hf-mnoc",
> > > +                                 "sf-mnoc";
> > 
> > This is the topic, which may raise a disagreement, but I'll repeat my
> > position about the need to remove all "CAMSS bus" specific resources from
> > the device node, they are found and should be allocated on parent's side.
> 
> The interconnect has functionality to handle bw requests from different
> clients.
> 
> Yes the best will be to have camss interconnect, so jpeg and other hw's to
> vote
> 
> on that (actually it is possible in icc framework) but what is the benefit
> of moving
> 
> those to camss? Is it not better to create camss icc. I understand

Please fix your email client and stop inserting extra empty lines.

> 
> you want them to be on parent side. But how to vote on bw? Most of the time
> it

If the driver actually votes on those, I think, it should be fine. This
patchset seemed to add bandwidth voting, but then it dropped all the
votes in the last commit.

> 
> depends on the jpeg encoder configuration based on resolution format etc. to
> set properly average bw.
> 
> So i dont see how that can be done with not explicit dependency on jpeg with
> camss and some exported
> 
> API's which we discussed with Bryan they are preferable.

Interconnects should be fine to be referenced here. Especially, if JPEG
has its own port to those busses (hint, commit message).

As I wrote, I see a bigger issue with the clocks. You need to have some
API to vote on them (and then let camss driver aggregate those votes in
a platform-specific manner).

> 
> Maybe i do not understand properly the proposal but can you just add some
> pseudo code
> 
> how you see the things?
> 
> Regards,
> 
> ~Gjorgji
> 

-- 
With best wishes
Dmitry

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 222D8421A0E
	for <linux-kernel@vger.kernel.org>; Tue,  7 Jul 2026 13:47:12 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783432034; cv=none; b=liThIUjaxxbu2ggVCPy5UqNmmrNXhyODaUUc3lc+4x0CPmZ45T9t/1fzqry7rE6KNAy1NBlIBUhVs4Y4+T3ojy7J4mIQmk44usSL2PALXdW6726G2qsItGm/8MjxipYuYf5OuMvFWk8SA24F4mA51Tfe7JJMJl0z3qBkmz19wFQ=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783432034; c=relaxed/simple;
	bh=bENWIoUDmb+p3ApVBhAj+ipAHOlaLeCOdg1Ywad5Xuc=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=ruDs+bqPAVE4d+ikGoBE9lo2XqqAdPWIeUkgmTGl/QQOUQ8OaQQXxRmH98XeH748SXVgBVABerfoDUPoUN3IRY3jl+42sT7Zzl1tppOnHXLs7LfkAqArW9en5C9kRJA7xHLZ3GLv7VIyjQ0yZrG8PvWmMdgPLdhUxShbLaT8ccs=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=N/BS5pSA; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jBBTVAAl; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="N/BS5pSA";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jBBTVAAl"
Received: from pps.filterd (m0279867.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 667C8Vt13741880
	for <linux-kernel@vger.kernel.org>; Tue, 7 Jul 2026 13:47:12 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	PyqAei8u+t7l/e/rvtU8ZVllDYwd5+yugM7bTcE/irY=; b=N/BS5pSAK22IBIPR
	C7q8d4MPC6CupunpWede6AWAyvgf3jJfvxsuLdOoqZuhTw7ITo0iveWUP7L5U0S2
	TMQ3sTEwFtG+Tt7oNXCKnhszvPMY8orddr/sMLvSCrCC5cvbVMihZJSBJD/NhaPM
	px1VLvSP36vpimk3cG9J5y57XFI7WDeCm6DFS29gURmNw1Gm6izCYFQdBVDbNyCm
	vX5i497hU+zCAzIKG9HGuU6oKc9YoFBptFDU3cATN81vhOJUjv1J0gDSa8rDfI0t
	k94NwFNi2Pw1CRJ7y6EjFbnNvAIHNBcL8xIIUcV/Km3bRJ8zIzn/orwX1/wfuyy4
	33sV8w==
Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f8ye0gtw1-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-kernel@vger.kernel.org>; Tue, 07 Jul 2026 13:47:12 +0000 (GMT)
Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c1a9764f0so55369151cf.1
        for <linux-kernel@vger.kernel.org>; Tue, 07 Jul 2026 06:47:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783432031; x=1784036831; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=PyqAei8u+t7l/e/rvtU8ZVllDYwd5+yugM7bTcE/irY=;
        b=jBBTVAAljrtlwIbIJ6RRbiv0cxugWIQFllytqMrCLAMK+1E+ZcX1CJcD3NFtcGqK9f
         Ak8sPimeZUTVynGxGU6PMhWU4uBZP1qXI66aRFlA10T8vJKJdLlb9IuM9djQZ3YOFqKd
         hAJDuDXHCzwO7Z3yTIrfqSEw/RMZ/ZSWRjwkuzLMsksQ7nIcu/YxC+f2TEWQI17vlw0b
         1bHJfqrGqik9BW5Dcwb/PwkDiTnLqd3Fn4TiOvIKsph4Xof8Cel5qiFVY9sPNeBeJpCE
         D/8ee6C70qEZp4/ooXl83Pt86KS+LLU1RepGN9bw1LBAO5tKMfDdOSl1DaBe5e8Nw+Ti
         QUAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783432031; x=1784036831;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=PyqAei8u+t7l/e/rvtU8ZVllDYwd5+yugM7bTcE/irY=;
        b=W3dhQCVsSSNVL0MM37LU+zCATJmyesBjwM987TPasQOoxRFyKUSiEjy7LRGhw6fuqi
         8xAYY5eEfkEKgRBdi8E/kVomKwsNpNL0qN9rITUwD8TNHDFqNPfZSb5n7lZNYpVBU2lj
         1jqsuQpPE/nDAXYrNzr8mDuA76Cmqq0DtjsXwLXwbaDY2L4bVlr+/MeEMsFO99QBCm14
         mqvbsgEcYoGIkI8beDNnieOFLjfCGXaR+WYbEUwRGlBmQly0SeleyUHd7n+du7Lb4pLk
         KOuwezypBTZ85PWzy4ZFjZOujBsoIGuIHfqYCo61XMDt3NzyjE6KzDgX5tPKN8auqrYc
         /MRQ==
X-Forwarded-Encrypted: i=1; AHgh+RqcGxDJ4ys3I6aFoLqgwF+qGBzUyr5umN4rG+ljTe2UvDMTN0xpOAVsXZ/09Ui/tiJ77/WfFhd0Kc2dAuU=@vger.kernel.org
X-Gm-Message-State: AOJu0YyflbBSL42NAUsfyLUYHxKQDPotqNhos0H/vLwcGYWf+q0FsDgi
	ZkyQel+8LUNy8rPeR4QXX8cjszC7eKB4ycbqV/hKsgYuYT/3AHcEIoXdQEb865KxkfVPdkoIWis
	lGgKmoj5SL4ujSg5PksZaMKUOqGm5rtFpEIhEwrpEenqvP6GY/egNPV0sUmDEJi8CX38=
X-Gm-Gg: AfdE7ckkyWBt1IGEkhvoEzeS7du8FAAwqjaEJmvbwsgn89oQ8yVSTwnCnT2TmZaBpn4
	dCAXCkL3CEP+x2Di3AnF288LN+K5yDCq6v4RWXmmWQa6KANHqsbThyhAqye6WkoycQCk0X4PWOF
	1JbfEPIhFUXhzJuHle+2UlVn5mfam5SdAqbw9KDZPGlai1W5w1uzDQNXfa8+fuypdb4zLvJrf5V
	Pjw3ArUTsGC/235zZdeAJPOe5UkKx3PNcf2j587J+4JD41VPBr0VdbY+RLH4zpUqywBrq4hdEMs
	VKfCVD19e/F5qj+x8JmekzSvL+aCfj2ssq7vAaORTvBGHMp4A8q+JvT1JFJ88hAhOmUchmPzhFe
	QVrvb7xbV3b0XiTeAlnMIhjqskWMJcE4Wct9kNmjypSgPe1XJ6LT1scg/FtE8qNuXwE/3IUp1z1
	rD2iewdb0=
X-Received: by 2002:a05:622a:2516:b0:51c:c37:df31 with SMTP id d75a77b69052e-51c747780eemr58798701cf.7.1783432031386;
        Tue, 07 Jul 2026 06:47:11 -0700 (PDT)
X-Received: by 2002:a05:622a:2516:b0:51c:c37:df31 with SMTP id d75a77b69052e-51c747780eemr58798071cf.7.1783432030794;
        Tue, 07 Jul 2026 06:47:10 -0700 (PDT)
Received: from [192.168.1.31] ([85.196.172.179])
        by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69a19daafe2sm5659651a12.25.2026.07.07.06.47.09
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Tue, 07 Jul 2026 06:47:09 -0700 (PDT)
Message-ID: <c8cb6b7d-f8ec-4e37-8a5d-48a91fbf74f8@oss.qualcomm.com>
Date: Tue, 7 Jul 2026 16:47:07 +0300
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
 <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
 <lxwvnkogwkwq72b7re25isnidjl5hzior4gvftww6vzmngus3d@sdqeb6heki76>
Content-Language: en-US
From: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>
In-Reply-To: <lxwvnkogwkwq72b7re25isnidjl5hzior4gvftww6vzmngus3d@sdqeb6heki76>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Proofpoint-ORIG-GUID: 6duWMtmJMieNXgd2F1csaCesbLpBh4nj
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDEzMyBTYWx0ZWRfXxCbSqSB9upXy
 uZwpqT9dpkUPM14i2hATb0w3//JZFI5+sqborWu1sQqhvCyu3+n9F4LWiuKVwM+n1cmbjsoXvHj
 K3VsrkKiyogyV7RZMDb06tPy4e1Z+4Q=
X-Authority-Analysis: v=2.4 cv=SZfHsPRu c=1 sm=1 tr=0 ts=6a4d0360 cx=c_pps
 a=WeENfcodrlLV9YRTxbY/uA==:117 a=Q/e3f29T3Hw2hnAEzBPF7w==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22
 a=FYVyraQ01RCAgbHwNcEA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=kacYvNCVWA4VmyqE58fU:22
X-Proofpoint-GUID: 6duWMtmJMieNXgd2F1csaCesbLpBh4nj
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDEzMyBTYWx0ZWRfX+knMoUhKSnvC
 sVmjC/dN10G3YWCgitvUowAWl8MNyQ7ROND5wo6zVy5U0ZduUdR72EpDdmlfGULQ2Xj7N6BiqeD
 /2Ec/y0EfrMLUAJc3WJq5p4OI5wV6q02wkpB2fp7scFDWkgAnl6U0XLbYqQOInz5h7jaejYMQGf
 8PFbkhmAVSIHf9lg7QWX9KG9PHGY76zD3EVQ0vNZd+c4A9Ex/5YaGUFrThoSllZZvx2b4qWELxE
 aDRG115WbxDk3K8Y28sfGTFoum55b3jy2bxt2FsHDPCrUhlpm2UPui/3STniec0PlEyGOmx4Zaz
 Y5Q9PAKW3pg+85VQ57gtC49JDqX1R9pa95a6qyPXMC/Ua6KWkPDFYqrxb5QcNt6SdJDG6LiCdaM
 9o4mP7WBe6HNpNI2zlo86Vw70fhN5fMB+eBTkhUOXCsadfF382KdqcWQ+ExaOnOkOl3uXJlj/Gz
 AiHTKBY6ffiajX0reYw==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-07_03,2026-07-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501 impostorscore=0 malwarescore=0 bulkscore=0 spamscore=0
 adultscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607070133

Hi Dmitry,

On 7/7/2026 4:32 PM, Dmitry Baryshkov wrote:
> On Tue, Jul 07, 2026 at 04:24:19PM +0300, Gjorgji Rosikopulos (Consultant) wrote:
>> Hi Vlad,
>>
>> On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
>> <snip>
>>>>
>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnects = <&gem_noc MASTER_AMPSS_M0
>>>> QCOM_ICC_TAG_ACTIVE_ONLY
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &config_noc SLAVE_CAMERA_CFG
>>>> QCOM_ICC_TAG_ACTIVE_ONLY>,
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_HF
>>>> QCOM_ICC_TAG_ALWAYS
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>> QCOM_ICC_TAG_ALWAYS>,
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_SF
>>>> QCOM_ICC_TAG_ALWAYS
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>> QCOM_ICC_TAG_ALWAYS>;
>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnect-names = "cpu-cfg",
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "hf-mnoc",
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf-mnoc";
>>>
>>> This is the topic, which may raise a disagreement, but I'll repeat my
>>> position about the need to remove all "CAMSS bus" specific resources from
>>> the device node, they are found and should be allocated on parent's side.
>>
>> The interconnect has functionality to handle bw requests from different
>> clients.
>>
>> Yes the best will be to have camss interconnect, so jpeg and other hw's to
>> vote
>>
>> on that (actually it is possible in icc framework) but what is the benefit
>> of moving
>>
>> those to camss? Is it not better to create camss icc. I understand
> 
> Please fix your email client and stop inserting extra empty lines.
Apologies for that. Some Thunderbird settings were missing on my side, i hope now is fine...> 
>>
>> you want them to be on parent side. But how to vote on bw? Most of the time
>> it
> 
> If the driver actually votes on those, I think, it should be fine. This
> patchset seemed to add bandwidth voting, but then it dropped all the
> votes in the last commit.
> 
>>
>> depends on the jpeg encoder configuration based on resolution format etc. to
>> set properly average bw.
>>
>> So i dont see how that can be done with not explicit dependency on jpeg with
>> camss and some exported
>>
>> API's which we discussed with Bryan they are preferable.
> 
> Interconnects should be fine to be referenced here. Especially, if JPEG
> has its own port to those busses (hint, commit message).
> 
> As I wrote, I see a bigger issue with the clocks. You need to have some
> API to vote on them (and then let camss driver aggregate those votes in
> a platform-specific manner).
Can we use icc-clk framework to vote on them. I think even today there may be some issues in camss
for the clock voting.

Regards,
~Gjorgji


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 DF3AD30CD92
	for <linux-kernel@vger.kernel.org>; Tue,  7 Jul 2026 14:47:34 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783435656; cv=none; b=Is4M0+7p86HY98GYnGv1CcdVH36jAcOBEY6uMCiP2iDv+fFlbcbaaQqm9FE1v8+NkpTZ+poNLspnC3CTcXYKGv2AkG2tJD6sWu3jskSGk1vK/5Kw2QTBxXVwMlyskg3l4va6FU4sDqcrTjHK6h6VUyRVRGQ1BQ+Ml+CUxQxnrfY=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783435656; c=relaxed/simple;
	bh=kbB/eBRZgg8WpEohJaYOhBTmcXDJ4/L3JhRiQEfaGtQ=;
	h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:
	 Content-Type:Content-Disposition:In-Reply-To; b=jdBdlczQotR/RfQIL7WUdcGBrEJsOEgaX+2Jyp0I9G/N9y6WKrsAhOszpyvnVHwoTcuKL+HQ/mXoS0xU6BLuwsQaj1L/NN7UXskrlH8nJiuTVrCpxkXIDoVxmZ0hyhqx15vaIu7w6sJkT+Meja36gG6boYcu2QOz0j9qlTolvB4=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=p0NaCsYi; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Xe8/rre3; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="p0NaCsYi";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Xe8/rre3"
Received: from pps.filterd (m0279870.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 667C8x1d3719215
	for <linux-kernel@vger.kernel.org>; Tue, 7 Jul 2026 14:47:33 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	KnL8n0Rge/PLupFS9hJ3iC3ksta3Fq+O1fWOUkKJBYc=; b=p0NaCsYiWC2KqUWR
	XSBHszC+Ja+g2ZwIFWFp9g/5FUjNwtQge9XqWfGw6sW30HCuKbAVoLt6Zy+QWHP3
	ftQZh+j4LdrRwvXnqWqSmC6ffC3xGv149tGagUZ+kTHCUgN2WJwb9bnOI0Dn1zjL
	NWG+IOy3dukl+KbAcIIsdjUICVoSAB2LM/O0zkRnw30JEX1i64BDnjW0381vjvq8
	QUYatQAS9+jYcCJ3+QU1kNE/TYSSrO4DN1MQxpYOOmMf+yCw0cfk28xYDTRKD2E8
	XEt12NOYzcWGIwnZBq6BGVxpHUrUhbvKSomzQuJUaSTz7/tpDIwCsr98Lb2dLwUo
	MmeSEA==
Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f8v3ta2c9-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-kernel@vger.kernel.org>; Tue, 07 Jul 2026 14:47:33 +0000 (GMT)
Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-73850dfc198so1014829137.2
        for <linux-kernel@vger.kernel.org>; Tue, 07 Jul 2026 07:47:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783435653; x=1784040453; darn=vger.kernel.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=KnL8n0Rge/PLupFS9hJ3iC3ksta3Fq+O1fWOUkKJBYc=;
        b=Xe8/rre36zyRiCRZTFr2gHVTrIKrhLTF2t0CuJQw+1nCuzUQkrBM+7hpMXQzBAp+PH
         amAuVJyd7qzWksmwPoBiNgd8AnZgszQIPYxXaMX+yAeQdTafaMB/F4iRjHIq7YdLpz7K
         +JaYpOIUz5iz4HEYoVoh5wSyP+D+Au7ECd1YXZWU+aQ7lDRbleRx+N7g26IH9DKQ0ArE
         WUcaopy7yGmj34dOgvEgejfavluZbAo2enDwvm2knq2Bn+65Ve9teByUDF7UF7upLW++
         ugvSTR8WcHYlXzc9xHeO7/hCrEvMRib+TXRoS5ADAVFAARbKlgIrYluyz/E9Ji/k6nlr
         WL9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783435653; x=1784040453;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=KnL8n0Rge/PLupFS9hJ3iC3ksta3Fq+O1fWOUkKJBYc=;
        b=nibayC9irU3CGmrEzO9RIMG7mSATrNRNzx2Wp+HLwZlTHtT+F4uKzh+fJtS+l5Nrjn
         0q57YCk/Olcc/SOS+4lLNLfSgKBrHWpKGzidaVGumEnmf/2m8Tn3k2/8TeuEt/2MF1sK
         Cc7IxAlLzYfg0hVVg/hbUQzYxpFpTWGjuCuJemBPB2RFsOqwnAJYT7f9HPMLU985SYwe
         EcylNrLTHb2Zdn2L7esZoIzijYh+dvSkPq9HzKacMk6yWxw2iUF28IoGuRro7kwL4cql
         fN22XuvVitYMAtgoFLBlrZ/LAA4PRwKQEUFPrjGPltPzUPo8kQLr45b8PhtP9Eexble/
         bhEA==
X-Forwarded-Encrypted: i=1; AHgh+RpsRlty+FLNlxTmRQAzzBz4pJbr+cOsJziSJvcGvQBvCfWR1uwxbo1ogdfAxwZEvbIQjJ2KynCFxUNQd+o=@vger.kernel.org
X-Gm-Message-State: AOJu0YzCWz0kMjPg8iDA13pCtgucXPO8FK5mNKRxshnTYsd1+SrqJCDN
	l+6tM2/0UzApeRaP0PKQdb0zIzv04/mx/o1Qxo5ENkyE7kez7Ml0i7gbP/ieBG9EFNl4oh9+m3d
	RsOWI6u/z55DpIo5h3ZRMQfRSiSkhtYXWKgHEYuiLwaTeAU1kQtkiEzPOpFR4hFoZ66U=
X-Gm-Gg: AfdE7clhoOtPZ+gkiMyQYo18n4p1ozm/gn+DwcOpDa0hKZMRalhLHmDvk6huqjFjqf4
	XukXsQElBuJHJjaearHFcYIjsmTCfsvA+ydC8jUQPiFcjwrgAaj2MS6N4EgkSGBuaUSdE5Tloe2
	uXFH2qm1L/xnarceBMJM5n2aUH1CV9gcA/20OBznFvkHAwy6R92ZnsvlYXD1sgz3Cc+nbb581Dz
	5FT4HE1BR7puFZ5C0YaGDWxXKhSvQcJ3Wbm/ZQS8QkJZacSiH6AHfnAFZEt3NXmSAVBN32Y8pdS
	lxzQZZqKjpn1RGHfvjjXTqz5NtHUmG1NY3++DB/Q//JQcXQ3g3tChPP7vhCX39SIFsIAkzU0v2t
	0VEhFAma1WoZ7bD4MSyDTcanhaoQ9rQEEKNIBmx/+rq2yP2CXbyC7APZ98D41JoQ3YfPD8Zpixg
	HUGWCUIIbpkETwsY++a+JmlmTF
X-Received: by 2002:a05:6102:6448:b0:726:cd42:d023 with SMTP id ada2fe7eead31-744b7a8eb73mr3208759137.11.1783435653030;
        Tue, 07 Jul 2026 07:47:33 -0700 (PDT)
X-Received: by 2002:a05:6102:6448:b0:726:cd42:d023 with SMTP id ada2fe7eead31-744b7a8eb73mr3208733137.11.1783435652469;
        Tue, 07 Jul 2026 07:47:32 -0700 (PDT)
Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
        by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39b4ad35edfsm29360981fa.13.2026.07.07.07.47.30
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Tue, 07 Jul 2026 07:47:31 -0700 (PDT)
Date: Tue, 7 Jul 2026 17:47:29 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: "Gjorgji Rosikopulos (Consultant)" <gjorgji.rosikopulos@oss.qualcomm.com>
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
Message-ID: <n2qzqh7xbyth543qzhufvmqctjqeqzjtn7w67u77meau63vpar@a7ossfgoctqo>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
 <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
 <lxwvnkogwkwq72b7re25isnidjl5hzior4gvftww6vzmngus3d@sdqeb6heki76>
 <c8cb6b7d-f8ec-4e37-8a5d-48a91fbf74f8@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c8cb6b7d-f8ec-4e37-8a5d-48a91fbf74f8@oss.qualcomm.com>
X-Proofpoint-GUID: xLcQ4G12hRwVsNdlwalpyMW8GvXhlT0s
X-Proofpoint-ORIG-GUID: xLcQ4G12hRwVsNdlwalpyMW8GvXhlT0s
X-Authority-Analysis: v=2.4 cv=HqVG3UTS c=1 sm=1 tr=0 ts=6a4d1185 cx=c_pps
 a=P2rfLEam3zuxRRdjJWA2cw==:117 a=xqWC_Br6kY4A:10 a=8nJEP1OIZ-IA:10
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=gfVf64230eWH3T0bUGYA:9
 a=3ZKOabzyN94A:10 a=wPNLvfGTeEIA:10 a=ODZdjJIeia2B_SHc_B0f:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDE0MyBTYWx0ZWRfXzRLqgMYfdrTM
 NXzCdMj4nCUlCAf7yIZkxWRLghhfOQO8zqRRhOqxiz8kiXH+VY16Y7xGKnQbLs6WtC+bcfU5j+Y
 SkUWYjJWwOYWN5LtKnUJk7F24nGrmSvI5jU5FZpr/4fT0O3kkn+J92ZBEhDTZizQg4y3kw9+8LF
 QWSzK05MkZnd6e29YLWeJwjNYnebI7rd7vlG8q6ntKlc/0Gr4ln7bxw9kjTtpZrq+uM1CU+v4Yo
 vmiGrT+bVQRhgr2IoEQ4sZhVm6JEkFuKfCcI6Ayfr3jab3E4710ykJBxa4oQgDqKM1IKGXhK4+/
 IQARTlaYRX1R6FsoQl6rsTp3ima+bSTII07SXy0mjiyNtsUY5nIRztWggPGiWaYdnKf7SvFNLbo
 qQeut4+NiGHEe8BZyVBihW0T6jkcanw4V24dJn6JzTw3XEkzbC5aT+b/Zn34vqXZ5SNp0rxfbbg
 ux32ediIebKElAxy1tw==
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDE0MyBTYWx0ZWRfXwXdf05wqjQXm
 IHkCAmcUcEnQoC0ON4RhlfhguZCsDMgHxSFNCNOZE3OtY5i+ZsSucvPa0rbemTvjTVwb2T9Q3jx
 6WpOL0bNrF8bxep5kWgg6GcNh3VWjek=
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-07_03,2026-07-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 impostorscore=0 adultscore=0 suspectscore=0 malwarescore=0
 bulkscore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 spamscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607070143

On Tue, Jul 07, 2026 at 04:47:07PM +0300, Gjorgji Rosikopulos (Consultant) wrote:
> Hi Dmitry,
> 
> On 7/7/2026 4:32 PM, Dmitry Baryshkov wrote:
> > On Tue, Jul 07, 2026 at 04:24:19PM +0300, Gjorgji Rosikopulos (Consultant) wrote:
> >> Hi Vlad,
> >>
> >> On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
> >> <snip>
> >>>>
> >>>> +            interconnects = <&gem_noc MASTER_AMPSS_M0
> >>>> QCOM_ICC_TAG_ACTIVE_ONLY
> >>>> +                             &config_noc SLAVE_CAMERA_CFG
> >>>> QCOM_ICC_TAG_ACTIVE_ONLY>,
> >>>> +                            <&mmss_noc MASTER_CAMNOC_HF
> >>>> QCOM_ICC_TAG_ALWAYS
> >>>> +                             &mc_virt SLAVE_EBI_CH0
> >>>> QCOM_ICC_TAG_ALWAYS>,
> >>>> +                            <&mmss_noc MASTER_CAMNOC_SF
> >>>> QCOM_ICC_TAG_ALWAYS
> >>>> +                             &mc_virt SLAVE_EBI_CH0
> >>>> QCOM_ICC_TAG_ALWAYS>;
> >>>> +            interconnect-names = "cpu-cfg",
> >>>> +                                 "hf-mnoc",
> >>>> +                                 "sf-mnoc";
> >>>
> >>> This is the topic, which may raise a disagreement, but I'll repeat my
> >>> position about the need to remove all "CAMSS bus" specific resources from
> >>> the device node, they are found and should be allocated on parent's side.
> >>
> >> The interconnect has functionality to handle bw requests from different
> >> clients.
> >>
> >> Yes the best will be to have camss interconnect, so jpeg and other hw's to
> >> vote
> >>
> >> on that (actually it is possible in icc framework) but what is the benefit
> >> of moving
> >>
> >> those to camss? Is it not better to create camss icc. I understand
> > 
> > Please fix your email client and stop inserting extra empty lines.
> Apologies for that. Some Thunderbird settings were missing on my side, i hope now is fine...> 
> >>
> >> you want them to be on parent side. But how to vote on bw? Most of the time
> >> it
> > 
> > If the driver actually votes on those, I think, it should be fine. This
> > patchset seemed to add bandwidth voting, but then it dropped all the
> > votes in the last commit.
> > 
> >>
> >> depends on the jpeg encoder configuration based on resolution format etc. to
> >> set properly average bw.
> >>
> >> So i dont see how that can be done with not explicit dependency on jpeg with
> >> camss and some exported
> >>
> >> API's which we discussed with Bryan they are preferable.
> > 
> > Interconnects should be fine to be referenced here. Especially, if JPEG
> > has its own port to those busses (hint, commit message).
> > 
> > As I wrote, I see a bigger issue with the clocks. You need to have some
> > API to vote on them (and then let camss driver aggregate those votes in
> > a platform-specific manner).
> Can we use icc-clk framework to vote on them. I think even today there may be some issues in camss
> for the clock voting.

Please discuss it with the Camera team, working on the camss
improvements.

-- 
With best wishes
Dmitry

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 4B532351C1E
	for <linux-kernel@vger.kernel.org>; Tue,  7 Jul 2026 14:51:11 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783435873; cv=none; b=HnNF767IZ6h91doHU2DWnsKP9saNff9yL9hLN+w3ZHdu2gSfNss9d7t5HfBAIKytKpZF8p6YlJD/ywY4JKNOrbqBD1dcaHjABnpIv/UE/RPRSqWUXZ8rZzOJ4cuygQjbZoxqBL0IkBJLRPOZmSoHG1zL8q51DEn0v48ul/sjCqk=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783435873; c=relaxed/simple;
	bh=RuEaLadIoZsuJyS6ZmkPuRWYcQxb5NYbj/XZuDX8dGQ=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=fqblHJDaU0y8yP43wxW+rQ55e65Tr712xbpnpWXiA/ktyMcKwKDVztWAq/tVi05c1KXzwXb7EEo9WlF7gvsANteOL4oPp8bKQPG2E41O1aLhW7tXKtk4ZB2DpwIfPO9zwc1h3stk7vItLslMfVZrk8JYmIvsnB+SscmWJLt3TSs=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=PlLhrtPo; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hBXWQGpN; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="PlLhrtPo";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hBXWQGpN"
Received: from pps.filterd (m0279868.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 667C9LkT3740874
	for <linux-kernel@vger.kernel.org>; Tue, 7 Jul 2026 14:51:09 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	dVQCOXxDOJYdfBM0wH+7s2f+TFisB5ucH9qGVZf6tTY=; b=PlLhrtPoG2XGfQwL
	4rgO+c1M5c+royndMjQkIioTQdMavHjNcypq+vUq47rfP+FlmO+bEW92DRQ/6/h+
	peu+r4mZroQNbvESHdytzd1uDAjopmuxY/VhQ86ericWxHiCfH/qvVDGm4TR5DiI
	FyQOCvHWQnPyvIwdYFF0rPgbx6/NO0/MD/KuCg77Yxpy1aEKrkkSR2nI6wXgnl/y
	VpXwQiJJdJXLNsr3fVbbUxnGcsPjYmuggY+wFekr/9si8wc8W9NSVPaLkuR8AASk
	mW5dBZsrHR66C/dZc3vaMGrq1DvbgvHINJHqr89lluvdjNT30tGmUhiJbtdiSFAh
	PORlpQ==
Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f8v9aa1nb-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-kernel@vger.kernel.org>; Tue, 07 Jul 2026 14:51:09 +0000 (GMT)
Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51bfe3fa93bso56101661cf.2
        for <linux-kernel@vger.kernel.org>; Tue, 07 Jul 2026 07:51:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783435869; x=1784040669; darn=vger.kernel.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=dVQCOXxDOJYdfBM0wH+7s2f+TFisB5ucH9qGVZf6tTY=;
        b=hBXWQGpNMYqQMILMfIOoHmoxMxfjVtFL4tDbuIqcEGDqzJmSQfYUZ+AGuCCCiBpMUT
         tjKYB0iobIOVCazHCXAFYHh1NVYQydqO/llCQOO8vaShn5gaTn8sb9dNCNg3wBjst56G
         NMbbUwNWiETT9riqxLT5xgluuRTWqc9P/2ZXE1jgHssqmF8M5n84MEV5a7yievrtLiaO
         daT+sbCQ+D/5+DPDyH4yab8ben/qSX7OJDei7qUgrMRYFgGggEOGysEECfoNahx1CCn/
         oHw9hpz49xIoDIGnzpIJnAGadgG/uCmZjj6YdvAkTOJlSpUkIOm2bjvoxd0Qioo9HlR7
         7YMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783435869; x=1784040669;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=dVQCOXxDOJYdfBM0wH+7s2f+TFisB5ucH9qGVZf6tTY=;
        b=CqcND5COP5sDG+Ci6wh0icZ7WbouG8SvgF2AGEXsHbj61BtjeaUDqczdvLm3uPiUIU
         ETwq3zCS+FsaEU/cmC/1YzF6GuMROsTzpFi+pzZk/4/IDJfjudXieABNrk0Sl88xyCsU
         RbtOq88WN0dRvBCWpUpnB6tqTTGPdeC9iGflDs65mqcYq9Lc+vCkuZ4FHoFqGX3hKXly
         MftiwgHaFga1fqAX8FnzrwFGJMfG/0UWreAyqUjeBcmiIOALZWQdgM5SBEoHkflQ//2w
         uGCwaiFRKrNgCKEGQ0X6gqsgMY9JDwCwjXvPLAkZaMYDsPvZNvrLk5p8u+A57T2pcSR1
         42bQ==
X-Forwarded-Encrypted: i=1; AHgh+RriEnlcEQF6muo6a5kdPntDqC1MukGRNWY4HeIdQok1BNckl2MzDTusJP06h3Q01VGeqi2BtCxBWaFeiAI=@vger.kernel.org
X-Gm-Message-State: AOJu0YxkaHZbpFs0XEX0m8pogX9+y0m+7irN/X4dY0Yrx3YYiOp5DNxJ
	hAP/MLXP5r/K2781enLveTFFu60eC10e0e+8PJD51F9H45z1vI5JWxSJl+Gnci7/bqra0paHma8
	qOMla2QceHH+0ZuT7iuYgx7qHCwG4xSXRLQTPqFWY+EjKESiStBmU/N/qXcwz6GUTdMM=
X-Gm-Gg: AfdE7cn9UHHSeKIITQSMseQ7tuf2Wg7TGY2BRc+oxUjWMt+ksa/bEo1GF6BfPSXLuJD
	7I/ZjWXZNvgdsC1Rrh0U1krP844BSoTModLeO9nDIJSXIdz2CPjMiv0wu5NYRniERKi995WdrpQ
	VwyrwFm6kfNgfSJwG+yDnLpGpkpkctxnBYhsq1NaBReM6mUol7K3nFQw7qhOrXJOes55KayAff5
	orWBX/txowTdTI5SPHZB9eJWxxgmERx+VQ6zuhW4XQqqkoAAS3sFWvjL5l0gsg0AGzsKGbgxzw1
	vlcenEq2s3BGREwzEwPGEKF68QTN9eEx74WOMtjJyTsmuLAtFLI6tiR8qLmfPbPAE9NywwJW29k
	xA8w4gHdygcOWXgyZo9hYoliq1k1OKE0rWOb9WSyAlA4NPt9GZX4/Vnr+WEwugUiuk3MEGB44E8
	jj4Fa+Hr4=
X-Received: by 2002:ac8:7d51:0:b0:51a:8c9c:7f51 with SMTP id d75a77b69052e-51c748df6e7mr57992381cf.68.1783435868984;
        Tue, 07 Jul 2026 07:51:08 -0700 (PDT)
X-Received: by 2002:ac8:7d51:0:b0:51a:8c9c:7f51 with SMTP id d75a77b69052e-51c748df6e7mr57991801cf.68.1783435868305;
        Tue, 07 Jul 2026 07:51:08 -0700 (PDT)
Received: from [192.168.1.31] ([85.196.172.179])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15ada05d4dsm156219366b.49.2026.07.07.07.51.06
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Tue, 07 Jul 2026 07:51:07 -0700 (PDT)
Message-ID: <84f593f8-eb28-435f-9458-55aff899dc1a@oss.qualcomm.com>
Date: Tue, 7 Jul 2026 17:51:04 +0300
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
 <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
 <lxwvnkogwkwq72b7re25isnidjl5hzior4gvftww6vzmngus3d@sdqeb6heki76>
 <c8cb6b7d-f8ec-4e37-8a5d-48a91fbf74f8@oss.qualcomm.com>
 <n2qzqh7xbyth543qzhufvmqctjqeqzjtn7w67u77meau63vpar@a7ossfgoctqo>
Content-Language: en-US
From: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>
In-Reply-To: <n2qzqh7xbyth543qzhufvmqctjqeqzjtn7w67u77meau63vpar@a7ossfgoctqo>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: ZJ6BE-Z7IqwB-9gpSs8TijIY8QanmYwy
X-Proofpoint-ORIG-GUID: ZJ6BE-Z7IqwB-9gpSs8TijIY8QanmYwy
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDE0NSBTYWx0ZWRfX+m8r9XCo+mEP
 tYYlXKSYQ0DLgFHVQWxflsliUWVpQnCMG8H0EW+vONCdcCgWQuMkc15WaraLYzMZQ2ntRYWGsEf
 Qv7ceuyfnBTs4PibWO4GpyajjcQeNVQ=
X-Authority-Analysis: v=2.4 cv=b9yCJNGx c=1 sm=1 tr=0 ts=6a4d125d cx=c_pps
 a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=Q/e3f29T3Hw2hnAEzBPF7w==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22
 a=MVBuJk07v-XTMpK2hJIA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=dawVfQjAaf238kedN5IG:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDE0NSBTYWx0ZWRfX0FOCA9Csv+Vp
 3Dy4KDtmKyLRmlU5KI6vNwr/K9JfH5B8bO3ysgK0NwK8WQqVMfTXv6LOesJRcT1YZ69J4q2xef1
 LDtsPofNqrApVpBXGNoXkjKOvG5OVC9ORbW9scbnQCBGcqvqS21oFawmvRbb+Zq1JX14M1RCun5
 HP/VhMf64K4PENQvhjHkCn6GUmU34YVbOv1OK8pERubOzH49HGVkY8n5IcUXhhDdqQ0Uj6lKj+C
 YTPWPgtk2aeOQtmvwcFWJtVsSliD1GGN6aHyTyBsuSROUCeb5TEOLi8eIky7PmLWLL6nMenoCMW
 fCIqHuBVfA3WCRG9Qy+v8vYTHHHCl46/mg4PW9NYKoomMzeb2LUHK5yOSBF3YbygHFLUm3H5X7I
 yrAO961gUHdR2S2J/G+xpGyfIPoqLG5SWA3K78gWlZJyZAA9N3h7zkH12sd42QMpzu5PLiia2vg
 iG4YulDHIIjFkPhN8CA==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-07_03,2026-07-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 impostorscore=0 suspectscore=0 priorityscore=1501 adultscore=0 malwarescore=0
 bulkscore=0 spamscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607070145



On 7/7/2026 5:47 PM, Dmitry Baryshkov wrote:
> On Tue, Jul 07, 2026 at 04:47:07PM +0300, Gjorgji Rosikopulos (Consultant) wrote:
>> Hi Dmitry,
>>
>> On 7/7/2026 4:32 PM, Dmitry Baryshkov wrote:
>>> On Tue, Jul 07, 2026 at 04:24:19PM +0300, Gjorgji Rosikopulos (Consultant) wrote:
>>>> Hi Vlad,
>>>>
>>>> On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
>>>> <snip>
>>>>>>
>>>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnects = <&gem_noc MASTER_AMPSS_M0
>>>>>> QCOM_ICC_TAG_ACTIVE_ONLY
>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &config_noc SLAVE_CAMERA_CFG
>>>>>> QCOM_ICC_TAG_ACTIVE_ONLY>,
>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_HF
>>>>>> QCOM_ICC_TAG_ALWAYS
>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>>>> QCOM_ICC_TAG_ALWAYS>,
>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_SF
>>>>>> QCOM_ICC_TAG_ALWAYS
>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>>>> QCOM_ICC_TAG_ALWAYS>;
>>>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnect-names = "cpu-cfg",
>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "hf-mnoc",
>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf-mnoc";
>>>>>
>>>>> This is the topic, which may raise a disagreement, but I'll repeat my
>>>>> position about the need to remove all "CAMSS bus" specific resources from
>>>>> the device node, they are found and should be allocated on parent's side.
>>>>
>>>> The interconnect has functionality to handle bw requests from different
>>>> clients.
>>>>
>>>> Yes the best will be to have camss interconnect, so jpeg and other hw's to
>>>> vote
>>>>
>>>> on that (actually it is possible in icc framework) but what is the benefit
>>>> of moving
>>>>
>>>> those to camss? Is it not better to create camss icc. I understand
>>>
>>> Please fix your email client and stop inserting extra empty lines.
>> Apologies for that. Some Thunderbird settings were missing on my side, i hope now is fine...> 
>>>>
>>>> you want them to be on parent side. But how to vote on bw? Most of the time
>>>> it
>>>
>>> If the driver actually votes on those, I think, it should be fine. This
>>> patchset seemed to add bandwidth voting, but then it dropped all the
>>> votes in the last commit.
>>>
>>>>
>>>> depends on the jpeg encoder configuration based on resolution format etc. to
>>>> set properly average bw.
>>>>
>>>> So i dont see how that can be done with not explicit dependency on jpeg with
>>>> camss and some exported
>>>>
>>>> API's which we discussed with Bryan they are preferable.
>>>
>>> Interconnects should be fine to be referenced here. Especially, if JPEG
>>> has its own port to those busses (hint, commit message).
>>>
>>> As I wrote, I see a bigger issue with the clocks. You need to have some
>>> API to vote on them (and then let camss driver aggregate those votes in
>>> a platform-specific manner).
>> Can we use icc-clk framework to vote on them. I think even today there may be some issues in camss
>> for the clock voting.
> 
> Please discuss it with the Camera team, working on the camss
> improvements.
Thanks we will discuss this topic.> 


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F60242DFEB
	for <devicetree@vger.kernel.org>; Tue,  7 Jul 2026 15:49:44 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783439386; cv=none; b=f3cc2L2JuP89OkQ9NkXSVSuyJZE1akynIIMJajGHoA+I9oVpIyJ/RtxFRJnyLDBlj2i+IPDUr0xFP7RLw7K43YDshL0Zrx50NCEw7Ytrat6Ueur7NCjTSt3Jd6Utl5wxpT4E2DU3z8IdayZ7CwtPk9e5zoG3fHdmxcjBm9Wi5RQ=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783439386; c=relaxed/simple;
	bh=BqX/raJZq/M+26MMxkIWhMYO1ENqNToaygyKe2/Aq0o=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=kPIztDeuRmZnhAxvpKFrebPqoD7Z6ZN5sXD5S4Lmn9iBnEgEWQ23xqRzb4nI8/d7FR8c0fIpYmo32n1uxHQhAdeGcxODmTurwz5BZiNAJrWWqAYvbGlumGZfO6Tci1+n3aZWhJtdG6Hwhs0UNa8Jcl6mKIivsrzCzjf6zz3mUC0=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=VoVvfp55; arc=none smtp.client-ip=209.85.221.45
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="VoVvfp55"
Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-474303f3c72so2611846f8f.0
        for <devicetree@vger.kernel.org>; Tue, 07 Jul 2026 08:49:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783439383; x=1784044183; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to:content-type;
        bh=yoBSGIBvFJoYUlGX0ow4ClOW7y5+xBVzJYsazX/Ju4I=;
        b=VoVvfp55/g7v1m0zkRi9e+J3LCUCLk310UH4aO6cV62pJ25Fao6IGJJUsxs8fZ+7q2
         GYlVgl6axMQpP1DDD/sLudWX+XkqjlRfXlaIlv98ZWjUAozkmd78J70Q8Np7glbxzQ5G
         PRwKUA2HEDAq06fQxk2mSSa4MJk5mizX/LowPJJYrOr/u5xXlWvW2WOXAQuSGvBDlDvX
         W02TqwlDnOjFmdwRNgGfz/JTqjoO4dOloqkeisDBmG/8fumvxokdcGxN/0/B1VMIyglt
         NNkY0is45TT3lxum5edDjz6o+vY5GtYh+pRJac16vl798e6bMBCdmjaK6AA3TaFcq/lS
         6ihQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783439383; x=1784044183;
        h=content-transfer-encoding:content-type:in-reply-to:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=yoBSGIBvFJoYUlGX0ow4ClOW7y5+xBVzJYsazX/Ju4I=;
        b=N1Z5XVso2venAA962gp3bZzHhsn+4R/SlT/kqlj0/aeHT964wZGWR+OZxMmhAM0ed+
         4dq/UMZfks+ye9+jgSXiJjpX+F8RmQ12E58LZ3qE/YnjMhNY7QDt7XY4VpWtYAkVKMG0
         Yc5rUKYLVE1K4klwQUY+T9c1gvsIxca452d9GTa6bB3k1Fx3x6jTdmftKKTUzgQcNaUC
         8hhz5bbDi1izlzOqGR18Cf++OGURvMQ4u4nWoSYwAgmXILyfRt0hK7BJA3T1yE7k2e2z
         yYjt4gB/FXMgZEd1eaSVZ46p4RYoew7Uso3J3xEd/qtN3Ol0B82YQjcWTHjBv3+7WW5G
         pNeA==
X-Forwarded-Encrypted: i=1; AHgh+Rq88L7ar0QSfl4RoFsei+zAefwUMEs3nTNTmCWGiw7BavBwN9vSSVJ+bakWAe/61ZhGMrMoPcXti8Gl@vger.kernel.org
X-Gm-Message-State: AOJu0YySAL3IUCPDjk635kttyzN7zW0Vb7w5SP5tecrbtRNr3SmAICmk
	4LISBvzpvQzOimh8nG6X9cqsO3etXS2/KowHYiBGmpvr2bCYuOxr7+Rc3DmmSV2CTnY=
X-Gm-Gg: AfdE7cmrHTnOI0OceG26VGGkjaL4ViqXVf77AxJG4fk6aU1n+4EbFSGQNDh/WuYxbDP
	IGaZUrrTasjzDu4tk9DbZQ3hFjJ3tU0v3RI8gOBP85OYFiWmOuJumQ5bAymodPryqLHk6GkL0eL
	n0kd8vHlEFHA8p7LyeE1ZOqh1+PyaHj7fNlIuX55Z1tzrpRENsE5Sa5456xYR2DFUo1GTz10HRm
	aa8VZP2JyhJe5DqNvxfdjlKaCmPmdqm4ktBlRjtcpUNjRhc/eKYF0y/LvyTnvLnCF2hZj6oRYbf
	VCBM3oVEdhDj20hVbECqfKmuuBN+HNsq9hwoX/lOvT0tQOmngub6cZopbawVc3YgYHc4owXgRks
	JYu8j6b+jxsWnLVPBcUFChQNUq2DFHEeOzTSwgdq3mlpFPTSwNw0fklmIb2YBAmEVB3Qs1dg6IZ
	vnmFZNE0eLyAprkKbZOUeInKui
X-Received: by 2002:a5d:5089:0:b0:46f:398e:f31 with SMTP id ffacd0b85a97d-47de665b35amr5095812f8f.20.1783439382700;
        Tue, 07 Jul 2026 08:49:42 -0700 (PDT)
Received: from [192.168.0.101] ([109.77.92.41])
        by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47aa039b0cesm35170317f8f.22.2026.07.07.08.49.41
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Tue, 07 Jul 2026 08:49:42 -0700 (PDT)
Message-ID: <85940a25-4897-4983-a328-89b328fbf1e0@linaro.org>
Date: Tue, 7 Jul 2026 16:49:40 +0100
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
 Bryan O'Donoghue <bod@nxsw.ie>
Cc: Bryan O'Donoghue <bod.linux@nxsw.ie>,
 "Gjorgji Rosikopulos (Consultant)" <gjorgji.rosikopulos@oss.qualcomm.com>,
 Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <7e36238b-96ac-4269-a6e5-0a6763e437e7@oss.qualcomm.com>
 <4a2c098f-5d46-4339-9b09-e0ace37e4052@nxsw.ie>
 <w6imdnlo3xron3f2cw7fq5jtwcgvyijciddxjftwf46kltjjqx@inipxbghzngc>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <w6imdnlo3xron3f2cw7fq5jtwcgvyijciddxjftwf46kltjjqx@inipxbghzngc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 07/07/2026 14:22, Dmitry Baryshkov wrote:
>> * compat="camss-bus"
> You can't change compat. There is no separate "camss bus". We have camss
> block on, say, Hamoa. Or Glymur. Or CoolPlatform. This would mean
> exactly qcom,x1e80100-camss, qcom,glymur-camss, etc.
> 
> Then, a part of that camss device we have all the IFE, PHY, JPEG and
> other blocks. Each of them having a separate compat, etc.
> 
> But, there is no "camss-bus" (okay, there is a camnoc, but it is not
> represented as such in DT).

Well, perhaps we don't churn the compat, or we add a new one.

TBD

---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id A0F0D403138
	for <devicetree@vger.kernel.org>; Wed,  8 Jul 2026 08:47:52 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.44
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783500474; cv=none; b=MJRXQxWlU7Y0DJtV37O5c5tMY+0n/09l8XS8BjkgEtMELnfJxYzcgHqKZfHFmBoGdMqu5saNz0hMmNPc+tzKIpWS1f3ChUEcNf7na9l7HKDKFAvdCmeLvb4JpIfStvYeFk2DH04if4pLUdUWfWzMbaV5Cad82D3BkYr4QsC77o4=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783500474; c=relaxed/simple;
	bh=pgTToACliyhAjJ+F8jyAnPofAyk5eqWaiRJY56YFv2U=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=RFKDrYdi7zpouqu2+2XFD0olUQF64hbEFRk06B22MItUJ+8hI+g9ZPFiWGtFa3npjL6ugCR79rRNbfkGVk3vfp746dJHLJlePf1Cx/fw2sm8LGFzN2Z6HxAbHF1OX46jvwq5q1DJ3mBs29MNsZ3N751tJ8NFEc6+eQTybyKX11I=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=RxrPX+n/; arc=none smtp.client-ip=209.85.167.44
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="RxrPX+n/"
Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-5aebf96bc89so98530e87.0
        for <devicetree@vger.kernel.org>; Wed, 08 Jul 2026 01:47:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783500471; x=1784105271; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to:content-type;
        bh=5slyaMHZZ5o7vhI3SEoNR1OWEg/jwQ9URJD1346nvf0=;
        b=RxrPX+n/A4GaSldXQp+I096fAYHlqrydyT8tuWtG28E3lwqFhWYygJQKp6e6QXuWmo
         ndmEdg5CS/bwCRJxOU9DbDW30+xWb8URzDvgGwD40yBZz9zjVynfu+NCwWTJ7XmL+IcR
         S+eiCmqRHF3gb6EcMXXWQgT95XU/rHwkpg6as894WpfVVr0hfT+3B6tKW8Z9OgJ4BgPp
         dLlhZbJDhmtLiyAjh9C/5a1qc8hm6SBVKombKObAv/ug2P9RpkgG91wqGhBLfLnOyQBh
         mpohm4Ctswd/cFeT8WKgIrTrV0CvpyGQ8vUQaJH94TBCLX833HVZHc0fHIBJmizTdxO7
         l0Vg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783500471; x=1784105271;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=5slyaMHZZ5o7vhI3SEoNR1OWEg/jwQ9URJD1346nvf0=;
        b=nCqFeYFIiwDk3P0q5KHBrZLKFYP5dwThvE+b79TOPd9PuQejgeTGfmJmCuv0HyVwZU
         X4R3ohPeKrmYQGd2hXL03QfMnegZLfBNCTqqbgoQI/cfgeU5ZAvHr9zcggjyueHzG6nu
         y9AWoQP0w/YESP2c35Yh2IjdvR2IlefaF2QShl4eK15R+hehOjpWnBZXYJ6inivCJm9t
         E1rATeiqdDUcKt7Yo9IeMI0XufZsnNBaZQHxQNIjAebkA0m1Qd9lSduJZG/+EhYXnuxB
         g+M10ouPcbkPZIq1E7s9pgWxAXVa6942FBnjlcl7cjDEAVVyS0rwY9qq/QLQR1fzN4sU
         +z/Q==
X-Forwarded-Encrypted: i=1; AHgh+RothTlEEn0ez4UOWVQtOTLiG47dmzRHkXiUOS6gprPIkejfdhI4ZRupQc64c0R9UkRiR2JqQcmsgkga@vger.kernel.org
X-Gm-Message-State: AOJu0YxSV9f2XwBhjoPi74hiRim8kS5nA3mrk3Z6vJluj3Di7KWkAx4c
	BuaCn07Vgzbkmgf+J+xeoUjQ6ZRNhayqRNEWxSP4Llhdzg00nh+Cl1wB5A+7bzVWrg0=
X-Gm-Gg: AfdE7ckvreTyCN/I0J+mDLlp6SJlpIjRrPoFfMAdOeW9P12xa6siy5KTOgHwiWGvy5e
	JFYI73mjU5YVy7wpGk8E8kTbH9hIzKW25uAbZPb1m1fJUCDn8NAaLZYgvEYa5f6aoDEI6tfoQDj
	w3rbvCSE9xUhE8mUshkhKdN8WUE2dVB/nth+VFB71ek2mPCTqWl0ArWEOYZVSfhVh0Uojngitt4
	4HSSi6MVdMae584Dnb333y8FaKHyQsbaH5uiEQ6jzQEUrWdW/qsq4qOywroskhTVqTNEhKaKYer
	OUkh8g4pCKaCSaJHQUq1DC88pOpdVh2IGTR8Ew4XGcSsGSU7GUPkeFtt3F1oZKCsEgTzzdhvDwd
	cGJextWZp2TTKhSDQJAQX+q5WGlGHmOfAPuajb90TCU+UAf9JwMZ+aQdzCIxU1USAaS8QtiOzTL
	URe3I1LMfS2N0CX2YhEN6eGcQ3qfB863AO2P0SsDeKvqF+8fZmyZ0mn/rGEX3Cx1eDDG4=
X-Received: by 2002:a05:651c:2228:b0:396:8c78:3d53 with SMTP id 38308e7fff4ca-39c79832ce7mr2061261fa.8.1783500470732;
        Wed, 08 Jul 2026 01:47:50 -0700 (PDT)
Received: from [192.168.1.100] (91-159-24-186.elisa-laajakaista.fi. [91.159.24.186])
        by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39b4ad18b5asm29411131fa.9.2026.07.08.01.47.30
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Wed, 08 Jul 2026 01:47:50 -0700 (PDT)
Message-ID: <56f1fd7e-42bc-4034-81dc-302cb7c22951@linaro.org>
Date: Wed, 8 Jul 2026 11:47:22 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
 <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
In-Reply-To: <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Gjorgji.

On 7/7/26 16:24, Gjorgji Rosikopulos (Consultant) wrote:
> Hi Vlad,
> 
> On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
> <snip>
>>>
>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnects = <&gem_noc MASTER_AMPSS_M0
>>> QCOM_ICC_TAG_ACTIVE_ONLY
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &config_noc SLAVE_CAMERA_CFG
>>> QCOM_ICC_TAG_ACTIVE_ONLY>,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_HF
>>> QCOM_ICC_TAG_ALWAYS
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>> QCOM_ICC_TAG_ALWAYS>,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_SF
>>> QCOM_ICC_TAG_ALWAYS
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>> QCOM_ICC_TAG_ALWAYS>;
>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnect-names = "cpu-cfg",
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "hf-mnoc",
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf-mnoc";
>>
>> This is the topic, which may raise a disagreement, but I'll repeat my
>> position about the need to remove all "CAMSS bus" specific resources from
>> the device node, they are found and should be allocated on parent's side.
> 
> The interconnect has functionality to handle bw requests from different
> clients.
> 
> Yes the best will be to have camss interconnect, so jpeg and other hw's
> to vote
> 
> on that (actually it is possible in icc framework) but what is the
> benefit of moving
> 
> those to camss? Is it not better to create camss icc. I understand
> you want them to be on parent side. But how to vote on bw? Most of the
> time it

Let's concentrate on hardware bindings description, no APIs, votes etc.
at this point of discussion.

There is SM8250 CAMSS device, which serves as a hierarchical parent (or
could be considered as a "bus" device) to this new JPEG encoder device
and probably to a number of future IPs under CAMSS. All CAMSS sub-devices
get hardware descriptions as children device tree nodes of CAMSS parent
device tree node naturally.

Copying of the same identical information about clocks, interconnects
and power domains from the hierarchical parent device to children devices
is not needed, and practically it only lowers signal-to-noise ratio.

Since information about the actual defect in hardware description is
reported, the problem can and should be avoided, the handling of a better
hardware description and dealing with any kind of complexity will be done
in the CAMSS and/or CAMSS children drivers.

If you need to get a bit more formal point of view on the matter, I'd
prefer to see descriptions of hardware properties organised in a tree
topology rather than in the originally proposed star topology. By doing
it the system complexity is reduced from N to 1.

> depends on the jpeg encoder configuration based on resolution format
> etc. to set properly average bw.
> 
> So i dont see how that can be done with not explicit dependency on jpeg
> with camss and some exported
> 
> API's which we discussed with Bryan they are preferable.
> 
> Maybe i do not understand properly the proposal but can you just add
> some pseudo code
> 
> how you see the things?

Let's define and agree on hardware description first, then the path
to its implementation in drivers will be clear.

-- 
Best wishes,
Vladimir

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 EE76D3148D9
	for <devicetree@vger.kernel.org>; Wed,  8 Jul 2026 09:32:23 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783503146; cv=none; b=I+nraGCdLECnTuH5gcN7eK4ZG2JHPC1P/B9arvO/K6hq2tGqnDa8/YjsdERunBfHs2fXF7gYLm7JbymlGfSDPhwDTc4zSjeisGjsDlU74xoFwaJm/zL/Chg2d+e6rHejVCzwWhvRZlf24g5tjGoUOqw1U4rccQStEhGoqukddMk=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783503146; c=relaxed/simple;
	bh=HpvpQU54Un1Qaf41SoPs991kafvyRNbO+FyHycN/Xcc=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=JPocAMO6hF7vmGPYI0k/nyU0Cnw0KsBrXaXFeufly3iU98M+OORlLRVaZuEeGBUF+IoUlWZuFklTo3GRfXL/t2pxgsLQTskl0TeGUQ9J0OVzC4W012LbcIKE8VHoBzZxXvM7onXzE1KLl2wNFLhW06beP5XTNQJ+872hIDhZlhc=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=K2hn9CrK; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IftStQ3+; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="K2hn9CrK";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IftStQ3+"
Received: from pps.filterd (m0279867.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66888v4U2205068
	for <devicetree@vger.kernel.org>; Wed, 8 Jul 2026 09:32:22 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	50cC+lOjwWBBzURdhgiGe83iDGJQETCnagLzadfseh4=; b=K2hn9CrKuH4OIFYN
	Pw2po+0uWxDCmtVqJ6dRlKCw00jCXJKDE9Dhl7X4sAO0jXOf7xYAm7RBkNKp5pYJ
	tltOANfZcoccFJN06FbE8AwEtiEzao3LrV7l5a/Rqn7b4XjgNyqz6zAfse+IZV3C
	nqWyDygB3bJxdAp5J7xHX3LiXINDa1PKy67WE3cNyFgqXmzVCiFRiOnsFiIHKGHf
	yIT7QLvISSINSYnKo6o137426tvANHwNoyJOBq7TLMk+iDCaBcmExkuujBPdjwpZ
	6U8KkPniPm/TKDcMDSFbSscaNOOpsFypFSuJVinoYsieFYq85WdqPKHVYWSXoGJi
	4VXxDg==
Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f9hnv0n2j-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Wed, 08 Jul 2026 09:32:21 +0000 (GMT)
Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c0408254aso18382221cf.0
        for <devicetree@vger.kernel.org>; Wed, 08 Jul 2026 02:32:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783503141; x=1784107941; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=50cC+lOjwWBBzURdhgiGe83iDGJQETCnagLzadfseh4=;
        b=IftStQ3+yoD+rlRMn598ZDbe8qaNTs2npF2C+yV4tOt1S9ipaHqASOVhj1SF0sHM37
         QF8xUy5QuxsMqzaw+a9Q/xBC/6qrJYg7E8cNL8njcZstTg8s7iQEadS94V3LXtDFsg22
         UONN0hTV5xS+nAa2zqYopPeYXO8j+sOSOi12wHcuNoyEu/57fDr99cR6Vbwx0VhsuxM/
         DGqjvqqAbjCTuG+Ll7JbdEIKfs7n7hSU/zVFiEjw4/kLTwRA19UYWKomxKYN7gLgfhRP
         GVPpfc+s/sO+7aSUiSEPxmO8xfhfcOJzRQG4Z6U/11I6K05m2TsUQ/h+5sMxnhw4ZtEj
         xvPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783503141; x=1784107941;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=50cC+lOjwWBBzURdhgiGe83iDGJQETCnagLzadfseh4=;
        b=Qi8J9VVm+E5yVfaDmPiJf6Ht5gCJL+Wq9VN9cJOI0e3suUwCfKl3yIAzH/l+UkCrG8
         I6DV3pkPkOTSAbqvzuFmzWO9lPrcPxHhKsciZCK2uCqWo4EI/4GrWl5/MaziiFX3Dn5I
         yIOOuEaykX6QxRmOoG4Vbc/5k4nJrnSYH1thcQLsbQE6Q3n7mztyXjCVSa85ahxLmgSQ
         REifF/flwqRPlbUHhWpZsIYBcNFunZ6rU/LFMhKcCPIvGzINvYFHNldz6v2pmn/cXO+i
         l9FFJt4S2s4gxPsblTeTCQXX6vmqikyV2gDUSGbBVPAAkkx3Mv1VAA/pm4AKswUi300O
         8f7g==
X-Forwarded-Encrypted: i=1; AHgh+Rq9awNic65yW4PUhQK023FgnDo2GYmLYfJw8yR0om4ygLTg2Sf0gm6Jfh0A2z6qUPtw8Q0avLBT1XLn@vger.kernel.org
X-Gm-Message-State: AOJu0Yydw1lRDxudsRq+PtWnuoSr9sCk298ZkyOr0PkcvLNA+qpnz+OR
	NyvWafD5rC54UTvhN+cvRgCLprNK3KaV8H95nSBBCwxClj/F9gIG+7uBV9gnKnu+eXxYtCzAaS4
	asm4CNFUBm104QGpClP7x9pWfS8zoIqXfDF0P9Zw9GSvKTxiO60m2rJCJHKCDStkU
X-Gm-Gg: AfdE7cm7OD/IUN9kvJFXbJO9o6/dsXBfvTBEv5w15HgWTdtCYuX/vlg4aOunRGgBkRF
	atxXwQDj6kzbuubsv4mgxvAF5AWQNOqKh7NfGmsFAsCZJttPapeX0VNR4NNe7IFYwetp7SW0+U4
	/JLC4x45afxoWTZdDRDPZxozfKIGwOtQ4gLdK9anqFr3+9tzjQst62NeIFeM/jkfDFAfRS+TV9r
	yZ02SQ/7QHwT4DFoi5ZNMQGvzuEFzhijH19pzbwVRLmDQbII3Iu31zKGGmiG4UNK8MbVPmaKU+n
	mr7Z6XVa1HIuzwUk5ETDTu69P6MZ6sffw84klBn7ffDdBexGps10s3RtPg7ql/7LD8SHlCZqRPB
	vvZR3SJ2EFs5ggDJXGTuZlMWDrB6M8CaFZaV11eNpseX+eAs0elWrx9+vcx/oZnH8X6aNVo6Kfk
	t6MKCyKf3r
X-Received: by 2002:a05:622a:5599:b0:51c:291:82eb with SMTP id d75a77b69052e-51c7a4a9933mr65537731cf.14.1783503140786;
        Wed, 08 Jul 2026 02:32:20 -0700 (PDT)
X-Received: by 2002:a05:622a:5599:b0:51c:291:82eb with SMTP id d75a77b69052e-51c7a4a9933mr65537311cf.14.1783503140245;
        Wed, 08 Jul 2026 02:32:20 -0700 (PDT)
Received: from [192.168.25.64] ([94.155.124.210])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15ce1b374asm82248066b.60.2026.07.08.02.32.18
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Wed, 08 Jul 2026 02:32:19 -0700 (PDT)
Message-ID: <dd34b44d-396e-4267-b383-e4f8d20f8ef4@oss.qualcomm.com>
Date: Wed, 8 Jul 2026 12:32:17 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
 <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
 <56f1fd7e-42bc-4034-81dc-302cb7c22951@linaro.org>
Content-Language: en-US
From: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>
In-Reply-To: <56f1fd7e-42bc-4034-81dc-302cb7c22951@linaro.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Authority-Analysis: v=2.4 cv=KNNqylFo c=1 sm=1 tr=0 ts=6a4e1925 cx=c_pps
 a=WeENfcodrlLV9YRTxbY/uA==:117 a=eGCDHFSXubCXFTSSGhjuOA==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22
 a=WedJO_QhFF0jeLZjxQ4A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=kacYvNCVWA4VmyqE58fU:22
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA4MDA5MSBTYWx0ZWRfX8Ey158QP7gTv
 PCRsUMLUYz/pycYsUAXHrC070g2Lx0J+wQipjtu04+ZA4qIon0N723M2PcOCbRCLo1pmqXfvrcC
 HG7Kl2uNjs5dtwGhYXW0ESTeRqaYYJY=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA4MDA5MSBTYWx0ZWRfX65L9veG1ha92
 1A478liiBTZmjnq8TrxhQYbMUBSop0Z0GaJXgg+OT3WtQxF2HSo3FL7YtTgpihZbX9zepK/GGfu
 6kjXwxMMUpCP2pBzxRP/C4XaI8lwPY4/Co608g6gTCa2qM2cbCIXgZWDpnKYMMhgx7mQ6V3h1GR
 vvBm2mo9B2APk1lMG6Q9keHzXsB6V7RUfckmW8v6n9Qc4kdWSXO8sDfSR2n0qXkjPhwuy+/+h4a
 Kv2OdDNENNU8QwmBukSi874EyCmn5pHHEI1b25pvHqorM46mGO4/e/NeT9l2x/fWH/sVyKlpCF2
 iRumEQqPgoonuY6aLfSrq1UY/UJLwbrp4vD25PuvVq0o6PX+yrNaFmH4kPBsznb+rtIx1nXt0rL
 fZd0A5Ooe3qImz5ev/Ugp7kSRQXtwqpm4sGZvPHfVi1eb/3htqsvUkJjkdQ6aYID1uvc8XsM7BB
 ozJBWkSt3rSwsdINb+w==
X-Proofpoint-ORIG-GUID: VbcR_eHUksNR52dinrEiQqGG6peJXVEq
X-Proofpoint-GUID: VbcR_eHUksNR52dinrEiQqGG6peJXVEq
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-08_01,2026-07-06_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 bulkscore=0 impostorscore=0 suspectscore=0 spamscore=0
 malwarescore=0 phishscore=0 clxscore=1015 priorityscore=1501 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607080091

Hi Vlad,

On 7/8/2026 11:47 AM, Vladimir Zapolskiy wrote:
> Hi Gjorgji.
> 
> On 7/7/26 16:24, Gjorgji Rosikopulos (Consultant) wrote:
>> Hi Vlad,
>>
>> On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
>> <snip>
>>>>
>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnects = <&gem_noc MASTER_AMPSS_M0
>>>> QCOM_ICC_TAG_ACTIVE_ONLY
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &config_noc SLAVE_CAMERA_CFG
>>>> QCOM_ICC_TAG_ACTIVE_ONLY>,
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_HF
>>>> QCOM_ICC_TAG_ALWAYS
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>> QCOM_ICC_TAG_ALWAYS>,
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_SF
>>>> QCOM_ICC_TAG_ALWAYS
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>> QCOM_ICC_TAG_ALWAYS>;
>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnect-names = "cpu-cfg",
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "hf-mnoc",
>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf-mnoc";
>>>
>>> This is the topic, which may raise a disagreement, but I'll repeat my
>>> position about the need to remove all "CAMSS bus" specific resources from
>>> the device node, they are found and should be allocated on parent's side.
>>
>> The interconnect has functionality to handle bw requests from different
>> clients.
>>
>> Yes the best will be to have camss interconnect, so jpeg and other hw's
>> to vote
>>
>> on that (actually it is possible in icc framework) but what is the
>> benefit of moving
>>
>> those to camss? Is it not better to create camss icc. I understand
>> you want them to be on parent side. But how to vote on bw? Most of the
>> time it
> 
> Let's concentrate on hardware bindings description, no APIs, votes etc.
> at this point of discussion.
I agree but there should be an API for icc voting which Jpeg need to use,
currently it is fixed to some values, but voting need to become dynamic
at some point of time, because it depends on runtime parameters, resolution
format etc.> 
> There is SM8250 CAMSS device, which serves as a hierarchical parent (or
> could be considered as a "bus" device) to this new JPEG encoder device
> and probably to a number of future IPs under CAMSS. All CAMSS sub-devices
> get hardware descriptions as children device tree nodes of CAMSS parent
> device tree node naturally.
I agree the device tree is best to represent real hw topology. > 
> Copying of the same identical information about clocks, interconnects
> and power domains from the hierarchical parent device to children devices
> is not needed, and practically it only lowers signal-to-noise ratio.
Here also i tend to agree.> 
> Since information about the actual defect in hardware description is
> reported, the problem can and should be avoided, the handling of a better
> hardware description and dealing with any kind of complexity will be done
> in the CAMSS and/or CAMSS children drivers.
> 
> If you need to get a bit more formal point of view on the matter, I'd
> prefer to see descriptions of hardware properties organised in a tree
> topology rather than in the originally proposed star topology. By doing
> it the system complexity is reduced from N to 1.

Maybe I'm missing the whole picture of your proposal, but I want to add my
point of view on this matter.

The JPEG encoder HW block has no dependency on the other processing HW
blocks in the camera subsystem

It shares resources like camnoc, clocks, GDSC, etc.,
but does not share anything with the other HW processing blocks. For me, 
the JPEG driver should not have SW architectural dependencies on CAMSS.

The shared resources within the camera subsystem are reference-counted,
the only exception is clock rates, which are set based on the last set_rate
call â€” but I think that could be handled by migrating the clocks to be
represented as an icc-clk provider, to keep the higher clock and maintain
the needed policy.

What I think would be best (just a proposal) is to introduce a new camera-icc
provider that handles all these resources â€” camera operates on bandwidth
anyway, and rate calculations should be done in icc, since the  infrastructure
for that already exists in the icc framework. But I think this has already been
discussed with Atanas, so maybe there's no need to go over it again.

I'm not sure how to move forward with the JPEG encoder changes.

I see two different proposals:
1. Independent sub-nodes (Bryan's direction) â€” I honestly like this one more.
2. CAMSS handling the resources currently managed by the other frameworks.
There are good arguments for this too.

Bryan, as maintainer, can you say which direction to post next? :-)

Apart from t


Regards,
~Gjorgji

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-lj1-f177.google.com (mail-lj1-f177.google.com [209.85.208.177])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2FE78416D12
	for <linux-media@vger.kernel.org>; Wed,  8 Jul 2026 10:28:50 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.177
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783506536; cv=none; b=B7n0xfxIst/lcHs53XTtPkjylCdmDPRDaU3tZI1YiyqIA/ocfZHRBcD7ENhfbO+Aiw1+tOq3+Ylaoa0e85lLxRQ9ApojQln1b97G4swrLql081q8YU2R/pDoir42YaD81yPGHUi5QGle/+ZB4jw6mlkusGzWDWTfDuLbBjohuDc=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783506536; c=relaxed/simple;
	bh=T+YudoEqU0gmjCwLQrrgsNuIsIATGlpgiIivT5AysPc=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=O6dKPQOdrUNB2OmE9BOaOH9b75+hd5AFms3RFcsvygWbYZOAksQ5IShSDe0ELunSj46Ono17XvEmjLzyldDOtjEFtSPYsaFr8vs+L9lbr9BVLkpEwH2vS0MnGAO+XC0V/bpToW7bJaVP36+cIizxkTKi70xi41wcBy/PbAHKmsw=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=yCd7Wac0; arc=none smtp.client-ip=209.85.208.177
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="yCd7Wac0"
Received: by mail-lj1-f177.google.com with SMTP id 38308e7fff4ca-399c1225f22so127081fa.1
        for <linux-media@vger.kernel.org>; Wed, 08 Jul 2026 03:28:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783506528; x=1784111328; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to:content-type;
        bh=xHPnRrFIoOTHJ0es5XHY5x8jGBMXqt/1gGu6E0UmX+s=;
        b=yCd7Wac0Cg6Ji+PrbRua4XqGttMDamrIUcGwlNipvN9PayLsMGXI8VpbCgJUO4ygk0
         oKO2aCWeNx4OeMIaGCyiO/hP0vQ5O5lkUL8iq8tOGwML5FMHyKR2Acc8uKV+5zqAS4Hn
         0EyvFC9dU94vNbcteREPOITaZw97H1stdcK6j/QjtKh1zH1AQYKdPzs89dyHH8PpY5hR
         xuXO5fzxENiHu3ABFM9RmMJ44CTMENRxbsEErXtkubnCPyGX5UOYszLW1eh86+qJsKlK
         RtAkJeHwBuWbEd0r7vJcmYsdROiUoEnG9gO4oT61/7gdHCW/482goXiLnJYWhZHtO54x
         wYQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783506528; x=1784111328;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=xHPnRrFIoOTHJ0es5XHY5x8jGBMXqt/1gGu6E0UmX+s=;
        b=fOarPkigPhWbMCvXrhhwhRAxbLwFnQ6ORp7PEe2Qha+Z/qz8+zCWtz0Ks5dvh3m1+m
         R3QE9Ysd8NxCWHBjLlw0tlBjq6gIWUeDeiExHLP0nPGH1VgMvvL7K3w/+nUWnFV6HXCP
         Ad0urbq7upQ1b6HX+m2svP7gWeFg2bmZxpg9Aq2oddQxgHRxohGa0sudr1ukUVRuJfMv
         rtm2zSDlBUHCzOeVD5teRdKQep1Me/qfO1rR49lPlHyn8UIOJeWIn+/Eg1eSbS1uYqY9
         l7+tDNQ/LqaMQqpNfswHLSGuxFhz0incj6/+S2dlURRMK+t0MYYREV5uzWM7JPUtIG/3
         Dtig==
X-Forwarded-Encrypted: i=1; AHgh+RqaHffJVRVaUMo8d5RKNKXMZIATpT/raAdoND5m272v0cbZkZKbB2AuDjbhqrghmn8eYGFSD4E2miceOA==@vger.kernel.org
X-Gm-Message-State: AOJu0YzYb7oJ9AE/DHagKR36EwI1SpyjX7bvshGu6M3WJcU+43rd9RYf
	l1csZxuO1ZUIpw+xP3ms2Pg/4LR6AHSkubOQrOHz/0oAqbKNoI7zlOrYA6Y45Zb2BwY=
X-Gm-Gg: AfdE7clRgxZVmRz2tQOysa+uHPl94uRHI32BsytJhbwAUdfF0YR/UkR3zxayEErTyXj
	cB8VCq1lOTvmQpxjJGKekRIuyfTAPMN5OinL5De/zeVlNKsDrwjF1mQ4sI0NEnZ9U7i5qel5V1G
	q5Kg7j3oMyZdvYgbICcQ57++n0VxixaIj937XgjIql5yhHkn6hTX17BT48+udbPi2lAx72UpNgC
	2QoZsvVGZjo81eQ25rDyfETsi+mpBFEVPj/Qt9m2Fma+7PMjY7da/piF8CfM5ioG1gmOVGBDGvL
	wsF66RjL5Gnkms6PbGllj2bjt/Wj7kxSbBw92bfe958WSWpi/Q4Nf3gSQ5CQJM4XbRg3tRlfPey
	dsfJEjkmi6RDZrKbpR0f4WjlKTp4Bj6tNLhHgK1D6RaPUtm4nlRyuSiG/URBOuOuDmidjMwuHrs
	H+jBmE8B035TH0c8eMDVD+U7C0EdVQdIbkv1gTj9VHC4qK+bM8GaTprdZ/8XV+3gcTQsUItfnHh
	Qi9lA==
X-Received: by 2002:a05:651c:1473:b0:39c:754f:eaf1 with SMTP id 38308e7fff4ca-39c796f1452mr2908571fa.2.1783506528197;
        Wed, 08 Jul 2026 03:28:48 -0700 (PDT)
Received: from [192.168.1.100] (91-159-24-186.elisa-laajakaista.fi. [91.159.24.186])
        by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39b4ad1bdbasm34252791fa.5.2026.07.08.03.28.47
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Wed, 08 Jul 2026 03:28:47 -0700 (PDT)
Message-ID: <fffc51f1-9137-4951-b9b8-9f7f263c7878@linaro.org>
Date: Wed, 8 Jul 2026 13:28:46 +0300
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
 <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
 <56f1fd7e-42bc-4034-81dc-302cb7c22951@linaro.org>
 <dd34b44d-396e-4267-b383-e4f8d20f8ef4@oss.qualcomm.com>
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
In-Reply-To: <dd34b44d-396e-4267-b383-e4f8d20f8ef4@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Gjorgji.

On 7/8/26 12:32, Gjorgji Rosikopulos (Consultant) wrote:
> Hi Vlad,
> 
> On 7/8/2026 11:47 AM, Vladimir Zapolskiy wrote:
>> Hi Gjorgji.
>>
>> On 7/7/26 16:24, Gjorgji Rosikopulos (Consultant) wrote:
>>> Hi Vlad,
>>>
>>> On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
>>> <snip>
>>>>>
>>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnects = <&gem_noc MASTER_AMPSS_M0
>>>>> QCOM_ICC_TAG_ACTIVE_ONLY
>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &config_noc SLAVE_CAMERA_CFG
>>>>> QCOM_ICC_TAG_ACTIVE_ONLY>,
>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_HF
>>>>> QCOM_ICC_TAG_ALWAYS
>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>>> QCOM_ICC_TAG_ALWAYS>,
>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_SF
>>>>> QCOM_ICC_TAG_ALWAYS
>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>>> QCOM_ICC_TAG_ALWAYS>;
>>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnect-names = "cpu-cfg",
>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "hf-mnoc",
>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf-mnoc";
>>>>
>>>> This is the topic, which may raise a disagreement, but I'll repeat my
>>>> position about the need to remove all "CAMSS bus" specific resources from
>>>> the device node, they are found and should be allocated on parent's side.
>>>
>>> The interconnect has functionality to handle bw requests from different
>>> clients.
>>>
>>> Yes the best will be to have camss interconnect, so jpeg and other hw's
>>> to vote
>>>
>>> on that (actually it is possible in icc framework) but what is the
>>> benefit of moving
>>>
>>> those to camss? Is it not better to create camss icc. I understand
>>> you want them to be on parent side. But how to vote on bw? Most of the
>>> time it
>>
>> Let's concentrate on hardware bindings description, no APIs, votes etc.
>> at this point of discussion.
> I agree but there should be an API for icc voting which Jpeg need to use,
> currently it is fixed to some values, but voting need to become dynamic
> at some point of time, because it depends on runtime parameters, resolution
> format etc.>

Sure, but I believe it's quite clear that any software implementation
should be discussed only when the hardware description is fixed.

>> There is SM8250 CAMSS device, which serves as a hierarchical parent (or
>> could be considered as a "bus" device) to this new JPEG encoder device
>> and probably to a number of future IPs under CAMSS. All CAMSS sub-devices
>> get hardware descriptions as children device tree nodes of CAMSS parent
>> device tree node naturally.
> I agree the device tree is best to represent real hw topology. >

Well, it's not just the best, it's the only possible way.

>> Copying of the same identical information about clocks, interconnects
>> and power domains from the hierarchical parent device to children devices
>> is not needed, and practically it only lowers signal-to-noise ratio.
> Here also i tend to agree.>
>> Since information about the actual defect in hardware description is
>> reported, the problem can and should be avoided, the handling of a better
>> hardware description and dealing with any kind of complexity will be done
>> in the CAMSS and/or CAMSS children drivers.
>>
>> If you need to get a bit more formal point of view on the matter, I'd
>> prefer to see descriptions of hardware properties organised in a tree
>> topology rather than in the originally proposed star topology. By doing
>> it the system complexity is reduced from N to 1.
> 
> Maybe I'm missing the whole picture of your proposal, but I want to add my
> point of view on this matter.
> 
> The JPEG encoder HW block has no dependency on the other processing HW
> blocks in the camera subsystem
> 
> It shares resources like camnoc, clocks, GDSC, etc.,
> but does not share anything with the other HW processing blocks. For me,
> the JPEG driver should not have SW architectural dependencies on CAMSS.

To move forward there should be a clear answer to a simple question,
does Qualcomm JPEG encoder IP belong to CAMSS group of devices or not?

If no, then JPEG encoder device tree node shall be located outside of
CAMSS device tree node, all resources needed for JPEG encoder device
operation get their descrition in this stand-alone device tree node.

If yes, then JPEG encoder device tree node is a child of CAMSS "bus"
device tree node, and only resources specific to JPEG encoder device
are described in its device tree node, because other resources are
already described in the parent device tree node.

> The shared resources within the camera subsystem are reference-counted,
> the only exception is clock rates, which are set based on the last set_rate
> call â€” but I think that could be handled by migrating the clocks to be
> represented as an icc-clk provider, to keep the higher clock and maintain
> the needed policy.
> 
> What I think would be best (just a proposal) is to introduce a new camera-icc
> provider that handles all these resources â€” camera operates on bandwidth
> anyway, and rate calculations should be done in icc, since the  infrastructure
> for that already exists in the icc framework. But I think this has already been
> discussed with Atanas, so maybe there's no need to go over it again.
> 
> I'm not sure how to move forward with the JPEG encoder changes.

First of all it should get a reviewed dt binding documentation, let's
do it, and a software implementation will follow the agreement.

> I see two different proposals:
> 1. Independent sub-nodes (Bryan's direction) â€” I honestly like this one more.
> 2. CAMSS handling the resources currently managed by the other frameworks.
> There are good arguments for this too.
> 
> Bryan, as maintainer, can you say which direction to post next? :-)
> 

Here device tree bindings maintainers should share their view, if
hardware properties should be literally repeated in each child device
tree node and their parent device node (star topology, N copies one
for each child), or not (tree topology, 1 copy in parent's node),
this is a generic question.

-- 
Best wishes,
Vladimir

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 F05013D349C
	for <linux-media@vger.kernel.org>; Wed,  8 Jul 2026 11:35:25 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783510527; cv=none; b=MDtnFqyPDmC/ZuiM72xvOcWVLyxerIt/StdVLT8aCNoENPd3DXQHLMKaOr2VeFoPe/wYt1zLiKA35UdM8lbeRJrcE6LiRw1hlV9x4baY/8jLlSftO+e4+wZpKr1x3gvsytDZDY9yk5NXtBcsVex2Irys3MjBr63xmhuOKhnPqCk=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783510527; c=relaxed/simple;
	bh=caobWd1CoFMF+lSi5m8Xq2Q8TS4AG1Esov0kiltI6KU=;
	h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:
	 Content-Type:Content-Disposition:In-Reply-To; b=qZ9s2IM1KiOWSjtGoyTMtkwc1E/TKSl6g4NSphMo/XOU+Nc5vUJer/vu8FljHBs3/dQT+1k4y9//orcs6C2iaSJpV/9et6lXAp9ul4PV+YqJuUFpZWBaHsB9WCZK9MR81tJaxVcFdaLEZ17zmKYhV916zQBAqKaHYzDFzBJb5T8=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=NND7h9/v; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QzhAhKy+; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="NND7h9/v";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QzhAhKy+"
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 668BTKqb2589968
	for <linux-media@vger.kernel.org>; Wed, 8 Jul 2026 11:35:25 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	jMXCIjJLYDQWitFdENGzcHmyj7GI4mc6ck8IDVliH3I=; b=NND7h9/v6h1+VbRz
	+fR9lkB0Ie8ZNTR1Z0IWrx89XW2YeyR+DZX3qpwxga123tdZ+AuSTo4HfzPMBH57
	TvWbFcN94gc0r9nM/cze+OLlfXVnAJW3WmOiCuLzZa0SoXNsTFqF2TL1e7A26nE6
	klYP55MXz1qaZuliJdovLn6ND0uU8jHaIh1hlkbyUU8m1HJS1j0N0dZ4XR+VRcwp
	7FPOYDkZkB6OP11HVVAKibVNRrRQsQGYx0fH9jpSHVXlvYHApLWwkJz7dhrx3LWF
	1UnKdEjzl2ZNvNTVGjB446daf2kVCAIBxrlicKu39FbDUzxEmNtKMqgl15RcLxt9
	fWxx6A==
Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f99hgtxsa-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-media@vger.kernel.org>; Wed, 08 Jul 2026 11:35:24 +0000 (GMT)
Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-744e7c828adso43349137.0
        for <linux-media@vger.kernel.org>; Wed, 08 Jul 2026 04:35:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783510524; x=1784115324; darn=vger.kernel.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :content-type:mime-version:references:message-id:subject:cc:to:from
         :date:from:to:cc:subject:date:message-id:reply-to:content-type;
        bh=jMXCIjJLYDQWitFdENGzcHmyj7GI4mc6ck8IDVliH3I=;
        b=QzhAhKy+p1WmJ4u4g+aXYhIhYkSO3rqzHhh4Yv+tInvKt81W/zEqtfgqTpp2DDA7Av
         Gig7htkqcKuG3DGtmXeY4kfCUPuyoKmvQHqiseLYHq/fWrNUb1DEijJue6FuZkKAD2zJ
         KS3fNc3bbTMOuxo6wJgkH4CuzCXCDfCdVjVDvbzVRs6YOdRalkznWlVmGassT8hvUrL1
         +OdkTfg27V49ONuwzoL6B5/NNfPROahK867DsMWjb5vSJJVSKAJQqt3NPVHBSuRipbnE
         yJRbxzVHPi3J44QMqfgYDJx+4wHS9nS/LhOxTeV7j2Ia/4l87W3c3QIRXc3r6OY+jl0A
         S0Ag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783510524; x=1784115324;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :content-type:mime-version:references:message-id:subject:cc:to:from
         :date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to:content-type;
        bh=jMXCIjJLYDQWitFdENGzcHmyj7GI4mc6ck8IDVliH3I=;
        b=DAPGCjL1Cm5LIqLzrsqJyToySGofCAvp0618i5tLTiGu/THpLnIHx2guxMD5gK2tAd
         krsmFConUo+urOUI7aTuMr82hW2KUx8NM44FpF77h25CpX2PhMoifLLMPuxp621pgvcf
         kdo3BBo8PfoMpBts6//CaarvMTsscaM0KskxTZC/j4UV5LTW4vho9LS6kx2KxX1OJpXM
         CKlgpCc8oeQxdfGBS//3QH23nY6VdakWYM9S8NnXB/5xSLvQ0D+woTm5yeqa0yPQ3ciA
         lcn3jpNzEUDxjMdTydy/tAsig7yB0sbKFb7e9/wbQn37o3NkL6wOk8Z4dO8Lq8r53HAv
         7FFA==
X-Forwarded-Encrypted: i=1; AHgh+RrU3tGR8KGUp5lvb4JtHe7q4elzqmP8vRW7Fk5fMAyoRTtY28igNYwykkjnuW6Tf9D+qTVtvEwlO4LKIg==@vger.kernel.org
X-Gm-Message-State: AOJu0YzAJyvZW71dShb0BOOevM3QkyR0pbCVSkWmN+GEIo4JRjrZWn0S
	6MG8IJjoVkYiLjFlWrIcLpDT/N9pFJ5YsklVCWTVEvo+fBSBAadGFonSPQxg84gJZMt5BKK0Hcf
	1xVdt7p17mKGu+Kuhjl5EYdvEwN1mXGm5RPgkZZ3dH1l+RA2lBw+iMUpXqbfpVD7BrQ==
X-Gm-Gg: AfdE7cmfqW4KJavlAZSKYzKkOhCZtmHMAJdJ2AzEL2b/bkhHA1z63rUz21wzkp3UGJv
	QbQVCLrG0M+bqHYHLnaJmC2FB9H2CufHX++W51pGhXBsPCg6BGqHN9A7gR6OXssAL+I6LAWGT6t
	kZPfUFLsfiWoEKt3LSL+0K4l0xPtLUkJB889kTyd8My4WRPAb00uhxmRgYHIRYyCYf29CXVK0ys
	pEHLvpOJyeCfmoIwgmkgyv2F01ALtCLcOJRYxSu+CRPcN39+ggc7qhhHMTGjNF/AJQg9ee3GhYK
	oqLjkWjc2OqmtOdzEmsdiWoF6RKylNCGm8X3I5rsrVWjPggvvMNHK7HIKx6cMgw2UuSoxhWLdkE
	8AvDoFaohKcDEPK1PrC3xYaeYVxyC9nerqJYVcjCcV00goLBong47DQ+BRfE1aWalO/2Zl01e01
	6vDceavSgwbRZuX55X3g67HFns
X-Received: by 2002:a05:6102:5494:b0:739:478b:5bf2 with SMTP id ada2fe7eead31-744e031a69dmr1009330137.13.1783510524021;
        Wed, 08 Jul 2026 04:35:24 -0700 (PDT)
X-Received: by 2002:a05:6102:5494:b0:739:478b:5bf2 with SMTP id ada2fe7eead31-744e031a69dmr1009310137.13.1783510523546;
        Wed, 08 Jul 2026 04:35:23 -0700 (PDT)
Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
        by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39b4ad357aesm31978761fa.10.2026.07.08.04.35.22
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Wed, 08 Jul 2026 04:35:22 -0700 (PDT)
Date: Wed, 8 Jul 2026 14:35:20 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Cc: "Gjorgji Rosikopulos (Consultant)" <gjorgji.rosikopulos@oss.qualcomm.com>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
Message-ID: <wwk4nyczcecnllwivqd2lgnbpzboumtwigk3vmundsvgqtqpy7@duq6zdulc7sc>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
 <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
 <56f1fd7e-42bc-4034-81dc-302cb7c22951@linaro.org>
 <dd34b44d-396e-4267-b383-e4f8d20f8ef4@oss.qualcomm.com>
 <fffc51f1-9137-4951-b9b8-9f7f263c7878@linaro.org>
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <fffc51f1-9137-4951-b9b8-9f7f263c7878@linaro.org>
X-Proofpoint-GUID: BLk09rfWp_ofGxe-mPBZtllBSg8P5Cmo
X-Authority-Analysis: v=2.4 cv=CviPtH4D c=1 sm=1 tr=0 ts=6a4e35fc cx=c_pps
 a=P2rfLEam3zuxRRdjJWA2cw==:117 a=xqWC_Br6kY4A:10 a=8nJEP1OIZ-IA:10
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=-aB-LbtdYsWEe7JLRJkA:9
 a=3ZKOabzyN94A:10 a=wPNLvfGTeEIA:10 a=ODZdjJIeia2B_SHc_B0f:22
X-Proofpoint-ORIG-GUID: BLk09rfWp_ofGxe-mPBZtllBSg8P5Cmo
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA4MDExMSBTYWx0ZWRfXz+oFreGCJGYl
 ysbEycwmYaHn0PYhaFTPYtOaLcjF4hmPtpH0hnLH05FRDqZb0gYBdWK9uXQFfEEdVsYaEE5GLwD
 vEz0nTPe1CdhOYbO5OlFEFfi10qLLaI=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA4MDExMSBTYWx0ZWRfX6JW3D5imn3TM
 zzCuFmCoDwMuAz4Re0fOStwr9mcF0wDQhuggNjuQ57tLpusfG79KSRS/566e0n6rSKVIBHq3c68
 bOEq2DD6H9VjM15aBZaGLsZCiiEfD+HTO6wUgQtnqSJtwKi71Q6lCU5eb/DiZaJK+X+PDeQiEFz
 FqwAwVC3zrcnHIK603afz1cJfGHAN2NQhE/PVztDK788JniW/DoQAhYLZjGpKTmNKq9/ezWlOZW
 dJy1/ZEshKL9UYAfTBllC5+VAMVmQ3N0tULXrAXZdEJA72T0lwsUBnLBcGRyiKuLiAjGtYgoE14
 uwWk5dOCkVLbu2YcC6cQM9vfoaE0uPmf+tvQD82wLVtkyKIEJCBXC/pXaMvZt6BWKyGSTVOgJGz
 K986qDRXF9U7uqgFD3JuPJFaQborHnRxYAFMSr3E0aPq6fAMWGwqedjcbEiMyH8ZaJxFPKOPIbm
 u1Wnp2571hZc6VavGrQ==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-08_01,2026-07-08_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 suspectscore=0 impostorscore=0 bulkscore=0 lowpriorityscore=0
 adultscore=0 priorityscore=1501 phishscore=0 spamscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607080111

On Wed, Jul 08, 2026 at 01:28:46PM +0300, Vladimir Zapolskiy wrote:
> Hi Gjorgji.
> 
> On 7/8/26 12:32, Gjorgji Rosikopulos (Consultant) wrote:
> > Hi Vlad,
> > 
> > On 7/8/2026 11:47 AM, Vladimir Zapolskiy wrote:
> > > Hi Gjorgji.
> > > 
> > > On 7/7/26 16:24, Gjorgji Rosikopulos (Consultant) wrote:
> > > > Hi Vlad,
> > > > 
> > > > On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
> > > > <snip>
> > > > > > 
> > > > > > +            interconnects = <&gem_noc MASTER_AMPSS_M0
> > > > > > QCOM_ICC_TAG_ACTIVE_ONLY
> > > > > > +                             &config_noc SLAVE_CAMERA_CFG
> > > > > > QCOM_ICC_TAG_ACTIVE_ONLY>,
> > > > > > +                            <&mmss_noc MASTER_CAMNOC_HF
> > > > > > QCOM_ICC_TAG_ALWAYS
> > > > > > +                             &mc_virt SLAVE_EBI_CH0
> > > > > > QCOM_ICC_TAG_ALWAYS>,
> > > > > > +                            <&mmss_noc MASTER_CAMNOC_SF
> > > > > > QCOM_ICC_TAG_ALWAYS
> > > > > > +                             &mc_virt SLAVE_EBI_CH0
> > > > > > QCOM_ICC_TAG_ALWAYS>;
> > > > > > +            interconnect-names = "cpu-cfg",
> > > > > > +                                 "hf-mnoc",
> > > > > > +                                 "sf-mnoc";
> > > > > 
> > > > > This is the topic, which may raise a disagreement, but I'll repeat my
> > > > > position about the need to remove all "CAMSS bus" specific resources from
> > > > > the device node, they are found and should be allocated on parent's side.
> > > > 
> > > > The interconnect has functionality to handle bw requests from different
> > > > clients.
> > > > 
> > > > Yes the best will be to have camss interconnect, so jpeg and other hw's
> > > > to vote
> > > > 
> > > > on that (actually it is possible in icc framework) but what is the
> > > > benefit of moving
> > > > 
> > > > those to camss? Is it not better to create camss icc. I understand
> > > > you want them to be on parent side. But how to vote on bw? Most of the
> > > > time it
> > > 
> > > Let's concentrate on hardware bindings description, no APIs, votes etc.
> > > at this point of discussion.
> > I agree but there should be an API for icc voting which Jpeg need to use,
> > currently it is fixed to some values, but voting need to become dynamic
> > at some point of time, because it depends on runtime parameters, resolution
> > format etc.>
> 
> Sure, but I believe it's quite clear that any software implementation
> should be discussed only when the hardware description is fixed.
> 
> > > There is SM8250 CAMSS device, which serves as a hierarchical parent (or
> > > could be considered as a "bus" device) to this new JPEG encoder device
> > > and probably to a number of future IPs under CAMSS. All CAMSS sub-devices
> > > get hardware descriptions as children device tree nodes of CAMSS parent
> > > device tree node naturally.
> > I agree the device tree is best to represent real hw topology. >
> 
> Well, it's not just the best, it's the only possible way.
> 
> > > Copying of the same identical information about clocks, interconnects
> > > and power domains from the hierarchical parent device to children devices
> > > is not needed, and practically it only lowers signal-to-noise ratio.
> > Here also i tend to agree.>
> > > Since information about the actual defect in hardware description is
> > > reported, the problem can and should be avoided, the handling of a better
> > > hardware description and dealing with any kind of complexity will be done
> > > in the CAMSS and/or CAMSS children drivers.
> > > 
> > > If you need to get a bit more formal point of view on the matter, I'd
> > > prefer to see descriptions of hardware properties organised in a tree
> > > topology rather than in the originally proposed star topology. By doing
> > > it the system complexity is reduced from N to 1.
> > 
> > Maybe I'm missing the whole picture of your proposal, but I want to add my
> > point of view on this matter.
> > 
> > The JPEG encoder HW block has no dependency on the other processing HW
> > blocks in the camera subsystem
> > 
> > It shares resources like camnoc, clocks, GDSC, etc.,
> > but does not share anything with the other HW processing blocks. For me,
> > the JPEG driver should not have SW architectural dependencies on CAMSS.
> 
> To move forward there should be a clear answer to a simple question,
> does Qualcomm JPEG encoder IP belong to CAMSS group of devices or not?
> 
> If no, then JPEG encoder device tree node shall be located outside of
> CAMSS device tree node, all resources needed for JPEG encoder device
> operation get their descrition in this stand-alone device tree node.
> 
> If yes, then JPEG encoder device tree node is a child of CAMSS "bus"
> device tree node, and only resources specific to JPEG encoder device
> are described in its device tree node, because other resources are
> already described in the parent device tree node.

2c from my side (for both sides of the discussion). Please keep it
separate, if the block simply uses the resource which is also used by
the parent (e.g. there are no special requirements on the AHB or sleep
clocks) or if the device needs to actuall cast a vote on a particular
resource (e.g. for this to function at this performance level, the MMCX
needs to be at the turbo level OR for this to function at this
performance level it will use 123 MHz of the AXI clock). In the latter
case the resources must be described as a part of the device.

-- 
With best wishes
Dmitry

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-lj1-f169.google.com (mail-lj1-f169.google.com [209.85.208.169])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14136423A63
	for <linux-kernel@vger.kernel.org>; Wed,  8 Jul 2026 12:01:33 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.169
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783512095; cv=none; b=mH6LFFbIs6EtXN+MmDzyXQ4gTpYM3JhQOQrR/d+oVyAGMoBrJbvPiX/ooEa3huWR9mjTWd5jT+RssDNIth58YH6V27Tomv/ZFUSC1/Y6xr6m0YrXeoNaoHkeDJMhJev0lonIFFMukFfyGZ094J2lQwmKJskrRBp3ZxsUdH2CRlU=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783512095; c=relaxed/simple;
	bh=/a6IYbpWnGbUzqL0WVdR/2GwZ+Glpr8Tc4xAeYCi4cA=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=IAfg3rXj52UdHoQKzkwAmuZzsiyhxry/XGq20Zfhi+MX++7FVua1V49YYMmq608hskan2H0HIK/ORFsIEAvI+u1GD+hn9kaBbAiThypTmzbIdf9RSAZQIwEx3l9GCO56igWxRxA8UopgZrfifagl7nRzM5ziBLamxywMRhCkO5A=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=agbpY/TL; arc=none smtp.client-ip=209.85.208.169
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="agbpY/TL"
Received: by mail-lj1-f169.google.com with SMTP id 38308e7fff4ca-399c1225f22so174351fa.1
        for <linux-kernel@vger.kernel.org>; Wed, 08 Jul 2026 05:01:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783512092; x=1784116892; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to:content-type;
        bh=4i8K/LEMzhnhSZqG+2fTmIR6QB4CQ+QcJMkt3W3IXEw=;
        b=agbpY/TLvcUiZWsLEQafWQxClTjApWb9UXv1pjQZSXrCOGBjeu1fJhmSgxz/TWm/Uk
         Eb1TXzSQKh/zEhBxc2gMBlSNhcoPg4jQ7tghDDM2VlP/JcWGpePq6+VoeKHuhaHIQ4WA
         eHmZELBfWzoacSUfZHiYkjqvJg3cS29fyS6LbjA4YEG1e/onCNhIknAQ9Sl8Af1KL2jx
         GjtXciIw1GkWBvfBnFKJ6cAzRpP8SvaSOlorEFc3EdC/bzGdU1UsjVf08F56V5/HnSs8
         xpmxFkwsFoVzX0X2V6X12iACcqcL67fa3Khl3zkjO8ymh+pfdq5E+Yq9SoFUJ1FT4kKr
         pv6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783512092; x=1784116892;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=4i8K/LEMzhnhSZqG+2fTmIR6QB4CQ+QcJMkt3W3IXEw=;
        b=ppUgFpWj6Uc/N4TRMkAhf+D5aDfEQ6jcQstETuGsxlhWIwWZFmDWQt8pRVCtNXyXlz
         FPum5Z2Ka33BqLMWIEtS0P18Pp+dBIr8qU7ZOWmX5pwZnmO9t2mmaLFR+3KGW0Zu+F2R
         FJrcebtWs3tMmZve1S0MXNdFSOb4eaT2tcjmhpssJhEUhhlXbMJT8zVa3rg91ePls07c
         Be/rq9/9VU0Gz5NBSnvKdcJNizXwv6sb7esfqgDh8oTE0IiOmdr+Uns8q4GsxoIk+L8K
         jpM5idq21v5JYwqOum0SRoQlVnPHjkOook3jS+ToPKlZTtPO7jRjfIK3+nr7me024Dj3
         zfjQ==
X-Forwarded-Encrypted: i=1; AHgh+RpLmlBKZlK0wL+xZNNc+1F0xjYEVJDF28vMyNeZKVBZawDktU/cOZCathEfYTwaFvclRJfUD11U8sqqySU=@vger.kernel.org
X-Gm-Message-State: AOJu0Yw79xkxwcHuvl2AMW/9/e0ykSs1lL8BP2A9qAvWGFo7g7pPkAm2
	Rl9aUX4f16ib9xdODt0lYApWRQbVKsA375gl/qLGfccmjCMzuaWf0CujFWQs+fj8BOs=
X-Gm-Gg: AfdE7clOhoylz2R6BuRGZYFfWxWHt5/OE8PdqhZ44PMoCxoC75/wtECk60dAX4I2iEV
	U6w9/kdyT9ZfiQySjvSqmEcS4VTuhENmRlRIucz4muvG7D9x9vdYOawiRqsCoK5APdq9Ggrx1hz
	KdsA0rGWiSooBAKAFap2RlZ5smyvpchnO+ro4YdUp1QlLT877QkmdFs055Lq3IZN3Qr3XqrY+nl
	Ktvu6aiGDrEMiJb0LT3C6426oxrQ5ge1Vr9Vh9Ieh0PXkU8ZtRqAAEtrk2cNxG9+WkWn3jO4oYb
	oLt6xILVy+w2gLbAvL+pQgtOfjq1MVIPnbGW3Qntc2/Yy/MO2nIlT6MK3RFHQqAgwS1SA7pGZ/r
	x7LhuOV6GUT4TKnMF33PS0eczopimcSD6uupbe7fYhqdCVFd0EtTyU+V1Tvy/49tKvG1DQCM7RD
	5tOEa++IQQRanID05Jc/8jed3ezPodph47CtiJw6OvWK1ANcR0LQ6a2tFrQhWGxBed/hQ=
X-Received: by 2002:a2e:a5c9:0:b0:39b:90f:b1cb with SMTP id 38308e7fff4ca-39c798269e4mr2943241fa.7.1783512092081;
        Wed, 08 Jul 2026 05:01:32 -0700 (PDT)
Received: from [192.168.1.100] (91-159-24-186.elisa-laajakaista.fi. [91.159.24.186])
        by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39c6f682129sm7596531fa.1.2026.07.08.05.01.31
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Wed, 08 Jul 2026 05:01:31 -0700 (PDT)
Message-ID: <74608907-dc8a-42c5-b188-0bdb08d6be77@linaro.org>
Date: Wed, 8 Jul 2026 15:01:30 +0300
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
 loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
 <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
 <56f1fd7e-42bc-4034-81dc-302cb7c22951@linaro.org>
 <dd34b44d-396e-4267-b383-e4f8d20f8ef4@oss.qualcomm.com>
 <fffc51f1-9137-4951-b9b8-9f7f263c7878@linaro.org>
 <wwk4nyczcecnllwivqd2lgnbpzboumtwigk3vmundsvgqtqpy7@duq6zdulc7sc>
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
In-Reply-To: <wwk4nyczcecnllwivqd2lgnbpzboumtwigk3vmundsvgqtqpy7@duq6zdulc7sc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 7/8/26 14:35, Dmitry Baryshkov wrote:
> On Wed, Jul 08, 2026 at 01:28:46PM +0300, Vladimir Zapolskiy wrote:
>> Hi Gjorgji.
>>
>> On 7/8/26 12:32, Gjorgji Rosikopulos (Consultant) wrote:
>>> Hi Vlad,
>>>
>>> On 7/8/2026 11:47 AM, Vladimir Zapolskiy wrote:
>>>> Hi Gjorgji.
>>>>
>>>> On 7/7/26 16:24, Gjorgji Rosikopulos (Consultant) wrote:
>>>>> Hi Vlad,
>>>>>
>>>>> On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
>>>>> <snip>
>>>>>>>
>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnects = <&gem_noc MASTER_AMPSS_M0
>>>>>>> QCOM_ICC_TAG_ACTIVE_ONLY
>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &config_noc SLAVE_CAMERA_CFG
>>>>>>> QCOM_ICC_TAG_ACTIVE_ONLY>,
>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_HF
>>>>>>> QCOM_ICC_TAG_ALWAYS
>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>>>>> QCOM_ICC_TAG_ALWAYS>,
>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_SF
>>>>>>> QCOM_ICC_TAG_ALWAYS
>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>>>>> QCOM_ICC_TAG_ALWAYS>;
>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnect-names = "cpu-cfg",
>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "hf-mnoc",
>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf-mnoc";
>>>>>>
>>>>>> This is the topic, which may raise a disagreement, but I'll repeat my
>>>>>> position about the need to remove all "CAMSS bus" specific resources from
>>>>>> the device node, they are found and should be allocated on parent's side.
>>>>>
>>>>> The interconnect has functionality to handle bw requests from different
>>>>> clients.
>>>>>
>>>>> Yes the best will be to have camss interconnect, so jpeg and other hw's
>>>>> to vote
>>>>>
>>>>> on that (actually it is possible in icc framework) but what is the
>>>>> benefit of moving
>>>>>
>>>>> those to camss? Is it not better to create camss icc. I understand
>>>>> you want them to be on parent side. But how to vote on bw? Most of the
>>>>> time it
>>>>
>>>> Let's concentrate on hardware bindings description, no APIs, votes etc.
>>>> at this point of discussion.
>>> I agree but there should be an API for icc voting which Jpeg need to use,
>>> currently it is fixed to some values, but voting need to become dynamic
>>> at some point of time, because it depends on runtime parameters, resolution
>>> format etc.>
>>
>> Sure, but I believe it's quite clear that any software implementation
>> should be discussed only when the hardware description is fixed.
>>
>>>> There is SM8250 CAMSS device, which serves as a hierarchical parent (or
>>>> could be considered as a "bus" device) to this new JPEG encoder device
>>>> and probably to a number of future IPs under CAMSS. All CAMSS sub-devices
>>>> get hardware descriptions as children device tree nodes of CAMSS parent
>>>> device tree node naturally.
>>> I agree the device tree is best to represent real hw topology. >
>>
>> Well, it's not just the best, it's the only possible way.
>>
>>>> Copying of the same identical information about clocks, interconnects
>>>> and power domains from the hierarchical parent device to children devices
>>>> is not needed, and practically it only lowers signal-to-noise ratio.
>>> Here also i tend to agree.>
>>>> Since information about the actual defect in hardware description is
>>>> reported, the problem can and should be avoided, the handling of a better
>>>> hardware description and dealing with any kind of complexity will be done
>>>> in the CAMSS and/or CAMSS children drivers.
>>>>
>>>> If you need to get a bit more formal point of view on the matter, I'd
>>>> prefer to see descriptions of hardware properties organised in a tree
>>>> topology rather than in the originally proposed star topology. By doing
>>>> it the system complexity is reduced from N to 1.
>>>
>>> Maybe I'm missing the whole picture of your proposal, but I want to add my
>>> point of view on this matter.
>>>
>>> The JPEG encoder HW block has no dependency on the other processing HW
>>> blocks in the camera subsystem
>>>
>>> It shares resources like camnoc, clocks, GDSC, etc.,
>>> but does not share anything with the other HW processing blocks. For me,
>>> the JPEG driver should not have SW architectural dependencies on CAMSS.
>>
>> To move forward there should be a clear answer to a simple question,
>> does Qualcomm JPEG encoder IP belong to CAMSS group of devices or not?
>>
>> If no, then JPEG encoder device tree node shall be located outside of
>> CAMSS device tree node, all resources needed for JPEG encoder device
>> operation get their descrition in this stand-alone device tree node.
>>
>> If yes, then JPEG encoder device tree node is a child of CAMSS "bus"
>> device tree node, and only resources specific to JPEG encoder device
>> are described in its device tree node, because other resources are
>> already described in the parent device tree node.
> 
> 2c from my side (for both sides of the discussion). Please keep it
> separate, if the block simply uses the resource which is also used by
> the parent (e.g. there are no special requirements on the AHB or sleep
> clocks) or if the device needs to actuall cast a vote on a particular
> resource (e.g. for this to function at this performance level, the MMCX
> needs to be at the turbo level OR for this to function at this
> performance level it will use 123 MHz of the AXI clock). In the latter
> case the resources must be described as a part of the device.
> 

Even this "description as a part of the device" might be not quite
necessary in whole, let me try to explain.

No doubts resource usage policies specific to a child device should
be naturally described in child device tree node, and it's applicable
to any kind of hardware policies (like opp tables etc.), but a list
of needed hardware resources still can be obtained (also by a driver)
from the parent, whenever it is found applicable and unambiguous.

This is to separate planes of hardware dependencies and policies/controls
needed for hardware usage.

-- 
Best wishes,
Vladimir

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 0261243D510
	for <linux-media@vger.kernel.org>; Wed,  8 Jul 2026 12:19:11 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783513153; cv=none; b=ULot1bHgXVepLfEqR7JCdp2ml7BpDzamqRr2it/csmDsYDnnjuEIcJooHUO8gqIqP7rrRI2eHT5BjAfTP0DORGQKcqAlKSBpODnWn0GXSmkUdMFTeqGLop1unXe6CW+0xtdDdAO1GivSXUBUrQBkSdGb3S471c4JJyVn+ewoqTo=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783513153; c=relaxed/simple;
	bh=gPGpInfCJ6WsoYHEKSt3twT3UDTC58WmSefrK7jcPEI=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=d/ZfjIyOJLI34nIHuFTAuPVkTrxFEPeFZFSOaWGar4cY/CKAfBPSUUVtirUVnQnTtqPAX4TcOG2oj5ZgGpVEYvboqqAWq2knXn9od8cYrupMWx2eSYu2CY9H8WtFEkt17vVjt9M5toV8TS58HtEAtjVeq57XVTCpxG4PqhEblaA=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Uvw/lvtv; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gaUEnlwA; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Uvw/lvtv";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gaUEnlwA"
Received: from pps.filterd (m0279872.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 668C3PYd2579556
	for <linux-media@vger.kernel.org>; Wed, 8 Jul 2026 12:19:11 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	xYyYDdXJv+fn3EtUAfji3Cg1cIl6VuLBfm4wbAfjhTM=; b=Uvw/lvtv45LRcvCN
	zECuZeMWRuOYeUqqkDaKNBLJRSf83grZmWr8jYCWYSWiuK9bZKffmBxGDc1y/4pR
	1p2H63PXKjpXnx4Ym72/AG8+ugpzLnceYYWhWBqHmWZiSowV8zHaiC/VTNlpWP4i
	LAngysYymtFcRHghxSDPrsZZ5cqJaxsiyyUKg/9zpdT1v0zNAoWOKbESoPhQOU8B
	xDDT1j3zJN9d2E2Lvokqq8JPKuUPOrgDDi/AaM54wH11Ki8wQxlkZgjxbyDfAXeY
	YvWQ2TLtWokIk5Bt0m3yFQ2laLQMPbUAMPT2WezczOjHF+APH5lfyjmPVctgOI32
	+zOGBA==
Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f9b5ganda-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-media@vger.kernel.org>; Wed, 08 Jul 2026 12:19:10 +0000 (GMT)
Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51c21be5bb4so4074121cf.0
        for <linux-media@vger.kernel.org>; Wed, 08 Jul 2026 05:19:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783513150; x=1784117950; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=xYyYDdXJv+fn3EtUAfji3Cg1cIl6VuLBfm4wbAfjhTM=;
        b=gaUEnlwAkUO1DevYYF+y4UAj65fWqr/a7oHahkQwqks9mJecl/Exz/zEYv1R2pgKpv
         UQZbMJUAld63ySqEgl7ue77oLjoEHCFFXjc6tZOiLYbCThYhL2B43PMhh1z7g0osD08i
         II4litcwBtCP02h1GoqO0YUi3YzZRWLuRII9mdPDTT20kc/dWSkNHiWD82s56EcvYzRR
         8pKV9we7QVhDozSfn3MXsnZemNYpfooWTJKv87S3BxqMPfGR/qq0EfyQi++M85tuECLx
         9GxBqqUY6GvoULSVkGpLNJ1ukaR/bLCoJfbdTG9Ygg7dojEf7o2rU67n3YyRJ/AdFz7N
         TfyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783513150; x=1784117950;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=xYyYDdXJv+fn3EtUAfji3Cg1cIl6VuLBfm4wbAfjhTM=;
        b=VqwY0gIpuqe8QNkAwP4imeIH7dl09efN99EccS4/HpKAdBY/GnHHCIeAfqJwTyRZb9
         sl7jSG1KhlZaip5f48Wue/WXE5WQ4cL9r2j8T9kcbqjjIWmd4+tCt/q3bhQjtVxkeKk0
         QsiawDIDMW975bSNb+QOY2R+E1m2vnQ8VVzX3pw2sGFJ9RlN8BKdXzSrAhwzInFjiPie
         xvQKgysBymMM28Nn9F4XgNOm848/5oS1QHRJMisFwqxO+otIw6T+94YXPAb+2pH4UGTQ
         UcKuhyTSAr3nEc90Ul1RDjrliEOD6Fkai/DULYKRcgqyZk0GIOXj9O9EynbnV2HK1iqH
         5g2A==
X-Forwarded-Encrypted: i=1; AHgh+RqZmy/qimWdWmvB1eCFrC1p026R5zHMsV5bqpXlDWNunnIGStWpIMoqR6JmbNDnrG6CsrKIIDEfg9KFvg==@vger.kernel.org
X-Gm-Message-State: AOJu0YwO3IVU+VIYeQXU+lMOD5R+B2M3rcVz2Kim2rgRjjbc93tMtkiG
	vBqOAoOSXvR/4sJSDIT77IZmdISSdUfp9a6Za3zxvxT9CpXJZ1GjPtVGMN4qHGL/TxN/UJofSKy
	OYnC39QCCODqmGHQYzitbeX9BIxQbFiSV84nL79oZDfGhR4gZnU2nd72e/pHVaRFLbK07QLBSEQ
	==
X-Gm-Gg: AfdE7cly7lNF8AkJfbnxRsgpvP+s2K4SCNLspiVjPTQHHhVKWJbr8Oktz0cyIcccvOd
	UVmo0jsgjZW7KAHCy1NOvpGCqvgbhvngCMrO6MFrWG3C7eYwQOx0U+BCobCnfKDdtkbzRxraTrM
	hudw/Asz77T0CMOsMRY4mbpJ7BqrCtPNuTgVlGMM5SujrtbV7a4sft8MeOOH41rJ1zeUWPZKpmT
	ubjzdAO6tJVzLBq9L1JwiGAlv3cw1isfaO264DUiuIiBa/HrpQYcrorRqgFprdN4M1LebEz7imJ
	uq34x5NA36xJh/YG4yWfDx7YvxM+OpOI/P5FwcgLkwoIk0q38T9yckAtbS2MKndba5Vg6vXWu7F
	wlNKgLu6FWMepL/n4ySKPrfBzf8FDDxGLkbM=
X-Received: by 2002:ac8:5dcb:0:b0:51c:2324:666 with SMTP id d75a77b69052e-51c8b4333b7mr17388391cf.3.1783513150198;
        Wed, 08 Jul 2026 05:19:10 -0700 (PDT)
X-Received: by 2002:ac8:5dcb:0:b0:51c:2324:666 with SMTP id d75a77b69052e-51c8b4333b7mr17388031cf.3.1783513149617;
        Wed, 08 Jul 2026 05:19:09 -0700 (PDT)
Received: from [192.168.120.193] ([178.235.128.140])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15c1470325sm160963866b.14.2026.07.08.05.19.06
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Wed, 08 Jul 2026 05:19:08 -0700 (PDT)
Message-ID: <8fc1ddfd-0f77-4b67-b9bd-33fbd60e2046@oss.qualcomm.com>
Date: Wed, 8 Jul 2026 14:19:05 +0200
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Bryan O'Donoghue <bod@kernel.org>,
        Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
 <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
 <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
Content-Language: en-US
From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
In-Reply-To: <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA4MDEyMCBTYWx0ZWRfX2AK7MWwg2V1t
 Zsnk+a/1/FRWeWMR4hZhZP2nYXVlwSrL5TGNAIinw5Bokz+q2xRvTERYwHwvmOHzZ2FJ/c+wLLE
 hs/RYOD/1FwdxSEZUq0LKS7qgJ16B9I=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA4MDEyMCBTYWx0ZWRfXzyvE/U6z4iWv
 OI8HKif6NQmTWPwTmseVXPrJ1QXawI3nUyQCAOha0cT4rjwBjhXEwEHmkjpVYjuPY8mYqWWzPln
 hJTsPa9FB7gitFas9u3d6vI5+1jq6kN3CyDeaZYogppR2hjCPh4QsQY20nZOiVji2gLsoEwcNrm
 Ih1wRqk29Gt1/DJ9SeLqWt88V4iXhGJa3ikU9kL+cKi3NIIVuAyCoHdEeoQSxoxXp0jYIDFcw69
 rBkFiPGj7FLN4nf5G82yxy51HTR/tj/wuZDOY87awcNatmcuQPhE77wLleO1osyZG+IHQVmm48T
 mHIGhpEU5P0XduUqVxa+ch60L2eJ632kgacFobYQMCFQDPR49CL3QOU5XnCvMRlLW4anAbuj2Cq
 Ej+Y8sxlWCDOZyhyqLGX/FNfEMhKymim0qbBctdl1mx2cD3BxNqLorJw4w4KwNQCBkmtY2GCEWo
 l0zCmQTaPKfChInZw2A==
X-Proofpoint-ORIG-GUID: n_6krzdI_g4E6SL4kY1jiALHSGWUNJsf
X-Authority-Analysis: v=2.4 cv=JLULdcKb c=1 sm=1 tr=0 ts=6a4e403e cx=c_pps
 a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=PRfkaYvzSr8QmIIGAkY2Sg==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22
 a=y1t4v1gd98P_d2K2kl0A:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22
X-Proofpoint-GUID: n_6krzdI_g4E6SL4kY1jiALHSGWUNJsf
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-08_02,2026-07-08_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 phishscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0
 suspectscore=0 spamscore=0 impostorscore=0 bulkscore=0 priorityscore=1501
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607080120

On 7/7/26 12:41 PM, Bryan O'Donoghue wrote:
> On 07/07/2026 11:11, Konrad Dybcio wrote:
>> On 7/7/26 12:00 PM, Bryan O'Donoghue wrote:
>>> On 07/07/2026 10:24, Konrad Dybcio wrote:
>>>> On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
>>>>> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:

[...]

> OK, I can see how this thread is confusing.
> 
> The idea is to start to declare sub-nodes "on the road" to making camss into a bus. The legacy binding we have is really for the IFE domain - that is CSIPHY, CSID, IFE.
> 
> Right now the camss binding describes those things - so linking say OPE or JPEG back to the thing that describes those isn't right.
> 
> OTOH we _want_ to make the top-level binding into a bus, we've discussed that several times.
> 
> To transition from monolith IFE-domain only, to camss-bus, we should have the sub-nodes fully describe themselves as "camss-bus" doesn't exist yet.
> 
> Once we have compat="camss-bus" then fine, make that linkage, I fully support that.
> 
> That roadmap BTW is why I'm asking Antanas and Loic to make JPEG and OPE sub-nodes of camss - but make them complete sub-nodes - power-domains, clocks, nocs, including the TOP_GDSC.

I think this needlessly increases the amount of combinations we'll
have to keep supporting down the line (with a ton of compatibility
boilerplate code)

Konrad

> It means we can work on splitting apart the existing camss node in isolation to make CSID, IFE as peer sub-nodes.
> 
> We definitely shouldn't be making those sub-nodes dependent on compat="camss" but they definitely will be dependent once we finish making compat="camss-bus".
> 
> When that is done I fully agree TOP_GDSC belongs in the bus node, like MDSS.
> 
> I hope that makes sense.

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 8E4233F12DF
	for <linux-media@vger.kernel.org>; Wed,  8 Jul 2026 15:44:58 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783525500; cv=none; b=J34eLKMPfn5F5VcwY05fQ+YfaKkxeVCp3bHJrLSDZKlrlyjxYGVW4ZkSrm2aTlzgRvKuBtrmiCkvxXOiD2o5ATSw98gHMfLO+4fay/XA43rgEHwmFZP5Fqe6NP+9nQH7D9Ej3klQqKoinFJJ1lwg1DRS73AXoHvVfbLg2ISD9WM=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783525500; c=relaxed/simple;
	bh=bUSLiGRQFh0ghEbicPP7GtlWPZsKF3rpw03IA3Tz9aw=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=eUf1dRgR6xxtvxTtamsWWCllUDnAkPHt3Q/6HEcTmQEiQ1C+YL1PqS2ljbJa2VldgkqnE07Zi49z10F9999AYheRfkbW+nNrD7UgZw5pH+9r6ibjdzPKUEHbqdqKPuK4fZkS1258/dUVTU/+masaF7DtoNd5BcAEp8TUhheAqeM=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=DZXj8jRw; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=FrmmXWZZ; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="DZXj8jRw";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FrmmXWZZ"
Received: from pps.filterd (m0279869.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 668C40U72759993
	for <linux-media@vger.kernel.org>; Wed, 8 Jul 2026 15:44:57 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	VaAPWEY/g4XNfXsTs3KtueADcs7Yb9r7IABv5t6GF4c=; b=DZXj8jRwtKhmSvmQ
	NoUcfZ9TjjbiWd29t6o5uU/JxIupxagsRtrQFqH/jbM1WmC8Q3nB6mREBB2151rK
	HsuZo6zcZdEL977T/7kFIC7f3On8Lwg4o1egngp+jSJr3YsqM2NZdDsEb31orvyu
	CLfYiF/MkV9TCy2bP4ZEnpsFxKoMdmKXSwD1qfwO+dL3vhhGcw/4laysvDRyqEmd
	8dQ+Nq+8y3Ra9Jo7onR5iyxxJqwGE1KqQgz9xKUMbj9M54Wm87Z+9iZOtZdh/Qr1
	84wQy4EvnbZ96Swg50Mwbyy3qxSevFq+ozRquet/RipvU039chn2sYyeOVuNKd/e
	BJzIuw==
Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f95e5w8y6-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-media@vger.kernel.org>; Wed, 08 Jul 2026 15:44:57 +0000 (GMT)
Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-8e9489f62bfso16321086d6.2
        for <linux-media@vger.kernel.org>; Wed, 08 Jul 2026 08:44:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783525497; x=1784130297; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=VaAPWEY/g4XNfXsTs3KtueADcs7Yb9r7IABv5t6GF4c=;
        b=FrmmXWZZlNW+hhUOXhcIlFsDpELx+Xwox0hRUOeY6xf09Ubm1YqfIaCe/G+cUt1jbr
         jAFKY6+iX40QRp4YUHtLDBL9cSD1cRerPiEVLgUPZZZLiHuurJqJ/VjyScTqsuNN6q+q
         2v1TVDIJzNq9gp/gVCejJiB6HdCogLFQ/8VHxBjDhE0HCkuv3w0rvdTQF029F+TrNqas
         gZ4ODAHWDGG4gLGdIRSOZ9uumyfh5dhqBwW1/IubvdMAn1t1Yzje+zIMT/Td969HIyHU
         heJNO9Js1b/HwiYaC1Wa5k+ppRUJfdu7NK5a+YG/Hin2LMaR9a5iVqAGdGuRWPXI1v9d
         R1ng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783525497; x=1784130297;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=VaAPWEY/g4XNfXsTs3KtueADcs7Yb9r7IABv5t6GF4c=;
        b=MInDvpMB90RjiAfOUxdaniD6Dx3FDKF+Nz04CmPNItOjbi+eTyingkEjbrfA0Tjh8T
         Vo5jA3pgRgtZYQ39ceHRgwSCZ3j/pUdqGUsfIkhCmsUnhHpUwmRoxh7XQ0EAhk0TSNmw
         0wtX56926JNl4HHRsxfR78aXTG7k+0m7Xc9SOjtoN2iKIbGnSqlJNLahy3FaULzWcIsR
         exyR0FJunU11GM9p/wtjroS7gQLDsEKmiY37i1tNLEB/quW3laQXRBhEGncbFh4rfP8F
         dbYv/sNputKME4m5NjdJ5cvhDeeZPFwhbpj5iNM1T4cnJcBLdrGl1Supvpq4rGzjw+kC
         Zfjg==
X-Forwarded-Encrypted: i=1; AHgh+RpurzzbeB9g6KC3Roq+RPS1d4PPtIRzObu+ao4oAuYrshZhOyzOMhR8AccgFV23aolKEIAKR/HnMhIv8Q==@vger.kernel.org
X-Gm-Message-State: AOJu0YwKXI6qaF2m7jrMtsVNXmZgjrY1iHJj5OTpkFpOX+2VflpKWgwN
	31EIYXZnLl/jSBxTocMlwch2TCG8YV0E29hhdCcEiBMiR0RnheTejmTFyxAvJy3kevnqrMLDrFt
	4Z7qFeVfXqUqqvmoneK2RQyo077RB5aGzbcARoCWnMOy4alS+b8/xpfYOwQ1+5r6low==
X-Gm-Gg: AfdE7cnEOoj0Rv0Bq5tdG3+WvIITmXxa+rkuS1AlTUfzmBKaq25PCP4Qj8brIchdRLx
	7XxhyRkANTWY+7j70Fo0uNd9MfAMf1EfTK4rpQZiNP+nIoHur+Ni3L84639MzSBOftw9+Beu1CC
	8vGHpuFDMKS3uDC7/3Cxzf33VS4fAe4yXVDew1ysTTiPjfWJyIVj/aagqW9NC0iCDhz0mgCELCJ
	veNeIlSHLB8RwnGmA5Y6inOVoz6aa/Ol4FoSFSMtowlwnesz8PxapA1umw3oCG5gI+xuJ9RCE++
	xRgUqoZCMydCje/xV60b9Kc3vneVHCMZZT55+EW5zzv4fYw9Fvxebe5dvqQFfTwtNyq1eUuR7QG
	LGzDubR7FDwT9DM7/gyzsKsRKvAluoCMNRZ2PQpcUab5G8RVikwEQ+L7clsU/JIbP/qrWIwEzpv
	H1lCMiiAU=
X-Received: by 2002:a05:622a:4890:b0:50d:db76:55cd with SMTP id d75a77b69052e-51c8b5492f0mr31842261cf.52.1783525496315;
        Wed, 08 Jul 2026 08:44:56 -0700 (PDT)
X-Received: by 2002:a05:622a:4890:b0:50d:db76:55cd with SMTP id d75a77b69052e-51c8b5492f0mr31841671cf.52.1783525495521;
        Wed, 08 Jul 2026 08:44:55 -0700 (PDT)
Received: from [192.168.1.31] ([85.196.172.179])
        by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69a19d9ea0asm7782436a12.22.2026.07.08.08.44.53
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Wed, 08 Jul 2026 08:44:54 -0700 (PDT)
Message-ID: <0e9de1c7-2e39-463f-b4db-f228f37a8a13@oss.qualcomm.com>
Date: Wed, 8 Jul 2026 18:44:51 +0300
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
 <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
 <56f1fd7e-42bc-4034-81dc-302cb7c22951@linaro.org>
 <dd34b44d-396e-4267-b383-e4f8d20f8ef4@oss.qualcomm.com>
 <fffc51f1-9137-4951-b9b8-9f7f263c7878@linaro.org>
 <wwk4nyczcecnllwivqd2lgnbpzboumtwigk3vmundsvgqtqpy7@duq6zdulc7sc>
 <74608907-dc8a-42c5-b188-0bdb08d6be77@linaro.org>
Content-Language: en-US
From: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>
In-Reply-To: <74608907-dc8a-42c5-b188-0bdb08d6be77@linaro.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: VL8x1ggJs_HKyjhC0oDS6Co9P3mkKpyk
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA4MDE1NSBTYWx0ZWRfX4q4TmY3IvWe6
 vv16TtTKfDwjaGGWGgKR56crcKhJ+oqcBL99MihW+BJW7cPDeo+D/9UF8L5/MxBVLSlkG1dsGQL
 We5i2Sq89HG/HYfj+BlAEWihT27T/l0=
X-Authority-Analysis: v=2.4 cv=CNoamxrD c=1 sm=1 tr=0 ts=6a4e7079 cx=c_pps
 a=UgVkIMxJMSkC9lv97toC5g==:117 a=Q/e3f29T3Hw2hnAEzBPF7w==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22
 a=HRVC3C84EGBQM4B1i-YA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=1HOtulTD9v-eNWfpl4qZ:22
X-Proofpoint-ORIG-GUID: VL8x1ggJs_HKyjhC0oDS6Co9P3mkKpyk
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA4MDE1NSBTYWx0ZWRfX4FJEuenR5Gl2
 kvDpa5FMpgLBRaNF7URFCHfyy6zqwHlQeY3Kf3QNh4+resv1+OmY02R6MBJVXrkeUTl+Azw6w5Q
 3q6VDEndrVRuIibfW5mIUTGyi0PrtpAcUX3vTS1ey8nnfKZVX12/T4JTuHh2OLBb1lBN/hZqkXF
 3ILf0jNURwcdFeevIhV17E1BWnYw2hQqNWdjd9XwT0y1zXkgXnTh+Oxget29vO7T0LbK4gV4xDO
 /HLKCYrKYLjdI2APpYWbrTM3y/bnHq5QPx6iuGDz4zvOYw8/H1W4avpnv+jRbzwLr2jVUkDwnec
 FdEO1saMJ4jowr1VYvuXMZLw6QyOLoToHPI4a1SXK6WnLUBs4jQb1BPFVdDV/xStdv6eR0YCIv1
 STP/pTEJ/T/hEXkkNJV/YMDAhSdk2WjD7E3yRm9QdkR844eDo3pQrPMUYTvKqLBFEYXxZwprvAv
 Pulc9kDuKpDbh80L8NA==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-08_02,2026-07-08_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 malwarescore=0 adultscore=0 phishscore=0 impostorscore=0
 priorityscore=1501 lowpriorityscore=0 bulkscore=0 spamscore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607080155

Hi Vlad, Dmitry

On 7/8/2026 3:01 PM, Vladimir Zapolskiy wrote:
> On 7/8/26 14:35, Dmitry Baryshkov wrote:
>> On Wed, Jul 08, 2026 at 01:28:46PM +0300, Vladimir Zapolskiy wrote:
>>> Hi Gjorgji.
>>>
>>> On 7/8/26 12:32, Gjorgji Rosikopulos (Consultant) wrote:
>>>> Hi Vlad,
>>>>
>>>> On 7/8/2026 11:47 AM, Vladimir Zapolskiy wrote:
>>>>> Hi Gjorgji.
>>>>>
>>>>> On 7/7/26 16:24, Gjorgji Rosikopulos (Consultant) wrote:
>>>>>> Hi Vlad,
>>>>>>
>>>>>> On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
>>>>>> <snip>
>>>>>>>>
>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnects = <&gem_noc MASTER_AMPSS_M0
>>>>>>>> QCOM_ICC_TAG_ACTIVE_ONLY
>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &config_noc SLAVE_CAMERA_CFG
>>>>>>>> QCOM_ICC_TAG_ACTIVE_ONLY>,
>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_HF
>>>>>>>> QCOM_ICC_TAG_ALWAYS
>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>>>>>> QCOM_ICC_TAG_ALWAYS>,
>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_SF
>>>>>>>> QCOM_ICC_TAG_ALWAYS
>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>>>>>> QCOM_ICC_TAG_ALWAYS>;
>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnect-names = "cpu-cfg",
>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "hf-mnoc",
>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf-mnoc";
>>>>>>>
>>>>>>> This is the topic, which may raise a disagreement, but I'll repeat my
>>>>>>> position about the need to remove all "CAMSS bus" specific resources from
>>>>>>> the device node, they are found and should be allocated on parent's side.
>>>>>>
>>>>>> The interconnect has functionality to handle bw requests from different
>>>>>> clients.
>>>>>>
>>>>>> Yes the best will be to have camss interconnect, so jpeg and other hw's
>>>>>> to vote
>>>>>>
>>>>>> on that (actually it is possible in icc framework) but what is the
>>>>>> benefit of moving
>>>>>>
>>>>>> those to camss? Is it not better to create camss icc. I understand
>>>>>> you want them to be on parent side. But how to vote on bw? Most of the
>>>>>> time it
>>>>>
>>>>> Let's concentrate on hardware bindings description, no APIs, votes etc.
>>>>> at this point of discussion.
>>>> I agree but there should be an API for icc voting which Jpeg need to use,
>>>> currently it is fixed to some values, but voting need to become dynamic
>>>> at some point of time, because it depends on runtime parameters, resolution
>>>> format etc.>
>>>
>>> Sure, but I believe it's quite clear that any software implementation
>>> should be discussed only when the hardware description is fixed.
>>>
>>>>> There is SM8250 CAMSS device, which serves as a hierarchical parent (or
>>>>> could be considered as a "bus" device) to this new JPEG encoder device
>>>>> and probably to a number of future IPs under CAMSS. All CAMSS sub-devices
>>>>> get hardware descriptions as children device tree nodes of CAMSS parent
>>>>> device tree node naturally.
>>>> I agree the device tree is best to represent real hw topology. >
>>>
>>> Well, it's not just the best, it's the only possible way.
>>>
>>>>> Copying of the same identical information about clocks, interconnects
>>>>> and power domains from the hierarchical parent device to children devices
>>>>> is not needed, and practically it only lowers signal-to-noise ratio.
>>>> Here also i tend to agree.>
>>>>> Since information about the actual defect in hardware description is
>>>>> reported, the problem can and should be avoided, the handling of a better
>>>>> hardware description and dealing with any kind of complexity will be done
>>>>> in the CAMSS and/or CAMSS children drivers.
>>>>>
>>>>> If you need to get a bit more formal point of view on the matter, I'd
>>>>> prefer to see descriptions of hardware properties organised in a tree
>>>>> topology rather than in the originally proposed star topology. By doing
>>>>> it the system complexity is reduced from N to 1.
>>>>
>>>> Maybe I'm missing the whole picture of your proposal, but I want to add my
>>>> point of view on this matter.
>>>>
>>>> The JPEG encoder HW block has no dependency on the other processing HW
>>>> blocks in the camera subsystem
>>>>
>>>> It shares resources like camnoc, clocks, GDSC, etc.,
>>>> but does not share anything with the other HW processing blocks. For me,
>>>> the JPEG driver should not have SW architectural dependencies on CAMSS.
>>>
>>> To move forward there should be a clear answer to a simple question,
>>> does Qualcomm JPEG encoder IP belong to CAMSS group of devices or not?
>>>
>>> If no, then JPEG encoder device tree node shall be located outside of
>>> CAMSS device tree node, all resources needed for JPEG encoder device
>>> operation get their descrition in this stand-alone device tree node.
>>>
>>> If yes, then JPEG encoder device tree node is a child of CAMSS "bus"
>>> device tree node, and only resources specific to JPEG encoder device
>>> are described in its device tree node, because other resources are
>>> already described in the parent device tree node.
>>
>> 2c from my side (for both sides of the discussion). Please keep it
>> separate, if the block simply uses the resource which is also used by
>> the parent (e.g. there are no special requirements on the AHB or sleep
>> clocks) or if the device needs to actuall cast a vote on a particular
>> resource (e.g. for this to function at this performance level, the MMCX
>> needs to be at the turbo level OR for this to function at this
>> performance level it will use 123 MHz of the AXI clock). In the latter
>> case the resources must be described as a part of the device.
>>
> 
> Even this "description as a part of the device" might be not quite
> necessary in whole, let me try to explain.
> 
> No doubts resource usage policies specific to a child device should
> be naturally described in child device tree node, and it's applicable
> to any kind of hardware policies (like opp tables etc.), but a list
> of needed hardware resources still can be obtained (also by a driver)
> from the parent, whenever it is found applicable and unambiguous.

If that is the intention than that can be done without significant
changes in the jpeg driver.> 
> This is to separate planes of hardware dependencies and policies/controls
> needed for hardware usage.

Currently JPEG is part of the "camera peripheral block and support" (CPAS) in
the "camera subsystem" (CAMSS), CCI is there as well. Then maybe we should move
i2c-qcom-cci into CAMSS. Note that CCI can be used without CAMSS, and it can be
used for some I2C peripheral devices which are not camera-related.
Also, to reflect the exact HW configuration, maybe we need a CPAS sub-node.

One point of view: in the hardware configuration there are no dedicated
camera subsystem block (CAMSS) registers (based on my knowledge).
Those are a group of HW blocks belonging to the camera subsystem which share
some resources, including camnoc, clocks, GDSC, etc.

So, based on Vlad's proposal, the changes in the different drivers will just
be about where they take some resources from (parent device) or the current
device â€” so the changes in the drivers will not be significant.

~Gjorgji

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1BC642DA39
	for <linux-kernel@vger.kernel.org>; Wed,  8 Jul 2026 16:25:10 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.53
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783527913; cv=none; b=IzCSt6acqdgUHAgt6Q+5NaWo9SDv4TrJwzndhiO5SpXCdJq+bhNoT2Muo81RieHnaEz6am5MBMDsIFORtX8JrWsjsugOXpDpyqN/D3949c+WMG4GLEdtT7wya8FRRtxMGEs9MXDIbVxrcYiejhstzc4T7li5w3LXx/CoQnxNvOo=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783527913; c=relaxed/simple;
	bh=Y9gAqWT8nIFFmj8ROh62A1gTksGLsatZQYucfa6/WeA=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=Va4WeZieo31B8BNaKmiB7rTSRi6XSde8oPf/enOVniSUDwOetBcbGn9b+J3TdYkD6T2uVy7AJhfngFv4L2zrigVJEQxi2PFASJR5ahkFaC+iur/ognEqX3ExNhQlJBtJtt1tSZwbkOlcCm/RVVaau7eD9ojQhETQR0JLpsrEAx0=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=UB3gY70u; arc=none smtp.client-ip=209.85.167.53
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="UB3gY70u"
Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-5aeb40ebefbso239409e87.0
        for <linux-kernel@vger.kernel.org>; Wed, 08 Jul 2026 09:25:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783527909; x=1784132709; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to:content-type;
        bh=bI8bxULPVuuKF+NUa/BzsFjIzfQczSe5b/Q97O2fZ7A=;
        b=UB3gY70uk9ZjUH4FiwDjQsMlA58EQjAGZ6qIRj828FHRVlNFpcr1r9kLNtTibMzKvW
         ktZsy9sMIUmFFnM/PucPZoR2A4RIXwy7WRe2iNPKKGZNdpEJ2zgWzdmW45IWUVB9z6Xl
         8z5ssKXJ84udw67U2oB5mB1d1jfg9sZDFGKspNHw59nZLDxVVpDjByaxN6H7dyTrOQ6p
         +GcOoc+v7+yROvREMcs3h7AQZ+lxD8yTynGTFnkx4Naqsp6B872HPQ1tj5QiEhzzZJol
         j4x4vZsz7zQ2QVU0E8vHtXG07eap5wehHYLwygxm4vYzqM0lRgUMuT0Qqsg1GkK9ozV5
         ot2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783527909; x=1784132709;
        h=content-transfer-encoding:content-type:in-reply-to:from:references
         :cc:to:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=bI8bxULPVuuKF+NUa/BzsFjIzfQczSe5b/Q97O2fZ7A=;
        b=r55Onzibc5N5cBJMdNfGRPUEDlSJD5JuT0415XHZ32ORi1tF9nrQOzztWNUb5IHL0I
         K1UY7hCRFrKSpPyWm/5j/ck9a30BfK7iYxZtLXbrW7KwZ7h/8G8P9oj7IjAyMkOl4kPi
         VFIbXiOWEB5HSKJkYi303gYhSUsHj2XmggZ+IAYpZicGc6s3Mbxft7v0rx0E0jFsiXyO
         InIhLmCPMQ9DAfmEekNGQsh/7uN36P4bDK1hxiNsMUitZ5sbtG6TX1ewrsDlpMP5fxyJ
         q31QU4gsa4NLYfILe5ec3G5mRwcm9e1/QjdQMPleWYM80T9wNq+x2BioYopvxgJij2/0
         3N6A==
X-Forwarded-Encrypted: i=1; AHgh+RpKiQQ94iEgIvX+KBHJsbRDDEr4PYez1+nLU1wHS1qThqDtHo82gN0vjTM5vJbZKHpHJGc/xBce9V89hro=@vger.kernel.org
X-Gm-Message-State: AOJu0YzBoBFHpEgn/shc0YcmSQOPtz4cFvJ5v4inahaqOkQNGk+4H4wR
	cnPGFzHpWeGRPsS25186L0wH2BI3rV8BNMJlP6qZm97AY+9+gpgwJZEIQiFbvrbRzMQ=
X-Gm-Gg: AfdE7cmk65M9YUFFx+aA+EqE1mHeFlGSvJdEnatEMIB4kq5URgDISRxioF5Dq2JMhc8
	96IUheClDQ3NaDg9jgWmvoacLxgmOVFYRIFR3LVsIxPC4Ljek+UFWqyOmi9TJ+H1Mgvc3q457uy
	T1hkO90TSe1Xb+TEGNB0mvYShpk9zaC0gta20Ti49Vwl10O7pC35PRCcoLLj+E1I3gNLlkdJwa5
	4UTKDperNIq20/SsI69sL5ISNiaVc06QT/ytq1m68Clboam9tjR0ZZcM5FqHh9leI/GVx5A7RKh
	ykGL0kW/jcLUQe4ipnWWDD+16iwMye/k+dVLc2OzeiVhfCnWRwueVMr/2SC585ETOYAusSQ07Ys
	Bdv3VknFRspygTE622HtL3VSnQzVB6mCiIaBtmg3U3bwYGaE5hH7ZHUoEXdVt5wtVzd9cbSyYbc
	fwroWGtn8TFzWeTgbbz+UYNmp0wz73PXdhtR7+N5gOS9EEqbElmrMS/FbwoHpiXBRrvWU=
X-Received: by 2002:a05:6512:1292:b0:5ae:cfd3:4753 with SMTP id 2adb3069b0e04-5b01145a409mr457052e87.3.1783527908746;
        Wed, 08 Jul 2026 09:25:08 -0700 (PDT)
Received: from [192.168.1.100] (91-159-24-186.elisa-laajakaista.fi. [91.159.24.186])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed1377096sm4537514e87.25.2026.07.08.09.25.07
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Wed, 08 Jul 2026 09:25:08 -0700 (PDT)
Message-ID: <9af2a2b7-1aa2-49b9-bdd1-1ab37cce91ea@linaro.org>
Date: Wed, 8 Jul 2026 19:25:07 +0300
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>,
 Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
 loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
 <74a5b549-987c-4dac-a1a0-ff81150cd6ab@oss.qualcomm.com>
 <56f1fd7e-42bc-4034-81dc-302cb7c22951@linaro.org>
 <dd34b44d-396e-4267-b383-e4f8d20f8ef4@oss.qualcomm.com>
 <fffc51f1-9137-4951-b9b8-9f7f263c7878@linaro.org>
 <wwk4nyczcecnllwivqd2lgnbpzboumtwigk3vmundsvgqtqpy7@duq6zdulc7sc>
 <74608907-dc8a-42c5-b188-0bdb08d6be77@linaro.org>
 <0e9de1c7-2e39-463f-b4db-f228f37a8a13@oss.qualcomm.com>
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
In-Reply-To: <0e9de1c7-2e39-463f-b4db-f228f37a8a13@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 7/8/26 18:44, Gjorgji Rosikopulos (Consultant) wrote:
> Hi Vlad, Dmitry
> 
> On 7/8/2026 3:01 PM, Vladimir Zapolskiy wrote:
>> On 7/8/26 14:35, Dmitry Baryshkov wrote:
>>> On Wed, Jul 08, 2026 at 01:28:46PM +0300, Vladimir Zapolskiy wrote:
>>>> Hi Gjorgji.
>>>>
>>>> On 7/8/26 12:32, Gjorgji Rosikopulos (Consultant) wrote:
>>>>> Hi Vlad,
>>>>>
>>>>> On 7/8/2026 11:47 AM, Vladimir Zapolskiy wrote:
>>>>>> Hi Gjorgji.
>>>>>>
>>>>>> On 7/7/26 16:24, Gjorgji Rosikopulos (Consultant) wrote:
>>>>>>> Hi Vlad,
>>>>>>>
>>>>>>> On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
>>>>>>> <snip>
>>>>>>>>>
>>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnects = <&gem_noc MASTER_AMPSS_M0
>>>>>>>>> QCOM_ICC_TAG_ACTIVE_ONLY
>>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &config_noc SLAVE_CAMERA_CFG
>>>>>>>>> QCOM_ICC_TAG_ACTIVE_ONLY>,
>>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_HF
>>>>>>>>> QCOM_ICC_TAG_ALWAYS
>>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>>>>>>> QCOM_ICC_TAG_ALWAYS>,
>>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_SF
>>>>>>>>> QCOM_ICC_TAG_ALWAYS
>>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0
>>>>>>>>> QCOM_ICC_TAG_ALWAYS>;
>>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â  interconnect-names = "cpu-cfg",
>>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "hf-mnoc",
>>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf-mnoc";
>>>>>>>>
>>>>>>>> This is the topic, which may raise a disagreement, but I'll repeat my
>>>>>>>> position about the need to remove all "CAMSS bus" specific resources from
>>>>>>>> the device node, they are found and should be allocated on parent's side.
>>>>>>>
>>>>>>> The interconnect has functionality to handle bw requests from different
>>>>>>> clients.
>>>>>>>
>>>>>>> Yes the best will be to have camss interconnect, so jpeg and other hw's
>>>>>>> to vote
>>>>>>>
>>>>>>> on that (actually it is possible in icc framework) but what is the
>>>>>>> benefit of moving
>>>>>>>
>>>>>>> those to camss? Is it not better to create camss icc. I understand
>>>>>>> you want them to be on parent side. But how to vote on bw? Most of the
>>>>>>> time it
>>>>>>
>>>>>> Let's concentrate on hardware bindings description, no APIs, votes etc.
>>>>>> at this point of discussion.
>>>>> I agree but there should be an API for icc voting which Jpeg need to use,
>>>>> currently it is fixed to some values, but voting need to become dynamic
>>>>> at some point of time, because it depends on runtime parameters, resolution
>>>>> format etc.>
>>>>
>>>> Sure, but I believe it's quite clear that any software implementation
>>>> should be discussed only when the hardware description is fixed.
>>>>
>>>>>> There is SM8250 CAMSS device, which serves as a hierarchical parent (or
>>>>>> could be considered as a "bus" device) to this new JPEG encoder device
>>>>>> and probably to a number of future IPs under CAMSS. All CAMSS sub-devices
>>>>>> get hardware descriptions as children device tree nodes of CAMSS parent
>>>>>> device tree node naturally.
>>>>> I agree the device tree is best to represent real hw topology. >
>>>>
>>>> Well, it's not just the best, it's the only possible way.
>>>>
>>>>>> Copying of the same identical information about clocks, interconnects
>>>>>> and power domains from the hierarchical parent device to children devices
>>>>>> is not needed, and practically it only lowers signal-to-noise ratio.
>>>>> Here also i tend to agree.>
>>>>>> Since information about the actual defect in hardware description is
>>>>>> reported, the problem can and should be avoided, the handling of a better
>>>>>> hardware description and dealing with any kind of complexity will be done
>>>>>> in the CAMSS and/or CAMSS children drivers.
>>>>>>
>>>>>> If you need to get a bit more formal point of view on the matter, I'd
>>>>>> prefer to see descriptions of hardware properties organised in a tree
>>>>>> topology rather than in the originally proposed star topology. By doing
>>>>>> it the system complexity is reduced from N to 1.
>>>>>
>>>>> Maybe I'm missing the whole picture of your proposal, but I want to add my
>>>>> point of view on this matter.
>>>>>
>>>>> The JPEG encoder HW block has no dependency on the other processing HW
>>>>> blocks in the camera subsystem
>>>>>
>>>>> It shares resources like camnoc, clocks, GDSC, etc.,
>>>>> but does not share anything with the other HW processing blocks. For me,
>>>>> the JPEG driver should not have SW architectural dependencies on CAMSS.
>>>>
>>>> To move forward there should be a clear answer to a simple question,
>>>> does Qualcomm JPEG encoder IP belong to CAMSS group of devices or not?
>>>>
>>>> If no, then JPEG encoder device tree node shall be located outside of
>>>> CAMSS device tree node, all resources needed for JPEG encoder device
>>>> operation get their descrition in this stand-alone device tree node.
>>>>
>>>> If yes, then JPEG encoder device tree node is a child of CAMSS "bus"
>>>> device tree node, and only resources specific to JPEG encoder device
>>>> are described in its device tree node, because other resources are
>>>> already described in the parent device tree node.
>>>
>>> 2c from my side (for both sides of the discussion). Please keep it
>>> separate, if the block simply uses the resource which is also used by
>>> the parent (e.g. there are no special requirements on the AHB or sleep
>>> clocks) or if the device needs to actuall cast a vote on a particular
>>> resource (e.g. for this to function at this performance level, the MMCX
>>> needs to be at the turbo level OR for this to function at this
>>> performance level it will use 123 MHz of the AXI clock). In the latter
>>> case the resources must be described as a part of the device.
>>>
>>
>> Even this "description as a part of the device" might be not quite
>> necessary in whole, let me try to explain.
>>
>> No doubts resource usage policies specific to a child device should
>> be naturally described in child device tree node, and it's applicable
>> to any kind of hardware policies (like opp tables etc.), but a list
>> of needed hardware resources still can be obtained (also by a driver)
>> from the parent, whenever it is found applicable and unambiguous.
> 
> If that is the intention than that can be done without significant
> changes in the jpeg driver.
>

I won't expect any complexity on driver's side, but firstly it would make
sense to get to the agreement how to describe hardware in a proper way.

So far I haven't seen any technical objections to the approach I promote,
and since it gives complete and simpler hardware description, it might be
preferred over anything else, it's still under discussion though.

>> This is to separate planes of hardware dependencies and policies/controls
>> needed for hardware usage.
> 
> Currently JPEG is part of the "camera peripheral block and support" (CPAS) in
> the "camera subsystem" (CAMSS), CCI is there as well. Then maybe we should move
> i2c-qcom-cci into CAMSS. Note that CCI can be used without CAMSS, and it can be
> used for some I2C peripheral devices which are not camera-related.

Pracical usage of CCI does not define its exact placement (grouping)
on the SoC.

> Also, to reflect the exact HW configuration, maybe we need a CPAS sub-node.
> 
> One point of view: in the hardware configuration there are no dedicated
> camera subsystem block (CAMSS) registers (based on my knowledge).
> Those are a group of HW blocks belonging to the camera subsystem which share
> some resources, including camnoc, clocks, GDSC, etc.

There is a number of dt bindings which introduce "Camera Subsystem" term,
see qcom,x1e80100-camss.yaml or qcom,sm8250-camss.yaml etc. Whatever it
is, and if there is a justification for such device tree binding to exist,
it sounds it should be rationally and prudently exploited, for instance
this node already holds phandles to "shared resources", this cannot be
removed, but fortunately it can be reused.

> So, based on Vlad's proposal, the changes in the different drivers will just
> be about where they take some resources from (parent device) or the current
> device â€” so the changes in the drivers will not be significant.
> 

I hope so, and my anticipation is that dt bindings will become simpler.
If one day it becomes obvious that the properties I vote for removal are
utterly needed, they can be added without breaking dtb to kernel ABI.

-- 
Best wishes,
Vladimir

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 AF005371899;
	Wed,  8 Jul 2026 21:21:48 +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=1783545710; cv=none; b=nfdItxbw50iND3JbR3xpF6QUq90bFmBZPNEaa+1FYJQo72z5vG807CwPReiQba1/ZEJsSAj2PODweiYSRDiJ2P5yQlOqDer9zr96IqErPvX18YS/jpsyR9Umy5B2Cx1nxooA56zQysPkdhIJuVnyZ4utxn4sYVFeuAwTq11/VR0=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783545710; c=relaxed/simple;
	bh=FLc6lJa0blijyZGmnuNxFGNVMvBPEdxs+/wUUWYbLcE=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=lL3CwavM3MSwpTZQJNOGbfOSeaauABKjmuN++v8R4qdjHehC0luHTVqe0xs2Kw22KukIom21CBPqNTF2Y+HxoWfL4t0SVt8qP3vjdXTfjMlgNN0B4hAtzqx5KFSR37hsBZjXJrEZSsJEWQR9E1OGGsyPF06u8zGrqWG02L/rEto=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NoNy+n6y; 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="NoNy+n6y"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36DC81F00A3A;
	Wed,  8 Jul 2026 21:21:45 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783545708;
	bh=eui37Vx1xu6JVhgSmO2/BwFhQk4xpqrRpfAVH+9sxmc=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To;
	b=NoNy+n6yF6ecxsKI/epGNS0JXqa625XHCKba5KV3cttFMlHkl7ZrmLbMW9Ji8sBo0
	 95MjF/WXZWDoBWbCn/lsYaToIoBx085Vmp0mywa0RbHvNtoJjQBBiaJ+Cia1Uk6ga5
	 wGDViTbPet9X0dFtX94nOBSazz1QVejoD5gT0RbbIAqDMTvn/bw9jPPB02Hq95fX/k
	 u5fWx3fiQwbEfCeIo5pnHjInduTCAMXTfA/PW7cZ3uMJ2PHF4yO+E6YfVKcNfA8v1Z
	 aToueVLVneRP7dvmtHp+4d+NycMAOc9/VoVVqkqYz8hHMCy5o9hTGixWJylztE6QpK
	 VbFNdbJ4HwwTQ==
Message-ID: <54ad9b8a-7596-4bc7-a1c3-7230cca21360@kernel.org>
Date: Wed, 8 Jul 2026 22:21:43 +0100
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
 Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>, linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
 krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
 konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
 linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
 Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
 <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
 <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
 <VoXmpDKdgY_XxAvO5tkDze4jpmMzSuKTmIISTejJsbIO_FIO1JFfUBlaPkNdb14E95zf_qwtDB6myQ2wdRCh1Q==@protonmail.internalid>
 <8fc1ddfd-0f77-4b67-b9bd-33fbd60e2046@oss.qualcomm.com>
From: Bryan O'Donoghue <bod@kernel.org>
Content-Language: en-US
Autocrypt: addr=bod@kernel.org; keydata=
 xsFNBGRJNSgBEADD7Vm2ZFa+v+JGJ2QYTJqQAkqis/uOHkhdFNXqpBarVBd47QU/DMNU5Rxg
 jedMQEmHoeDbJ6UOpjbrUQ63c5sgG1JbroHJJctwsEI75OOlekMuebEbjIJBLfgENGwPBMHv
 piv5TgCWr0VgYaXfp2eh2LINFywzqj823HiDPibQAXDrjzvF1ogksi/6cQZs8d4if8YQkLOr
 YISFouG+eR0nN1I7mUfIddXOWu6lJeTyqbWVurv58k2ekIXKaOC9ixLHFbcfYV0hOgRaTwQC
 B8CYF9nfqZla19iItfsN9QxN+ZdQjcRoYipp6HPCMfJlKH7GfaFcW93LKc4DKJ2lVL+pg/OQ
 lythZbjRPY492NG9kZ65aYstCs90uhMUEVVPuGUw7wBEku+6IEwZfrbMVKeWzLlPyM4Hv9hM
 8ktxSmxWsPTPqpBC8eyeAQLalMELAyVcZlkaCtEcbj7w4l/JkYz+4l37obG8ZD+B34udBUUz
 MsAJ8foDFrBh2MOFA3hxD6G90D23mmWsri7pnKA2tZs92aQX7Ee+FbCyg6g5ln62Sq83ZDbf
 53DdBs55EVpBadeInWmXhzCHPQx06H+CwTEjShTYIaMmBfrewvYUDKvFTC5iKQhAEUgt6i94
 JsbG7NoeqcxkUMcBOEUQ3uCQG1D70ugspgXc0wd3Rimiq6535wARAQABzSFCcnlhbiBPJ0Rv
 bm9naHVlIDxib2RAa2VybmVsLm9yZz7CwZEEEwEIADsWIQTmk/sqq6Nt4Rerb7QicTuzoY3I
 OgUCZ+R+mwIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRAicTuzoY3IOimUD/94
 BwVEJX31JRe2sxbB/e1w2p8x1bxvTw5AeIzpV3ox7coJg1bSU2mnGuj1V4o0Yxf/3zmcJzCN
 VfVjwRF8Ii3GnC7uUXk2t+87piQfKTyJAYQABhZUKgoVJbjJq/S+C3XCKIyBA+EiezoUsgsA
 jTzwU+FzV7zVWIXFPJNtBERLwboE9w9U3KjAExOa1kSY8eLrsg6kOwlOHWy5UsQqYOjrS96M
 mzm2xuc1+RCjrndAyYhCnrOKvJ67HsPnBeJCjw7ImGD/U1GchwYbX8o3DO3JNHm3qfC86ZqX
 2sCouENg4OzgPTtLKUrueM6xsu6KMM7gj17vxsiR3KQEoJnnMB8D1xtBofN3mFZE0wD9M24m
 8yGunZbtntMCUHzIrlJgAPwKWKuGOYtA8UgMTFkccnUJtQrg9KotKtEF/FuftG9zLG9XEkt4
 5ZdNgbSoLWgelu3T47mbOJ8LHhiLaCWP7yrovtVAvLUQ1BsiA42u8ECrFCFvQj9nrejE/ICv
 kP+uqcKtdDvP9HrIGycF1WZyfZLp0RvopKW92FLvI4I1QFWJ+wenk6+LGyJ5bzlrWzevjxmf
 nHcXE6sJBHrE7eijlbbImDAi3uLYN8Nd9Dm11IDAy4GAIQxSiQn0yblDhPiyGtchy80EVkCm
 g9k17Wol+2E2mC4DKgVdCkyUtTRSLgsJCs7BTQRkSTUoARAAuTnmWHBS6izRcEE93ajpzI7h
 dgQO4U3IRvOEsvIKR5NGcNEs0ngGebwsZ/lVULjN4vYU0LleqVhPBidNXUoZCN3A0F0Z2Ov8
 NZdef+2EhQPBVWxFO7JBzhe8Z3ALj+wFtlg8akJjBzU56azW/iJzAobqHVrudzKoO2b1/CMg
 VbiAQ+RXjgfN5kY/HqYDU7mw+hXuUV9PbtX1L8xqQQac95oM9rHzKHHpiVwxTeJnGQsa+THi
 Kze+YET3rCoGHMvOQEJhdrucTv5FpAakKdkOFNel9FFckLRKEuWgCzhpFsjQ7xbirQgFUxG9
 vlk1+q4hMRGNyEqoD6svYEeqbiUSd0oPUJeioiC3rNMRCNHLVrfZ2J6SCPkxfda08uzSdDQU
 1/YPjOh8ZtQDMu7WctZ3XO288Z1gyBR49V7fbFs2w4sQxG+h/enlxqP7fdw1mjUlZjU5huCJ
 ielS0oEaIpmUpkugli7x4WhwLnhK2EbSoz7nLBC0y+ALUOdMlz/Y1l9xRt+bkDhpmf4O4IcI
 MxgZ0QMLq8rHDkGaEbsgZZHQPS58T0XE3IP30Q9SNxsruCMXtd2hYtBssf/wohc6JVsTtMg2
 VYTPDPIFNZFSXupEJB7jlqpDWJ8ooJfJRLBatbjT5+mVQaMYB7Hs/t+zWYWaJKHyc8O6WLEC
 NUV5Tdt5EkkAEQEAAcLBdgQYAQoAIBYhBOaT+yqro23hF6tvtCJxO7Ohjcg6BQJkSTUoAhsM
 AAoJECJxO7Ohjcg6LuIQALnXt36OUuK43wqw6UYt0cnN6EbUqJHApAF5eNFn0jCCB2XELjSz
 JKJwuNAweowBdabiBniJ+501WIW+ewEsz1uby5fUQjZuCEsIkuaIluyfUFPb73qrQyAGuusd
 7teA4WT+/jUku9g7lX5sVoRCrKQPkd16f6Bzfztyqyjcn43/X5yQI+wlboQ6HuKe/3I3yiOx
 OgmCHzOawpC9PvhEcKj79RLM3Zz5Ts5AuHpRX70Jz8Be76LwVFLp5Msx3S24ZTU1lBo2uiJ3
 xSkay2lTpyVWRPx9vgcwzxGguOPJQJwsQeLb7wpoJMPpD3ERoaRii7Q7hvmxklpZjhKYWB3d
 t6nQ497Ek9loCrp3MIjRCSDN5xEGffiHks9yTeGMUQwO4tX8RE04uOJPkUY7uCFzFqN6/qey
 X3oFfPgkULMdiHofPAL1OskZSTzGPSfTYRE46NCJw8yoZBQ/oOyWeqaUQbK0wmW/g81wm8p7
 LKSGEglMpiX07M1AotgvylN5C8fjbouoK+/RAMsXkk8jba6rPfuuXPaDjCyyKn6zSVHETnHW
 3AJbgVY50T8STpnxayBQvWbCvu+6NOEjXCbyaOJig+5l0zlGN9XHjdANXC5HnwmyaGRL9YDq
 Jh2nVXVJDincOdQRdKcJjYLqaOAoWrYWSDi1iZGspHBTDrnOvfMQzzHY
In-Reply-To: <8fc1ddfd-0f77-4b67-b9bd-33fbd60e2046@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 08/07/2026 13:19, Konrad Dybcio wrote:
> On 7/7/26 12:41 PM, Bryan O'Donoghue wrote:
>> On 07/07/2026 11:11, Konrad Dybcio wrote:
>>> On 7/7/26 12:00 PM, Bryan O'Donoghue wrote:
>>>> On 07/07/2026 10:24, Konrad Dybcio wrote:
>>>>> On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
>>>>>> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:
> [...]
> 
>> OK, I can see how this thread is confusing.
>>
>> The idea is to start to declare sub-nodes "on the road" to making camss into a bus. The legacy binding we have is really for the IFE domain - that is CSIPHY, CSID, IFE.
>>
>> Right now the camss binding describes those things - so linking say OPE or JPEG back to the thing that describes those isn't right.
>>
>> OTOH we_want_ to make the top-level binding into a bus, we've discussed that several times.
>>
>> To transition from monolith IFE-domain only, to camss-bus, we should have the sub-nodes fully describe themselves as "camss-bus" doesn't exist yet.
>>
>> Once we have compat="camss-bus" then fine, make that linkage, I fully support that.
>>
>> That roadmap BTW is why I'm asking Antanas and Loic to make JPEG and OPE sub-nodes of camss - but make them complete sub-nodes - power-domains, clocks, nocs, including the TOP_GDSC.
> I think this needlessly increases the amount of combinations we'll
> have to keep supporting down the line (with a ton of compatibility
> boilerplate code)
> 
> Konrad

Fine.

Lets drop the bus idea then. I'm happy to close the conversation as 
peer-nodes.

camss@{
	existing CSID/IFE
	IFE SID stuff goes here
	power-domains = TITAN_TOP_GDSC, IFE_GDSC
}

csiphy @ {
}

jpeg@ {
	JPEG SID stuff goes here
	power-domains = TITAN_TOP_GDSC, JPEG_GDSC
}

camnoc@ {
	modelled as an ICC provider and consumed by
}

---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id D483A366048
	for <linux-media@vger.kernel.org>; Wed,  8 Jul 2026 22:30:17 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.48
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783549819; cv=none; b=W+l7coBm+5v9sB7nNve1oO3jUVYLruQvVagBr/56f2zz6CjxUJ+FqseUBcufjWSmQ01HwP8YcNhsVS94Q5J5Gu/fujFp8cBh7MKjihhd0BrkK5gW+Q1QPVXNV4pfaJI8t05YRW8zUp2SHkBiJCe6R2jv2neW/DYPfngZhuoBONk=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783549819; c=relaxed/simple;
	bh=Ucy2b3MPSEnBCBhKVkHMWhghZFra35xFFNj5Qb50XsQ=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=RDWDmI3dvxVNhKYeSzo4ZcZzIbjP8uXznHRA4af4hhEk3paT5PwmP0xKFm9x0DPXHhJWc26O+bJtGAzNYNeBDGNBYM/i3dwE4VEXVX4IWUCMHttWKR+ptQS25Kl3WQlL7qSDpYXFrKE1C/b0Wy2gsNUCki8Som5X21yn6fJxvPE=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Lqi1o7+w; arc=none smtp.client-ip=209.85.221.48
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Lqi1o7+w"
Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-475417f010dso546311f8f.2
        for <linux-media@vger.kernel.org>; Wed, 08 Jul 2026 15:30:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783549816; x=1784154616; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to:content-type;
        bh=90IOI9EUyLOw2eSiEVVHF1LKd1Sg9MHQdR1C6WQNJ10=;
        b=Lqi1o7+wVIWB3ifqgsn6xdp6t1KqFZUP2XjUycj/9SQqPoQyi7tZLKo+a9JxKQ8nE9
         116s3PnM7+hBDGuQBggD3Wl5NUaISy++kYlfeg7TysKuENF+6gJMh6m6lzX3EDRsdkc1
         g2NPTSLcja1Y4bA7pJytWr0d0g3AZdDecJl5fHZDSNkwMmLdHWJeSoPs6u8UFtrsz+yW
         zaspY21tFQdqgD0nZG1vAJRNcYuQodKA+jTPqkLfISKsK2EVgM22nOHD//qvP0wuR20O
         nE4ymz1SMwv37kJdeWZQ9Fw9ArOvqMfFAVoZgHAbOnPUxwDpBffAUxKO53V2zSKjmiH5
         o6BA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783549816; x=1784154616;
        h=content-transfer-encoding:content-type:in-reply-to:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=90IOI9EUyLOw2eSiEVVHF1LKd1Sg9MHQdR1C6WQNJ10=;
        b=HmxYdbid5d5vBOU0CvE7UnPgAQkNfTO4wSZ0shQ4bFJmZWTerGiGuw/rE1bAyMUbYw
         qKLyC4qgS0gW1YL++noh4SmomefmgZORl+EQNCax5T3JNCDUcw8rN9+UwHsU1MunFQKh
         VUQHYIXFOTtm2U4ukimxbjDb6eHERDIvEFjQ6psC08yGT2CxS8Jifgasavw/X4P3544B
         r7jsUtAf60IO2BzS+UnaReiqUaXIu8x2zZFPvnOG3zU07PE/mz/mJ+Eq0f9+hNJaBgmC
         H9uxnOpTmtrafJER5RDBQacawADQC0UE5nPmDP+YunsfZFs43/U/NFYJZK1VwdEdonwn
         8Oxw==
X-Forwarded-Encrypted: i=1; AHgh+RqWBqf+3eJ/kD+m5DXjebeHgtDrd7timFU0SRbI6QEZpHEPOqg1QMnXo5Y/hrBbCC000PSU6qv+Bip1iw==@vger.kernel.org
X-Gm-Message-State: AOJu0YxAnXogc2xLfYb0ptzSA4+VNeJxryeRn9CeobQSjkOANE754yf3
	8sOlXpOquSdj8nHZ+ZZ09wQiNvsD0Ttw0zcHSktipg3ssUIh4VuSv9Mem3LkxAGpNl8TDhtYftx
	ByhJu
X-Gm-Gg: AfdE7cnx896BVqJJlZbOlyqToMNsXAZFySOM0WH4Qv6y5CCw+LNVwqOZkn5vrNiehhj
	dkMZVmWIMymj1EyNF9vmlF+a6fDzHE85Js21l8jqDyw/f+FxjTheeGZzEGdIm7V2LFOLwo5Mbuv
	VWs0xdpbsn/dcNMWzvUzhvIXb7xPEisSq7rtvV3tNp2WcN2gcEbXYoh3za0EIMiXCEzh7305T+e
	sQeA4X++v+a+uYiqG5gpURt28Stlv7n+6HA+DqUtqMlefxYUlUEZiVQJAc+Ne79c/OuqwIJLRch
	C/+PE0xScFvCOOSzQaRm+7vBR99r/ocJMsMNMEBMcyza+o4sXgRBVPyFzkDCw2OIVtUr1+dv1bo
	lJktr2znVpKU3kgaosrNLM973aeftJf4S4YFQ//xnbhp6GcW52dGoIO6vzjQAiqVyVdA2PaLxn9
	KxYfQ2ksK4Ksz0InlzHK03W/Rl9d4zaY4KLuaHlw==
X-Received: by 2002:a05:6000:2013:b0:46e:624e:3c2f with SMTP id ffacd0b85a97d-47df077b2e6mr4491121f8f.47.1783549816190;
        Wed, 08 Jul 2026 15:30:16 -0700 (PDT)
Received: from [192.168.0.101] ([109.76.204.255])
        by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47aa0960634sm46711271f8f.26.2026.07.08.15.30.13
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Wed, 08 Jul 2026 15:30:14 -0700 (PDT)
Message-ID: <d579ffd2-b99e-4e8d-b2b7-e7e896b2d71d@linaro.org>
Date: Wed, 8 Jul 2026 23:30:12 +0100
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices
 via DT
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org
Cc: vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/07/2026 08:11, Atanas Filipov wrote:
> From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> 
> Use devm_of_platform_populate() so that child nodes declared under the
> CAMSS device tree node (e.g. OPE) are automatically instantiated as
> platform devices. This is required now that CAMSS is modelled as a
> simple-bus and ISP blocks such as OPE are described as child nodes.
> 
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> Reviewed-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>

Looking at my commit logs I see this isn't my commit message ..

Anyway.

> ---
>   drivers/media/platform/qcom/camss/camss.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
> index 2123f6388e3d..95e655a8b6aa 100644
> --- a/drivers/media/platform/qcom/camss/camss.c
> +++ b/drivers/media/platform/qcom/camss/camss.c
> @@ -16,6 +16,7 @@
>   #include <linux/of.h>
>   #include <linux/of_device.h>
>   #include <linux/of_graph.h>
> +#include <linux/of_platform.h>
>   #include <linux/pm_runtime.h>
>   #include <linux/pm_domain.h>
>   #include <linux/slab.h>
> @@ -5362,6 +5363,8 @@ static int camss_probe(struct platform_device *pdev)
>   	if (!camss)
>   		return -ENOMEM;
>   
> +	devm_of_platform_populate(dev);
> +
>   	camss->res = of_device_get_match_data(dev);
>   
>   	atomic_set(&camss->ref_count, 0);

Just drop this patch entirely and model JPEG as a peer of CAMSS. I'll do 
the same with the CSIPHY and Loic the OPE.

Modelling for subnodes is nice if you have the idea the camera block 
should be a bus.

But for what reason ? As you pointed out it should be possible to both 
compile and run JPEG without the compat=camss node on sm8250.

Making the camera block a bus is a nice idea for "reasons" as this 
thread has shown, its a problem to implement with an upside we struggle 
to define.

When the facts change, I change my mind.

You were right to argue to have this as a peer node. Lets do that.

---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 0F6793A8384
	for <linux-media@vger.kernel.org>; Thu,  9 Jul 2026 05:41:05 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783575667; cv=none; b=lxmEfqAarISUSP3AxsfUD0/wvRkJfzDNaU9hE5tthHX6/xvdIaGCWywEwN9H9ptxEwPPkv7CMI5Ix8hGQFAHAToNxy60Sv75se2CAGxujryVeT8nyqK4IWP4LOZnTnmJSUKYoiLVGPHakueb9LfBb9ySGNQX6BtlEX2nP2Ia3EI=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783575667; c=relaxed/simple;
	bh=quwu+cde7ba9hLMTE61fx30w8O+wPuSVUmWVKkQQ6Os=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=kjjjKkMxDvBVy5vOowEnQ1oQ3WTypBMGtEmv9oib9zVrcKllEcSh122gQLSLizdKoXI5asBXEaW3v7691IVRV6OjCi4qpMKT6W3SIDi6qpHgHNKZ7xBzkFZ6W3HOKezpbLppiEfU059xq7fDIPmxBHE/bdYZxSoHzzHNFo0Ht1I=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Q2fsT9wP; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=c8WAFPMZ; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Q2fsT9wP";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="c8WAFPMZ"
Received: from pps.filterd (m0279871.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 668N8jYd037298
	for <linux-media@vger.kernel.org>; Thu, 9 Jul 2026 05:41:05 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	HZLxGrfv7jXMYi1H20L/RrftdACB9MvmvKJ3YlkaKUI=; b=Q2fsT9wPtj5O6eRf
	E8YJCbyH/MIPaL09nP/thMyB4RchZvgx+2eccLjmGsS1+nPAJ7dyc1mG+TvYYI9X
	L0FeCJrYXfHINLWu4iZdPSXh4/CCtF4mTNWPYloLIJTf9+hFmw/9q4zD6/dnWFXr
	Y3dq72GI3qhfIwgCJSEr3+oNJxmhtVPv5ROaGfyqYFz0C+tjXiVZsduiV8k9IfjX
	+owwq/+zQlaegU7lx6y2sRPsacyA0Li4fQEJ1A4Wb+9DtZVViP0X5Mb7e/1F2hk1
	I9luw73dq8OwQb00etk/lfbwmT+Lu6GBRP+4DIRJCFIiQJJ45ullW/QDvHEJc5j2
	Gw/R/w==
Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f9ug6j2q0-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-media@vger.kernel.org>; Thu, 09 Jul 2026 05:41:04 +0000 (GMT)
Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c12e43b98so19115531cf.1
        for <linux-media@vger.kernel.org>; Wed, 08 Jul 2026 22:41:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783575664; x=1784180464; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=HZLxGrfv7jXMYi1H20L/RrftdACB9MvmvKJ3YlkaKUI=;
        b=c8WAFPMZvO3N8GxXsjfTBvd8CzHXcyG/CRRBp2lGc4urhXs6OcAteuGhkkKSi376Fa
         OwXwkt0j6g5kqyL/pqJYLpqOtd/IPSrd6rzu+YlbCPJVjEtwX/R0/cmHdLxhJrtJ6R7q
         ApHaQb85Jedkdz4xGfISX73+s4JHBIgem7p5KIxOo6PdNPa6TYpscrClNRCi5cGvjGix
         VT6xQgOKQRVP9bKmuJN249SpLFXEbT42mcvDI5YVQGmLvdoeFUrMtNNIkvHGlgfCNon+
         dE/VtDhu+01rdsJNa+UJQvWmm1bxeGOPlkMRAZ6yGeT+YQxYhXjQP4JKxgIYYm4gSw9T
         NtLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783575664; x=1784180464;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=HZLxGrfv7jXMYi1H20L/RrftdACB9MvmvKJ3YlkaKUI=;
        b=RvaDgufyL9TediONkEM9RTMmYN6h9hZFwD6maL28A95TEXkA2iFYff+QggVCeU6/xN
         TTCP6jLRIGtjqS9KzT+u/arII+1/lQtZahvRXO0Y+QDwN3aut6MGDBuw919HjyGVmQYh
         kPP5lxrZrKxu15brZEEbhYmdbZD/ydORj/MC5yDIpTg7QY2Hes2dpiaR0Ak1jztvxaRB
         4jMOl4jguUd9DrQNDvnQ9IumfDDSbw6wzQlndnNwy06vc0JkPtRUDt1JfZ461/y6df76
         tLFDR1F2lR7/QchPpgSCuYq7OsLLhE0rz+zLZDAlDQDuVIP0reFVe3AelZAWo2ZqM/B8
         s69w==
X-Forwarded-Encrypted: i=1; AHgh+RovOMnpdWle8ot7YssbvKXDl7eGmdLV4HtBP4yBN4KS0RWmkR/jtqO3L/caJy3CVPqIJTlsniE/EMFgaQ==@vger.kernel.org
X-Gm-Message-State: AOJu0YxRw9Hd708mjWi4tAMWD1EvSOv4GsYrqjJfUXMMw6q7mQvsL+yy
	pxIfDl5zBPSywkqzQlLirvez0sXUyPZ72xBrihosaDU0klB+DGny69G7eTuSTBPuwPy0RQFkSdo
	Y+EuaoibbssgDJXP+q9l9aENWg9LMdc63/ntCq9MynpkHYv0NQX984tg5qIZjNRLDjA==
X-Gm-Gg: AfdE7clcxgeKPPXyJPcKjNaMWdXaqugU7Qmi7pJi0nVymoNCcgZzRUzWC7qLjRCFwID
	g3G/8y3iiGSvy5ldFgUuNnLSiTjsAovdwO7TdXSk8FbrMjfCCOTdoksRgxFr7qN4ulTBfb+Zn+O
	pbNrgl/FNmWc7UjYFSoYXqMQuvdYhOqLajkR1n3OqeWgd3/WZ6klxlo4ryemnvabtmLlZ7g2n+t
	oYemM+pNWsgdSZvAywsnkGBmSdw2Vjsyu069htTnbRsgexbEZzx0ae2D9PNrLQeMlUaIbyC90nn
	RfwfEuGNo2HYdhYM//hwAbf0kGGoj0+2Zwe2LsbKhaKnVltAvus40p8EBJDwlb9ZUUiXwKaLyFO
	KKQqeM8AxS3/tHvWPv4b3ztN5Oe1yruhnO13x1CE2uBMCGRqPucS4940PgyH6m3Zu7SCxRhArqw
	xhEuoMZE4=
X-Received: by 2002:a05:622a:5599:b0:51c:14f5:8f9c with SMTP id d75a77b69052e-51c8b2e3578mr59044211cf.27.1783575664301;
        Wed, 08 Jul 2026 22:41:04 -0700 (PDT)
X-Received: by 2002:a05:622a:5599:b0:51c:14f5:8f9c with SMTP id d75a77b69052e-51c8b2e3578mr59043881cf.27.1783575663835;
        Wed, 08 Jul 2026 22:41:03 -0700 (PDT)
Received: from [192.168.1.31] ([85.196.172.179])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15e2936b42sm64059766b.21.2026.07.08.22.41.02
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Wed, 08 Jul 2026 22:41:03 -0700 (PDT)
Message-ID: <a80f9d60-e1be-45e9-b601-c47361591f52@oss.qualcomm.com>
Date: Thu, 9 Jul 2026 08:41:00 +0300
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Bryan O'Donoghue <bod@kernel.org>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org
Cc: loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <68e59764-5a10-4abc-849c-14ea2d9ef76e@linaro.org>
 <d74d7839-d126-427a-b151-ca895a27a83e@linaro.org>
 <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
 <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
 <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
 <VoXmpDKdgY_XxAvO5tkDze4jpmMzSuKTmIISTejJsbIO_FIO1JFfUBlaPkNdb14E95zf_qwtDB6myQ2wdRCh1Q==@protonmail.internalid>
 <8fc1ddfd-0f77-4b67-b9bd-33fbd60e2046@oss.qualcomm.com>
 <54ad9b8a-7596-4bc7-a1c3-7230cca21360@kernel.org>
Content-Language: en-US
From: "Gjorgji Rosikopulos (Consultant)"
 <gjorgji.rosikopulos@oss.qualcomm.com>
In-Reply-To: <54ad9b8a-7596-4bc7-a1c3-7230cca21360@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA5MDA1MCBTYWx0ZWRfX6V2fy6wIW56k
 COCYo+lLO6H9n9QTMW3DeY8Tk6juNqMLyO+b2eYDW7QFxBbwgiqaNwPlUP6NMBp0RAJ548N/UjG
 ZmYHHzx1nZ+Tfu/fzXyg4GgH2fENhhA=
X-Proofpoint-GUID: UZzOW-4AyY21k_w2fg06cTjFQMNMp1Vr
X-Authority-Analysis: v=2.4 cv=cL3QdFeN c=1 sm=1 tr=0 ts=6a4f3470 cx=c_pps
 a=WeENfcodrlLV9YRTxbY/uA==:117 a=Q/e3f29T3Hw2hnAEzBPF7w==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22
 a=CVLRNxM7UcJW-wxj-VEA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=kacYvNCVWA4VmyqE58fU:22
X-Proofpoint-ORIG-GUID: UZzOW-4AyY21k_w2fg06cTjFQMNMp1Vr
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA5MDA1MCBTYWx0ZWRfX6Si2FtGDqneJ
 9sc7xZ+CfKNMD1LQ1Wizb/7vT9blcg+ZkOMWZt4uPlOwNVs8moOSEmSToWDnrYhiBgr7ImBz5QJ
 QVY4j70PrXwk0pNaCb0Zd0FInBV4MW4bxirQSYh4ZJn5H87AbgBGXR2OBuIutciXWJOvGYgmfc0
 L8EMAPoGFYrieTbQRREIRR0IdzI61yXDJOXluXuAS61QC503UZViYGxYknHgzIF2yYk/UZ/Q2t+
 uWM5rNOiJO3HdwzajjopmTtDIIgpMdRvYXToN3VLyOS9iBffPNqkuRfSRwqM1WRaG2h3DlpDrj+
 9Ln/KOkQ4oMHR8P7rYlF85Zbqkk98W50GiaxVzyLu1brl+D5kR503sDB6+MaRxqkjTeXygZSn5b
 EV/mhIeToCyM8lUBsWkC1j6we7RlKe4rZv8Xgx47jCYwbLH4sjT/tigV3PHebzrYeayB9NUQw/+
 QWzunqKqM30rHSDZGZA==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-08_05,2026-07-08_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501 impostorscore=0 suspectscore=0 adultscore=0 spamscore=0
 phishscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607090050



On 7/9/2026 12:21 AM, Bryan O'Donoghue wrote:
> On 08/07/2026 13:19, Konrad Dybcio wrote:
>> On 7/7/26 12:41 PM, Bryan O'Donoghue wrote:
>>> On 07/07/2026 11:11, Konrad Dybcio wrote:
>>>> On 7/7/26 12:00 PM, Bryan O'Donoghue wrote:
>>>>> On 07/07/2026 10:24, Konrad Dybcio wrote:
>>>>>> On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
>>>>>>> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:
>> [...]
>>
>>> OK, I can see how this thread is confusing.
>>>
>>> The idea is to start to declare sub-nodes "on the road" to making camss into a bus. The legacy binding we have is really for the IFE domain - that is CSIPHY, CSID, IFE.
>>>
>>> Right now the camss binding describes those things - so linking say OPE or JPEG back to the thing that describes those isn't right.
>>>
>>> OTOH we_want_ to make the top-level binding into a bus, we've discussed that several times.
>>>
>>> To transition from monolith IFE-domain only, to camss-bus, we should have the sub-nodes fully describe themselves as "camss-bus" doesn't exist yet.
>>>
>>> Once we have compat="camss-bus" then fine, make that linkage, I fully support that.
>>>
>>> That roadmap BTW is why I'm asking Antanas and Loic to make JPEG and OPE sub-nodes of camss - but make them complete sub-nodes - power-domains, clocks, nocs, including the TOP_GDSC.
>> I think this needlessly increases the amount of combinations we'll
>> have to keep supporting down the line (with a ton of compatibility
>> boilerplate code)
>>
>> Konrad
> 
> Fine.
> 
> Lets drop the bus idea then. I'm happy to close the conversation as peer-nodes.
> 
> camss@{
> Â Â Â Â existing CSID/IFE
> Â Â Â Â IFE SID stuff goes here
> Â Â Â Â power-domains = TITAN_TOP_GDSC, IFE_GDSC
> }
> 
> csiphy @ {
> }
> 
> jpeg@ {
> Â Â Â Â JPEG SID stuff goes here
> Â Â Â Â power-domains = TITAN_TOP_GDSC, JPEG_GDSC
> }
> 
> camnoc@ {
> Â Â Â Â modelled as an ICC provider and consumed by
> }
> 

I vote for this as well. For me having resources at parent side which are already referenced counted, is
not justifying the complexity we are adding. Another argument is that i don not like the exceptions, either
we move every hw block as child device of CAMMS including CCI or go with peer-nodes.

~Gjorgji

> ---
> bod
> 


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 A86EB3E3DBD
	for <linux-media@vger.kernel.org>; Thu,  9 Jul 2026 07:34:01 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783582443; cv=none; b=sMtkThwOZLGboFJsZqtuzfvesQJFzlbCzTYKgHpiLo/Go4m/T54/t7ZfbSo82GKckpHNGYQcIGwCRsqn5/XOGJIYKHab/kYoHdvmj1fW8hjU63pbrPruA7vRxA1uo7t5FZDYJzlD6/zbdSUlVfNzEyJ2skWH7cangdio1c2Nd9w=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783582443; c=relaxed/simple;
	bh=Kh5FwszJ4LfJwQ6A/zoYZ4qba9IWmXTwdyA5zZmva+Q=;
	h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:
	 Content-Type:Content-Disposition:In-Reply-To; b=LLQynGy9UpZA85VxKXn67+8frdNcx8mCNmhjnshkblT38ZeuB3oJvzMkCSqWEJENNoJ8hdXzAYLE3TypDwohaVwb9/vMMsfv8dnv4Q0777pmmQou7safTMk5PTki9zjzDq/nPX+tj7VPFfL/X7Km7r97kcJfaOtgt3CHZAXfJhQ=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Qr9ckc5a; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BPwHheq7; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Qr9ckc5a";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BPwHheq7"
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66960a02837474
	for <linux-media@vger.kernel.org>; Thu, 9 Jul 2026 07:34:00 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=qcppdkim1; bh=Rj6P6226UzjkYIgt9Mf/cOyc
	/GcJxd9MKs8WkH4Ew7Q=; b=Qr9ckc5avzQWZ1W8tZnYumyupzdwE+MnUwWtdzBA
	ufgQsYkesNE3AIDfsX8J38UlEqhL4CvcZbUgLfYe3xOMqX3UAWwwg5IS5JpZNMm2
	v18IWWZ3U5mDggPrEgQhnZzpVgXWtR2NwSa1SHh7Q2A3apqgJj2e9vg/wYWMgIHD
	EJLf+M3x2T9XD64jd9mqQMjVLZNluoV2V8cPRyh+Q39mFIVgc1nMnaJUXcYk9UU2
	D1LKNLerrMssom56HxR8Nvrrk2YbggcDkrXZkAgR8fwSsx9I1W0BachGwEzT9KlV
	EQ7yrsVx2FXjv2XaFt7/rJ3Gk37HPJv8nGNF86T9zEeShg==
Received: from mail-ua1-f72.google.com (mail-ua1-f72.google.com [209.85.222.72])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f9sqwaxra-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-media@vger.kernel.org>; Thu, 09 Jul 2026 07:34:00 +0000 (GMT)
Received: by mail-ua1-f72.google.com with SMTP id a1e0cc1a2514c-969208e497eso1514542241.0
        for <linux-media@vger.kernel.org>; Thu, 09 Jul 2026 00:34:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783582439; x=1784187239; darn=vger.kernel.org;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:from:to:cc:subject
         :date:message-id:reply-to:content-type;
        bh=Rj6P6226UzjkYIgt9Mf/cOyc/GcJxd9MKs8WkH4Ew7Q=;
        b=BPwHheq76GVDW+akrAI8qfVUAOhfkdg+1NGSy7h/Y+h5HscPEIwd2zju7g6JpxrWTm
         Kad5cNn5Hw2tveTuEZpiStgvnw2wP5S/btvT+yQWGEl5Pwc8P+MaSqyuWDbRYfVfKdWC
         P6VsPFaMGhpEc+xEHPQ8AyPWuW+Ooj1+VNHSm2UB6xQcxqIU90d/mIoyLIx+/UTdCPC7
         sJd6N0GbfALHIoUb/S/ShUzkkbC3kewCfYo/KVGnHsLBQDutRrbxRg3t+iLJU30XOvaH
         NlgsLbuyHMUb/25ySPlu9Zs4WhYOKLWGCzp5QzIUSUXOg9smWIhu4waHoE6GVIJHjhyp
         cq0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783582439; x=1784187239;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=Rj6P6226UzjkYIgt9Mf/cOyc/GcJxd9MKs8WkH4Ew7Q=;
        b=Ih4Tzm/hL96XHkVNBNjVq8oK+otf2SAPYhW+PD9ypUMfMEBiWQ1XpRHCho+6JjaLTR
         Iu9rf8nkJGHdQLXQ588S/aj8gTWswqWUf0D3GiCd/FMulErFo86dvgTw2STHAmlZeTm5
         NFNj9xSOKqCOI4mA0cGtcWHMS8wVCbH0ADCLIPJsqFtGvahVeH5J+mkkHZ1q22hxC0WT
         pWMOCFRJcGzJU9GLHftOjl5vk0S9ykKTN5BYnf56/LEBP1kGM1yOMYCcpViLU57JgALD
         JT8hP347jrbmcE/ov/HAPUXA0hAjm+nnPRRMWjdk8UKSDfyKuE8FJz6zNkP0mGSNkv5u
         cpLQ==
X-Forwarded-Encrypted: i=1; AHgh+Rp/siLu1cmzxh/FMHPZ28gDvP33TjdU6NJUwYkptYQYC1tzQgI2CKd8RCfsis8m1c3pPkkOKA7TYjQL/A==@vger.kernel.org
X-Gm-Message-State: AOJu0YwxeX6wLTMMn/R8PWit8c4ntUo7sPaXwQause0PCZl0dXmKdcSN
	91hFTs+KvT3hAYT5T8sBiwqZ6bN3gxDzDrU8crb62trotnaBqB6jKEL1thmAVKJd7GjwfaWSKVq
	nc41Y+AspxNmfxWEHXLuuYUqAc5i+vBris9Jh7dQjDe5ojAytgnFCqHAp8S9lrJubWg==
X-Gm-Gg: AfdE7cn2fIGVb4heESjNXVg3pQzh4ij2gJO0pfEfMZX1sMPgIiiGHbVRAi7+AhdQ6Xj
	7FJLM6hWZRgmx4p+zz4oHikVfW3Eh34BBFm21kr++8YivN3Kkzud6mPq0aOcgjRK1Fh2pogn27c
	vor1CDN9eY0JyWr8sr0qKOv57AkfhV9KHJt9hagZa+mvGo3JeisKrK3TCdLMh2Jo1tJlYb5YAMn
	QTe5xE8CqLu+7Wh4gZLUt0J9v7fp1LnlBIUoFbgDOnYruC4HKhpWUCFRfwHmBfc3RQOP8VgS7z4
	mEe31Pn90Xukar0VATZk76HiJ12C7uK18rOH98uK3m9uNtfmLPlQElRSg5qAeGRlvTmM0Qu6IRw
	nzdGMoUr57xSgE1xhinorsVX8lWdfmC8y532/Sz5KARfz8G1PTIuvpaWkYmFEboMjlWh8BmMNC/
	eFl71ZvmnxNgxA6zZ76AZ1QmWI
X-Received: by 2002:a05:6102:b02:b0:739:5cfb:50f4 with SMTP id ada2fe7eead31-744dfd6fd5bmr3646387137.11.1783582439466;
        Thu, 09 Jul 2026 00:33:59 -0700 (PDT)
X-Received: by 2002:a05:6102:b02:b0:739:5cfb:50f4 with SMTP id ada2fe7eead31-744dfd6fd5bmr3646375137.11.1783582439078;
        Thu, 09 Jul 2026 00:33:59 -0700 (PDT)
Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aed13c3a38sm5058764e87.74.2026.07.09.00.33.57
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Thu, 09 Jul 2026 00:33:57 -0700 (PDT)
Date: Thu, 9 Jul 2026 10:33:56 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Bryan O'Donoghue <bod@kernel.org>
Cc: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
        Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
Message-ID: <wbjec4qhzkpvdfnrvffk7tjmlvli5q2jiuzdp2iqt2cbf2uat7@usg2mizurxpp>
References: <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
 <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
 <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
 <VoXmpDKdgY_XxAvO5tkDze4jpmMzSuKTmIISTejJsbIO_FIO1JFfUBlaPkNdb14E95zf_qwtDB6myQ2wdRCh1Q==@protonmail.internalid>
 <8fc1ddfd-0f77-4b67-b9bd-33fbd60e2046@oss.qualcomm.com>
 <54ad9b8a-7596-4bc7-a1c3-7230cca21360@kernel.org>
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <54ad9b8a-7596-4bc7-a1c3-7230cca21360@kernel.org>
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA5MDA3MCBTYWx0ZWRfX36M5Nkl7tuQH
 ti4Nwtn0czgVzgI/L8jWT3ToVro2DkR8RnKU1NDD4W5D7VdjhfqPwyT7Hz/5hfFmRIHPece6Ksw
 psWNyOoNtUHXYD1TvwJ/h/gOonnszAH23QboY2qGG8OG45qPihciMdSFgupBersjGGrpxDHYV9l
 5U4Gmk4oN+1I3vug0lgisCOSU/MmmPJ87DqXaor5N55rRO8Jb5vw1ndnJTVcgwMsqqy1hWs8hLl
 wR7SIH4ynxn9+N/T3ngaMxTeLPdrayDRHWmJVXPHkBmQhWiHA8J4osVqWQaFCaf7Diq3CPpveDw
 gSG5c12DR/OaxqOIPPO7svHBZL459ReYbAlIeqweqf/THbLod6p3c5rN+++dbZwYGXPSAHu2TKG
 WKdPo3FAtzZuBzzx5fpwEfxwbskr4sq45HS9u98as+NrLCdvEXz/a2WsHk16fCSNmG0+74ztSKI
 EfwGeGPAqhnR7cRMiFA==
X-Proofpoint-GUID: 9fSd6VWA-vmY_2hpsZuTE2DSp6JTwrbO
X-Authority-Analysis: v=2.4 cv=fMIJG5ae c=1 sm=1 tr=0 ts=6a4f4ee8 cx=c_pps
 a=ULNsgckmlI/WJG3HAyAuOQ==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EXRVaAyRHng4RDevV4oA:9
 a=CjuIK1q_8ugA:10 a=1WsBpfsz9X-RYQiigVTh:22
X-Proofpoint-ORIG-GUID: 9fSd6VWA-vmY_2hpsZuTE2DSp6JTwrbO
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA5MDA3MCBTYWx0ZWRfX3F26/lDT7CcX
 Ipdc0qSNs4ue3/Hk6qP/Z77Szam+j5w8YN9iRbazJDdd6o5pVFxngQ1rxSWngyWHaUa31srPXRO
 A8DLSlc4QxKLDxbMWsLEgf4mmDdHO/o=
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-09_01,2026-07-08_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 adultscore=0 bulkscore=0 phishscore=0 clxscore=1015 impostorscore=0
 spamscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000
 definitions=main-2607090070

On Wed, Jul 08, 2026 at 10:21:43PM +0100, Bryan O'Donoghue wrote:
> On 08/07/2026 13:19, Konrad Dybcio wrote:
> > On 7/7/26 12:41 PM, Bryan O'Donoghue wrote:
> > > On 07/07/2026 11:11, Konrad Dybcio wrote:
> > > > On 7/7/26 12:00 PM, Bryan O'Donoghue wrote:
> > > > > On 07/07/2026 10:24, Konrad Dybcio wrote:
> > > > > > On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
> > > > > > > On 06/07/2026 14:02, Vladimir Zapolskiy wrote:
> > [...]
> > 
> > > OK, I can see how this thread is confusing.
> > > 
> > > The idea is to start to declare sub-nodes "on the road" to making camss into a bus. The legacy binding we have is really for the IFE domain - that is CSIPHY, CSID, IFE.
> > > 
> > > Right now the camss binding describes those things - so linking say OPE or JPEG back to the thing that describes those isn't right.
> > > 
> > > OTOH we_want_ to make the top-level binding into a bus, we've discussed that several times.
> > > 
> > > To transition from monolith IFE-domain only, to camss-bus, we should have the sub-nodes fully describe themselves as "camss-bus" doesn't exist yet.
> > > 
> > > Once we have compat="camss-bus" then fine, make that linkage, I fully support that.
> > > 
> > > That roadmap BTW is why I'm asking Antanas and Loic to make JPEG and OPE sub-nodes of camss - but make them complete sub-nodes - power-domains, clocks, nocs, including the TOP_GDSC.
> > I think this needlessly increases the amount of combinations we'll
> > have to keep supporting down the line (with a ton of compatibility
> > boilerplate code)
> > 
> > Konrad
> 
> Fine.
> 
> Lets drop the bus idea then. I'm happy to close the conversation as
> peer-nodes.

It think, this would close the path for upgrading existing platforms to
split the driver / bindings. If all IFE / PHY / etc. are subnodes of the
CAMSS, it is easy to play backwards compatibility tricks and
reinstantiate devices on the fly, pick up only certain resources, etc.

If they are sibling nodes, it becomes much more complicated.

I might be wrong here. Maybe we really should try a simple (heh)
experiment. We have your series which adds CSI PHY as a first class
citizen. And we have existing platforms where CSI PHYs were packed into
the camss node (and camss driver FWIW).

Which way of representing device nodes makes it easier to migrate
existing platform to the CSI PHY driver, while keeping compatibility
with old DTs (yeah, ABI, old DTs must continue to work)?

> camss@{
> 	existing CSID/IFE
> 	IFE SID stuff goes here
> 	power-domains = TITAN_TOP_GDSC, IFE_GDSC
> }
> 
> csiphy @ {
> }
> 
> jpeg@ {
> 	JPEG SID stuff goes here
> 	power-domains = TITAN_TOP_GDSC, JPEG_GDSC
> }
> 
> camnoc@ {
> 	modelled as an ICC provider and consumed by

I think, it's a part of camss.

> }
> 
> ---
> bod

-- 
With best wishes
Dmitry

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 5DEF929AB07
	for <devicetree@vger.kernel.org>; Thu,  9 Jul 2026 07:46:12 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=205.220.168.131
ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783583176; cv=pass; b=l+Qfb57tsG5h8mDSUd/RmF57r009qGamn/FEJ+jWfTYC2KfRG+LQx+UkGBP9ydfmtlux4ZJNZmJP5ljGi+sR8f/R+W4By5u6WqmPEjRh/Nb8cJ/gOiI83BVnNelHzBJqBrFH3ck1YijAULJwTgblFhpoaxLVW4W3E+QHjj0gzYg=
ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783583176; c=relaxed/simple;
	bh=07wva2+HW2Xk8v4uN43Cx4PhQoeKjtx49ALQficpH+Q=;
	h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject:
	 To:Cc:Content-Type; b=t7N/oQ3UdOeS/ERdzpgX6mM9x9Sai65Yvjgao51EX4bhC/OR6lHRgKKnSX5Qf0x7Leca179ex0K00DVHwlQ/gcfz02+UQk/Zg4EOr/L3cjZhtW1c8NGclxryrd3eE0ueP92/9I5avAyLKGQMXBKqvcUpPnCvQ+Xx49fGWBNCYK8=
ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ca5aqJA5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=c6/QT2qQ; arc=pass smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ca5aqJA5";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="c6/QT2qQ"
Received: from pps.filterd (m0279866.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66960PUQ784627
	for <devicetree@vger.kernel.org>; Thu, 9 Jul 2026 07:46:11 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	NhGxkCX28V4kHMRzxiw6nz0Sa/jpmcLA68qNhvWGngE=; b=ca5aqJA5NBD4tfAF
	yKnSTzw+vMLvpqGGwD/U8VkWR+Dmshjaq/96UQ4Tu+ENN/SFhVJ3Np+m5TbM11Ag
	Gcc1w9uMjI6mtzV7pDqYnRMRzmptfl2DsNs8EqyU9ToIOgO/h8i2qobqDjitDmZz
	4bZIejbD5Vr/lup7R2Rm31EMCUniKXE3gsIEniNoc0o2hQXtkmm7cfWDLQd1dLlm
	xZj3jRnb+1BG9HCpyt0KnqscZSYMdbZlZFO887tll6u86YwTxXe8s9dgUmgEZu/T
	eb1+9lPfEFA5/s7o+8UDK/zu9BiYa1iC7VU0O6+s/INuJ2MpLmCUTHwXf/UBlgEh
	9BtVLQ==
Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f9v4u2gkv-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Thu, 09 Jul 2026 07:46:11 +0000 (GMT)
Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-91931144870so81036185a.1
        for <devicetree@vger.kernel.org>; Thu, 09 Jul 2026 00:46:11 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1783583170; cv=none;
        d=google.com; s=arc-20260327;
        b=LbMnB+w1aMdlQBhMJLiPFOw6ujoEFOdIjuAceD1fg/6kZZPa3wgMlcbyUTmyseylQw
         nwaMEvFWYeeNiMelL06/Zwa5YBkP9YQLNcxrf69PNiCAK8NhGzv2Qcv4Gzmc5zpf5YX7
         4vWu4zwgxEdZ5ToE7ErXEP6oGXOT+aaEVRy/cGlLsMSbEL7ZNgD+g5V/2/Mmkccjj1qn
         9NoV/erJD6VdESiv0oCp6jjxDYfI1dF4vaPSj/NKC9GS71v6vLYyqoe7xfHDuH7Jfmpv
         mjpJnceLfXLD6I8bJFp39oUKNsCwxqkT7Ppr7YjDVMiqV414kIpsQZz2z7LrNdHjDUyH
         8fkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=NhGxkCX28V4kHMRzxiw6nz0Sa/jpmcLA68qNhvWGngE=;
        fh=MxUHM/mSvISNWm+3J7ea+cTKeWdhfXRiDFklUHdyAL8=;
        b=UikU2TjlNV/OHzXacnrh/0nOyVyf3pcg8eiJWCZU2ub17sDxjdBMs470yTAxyerWZO
         D5JlsaIW0OusSA3T0uSIaXlIyIFnNZOCh3zBcLvL4KCoejMcQlPpUp/PmPqINxCNwlOi
         Gdw68O7K4UmeJ+xd41rgF3IFYEpnELvASE38/LeSJ2C9KWcXswc8AVzbYC1RC4oV1VDg
         tygw4RlkJm9UNDKT+GBTVhyOdYJAXCqEfz/ARKYDs6n6yEFYz5d5hsJNVK8RYZEmZCUr
         uDgXlHDi3vFgkSv32SUrbuoJOm0wupc+5MnRyzosyv+Onr9VmucQjaRZXOGDYsdvvomk
         Yl/A==;
        darn=vger.kernel.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783583170; x=1784187970; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:cc:to:subject:message-id
         :date:from:in-reply-to:references:mime-version:from:to:cc:subject
         :date:message-id:reply-to:content-type;
        bh=NhGxkCX28V4kHMRzxiw6nz0Sa/jpmcLA68qNhvWGngE=;
        b=c6/QT2qQfoNXGfM35oBzWZNtQaxt08eTRwKWVlH3IiMxE1+zYfOiOdQQ1nflORUu8u
         y0n+5xVzeOQZov++dLZqJ8QIaRH7g2f6IHIJcBYiFNC7XEIhsMFhIur2TTWXuO51mrrP
         n8W654bnYby0s4+xPpGpjV7d+leyBjAm/pJNhzMSO9J6+H4I4gVlS0DUzdMimSB4UPpJ
         zEVZLX1pVwD8NnesMi4pn5gpPXwtRZUs8EDQAB8TTgUGmbdBRdQapPOV1rowEzKtivSX
         RDfd9IAJBojTKcL03xWaP46B5uO1VTNYcg1rwupYeiS0BrpD9RRbnAhN8TsmXqWuK5dU
         exNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783583170; x=1784187970;
        h=content-transfer-encoding:content-type:cc:to:subject:message-id
         :date:from:in-reply-to:references:mime-version:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=NhGxkCX28V4kHMRzxiw6nz0Sa/jpmcLA68qNhvWGngE=;
        b=dwZhRtgsc7G6vMz93Rx3BJ+y4ArryvzhrpBAwhZszmOcnTiOwpabeBnwiy+mCb5Q+q
         y+EKA6UZsrYS1XQITKPCQwbBbJesSWJOIJDOKULYli2MRxvEqwIKMVK3rGm9NSc8bnpW
         p/uPWCYZX53oIlz5ZX6u/YOY3dik7qprtc322ScF5w3ZOhNNv4BTOdOw+xTOoRr4gTpR
         rM6it7mPWjFN9Ynv5WVsrcEtHstGyGXajB5BwmN7DXysWlmqgiHfCp++9w1cYP8E/Rat
         wdSeSESnPqih4RKivIpoOXdU/LdV+z5cfmBuoRKJdjP3H3TOeiDBE1u7RuH9HLUlG6D9
         6XYA==
X-Forwarded-Encrypted: i=1; AHgh+Rrh6gVSVdG1EO0EeWPR4oN44uEMS/v0Z4jtl5kcKWNQe+T8Sj4pk2IKSl/gFNQMcjxiCxBMzWLTFGDI@vger.kernel.org
X-Gm-Message-State: AOJu0YxPwAaB+wXvZzgg1xp4VsC/EvQjj1tbP2tgxRIq+VxHBaC3BstD
	g37YUfskl3xcD9L7nN9M9j6Mp3dQrp4vxhbZa4UC33+OwTxiB2l3J2bgbKpVF3Z5miC9V+EftI7
	I2zK2ALx5GvrPkdHPoQp0U5d2nIdAxBt4Q38QGvuXQsUBL5F7J0ymYqQPPog8Y4Tauep2tOSxYd
	d3IoZg9zFiSdWwwEZmdasC9qrklmlLY+19Coci2C2Lxtcaxyox7oiS
X-Gm-Gg: AfdE7ck204nwYUuV5DNr9eS2oK0mFotc/zKjDbTVhtjCEJ0MOO5na6R5IMtfXoJ+D1c
	QQL9s/IZQOKHTeMgUpLhDdnhAj50lQEWy6rUAgF5Gh0Z1x/Sq31nZAMIF9OfhYrGNUcqoaxXAXK
	IAlTKyOAIxUogCfDwcYnDAw5/L7ojj29hIilgqcuokmvFaSfL7OYD4Czn9I0+ETIyLNUzbsCXmG
	EnkFfF4rQsfp5+DJixD8geA72oWQCVzvxXDTim1CLR7F5LYy+WMOF5JfDVevwL1NG8z+p99mCwq
	um5Wq4lhaA==
X-Received: by 2002:a05:6214:450b:b0:8ee:ff2e:c2f4 with SMTP id 6a1803df08f44-8fec557ab7dmr64350696d6.17.1783583170407;
        Thu, 09 Jul 2026 00:46:10 -0700 (PDT)
X-Received: by 2002:a05:6214:450b:b0:8ee:ff2e:c2f4 with SMTP id
 6a1803df08f44-8fec557ab7dmr64350496d6.17.1783583170002; Thu, 09 Jul 2026
 00:46:10 -0700 (PDT)
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com> <d579ffd2-b99e-4e8d-b2b7-e7e896b2d71d@linaro.org>
In-Reply-To: <d579ffd2-b99e-4e8d-b2b7-e7e896b2d71d@linaro.org>
From: Loic Poulain <loic.poulain@oss.qualcomm.com>
Date: Thu, 9 Jul 2026 09:45:58 +0200
X-Gm-Features: AVVi8CfzimAcZqI-0huc1ogOqlRyuYjOXyQidt826_gI6qT68v2jCz-ds2hC2iI
Message-ID: <CAFEp6-0rwuRzXM0fu0uyrvSvgG0ttpygOULkKfTT7aw8m_HUog@mail.gmail.com>
Subject: Re: [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices
 via DT
To: "Bryan O'Donoghue" <bryan.odonoghue@linaro.org>
Cc: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, vladimir.zapolskiy@linaro.org,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA5MDA3MiBTYWx0ZWRfX4PSZwejoUW+k
 wQ1AT+xs1VYNOx+vFijycaSBJCUWIHDOpOFHpMMQ5jmi7Qb26X2iMXdkIjndoDMu4B65ChVd60H
 1V/evOq5Qzi6Q4t0g600S6B1aXh9TTk=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA5MDA3MiBTYWx0ZWRfXxXIncz+Kkn5m
 G1HkKS4+L643a/W3lFnitcVdvQwDaSJEfGBPLgZ/SpRwlZd63iOEt1QN8BioMFy8M8HSKk/58Sn
 Jd8cCHMXGm65y8SIYxC9WTpt9DORYm3ds08gvVn7RbZs4mJk6GT6/YXQ+wPx4hwZJNvoPjv2nB8
 8oLuAGAbd6iqEANu0Nq0FdpUwH4/MeY1pJammUtQICXOUJi/4x4jnvPMpBfVI65E5OHTAV840x/
 69D992rjQKOQX5arbRTaniKcLKa6a3TEafRsXCv0PECohrO0iB0jwzbfS7bfZ1FDmEfvuWFMdgT
 lO3WDF4p68UqJJnjTt9XvhsxlEj6dEwfx1aANAaHuv/+lFmXo1WiooXnNXg0fqbEwvUwceMqYKC
 K+hncI+DE0b4mUhKA395j0V/YMhmsX7JGCLamPo2LM0vmf3i8reMcfdb0cLMe75wYSxuXs+APBM
 +v7TIiqASc4jkVcFWag==
X-Proofpoint-GUID: COdp3t4vCrSL0AEzjrcuBZOSFVeBa4c8
X-Proofpoint-ORIG-GUID: COdp3t4vCrSL0AEzjrcuBZOSFVeBa4c8
X-Authority-Analysis: v=2.4 cv=QoVuG1yd c=1 sm=1 tr=0 ts=6a4f51c3 cx=c_pps
 a=qKBjSQ1v91RyAK45QCPf5w==:117 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10
 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22
 a=YMgV9FUhrdKAYTUUvYB2:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8
 a=y-x-Ysk6LtgDBV_-dcYA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22
 a=cvBusfyB2V15izCimMoJ:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-09_01,2026-07-08_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 spamscore=0 priorityscore=1501 adultscore=0 suspectscore=0 lowpriorityscore=0
 clxscore=1015 bulkscore=0 phishscore=0 malwarescore=0 impostorscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607090072

On Thu, Jul 9, 2026 at 12:30=E2=80=AFAM Bryan O'Donoghue
<bryan.odonoghue@linaro.org> wrote:
>
> On 06/07/2026 08:11, Atanas Filipov wrote:
> > From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> >
> > Use devm_of_platform_populate() so that child nodes declared under the
> > CAMSS device tree node (e.g. OPE) are automatically instantiated as
> > platform devices. This is required now that CAMSS is modelled as a
> > simple-bus and ISP blocks such as OPE are described as child nodes.
> >
> > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> > Reviewed-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
> > Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
>
> Looking at my commit logs I see this isn't my commit message ..
>
> Anyway.
>
> > ---
> >   drivers/media/platform/qcom/camss/camss.c | 3 +++
> >   1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/=
platform/qcom/camss/camss.c
> > index 2123f6388e3d..95e655a8b6aa 100644
> > --- a/drivers/media/platform/qcom/camss/camss.c
> > +++ b/drivers/media/platform/qcom/camss/camss.c
> > @@ -16,6 +16,7 @@
> >   #include <linux/of.h>
> >   #include <linux/of_device.h>
> >   #include <linux/of_graph.h>
> > +#include <linux/of_platform.h>
> >   #include <linux/pm_runtime.h>
> >   #include <linux/pm_domain.h>
> >   #include <linux/slab.h>
> > @@ -5362,6 +5363,8 @@ static int camss_probe(struct platform_device *pd=
ev)
> >       if (!camss)
> >               return -ENOMEM;
> >
> > +     devm_of_platform_populate(dev);
> > +
> >       camss->res =3D of_device_get_match_data(dev);
> >
> >       atomic_set(&camss->ref_count, 0);
>
> Just drop this patch entirely and model JPEG as a peer of CAMSS. I'll do
> the same with the CSIPHY and Loic the OPE.
>
> Modelling for subnodes is nice if you have the idea the camera block
> should be a bus.
>
> But for what reason ? As you pointed out it should be possible to both
> compile and run JPEG without the compat=3Dcamss node on sm8250.
>
> Making the camera block a bus is a nice idea for "reasons" as this
> thread has shown, its a problem to implement with an upside we struggle
> to define.
>
> When the facts change, I change my mind.
>
> You were right to argue to have this as a peer node. Lets do that.

Having a camera-subsystem bus/parent still makes sense, especially
when dealing with shared resources. Whether that should be the
existing camss node is indeed the question. Today, camss effectively
describes only the VFE (including the CSID) and CSIPHY, so using it as
the subsystem parent would introduce incorrect layering unless the
node is significantly reworked/broken. So yes, for now, keeping the
components as peers appears to be the simpler and more scalable
approach.

Regards,
Loic

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF2A540862F
	for <devicetree@vger.kernel.org>; Thu,  9 Jul 2026 10:04:45 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.51
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783591487; cv=none; b=hF5NXlRCqh+i+cTRMj38OU6oImzANyAfrU2eNEGx7eW6Rf7HsX89p0aUt9RyUva2Ij5c3Y59rYgdELZMKAhPictmBwyn/D70ppFHuR3ls3KywFpXot0FWenNF75znfhNP722gaiclmHzripY05xi7qXCTrASOvBv9lEynLHV7OU=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783591487; c=relaxed/simple;
	bh=jnRthcRh18ECwG4Qubk9hDmz59sP/LjpoR0YrTy21w0=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=nTx+7t4qTFwvILPZAGjrHk5ERotjKXeJ+pfC2TCZQee2z0Aho9KLCtEsRinxAwm+gbaamv0KPGqGvYxHWcYUjS0B1k72MS4p9CfSPV3oqUR9t9NLQjOEcIrtOI+uO0pTLYGjbtSEOut/d0m3D02wqxOvCCNJa9z8b+KBvynPiGY=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=u/BOI4ro; arc=none smtp.client-ip=209.85.218.51
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="u/BOI4ro"
Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-c15b75c9e48so232682966b.1
        for <devicetree@vger.kernel.org>; Thu, 09 Jul 2026 03:04:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1783591484; x=1784196284; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to:content-type;
        bh=TVm4IvduA/DyKHoGxNy4y6/zPAWfmeUpt6Sdfg7MdY4=;
        b=u/BOI4roAJCkcmxvCbpH6tTU4zGCxVYdUknBr9dXtno+1HA6Fn//ya3alj9d14RrI/
         QuF1eSS7v0ZoROcpofhzj/ixiXLSwhgBI1YQyTjR8nIpUwYb7xrg/Pd7viSM/aaPkLZH
         qIDNR0TN3kgeFo7NUA17VXmSGqPvLH17KPH/yq7A+awuEAxq+EGCrISyCCj1N7bwTPeh
         vFf662lyA/Gdc6s910ZU2f+4lNrgHOO9S6iF6fViXMl/b8h6uR+rnuPg7r+hCOiP5XJK
         1IaYkG28xwNiH4G4KJxVTJiErF8uRMoTimgAaz3WrywdVbdheXnyazQw40yk2Ej+mEUe
         wShA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783591484; x=1784196284;
        h=content-transfer-encoding:content-type:in-reply-to:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=TVm4IvduA/DyKHoGxNy4y6/zPAWfmeUpt6Sdfg7MdY4=;
        b=E5ZGYPR7R32MX9/dISGaIAc3OkvfH1OZxNn+uTNYKs5t4iqbZRxAqdUXX3ghY7LhdW
         9Lm2+5tZl87SyRW/NeXMNVdEOVg02U5j7n8caxbL7I3FhiCYipsDpEs4n2MOC7KZvXv5
         CWx5mNJuzRn8vnrX+bvGYxFehJXgrcbkhqlIMuSa4h+0dbTdGupYBjNjgvbZTpVkc4Ii
         uSCHg8+SKS1kRJgN10wcLpw+4efGDHqAtmUPTfi24+NeEc5EekqpITH7alCaZN36JRdf
         KmljZE7z5KiO7xaOfYkwP5lwTm7zJMWfuw2vuwUtD2YR8RjhMDq9BEe0E6OyopOIljRI
         3cAQ==
X-Forwarded-Encrypted: i=1; AHgh+RrMLsgv10ZIalsbhIzJIYsZbga2OBpXwIjWdorTQVqdY/f0LM7DY7D/DrS5LZ3Zsa1g7wcVYP2WsVkr@vger.kernel.org
X-Gm-Message-State: AOJu0YxWKkRvhF+nLiRdtmrpy+/zidR9dxJgCaK+zNekYf9eeOF4dFtx
	y19rcqdXMvGSwG8qu/0FmkTF10Ct9MyAYA+2xZWsFsMU/wXS4QNBLNZW9j6aDb8Lzes=
X-Gm-Gg: AfdE7cmvqnlNuMjm1CiEbv8nhhLb61oHCxejF1ofBGMpO0UoMQO/reB485/7Ov6ldL3
	h852V6/hwEkBhmUVdlyTm4gzunLKNY9QLCDA4J9R3d8Abf/0XT//TzxLaIer7QPJet5cWP0QWih
	H4WbY4P3BAo4erNMyHPYaFcUjg7e0sL+PZ3vxho7Cp3mIbvJs5PdUe83cnrPRCvwYH7zj5XGzFF
	ZTEInfNQvAYRNQfrTW7HispIxoSxXu8JSyjX5CrpjC1o/Lhp/nksFDWn//EnW/dI/PQcArLqYnQ
	oGMjigg+OH8DF8T9Xbs8OZcFcKdpfx8U5TAG+ZbS10dTei0G/cBgfEmglsmLBtN8zF2J8P8nd7I
	FSVMj/Y1FjN0K1cE3+dn92Kg1JFthv0AGv/R3PCOOMJUicHGfk3D0xpSCGioxih7eKV1wD0/dAT
	DqA+jSLLVFKNF8xfSNmfj6hmPg
X-Received: by 2002:a17:907:960f:b0:c12:8c27:e2f6 with SMTP id a640c23a62f3a-c15cdec5297mr323277666b.13.1783591484174;
        Thu, 09 Jul 2026 03:04:44 -0700 (PDT)
Received: from [192.168.0.101] ([93.107.71.88])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15edfcdb9dsm46291766b.61.2026.07.09.03.04.43
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Thu, 09 Jul 2026 03:04:43 -0700 (PDT)
Message-ID: <2ea78bd6-5abd-4ba8-8f8e-24057a587cdc@linaro.org>
Date: Thu, 9 Jul 2026 11:04:40 +0100
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices
 via DT
To: Loic Poulain <loic.poulain@oss.qualcomm.com>
Cc: Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org, vladimir.zapolskiy@linaro.org,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
 <d579ffd2-b99e-4e8d-b2b7-e7e896b2d71d@linaro.org>
 <CAFEp6-0rwuRzXM0fu0uyrvSvgG0ttpygOULkKfTT7aw8m_HUog@mail.gmail.com>
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Content-Language: en-US
In-Reply-To: <CAFEp6-0rwuRzXM0fu0uyrvSvgG0ttpygOULkKfTT7aw8m_HUog@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 09/07/2026 08:45, Loic Poulain wrote:
> On Thu, Jul 9, 2026 at 12:30â€¯AM Bryan O'Donoghue
> <bryan.odonoghue@linaro.org> wrote:
>>
>> On 06/07/2026 08:11, Atanas Filipov wrote:
>>> From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>>
>>> Use devm_of_platform_populate() so that child nodes declared under the
>>> CAMSS device tree node (e.g. OPE) are automatically instantiated as
>>> platform devices. This is required now that CAMSS is modelled as a
>>> simple-bus and ISP blocks such as OPE are described as child nodes.
>>>
>>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>> Reviewed-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
>>> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
>>
>> Looking at my commit logs I see this isn't my commit message ..
>>
>> Anyway.
>>
>>> ---
>>>    drivers/media/platform/qcom/camss/camss.c | 3 +++
>>>    1 file changed, 3 insertions(+)
>>>
>>> diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
>>> index 2123f6388e3d..95e655a8b6aa 100644
>>> --- a/drivers/media/platform/qcom/camss/camss.c
>>> +++ b/drivers/media/platform/qcom/camss/camss.c
>>> @@ -16,6 +16,7 @@
>>>    #include <linux/of.h>
>>>    #include <linux/of_device.h>
>>>    #include <linux/of_graph.h>
>>> +#include <linux/of_platform.h>
>>>    #include <linux/pm_runtime.h>
>>>    #include <linux/pm_domain.h>
>>>    #include <linux/slab.h>
>>> @@ -5362,6 +5363,8 @@ static int camss_probe(struct platform_device *pdev)
>>>        if (!camss)
>>>                return -ENOMEM;
>>>
>>> +     devm_of_platform_populate(dev);
>>> +
>>>        camss->res = of_device_get_match_data(dev);
>>>
>>>        atomic_set(&camss->ref_count, 0);
>>
>> Just drop this patch entirely and model JPEG as a peer of CAMSS. I'll do
>> the same with the CSIPHY and Loic the OPE.
>>
>> Modelling for subnodes is nice if you have the idea the camera block
>> should be a bus.
>>
>> But for what reason ? As you pointed out it should be possible to both
>> compile and run JPEG without the compat=camss node on sm8250.
>>
>> Making the camera block a bus is a nice idea for "reasons" as this
>> thread has shown, its a problem to implement with an upside we struggle
>> to define.
>>
>> When the facts change, I change my mind.
>>
>> You were right to argue to have this as a peer node. Lets do that.
> 
> Having a camera-subsystem bus/parent still makes sense, especially
> when dealing with shared resources. Whether that should be the
> existing camss node is indeed the question. Today, camss effectively
> describes only the VFE (including the CSID) and CSIPHY, so using it as
> the subsystem parent would introduce incorrect layering unless the
> node is significantly reworked/broken. So yes, for now, keeping the
> components as peers appears to be the simpler and more scalable
> approach.
> 
> Regards,
> Loic

I would _like_ a bus but the question is how do you mutate the existing 
IFE only node to a bus - without a big bang integration ?

There doesn't seem to be support with colleagues to gradually transition 
so we're best off making individual nodes - why BTW isn't wrong and has 
upsides - like clear separation of JPEG and IFE in this example.

---
bod

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 A7B153F4130;
	Thu,  9 Jul 2026 10:31:54 +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=1783593115; cv=none; b=t5o2XS/rh/Dsxo/9TfdtqwYGimxTss6r0seqAyMFQW9xr4ep3g/y2xdLL8tlwwwBGeR1DA79ZmogtqK+/Rsj311CDgoIfUiaX/8SlPrLFAf2/9zRm3734lUNpDZ9BJAFmFKvHyxuFGEim90zNHXddtj3Vcc882+EJh3MZktVPEI=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783593115; c=relaxed/simple;
	bh=4kBh0293uRNcjEIm8JcDC43jeExZf8brb6PiYAa+U60=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=DseyAsOZDqPiIhFqcqVORUW2TZEb9uQpkKOqFFSU2XGAinBSCIIj6PQ2vA7KjLwxe6zO6y+1zFl1YdH0RjuRvIe5LBSy0n+rYNiSxmEoNYUA+p6Szo2pR61a0un77PXbw0mBycztC5RD4c0o0i+QfRJfD2/0G2Q1pSEGuqMqrW4=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SXH2uh4G; 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="SXH2uh4G"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89B551F000E9;
	Thu,  9 Jul 2026 10:31:51 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783593114;
	bh=Jnd0dDhsHRaigqmdT5qRVE+w4dLZnMejtZ+vWRcs3uY=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To;
	b=SXH2uh4Ge1oNU8mwewe+yq1dyeBeAAEIBJBAzC8NLER5JpNHwEeVT70mNhvUViJU0
	 7xE8C2QUwH+TJmmL3T4n864wDoBd6BcflN7yCKVQ7zm8eyVmvx56dBVszuV5DbKglW
	 nOOgPQ9ruw+wB3pCytWqpBki+Rh8ocsDKMDejVVNV6TShCqwR065w85g/l9trPnmfA
	 PpdHHXcA2aWJUDan0DZRHEo6s5ZhLDG2eLzExn1pxUHTkKMokI+ei5tY+vTtiCAnc5
	 m7IMeKTUCN5Wfs9uLalta7dlcgH0iVCc9X81u4atqGeNtFj+AvHxt2Nod5SYfQe/7a
	 FKTAuIsqi2IgQ==
Message-ID: <6f38e218-d3eb-41a6-a89b-7a48fb6fc663@kernel.org>
Date: Thu, 9 Jul 2026 11:31:39 +0100
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
 Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
 <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
 <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
 <VoXmpDKdgY_XxAvO5tkDze4jpmMzSuKTmIISTejJsbIO_FIO1JFfUBlaPkNdb14E95zf_qwtDB6myQ2wdRCh1Q==@protonmail.internalid>
 <8fc1ddfd-0f77-4b67-b9bd-33fbd60e2046@oss.qualcomm.com>
 <54ad9b8a-7596-4bc7-a1c3-7230cca21360@kernel.org>
 <yhaSA5BjqcRkDQ_rt8siFRdNLmWNnlPtdVL9chnAu2_uuWn1GtdaKvupCalWKTO23sj3PM17lGrbovPi66f5Ng==@protonmail.internalid>
 <wbjec4qhzkpvdfnrvffk7tjmlvli5q2jiuzdp2iqt2cbf2uat7@usg2mizurxpp>
From: Bryan O'Donoghue <bod@kernel.org>
Content-Language: en-US
Autocrypt: addr=bod@kernel.org; keydata=
 xsFNBGRJNSgBEADD7Vm2ZFa+v+JGJ2QYTJqQAkqis/uOHkhdFNXqpBarVBd47QU/DMNU5Rxg
 jedMQEmHoeDbJ6UOpjbrUQ63c5sgG1JbroHJJctwsEI75OOlekMuebEbjIJBLfgENGwPBMHv
 piv5TgCWr0VgYaXfp2eh2LINFywzqj823HiDPibQAXDrjzvF1ogksi/6cQZs8d4if8YQkLOr
 YISFouG+eR0nN1I7mUfIddXOWu6lJeTyqbWVurv58k2ekIXKaOC9ixLHFbcfYV0hOgRaTwQC
 B8CYF9nfqZla19iItfsN9QxN+ZdQjcRoYipp6HPCMfJlKH7GfaFcW93LKc4DKJ2lVL+pg/OQ
 lythZbjRPY492NG9kZ65aYstCs90uhMUEVVPuGUw7wBEku+6IEwZfrbMVKeWzLlPyM4Hv9hM
 8ktxSmxWsPTPqpBC8eyeAQLalMELAyVcZlkaCtEcbj7w4l/JkYz+4l37obG8ZD+B34udBUUz
 MsAJ8foDFrBh2MOFA3hxD6G90D23mmWsri7pnKA2tZs92aQX7Ee+FbCyg6g5ln62Sq83ZDbf
 53DdBs55EVpBadeInWmXhzCHPQx06H+CwTEjShTYIaMmBfrewvYUDKvFTC5iKQhAEUgt6i94
 JsbG7NoeqcxkUMcBOEUQ3uCQG1D70ugspgXc0wd3Rimiq6535wARAQABzSFCcnlhbiBPJ0Rv
 bm9naHVlIDxib2RAa2VybmVsLm9yZz7CwZEEEwEIADsWIQTmk/sqq6Nt4Rerb7QicTuzoY3I
 OgUCZ+R+mwIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRAicTuzoY3IOimUD/94
 BwVEJX31JRe2sxbB/e1w2p8x1bxvTw5AeIzpV3ox7coJg1bSU2mnGuj1V4o0Yxf/3zmcJzCN
 VfVjwRF8Ii3GnC7uUXk2t+87piQfKTyJAYQABhZUKgoVJbjJq/S+C3XCKIyBA+EiezoUsgsA
 jTzwU+FzV7zVWIXFPJNtBERLwboE9w9U3KjAExOa1kSY8eLrsg6kOwlOHWy5UsQqYOjrS96M
 mzm2xuc1+RCjrndAyYhCnrOKvJ67HsPnBeJCjw7ImGD/U1GchwYbX8o3DO3JNHm3qfC86ZqX
 2sCouENg4OzgPTtLKUrueM6xsu6KMM7gj17vxsiR3KQEoJnnMB8D1xtBofN3mFZE0wD9M24m
 8yGunZbtntMCUHzIrlJgAPwKWKuGOYtA8UgMTFkccnUJtQrg9KotKtEF/FuftG9zLG9XEkt4
 5ZdNgbSoLWgelu3T47mbOJ8LHhiLaCWP7yrovtVAvLUQ1BsiA42u8ECrFCFvQj9nrejE/ICv
 kP+uqcKtdDvP9HrIGycF1WZyfZLp0RvopKW92FLvI4I1QFWJ+wenk6+LGyJ5bzlrWzevjxmf
 nHcXE6sJBHrE7eijlbbImDAi3uLYN8Nd9Dm11IDAy4GAIQxSiQn0yblDhPiyGtchy80EVkCm
 g9k17Wol+2E2mC4DKgVdCkyUtTRSLgsJCs7BTQRkSTUoARAAuTnmWHBS6izRcEE93ajpzI7h
 dgQO4U3IRvOEsvIKR5NGcNEs0ngGebwsZ/lVULjN4vYU0LleqVhPBidNXUoZCN3A0F0Z2Ov8
 NZdef+2EhQPBVWxFO7JBzhe8Z3ALj+wFtlg8akJjBzU56azW/iJzAobqHVrudzKoO2b1/CMg
 VbiAQ+RXjgfN5kY/HqYDU7mw+hXuUV9PbtX1L8xqQQac95oM9rHzKHHpiVwxTeJnGQsa+THi
 Kze+YET3rCoGHMvOQEJhdrucTv5FpAakKdkOFNel9FFckLRKEuWgCzhpFsjQ7xbirQgFUxG9
 vlk1+q4hMRGNyEqoD6svYEeqbiUSd0oPUJeioiC3rNMRCNHLVrfZ2J6SCPkxfda08uzSdDQU
 1/YPjOh8ZtQDMu7WctZ3XO288Z1gyBR49V7fbFs2w4sQxG+h/enlxqP7fdw1mjUlZjU5huCJ
 ielS0oEaIpmUpkugli7x4WhwLnhK2EbSoz7nLBC0y+ALUOdMlz/Y1l9xRt+bkDhpmf4O4IcI
 MxgZ0QMLq8rHDkGaEbsgZZHQPS58T0XE3IP30Q9SNxsruCMXtd2hYtBssf/wohc6JVsTtMg2
 VYTPDPIFNZFSXupEJB7jlqpDWJ8ooJfJRLBatbjT5+mVQaMYB7Hs/t+zWYWaJKHyc8O6WLEC
 NUV5Tdt5EkkAEQEAAcLBdgQYAQoAIBYhBOaT+yqro23hF6tvtCJxO7Ohjcg6BQJkSTUoAhsM
 AAoJECJxO7Ohjcg6LuIQALnXt36OUuK43wqw6UYt0cnN6EbUqJHApAF5eNFn0jCCB2XELjSz
 JKJwuNAweowBdabiBniJ+501WIW+ewEsz1uby5fUQjZuCEsIkuaIluyfUFPb73qrQyAGuusd
 7teA4WT+/jUku9g7lX5sVoRCrKQPkd16f6Bzfztyqyjcn43/X5yQI+wlboQ6HuKe/3I3yiOx
 OgmCHzOawpC9PvhEcKj79RLM3Zz5Ts5AuHpRX70Jz8Be76LwVFLp5Msx3S24ZTU1lBo2uiJ3
 xSkay2lTpyVWRPx9vgcwzxGguOPJQJwsQeLb7wpoJMPpD3ERoaRii7Q7hvmxklpZjhKYWB3d
 t6nQ497Ek9loCrp3MIjRCSDN5xEGffiHks9yTeGMUQwO4tX8RE04uOJPkUY7uCFzFqN6/qey
 X3oFfPgkULMdiHofPAL1OskZSTzGPSfTYRE46NCJw8yoZBQ/oOyWeqaUQbK0wmW/g81wm8p7
 LKSGEglMpiX07M1AotgvylN5C8fjbouoK+/RAMsXkk8jba6rPfuuXPaDjCyyKn6zSVHETnHW
 3AJbgVY50T8STpnxayBQvWbCvu+6NOEjXCbyaOJig+5l0zlGN9XHjdANXC5HnwmyaGRL9YDq
 Jh2nVXVJDincOdQRdKcJjYLqaOAoWrYWSDi1iZGspHBTDrnOvfMQzzHY
In-Reply-To: <wbjec4qhzkpvdfnrvffk7tjmlvli5q2jiuzdp2iqt2cbf2uat7@usg2mizurxpp>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 09/07/2026 08:33, Dmitry Baryshkov wrote:
>> Lets drop the bus idea then. I'm happy to close the conversation as
>> peer-nodes.
> It think, this would close the path for upgrading existing platforms to
> split the driver / bindings. If all IFE / PHY / etc. are subnodes of the
> CAMSS, it is easy to play backwards compatibility tricks and
> reinstantiate devices on the fly, pick up only certain resources, etc.
> 
> If they are sibling nodes, it becomes much more complicated.
> 
> I might be wrong here. Maybe we really should try a simple (heh)
> experiment. We have your series which adds CSI PHY as a first class
> citizen. And we have existing platforms where CSI PHYs were packed into
> the camss node (and camss driver FWIW).
> 
> Which way of representing device nodes makes it easier to migrate
> existing platform to the CSI PHY driver, while keeping compatibility
> with old DTs (yeah, ABI, old DTs must continue to work)?

I agree with your concerns about old platform migration.

I will run the peer-node through the DT checker and if it spits out a 
problem we can re-evaluate. x1e will test both the old way and the new 
way - I'm prepared to take the pain of resolving this change on x1e, so 
that both dtb bindings work or rather continue to do so.. Either way we 
will resolve the debate here. I'd put Kona/sm8250 as "next up" for 
migration - I have one on the desk in front of me, so its easy to work 
with this.

camss {
     reg = <1234>;
     reg-names = "csiphy0";
}

csiphy0@1234{}

Is a legal DT declaration - if the csiphy@1234{} is missing use the old 
way, if not use the new way. if the phys = <> is found, then the driver 
will not request the csiphy regs - this means a new kernel will work 
with an old dtb.

I don't have that fallback logic in the CSIPHY series right now so I 
will add it in.
>> camss@{
>> 	existing CSID/IFE
>> 	IFE SID stuff goes here
>> 	power-domains = TITAN_TOP_GDSC, IFE_GDSC
>> }
>>
>> csiphy @ {
>> }
>>
>> jpeg@ {
>> 	JPEG SID stuff goes here
>> 	power-domains = TITAN_TOP_GDSC, JPEG_GDSC
>> }
>>
>> camnoc@ {
>> 	modelled as an ICC provider and consumed by
> I think, it's a part of camss.
> 
>> }


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 A34113ACEF0
	for <linux-media@vger.kernel.org>; Thu,  9 Jul 2026 18:16:27 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783620988; cv=none; b=W6Y/VAxRKQD1X8cQZ2fyy77S/0WQsX0cWrZkgUAg9hU2FY6K8s+ZLfOHXpTQoNHFPuqgQ4kU6y/6InhiEqmFTe4U9vEVB/nszaTXd0PNI07CJJSlDvd0z3vyLqFSlFIAXowVwZhr/OrHlo+jIgMphyufcWs5gPecvOcZ8H8nNew=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783620988; c=relaxed/simple;
	bh=wqiNn6l+nDl9A1NisYGFeyajtfJ+i8wmLRbKPTQb5bo=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=FUyZbD6Z3vR5Tb8bIYvMumJ2p/DAFrxH2imeXR4iB92Tra74O5Jl+uC02ryv3xpcxIlanLxbwNfv9kZqRlxLI3XR1wwSp3q6a5NeP+t62i0tYA4fDXNTLwRKmXtgbcIWwWUriW3LS/n3vtIcAPrVOEfLVjQq7avqZ4+1Kn1dNYU=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=IkNM5xFW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=CpISSxF2; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="IkNM5xFW";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="CpISSxF2"
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 669HXRBM2422261
	for <linux-media@vger.kernel.org>; Thu, 9 Jul 2026 18:16:26 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	f9vlF2zZNrxlsHq6GtF5qElMhuMkGK6oe8/BkTAPX8A=; b=IkNM5xFWZ/N7jHQd
	T4n4/bJmwZSR3bydOHT3YibXPF17tJtrblBQ0FRLVV3SSbBWT2Zf4X3Rwby5f/9n
	uyZDTKYdZ4xougsH5v3JTIV/HFZLBk3NKBPquU2ppBZDFSUZ6BF9a9QdLh9sjBQO
	eKfzqJdlIf/3gIWWVSX97oLMMJD5CqNfyaDEdXA4guziwYBJNiVOR7FULfoWOJiJ
	eunGZDEoU98dmsbZv7E0yOW3qu3k0SggAskocKrS5Js8sRoXrojHwdLogdXhoVfK
	icPOtAbr5EZm9NRM47mhDRii1JnKw1WYqZ/mt402XRsO4yElDxOmVOEMYM6N54xT
	5O7aDQ==
Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fadvj90ws-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-media@vger.kernel.org>; Thu, 09 Jul 2026 18:16:26 +0000 (GMT)
Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-92e9c0c4492so1680285a.2
        for <linux-media@vger.kernel.org>; Thu, 09 Jul 2026 11:16:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783620986; x=1784225786; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=f9vlF2zZNrxlsHq6GtF5qElMhuMkGK6oe8/BkTAPX8A=;
        b=CpISSxF2uv/DlgIBbHBi+FqnjA7Myc4nlyMvhfAuU9EvjGyhQ6IaK553fnDb118k3a
         Q3IRt+VRBIzzuR0QQRO+zBGK8q/hYwIGsifwUmeF3+YcNoOCNaiSv/6DcgvTGK0/U8qq
         O47CV4R5Cv0MTubn+jnjAESNPgpwEcgklH9I5WqqpIUDgoWIWa+HtcXxf9mcLgf32dsT
         6kVrmw29ANbbcO6+nIpA6bpoQdDbSwvgTGq0xUP5GDUly3uLktDtMX55vBGdIXbWCe0V
         X8vyBWnYwQrrKI7555VOZ5bYxULlCzuC8krm7C6p35xQu8PYGB1Fh1bMrRau8ZzSQ7GX
         +Dxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783620986; x=1784225786;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=f9vlF2zZNrxlsHq6GtF5qElMhuMkGK6oe8/BkTAPX8A=;
        b=gfXmYl2GoaeJULgj2yR8OyZqMmihubeweBfHXORTkiLFAnWRapJUz1smrpHsvR7YL8
         Lej8ExxX7BQgwtKD9WxLorXRDRvlY5E04XcWGGTOzTVa2oKCO030ympJ9p4EmJBoro+i
         HItgco5WFukx/S/bEH2JTfDdsBmG503DnEw1ps576RUkV1+25Q4V800EGe4ERiM5wU/M
         Ob1etWCymkCWJFYPMI/Jn7/z8NfTsHAUBFwBRCEr9yTMPceCdwmEEmlKVq2SF0Tnq3mI
         AkppwIe0/edSukm6iZrpmVcpk4TiaTzdPs3YVfjp0yZA6XMLr8ixkJ8c1JMBXkP4XGM9
         pIGw==
X-Forwarded-Encrypted: i=1; AHgh+RqaJKDJs/DOHGYDU1x2uxshndmqXZONFWeA4TcAxof0W5Fd9/PEnONNJIxqODJZKu/LmVTJGFK3jKU/Qw==@vger.kernel.org
X-Gm-Message-State: AOJu0Yw+VqjBP0J24UxN7Jniwl7tHMdAtSE9mNm15aO8ijqYDDtzvBVO
	91Q44/FR3VYCpbarOJ9cZmP79dx6blN6Qz6wqx3tF4agmCr2IVG3CRHD3sofiMLRX4O2/Zq1F9r
	bn6f5h336bHwM2D2EdWURqH2Ay6336f7XAWQQDzZXGp7vXt5KQDy/ZQRQeTF6gaDEBQ==
X-Gm-Gg: AfdE7clJrcGMiSm1zB5y0B8776SPb4jSoAMdupUNxh/YzqbDkSB/29gjlaSdqmRJaSL
	Ryndfre3Dj9MXkPdVz9KUqbYgdoJ9wLbKYTeRjtThztQ+oT/jAXI0bMQbJiJL60BeW5/ri1JQA4
	+F+rkxKzyqVjFeIoKCWhaByh5gX+pSzVUSlgmOuuTUikrLLL+acsGbgmKGAW9CBYFBJUivcuQ2/
	6w9q0IZ0gtq9UFVmXmASR97zoGu1Zlc48zsvWHOJw/WoPNpy+vEIs2fx/CNonxD6HP7o2/dCvuB
	sDKu3gBU25nh40uffA98Pko5Z5kipTnhlbyasehlswzWRx8yW3EH4fUCb/uncmWAmVcPy1xIBkc
	tK8WXaI9LdFpNDkghnfJbEqaNuJqnyDCjLT4=
X-Received: by 2002:a05:620a:8813:b0:92b:55d5:ba3 with SMTP id af79cd13be357-92ed764b013mr444079285a.0.1783620985908;
        Thu, 09 Jul 2026 11:16:25 -0700 (PDT)
X-Received: by 2002:a05:620a:8813:b0:92b:55d5:ba3 with SMTP id af79cd13be357-92ed764b013mr444076185a.0.1783620985462;
        Thu, 09 Jul 2026 11:16:25 -0700 (PDT)
Received: from [192.168.120.193] ([178.235.128.140])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15db22ed68sm233609766b.35.2026.07.09.11.16.22
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Thu, 09 Jul 2026 11:16:24 -0700 (PDT)
Message-ID: <29bbcc9d-a0b5-4966-a195-1702ed514a4a@oss.qualcomm.com>
Date: Thu, 9 Jul 2026 20:16:21 +0200
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Bryan O'Donoghue <bod@kernel.org>
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
References: <437d1eb0-4495-406a-9501-b0515cfa3151@linaro.org>
 <e04cb9dc-76dd-4fa8-92f4-be002bf7ee8b@linaro.org>
 <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
 <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
 <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
 <VoXmpDKdgY_XxAvO5tkDze4jpmMzSuKTmIISTejJsbIO_FIO1JFfUBlaPkNdb14E95zf_qwtDB6myQ2wdRCh1Q==@protonmail.internalid>
 <8fc1ddfd-0f77-4b67-b9bd-33fbd60e2046@oss.qualcomm.com>
 <54ad9b8a-7596-4bc7-a1c3-7230cca21360@kernel.org>
 <wbjec4qhzkpvdfnrvffk7tjmlvli5q2jiuzdp2iqt2cbf2uat7@usg2mizurxpp>
Content-Language: en-US
From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
In-Reply-To: <wbjec4qhzkpvdfnrvffk7tjmlvli5q2jiuzdp2iqt2cbf2uat7@usg2mizurxpp>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA5MDE3OSBTYWx0ZWRfX9BGfM/qOENOh
 koCKwCAAVRgagvkWDZjYoSN/NWCEwLQA5U8SxLO46Ph2Es8sq/gy91Bs+FAHrS3PPj/NzJ+7njy
 /M6qTnG4StXoeRRLL0zXrOnOGiRt24nOAR0o/G2abAd21ogTCH0IDBKIqnZZljMwUxsuWzjQHQM
 xh0eUBbkP6ms2jT7ogBdpQsc2QhSQkySfpivHfhXhTIwEslLeokvda83h9lWZ4OOXemdywev/M0
 0I9Po6SJ446uUZ8ehbsa5FaOH7wght+A7KEiSpJcXp4c2OFu1qdxkfYK2e6dcS8Lab3SIRCmxEL
 4lx2mcFcZ5LUuucWuLxL4z5LKZUMuX7ymAELmDzroh1QjOGATVnOrpwEXnqZjA4D4ZxuIZeP7+o
 IagVJiYncb/xpRvKqOEcHUucAZBH3zDzH+pe8PEppierxV2BbUiSn1eYGP2T8sS06sww/4oKgdJ
 CD+GOUAzbZ3YtMQOVNw==
X-Authority-Analysis: v=2.4 cv=WpIb99fv c=1 sm=1 tr=0 ts=6a4fe57a cx=c_pps
 a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=PRfkaYvzSr8QmIIGAkY2Sg==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22
 a=02blghMF5h8Ooo6bNK0A:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22
X-Proofpoint-GUID: eU8VuEnl_mh5y5SKZuzTg9GJAS2BhAVa
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA5MDE3OSBTYWx0ZWRfXynMgmW7jUeQq
 b3QNx3NDOGXEFVYTe3WcFgBxi+gcrpSGoa7815wcbfdZi9FXtqfqnj6VW1Zemu02lQgvlN724K1
 eVGRgs1XjfxXfYDJGiw2RvP5bTXRF+Q=
X-Proofpoint-ORIG-GUID: eU8VuEnl_mh5y5SKZuzTg9GJAS2BhAVa
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-09_04,2026-07-09_04,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501 impostorscore=0 adultscore=0 lowpriorityscore=0
 clxscore=1015 malwarescore=0 phishscore=0 spamscore=0 bulkscore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000
 definitions=main-2607090179

On 7/9/26 9:33 AM, Dmitry Baryshkov wrote:
> On Wed, Jul 08, 2026 at 10:21:43PM +0100, Bryan O'Donoghue wrote:
>> On 08/07/2026 13:19, Konrad Dybcio wrote:
>>> On 7/7/26 12:41 PM, Bryan O'Donoghue wrote:
>>>> On 07/07/2026 11:11, Konrad Dybcio wrote:
>>>>> On 7/7/26 12:00 PM, Bryan O'Donoghue wrote:
>>>>>> On 07/07/2026 10:24, Konrad Dybcio wrote:
>>>>>>> On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
>>>>>>>> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:
>>> [...]
>>>
>>>> OK, I can see how this thread is confusing.
>>>>
>>>> The idea is to start to declare sub-nodes "on the road" to making camss into a bus. The legacy binding we have is really for the IFE domain - that is CSIPHY, CSID, IFE.
>>>>
>>>> Right now the camss binding describes those things - so linking say OPE or JPEG back to the thing that describes those isn't right.
>>>>
>>>> OTOH we_want_ to make the top-level binding into a bus, we've discussed that several times.
>>>>
>>>> To transition from monolith IFE-domain only, to camss-bus, we should have the sub-nodes fully describe themselves as "camss-bus" doesn't exist yet.
>>>>
>>>> Once we have compat="camss-bus" then fine, make that linkage, I fully support that.
>>>>
>>>> That roadmap BTW is why I'm asking Antanas and Loic to make JPEG and OPE sub-nodes of camss - but make them complete sub-nodes - power-domains, clocks, nocs, including the TOP_GDSC.
>>> I think this needlessly increases the amount of combinations we'll
>>> have to keep supporting down the line (with a ton of compatibility
>>> boilerplate code)
>>>
>>> Konrad
>>
>> Fine.
>>
>> Lets drop the bus idea then. I'm happy to close the conversation as
>> peer-nodes.
> 
> It think, this would close the path for upgrading existing platforms to
> split the driver / bindings. If all IFE / PHY / etc. are subnodes of the
> CAMSS, it is easy to play backwards compatibility tricks and
> reinstantiate devices on the fly, pick up only certain resources, etc.
> 
> If they are sibling nodes, it becomes much more complicated.
> 
> I might be wrong here. Maybe we really should try a simple (heh)
> experiment. We have your series which adds CSI PHY as a first class
> citizen. And we have existing platforms where CSI PHYs were packed into
> the camss node (and camss driver FWIW).
> 
> Which way of representing device nodes makes it easier to migrate
> existing platform to the CSI PHY driver, while keeping compatibility
> with old DTs (yeah, ABI, old DTs must continue to work)?

Quite frankly, I don't consider the existing (meganode) description
any valid, and would vote to rip it the second a replacement is
available. But once, not N times.

This is not to blame any of the original implementers, this might
have seemed like the right idea for the tiny subsystem on msm8916.

Konrad

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 73C00426D29
	for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 11:58:58 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783684743; cv=none; b=bVEQvfeT+6eC1xLhUmKptt6VCRxuAobozPKea/WG6NBSzES23IPEX7CbpjBc+AVa+Xi+TsweMGVnGNgMX2M5fr2kilAtcsdEg6cnK4WN0uE4ZUmjQWTsYrT/Bwx1qfp8CxWFB6wPyUapDqogOVNrUdijK5j6h16XLxeZviiEK94=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783684743; c=relaxed/simple;
	bh=o9MiqHPzrfvvaVbBYodqlmER0VtUGWx3b6VUioTVW0Y=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=ebxnVEiucRP106fpWqqbmnAAeOJUq3XUpeJBz5IIYqlM85+L/tDf0tU86GcgAeidekyiMYuFSdBRAN1HgkOXJTwM131iiyl2aiyQVSc71VY9oYWOYLgDfhOstkFqEyEeFvys+vlp2FMq0ZCA1FtnP8o/kqHuhy8Qc3bVqjELfP4=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=VMMokzzb; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hTgc+xtp; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="VMMokzzb";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hTgc+xtp"
Received: from pps.filterd (m0279867.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66AAmU69605079
	for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 11:58:57 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	BOVzTAGLJd1q5QSig/Oj+JpLd6wyrrESgMmKd5o1iXI=; b=VMMokzzbWZIWJWm6
	taq4lnl+/Wv8Kj58W5IH9luLrR3QxyHKNqYVvGqxMuptiueBURogYIboWpleIYv8
	byKvjIS+vE9iP/LhJUFQeOt7QA/orzc/l3MeKS8JdAOT7MdkFzDinB+N4VFQAnFg
	ucJvNjvEOfTPxqHoOHiTvFwfPdp1NrrD5nvRoVF52DFBuLufvGE2uh9yqf31hz40
	r/T2/rqHOiAB6s5xJvbfMy1jVgQL1VDHGlT7u5cvzuWADEUjBSSA/j+yESMwOh7o
	mlJfXYpnybpHHQw84vKRb645xidAPIj0MCtmTT/8GWB4vYELRC+pUIXQrY7gtq85
	BQIyTg==
Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fanweabj5-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 11:58:57 +0000 (GMT)
Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51a8c689b5fso9123991cf.0
        for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 04:58:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783684736; x=1784289536; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=BOVzTAGLJd1q5QSig/Oj+JpLd6wyrrESgMmKd5o1iXI=;
        b=hTgc+xtpQD18M6JTr65uDFAmoam0rmm5og+RvY4YfOtJwY4uRjVQD4zxYt9CPXXZV2
         cuy/p602Zs6JoQtQwyM9yjQEtC6VMTOa06V5OGbEy2U2t2d0sLyLuU63EJexJsM8+k5i
         VNwbwXgnr0ud6+RMvfOBWPmwJrt6z4P221kjGEZIL/J0f5IW2UYulR17cM5wX6Jl/qq4
         ubbEvOJJlTHZfDvFs6WyHEkkW0B472RdRf7PGQzM2YPOdl7xjnbJ88YIhz8smVI+sERU
         JMQbOrtREiDc2jThz5tY3Ns80W9Qy0zuSZZtd4fxrOlRU1NIrG4Lck0hUlz2eEvbDTxD
         sDRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783684736; x=1784289536;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=BOVzTAGLJd1q5QSig/Oj+JpLd6wyrrESgMmKd5o1iXI=;
        b=D/DSbNcsAUyIJIjtk3I60Qyv5p48VIM/pgdQk6mcpscrMrfHq/f6dTWj2/E+Vug95z
         mtuxyyS2di3vIObw/73fuYmYLRMTE5xyoehdy00u0QnZ1+lFaGzMeBs+7bjC0IQ2NCCg
         bvv+X7iEOaba+0fyDu5QiWMeHuMUSP6qg+jJZVZ6z4sgDjmrJdlWyOlrvFQSEOjm+dIV
         /y57M1O8OtxvEUrAi2tp028nn3basr1Ti62nRPW3xLThWHFP1PuxhZt4oI+v5z1MSTjF
         OXWqwEJicRrBpvdIr/WxM6LzsGYpxoEbycjH8a/Dion/Vg/SDU1/ULdEFN2SamTBe5Qx
         NIGg==
X-Forwarded-Encrypted: i=1; AHgh+RpUnILEaum3HoScvXcwitu5da+uYXsmIc2k+jSMP4L9iwbSHdNDAlHX0RjLAMTGTl3kt2T6YCcymg0m@vger.kernel.org
X-Gm-Message-State: AOJu0YwuTiR7PFAtHyOOfvvYORlvLYIalTopjErjG1YI8GvyPXtR4Lsf
	mdPbJItJC2+KgOYcXjzzzqUMf6cBJshZo4pS7naS1a2ACZPJ2MXU+Mwpfsg6k25PJ6CftewLebI
	ND7R71DRYE0YrXkhQNx6zwPGGzFd3pH7NhMYESWqiZSakTaq34+gRqlUrgeVSKuFQ
X-Gm-Gg: AfdE7ckgqJtK4gNeur92kwk7nBQ3RfsLxfe1EOXzQumyeFs8i3nJx15kNcXl/Q0mMVB
	hRJhK9W0uSBAZ5qpDhqYbHpsLXQOePiPDP71nyJAaVmz5lXFXLM4kplBQHIWv8Lxyjg5dc4xRta
	fZOL/BXti/pmFqceADFatwlfuez+21fk8G6N7Zxcwdcmgro3hqW3Akwy9wA78AL3ftVMlGd7qsO
	/lRZvcluhsAnzzE5L90V0UeHs01C+muE1ICx4mrR7BTykECRFEykn1L9SeGuk4NCZbt37IJmqAR
	v3/8/e42JQTQENrI34mPcVEOXcdBGeE+OXNZD04DbgusWB2aZQw7y8jcfkuwTgn8po5iu63iT96
	kPkUYNXCqaEnkKimzm8enYkVCryaf7bI1nuzD7ho+USg=
X-Received: by 2002:a05:622a:1104:b0:51c:10aa:9cd with SMTP id d75a77b69052e-51c8b456c27mr108997391cf.38.1783684736588;
        Fri, 10 Jul 2026 04:58:56 -0700 (PDT)
X-Received: by 2002:a05:622a:1104:b0:51c:10aa:9cd with SMTP id d75a77b69052e-51c8b456c27mr108997211cf.38.1783684736115;
        Fri, 10 Jul 2026 04:58:56 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69ac41d7ceesm3801427a12.23.2026.07.10.04.58.53
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Fri, 10 Jul 2026 04:58:55 -0700 (PDT)
Message-ID: <4c5b596b-1fc2-47de-a856-55621b038ca9@oss.qualcomm.com>
Date: Fri, 10 Jul 2026 14:58:53 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices
 via DT
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>, linux-media@vger.kernel.org
Cc: vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
 <d579ffd2-b99e-4e8d-b2b7-e7e896b2d71d@linaro.org>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <d579ffd2-b99e-4e8d-b2b7-e7e896b2d71d@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Authority-Analysis: v=2.4 cv=LbIMLDfi c=1 sm=1 tr=0 ts=6a50de81 cx=c_pps
 a=WeENfcodrlLV9YRTxbY/uA==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22
 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=IryoidPqrvUGrfnqEI8A:9 a=3ZKOabzyN94A:10
 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 a=cvBusfyB2V15izCimMoJ:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDExOSBTYWx0ZWRfXyZVH8L90sWMW
 WU91ohMlfvt3XeKL4w/4CqoEZklwY56wGtoBoDeRN9fChRIYBklOg8dc2ozM9lNfvK2tmbnbOld
 nAKwLwDo1A+gX/TClivv1XzgtPMLhVmGEaDFNkIuivFjAKm1Zt3dYPstGIZ0Szv5Mbm7XJGv21g
 ncr8KhyHbW1NMaYoKtx9Y6qnHdJsMoOVW+xDpkK/JqndKgPVRjb2tpZD8h4Ibv6bbb93JxZnGuF
 cq0wVwsH8Nr0riZqMckUU5Q72cqMcldr/0hB9UDnCwowxlmYdYWjqAtb3kP/RczitNIyO0TCq+H
 MuwE7KH5ShQedZvABteEVd45rEuGF+v1t2M/WRNl2Q2h8Nn/5pmR+yLWksaJ4p0v2zgtwC29SM9
 Nf0xo0YTM2C18YiRtLGcVe8jfS9nfmUJv/39skHNMNb49w8WVJzIEHjHVBnVyeve7WW3+IHReFy
 bW5qcDHwsm78eGouwAQ==
X-Proofpoint-ORIG-GUID: WHC7Z0LyzTo4dmtRcs3zKwDE2IpbuNM8
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDExOSBTYWx0ZWRfXy/ViPdJbns1k
 l2jLwsdX0EX2+VgtRXdIFdYlg62a9j0WhchoqZf7HP9l55hO1KA8vsqz3mqhMvyEVHOB0wemEFu
 bKbiRB8d8BvTeoNecxCD+PrfmXQ1u3s=
X-Proofpoint-GUID: WHC7Z0LyzTo4dmtRcs3zKwDE2IpbuNM8
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-10_03,2026-07-09_04,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 malwarescore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0
 clxscore=1015 impostorscore=0 priorityscore=1501 phishscore=0 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100119

On 7/9/2026 1:30 AM, Bryan O'Donoghue wrote:
> On 06/07/2026 08:11, Atanas Filipov wrote:
>> From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>
>> Use devm_of_platform_populate() so that child nodes declared under the
>> CAMSS device tree node (e.g. OPE) are automatically instantiated as
>> platform devices. This is required now that CAMSS is modelled as a
>> simple-bus and ISP blocks such as OPE are described as child nodes.
>>
>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>> Reviewed-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
>> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> 
> Looking at my commit logs I see this isn't my commit message ..
> 
> Anyway.
> 
>> ---
>> Â  drivers/media/platform/qcom/camss/camss.c | 3 +++
>> Â  1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/ 
>> media/platform/qcom/camss/camss.c
>> index 2123f6388e3d..95e655a8b6aa 100644
>> --- a/drivers/media/platform/qcom/camss/camss.c
>> +++ b/drivers/media/platform/qcom/camss/camss.c
>> @@ -16,6 +16,7 @@
>> Â  #include <linux/of.h>
>> Â  #include <linux/of_device.h>
>> Â  #include <linux/of_graph.h>
>> +#include <linux/of_platform.h>
>> Â  #include <linux/pm_runtime.h>
>> Â  #include <linux/pm_domain.h>
>> Â  #include <linux/slab.h>
>> @@ -5362,6 +5363,8 @@ static int camss_probe(struct platform_device 
>> *pdev)
>> Â Â Â Â Â  if (!camss)
>> Â Â Â Â Â Â Â Â Â  return -ENOMEM;
>> +Â Â Â  devm_of_platform_populate(dev);
>> +
>> Â Â Â Â Â  camss->res = of_device_get_match_data(dev);
>> Â Â Â Â Â  atomic_set(&camss->ref_count, 0);
> 
> Just drop this patch entirely and model JPEG as a peer of CAMSS. I'll do 
> the same with the CSIPHY and Loic the OPE.
> 
> Modelling for subnodes is nice if you have the idea the camera block 
> should be a bus.
> 
> But for what reason ? As you pointed out it should be possible to both 
> compile and run JPEG without the compat=camss node on sm8250.
> 
> Making the camera block a bus is a nice idea for "reasons" as this 
> thread has shown, its a problem to implement with an upside we struggle 
> to define.
> 
> When the facts change, I change my mind.
> 
> You were right to argue to have this as a peer node. Lets do that.
> 
> ---
> bod
Thank you for the feedback. I'll make the necessary changes in v5.
~Atanas

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 0215A403E94
	for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 12:28:24 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783686506; cv=none; b=pYxaoLHPh6QMQUwiqzGBBJRCVwv3XvAPQqJyIlSLq+XRAfq9ZcsZl65fSi1dI+9YZRaHmW57cMRsREMmOkT0JqIkdzPqqMC1Uy6VVBagscHvlP6mq9zr085Rbs09Yq63D6UzFiT3kOZTvXtkg3XxwZ4K3c37DzLzYrxrI76Mvr8=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783686506; c=relaxed/simple;
	bh=x2yLChwyDBlhoPwQp2bdOLo9LLSk9T4KgY8wi9Fdf0E=;
	h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:
	 Content-Type:Content-Disposition:In-Reply-To; b=a/xKAgZRN0Fv2lSaa0KGKaYK0X2/22UbRbVAu2JRDe/0dXAZsEut/+MYIl83S8uVE0JZ540+iPGnWwPW3AwtM/zBu+FRHggLrac+eciMfx1XR2W5oadBptXsoX2yrP70n66jJ4aRWH4s4V5lJP5Z9Su244xB6GD51uDUNDKHum4=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=AFKuD/aQ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=VygyrRBs; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="AFKuD/aQ";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="VygyrRBs"
Received: from pps.filterd (m0279862.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66AAmZfL486444
	for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 12:28:24 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=qcppdkim1; bh=pdrLWzgNx+QR5fQ2eGSJkfqM
	qM4R10g9Ep491Uwct/c=; b=AFKuD/aQoo6Ty4FYZvx24pIjl0tOpgFnkWeAidru
	dTo64hal/o7ehck4z3Sg7bLE85+AknoBrZ/AUB1ckdECFnyvW5KpqCrHFJThls4F
	uESqDesfQDfchrxgdjLuiI6pVNn1+C6LFts+QH/zFNz6Dd9Y4z3qKxQ8R5XXjfsC
	7vu0KbbIEqTQTK+4rTRWC/8XRPzMbXb0MTWweUQxW9kPhdf390WTtfnoDLr7mfkJ
	DcA9dxECg7vvXWvbLtLL6Pjsg/Cb97/iWgqGNqPXqaD09FDlgcTXQj+BpfvxJIZQ
	O4D52EU5FdFA63bquIVAef5+nWCR8WrrpaAYqXt4HDSh0A==
Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fajwtayrj-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 12:28:24 +0000 (GMT)
Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-737435677d8so904986137.3
        for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 05:28:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783686503; x=1784291303; darn=vger.kernel.org;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:from:to:cc:subject
         :date:message-id:reply-to:content-type;
        bh=pdrLWzgNx+QR5fQ2eGSJkfqMqM4R10g9Ep491Uwct/c=;
        b=VygyrRBsfLJry6B8NFQcA+rg3hoEWA85qEjK5nfW1QrKagr+RWINhgw2IsljTU2r4c
         hvnPIYk2vDUhmn4UrRpnogT33smTQtbVZe/urRNIb9XdQ1WTL3BSZqIYmOceoP9VUaWJ
         WPRijpo+BDvNsLWIUDWpt9o787a6YaxpdLXr+1qot5EmMXig7zhXH4vZL0Ljpi9u6pv6
         xzv91T8Opbuc1saSMLHomtm/ltMch/kGhJH+60oH9/X/JMkprhP4idFJ+NDx6ccA7zvB
         w9qT0Q/ebRIQelv8WE0h6q4qtwZ27QJ24wHAZfA9CzZ3rOY2hAePPDiMDotNaPN2Hc58
         nG4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783686503; x=1784291303;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=pdrLWzgNx+QR5fQ2eGSJkfqMqM4R10g9Ep491Uwct/c=;
        b=Z0iHZujr5mvZmKyiYT1v01A8od5seIZfRnzAObC+LkzrPyi4BCDOn1uzoFo6WYeOmw
         fZHs4TAC8h2STVVezRru4vCggCKWvK7n0b/fqAxFGbKhWpOpSzV6wMs6iGZwcSa25cnW
         sF04gpcYnjEXPBkxIG5snMnXGny8G/u+f7lHPX3O3wAayf8Qx2bWOP0tfIN4aVp0qU8L
         5EWBlJeOv+aJdPlZcK3hWWsQY7hY6hqWBsASnPkG0zYNksL8FUIH7vN+y4XNYV2125YF
         o4JzjZ3nxIdkFMhcVp79lg6ZdCZk6ZzbsdPro3omtGzyz0e/rKdpd/c9xT0H+Q8Zo+8s
         YsVg==
X-Forwarded-Encrypted: i=1; AHgh+RotJYbRHS3qKhtRBxfy5XUgzDq5ciPsh0uH9+4M7ybWg0s2tti1JZQrwFVTD/ibge9wUz6F1ZfJ33u4@vger.kernel.org
X-Gm-Message-State: AOJu0YyfDBGd7ueC7dDeyrY1ZOg52l7DT/rzDjPB4DIKP3m7wPzv7sKL
	AHK3Yym1AYU6FaHz6rAmJvAXn9UDi3erbgMKpikFAbZwneFnIEMTQqfxStd7xYiY+nCAOXSkemJ
	F8eoUEtcanBLNEGtlMt89uJsu/DZwGgDy5rCzKeKXJ6obW06kjG/awvSetKzj+lHG
X-Gm-Gg: AfdE7clfAhF3Re2B2nu7Coaw4jQ1v3hwtuRH9JVute4n38kcRKvPJH6aef4srchxQAq
	DLF/KpVGHA/c6jjr+3U3ByKjeERmNvlv4KbNoEI+XZtdYZNuALyMoOq8MUgM9kBKOKcSebatGzW
	N4ryXQ3qLnmvz7XFHx7ykIrTHb/TBGXE5kCMXmdsZ0BU69xhIxyIeqnJAatIk/66ZDLRPkTO8HX
	LvoVYeCY8OWIbTFjigSFSopSc50ihPLSr3HXsQ5pssXuqUS291WnM6Ggg1yxUp0BtisXwA7/0H2
	7s/z4rZja4S4v4jt0Vtrk1SM9SKt/7B/zz5GCWPAhNM50rRYbkFaUEtpUjo1QRns2pJDdzXu4cn
	HKj/sXdaBd18YH8EXIk7IVhsBM6T0MXN2cVEyRhqmevRK6vPW6PfySOWeR6uIKmeoRKU2uotPPe
	Y9eQ8GsxEnnTBcgAFbpGf6Gbc9
X-Received: by 2002:a05:6102:508e:b0:739:15ef:cdfb with SMTP id ada2fe7eead31-744dff7d21emr7063861137.5.1783686503109;
        Fri, 10 Jul 2026 05:28:23 -0700 (PDT)
X-Received: by 2002:a05:6102:508e:b0:739:15ef:cdfb with SMTP id ada2fe7eead31-744dff7d21emr7063826137.5.1783686502597;
        Fri, 10 Jul 2026 05:28:22 -0700 (PDT)
Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5b01ca4a297sm582454e87.7.2026.07.10.05.28.21
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Fri, 10 Jul 2026 05:28:21 -0700 (PDT)
Date: Fri, 10 Jul 2026 15:28:19 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Cc: Bryan O'Donoghue <bod@kernel.org>,
        Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
Message-ID: <l5fz64drffgrep57hj7kwc7v2drbg6kdkw4f7wxrmxf2kjjhsv@pcyyjtzi7jlc>
References: <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
 <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
 <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
 <VoXmpDKdgY_XxAvO5tkDze4jpmMzSuKTmIISTejJsbIO_FIO1JFfUBlaPkNdb14E95zf_qwtDB6myQ2wdRCh1Q==@protonmail.internalid>
 <8fc1ddfd-0f77-4b67-b9bd-33fbd60e2046@oss.qualcomm.com>
 <54ad9b8a-7596-4bc7-a1c3-7230cca21360@kernel.org>
 <wbjec4qhzkpvdfnrvffk7tjmlvli5q2jiuzdp2iqt2cbf2uat7@usg2mizurxpp>
 <29bbcc9d-a0b5-4966-a195-1702ed514a4a@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <29bbcc9d-a0b5-4966-a195-1702ed514a4a@oss.qualcomm.com>
X-Authority-Analysis: v=2.4 cv=XOYAjwhE c=1 sm=1 tr=0 ts=6a50e568 cx=c_pps
 a=P2rfLEam3zuxRRdjJWA2cw==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=xQqxz70HCiEPHx7muvEA:9
 a=CjuIK1q_8ugA:10 a=ODZdjJIeia2B_SHc_B0f:22
X-Proofpoint-GUID: Cllme5XY42eyKphG52TWw6F4rhnGhJJc
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDEyNCBTYWx0ZWRfX0MxV7fvdSmCx
 1JLv6PO++BSmvb9XVYrEwHbzULugvxSZq5WDT5XMuzMEdTQjwI5SIEqGtenhyyPHeTSBGPbEVS0
 AcLivFx2z+wD9AWlfclqd6upPvQlZ18=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDEyNCBTYWx0ZWRfXwPUMAOzCzKgB
 E3q5YqgGHxfL/8A/F3p6t5hbBflx/7nhLFd4VHquLfr+M1frrTL6iS4dkXvOnJ3WmaFcY1pOToO
 muEJIqG/yM0na4KoA7Lk6nERQIp14VBvBl1zbEKG9XhGMsukk2L65sPAgKTXiOJXq+WGhr4WDdt
 Rlzay2YIkSLlJYN93bwl3KusSuDEQKK07qfk+VyYcaMQgn5F9QX8PZhLOOTD2vY9DQT8wrWpqEK
 3iTt7YsdDCzN4jRo0h8bkEs7I0lTVk4sY5G159a1+HqMyrZtSdj5Wd6LQgM57sDRWS/SfrOlqZI
 JXqPq7rcRaKIh6uyFtK4atahTuqehOz2qe7JLSxzQJL/QR6JHCsvGrMe239w//YLRzIYPpZERwm
 CzLZ5vKveMwFhjF6AMT0y4QIptjc5KfWxVsc1SBXA2TwipSp3hdMQJLXH1oEWLv6uspM9NC0XLC
 1LowsvtIpnPizqI4+4Q==
X-Proofpoint-ORIG-GUID: Cllme5XY42eyKphG52TWw6F4rhnGhJJc
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-10_03,2026-07-09_04,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 malwarescore=0 suspectscore=0 adultscore=0 bulkscore=0
 spamscore=0 priorityscore=1501 clxscore=1015 phishscore=0 impostorscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100124

On Thu, Jul 09, 2026 at 08:16:21PM +0200, Konrad Dybcio wrote:
> On 7/9/26 9:33 AM, Dmitry Baryshkov wrote:
> > On Wed, Jul 08, 2026 at 10:21:43PM +0100, Bryan O'Donoghue wrote:
> >> On 08/07/2026 13:19, Konrad Dybcio wrote:
> >>> On 7/7/26 12:41 PM, Bryan O'Donoghue wrote:
> >>>> On 07/07/2026 11:11, Konrad Dybcio wrote:
> >>>>> On 7/7/26 12:00 PM, Bryan O'Donoghue wrote:
> >>>>>> On 07/07/2026 10:24, Konrad Dybcio wrote:
> >>>>>>> On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
> >>>>>>>> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:
> >>> [...]
> >>>
> >>>> OK, I can see how this thread is confusing.
> >>>>
> >>>> The idea is to start to declare sub-nodes "on the road" to making camss into a bus. The legacy binding we have is really for the IFE domain - that is CSIPHY, CSID, IFE.
> >>>>
> >>>> Right now the camss binding describes those things - so linking say OPE or JPEG back to the thing that describes those isn't right.
> >>>>
> >>>> OTOH we_want_ to make the top-level binding into a bus, we've discussed that several times.
> >>>>
> >>>> To transition from monolith IFE-domain only, to camss-bus, we should have the sub-nodes fully describe themselves as "camss-bus" doesn't exist yet.
> >>>>
> >>>> Once we have compat="camss-bus" then fine, make that linkage, I fully support that.
> >>>>
> >>>> That roadmap BTW is why I'm asking Antanas and Loic to make JPEG and OPE sub-nodes of camss - but make them complete sub-nodes - power-domains, clocks, nocs, including the TOP_GDSC.
> >>> I think this needlessly increases the amount of combinations we'll
> >>> have to keep supporting down the line (with a ton of compatibility
> >>> boilerplate code)
> >>>
> >>> Konrad
> >>
> >> Fine.
> >>
> >> Lets drop the bus idea then. I'm happy to close the conversation as
> >> peer-nodes.
> > 
> > It think, this would close the path for upgrading existing platforms to
> > split the driver / bindings. If all IFE / PHY / etc. are subnodes of the
> > CAMSS, it is easy to play backwards compatibility tricks and
> > reinstantiate devices on the fly, pick up only certain resources, etc.
> > 
> > If they are sibling nodes, it becomes much more complicated.
> > 
> > I might be wrong here. Maybe we really should try a simple (heh)
> > experiment. We have your series which adds CSI PHY as a first class
> > citizen. And we have existing platforms where CSI PHYs were packed into
> > the camss node (and camss driver FWIW).
> > 
> > Which way of representing device nodes makes it easier to migrate
> > existing platform to the CSI PHY driver, while keeping compatibility
> > with old DTs (yeah, ABI, old DTs must continue to work)?
> 
> Quite frankly, I don't consider the existing (meganode) description
> any valid, and would vote to rip it the second a replacement is
> available. But once, not N times.

Rip without providing backwards compatibility?

One of the options would be to follow the 'venus/iris' approach: land
new set of component drivers, which target new platforms and provide
minimal support for one old platform (maybe via autoapplied DT overlay
or other similar techniques). Then continue migrating and phasing out
camss driver for old platforms, while adding support for new blocks in
the new set of drivers and ripping support from the camss driver after
some migration time.

> This is not to blame any of the original implementers, this might
> have seemed like the right idea for the tiny subsystem on msm8916.

Maybe...


-- 
With best wishes
Dmitry

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 70A39422552
	for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 12:34:01 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783686845; cv=none; b=hn1IZfEwveOZlnWGKRefyaaE/brjNM+S3PuIp5MslZSuc9pvjOuc8F7wbjCU4/gVfUv+wZChn5HgEf0bWLls2x96Q+fHBive9riXSHYB4TcoO86I+Z1h9TKl7wSZ0zQv6TNgATTjKWuRgpuK7aFq9GHSDh2reoNlQrsEQ00Uajo=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783686845; c=relaxed/simple;
	bh=gmNJ4oLCqisfWMQ2xkv1odn445Wq7mkxpGEegNDrq9s=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=N+WNphlhxGLGaiQGoBt7JkEd+mYWzFd4ysWb2VLzL0nBz6EOPSlI7137O0mL/UhtLinXVmAe4zhrx4eKQ6WL9Zf1O15YinIjXhsIjJbGEJRl8syLc2mY/2zd4L5hHeJBHbWJC2oS4bojNoliUMnZrNnh6TGqfxlyyTsE5HxTZdE=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=KRImbWqE; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=CCHwbI5P; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="KRImbWqE";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="CCHwbI5P"
Received: from pps.filterd (m0279867.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66AAmVnC605096
	for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 12:33:59 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	rrOo+UhzctHRE8y7sYY3z4m/BCBdD+Ep7OuN8Y4dfps=; b=KRImbWqEJCCBH65E
	35JRXVLMJd7Epy4gVzPxnoEBD4tgtOiLjrGgc7VFqdk9yVX01lX7M5Ot3QGEE035
	eUXk4jd4clXRrrsIelZy++ymfQyUK9N5Jzf2Rzom4EeTvDUmSqngsq8SaE8CmNMJ
	9sL9tVcon5H0RoRxLdfl7r+NX/vwoJLpVny3Fwfo+dUlODNuTOea6KmLJ8693BTG
	M+ICDBoRenJ0ziLRec+cJjVOlhKj5nqS6dWp7yYHPHhunZgkBKgkxY06sd5wy/5t
	Rkt1FWf6EPeUMX8O/qiBXNO+4Ao1H+Q8RGar45jy+jpHySEM1ikcgQ5+gxkWa3ZP
	qUBYAA==
Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fanweafj3-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 12:33:59 +0000 (GMT)
Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-8f21e4e8b66so4240676d6.3
        for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 05:33:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783686839; x=1784291639; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=rrOo+UhzctHRE8y7sYY3z4m/BCBdD+Ep7OuN8Y4dfps=;
        b=CCHwbI5PQ9zTh+vE+92XlwgSXRby8GA+jmEYEOs6V7cPJ72xQon0KwXgXbXWe0lvPp
         VOGIYIrS0QPDNlyo8koE8R5jrDO20zkVOO8JwOMFUDJxdU8YRGXYNgVsDHGaDUX88jhJ
         5FJNdeXm4+Nd4x668gPmvuUL1Gu+oclvuRlQBo9F2H8q4lDmS5fTFq6+C1xCJOfNAxcY
         xGsspz7jBuulZDCLytxoi5XG8Es2bM1ZQjuiHbMs/A5VIC+P3i/lf4zZi1L6XZsh7VNk
         1CLppcSsYy17McMjgP6h2lgItB3zpSa8Fw5PUV5co/MplyQIlsx+jnJ+Upv/qce9lcGT
         2LpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783686839; x=1784291639;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=rrOo+UhzctHRE8y7sYY3z4m/BCBdD+Ep7OuN8Y4dfps=;
        b=edjqV3+85OVD+I+zYFMuIgyOuClOMlTmkJf5Iu4bCGKoWjX8voIWaVwPmoiKu4aHTj
         f2Hkk7B83wEuJfKEKFNHW1rBMIx9mUcLqrdQ9Nae69w1yevGzcXKGDiBqW9Ttuarz/6i
         ekWbHdkZWSLZ6uCXo5y5zY03QhDijTaS1OTMq+ymY7ytuW9nPcQqHUHyIaKfLWzO2v3F
         vqZweeUqePymZLK7GPNqwRFuWctrYnBi3iRrOiCo6kmO/kNoKndGBbsqtf1yHFnPOIlA
         VJuT+eXP6iCDeaH/f4h++lymUxXsKRzlKLi3R4uQyhsSffvlHdIn5tiAe0La0NJTOast
         NOVw==
X-Forwarded-Encrypted: i=1; AHgh+Rr0KXU3AjnPujL1UzPYrUbmcEyBDjMnsvZGl8gmnnmo8Lfd9my97xDdpeGqe11yBzZRiENAVF0dHKmo@vger.kernel.org
X-Gm-Message-State: AOJu0YwIWQgIoZE59ci8EAgFfaX9R7sq8mHQNSXuhFJQwQHoHTS6n6Qs
	wEQ1o5l3vxila+pRVgsMylR7S2jYWsLntd4cEVKrTYgmbudbpP0SeqKqQ9KCh6CP+/oep6yXSmh
	Dw8FSjtGExLVCfuNRRC6Ie4XfNBtH4npq/WPZ7KS5wDs8YB7gapQ2RvftXXe1bj4z
X-Gm-Gg: AfdE7cksBLHkC5K8MVwXvYgKnHcsR2S3QX4YZOxaEgoDjDe5BSq7EfETuC5THPGYhes
	FEZrTsks0TO7h0cnZ2ZfLsR4g+jZgcF31L10Oyrst+NPT10oZEr8urTim+y0GjP/9Mn9kORPSeq
	i/PbWT8Pz5HU8ijBRMymDuXJ6pny/ajuUmWJ75G1l5HxeBkY22p8mg5EAnqh18GvanlQ4YZf0+N
	h1hSKdDq6ByWiN+rN2D/SveRMQrvwGfJ6oRv2CqqyyFqwr7D+uzWQ1UQqY8f58zrIPiJEqP1ZXZ
	oLjQoegi0U/eXenZRjU21lymo12V7usA6/QEZsGjD2fbmS2xa3vEShBB9y48UQgLX6MWQD0UbGV
	g/AB3d+/OS0WmdOu4bUNuvTZDGeQFPjxRXmM=
X-Received: by 2002:a05:6214:4907:b0:8ef:4749:b1c9 with SMTP id 6a1803df08f44-8ff957351eamr82841016d6.5.1783686838732;
        Fri, 10 Jul 2026 05:33:58 -0700 (PDT)
X-Received: by 2002:a05:6214:4907:b0:8ef:4749:b1c9 with SMTP id 6a1803df08f44-8ff957351eamr82840646d6.5.1783686838278;
        Fri, 10 Jul 2026 05:33:58 -0700 (PDT)
Received: from [192.168.120.193] ([178.235.128.140])
        by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69a19ce4b4fsm10705561a12.10.2026.07.10.05.33.54
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Fri, 10 Jul 2026 05:33:56 -0700 (PDT)
Message-ID: <1921023f-da03-4f3d-8489-bfa2c5fe4f3b@oss.qualcomm.com>
Date: Fri, 10 Jul 2026 14:33:53 +0200
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Bryan O'Donoghue <bod@kernel.org>,
        Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
References: <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
 <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
 <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
 <VoXmpDKdgY_XxAvO5tkDze4jpmMzSuKTmIISTejJsbIO_FIO1JFfUBlaPkNdb14E95zf_qwtDB6myQ2wdRCh1Q==@protonmail.internalid>
 <8fc1ddfd-0f77-4b67-b9bd-33fbd60e2046@oss.qualcomm.com>
 <54ad9b8a-7596-4bc7-a1c3-7230cca21360@kernel.org>
 <wbjec4qhzkpvdfnrvffk7tjmlvli5q2jiuzdp2iqt2cbf2uat7@usg2mizurxpp>
 <29bbcc9d-a0b5-4966-a195-1702ed514a4a@oss.qualcomm.com>
 <l5fz64drffgrep57hj7kwc7v2drbg6kdkw4f7wxrmxf2kjjhsv@pcyyjtzi7jlc>
Content-Language: en-US
From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
In-Reply-To: <l5fz64drffgrep57hj7kwc7v2drbg6kdkw4f7wxrmxf2kjjhsv@pcyyjtzi7jlc>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Authority-Analysis: v=2.4 cv=LbIMLDfi c=1 sm=1 tr=0 ts=6a50e6b7 cx=c_pps
 a=UgVkIMxJMSkC9lv97toC5g==:117 a=PRfkaYvzSr8QmIIGAkY2Sg==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22
 a=dFzIMAVjCySLt-5DOyQA:9 a=QEXdDO2ut3YA:10 a=1HOtulTD9v-eNWfpl4qZ:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDEyNSBTYWx0ZWRfX9VQ2J66RR8al
 2WRz2y7Te5b2sofR9lrlKWj9S/Q4UlkzpcgswQznlF3Ydo1WLQlWupSw2Mz75B/EzoCSEoN08c0
 AyDWK3mXzgjVBGAfa61gKbwtIYjavdmSBXl7BK7JwP098mlq/aY3vm6NGpvBbuNxNMqXjOpzr8n
 eXXzhtYk5TP2SMqdidipgTgxd0N4U/QS7p/ngSA9sChwWWEeu9kNBRfPzfPF/lYSpBElGcOwASB
 4LeNd1efDP6wZArn3i+kOyMTLUmhtNzFs248Ic8j9rFS4cTQXWv6yxY5bkZGaU4kVUzlZnvqeYD
 N1TdaR7XzEJXlifvqBewR8MCh4GhQ1ffiPTI5/7QS3GSyRt6iJ2kIYXQslvG+W2XWwuYa3jeSu0
 aW583uAcKjoQa2gdkZbkse3hNqcU5LuSDPe8rT/Ed+iOZ8ZIl6blCW3i/P6MXnm2b2eBai3hIU4
 KJ1t76ErI77Szfm8nNA==
X-Proofpoint-ORIG-GUID: oBE1jXI8tVqjlN9yAYwHa7GO_IjshYzH
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDEyNSBTYWx0ZWRfX6jRpMkZc/aKr
 OKCgvs6m5Q9yffYvlNpieCcjRz58tsFDRjwDpA9AColXY4xqA9DuzmjKv7OBR3ReSJmxpVaTfW5
 LJ0wXvjrCxr4/PYNm136HCpIDH9CVTU=
X-Proofpoint-GUID: oBE1jXI8tVqjlN9yAYwHa7GO_IjshYzH
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-10_03,2026-07-09_04,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 malwarescore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0
 clxscore=1015 impostorscore=0 priorityscore=1501 phishscore=0 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100125

On 7/10/26 2:28 PM, Dmitry Baryshkov wrote:
> On Thu, Jul 09, 2026 at 08:16:21PM +0200, Konrad Dybcio wrote:
>> On 7/9/26 9:33 AM, Dmitry Baryshkov wrote:
>>> On Wed, Jul 08, 2026 at 10:21:43PM +0100, Bryan O'Donoghue wrote:
>>>> On 08/07/2026 13:19, Konrad Dybcio wrote:
>>>>> On 7/7/26 12:41 PM, Bryan O'Donoghue wrote:
>>>>>> On 07/07/2026 11:11, Konrad Dybcio wrote:
>>>>>>> On 7/7/26 12:00 PM, Bryan O'Donoghue wrote:
>>>>>>>> On 07/07/2026 10:24, Konrad Dybcio wrote:
>>>>>>>>> On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
>>>>>>>>>> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:

[...]

>>> Which way of representing device nodes makes it easier to migrate
>>> existing platform to the CSI PHY driver, while keeping compatibility
>>> with old DTs (yeah, ABI, old DTs must continue to work)?
>>
>> Quite frankly, I don't consider the existing (meganode) description
>> any valid, and would vote to rip it the second a replacement is
>> available. But once, not N times.
> 
> Rip without providing backwards compatibility?

Because the existing bindings make ensuring the required performance
state of power domains impossible, yes

> One of the options would be to follow the 'venus/iris' approach: land
> new set of component drivers, which target new platforms and provide
> minimal support for one old platform (maybe via autoapplied DT overlay
> or other similar techniques). Then continue migrating and phasing out
> camss driver for old platforms, while adding support for new blocks in
> the new set of drivers and ripping support from the camss driver after
> some migration time.
> 
>> This is not to blame any of the original implementers, this might
>> have seemed like the right idea for the tiny subsystem on msm8916.
> 
> Maybe...

Interestingly, there's a number more peirpherals inside the 8916
CAMSS too, I suppose some enthusiasts may poke at that one day,
there was quite a sizeable developer base for that SoC at one
point.

$ rg @ arch/arm64/boot/dts/qcom/msm8916-camera.dtsi
15:     qcom,msm-cam@1800000{
19:     qcom,csiphy@1b0ac00 {
41:     qcom,csiphy@1b0b000 {
63:     qcom,csid@1b08000  {
87:     qcom,csid@1b08400 {
111:    qcom,ispif@1b0a000 {
155:    qcom,vfe@1b10000 {
212:    qcom,jpeg@1b1c000 {
232:    qcom,irqrouter@1b00000 {
239:    qcom,cpp@1b04000 {
273:    cci: qcom,cci@1b0c000 {

(there's probably more hidden in magic reg accesses)

Konrad

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 7D75C427A06
	for <linux-kernel@vger.kernel.org>; Fri, 10 Jul 2026 12:52:58 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783687980; cv=none; b=GCIXJdlTcPMNAMNo+PGKoP0qkcSgfxz+mR182LBsKVxXKV50Y4BHNiGWAiiH3Hb5ihMF6/MvLN2/zVdVYDbSRAFn+jB8bMDcKiCex2IFkKKYLSkeL22DKns9l7pR+uKqTa8VucWoY5DMvtHuqxBOkekJWJqKFqB4CqipSHx+PUk=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783687980; c=relaxed/simple;
	bh=dff3dPz6fj6WTu2ipiERxBpDc6obBjfF4qBxHiQ0VQM=;
	h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:
	 Content-Type:Content-Disposition:In-Reply-To; b=NZzInCdN/EKsxOy4ppSFFlpWbThqkEPSx/kpnmRDCOyqGySv/Y44BXXngTqYRRiR4gncUl22Fn1u+sazkIC9u09dgIDqsAUQC0cQkXirEAgp6ptv79pdFxwCvRKlKhUNzw377VRVjgM/D/UvNKXGWVdbACEO/1hhaTCtoAGGDMs=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=I42/IKe3; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=TTWin0qi; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="I42/IKe3";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="TTWin0qi"
Received: from pps.filterd (m0279863.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66AAmVqV615095
	for <linux-kernel@vger.kernel.org>; Fri, 10 Jul 2026 12:52:58 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=qcppdkim1; bh=NpAfu+gzDtNcSOBz6LH2pQ8p
	/Lp4trDqfrlm8ofYnek=; b=I42/IKe3Ri7lwyhxcP0dFl8qFQsMZfU3/utC6aPK
	eAN/xFQ+dwmBwLOZ5GbU16gbOUoqyNZ7IThEm0FjgpqXriMwwI7ZFq7vXpa4ilaA
	xY8MVwJQOL5iO0WrgnrdPvdQaWoZ96CY/8eCNX3+rfoedBsriIvzOge9GyiTb5EI
	CIiyZmZRYWdXoWOBlX+TOun4Zo5KDZISDpmx2Qj7xxrW/RhXDhdQAn8UH1RqYKIZ
	u252r/L4QbuqCzBLdhNEYCtieER6FgfyLuF9wfU33O7KPXLW92K37Rk2RvODGnBC
	aM1AQ7GI3JhgPMR5Zb3FeYff6jIO4IIqRRUvcaGtkzu0LA==
Received: from mail-vs1-f70.google.com (mail-vs1-f70.google.com [209.85.217.70])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fajte34sw-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-kernel@vger.kernel.org>; Fri, 10 Jul 2026 12:52:57 +0000 (GMT)
Received: by mail-vs1-f70.google.com with SMTP id ada2fe7eead31-738ffe90415so205455137.3
        for <linux-kernel@vger.kernel.org>; Fri, 10 Jul 2026 05:52:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783687977; x=1784292777; darn=vger.kernel.org;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:from:to:cc:subject
         :date:message-id:reply-to:content-type;
        bh=NpAfu+gzDtNcSOBz6LH2pQ8p/Lp4trDqfrlm8ofYnek=;
        b=TTWin0qiqB0AWM2LBof4QfsNT9HPUntmWzB76f5Mk+m3VdgFABrfHqE7FzF74zz8q9
         ihefGc2h+uPVMwCk5rsYPMf9nCLhvmMrQfPDGgmnFabTeipPfIvfFnMh4pz608qAKrHE
         hZfo0SdELBRXPNSiGaPH0yZxOpx+b2uQkq6GeMjax7PvoZkW0ETW1DC+V2KSpL3haLSQ
         /b0/76mS3wQg9NqF/Jz1XP9L+0+sw9hk5qGvYAUMZdgidcFhTgHZWXjBwY5GdnAP468D
         Nb1mC0JBSjlToONE2jTTZx9GVWYH4cY5HhiLsS+icsW9sJ7P8av2UcmnVy7MYv0lWqgw
         /BJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783687977; x=1784292777;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=NpAfu+gzDtNcSOBz6LH2pQ8p/Lp4trDqfrlm8ofYnek=;
        b=VZ09LauKdZumW6t84USQWA6YjCyMrCJtxq4MvI9MqJkBv/btNM87a3hn0MaP7CQovt
         0Ls7EoySHoZWmoIMFxF5EsfGo2U9bLbBUr9Gr+wNalPeSvpRPmMKpT5F6oRmIw0rm/ZN
         j3P2ED2zEMqzF3dXqkherwbFwDl35Fhh95YDDE8PBPTeq2gJq3UFraEfAyPgZdQRd/2R
         8rD6/c5hqbVx80v+1EKF56NysA35KGeTFO2Ww2Ny8C3osLPcJoxp9DI6IK6X8GT1YH+A
         d7dU/Pu77njttEhwa5Ls114vcmQ+BprN5Sy1wxNMmNFRmIVPbn3is6ZaHPxah0aj6Obd
         kv7Q==
X-Forwarded-Encrypted: i=1; AHgh+RpbK08sujZOZ1rG/t6ze2UXI1F5oiRndnLZddgCZbM5Jc1jGl1fw+Vf5nfIx9ltmVug0djtwFOHdLvjhPM=@vger.kernel.org
X-Gm-Message-State: AOJu0YxycwfAeAcNxG3MaRVEwCXP9bqHtue7RI6zsMH9J/7FdyR15kQu
	j8BPpxXYoNwYplR+OPTEsKtguR04O5TMGiw8DaTGsIz00ooXBs+ifGkkitqP4XvW9obS57u5gSs
	6+I+yGGavmzI9JgcDhTJkJGTMyIpo3shXRJ/0yOZVZjDnPm32YOiGo7dCGhpm+nwmWYk=
X-Gm-Gg: AfdE7ckXcUFLbaqqVRRA16B2DjCnYabgN2GuTVV1jPFCqWYHTf+NXhIYYFbDnPv/ZFK
	QMdO+B6rxWjectOHv5WEnrsawUon5mDVpXaWzlP9cyl/kRzQ9C+0kz1sTUs7fhL93NwLNEtrY0J
	CQFygRhjmldUCZg/rKgmTFvTSLHGdDmzIr6y6IJfnDc7NeHezuWO9uOfhBo4nt3dvX4AS1xrwNG
	IzUnCcGfI9rqR3HguMt/Uui/tOBvoAawaspoHrPZLq6cfyJeJedtguNfku2m17B5MKvTPjI250V
	MB+IOfK1R3SJNtbmhsrQEwavXrz3llUSkTOM/hrbHpozrXMwiCNPV0MJ5igyZuN1UImPYBVsS9V
	uLYTTJu8/kGk5cWn1x/STFE9h9iBwKiFnTkfvxOlVnyJW1uBErdeDFJf0+TyFL83Plo5IJg83Gz
	lwN+8i/bmGK8AfG/UkpTN+6dlI
X-Received: by 2002:a05:6102:914:b0:740:2664:801b with SMTP id ada2fe7eead31-744e00462c3mr6355722137.11.1783687976775;
        Fri, 10 Jul 2026 05:52:56 -0700 (PDT)
X-Received: by 2002:a05:6102:914:b0:740:2664:801b with SMTP id ada2fe7eead31-744e00462c3mr6355697137.11.1783687976325;
        Fri, 10 Jul 2026 05:52:56 -0700 (PDT)
Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a])
        by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5b01caa635dsm589398e87.62.2026.07.10.05.52.54
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Fri, 10 Jul 2026 05:52:55 -0700 (PDT)
Date: Fri, 10 Jul 2026 15:52:53 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Cc: Bryan O'Donoghue <bod@kernel.org>,
        Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
        linux-media@vger.kernel.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
Message-ID: <olngpgjkxejkpnxtbwazut32umi6w6zc5gsqybpmnzm6kliywf@5eclmxcnoybc>
References: <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
 <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
 <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
 <VoXmpDKdgY_XxAvO5tkDze4jpmMzSuKTmIISTejJsbIO_FIO1JFfUBlaPkNdb14E95zf_qwtDB6myQ2wdRCh1Q==@protonmail.internalid>
 <8fc1ddfd-0f77-4b67-b9bd-33fbd60e2046@oss.qualcomm.com>
 <54ad9b8a-7596-4bc7-a1c3-7230cca21360@kernel.org>
 <wbjec4qhzkpvdfnrvffk7tjmlvli5q2jiuzdp2iqt2cbf2uat7@usg2mizurxpp>
 <29bbcc9d-a0b5-4966-a195-1702ed514a4a@oss.qualcomm.com>
 <l5fz64drffgrep57hj7kwc7v2drbg6kdkw4f7wxrmxf2kjjhsv@pcyyjtzi7jlc>
 <1921023f-da03-4f3d-8489-bfa2c5fe4f3b@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1921023f-da03-4f3d-8489-bfa2c5fe4f3b@oss.qualcomm.com>
X-Proofpoint-GUID: qLUNM2fKmkVMfmFwhrvQOpG8sx5i-uuN
X-Proofpoint-ORIG-GUID: qLUNM2fKmkVMfmFwhrvQOpG8sx5i-uuN
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDEyOCBTYWx0ZWRfXwfwomO3loyeR
 CKoHGHDX2jEzWXYg+0vHMuw2GETPJ4A+ykWcHeo+UQHme5PivXgdMbDpk6rUutcVzPaQ4ROgE0q
 kpGLMO68UClGYQLbN1SAwXuTCrdtmBeRQj0Bderv3anu6RpFMDqqnR3LwLMeNG4Cz+6Ewz5ZElz
 4VTCXytaY7IgBX6ZNRYu4gwUGZ6dPptuYij7uR5/LjZWpgk37AYmkECT/SnlwCn5JOZayTX11sx
 /DnyacJvyu3n0R7QnYxnrcZSnmZ+QuLe96b6j1ET4SdFKNzUeTxrMKs/W/ysxP8U+kblCd5ntiU
 wPt/tHD0LHEqi7lZoUA3e4/IdN2Pb39kybCCl6mT96bVFuwdjjRMhGNKjSz8W50OnfJfTfOTwtY
 W9mOkE/rL7X+M00R4wc1ZmbZgfOutbGyvv9mAKrc5RRsOG+1sq1Czvzi67W7nWS4SDCC36qDfUZ
 sfzEibiFzG+CyX1JHMg==
X-Authority-Analysis: v=2.4 cv=N7MZ0W9B c=1 sm=1 tr=0 ts=6a50eb29 cx=c_pps
 a=N1BjEkVkxJi3uNfLdpvX3g==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=0W1SmJJ0diwaTAMQS2cA:9
 a=CjuIK1q_8ugA:10 a=crWF4MFLhNY0qMRaF8an:22
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDEyOCBTYWx0ZWRfX1yo4PRxR2+bq
 HvXuzi7tjoVMJcc3szR/ZJbBliuBeWlnIdYgmHV5ZlMfvmfeEwQlprqI+9UB7VygZGAA7OGC5BF
 YjDovOWfQ/E4qBQh6W2hHIq0xCfopVE=
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-10_03,2026-07-09_04,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 clxscore=1015 spamscore=0 impostorscore=0 suspectscore=0 adultscore=0
 malwarescore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100128

On Fri, Jul 10, 2026 at 02:33:53PM +0200, Konrad Dybcio wrote:
> On 7/10/26 2:28 PM, Dmitry Baryshkov wrote:
> > On Thu, Jul 09, 2026 at 08:16:21PM +0200, Konrad Dybcio wrote:
> >> On 7/9/26 9:33 AM, Dmitry Baryshkov wrote:
> >>> On Wed, Jul 08, 2026 at 10:21:43PM +0100, Bryan O'Donoghue wrote:
> >>>> On 08/07/2026 13:19, Konrad Dybcio wrote:
> >>>>> On 7/7/26 12:41 PM, Bryan O'Donoghue wrote:
> >>>>>> On 07/07/2026 11:11, Konrad Dybcio wrote:
> >>>>>>> On 7/7/26 12:00 PM, Bryan O'Donoghue wrote:
> >>>>>>>> On 07/07/2026 10:24, Konrad Dybcio wrote:
> >>>>>>>>> On 7/6/26 3:37 PM, Bryan O'Donoghue wrote:
> >>>>>>>>>> On 06/07/2026 14:02, Vladimir Zapolskiy wrote:
> 
> [...]
> 
> >>> Which way of representing device nodes makes it easier to migrate
> >>> existing platform to the CSI PHY driver, while keeping compatibility
> >>> with old DTs (yeah, ABI, old DTs must continue to work)?
> >>
> >> Quite frankly, I don't consider the existing (meganode) description
> >> any valid, and would vote to rip it the second a replacement is
> >> available. But once, not N times.
> > 
> > Rip without providing backwards compatibility?
> 
> Because the existing bindings make ensuring the required performance
> state of power domains impossible, yes

Then, should it just be 'write new set of bindings and drivers for the
platform XYZ', then completely migrate existing platforms one by one.

-- 
With best wishes
Dmitry

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 6B811271A94;
	Fri, 10 Jul 2026 13:28:56 +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=1783690137; cv=none; b=m17ymNWiNtH+AO30MltT59ulcZgVSB9UGXUqHoHbgqq/lKZphQNJJxhef3Sc6z8mLCrtS0OEFQeKF0DxbTzRLsEwEuMWA0ZbCUl5hZAI1YSEbidO4/4Lg5m8FROrwLywROPGTg5DquCax0c2CyapOWRL7ayojXQUhKjSqkFE7ik=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783690137; c=relaxed/simple;
	bh=x3ylzfajcfhzuF/2tJAwaPPUVluFa9Bj/3/UqJ9h3dw=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=U3Jb5qr9JCd9GgRq/KOotbwrq8caDcchaLF4JR8GpVTzVc+lR2sJajrxMl4hkz6MUTDFleMBDvAXZUfEyfujfufkr//MpNE9vb6zrsF3vn4AaRGbvAzmR1KrHp6BthDEyLRW+rrxMnkH4NtUZqvgTW9FJH5VbgoDiJAgiU5EVT8=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gp/fyBUl; 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="gp/fyBUl"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 695E31F000E9;
	Fri, 10 Jul 2026 13:28:53 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783690136;
	bh=3+XJ1qdDH8KIdKy8zMYCU4r+kMkqGJtFQ429TJspcOY=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To;
	b=gp/fyBUl7OdeNTThOxqD9/HSVRHAXgJaZNgPyJisPN5SLiio+asyIZ+qGNGTfS1kQ
	 7eJcUgaJtKpN5NtY4G08nS2OK2iKt253KiaeZoKiDgK+T4hC+J98EZmJ5F4xheNJxF
	 B2sGFHSsZe/fYDGUS+cvWTHdHiqzF/8oPvcBSfCZmGYWuSSEFWPmPTHr2bSbx/B9ke
	 i7Y/YDLVloIsai5u71xBvIN2VnVGlwUHGvljnm4Qzi/Oz3g4o946CRjrSVNnmCmnCZ
	 CkYnlRx7cdOZ8Kh6YjSN2/0yDfGw9B9rSuBvlW29dOgNyECmUWfyK040MwJC6hyVMb
	 0bo8ggp7fsTHQ==
Message-ID: <4d533d52-4de2-4a6e-af54-ac9052ff4506@kernel.org>
Date: Fri, 10 Jul 2026 14:28:50 +0100
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
 Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
 Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
 linux-media@vger.kernel.org, loic.poulain@oss.qualcomm.com,
 mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
 conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
 linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
 devicetree@vger.kernel.org
References: <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
 <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
 <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
 <VoXmpDKdgY_XxAvO5tkDze4jpmMzSuKTmIISTejJsbIO_FIO1JFfUBlaPkNdb14E95zf_qwtDB6myQ2wdRCh1Q==@protonmail.internalid>
 <8fc1ddfd-0f77-4b67-b9bd-33fbd60e2046@oss.qualcomm.com>
 <54ad9b8a-7596-4bc7-a1c3-7230cca21360@kernel.org>
 <wbjec4qhzkpvdfnrvffk7tjmlvli5q2jiuzdp2iqt2cbf2uat7@usg2mizurxpp>
 <29bbcc9d-a0b5-4966-a195-1702ed514a4a@oss.qualcomm.com>
 <d5r3arZtREpnddaOGPStdRSGdwUSHDS3j61ersC0nD69JffwlclsJISjUblw4n6UwjjCVh1YKGOZhMLJCC9fWw==@protonmail.internalid>
 <l5fz64drffgrep57hj7kwc7v2drbg6kdkw4f7wxrmxf2kjjhsv@pcyyjtzi7jlc>
From: Bryan O'Donoghue <bod@kernel.org>
Content-Language: en-US
Autocrypt: addr=bod@kernel.org; keydata=
 xsFNBGRJNSgBEADD7Vm2ZFa+v+JGJ2QYTJqQAkqis/uOHkhdFNXqpBarVBd47QU/DMNU5Rxg
 jedMQEmHoeDbJ6UOpjbrUQ63c5sgG1JbroHJJctwsEI75OOlekMuebEbjIJBLfgENGwPBMHv
 piv5TgCWr0VgYaXfp2eh2LINFywzqj823HiDPibQAXDrjzvF1ogksi/6cQZs8d4if8YQkLOr
 YISFouG+eR0nN1I7mUfIddXOWu6lJeTyqbWVurv58k2ekIXKaOC9ixLHFbcfYV0hOgRaTwQC
 B8CYF9nfqZla19iItfsN9QxN+ZdQjcRoYipp6HPCMfJlKH7GfaFcW93LKc4DKJ2lVL+pg/OQ
 lythZbjRPY492NG9kZ65aYstCs90uhMUEVVPuGUw7wBEku+6IEwZfrbMVKeWzLlPyM4Hv9hM
 8ktxSmxWsPTPqpBC8eyeAQLalMELAyVcZlkaCtEcbj7w4l/JkYz+4l37obG8ZD+B34udBUUz
 MsAJ8foDFrBh2MOFA3hxD6G90D23mmWsri7pnKA2tZs92aQX7Ee+FbCyg6g5ln62Sq83ZDbf
 53DdBs55EVpBadeInWmXhzCHPQx06H+CwTEjShTYIaMmBfrewvYUDKvFTC5iKQhAEUgt6i94
 JsbG7NoeqcxkUMcBOEUQ3uCQG1D70ugspgXc0wd3Rimiq6535wARAQABzSFCcnlhbiBPJ0Rv
 bm9naHVlIDxib2RAa2VybmVsLm9yZz7CwZEEEwEIADsWIQTmk/sqq6Nt4Rerb7QicTuzoY3I
 OgUCZ+R+mwIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRAicTuzoY3IOimUD/94
 BwVEJX31JRe2sxbB/e1w2p8x1bxvTw5AeIzpV3ox7coJg1bSU2mnGuj1V4o0Yxf/3zmcJzCN
 VfVjwRF8Ii3GnC7uUXk2t+87piQfKTyJAYQABhZUKgoVJbjJq/S+C3XCKIyBA+EiezoUsgsA
 jTzwU+FzV7zVWIXFPJNtBERLwboE9w9U3KjAExOa1kSY8eLrsg6kOwlOHWy5UsQqYOjrS96M
 mzm2xuc1+RCjrndAyYhCnrOKvJ67HsPnBeJCjw7ImGD/U1GchwYbX8o3DO3JNHm3qfC86ZqX
 2sCouENg4OzgPTtLKUrueM6xsu6KMM7gj17vxsiR3KQEoJnnMB8D1xtBofN3mFZE0wD9M24m
 8yGunZbtntMCUHzIrlJgAPwKWKuGOYtA8UgMTFkccnUJtQrg9KotKtEF/FuftG9zLG9XEkt4
 5ZdNgbSoLWgelu3T47mbOJ8LHhiLaCWP7yrovtVAvLUQ1BsiA42u8ECrFCFvQj9nrejE/ICv
 kP+uqcKtdDvP9HrIGycF1WZyfZLp0RvopKW92FLvI4I1QFWJ+wenk6+LGyJ5bzlrWzevjxmf
 nHcXE6sJBHrE7eijlbbImDAi3uLYN8Nd9Dm11IDAy4GAIQxSiQn0yblDhPiyGtchy80EVkCm
 g9k17Wol+2E2mC4DKgVdCkyUtTRSLgsJCs7BTQRkSTUoARAAuTnmWHBS6izRcEE93ajpzI7h
 dgQO4U3IRvOEsvIKR5NGcNEs0ngGebwsZ/lVULjN4vYU0LleqVhPBidNXUoZCN3A0F0Z2Ov8
 NZdef+2EhQPBVWxFO7JBzhe8Z3ALj+wFtlg8akJjBzU56azW/iJzAobqHVrudzKoO2b1/CMg
 VbiAQ+RXjgfN5kY/HqYDU7mw+hXuUV9PbtX1L8xqQQac95oM9rHzKHHpiVwxTeJnGQsa+THi
 Kze+YET3rCoGHMvOQEJhdrucTv5FpAakKdkOFNel9FFckLRKEuWgCzhpFsjQ7xbirQgFUxG9
 vlk1+q4hMRGNyEqoD6svYEeqbiUSd0oPUJeioiC3rNMRCNHLVrfZ2J6SCPkxfda08uzSdDQU
 1/YPjOh8ZtQDMu7WctZ3XO288Z1gyBR49V7fbFs2w4sQxG+h/enlxqP7fdw1mjUlZjU5huCJ
 ielS0oEaIpmUpkugli7x4WhwLnhK2EbSoz7nLBC0y+ALUOdMlz/Y1l9xRt+bkDhpmf4O4IcI
 MxgZ0QMLq8rHDkGaEbsgZZHQPS58T0XE3IP30Q9SNxsruCMXtd2hYtBssf/wohc6JVsTtMg2
 VYTPDPIFNZFSXupEJB7jlqpDWJ8ooJfJRLBatbjT5+mVQaMYB7Hs/t+zWYWaJKHyc8O6WLEC
 NUV5Tdt5EkkAEQEAAcLBdgQYAQoAIBYhBOaT+yqro23hF6tvtCJxO7Ohjcg6BQJkSTUoAhsM
 AAoJECJxO7Ohjcg6LuIQALnXt36OUuK43wqw6UYt0cnN6EbUqJHApAF5eNFn0jCCB2XELjSz
 JKJwuNAweowBdabiBniJ+501WIW+ewEsz1uby5fUQjZuCEsIkuaIluyfUFPb73qrQyAGuusd
 7teA4WT+/jUku9g7lX5sVoRCrKQPkd16f6Bzfztyqyjcn43/X5yQI+wlboQ6HuKe/3I3yiOx
 OgmCHzOawpC9PvhEcKj79RLM3Zz5Ts5AuHpRX70Jz8Be76LwVFLp5Msx3S24ZTU1lBo2uiJ3
 xSkay2lTpyVWRPx9vgcwzxGguOPJQJwsQeLb7wpoJMPpD3ERoaRii7Q7hvmxklpZjhKYWB3d
 t6nQ497Ek9loCrp3MIjRCSDN5xEGffiHks9yTeGMUQwO4tX8RE04uOJPkUY7uCFzFqN6/qey
 X3oFfPgkULMdiHofPAL1OskZSTzGPSfTYRE46NCJw8yoZBQ/oOyWeqaUQbK0wmW/g81wm8p7
 LKSGEglMpiX07M1AotgvylN5C8fjbouoK+/RAMsXkk8jba6rPfuuXPaDjCyyKn6zSVHETnHW
 3AJbgVY50T8STpnxayBQvWbCvu+6NOEjXCbyaOJig+5l0zlGN9XHjdANXC5HnwmyaGRL9YDq
 Jh2nVXVJDincOdQRdKcJjYLqaOAoWrYWSDi1iZGspHBTDrnOvfMQzzHY
In-Reply-To: <l5fz64drffgrep57hj7kwc7v2drbg6kdkw4f7wxrmxf2kjjhsv@pcyyjtzi7jlc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 10/07/2026 13:28, Dmitry Baryshkov wrote:
>> Quite frankly, I don't consider the existing (meganode) description
>> any valid, and would vote to rip it the second a replacement is
>> available. But once, not N times.
> Rip without providing backwards compatibility?
> 
> One of the options would be to follow the 'venus/iris' approach: land
> new set of component drivers, which target new platforms and provide
> minimal support for one old platform (maybe via autoapplied DT overlay
> or other similar techniques). Then continue migrating and phasing out
> camss driver for old platforms, while adding support for new blocks in
> the new set of drivers and ripping support from the camss driver after
> some migration time.

If you want to fund it - I accept BTC, ETH, $, â‚¬ and upstream bragging 
rights as valid forms of payment.

;)

---
bod

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 2CE2D223DE7
	for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 13:45:18 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783691120; cv=none; b=SndSVfLbuqiiyWzXxsBnWlZuS7cWauUNOQAdioFf4zRx1QOEPJJpLd5Q68FMo+R3Un1u4SzbQ92NGFuANTco5BaNPuphn85Hv1f1LoborYz26XLruZu3pqUEXvjjql1A9KTP7QfBspdmBVMEzWL55exgPLXLDdrBo7Sn1SYzGbE=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783691120; c=relaxed/simple;
	bh=1VuQw9WouRZL3IiouA1QDkIQ+D+qcZ0FPME4Q/xFy7E=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=gpBLY684uxeC5V2hegGTjmRpNf9L4YNAq8O5CsCS9ZdvkrQdcyYpWkC39cHOBeV+TL79CgeH6rxFAqRUq2lRyaryp3KaIBcD8lGIJLX/aVi6LkggMx0IbTPWf8Fnm+uIxGUaJW+k5ZtfJ7TthWznis8ECKHA1aLI4YP2HHHcp+8=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=csMH9YL1; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=efotPJET; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="csMH9YL1";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="efotPJET"
Received: from pps.filterd (m0279866.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66AD5tVq776079
	for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 13:45:18 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	xVl/Jh7gTfBZtZj4Op6JOZlxfJk6HcU/wOB6FOt5iGU=; b=csMH9YL1xPyXclnY
	035rjMDTpelcKS+IdC1NgoMML9yhFxPXmGge1+IAltGr3MEOCI4PSLxSnk5MUPlq
	SrYT0gKNHf6PbNZL5pjsaGghZTBGBMkwkmFGhYxqa/5Sb3UX6MjomR8MYALkv8xC
	gfWMS8vyf+hdPhoeJ2AITV2Kt1bnNWmWdLpZBVxZNgHRihXrjlhxpTnKKYABwgby
	kgXRZJQ7vfBDnHT6HRsQmfJ153Tm8IbiG154Ms82oHGfysdeYKegjARPjuHymDHr
	USC7s9f9OLDwN0N8/yRrEa61s3oua8RV8Esu8gRzBYCKKacoHEUmySeSihqjQWlA
	uw4/uA==
Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fax5dgw9t-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 13:45:18 +0000 (GMT)
Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c0e702df8so9752701cf.2
        for <devicetree@vger.kernel.org>; Fri, 10 Jul 2026 06:45:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783691117; x=1784295917; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=xVl/Jh7gTfBZtZj4Op6JOZlxfJk6HcU/wOB6FOt5iGU=;
        b=efotPJETnaP7BLsH3ZOhFBe3wq5fcKYWAqbpqGT0UK4jLrC/WJ7dsRjvDeVzbXebIz
         2LWU46A+r3RhZfLhMaIFmB7tpkMJNJKjDP2tVlvX7Jwmkc7PZS13MEcBb7nLl8uGuO9L
         ufTQdGEauiJRYYn+2kZmxgMHzqvPXlQ+SGlPssW2kw96Rg2vEAFgAlly3lTgJSQuIpQl
         zy3kqBMlhoT4y2FxwTRr2TdxILiUFfBtP6UVGafheyT1Rw8uT7qiJJ6BgKUOErkonPot
         FrMXzz/jes6Uul2a+s17WhsKa764TS1eAXee+QqSSGSBiZ6CIx+J74z5aE9altcLmPEO
         dIJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783691117; x=1784295917;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=xVl/Jh7gTfBZtZj4Op6JOZlxfJk6HcU/wOB6FOt5iGU=;
        b=mIMsanUb2EYUKdVW6IMu4NibJw8HTGHhWCP3B6RMlPuvFs5PlZ8buuCCwPHykH5PRL
         5Loi1SRISVP8B+YeJQ4NCYsLjNa1TmwWsSBH9q8g/sOlDX+CoWFrr++O4NXWCO0j7c3F
         ASjoAHm2HgMTi+mW3gwEPeH5WTKmqjtJPGBUuA9S0zBwUL0bZpMNN/fH26+PvbF1DOOD
         MXBI7ZCCo77Z1RPY+kP0m0SRKsqJQASt6U2zI1wCqS8LDypFGu8z1pdQxcEpw8g8TSML
         YI4RgmBpxrCjvH/znBZpX5CY0br48xe2FpQVdzJWoOQNoXJYHd9fiiZ6bo2/AV8+6Go5
         zMMA==
X-Forwarded-Encrypted: i=1; AHgh+RoAmPDcJ7o8ddaPv9nPUmrIoji75am0InAT6LaOydPPlGuwIaIlcI7UspYYNmUxfwCF1+1ElSilPb70@vger.kernel.org
X-Gm-Message-State: AOJu0YxRjCX+kwOurZx5bB1F5eYvmZekbyC0dWBFtaV9T2qkHCzKSgBe
	SeKHZBty58cn9P99QT93MrbJoSNANDg/eTJcn+H7bhx3tTv+UyA8IPBV3uffM8Cfc6THzrWToQx
	cB16xTBSMS3xMNKtvdiKn+G7Hr81x4mOQRM6CTJ+BgRXSBkABR+5LsRpgXmTE8rSYsae5Hqjh
X-Gm-Gg: AfdE7cm6Mylm9TMj3X/d/GjJlBDwXc/rO3ko5R0pOwQs4vvsuXa6+/FviU/5PGonLWy
	L/pGgP61Ub6r5ptBJJGWvdj2OziV2JwPxHVT3RJftbYet8KP3CsnGm23xUnFJdRhsH75D7vpaSX
	42tCF5+srWzWsGk3pv71XDRTdQ/qc6SBVksexWUW41OfDvnaHXCYgKxEyvetbmUCPMGMIeLhZDd
	vMZdyjlYRdvsUX2q3zXO2f2CpIH7EhfwQrFZboDkzl8jRX5ImWO6vkVJ2tc3RL9sXkaZB7zPjHy
	T+I1DN1ZnPQX9pikgOd+4SprJEmHR6F4MNlq7GYFcmlmKZCbFk9oAz2ip+/lIoBijLX17VuRaD7
	Y0WHbPIbakDf7McQLdGJWQI+SMCRnwM/d+Tys0BH2p1k=
X-Received: by 2002:a05:622a:410d:b0:51c:135a:5b49 with SMTP id d75a77b69052e-51c8b2ae5aamr123570421cf.4.1783691117153;
        Fri, 10 Jul 2026 06:45:17 -0700 (PDT)
X-Received: by 2002:a05:622a:410d:b0:51c:135a:5b49 with SMTP id d75a77b69052e-51c8b2ae5aamr123569891cf.4.1783691116554;
        Fri, 10 Jul 2026 06:45:16 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15ada023acsm617631166b.54.2026.07.10.06.45.14
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Fri, 10 Jul 2026 06:45:15 -0700 (PDT)
Message-ID: <56a7da52-8190-491f-bef2-f9c95bfc551d@oss.qualcomm.com>
Date: Fri, 10 Jul 2026 16:45:14 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Bryan O'Donoghue <bod@kernel.org>,
        Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
        Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        linux-media@vger.kernel.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
References: <8116c54e-4050-4e9d-b236-59d74846bd57@linaro.org>
 <8a09875d-af5f-438b-b947-bc2b61219b70@oss.qualcomm.com>
 <c8c38ec6-4422-4c91-a249-20bc20260e73@linaro.org>
 <d0768c15-453f-4d3f-8110-886a5c697b02@oss.qualcomm.com>
 <d5407ab1-1af7-4678-ae67-5cf30ce8fa4b@kernel.org>
 <VoXmpDKdgY_XxAvO5tkDze4jpmMzSuKTmIISTejJsbIO_FIO1JFfUBlaPkNdb14E95zf_qwtDB6myQ2wdRCh1Q==@protonmail.internalid>
 <8fc1ddfd-0f77-4b67-b9bd-33fbd60e2046@oss.qualcomm.com>
 <54ad9b8a-7596-4bc7-a1c3-7230cca21360@kernel.org>
 <wbjec4qhzkpvdfnrvffk7tjmlvli5q2jiuzdp2iqt2cbf2uat7@usg2mizurxpp>
 <29bbcc9d-a0b5-4966-a195-1702ed514a4a@oss.qualcomm.com>
 <d5r3arZtREpnddaOGPStdRSGdwUSHDS3j61ersC0nD69JffwlclsJISjUblw4n6UwjjCVh1YKGOZhMLJCC9fWw==@protonmail.internalid>
 <l5fz64drffgrep57hj7kwc7v2drbg6kdkw4f7wxrmxf2kjjhsv@pcyyjtzi7jlc>
 <4d533d52-4de2-4a6e-af54-ac9052ff4506@kernel.org>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <4d533d52-4de2-4a6e-af54-ac9052ff4506@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDEzNiBTYWx0ZWRfX0hcMPFb3BYbq
 qMOR7ZTU9Lo9QHBccu3cYaBGjw8HNeSnhuotdSgRDisNZA527CJMiZWBM4Ry8F32aS+VvOhHl5/
 fkqFZYWCAgpqPCffSeRuPe6g6vxThuk=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDEzNiBTYWx0ZWRfX0yohp9lLu9yj
 X0B/3Ykd2RFpz4K54w1evS9NqL6HQ7pHIZj47gxym3uXovuzpPCaEGAr62ppeaLAVoFH0VJVLuk
 fhPYrEZrLf+2TyWYVHc51pAQt70VuF1Jo69B4wEex6wlPFpO+74ZRNiBS/XRgFdZESNMopxxDTx
 QXf7KAlDeDfFd0ekvYSQFc0yT/1VMk9Hwh8V6sLH9IQJMyCksszUTS+rzFE++BUQwBnjrKWSWOV
 iyAfPfovAZIJDItoZJfadpvtFph82JPazMqREyhysPYqwZOwLSItwWCsGIaWPbsDfe1GeKVx2mn
 ulrkeJoSp2S20Tl+Z9aN4t3ixU9i68rEGHn10Gt7gGbM6emd0fe3trCdmJHPv0LcPNJPeHXO9ZO
 c65MO6twO8mgnz6g1pSErH9SCfPXypryKQLFsX1NuR+vtjWrPaRdPSVyFcWnEGsV36a7RCZiCxO
 z3QiRrXOl5efPWUp1Iw==
X-Proofpoint-GUID: YJ64eUQ6XQq-p8r2cJz977WoeVwpBc9f
X-Proofpoint-ORIG-GUID: YJ64eUQ6XQq-p8r2cJz977WoeVwpBc9f
X-Authority-Analysis: v=2.4 cv=M/x97Sws c=1 sm=1 tr=0 ts=6a50f76e cx=c_pps
 a=WeENfcodrlLV9YRTxbY/uA==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22
 a=hP-s5Dj4EI8GOsY46QcA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=kacYvNCVWA4VmyqE58fU:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-10_03,2026-07-10_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 lowpriorityscore=0 adultscore=0 bulkscore=0 malwarescore=0 suspectscore=0
 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 impostorscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100136

On 7/10/2026 4:28 PM, Bryan O'Donoghue wrote:
> On 10/07/2026 13:28, Dmitry Baryshkov wrote:
>>> Quite frankly, I don't consider the existing (meganode) description
>>> any valid, and would vote to rip it the second a replacement is
>>> available. But once, not N times.
>> Rip without providing backwards compatibility?
>>
>> One of the options would be to follow the 'venus/iris' approach: land
>> new set of component drivers, which target new platforms and provide
>> minimal support for one old platform (maybe via autoapplied DT overlay
>> or other similar techniques). Then continue migrating and phasing out
>> camss driver for old platforms, while adding support for new blocks in
>> the new set of drivers and ripping support from the camss driver after
>> some migration time.
> 
> If you want to fund it - I accept BTC, ETH, $, â‚¬ and upstream bragging 
> rights as valid forms of payment.
> 
> ;)
> 
> ---
> bod
I can give it a try (I've done this before), but I'd appreciate slightly 
friendlier comments. :)

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 C4D2D23394D;
	Sun, 12 Jul 2026 14:55:29 +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=1783868131; cv=none; b=h6st2sSUkCxug1A/daN4P81tCLiDpQ0ltAbPV2LW8TBDTMPOsEas+KX2tMzKhOmPAFQXV7hwBAq0xJ8aMneSMTqkdKoqFe6XVfjJCXGqCW55EikFIefRguU2Z6QF5Byj/Khn/E7jspKtWiUK6JjsoS36eBnS9dvj1d4//c1vkvY=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783868131; c=relaxed/simple;
	bh=Ac6ZfTgAaHGS71xHfdF9njHRKJ5mB29c9Dhsw2bx61U=;
	h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:
	 Content-Type:Content-Disposition:In-Reply-To; b=VGwEGoM4fpaUHqRrQu3KCtMmrIntIaXX072HL/0zIdF/W9C0jqDMVySg1YM8V6EQifFAen6oG/Pxcd8WfuvQiEAhy7JkPHJ60anFi9UyYtkDbZdAPYrHnTNfhVL7MBjtcfbZ+EhPXvK20jEZwub+IcAgiLZOU4mX3JJyAF0ZnlY=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=md92YJic; 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="md92YJic"
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 927E31F000E9;
	Sun, 12 Jul 2026 14:55:28 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org;
	s=k20260515; t=1783868129;
	bh=ZFzBN2QN2rCkml+dqde4dT6lV+O1vjvk1z2nt/DOeIE=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To;
	b=md92YJicisjFyi17HuFz0c0INC5dqJ18bD7LO+mCeoOqzUQtPgfGWzrYk1H0M9D+f
	 BHSMSzC97nXmOpFJQq0rnJqxYYI+jYnuAEd8vC0eDB3buD9edRCfXkO+AiOBx7DD4a
	 piH7XUlnt0sEuB9S5NxZAK/F8ibAqnxFkjUu8lGKWuvxqkyisAp/9uMWDowoxGfaHQ
	 FJfyqWuYqJaCOfREvCrwSl6kFd6UVB4Ylzf6534Tqe/yscaV3eVEFuYKru+M7wCbCP
	 0BFhA/3pudtHkw+cJ2/g+jBNJgg3zV4o4qnIW4GGeTEP5ZACTd620/uKtUd3b5qG4G
	 tdxexJUso2Bgw==
Date: Sun, 12 Jul 2026 09:55:26 -0500
From: Bjorn Andersson <andersson@kernel.org>
To: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
Cc: linux-media@vger.kernel.org, bryan.odonoghue@linaro.org, 
	vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com, mchehab@kernel.org, 
	robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, konradybcio@kernel.org, 
	linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v4 3/5] dt-bindings: media: qcom: Add JPEG encoder binding
Message-ID: <alOpwQx-43WNPHcL@baldur>
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-4-atanas.filipov@oss.qualcomm.com>
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260706071113.383215-4-atanas.filipov@oss.qualcomm.com>

On Mon, Jul 06, 2026 at 10:11:11AM +0300, Atanas Filipov wrote:
> Add device-tree binding for the Qualcomm JPEG encoder hardware block
> present in SM8250 (Kona) SoCs.
> 
> The JPEG encoder is a standalone hardware IP within the camera subsystem
> that performs JPEG compression in memory-to-memory fashion.  It is
> separate from the CAMSS ISP pipeline and has its own register space,
> interrupt, clocks, power domain, IOMMU streams, and interconnect paths.
> 
> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> ---
>  .../bindings/media/qcom,jpeg-encoder.yaml     | 151 ++++++++++++++++++
>  1 file changed, 151 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> 
> diff --git a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> new file mode 100644
> index 000000000000..e4c16388ef07
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
> @@ -0,0 +1,151 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/qcom,jpeg-encoder.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm JPEG Encoder
> +
> +maintainers:
> +  - Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> +
> +description:
> +  Qualcomm JPEG Encoder is the JPEG encode hardware present in Qualcomm SoCs.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - qcom,sm8250-jenc

I suspect you find it obvious
that this is the block than is used to enc the js, but I don't.

We have space, can we please use some more letters here? How about
inflating this to qcom,sm8250-jpeg-enc?

Is there a qcom,sm8250-jdec as well? Is that a completely separate
block, or is this IP-block actually the qcom,scm8250-jpeg block doing
both encoding and decoding?

Regards,
Bjorn

> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 6
> +
> +  clock-names:
> +    items:
> +      - const: hf_axi
> +      - const: sf_axi
> +      - const: core_ahb
> +      - const: cpas_ahb
> +      - const: cnoc_axi
> +      - const: jpeg
> +
> +  interconnects:
> +    maxItems: 3
> +
> +  interconnect-names:
> +    items:
> +      - const: cpu-cfg
> +      - const: hf-mnoc
> +      - const: sf-mnoc
> +
> +  iommus:
> +    maxItems: 1
> +
> +  operating-points-v2: true
> +
> +  opp-table:
> +    type: object
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - interrupts
> +  - interconnects
> +  - interconnect-names
> +  - iommus
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/qcom,camcc-sm8250.h>
> +    #include <dt-bindings/clock/qcom,gcc-sm8250.h>
> +    #include <dt-bindings/interconnect/qcom,icc.h>
> +    #include <dt-bindings/interconnect/qcom,sm8250.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +    jpeg-encoder@ac53000 {
> +        compatible = "qcom,sm8250-jenc";
> +        reg = <0xac53000 0x1000>;
> +
> +        interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
> +
> +        clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
> +                 <&gcc GCC_CAMERA_SF_AXI_CLK>,
> +                 <&camcc CAM_CC_CORE_AHB_CLK>,
> +                 <&camcc CAM_CC_CPAS_AHB_CLK>,
> +                 <&camcc CAM_CC_CAMNOC_AXI_CLK>,
> +                 <&camcc CAM_CC_JPEG_CLK>;
> +        clock-names = "hf_axi",
> +                      "sf_axi",
> +                      "core_ahb",
> +                      "cpas_ahb",
> +                      "cnoc_axi",
> +                      "jpeg";
> +
> +        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
> +                         &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
> +                        <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
> +                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>,
> +                        <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ALWAYS
> +                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>;
> +        interconnect-names = "cpu-cfg",
> +                             "hf-mnoc",
> +                             "sf-mnoc";
> +
> +        iommus = <&apps_smmu 0x2040 0x400>;
> +
> +        operating-points-v2 = <&jpeg_opp_table>;
> +
> +        jpeg_opp_table: opp-table {
> +            compatible = "operating-points-v2";
> +
> +            opp-100000000 {
> +                opp-hz = /bits/ 64 <400000000>,
> +                         /bits/ 64 <100000000>;
> +                opp-peak-kBps = <76800 104166 104166>;
> +                opp-avg-kBps = <38400 33569 33569>;
> +                required-opps = <&rpmhpd_opp_min_svs>;
> +            };
> +
> +            opp-200000000 {
> +                opp-hz = /bits/ 64 <400000000>,
> +                         /bits/ 64 <200000000>;
> +                opp-peak-kBps = <76800 208333 208333>;
> +                opp-avg-kBps = <38400 67138 67138>;
> +                required-opps = <&rpmhpd_opp_low_svs>;
> +            };
> +
> +            opp-400000000 {
> +                opp-hz = /bits/ 64 <400000000>,
> +                         /bits/ 64 <400000000>;
> +                opp-peak-kBps = <76800 416666 416666>;
> +                opp-avg-kBps = <38400 134277 134277>;
> +                required-opps = <&rpmhpd_opp_svs>;
> +            };
> +
> +            opp-480000000 {
> +                opp-hz = /bits/ 64 <400000000>,
> +                         /bits/ 64 <480000000>;
> +                opp-peak-kBps = <76800 500000 500000>;
> +                opp-avg-kBps = <38400 161132 161132>;
> +                required-opps = <&rpmhpd_opp_svs_l1>;
> +            };
> +
> +            opp-600000000 {
> +                opp-hz = /bits/ 64 <400000000>,
> +                         /bits/ 64 <600000000>;
> +                opp-peak-kBps = <76800 625000 625000>;
> +                opp-avg-kBps = <38400 201416 201416>;
> +                required-opps = <&rpmhpd_opp_nom>;
> +            };
> +        };
> +    };
> -- 
> 2.34.1
> 

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 7B3493ABD83
	for <linux-kernel@vger.kernel.org>; Mon, 13 Jul 2026 08:21:24 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783930887; cv=none; b=P8CTZMPbqqP3yKVnRPG+Ku/9djS6Vy6vzpArhVlUvGQpAG+Dl1UiNyd2h7/gfr6GfalYomn3oyQhh3zNkiGP4ef7iMWlNQTNWpV6w4Zu0crdhR2IIRRUwFiWVAtveWP0LrO8fV3ByvR4vtLURQNAusv0fYx1yf0Y73AmaeRzg7o=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783930887; c=relaxed/simple;
	bh=TnQKSM8MZA26ziuAwsidIQP/IBfrhCtujf4X8iIuakY=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=mddIFLk74yvC/l29UAs+aFsxzE32raAKbe9xXso9ubCsMowmrv5FfvpTlQ9W+a8Vm1+4/LRYtuSi8HOH4Gnknqe8pjTkjx3SleKT27AUbdV3IxQ0FGTgaxID2XkZWXe3Ws1RYnBYGnccbWwY5yVxwGZKodIInwZDpaK5t4voHMM=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=A1uWktGd; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QbJXNsJp; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="A1uWktGd";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QbJXNsJp"
Received: from pps.filterd (m0279866.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66D6Nku5469324
	for <linux-kernel@vger.kernel.org>; Mon, 13 Jul 2026 08:21:23 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	qgHCt0baVbDw76HI7bLRH910zw1IT9kEwqe9LOXn8jk=; b=A1uWktGdfKXCBprB
	02A8Ld+CVwDevHMURyhGwIg9bzLWDJGu8njDO+R473ofuo01WbSF077GLOwXOBRl
	gjFEgYSLnGYUWAzXPaDX/WE7pbAitefMGiihtihfnWrXS83bjKJJ7rfXxq0d2izc
	hWETrNqFGtCz4Fd2dH/09umjwLtNkb6ZxYUEkHhG8mY0U3HoMwwEFX+MhfwwaTB8
	5MylOl1qFXBWNiibKUcnZktLHI+0gOaiLf9KJGaNcnwr8dabc07LpUkYmZDwPtuc
	HQpNNhlo6tnU/Dsa3iMWeE+CIWCdEPfHlqn89N5lMwVAI+7PGINx6M9Nu4NqOeJn
	jJPCJg==
Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fbf48552s-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-kernel@vger.kernel.org>; Mon, 13 Jul 2026 08:21:23 +0000 (GMT)
Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c20762d21so31309901cf.0
        for <linux-kernel@vger.kernel.org>; Mon, 13 Jul 2026 01:21:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783930882; x=1784535682; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=qgHCt0baVbDw76HI7bLRH910zw1IT9kEwqe9LOXn8jk=;
        b=QbJXNsJpyhOLuM9m7eWRgYQTAi1xFFDHbMQFNMjPZP9FXiBsTjbPtsprvSHDkL3C32
         W3faEy3bfRdPxq1/critJ/iz5aPzeMUerx6EFjVFGeIymKuiQIKGiFW31JqOuxWItgcp
         FWqvH4nDz/v45geDsQq0x1mJesqZCmfs3MwX8QWnZeJzPI0F8rw90zlEVW8Hv2mHuRzl
         8sjKXKCNEpNpma+O8+rla/RiSCNW7P4vnGGlJjyO+3IxWR+MCDHgfsrNY7Gsi58ugM/e
         1zB9gXw3TDhWvRkGDaTu6O+Rkt72iHGhGwfbZH9VMBBGzUQg40ESk+82RPrZ2TB49qMO
         VT1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783930882; x=1784535682;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=qgHCt0baVbDw76HI7bLRH910zw1IT9kEwqe9LOXn8jk=;
        b=WCW9IF/x31gvdsru3P9pMt/rtfNJUnQgJ8DAHDLerIxgyzbldq0ecSZjM4ms6yc6R8
         AIov4QTPziP8DkG91nilW9nEuhdVS08fWsIqZ5u4TKUk6azHaLC7+xbZqlaNrMoK9++G
         QknZrfbNFT0bDXGVWiXEjpvDP3HMhCRWXOAHyGsAnAoJ689YJ+nHbeB2iRLMOCBQKBTd
         IwHiXBvUMABdpVMhwHYHakA9+MERZSCkpRlApwENrSphVyY4243RgZCtV4xBUa1WsDuu
         6Js3aY49/GXmrFumHLSpu3CAMcjIwwm2B8NHLS28iSmpIEakLRgpxO/AIf98caLv2mrw
         K1WA==
X-Forwarded-Encrypted: i=1; AHgh+RorMltubpX1qBirEOr3Jxjai73a1qOBZuygoc31lXq8h0oEszfvhFFT9/Rt/ARR5xMpXOVqQHlsErnQ5Ho=@vger.kernel.org
X-Gm-Message-State: AOJu0Yy/1fPqb+IKkZod1GGExTJur0oATHhiS+SZZttMFnsY99IVD7IO
	eY+jW1Ovux3aLiXHAxV4O8FQc0BUjYxD6eSlb3cZ+jZQZusEbr7tFV5OHfGRkE67bpx5DC4PJPs
	sHwvoYVXFtSo4EaPqpoeLTxfGSwAhCPQi4Rc15CLYj/wLjNm/jyg1C82qbJAvUmN4HlA=
X-Gm-Gg: AfdE7ckGvQ8YQWTjINh1uq2x2lW+14ZwmlmtYFFSNF7w60yLeNGXN/3ge4sUGfpPXYu
	CP/ebmUr56USMjAAOxx/BwsvOkEbuMRj4NFqmA8bFVUXttkSZiYvUfVW18pCfQH4WI/6onxuzsw
	T2zvu94/NnEdTimFiiAx/tU5HmWZY2cFkTMM+61MIoQrIkYFRdE4Kv9WqK5ZjlMN10k2fAAhc+1
	hpJTTwUnIDztKNrHCulR5okuSLufo22GGCqprMFc4gTh/6JUu3J7+Vm2UmnRWHuVp5hqzh3WHuM
	dOwBJHWmbDT+LRw1ys6cq8PdMXbtOcaTWG/TtjkZIuGaS31HQk2/Gboy3Ueb3WSdzMvIffnqh3I
	WYgQH7pP35LQBu4PUDIWAnfT31HRFtNCoshFPLS0OzEo=
X-Received: by 2002:ac8:5d08:0:b0:51c:217d:d772 with SMTP id d75a77b69052e-51cbf0be5d9mr84321321cf.19.1783930882390;
        Mon, 13 Jul 2026 01:21:22 -0700 (PDT)
X-Received: by 2002:ac8:5d08:0:b0:51c:217d:d772 with SMTP id d75a77b69052e-51cbf0be5d9mr84321051cf.19.1783930881843;
        Mon, 13 Jul 2026 01:21:21 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69ac41d7ceesm7586462a12.23.2026.07.13.01.21.20
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 13 Jul 2026 01:21:21 -0700 (PDT)
Message-ID: <6de0a8e6-591f-4526-b5c2-431711dde1db@oss.qualcomm.com>
Date: Mon, 13 Jul 2026 11:21:19 +0300
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices
 via DT
To: Krzysztof Kozlowski <krzk@kernel.org>, linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-2-atanas.filipov@oss.qualcomm.com>
 <389ff33a-b319-4f2e-9410-8ae962f2e844@kernel.org>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <389ff33a-b319-4f2e-9410-8ae962f2e844@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDA4NiBTYWx0ZWRfXz3SvFp0pUHOg
 POpnaxfsAOJICgHjfxmpIwE/Zo+UmKnDMmGTIFyCuxV9cyIOc1RxFMJ/7lH4rV0IVLgscLl09oo
 qJlL9Tx68XcblrUSs6vaktAx+Ar8kx4=
X-Authority-Analysis: v=2.4 cv=OsJ/DS/t c=1 sm=1 tr=0 ts=6a54a003 cx=c_pps
 a=WeENfcodrlLV9YRTxbY/uA==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22
 a=KKAkSRfTAAAA:8 a=ka1dcg31Si149idUFP4A:9 a=QEXdDO2ut3YA:10
 a=kacYvNCVWA4VmyqE58fU:22 a=cvBusfyB2V15izCimMoJ:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDA4NiBTYWx0ZWRfXycUKac2ksr0s
 jbbm72ocobzmfZCL4uI2C5yUtV0nEKp4+5g02eHRglaovmhVfnr1N0Ej1MU/73l6nCSrVQn5B13
 hdSvVEDBslaHRCBLAEay+ZSD6hREiyQV33y28X0K1rdXi3xVKMSUHbO621Ew+Xzawd7nlOq731l
 8eoCmViC5GUljkzi3wwVx532BoKUkdXGMyfsvwWhnguu6qOCwQPd+IjmcqCmscKHgTbS+b4AmDr
 rYFVNDMrkBNs6RWleAquY2O7BuVsfsr7jA/ITzedP7/w8Lkik6P3icUYftC69vJHwKvnIrN1nkV
 1YqfGZMiMA85a43wChE1bAW72XSHIdjMe7a054ZcxSB9z8zOCIeaHMI1c9vlgq/Sfmkvoz/og/r
 Cj+xuMsFoQe1W5k7H+fa1BjGlLqDSiDXlXKArR0QW4wvqToGbZhgG2WmrUMi0z6t10r1t3G6eEw
 BLBXTK/dMSHGR99h0GA==
X-Proofpoint-GUID: IPbpnKTDHEOpn9hCrp8XkEY7YiShbd1y
X-Proofpoint-ORIG-GUID: IPbpnKTDHEOpn9hCrp8XkEY7YiShbd1y
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-13_02,2026-07-10_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501 spamscore=0 clxscore=1015 impostorscore=0 phishscore=0
 adultscore=0 lowpriorityscore=0 bulkscore=0 suspectscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130086

On 7/6/2026 3:09 PM, Krzysztof Kozlowski wrote:
> On 06/07/2026 09:11, Atanas Filipov wrote:
>> From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>
>> Use devm_of_platform_populate() so that child nodes declared under the
>> CAMSS device tree node (e.g. OPE) are automatically instantiated as
>> platform devices. This is required now that CAMSS is modelled as a
>> simple-bus and ISP blocks such as OPE are described as child nodes.
> 
> I do not understand this rationale. How is this required now? Are
> existing DTS broken and do not work? Then this needs to be explained.
> 
> Best regards,
> Krzysztof

You are correct. Existing DTS are not broken. This patch is dropped
in v5. JPEG is modelled as a standalone peer node, not a child of
camss.

Best regards,
Atanas


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 484FA3ACA7E
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:24:38 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783931079; cv=none; b=WIWgQnodM3sdI3iYwjROMTNYDQ1Z38GUZnR2xdmLn5byxc/Vze92liyE8JnXttik9LgD9u6Up4alNDYRQNeZegJCheK1PQ+eMp9HcMwgyc9eFcuyOrO/wY1fkvVqe6wt1yCgyP5HuT1WxIxG09f/TXaP0TXg1Gf2Y1+bJum6fhU=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783931079; c=relaxed/simple;
	bh=sAcLEJrrx4v8nuf0z28rIvu0BNNVc+kU+REaphTJnnQ=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=QhQhM4gBdReEtlVnM7BIiaQMGDjYc4jEi/skNV+IhnsR8L5vwedjFQJEU50m4bld7Qo7PyhjD+Tk3gg4kqGc23v7W0PW+As5C1/f6ynoERdeUEyuPdA4WlALqPGC2AQiUEq+0hGVGuuwsao7xaLmpE0L0QEQFXf1G8udO86Yi0U=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=V5QtdjtX; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=kmY3mirf; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="V5QtdjtX";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="kmY3mirf"
Received: from pps.filterd (m0279872.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66D6ONIU473851
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:24:37 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	AtYfxbeH2oeMrlG9JnAbkDQDcuirWg4SXSYHEeZMRKQ=; b=V5QtdjtXRBo/SA1F
	grlAc3p+1+FbseoCfYzj57+/CDn1tiHY2i1p7/whzNAx8L+4r+Tbd8YZE+EfU5yP
	FPbFGajWf7RxkhUFxiRG3X60s/zI9VDYVCwoUO3aza0M2HpY36CKLvjcdNyoOVxG
	Hua8S9qBBrNJSvSwIG7vJy9npLv4DtMC/iWYEu/EnPg8J4eOTH3ECf1ZwHej7wa+
	1b9pazgZLDURmDFtGzysEcjj6dfZfY7e1N8xLxvvtMAK7eijkd2AD3RB0NGkU3Cb
	z9a8waaPKEMezCNlp3wCLHV9nKwQZnCs5vg/ao1tcMvGqU4Jevyl91DlTNNtIq1U
	0SAA1g==
Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fbee9n7x5-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:24:37 +0000 (GMT)
Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c1a97644aso47471321cf.2
        for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 01:24:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783931077; x=1784535877; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=AtYfxbeH2oeMrlG9JnAbkDQDcuirWg4SXSYHEeZMRKQ=;
        b=kmY3mirfydtZQiwZvm4jY9ZxtdeknRdwI1ZqtaJSlNhVV1cHbzYn+c5B8i6cKr6fCO
         2RbJC9LWUgMOVcNjz7NbcVaUo7wR82Hl1j19uX9YpaffSMaLk9ydlo5Uyg0qbmUTeZKn
         TjfUOT3gYu/ehH+q4DmDIO8VuNU3iBjjL9FvFKShPmLl5S26axPCIFWHqWUHqcqBIGpE
         g5kirxeQH/QYkgKS4c9uOBzhIltfMjB7AuVYt9d6jJ5ft/8frntI+Vc7A15r4j2wiyt3
         T58L48bSNbqPPsghzlR1Sxy+ZeZFrHf1xZd5h/OrhwtqeOVLZIEOgLfYhlwHhUbRdY5l
         3c3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783931077; x=1784535877;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=AtYfxbeH2oeMrlG9JnAbkDQDcuirWg4SXSYHEeZMRKQ=;
        b=RZsXY6XO8opo/XL65M4qxmoThw8SIqsVjxhwN14lOVILAvHAes6CTnQ9r0FcJgZ9+/
         Dikdxj1msox8Wckgpv7DBxEa2Z5TYjX24vJAVT0QRkrbFRlH+0i4SF99nu6q4KIP29Lo
         6Udzzpi6TSBGazVwwwI7QOGPIYc+eXMzF1sHILHfI/ZPxn7xnv/jqpia8tVEkz6WQ/dF
         Amf2eBo2kSckMo3kVztu5zaeOrfS+PJeymFuNjRwQ1GuK31ICmdpkV/LlYc17KsWaBSV
         sFHbDE7qmu8juWwmatBwSz7GxnWVQjV0nPOSFlHpCTlCi5CgfLbzfogunOUwsoMKTYOm
         G/GQ==
X-Forwarded-Encrypted: i=1; AHgh+RqrNGwcvt/XI2KTY2UBI9tuh4KtJ7vXC+8K9jYUA/1l1Akrk3De2PgTUJOM04pngbc2FLbREQrIe3Tw@vger.kernel.org
X-Gm-Message-State: AOJu0YwO2UUUU+bUDk3FWmjsrFCLUuodufQGjFtamsnLQddO6dqKtB19
	ohUp2K52kuMStQ+DDF1nI99EIAkGJDGIeaGnkVQsfXCTNKFt/24vvyceyXiproTx1KyiTtiTqIl
	eEkowa/mx3QP5itqu4kS4qSC4QJlQ2aewTDfBpxlW0ZEHNOoOCcfocizB3TxtmPnx
X-Gm-Gg: AfdE7cmSIL/AdBiNx/lQNGgD0+He+bR7a6kbKe/iLzACwOahFymsdVZlDNqLcnKAPKx
	w3ltgwoiNVxsYIWHgUbxgt0x3n+nffTr9jmXejUPu08zSyN3LMD3/IFEqUJyd/H/IbseiCol5H4
	7/GZskiUgW7wJp09vY1addQZh/hMZEubxrEcI60WzLOMqi2N6ywTJmaO0EDVDsIEcQK9+Msm5IW
	rs+FkkCdLbtyPlvL4dpeXHAk/3nlij2xxWyWblPe/xUkiRLmKQffqW+NfsEh0PSFGGg70NldfYw
	+17d0rfoCpVeAUJeIhz29elQVwW+878r+UAiAcbWnpPo9ob7p1dy6be6sszg9RBfAI4vbaTg+cI
	zhMuX7TGrYGYN5PeLCF3uRorPpuJ0j2cnCRomjW4RN4U=
X-Received: by 2002:a05:622a:2487:b0:51c:7b11:41b7 with SMTP id d75a77b69052e-51cbf2eeb1cmr84915071cf.83.1783931076607;
        Mon, 13 Jul 2026 01:24:36 -0700 (PDT)
X-Received: by 2002:a05:622a:2487:b0:51c:7b11:41b7 with SMTP id d75a77b69052e-51cbf2eeb1cmr84914871cf.83.1783931076170;
        Mon, 13 Jul 2026 01:24:36 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15df03dccfsm633450966b.62.2026.07.13.01.24.34
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 13 Jul 2026 01:24:35 -0700 (PDT)
Message-ID: <88de7531-e93e-4972-8e24-b83cc9011167@oss.qualcomm.com>
Date: Mon, 13 Jul 2026 11:24:34 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/5] dt-bindings: media: qcom,sm8250-camss: allow JPEG
 encoder child node
To: Krzysztof Kozlowski <krzk@kernel.org>, linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-3-atanas.filipov@oss.qualcomm.com>
 <c233b312-9077-4d1b-bdcf-75561690d181@kernel.org>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <c233b312-9077-4d1b-bdcf-75561690d181@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDA4NyBTYWx0ZWRfX5AmmNpocVu9m
 38Z8RUAHXza4a2DkRanLFY0mSqq912BLZishz74h10Mk1DYdMy7S7Dyz7sAdkgn02caydHDZPB9
 VlLWvSMuwLhQGCbTOpUAwTlge/QoAJU=
X-Proofpoint-GUID: w9ScRV5XaNkf6HS8UpmPMWJBPlNE6txN
X-Authority-Analysis: v=2.4 cv=a7UAM0SF c=1 sm=1 tr=0 ts=6a54a0c5 cx=c_pps
 a=WeENfcodrlLV9YRTxbY/uA==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22
 a=EUspDBNiAAAA:8 a=F2T7rKbpvuPzS9wY3l8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=kacYvNCVWA4VmyqE58fU:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDA4NyBTYWx0ZWRfX9dwsXrdDNrci
 CGoqYpVfxL6VcPnBiJ6xAYn57tof/1uBGq3vwi5M/7xHEBLIO1mAmZRb2RX931jH4E0qDMPZGEt
 HHfvQHnPm6895+YKS8yj+KWzwlamelhXlWtpo0y1I4nnaA1/M6ZoDhMULJ9+/Gy8fwooCPLebiE
 s53DzJ2f1mRQ4jx/LMAaS88GoB1ik4UoBTgk9TGd/s1wz5ftf+dUVUT08Qyj7tVJtIIgoI3e9MG
 B14fwQqM/MOGUfdwtyjzJmm5Z9v7zRgN7p0AUzBcNJkL4Bb/c7sg7p+r2z2FOljEwy8UaX/KmjI
 LF1rry6lr4Y5/ls3u8vjC5SmFQYx+tODhlGOR+xYpI21qZJGHqkSlGpoKz6JSPEE5a9a3ejkEgd
 y5vgPza3KHCH8yDpS03mAVB9JuoHO/8VQVfz3e6jwtBUau5QmGvt/3bRXUowfP1Mu/xXochfv9E
 cfA1mO33nD7siAm5jiQ==
X-Proofpoint-ORIG-GUID: w9ScRV5XaNkf6HS8UpmPMWJBPlNE6txN
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-13_02,2026-07-10_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 adultscore=0
 clxscore=1015 spamscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130087

On 7/6/2026 3:11 PM, Krzysztof Kozlowski wrote:
> On 06/07/2026 09:11, Atanas Filipov wrote:
>> The CAMSS node uses #address-cells = <2>, #size-cells = <2> and ranges
>> to act as a bus for child IP blocks such as the JPEG encoder. Add these
>> properties to the binding so that dtbs_check does not reject them.
> 
> There are no children, so above are not valid.
> 
>>
>> Use unevaluatedProperties: false instead of additionalProperties: false
>> so that child nodes are validated against their own schema (matched by
> 
> This is not the purpose of unevaluatedProperties and it is not even true.
> 
> 
>> compatible) without requiring the parent binding to enumerate each child
>> type explicitly. This is the correct approach for a bus-like container
>> node and avoids updating the camss binding for every new child device
>> added in the future.
>>
>> No functional change.
> 
> I see significant functional changes - you switched to unevaluatedProperties
> 
>>
>> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
>> ---
>>   .../devicetree/bindings/media/qcom,sm8250-camss.yaml   | 10 +++++++++-
>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml b/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
>> index a509d4bbcb4a..6008938ee369 100644
>> --- a/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
>> +++ b/Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml
>> @@ -102,6 +102,14 @@ properties:
>>         - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller.
>>         - description: Titan GDSC - Titan ISP Block, Global Distributed Switch Controller.
>>   
>> +  "#address-cells":
>> +    const: 2
>> +
>> +  "#size-cells":
>> +    const: 2
>> +
>> +  ranges: true
>> +
>>     ports:
>>       $ref: /schemas/graph.yaml#/properties/ports
>>   
>> @@ -317,7 +325,7 @@ required:
>>     - vdda-phy-supply
>>     - vdda-pll-supply
>>   
>> -additionalProperties: false
>> +unevaluatedProperties: false
> 
> No, NAK. I do not see how this patch makes any sense.
> 
>>   
>>   examples:
>>     - |
> 
> 
> Best regards,
> Krzysztof

Acknowledged. This patch is dropped in v5. JPEG is modelled as a
standalone peer node â€” no changes to the camss binding are needed.

Best regards,
Atanas

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 2B5DB3A6F00
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:27:19 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783931240; cv=none; b=JRZgd2Qr7EunEhMau9vgV6hNudkAtwVvT0S5te3jYJyVPuiFWMF23nyENyYafPIdGIC67hlPhVbM9X2p9irJcPBc9Z+wY6SM0qUBsBq4FZR4XrprsghG00NcPXQv+UTq+acfW4qAmU3uhdYP1XZQdx4IkF73nCIKfUc1uYFBRuQ=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783931240; c=relaxed/simple;
	bh=rTqT5pIKCF31nrq4i98eOmJtbI40y4p67HTEO4XR8CE=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=aaJF6tpsF0ccVzLz8Cca1UDhAVCRHyfA8INViJtp83AMawaz5YawfZ0mcg7gBc7ABN5S3sWEBVZ8ykHPaoKx+RGFKtMBfmMC8u9/4oyQ0/1JQUeXMm9Fp72S/s52R78cbfMzUymtH1Wyh9GK14/UHpQcmpI0BZxPE8mwG5Vjgtk=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=kHVr6hFX; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=X7G2krPm; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="kHVr6hFX";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="X7G2krPm"
Received: from pps.filterd (m0279872.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66D6O5f1473353
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:27:18 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	BbF+Pq7Vc6cfmQhQ+gA9qh1Ng0Me279r/rgd3g/6AuQ=; b=kHVr6hFX8abqGXCZ
	/inwf/a/KyYRhq4nj2z5rFiJ27ePbFi3BiLZl+NNlUhdePQD3bFzTXkxlibw2EfP
	vHSzsWVULO4ob/TF+jLLIVkdSHNRW+CY4YMrX9/rfkNWKg4tBkTCx/MmhCTpJQgb
	vFxu/50YUMiMZwRuoEiUjHm4cwqfioS5m9uK7rz0a3m+nijd4jzQOLv0MJhEwV8g
	9w0bk9jOp8usRJjinpv70HBCZAR3wMU+B3VUaylxP+PYQQOkaID3Cru5zMSYgZ4V
	+AQC0+tqgk0lODOz/jhw3ODmGIu8Ef6D/l1PENrJU3SD8kxrpeqgZ7qnLfoxcShA
	ZoiOrw==
Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fbee9n87t-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:27:18 +0000 (GMT)
Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-8eac2620cb0so48830066d6.3
        for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 01:27:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783931238; x=1784536038; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=BbF+Pq7Vc6cfmQhQ+gA9qh1Ng0Me279r/rgd3g/6AuQ=;
        b=X7G2krPmS8xlqXM4trc7zsYem5dxMvz6U0Iqm+saGkm7B5Ia8hYFmrJVW89Bxs9cPO
         aoRe7YIhOrMKIoUibYG/kTHO7gSJVxSPsOlSJa81L1psDrZC1j4EdU4XuUCN6BgXIYaX
         8+qjuDaFxkaXjVYKievMcMyrcIOJHxgaEUgkfCfI7G07K9053SB0Fss+5L/sZ5fW7Gip
         0gwxJFbkZ+a/IvzPF80utoGX0Rn3ltVhphhK475l0Z6ExNYUtACtTqzh8BktdCbNzTTc
         UKrcv8rxJ6SRIEuAm2ZN78TQiwLtxdy8hE7YKxKmICqqfV7z1m60h5BEn24eyZX0THDw
         6OpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783931238; x=1784536038;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=BbF+Pq7Vc6cfmQhQ+gA9qh1Ng0Me279r/rgd3g/6AuQ=;
        b=Tu7ZsVsnd+SHjAKo0mpx6onuKxwmYVAVKtzviPDMKhtwIqdtxaD/m5JrS7wn9r6kBn
         etzAioSUE94vVPwvxcFf/4cWIiaDKn8CtpmGYwXO1sbOlBRydst/sQqkq5D5ahO0uTeM
         ZsVPD9YlVIu/R1RGOxU+/ScrSWx0M1WUmSSBs1wBCXRVFb3QajHWzhUUBp9oIzO19Ewn
         Gs8alhN6EKW+Q1yEay2SieGb+fl5GOyzcHm+imk5sZj7r8ygQRpdov/G7ipbRlzQLG/J
         zrwGw3wU38WDcrxV5EWZI1FRJKFjSYuUtTre1ZQIk/tHH7+D4qc+OBPSY1sajPUwJHr5
         Rkzw==
X-Forwarded-Encrypted: i=1; AHgh+Ro3Thoau4F73+4jfnXu520uACdiTynK7JcsIJ04WQMfEIUeR8umxHezLfwy2V1eQQ0WcAR1B323QmBC@vger.kernel.org
X-Gm-Message-State: AOJu0YzxsB1D6v1ETDlQq4T2b830GJ2xPawhAMYqB4ZcVoxuti2Mqz7G
	Brpf2teao3eN8FKkFUwXTarHy38jjlcRjUGVltIGVPUyGj1UZA3yPOv0pp39PMJXeTqk/W0EfPL
	CBxuUz8mLTC4BWT1CfPOF+kiiNNtPV7a0/PqH729RWFiwW41BRLogxYwthSeDHVXB
X-Gm-Gg: AfdE7cmxjIhZyb5K5zqdZwbW6wIoVpFOll8wIc4oBm6gPBrm8DMMaJ8VxacEgnQKoeS
	cuCS/zlKB9TJSgfxqIzc/Pnx8YmbawxfO2Aa35hzLgeec6dlSt/z7Cj5QB1R4naWURuCdap1gJN
	FwDhH8gzGme8LRriDJpeahZViLIFSs/luArZ2gljVu69LoWF8iUT0ddydVhi+138+vEWc8ugxGL
	AEZu/M6DkraJK85IXrAb/wTMkGXB2vSvXqtXdpCNLBBmIGkt0VoQniqfSOeZnbhL7wEw2EzOHIE
	BP2LInjStOjBycMpk2I1o5iYH12L7e1J3+YdTJ32aZe8X1WN/bZhmNK1k+0iJawMUEHc9UfYNQh
	g7JwQbqXGqWeVnrsU/sKyEupn17vtPJWrlmMNHHrU8/M=
X-Received: by 2002:a05:6214:2387:b0:8ef:e3c9:533e with SMTP id 6a1803df08f44-903ff761684mr91705526d6.9.1783931237462;
        Mon, 13 Jul 2026 01:27:17 -0700 (PDT)
X-Received: by 2002:a05:6214:2387:b0:8ef:e3c9:533e with SMTP id 6a1803df08f44-903ff761684mr91705326d6.9.1783931237070;
        Mon, 13 Jul 2026 01:27:17 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69a19cf68f5sm15008388a12.13.2026.07.13.01.27.15
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 13 Jul 2026 01:27:16 -0700 (PDT)
Message-ID: <e9399868-a6a1-4bec-b067-c1bed8e83ab0@oss.qualcomm.com>
Date: Mon, 13 Jul 2026 11:27:14 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/5] dt-bindings: media: qcom: Add JPEG encoder binding
To: Krzysztof Kozlowski <krzk@kernel.org>, linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-4-atanas.filipov@oss.qualcomm.com>
 <95207310-12ad-4c2b-9ebb-b0a7bd27dac1@kernel.org>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <95207310-12ad-4c2b-9ebb-b0a7bd27dac1@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDA4NyBTYWx0ZWRfX4hoUd2vobo0Q
 nGUVv1kwl9JJA6rX2JnIRB9zTuCNALm8XxwB6zoYfoKXdn/LB4D5WfTeu672N75nSbY3YrioFxF
 kthMHk/C/+OTDUkSD0Lot9f9GoOFuk0=
X-Proofpoint-GUID: 0ocXpSN9MkAOdt_jP1HcUp9oauIWftsm
X-Authority-Analysis: v=2.4 cv=a7UAM0SF c=1 sm=1 tr=0 ts=6a54a166 cx=c_pps
 a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22
 a=2tE1FNNbuGYNqW7gzRAA:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDA4NyBTYWx0ZWRfX4hX4tBRXaYyg
 DKo3q/XNd/mEhgBHXNoaktkVzCCn42kcJODX+J2Zfmf5sQl7FskmRgT/UKkCELUsuLPvgrT33FF
 QPCvALZXiZYy5Vc7tF/D26XAE+m0oPpCrPys2As1HOhU9e6odCVYR8ceaeF742dD4oiFz7OHAxC
 5fHWpsUtj4Xki1hHMOrc4CmBPc5fCzrUJVFOkO2CZ9+WCqWJSVl/1r8lPPT3ea1FmIS9fR+kea4
 7XOiyKz/ix2lc9kpnzLIg+6XEs/B12VP0KnddQGRUaae0NUyUiy3uO0MOWrK6SLgEA3UCpCMIfj
 YzpMYcfsmgiS5gp470TbkYW4DlIEmS9fe8FFB39Ky4YqwzdGUkBlBV+UNSO3ko5cm+hJyFxypRf
 66wD0nvBE1ONcTwHooJmPN+KkrZee0qBGG++5sKhw+efBELAQAClaEc4/y1E9PmD7IQdLZn/DT+
 ocq51oL7u21vXNratdg==
X-Proofpoint-ORIG-GUID: 0ocXpSN9MkAOdt_jP1HcUp9oauIWftsm
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-13_02,2026-07-10_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 adultscore=0
 clxscore=1015 spamscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130087

On 7/6/2026 3:17 PM, Krzysztof Kozlowski wrote:
> On 06/07/2026 09:11, Atanas Filipov wrote:
>> Add device-tree binding for the Qualcomm JPEG encoder hardware block
>> present in SM8250 (Kona) SoCs.
>>
> 
> You still ignored my comments from v1. You never responded to them,
> never implemented. This is fifth version and you still ignore them.
> 
> Please go to the v1 and respond to EACH COMMENT that you acknowledge it
> and going to implement it.
> 
> Otherwise I do not see how can we accept this, if you keep ignoring
> maintainer's feedback, even if that feedback is about trivial things.
> 
> NAK
> 
> Best regards,
> Krzysztof

Apologies. Inline replies to your v1 and v2 comments have been sent
in the respective threads. v5 will address all of them.

Best regards,
Atanas

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 A6AA03B1013
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:29:22 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783931363; cv=none; b=Nk6F4X1fDxTqe0idrRLzJyJj3Z/lz4yWflYiD2IsPQfVpf7y1G0QHLv3pHYs8iMykUN0KEEshuBv/JNteHCyWmLxntdv5r6MO4jvWzmNAICfJI+sNBB1nFAbmGVGzwi4SRU1zlWm+B0nGw9OiXHZLTHIU87GKizuRaO9dgADCPY=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783931363; c=relaxed/simple;
	bh=09gwAOIvWrUT011HK0YUkRTcGAOOHymVhnDkjMFHaLM=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=ibIQ8/stn7JA9FsNjTmWJuQKciIT6piVuteWmuwJN/MjyrBGvHTgtCmANq4kGrnMhqxGBR/GV/HR6XUQFY0x94aBWp7rQ6JWOCCxa1kAbplT2IJa4zrbtCtP76NK6+LAI/rZu6xsaac+BY6WTnziN+nMepot6FBBqvXbjfBnBqI=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=dVzQgizB; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=fOpkLbxo; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="dVzQgizB";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="fOpkLbxo"
Received: from pps.filterd (m0279865.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66D6Nja8732111
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:29:22 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	gPu99KlXeshTai9DWwRSdh62GROPGEcOid9sYlTAh90=; b=dVzQgizB32zWhKwK
	hZbpSd4oEZlXQA3pVEtGUfO+Yq9I+p3ry/wNnGhmPPWZ+TdlYEo6DfMvisyUpTI9
	Ohb0pUbUJMIPB68IoUXxTyxZ8pOSEi2rlu5ehjfgRz9aX/vsZw7m7zBm/WqAa5KM
	OdpQ/ZjFFYZxFNrLiyviIO3nqESO1MQ1MyO7cmBspePJQctiHi9waC1MWB3k49my
	+PCa1xypPHGr2MiZ+vwUUOmUY4Azyi98A5eofmfQQ2uMnoH3nzV5/koxMleXoE7K
	ZvfhLeALmghy64gPV7lJnwPN8TExBupdkKBzqlkI2BPNmLZRYMm9CPkzLj5rP7CF
	TJwqUw==
Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcjn39mcy-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:29:21 +0000 (GMT)
Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c20762d21so31370821cf.0
        for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 01:29:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783931361; x=1784536161; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=gPu99KlXeshTai9DWwRSdh62GROPGEcOid9sYlTAh90=;
        b=fOpkLbxongQJXeK4K6roDStnUIvQ/Y/rDHLDUylHenmGCcxueoRGReFvMcdelc48AK
         5uBzsCffn3j2tP9BNSNjO3g6eGvEPzFM7NHqqwD27waHuF/wJSCqtULSkgMbbhHFXyxl
         O0k+Bxl783nl8EapIyuiAleNV//43rTEdjFPVbPaL1E47PRxlMrrhwr5XcH8m/YKp386
         6kpgtsqXQuyKVILujgaigW4rNl3MXwv4e340Nvn4J5b4lTSLtOizmCmd3nc8ckaE3I1c
         mEtx13SAPFtIRsU1hd6b76jClbZIcYyyghjOy4ZLy8voKEcEThTTrxDupQZ9YtQDKi6D
         ++Yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783931361; x=1784536161;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=gPu99KlXeshTai9DWwRSdh62GROPGEcOid9sYlTAh90=;
        b=n1AdrlAeGlcwv69U8A68PosZbPy8m3aVTJ0L5qGuaFbjU6Y4NPFB0oRXkRkhut/bCi
         Rbs9xCMO4C77wcAXkAztaSz30reaAF8LRcqECI7ih1u8H+4vYsdQD30YdVrk7HTHGJti
         bgRg6Q3DSyEoVt2wJRKVpizqAVfsdCa/E2womZ1f5dQ4kYa3f1zp4POwgXsl3QPVpPE3
         fVTqD7M2nhzVTM6RwYNweU59LdS8x4z4EQkOw+KhgkVkSYJYMCa/BsAS9X1pslaKAY/6
         /RAIPA3J644iasn5OEGerAyrBqy7GGaaLeYw0zbTy5i3BNS1PmOk3sUsdQbtNR3s8Gku
         UJew==
X-Forwarded-Encrypted: i=1; AHgh+RohW0Cx7jNM8sWfrJwMVdurOEHLx30pqsTSlXK4Wh4NpoWE/nxz9LxCQDlNez6NdxDpVV0RyakEJSZ8@vger.kernel.org
X-Gm-Message-State: AOJu0Yxvv51WFjdM6XnDKYTbflBVY1ns7J8TITu4+qYJGKKXlUdFVacs
	0CqBENKpyvuRC0izzLW7k8gyRrKQ2g2yVrVWRLL0h5hZNgKYJ9e7qVkpJQwZoRuM3AIElUY9wwo
	xHgPKt8zhQk7G3ARoEaUzZo6SnchUCIghYXN8pIiy0KpHuO/mJdSJFv6EGXJe50xe
X-Gm-Gg: AfdE7cnOqjZh3QcryS8j/1HZwFUCut8m02UATO0eH5/8s2D1rjnSim+d80Kcf5u7HCo
	0n+0jBabwJmm1iijdukEQ05DwzMaJ8jmDa43/F59JUeLcgN+IzfYdHpoO07PPYiuo0qq+r7HlUQ
	P6evWzZGNIYrM6SeyQAl/T1klj/kkLtTmQ1v7He6jVfuF4PWPDKYcCC7E4dzLlErIK3ujzFY/Y8
	n7ipfTKRGct2W7cWdsyKth9jyE8QVK+8TOWB4BGJAYYeX77UvaKbkWfyr9gIBehXANJmOhaohQx
	iuTbXXmhwoG9DpH63VUIVb0k8LovSRixmAqnBhO6mmG6lJjNGOnyjO4rUoNr7KWsWl41f/5++Bd
	lzSR0QKopedpq24qHnLSfiBDbbSAGYDTQUAfzCT1GshE=
X-Received: by 2002:a05:622a:420b:b0:51c:7b12:1208 with SMTP id d75a77b69052e-51cbf3040f3mr83363471cf.86.1783931360779;
        Mon, 13 Jul 2026 01:29:20 -0700 (PDT)
X-Received: by 2002:a05:622a:420b:b0:51c:7b12:1208 with SMTP id d75a77b69052e-51cbf3040f3mr83363311cf.86.1783931360349;
        Mon, 13 Jul 2026 01:29:20 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15d81bbceesm704212666b.41.2026.07.13.01.29.18
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 13 Jul 2026 01:29:19 -0700 (PDT)
Message-ID: <86624fe6-b2fe-49e2-9980-0ae2fbebf108@oss.qualcomm.com>
Date: Mon, 13 Jul 2026 11:29:18 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/5] arm64: dts: qcom: sm8250: Add JPEG encoder node
To: Krzysztof Kozlowski <krzk@kernel.org>, linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-5-atanas.filipov@oss.qualcomm.com>
 <7f0c7e6b-e92e-4058-8662-52004625eebf@kernel.org>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <7f0c7e6b-e92e-4058-8662-52004625eebf@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDA4NyBTYWx0ZWRfX7IqUbXWdNVVh
 eCwKRCRJb/57Fir/3kuKikEiZOY9tzDuyuepY/xpP5WbvaTmnBwqlbICykY9vLI7xM+5wfRa609
 bCFgCKc5iZ0c4sPc1kOW8AK1rM1uYJRrJ6R8ftfroOjnuhoG52LkpZOGBYxG/S//VeK4liNwUX9
 0U9Dv6df49epFdFD5PmnNcw8gH7V1ZXzLvfTYQcanriTfZn8btlHuqcc99AgRbXd9ZBJ+gfRef2
 LxhTbSMCHaklUxtus7TTyc92DpToKMNuL2YoKdUMey+BfG6xj/46CDfjXJ2Fi39GuZWbxhIicvg
 /XSUsjNj6fbDI62HBG5y0jQtaaoHKTYohv4MtAGwk21EJhA+7amRxTW/uqfRboAChSkfakHoSeC
 sUIKp/evVwJolywxUAYiERUn+SjM0zPoEHw0YoxhetyylrpCmfbL4368W6hGkS5qP4YWzEjRckH
 q9B48NrJJiu+SSv0iaw==
X-Proofpoint-ORIG-GUID: xjUdQ69g9l0cr3BjIdHsEbB9OiJXJpHq
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDA4NyBTYWx0ZWRfXyLvf9JP0MH5M
 JE/2/xkKFINS/tnhg23Ytzpbq5PA3VAstl4vkmmqqT85bqwOHHTpwfmdnLq2q8TmF6bSyrcU5A7
 6GqN0zXU3oMFdTR9GIg/1V4Ucx5hs+s=
X-Proofpoint-GUID: xjUdQ69g9l0cr3BjIdHsEbB9OiJXJpHq
X-Authority-Analysis: v=2.4 cv=aaJRWxot c=1 sm=1 tr=0 ts=6a54a1e1 cx=c_pps
 a=WeENfcodrlLV9YRTxbY/uA==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22
 a=EUspDBNiAAAA:8 a=giEypKqMxUzoDvydzB8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=kacYvNCVWA4VmyqE58fU:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-13_02,2026-07-10_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501 phishscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0
 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 impostorscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130087

On 7/6/2026 3:18 PM, Krzysztof Kozlowski wrote:
> On 06/07/2026 09:11, Atanas Filipov wrote:
>> Add the JPEG encoder hardware node to the SM8250 device tree so the
>> qcom-jpeg V4L2 encoder driver can bind and operate on this platform.
>>
>> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
>> ---
>>   arch/arm64/boot/dts/qcom/sm8250.dtsi | 81 ++++++++++++++++++++++++++++
>>   1 file changed, 81 insertions(+)
> 
> Why is DTS patch before driver? Driver CANNOT depend on this.
> 
> Please organize your work correctly, see submitting patches in DT
> explaining how this should be done.
> 
> Best regards,
> Krzysztof

Acknowledged. v5 will have the correct order: binding â†’ driver â†’ DTS.

Best regards,
Atanas

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 A79BE3B14AF
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:30:56 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783931458; cv=none; b=cdPPnwG2tQq8+nUX2cCtGhUe6AMQP27UcDoj+VlJSjVXFZekBUX6fTdYOnR77KXEWvjRPncVMqy9aUvWq6r3BtCeOPiDaeEAvRUy4X1Ll+zKAoBYLPH7klCOpzwSJ43gFt/g6qk5ZZ0N+gooxxpHx2G2yB0fyAmF8teZZ999vcw=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783931458; c=relaxed/simple;
	bh=ox6Z94BZRgLqASrZyKkY5G6KpcMeLAUyU7fdgaJxuKo=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=AffgMfRgP4WAqieDZR1YgusTeqsp2VX8Zzeb/WnweqNZFLFSbRx+XZmRxmqEA1Mnmy+x1ZDGFMOdRmLPEmhHM4M7cHuzQCU917QUSTierMX3tDVpXdmqEiJqollnE1TFqfKbafsYLLB1dt6dMazcBx9GeRQj8YbKesyJBGAPP/I=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=WNzN2v5b; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=EyoOZH61; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="WNzN2v5b";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="EyoOZH61"
Received: from pps.filterd (m0279871.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66D6NxhY674494
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:30:55 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	+dtBJLacOGGttlAIKQe354mVWyqsRLsF0Nl3YOfEBx8=; b=WNzN2v5bhN69YL/9
	ky/gO34vBXIlAV1Evbp5dsfLonGY36gh7xKfxuh242cO7i2mnZgVUju6/7SZI5Wu
	Yk9yBX3JqntlgGXaDnL61gjL65X0z0mHQ2kGZSFWPuMdtL0b6iDDimPXA4+vQrpo
	u0WS48z2BqpeK2xlSo6uHsQlOoWiGKc5KSWxoeaD/XkBxsxSCdCnatSnXs6fxeDG
	y+kC8EdVN+BCqShzei3lSFbZdqZMOeL4+AMrXL6HCqH3D03CROPoxrlSyAk+cYnD
	Hy4vGVlIz+XafPI0tnFz+9s6DChwn6i40E4Mfs/nLJSK8W7q/poMZ5gh5bmBxglC
	gcDTZw==
Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fbecgn7ac-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:30:55 +0000 (GMT)
Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51c0ab07320so35625071cf.2
        for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 01:30:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783931454; x=1784536254; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=+dtBJLacOGGttlAIKQe354mVWyqsRLsF0Nl3YOfEBx8=;
        b=EyoOZH61rAib0VRGf/774NWqSgLRnG9h9ybT+jB3g+65eC7kHeVO6TtKHRGB6ctxRz
         T2w8fneM7I1/plkqOAV/EhOcmQjJtZYcrZiXa85xQyrWEvXMnorAiY35RxBZzZSi7mfS
         Waq7TIRs2NiFYkv+4NF2vHelGOWx4ROLsohTWHBVOYqjo2sRfRc6uuUnrrlxAROM21GQ
         Rx6LIhaoXi9lEtButvV1Fe3e6KxNKt29LEKBLf+6Lpuv7JO2hL41brAeXFFZgNpvby/N
         g9yUFrrzxi7M4pZnpE0i1YqM5Uy/KjYl654G+/fD9S5gzmNxVq8VkGsRLuUQEtVpwUHD
         ny9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783931454; x=1784536254;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=+dtBJLacOGGttlAIKQe354mVWyqsRLsF0Nl3YOfEBx8=;
        b=jR92C+XGjCee3h80ljpygCrU6voQDNqLxzRb4540gwX1LIcbJSkrG0q8wwT3Mf+W3v
         oV34B1cvidjYsKBPmS8FeyKN8vHa/3rG5hB6rZ4121RVu2/ChQxbOjm78gWXB5LYAYi9
         pFBsytkmMrdtdn6OWOMia3wO9WdrKeZ45ndiTHE0a8QJE9Omv4w6OURDNejlsjHyrgUH
         srtFeFBP6WsMWOkw2YeiP1iHWTzkja6ITq7p9uJrme6te0VI8ru7axl6rHgD3JmDFSWI
         lC7UpEJzwIrfOAAKVxOziGi7dzXL8SiHSw3U2HDpzOiGE0wfNJW5YykmjI1enfInhmD2
         zOZA==
X-Forwarded-Encrypted: i=1; AHgh+Rq7qarJj1YLd8GTSBkqKOWu/FmvJ236WBXGZMZJ1RU1SAOkRzA+CiaeM40kKbtPcEGn6GAwoxEvh5ZK@vger.kernel.org
X-Gm-Message-State: AOJu0Yygg8a/3AxYAKLkYXhFk+MlwQUT8/1XrAhmGdX9xYdtJRUVRyZy
	3CR0IHzKRt/k4c6Ef/CDSpwKVJfRXk+d5EwpxcOZDoeGkiqWcqMFp7bqZxZX37AgV1GYbCSODmA
	tcOZj5ucN++O6g+5xp+zX5bkgRBCiw1Rn6biZvBxwBStKqjD0MttpJ6ReuQEK+cU0
X-Gm-Gg: AfdE7cn4g+ciWf7apjRDy77m+d2VXaIT0FXBNtXxOW63FdvMRLWUcCoBw5hxei+PBAy
	Y5wegaWzp5kLski5JtyscrhsO/+h5wcwaEXZxSi4j8O+has/wPEORtWSvv2qaYZ69hP649IAmpO
	uEUeAhbUPNiXPB1faEUwu8m/hHhAlsiyopJHAjPso/IZw3sLjIG+4EYwK+6uu9So3/tJ0zhXb1E
	X55iZzuJI0et2U8kjrkjkH5tN6eWf8/iOpMOQITltIlELPIPXS+IilJIDoPp/80olbOfdxOz/bs
	vgX0OLGJG5sItZtJMQaUtQgE/AIejNsMRIfPBzqzE78iEWp34kV6B5QVNow9tq3n7zS4CO1HU4m
	hCtY3zFYByjSVmPg8EUYU/gQvZQkKjMbllyIwPAWVNaw=
X-Received: by 2002:a05:622a:5c0b:b0:51c:7d0:7ed7 with SMTP id d75a77b69052e-51cbf24a901mr81763781cf.39.1783931453364;
        Mon, 13 Jul 2026 01:30:53 -0700 (PDT)
X-Received: by 2002:a05:622a:5c0b:b0:51c:7d0:7ed7 with SMTP id d75a77b69052e-51cbf24a901mr81763651cf.39.1783931452962;
        Mon, 13 Jul 2026 01:30:52 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15eb1dbdc9sm569475766b.10.2026.07.13.01.30.51
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 13 Jul 2026 01:30:52 -0700 (PDT)
Message-ID: <e97424f4-d9aa-4f6a-84d0-2ba849bd7536@oss.qualcomm.com>
Date: Mon, 13 Jul 2026 11:30:50 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: Krzysztof Kozlowski <krzk@kernel.org>, linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <06834dd6-1221-463f-9543-600814c8fc83@kernel.org>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <06834dd6-1221-463f-9543-600814c8fc83@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDA4NyBTYWx0ZWRfX24pTX/1AkS+l
 PqpuGualkZgqcS2RiL65GVNYBDnKpgdCZsTsdhn4Pbl16JoRWqAL/hdFmFqduOy+bgbqsA26Uyx
 Vi6dboX6XOmiwfhI9LBGb9WoEXqT2h8=
X-Proofpoint-ORIG-GUID: 5yrm_gpYyAh5yZZ_vOfAnU8xqhnSib5y
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDA4NyBTYWx0ZWRfX7x/RsqcCXhnD
 lN3O/nOzlCGOrQBuClTldnu6BIk88TDKqp16Cpe4PPXW5ZCqB9UsxjVIIvR/bNQnAlzDDdwTin0
 B8ffuVChZDCMj2I17+4cE+Jmvh/163CRlwBuW04CTHzuQDhVdnFt73G+tF9Ye1lWzYUayY7ujzy
 boLSf9CAYX5K/V3YEONW2JqOOAgB/lNNb0/YCqfuKODYvck6U/OyxeVU3RogiTufitL2IOgfvZO
 Au5VRdbhjtpl6H8SaCz/PlHfZu0abYCz9FEH06uip2mJe7+d3+sxwTYMJr+wLTJpCR0mH2qtjAl
 eR2a9s/FP1T/Ng3CoQVZLIElZFCwnSEELuy8gph8oKwR9nJ196Z2a25yNLGCMnetZ5P2pEuGmeK
 d6JoTZItFHT+CNRdqo4XUhf9Szjqs8iAeScu3DNU+qBe3zX4VmguJrxxP+IJurdZFoLWexEaS+R
 yz1HM3fPbnot070IDSw==
X-Proofpoint-GUID: 5yrm_gpYyAh5yZZ_vOfAnU8xqhnSib5y
X-Authority-Analysis: v=2.4 cv=KM9qylFo c=1 sm=1 tr=0 ts=6a54a23f cx=c_pps
 a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22
 a=EUspDBNiAAAA:8 a=TB4z-ivqILPobOqkYRMA:9 a=QEXdDO2ut3YA:10
 a=a_PwQJl-kcHnX1M80qC6:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-13_02,2026-07-10_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 spamscore=0 phishscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0
 clxscore=1015 impostorscore=0 adultscore=0 priorityscore=1501 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130087

On 7/6/2026 3:19 PM, Krzysztof Kozlowski wrote:
> On 06/07/2026 09:11, Atanas Filipov wrote:
>> Add a Qualcomm JPEG encoder driver implemented on top of the
>> V4L2 mem2mem framework.
>>
>> The driver wires vb2 queue handling, format negotiation, JPEG header
>> handling, interrupt-driven job completion, and runtime PM/clock/ICC
>> integration for the standalone JPEG encode hardware block.
>>
>> This series targets SM8250 (Kona) platforms.
>>
>> The jpeg-encoder node is described as a child node of the CAMSS block
>> and is probed automatically via of_platform_populate() in camss_probe().
>>
>> Usage examples:
>>
>> - Check of related video node: v4l2-ctl --list-devices
>>    The expected result:
>>     qcom-jpeg-enc (platform:qcom-jpeg-enc):
>>          /dev/videoX
>>
>> V4L2 Examples:
>>
>> v4l2-ctl -d /dev/video14 \
>> --set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
>> --stream-mmap --stream-out-mmap
>>
>> v4l2-ctl -d /dev/video14 \
>> -c compression_quality=100 \
>> --set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
>> --stream-mmap --stream-out-mmap \
>> --stream-count=100
>>
>> v4l2-ctl -d /dev/video14 \
>> --set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
>> --stream-mmap --stream-out-mmap \
>> --set-ctrl=perf_level_auto=1 \
>> --set-ctrl=fps_target=30 \
>> --stream-count=100
>>
>> v4l2-ctl -d /dev/video14 \
>> --set-fmt-video-out=width=8192,height=8192,pixelformat=NM12 \
>> --stream-mmap --stream-out-mmap \
>> --stream-count=1 \
>> --stream-to=8192x8192_NM12.jpg
>>
>> v4l2-ctl -d /dev/video14 \
>> --set-fmt-video-out=width=8192,height=8192,pixelformat=GREY \
>> --stream-mmap --stream-out-mmap \
>> --stream-count=1 \
>> --stream-to=OUT_8192x8192.jpg
>>
>> v4l2-ctl -d /dev/video14 \
>> -c compression_quality=100 \
>> --set-fmt-video-out=width=1920,height=1088,pixelformat=NM12 \
>> --stream-mmap=4 --stream-out-mmap=4 \
>> --stream-count=100 \
>> --stream-out-pattern=21 \
>> --stream-to=OUT_1920x1088_100F.mjpg
>>
>> GStreamer examples:
>>
>> gst-launch-1.0 videotestsrc \
>> is-live=false pattern=ball num-buffers=50 ! \
>> video/x-raw,format=NV12,width=1920,height=1080 ! \
>> videoscale ! videoconvert ! \
>> video/x-raw,format=NV12,width=1920,height=1088 ! \
>> v4l2jpegenc ! \
>> fakesink sync=false
>>
>> gst-launch-1.0 videotestsrc is-live=true pattern=smpte ! \
>> video/x-raw,format=NV12,width=1920,height=1088 ! \
>> v4l2jpegenc extra-controls="controls,compression_quality=85" ! \
>> fpsdisplaysink -v sync=false
>>
>> Performance measurements on SM8250
>> (NV12, quality=100, GStreamer v4l2jpegenc vs jpegenc):
>>
>> +------------+-----------------------------+-------------------+
>> | Resolution |    HW v4l2jpegenc (q100)    | SW jpegenc (q100) |
>> |            | Execution | avrFPS | maxFPS | Execution |  FPS  |
>> +------------+-----------+--------+--------+-----------+-------+
>> |   512x512  | 2.2332    | 1139.1 | 1195.4 | 7.1055    | 358.0 |
>> |  1280x720  | 1.7300    |  418.5 |  457.2 | 5.0585    | 143.1 |
>> | 1024x1024  | 1.6991    |  374.3 |  397.4 | 4.7304    | 134.4 |
>> | 1920x1088  | 1.6596    |  192.8 |  193.8 | 3.7913    |  84.4 |
>> | 2048x2048  | 1.7277    |   92.0 |   91.6 | 3.6343    |  43.7 |
>> | 4096x4096  | 1.5887    |   25.2 |   25.3 | 4.2163    |   9.5 |
>> | 8192x8192  | 1.3104    |    7.6 |    8.0 | 2.9987    |   3.3 |
>> +------------+-----------+--------+--------+-----------+-------+
>>
>> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
>> ---
>>   .../bindings/media/qcom,jpeg-encoder.yaml     |  143 +-
> 
> 
> NAK
> 
> 
> ...
> 
> 
>> diff --git a/drivers/media/platform/qcom/Kconfig b/drivers/media/platform/qcom/Kconfig
>> index 4f4d3a68e6e5..f33d53a754a0 100644
>> --- a/drivers/media/platform/qcom/Kconfig
>> +++ b/drivers/media/platform/qcom/Kconfig
>> @@ -5,3 +5,4 @@ comment "Qualcomm media platform drivers"
>>   source "drivers/media/platform/qcom/camss/Kconfig"
>>   source "drivers/media/platform/qcom/iris/Kconfig"
>>   source "drivers/media/platform/qcom/venus/Kconfig"
>> +source "drivers/media/platform/qcom/jpeg/Kconfig"
> 
> Just like for other patch, you ignored reviewers' feedback.
> 
> I already asked you to go through previous comments around v3. I do not
> see improvements, so I assume you do it deliberately.
> 
> NAK
> 
> Best regards,
> Krzysztof

Acknowledged. Inline replies to all previous comments have been sent.
v5 will address all outstanding items.

Best regards,
Atanas


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 6B6473B19B1
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:32:52 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783931573; cv=none; b=g8YmjmPbZz0JNMGS8f/+YPJAZ8K9rHMqDOM3yb3rBPhQ3rclMFPrBsuCqe5afriVz0xiPdzkw/Xdsh83HWwwr+OOx72nGZe7doUyXWfvbVjyaY6oFvkT1bezhfDGG//iOqkvi3sHrF6Ccf3WWuayCgjA7WnYsRqYCqViOM9WEgA=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783931573; c=relaxed/simple;
	bh=izT7iG+kaH0m4tu0+8NdueVzy/iX/EoTNiE5/rPw5JY=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=ojqI9cOurWBoLFlxkH580aRg1OnadMfyPilVIU68Eae5FdO5Gm6ZCkRVw0umr7/fVcR0o3Q0lFkj47KCW8hUIVJkd+8MdmmT75Rmwkh+fqBBV1zu/IpYZJNkkyl+Rq2QrLv0QDo14TnGtlSETMvpbJHkIXBnqMWcBABdGYXYIeI=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=oHw0H6+J; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=CygGUTYw; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="oHw0H6+J";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="CygGUTYw"
Received: from pps.filterd (m0279868.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66D7YmXP794265
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:32:51 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	orA8N+rUfuLziWiAdmDsk+WxJbTynnYWZ3oIdn7j9VA=; b=oHw0H6+J5xZGv9/H
	cYcjHa9QkeP6GovccH1Im00OpuN2zO2QZqbmUty7t0bcfod0fATzhPRkxGOaJluZ
	hSncl3RP84NXmP3QuVXOCVSLydo0nVawL9QgU+VEL/LxgsQvjA9hVWzwiwi6xcop
	9fWbCIwmscuPBQwP+w0zQL86A2egMhXtiT77aF2hQM//tnk5GxBfWCeguPAbQ2td
	Y5p92RpyFWZLJAbzC33iBy4g4ocLkODhi84WnoxHmGnlzIpteIiyCf4YLqYEA+6s
	4DCBpp0kLOJSu3Y5Z/lZesngIuC/e6CuA6rfl2rcxOd2vPE7s6mCRnJ+OUxxJnhI
	RMAiHQ==
Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcurn06mf-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 08:32:51 +0000 (GMT)
Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-8f0ed4fe79aso68567206d6.0
        for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 01:32:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783931571; x=1784536371; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=orA8N+rUfuLziWiAdmDsk+WxJbTynnYWZ3oIdn7j9VA=;
        b=CygGUTYwOLXTWaHIPdpd60eKRw5/2KHxXhOIXtbD7hld9d8KhwW7LBFiJ412nDXHUO
         m2kzXGsB8deVT1x0cnYZT0/EBr6OARNluMqXtONFw9ege+1tzBYqj4VVYBJ7R1odgNdg
         RXAj0SQC8wYqM5+4Q4n6oCHkHmJ0EbUBAmpFmmytR4aEir3ykg9SDCgvjMkK7Sqi0PzR
         yV4BjcOnGTJic+Z9n385bll4PN7eqUeOPe8TuR97ff/FcCDJk3K6XW+jPiJnstIX0NB4
         2SUdowMHA2mDt49NxvDwEXDk6TyFA99nWoBDJl3b6FBinyP+VyrB3CZMs9d8NzVX2A8S
         BbUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783931571; x=1784536371;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=orA8N+rUfuLziWiAdmDsk+WxJbTynnYWZ3oIdn7j9VA=;
        b=eF/Pfn7VJcBEEjKu3FeerCT7dW3JAKtyzEjuvKgfBGh1xVxvq4gyMJNWo+NeZiJ/7/
         pyA+3FWXo2TJuweHeik71NngxGTLV6dzOAu58EwXL+rhw6T3xr/7qntqfzGf6pOKBHPX
         pO08xs3RUxPHA4VkP01bTNyAnIfe+0CtYYdVxPDfSRsRjR5K9Nf/rfNeLVce/A7s4Aw3
         HqigJF3uTz9N72Gcbo0p05e8FCDNFf0uEz7yuqPs0IpwcmiqaED+TPIETlFTGvWUA4Zy
         owvt0OxXpf3v+qaTP6GwchXyCdVnr64A8U+GyxTCftwxUMw4MxO/ap9Am/uDz85NZm5t
         z+dg==
X-Forwarded-Encrypted: i=1; AHgh+RoYxyF7p6zoX5SZFhD12F0OO8gE7eDgxQgVRv4aIvrlnq5RygsxoWJtMKrtVFZaDdamdP82e/ZJJqlm@vger.kernel.org
X-Gm-Message-State: AOJu0Yyf8/pdRiLktOs7CZR6G/mAbBU5tpeZ2fxXFRxbJoC9PCX1Y0Lq
	sdTZLtJOzfY6l6c2V+4MIHzHLwH9KyKzP38rRVuEIIT0TmIIJVO2F4HYRBsBfdH3kUIHiYWrqVc
	j+ZJmfmAFw3ub8My9vppnwFUV+YJx4jUC2ZBR17NXhpMVLhLxT5cy5XDwb8WvNfZk
X-Gm-Gg: AfdE7cmbrd7i3O9cgvw2M/hWG9TCeM13rTD5If+PXiYB6tmuKsf5YhicYwmKOeDMloH
	UEc5t7SCYYLai46qebD+6sy0lDBgtUDRO0m4woam+3pzYEgvq68sl5wQ2cPCTSwGHcH0L+Ijmrz
	agn1mFCshZi9qnRTT0Na7tg2B3HoFSz5+/7YUqBBOaJppq8+01GPFJAWdxugxLLPImh1nF+U/dI
	Xe2Q7pWqjOv81qwF5OOrdc66U2DqI6joVFkZS5ZTFM9TBTEXaky/D/fhb+e3brxBxQBnkYGQcI4
	ACxmmo/SA42bsKcG3zXRjcw2YomkFqbMSWZ8f+x+/JAiDH01IPJc/cE3uY6wkG4oIGvACjfwJBN
	/QwLx/f+syIg5AaUicdPo/eqiPMGF9mTbVVj3skHMEOA=
X-Received: by 2002:a05:622a:34b:b0:51c:88b:d7e3 with SMTP id d75a77b69052e-51cbf0c4b4cmr79278261cf.3.1783931570536;
        Mon, 13 Jul 2026 01:32:50 -0700 (PDT)
X-Received: by 2002:a05:622a:34b:b0:51c:88b:d7e3 with SMTP id d75a77b69052e-51cbf0c4b4cmr79278101cf.3.1783931570178;
        Mon, 13 Jul 2026 01:32:50 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15bb51af39sm858900666b.29.2026.07.13.01.32.48
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 13 Jul 2026 01:32:49 -0700 (PDT)
Message-ID: <30a35954-4d0c-479e-8918-9f7a3a049a5c@oss.qualcomm.com>
Date: Mon, 13 Jul 2026 11:32:48 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250
To: Krzysztof Kozlowski <krzk@kernel.org>, linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, vladimir.zapolskiy@linaro.org,
        loic.poulain@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org,
        krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org,
        konradybcio@kernel.org, linux-arm-msm@vger.kernel.org,
        linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <7479fb60-e14a-4c00-94bd-ecd5a493bec8@kernel.org>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <7479fb60-e14a-4c00-94bd-ecd5a493bec8@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Proofpoint-ORIG-GUID: bMSQMAJybO-HjAE-jMoLXPThduIPvRFJ
X-Authority-Analysis: v=2.4 cv=IcK3n2qa c=1 sm=1 tr=0 ts=6a54a2b3 cx=c_pps
 a=oc9J++0uMp73DTRD5QyR2A==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22
 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=-YhuI8MAAc7Bk1R6834A:9 a=QEXdDO2ut3YA:10
 a=iYH6xdkBrDN1Jqds4HTS:22
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDA4NyBTYWx0ZWRfX+rEZ+sLWdspW
 aQ9rLC0fRFv0AlsK2OCKSMhxLezPW2FQTSMvE849VS30KNnX6EJeUox+XXrlyHH2en8uNL8F2wW
 ZyKjSUQWPrRxIzhsGI0XLXUrPrbwf0g=
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDA4NyBTYWx0ZWRfX8vVUkuSvrRkt
 j2298iqtPwHIF36444jhpsixyr9PA6snfYjwz2r5DwxtXMRqYy9oNGD0ndoJzpDLXRgVS4JDi0K
 7TmkVVBgapf6+8US3LNkQQXhgW76e41YFyoyaL8O7GB28YaTfWrAXuUKkL/TRorqMB+Y71Iyqj7
 m9lAMweTdhmSTtIEGvpY0e4+MLigvMhYjBIQnxtCKj0fUfWG/daLeh2wLAmoM+8qgmVyhygdkIq
 pHawAhQLfPplzxh0SF0qSNbaxtE0I9NLd4RcK/yjSbHQHkZCpV2n6IyY5RXoT5enTgf84+Vg9ba
 ISDCcF3XeXykYBRt/3HD2JI2juXkVKGkhebQHW5mgwB1bZtPR7zrA3LXThHQCk5yx4V7oe2FEBI
 /kq5JMRK2YhJBh8KPI82sR1wrGAk9LWrQvxJTF9ZotWZXSm47UBwup+gANVdG9POQlSMqMxonEM
 e6rL+sHwzfnFV7Zzxiw==
X-Proofpoint-GUID: bMSQMAJybO-HjAE-jMoLXPThduIPvRFJ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-13_02,2026-07-10_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501 spamscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0
 clxscore=1015 impostorscore=0 suspectscore=0 malwarescore=0 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130087

On 7/6/2026 3:24 PM, Krzysztof Kozlowski wrote:
> On 06/07/2026 09:11, Atanas Filipov wrote:
>> This series adds support for the Qualcomm JPEG V4L2 mem2mem encoder on SM8250.
>>
>> The goal is to upstream a standards-based JPEG encode path using the V4L2 M2M
>> framework, with DT-described hardware resources and SoC DTS integration.
>>
> 
> 1. Here was NAK for v2:
> https://lore.kernel.org/all/20260625133828.3221781-1-atanas.filipov@oss.qualcomm.com/
> 
> When I asked to implement previous comments.
> 
> Did you implement them? No.
> 
> 2. At v2-1 version I already asked you to implement comments:
> https://lore.kernel.org/all/c9006b67-aa43-41d3-8b13-f20dd2e544c6@kernel.org/
> 
> Basically now, THIRD TIME, you send the same and you still do not
> implement the comments I asked you at v1.
> 
> I treat it as deliberate action to ignore review. Me asking the same for
> the third time and expecting different results goes towards insanity, so
> let's avoid me becoming insane and consider all future submissions also
> NAK-ed:
> 
> Nacked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> 
> Best regards,
> Krzysztof

Apologies for the repeated failures. It was not deliberate. Inline
replies to all your v1, v2 and v4 comments have now been sent. v5
will address all of them without exception.

Best regards,
Atanas

From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131])
	(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 1108B3B0AE4
	for <linux-kernel@vger.kernel.org>; Mon, 13 Jul 2026 08:38:15 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783931898; cv=none; b=j5pC6Qnxcw28j78owrUFP+rESrqLN+bUavLkNh48VH0NYPU1fPOLZJqijw9CW9+k7hnzM11R631U4D+9Z0ewKoWSXTHrG2C98cMHHYkZt0jSXG9Xlzm5BxWnAeL2wWz6lsqg9Vak7LdJitNMZFOKz/SQ/uTK600x+OH8PN4grx4=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783931898; c=relaxed/simple;
	bh=w9gymKIIY8qbVxG+ONMNM7bkins/+X393rhhygMu0u8=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=tTyw5WSCNELa+V7zkqPdmXYwiOthZS6jdkJqRtlkW1b9MgIFNK/aaDUbGyZgN20OagJMbXOHOOfRKu+vNApTPjuco79vHSjSTD7eKV8PRlfKFUp8rXbCw7bMcZ5C5nwiCBEuIskS98UvHH97G6MXKYd3Pt1z5UFo77Mw8eiBaJs=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=NGe8fOXZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=JxyVw3KS; arc=none smtp.client-ip=205.220.180.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="NGe8fOXZ";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="JxyVw3KS"
Received: from pps.filterd (m0279872.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66D6NwUb472836
	for <linux-kernel@vger.kernel.org>; Mon, 13 Jul 2026 08:38:14 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	NPN1d+VaQFa2WiRxdgb2v0onTMD3U0YsB7IwP3R0BTo=; b=NGe8fOXZDVZke2TI
	vA7XP22Wgo0nlckpbfs2mkA805wV5rVsSgjwBpv5xCRmmC2GpKFDaJ40qNzpNRdQ
	4LQlOE1GWOA9YAJUXOH+jMTklPohs4ye++UDZMv5kgpxi/le+xjGRVDHTDqtzbrV
	rhtWKmeXEc8iZRKdr8h7Y1Ruy9/gkTTAOQ/LKl8v/IfS3RD2vas6h1MzdsEk0HYK
	NVHrX+xMh9DoHEqTf/jollWt/vP53ahMDy/bnexI+RPMLAVX2WZZTWJi7s6yIGVF
	mJsRbgLTHa8ivTWXGel+pX3Q+6UjPzMwtJepNCjvCZWeSBRs7+pZyMMEbEyNZMoc
	l/OErA==
Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fbee9n9xf-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-kernel@vger.kernel.org>; Mon, 13 Jul 2026 08:38:14 +0000 (GMT)
Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51a8b0a08d2so35439661cf.0
        for <linux-kernel@vger.kernel.org>; Mon, 13 Jul 2026 01:38:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783931894; x=1784536694; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=NPN1d+VaQFa2WiRxdgb2v0onTMD3U0YsB7IwP3R0BTo=;
        b=JxyVw3KSm8bsUWy/XNzYxx1zykJMqWG0cJCo8G0kg6Y1WU7zxLY2WZTKz88hnmHnOW
         aAnqSb8ANe6klR/tl/kOFK9U9z1SOMKnsbtCiMfBgHdPiVcGLDM8epffQlYfr+2Plm3r
         EAhP1RbSSXqOQJotD73IrMcQyhFZpj4hRzx3b48rSrbIf67DQA98zws1MCq4CbMDzhR9
         Dx+PDOCuJtHHBwCvqKyABAs/pCr9uUKZY5De+p828B5rRp2yXcdIDIaelEE/8uIIe2Be
         Q9ej0eJzFZRIysr1C3eAYVcet5kGL7bMX1/D5bAZhoFUUSRFCPI67IipqrT0ncijrgQK
         Rh0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783931894; x=1784536694;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=NPN1d+VaQFa2WiRxdgb2v0onTMD3U0YsB7IwP3R0BTo=;
        b=XUFgdFBt5ha8Nhq8yRbJ3mUI7YdeLyvHfPxWEst+hRs3UKwe2o9T2fdN5EDh9k0X3J
         lmccsBLcwr9FzlxgS/CH8WsLCsXc9wblx1yPD1SAkEv2PgrrBm/0/yLJ8RsvISCxcLx6
         u1VN/P6DFqJco81ngLrSQOaLcecbzatzsQNnNdurDb7nIdgCV4UGdLS6AYbVdCU0rp1v
         uNVNN7gKHiepvuOp01uvU5kI0nawEUnxB8KDJpT61PPZ/JH7asTxlcRf9ZpCRZEtquty
         9nWvDdYtWxcv97NwE2EzOIcyDQ0wgrR4CFDW2uqrStXyZv4Du9glplBtqF9OCWOQ2nJm
         rrcA==
X-Forwarded-Encrypted: i=1; AHgh+RpMIf6A4AWXqcDC7p0HUEygcQA+8zhWbET5kaOyaaSQPWNPEj4+UG1pWW8xbqKROJyp5a+ux5Py+51Ww0Q=@vger.kernel.org
X-Gm-Message-State: AOJu0YxWkEFYXPjYdDOYW4GUcsSU4RpavO0EHAKQgS3WYnw8bWhqqyhU
	ApBjByRlhTsN9Taqzv/3iyHrbeUaczC0RmEJ+wBkt3fdg4Euq6w07x8Nk+9CpU2m9s/s3T2aE3I
	CLtcnXKNWElQ8TMsTTUj329B8Z0HLSPNCaSUrdsdwyEyk359cxi+/IhEwaTG3mMoagSQ=
X-Gm-Gg: AfdE7cnEzGNq24LeHJpw4XZZSexEDuWzBS/RCxtbbmjdaRinuN1E0VDvCDQiHngNQoq
	BVNFv1ANmwoSPdjFHUaQwjRt9fwagd3CVuXnuV87F0xBJBA0Y6+cxHEPD//GvdviqSEE/1vRASA
	l8GeXB+/2earNconh+bh70KOwGNmn700vsn7ODKfAXT5qWU4U5swWvKtkqgQyyzfoye7CboZrFl
	GqirheYHQymcFd+gGwhboTX/rJ3N1St/7gucTOnWXM42/G2on0Akv8MqZ9dkm5TOd/WKZrWqBIR
	mNlYAM1HaVCXlL/i7qp2Q4/QsWl0iA32bncrkxl+X1ID0OeKsALIhHduJvu62OzFLxs+vBtwbOs
	2HjV2HVNA3BGc82MADnzHfZ8pnyhIIXG3vwxN555rlV8=
X-Received: by 2002:a05:622a:259b:b0:51c:9ad:d77 with SMTP id d75a77b69052e-51cbf280a7dmr79968511cf.51.1783931893867;
        Mon, 13 Jul 2026 01:38:13 -0700 (PDT)
X-Received: by 2002:a05:622a:259b:b0:51c:9ad:d77 with SMTP id d75a77b69052e-51cbf280a7dmr79968471cf.51.1783931893405;
        Mon, 13 Jul 2026 01:38:13 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15d3e54e83sm742060466b.42.2026.07.13.01.38.11
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 13 Jul 2026 01:38:12 -0700 (PDT)
Message-ID: <ecf8cad1-47cc-4b07-bab2-d0fef6648bae@oss.qualcomm.com>
Date: Mon, 13 Jul 2026 11:38:11 +0300
Precedence: bulk
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/5] dt-bindings: media: qcom: Add JPEG encoder binding
To: Bjorn Andersson <andersson@kernel.org>
Cc: linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-4-atanas.filipov@oss.qualcomm.com>
 <alOpwQx-43WNPHcL@baldur>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <alOpwQx-43WNPHcL@baldur>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDA4OCBTYWx0ZWRfX9Z5Nnal8/3qV
 J7qLhC3jAs3iun3vVGP3VAz0jQ2X3+hd/hY7y5BGoXll5kZfFXwecd33KbgcH/dqnn6Jl3ZPlup
 fEQ0OlzpsDTESO0ykWLZiOiEV7nEgo8=
X-Proofpoint-GUID: YqlzsXJeHQa6igA326kwKX82ql23Dgk2
X-Authority-Analysis: v=2.4 cv=a7UAM0SF c=1 sm=1 tr=0 ts=6a54a3f6 cx=c_pps
 a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22
 a=gEfo2CItAAAA:8 a=EUspDBNiAAAA:8 a=2iqQDksCm9cAjr31UZcA:9 a=QEXdDO2ut3YA:10
 a=dawVfQjAaf238kedN5IG:22 a=sptkURWiP4Gy88Gu7hUp:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDA4OCBTYWx0ZWRfX8QNQo98XYLyc
 pNkYyzuxrrJuzjvd1/i5Z2WzCPRhdgv2vl5rYmu3nptVB68AL7XVOtuyXGvrnKq3fbWKSiVixTZ
 6X+TdxhkM7zEt9Pcce0EQTR20AVaenZLjBHfp4P+g6U76D2cdtVwAlDh8rCT0CHsOQWivuo/ud3
 JjnssC5PmIPHdNwA74GjhxA3wVfPdln5hfPX/kw+VyRuY3lT/CVhwsFvwtCfXKup8w3nLLg/Otr
 lrt3LYwBGL9S8pQZkAGGh0MeRSEPC6SA/vuIUcB6RVXFp89XTk4WvDgDJSDSPudq0ONIIRjdkaE
 hbSDWDZDXEuboCrbeGnS7/y0RFwH6rWyktQd1KJRSFStPmxba/3oSyoJRG1FwXGdgwkef/Ca7RS
 ZniqKGNQ+BCLOtpWPM2YhUSx/TUf2cFhNvuJTZKFZlgGbbwP1N0Ef/chsQOvW6F1VpeXM6Ie6WD
 qoQLVKbdw/7sDH3FUiA==
X-Proofpoint-ORIG-GUID: YqlzsXJeHQa6igA326kwKX82ql23Dgk2
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-13_02,2026-07-10_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 adultscore=0
 clxscore=1015 spamscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130088

On 7/12/2026 5:55 PM, Bjorn Andersson wrote:
> On Mon, Jul 06, 2026 at 10:11:11AM +0300, Atanas Filipov wrote:
>> Add device-tree binding for the Qualcomm JPEG encoder hardware block
>> present in SM8250 (Kona) SoCs.
>>
>> The JPEG encoder is a standalone hardware IP within the camera subsystem
>> that performs JPEG compression in memory-to-memory fashion.  It is
>> separate from the CAMSS ISP pipeline and has its own register space,
>> interrupt, clocks, power domain, IOMMU streams, and interconnect paths.
>>
>> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
>> ---
>>   .../bindings/media/qcom,jpeg-encoder.yaml     | 151 ++++++++++++++++++
>>   1 file changed, 151 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
>> new file mode 100644
>> index 000000000000..e4c16388ef07
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
>> @@ -0,0 +1,151 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/media/qcom,jpeg-encoder.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm JPEG Encoder
>> +
>> +maintainers:
>> +  - Atanas Filipov <atanas.filipov@oss.qualcomm.com>
>> +
>> +description:
>> +  Qualcomm JPEG Encoder is the JPEG encode hardware present in Qualcomm SoCs.
>> +
>> +properties:
>> +  compatible:
>> +    enum:
>> +      - qcom,sm8250-jenc
> 
> I suspect you find it obvious
> that this is the block than is used to enc the js, but I don't.
> 
> We have space, can we please use some more letters here? How about
> inflating this to qcom,sm8250-jpeg-enc?
> 
> Is there a qcom,sm8250-jdec as well? Is that a completely separate
> block, or is this IP-block actually the qcom,scm8250-jpeg block doing
> both encoding and decoding?
> 
> Regards,
> Bjorn
> 

Good point. v5 will use qcom,sm8250-jpeg-enc.

Best regards,
Atanas

>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  interrupts:
>> +    maxItems: 1
>> +
>> +  clocks:
>> +    maxItems: 6
>> +
>> +  clock-names:
>> +    items:
>> +      - const: hf_axi
>> +      - const: sf_axi
>> +      - const: core_ahb
>> +      - const: cpas_ahb
>> +      - const: cnoc_axi
>> +      - const: jpeg
>> +
>> +  interconnects:
>> +    maxItems: 3
>> +
>> +  interconnect-names:
>> +    items:
>> +      - const: cpu-cfg
>> +      - const: hf-mnoc
>> +      - const: sf-mnoc
>> +
>> +  iommus:
>> +    maxItems: 1
>> +
>> +  operating-points-v2: true
>> +
>> +  opp-table:
>> +    type: object
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +  - clocks
>> +  - clock-names
>> +  - interrupts
>> +  - interconnects
>> +  - interconnect-names
>> +  - iommus
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> +  - |
>> +    #include <dt-bindings/clock/qcom,camcc-sm8250.h>
>> +    #include <dt-bindings/clock/qcom,gcc-sm8250.h>
>> +    #include <dt-bindings/interconnect/qcom,icc.h>
>> +    #include <dt-bindings/interconnect/qcom,sm8250.h>
>> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
>> +
>> +    jpeg-encoder@ac53000 {
>> +        compatible = "qcom,sm8250-jenc";
>> +        reg = <0xac53000 0x1000>;
>> +
>> +        interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
>> +
>> +        clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
>> +                 <&gcc GCC_CAMERA_SF_AXI_CLK>,
>> +                 <&camcc CAM_CC_CORE_AHB_CLK>,
>> +                 <&camcc CAM_CC_CPAS_AHB_CLK>,
>> +                 <&camcc CAM_CC_CAMNOC_AXI_CLK>,
>> +                 <&camcc CAM_CC_JPEG_CLK>;
>> +        clock-names = "hf_axi",
>> +                      "sf_axi",
>> +                      "core_ahb",
>> +                      "cpas_ahb",
>> +                      "cnoc_axi",
>> +                      "jpeg";
>> +
>> +        interconnects = <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
>> +                         &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
>> +                        <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
>> +                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>,
>> +                        <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ALWAYS
>> +                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>;
>> +        interconnect-names = "cpu-cfg",
>> +                             "hf-mnoc",
>> +                             "sf-mnoc";
>> +
>> +        iommus = <&apps_smmu 0x2040 0x400>;
>> +
>> +        operating-points-v2 = <&jpeg_opp_table>;
>> +
>> +        jpeg_opp_table: opp-table {
>> +            compatible = "operating-points-v2";
>> +
>> +            opp-100000000 {
>> +                opp-hz = /bits/ 64 <400000000>,
>> +                         /bits/ 64 <100000000>;
>> +                opp-peak-kBps = <76800 104166 104166>;
>> +                opp-avg-kBps = <38400 33569 33569>;
>> +                required-opps = <&rpmhpd_opp_min_svs>;
>> +            };
>> +
>> +            opp-200000000 {
>> +                opp-hz = /bits/ 64 <400000000>,
>> +                         /bits/ 64 <200000000>;
>> +                opp-peak-kBps = <76800 208333 208333>;
>> +                opp-avg-kBps = <38400 67138 67138>;
>> +                required-opps = <&rpmhpd_opp_low_svs>;
>> +            };
>> +
>> +            opp-400000000 {
>> +                opp-hz = /bits/ 64 <400000000>,
>> +                         /bits/ 64 <400000000>;
>> +                opp-peak-kBps = <76800 416666 416666>;
>> +                opp-avg-kBps = <38400 134277 134277>;
>> +                required-opps = <&rpmhpd_opp_svs>;
>> +            };
>> +
>> +            opp-480000000 {
>> +                opp-hz = /bits/ 64 <400000000>,
>> +                         /bits/ 64 <480000000>;
>> +                opp-peak-kBps = <76800 500000 500000>;
>> +                opp-avg-kBps = <38400 161132 161132>;
>> +                required-opps = <&rpmhpd_opp_svs_l1>;
>> +            };
>> +
>> +            opp-600000000 {
>> +                opp-hz = /bits/ 64 <400000000>,
>> +                         /bits/ 64 <600000000>;
>> +                opp-peak-kBps = <76800 625000 625000>;
>> +                opp-avg-kBps = <38400 201416 201416>;
>> +                required-opps = <&rpmhpd_opp_nom>;
>> +            };
>> +        };
>> +    };
>> -- 
>> 2.34.1
>>


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 102F637A835
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 10:34:20 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783938862; cv=none; b=s2ReeveTYWTc1xRxrzSdP6AbiV2QqwgJ9O18VErH5dP1V0LCbFEsJlUuXgMHd5Kj+TypwqjPB5FCUG6YC1A5GE1LtaNKPHKF5UTkZ7VQI/9gqipK+VazPQtpTKvkkAE35eoOfASyIEjQbZKiVxGMZM6jdNGlxMFeCZp+siowRd4=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783938862; c=relaxed/simple;
	bh=80uvDt5MU1fMdxcH8e+Lh30RDkAELmAtxtlNNHoW8+E=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=JUsVz5y1Gwl147HGWoNSdFKOI02w/iLxORDyKRr/VrmSfnjE/cUeqtBwG8jFBy0q60yYiPn/NzpKFkEmNCJEU95e+/GCtZE8zK7ZFhD4SYX7tibeVamISv5M/FlIMTfr94CoovKDzkAVPwc0ouh95VjHe4Tnz3+bnCWij3sV69E=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=V+gCeISA; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Ts0T2PH2; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="V+gCeISA";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Ts0T2PH2"
Received: from pps.filterd (m0279867.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66D9M4Sm1090535
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 10:34:20 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	hStT8qpaedXjiHKccL1ATtGNxSXRj2aYF7INvKg5ScQ=; b=V+gCeISAvfz1jB1z
	zjcsdfJMqSC8J9qKGLfLRi7G7QlXsrHxw0GteUuJDKtCcoyugYbWufARqcQ845y6
	D0Em2KCROztDRovkWvTsnKpwPLTTF8ZvVLJvmgfQ+EYgDGnGLybk1pMvheCosQZI
	H2OdfBSavI1FSZu7slnxEekGwINhbAIQfFspf6KoYloGchjEacDYJy+kSLcIVzwn
	lJUveFzMUGelHx9iAgSIdNOuedCGXG3rz8cec+PY//P4U7eGNb4veuvEMuorigIF
	rlP1rMdqSKQac748gSJa0x0toM188gKucmezY33huD8tHU8YRMKBqG4KPqg6xILX
	dWsoJQ==
Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcwavr8te-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 10:34:20 +0000 (GMT)
Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c110a3b6aso45766861cf.1
        for <devicetree@vger.kernel.org>; Mon, 13 Jul 2026 03:34:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783938859; x=1784543659; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=hStT8qpaedXjiHKccL1ATtGNxSXRj2aYF7INvKg5ScQ=;
        b=Ts0T2PH2DpVlkkhqCAijdswi6oNnu8jgJHfnVHZrRCJwp7ZLFRUynpTMN7A9anyQ+i
         vuHLSdADr4Lcz1MiC+EgR92nH8ZwrNrl8ZC5WCqaRpbVTCUP1xSt9EYQIiNzDwKdqGRP
         JTBjFVgAJ11Kt2RL2o7jfOnXTfG17+gNSIPaYwraceSeDmByQhLPAhZm/0nIA1EbebjN
         MnsugcCJtTeh0EUCp1Aol1v4L1R09RgFivU+peQO/iMq3LpSNEeoPrt6kwsWyBTvruoK
         P3jbj2qNNsgr8o6SaYRf6+SX/MyWKJ4VypLWBLjhwALbcldi2nuZ0mTrJa5sPbDW9O62
         U1TA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783938859; x=1784543659;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=hStT8qpaedXjiHKccL1ATtGNxSXRj2aYF7INvKg5ScQ=;
        b=O2/OXOL51UXD7m1FsRXcZw8AlzlRznS6b2IKIQn4KVsKbRE0dkDEM7JG3n16PlIVEI
         EyM6S6DFhOripOSs1sO/8CNjB/uRrKZs0m5WG0BgIJ6YM7Uq50qflCw16nrqYeIujrll
         m4XpoMZF7tRarBBy35feBZXwFZ7U2dgcdQXMSVGn1I+Sw6b6y6v3/AgZ4/pGUH5sC9Ok
         VahOPuN5QKKfJNDlI6qX7T+aVneYOczpBiJwlruMzT15hvioiYUU2H51LfPyrmWEGhwf
         RDUfc6a0VDerUpeeXRcfH+Hg8D6u+e8YGT86kKYelt1eqtUic1IKzsgATaoWBKUO69I6
         QhAw==
X-Forwarded-Encrypted: i=1; AHgh+RrWA7/fuUkHOF4s7r5fmVZi19J6f4Xqd6KkkPUW8sn4rdS6qJ6gv/pYpRgG2P4Gam7C4xUv7GkbfxIF@vger.kernel.org
X-Gm-Message-State: AOJu0YzxwKy2el+SB/1g02etJI4pJ19syve0vUkflZqZrR/9V24VidSj
	JrDmeIMHscYtzjFPfbClsgZ5X4tdCLHVdNB7SsvEJiqKKiHt2TGcOtZp+1xA5jQ1S5+muHXWHON
	fAPUNKsqdNX0TBgpAGkj752nNoFaJYyaz5xDsim9rf85/xl2kbGMa3zDo/O7Gms/E
X-Gm-Gg: AfdE7ckHPW6JTfFn2XzJCjC94XUeVL6n1YLXPMICzV/DK6lrTE6LwGb/TgcSsvsbwMB
	CmOTHixPBz8L6IfcEKm/4/sfyubBN1xs0x34WxFzmyPFiERWUlFen3/anpVo6H0ldSNfFjdhTen
	DcKUP4dzg5P4CgNaNGztgalOAsD7V7nuoKKYAbfcwUs1dM0XJis1guW5z6cBI+EAi3Ah7qU0+uB
	5pp4XA7+De2+GGueoyBc/1Y3Ije7fgoavz/TIAIYXsnlD3nlDIhHRv07AfU+bP8T75Cubj4ksgm
	1d4mT63n0TywP1fPLuQzg95vvFYtflbeu0hPmkLrET4hyRv6X1HkwtdohWVbRUuOdz0da9WSP6B
	rmpI7qQaN+ltuOtkxOvxXh4t4dl+M1J5fNlKPdkmI0PQ=
X-Received: by 2002:a05:622a:95:b0:51a:8c97:fb9b with SMTP id d75a77b69052e-51cbf2feb65mr80671251cf.68.1783938859128;
        Mon, 13 Jul 2026 03:34:19 -0700 (PDT)
X-Received: by 2002:a05:622a:95:b0:51a:8c97:fb9b with SMTP id d75a77b69052e-51cbf2feb65mr80670781cf.68.1783938858362;
        Mon, 13 Jul 2026 03:34:18 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15de6c565fsm662932066b.2.2026.07.13.03.34.16
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 13 Jul 2026 03:34:17 -0700 (PDT)
Message-ID: <b2f62e42-b909-481a-8aab-07aa5e866665@oss.qualcomm.com>
Date: Mon, 13 Jul 2026 13:34:15 +0300
Precedence: bulk
X-Mailing-List: devicetree@vger.kernel.org
List-Id: <devicetree.vger.kernel.org>
List-Subscribe: <mailto:devicetree+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:devicetree+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/5] arm64: dts: qcom: sm8250: Add JPEG encoder node
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-5-atanas.filipov@oss.qualcomm.com>
 <h2fskxtlb6wusoz7o5pw34ii5n2il4jltcrogmt36676ioq5nd@klwft4s3mzgk>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <h2fskxtlb6wusoz7o5pw34ii5n2il4jltcrogmt36676ioq5nd@klwft4s3mzgk>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: hbHjZW2uM0NbA-Ns4zS6FMaTVbb6RQY6
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEwOSBTYWx0ZWRfX3HeqxnKc65mf
 iG8o82a6GwTcvSSVUGNgjC4xOva9uKMUodUomiPyAIzx1kuc2n4847JbwMPWWYqoEpMwbrK3jph
 D9fjfq3omQH73G8Z9sYjyKBJYYLLofecdh0rSbypSoejOtyIaGrahX4T9C11UOT5OTMu64WzAHT
 1y84E9XObYrMo0GUMPqjFXgOSQwJEpKaOf4Yv+klTdkGIDj+YpzK/lF2sTzjYdxJfQMiI9wqGh5
 Sr0asMsn+HASQ3Aa9JCQR3vJqUJ0nnBdKZ0bUXV0B4SLRYl8vhQzNfPP+3Jny6otEP6KCNTFgxq
 BbyiQwElnTSKALX8RPptDwjZJEB3BPiUym0HQNe+lwYD5+bLa6L7FKOSeJEqusAVEvfxtCsmZKl
 7gP45KoqkWoFo2acyzlEtZTxknqB7qpehxuXdkOPCYY73cyrvznaJJbbjmXaZLqbi/1ZIxW7mJ/
 bBkiq6GzkIsfX59L2wQ==
X-Proofpoint-ORIG-GUID: hbHjZW2uM0NbA-Ns4zS6FMaTVbb6RQY6
X-Authority-Analysis: v=2.4 cv=dZSwG3Xe c=1 sm=1 tr=0 ts=6a54bf2c cx=c_pps
 a=WeENfcodrlLV9YRTxbY/uA==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22
 a=EUspDBNiAAAA:8 a=VDI__ZYCjcDFRWE0z6oA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=kacYvNCVWA4VmyqE58fU:22
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEwOSBTYWx0ZWRfX84jWrUn1r6S6
 z6QBkN87DfGNjLdQ/hMsyMJD1H9QaaxfYP3nlt+21VKJiFDtuDu45dtRqsKJ/+OSbnNys9OrkzO
 w8sMoanDpkVSpNaNURmYl7kn2LEMRMA=
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-13_02,2026-07-10_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 bulkscore=0 priorityscore=1501 adultscore=0 malwarescore=0 spamscore=0
 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130109

On 7/6/2026 3:45 PM, Dmitry Baryshkov wrote:
> On Mon, Jul 06, 2026 at 10:11:12AM +0300, Atanas Filipov wrote:
>> Add the JPEG encoder hardware node to the SM8250 device tree so the
>> qcom-jpeg V4L2 encoder driver can bind and operate on this platform.
>>
>> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
>> ---
>>   arch/arm64/boot/dts/qcom/sm8250.dtsi | 81 ++++++++++++++++++++++++++++
>>   1 file changed, 81 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
>> index 7076720413ab..a089b706f60c 100644
>> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
>> @@ -12,6 +12,7 @@
>>   #include <dt-bindings/dma/qcom-gpi.h>
>>   #include <dt-bindings/gpio/gpio.h>
>>   #include <dt-bindings/interconnect/qcom,osm-l3.h>
>> +#include <dt-bindings/interconnect/qcom,icc.h>
>>   #include <dt-bindings/interconnect/qcom,sm8250.h>
>>   #include <dt-bindings/mailbox/qcom-ipcc.h>
>>   #include <dt-bindings/phy/phy-qcom-qmp.h>
>> @@ -4471,6 +4472,10 @@ cci1_i2c1: i2c-bus@1 {
>>   
>>   		camss: camss@ac6a000 {
>>   			compatible = "qcom,sm8250-camss";
>> +			#address-cells = <2>;
>> +			#size-cells = <2>;
>> +			ranges;
>> +
>>   			status = "disabled";
>>   
>>   			reg = <0 0x0ac6a000 0 0x2000>,
>> @@ -4649,6 +4654,82 @@ port@5 {
>>   					reg = <5>;
>>   				};
>>   			};
>> +
>> +			jpeg-encoder@ac53000 {
>> +				compatible = "qcom,sm8250-jenc";
>> +
>> +				reg = <0 0x0ac53000 0 0x1000>;
> 
> 0x0 instead of just 0
> 
>> +
>> +				interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
>> +
>> +				clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
>> +					 <&gcc GCC_CAMERA_SF_AXI_CLK>,
>> +					 <&camcc CAM_CC_CORE_AHB_CLK>,
>> +					 <&camcc CAM_CC_CPAS_AHB_CLK>,
>> +					 <&camcc CAM_CC_CAMNOC_AXI_CLK>,
>> +					 <&camcc CAM_CC_JPEG_CLK>;
>> +
>> +				clock-names = "hf_axi",
>> +					      "sf_axi",
>> +					      "core_ahb",
>> +					      "cpas_ahb",
>> +					      "cnoc_axi",
>> +					      "jpeg";
> 
> What are the clock _inputs_ on the JPEG core side?
>

CAM_CC_JPEG_CLK is the JPEG-specific core clock. CAM_CC_CAMNOC_AXI_CLK
gates the CAMNOC data path and directly affects encode throughput.

>> +
>> +				interconnects = <&gem_noc MASTER_AMPSS_M0
>> +						 QCOM_ICC_TAG_ACTIVE_ONLY
> 
> Put tags on the previous line (even if it is longer than 80 chars).
> 
>> +						 &config_noc SLAVE_CAMERA_CFG
>> +						 QCOM_ICC_TAG_ACTIVE_ONLY>,
>> +						<&mmss_noc MASTER_CAMNOC_HF
>> +						 QCOM_ICC_TAG_ALWAYS
>> +						 &mc_virt SLAVE_EBI_CH0
>> +						 QCOM_ICC_TAG_ALWAYS>,
>> +						<&mmss_noc MASTER_CAMNOC_SF
>> +						 QCOM_ICC_TAG_ALWAYS
>> +						 &mc_virt SLAVE_EBI_CH0
>> +						 QCOM_ICC_TAG_ALWAYS>;
>> +				interconnect-names = "cpu-cfg",
>> +						     "hf-mnoc",
>> +						     "sf-mnoc";
>> +
>> +				iommus = <&apps_smmu 0x2040 0x400>;
>> +
>> +				operating-points-v2 = <&jpeg_opp_table>;
>> +
>> +				jpeg_opp_table: opp-table {
>> +					compatible = "operating-points-v2";
>> +
>> +					opp-100000000 {
>> +						opp-hz = /bits/ 64 <400000000>,
>> +							 /bits/ 64 <100000000>;
>> +						required-opps = <&rpmhpd_opp_min_svs>;

In downstream there is a dedicated CPAS driver that aggregates AHB/AXI
clock votes and bandwidth requests from all camera IP clients. No
equivalent exists in upstream. So, IMO a few approaches are possible:
1. A dedicated ICC provider that derives clock rates from bandwidth
    requests â€” we have a successful experimental POC of this approach.
2. A dedicated driver similar to downstream CPAS.
3. The CAMSS-as-parent approach â€” trade-offs already discussed in this
    thread.

Having each client set camnoc_axi rate independently is not a good
solution due to last-write-wins semantics. For JPEG specifically this
is a performance issue only â€” the encoder functions even at the parked
19.2 MHz â€” but it is a correctness problem in principle.

Until a proper aggregation mechanism exists upstream, the OPP table is
the only way to ensure camnoc_axi is at the correct frequency when JPEG
runs standalone.

> 
> Inside the DT example i saw bandwidth votes. Why are they gone from the
> DT?
> 

Same root cause â€” without a shared resource aggregation mechanism,
opp-peak/avg-kBps bandwidth votes have no effect today. Will be
revisited when such infrastructure is available upstream.

Best regards,
Atanas

>> +					};
>> +
>> +					opp-200000000 {
>> +						opp-hz = /bits/ 64 <400000000>,
>> +							 /bits/ 64 <200000000>;
>> +						required-opps = <&rpmhpd_opp_low_svs>;
>> +					};
>> +
>> +					opp-400000000 {
>> +						opp-hz = /bits/ 64 <400000000>,
>> +							 /bits/ 64 <400000000>;
>> +						required-opps = <&rpmhpd_opp_svs>;
>> +					};
>> +
>> +					opp-480000000 {
>> +						opp-hz = /bits/ 64 <400000000>,
>> +							 /bits/ 64 <480000000>;
>> +						required-opps = <&rpmhpd_opp_svs_l1>;
>> +					};
>> +
>> +					opp-600000000 {
>> +						opp-hz = /bits/ 64 <400000000>,
>> +							 /bits/ 64 <600000000>;
>> +						required-opps = <&rpmhpd_opp_nom>;
>> +					};
>> +				};
>> +			};
>>   		};
>>   
>>   		camcc: clock-controller@ad00000 {
>> -- 
>> 2.34.1
>>
> 


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 62B4F3E7BB6
	for <linux-media@vger.kernel.org>; Mon, 13 Jul 2026 10:56:58 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783940220; cv=none; b=MVmsrYieq4BlNXfV7OP4452j2dvNRQa4LKXd6DbXcMZspxbpGSItNX0aXdBSPfieU9e7aMD/85mgmVyMzToBtLNCNRUrvC/U74mrQFOa8NOTMQujIILhIx17rxoax8vaEWJGrt/0k5HDCYWkVt0mwgAoUPDWwqFNCdsjnt2TTkQ=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783940220; c=relaxed/simple;
	bh=2MnR6I2BNqAMzfZRvFYRC3qwQP/EwvJfFx5TSQWZhdg=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=RVgR6A5/9iWknyqyPhm9CwEcLtIZMuGsBvWmZOUv+e9du7yp+Xngv+6qHB1nAA0/sNZSrza0Q4ArJH2CrEJ35GJVTOZl2HX+5MxHZNNhRgY//DSHAJsjtt1umXsBn2XRdOmd+e4iUaHp9+GMlhtGtfKBZggKtmQO160+KyHINs8=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=l/SfQ9Zw; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hR0lH+5G; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="l/SfQ9Zw";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hR0lH+5G"
Received: from pps.filterd (m0279866.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66D9dVaM952913
	for <linux-media@vger.kernel.org>; Mon, 13 Jul 2026 10:56:57 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	XWIXGPO/zIvgoe73Zp0dqFW7Zs8Gu8Gr0uQZbbJn3bg=; b=l/SfQ9ZwZka8OfZz
	Y069JmsT+LReaToRF/qODJaKS4vlORk8uYQ8doBOB3YUKhHw/H02UzwQBvYW8SdF
	Q5tmj0Xuyt0FHRE4eZVBa4WfWrPIU1kXZhsD7pHf/vc/SRuBmH1rMmgQ+jApYocZ
	+b3ET493Y2uU/Ij60Sm+qE4JDi28SzEWlTtwZnCiwpQnM8QBB09FzrOUPAOtw/O1
	3jd++pZ6sgHUQITHefGBcWUjBe64OtrE699QuC3wn7jVyU7U+/3cwUcDfcx8fAZq
	Dk7XTCMvORNghlPUtzpfvhqBewh7ZiX1COe250xfpNCF4litHAmqiziqQVxgp5Qn
	MMndDw==
Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcwk3g8nj-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-media@vger.kernel.org>; Mon, 13 Jul 2026 10:56:57 +0000 (GMT)
Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51a87ef9713so41337051cf.1
        for <linux-media@vger.kernel.org>; Mon, 13 Jul 2026 03:56:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783940216; x=1784545016; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=XWIXGPO/zIvgoe73Zp0dqFW7Zs8Gu8Gr0uQZbbJn3bg=;
        b=hR0lH+5GzQYxl9oIYaycpUWGLYnCNK2lTe3mrwc3u9D73LuKt230G+DFUUNCsOF+Ms
         nVwlTRq3BAjzkB5vNnC9WoLlzQArGyPbJSml+UXkXS3U6AmUAPQeupMPFyoDvbZBdwqS
         iaoqRqHCNGYy/QAy+0mgwDxXDmYhakUUt5I9RbkhH/C0MHrNFOTXwtSmm1cdLKRFXTjc
         3xY6HBEUt5mJ+zushAsVxgce8ElK9Qrzp5v/SGXlqjtvSFDvtorOQXt/U9jQ0B6nx+CQ
         jCKsSzSskVHlcfitoItZfq6J7TTP0nfsu7QIgF5IYRecib/5KSpia8U8XcSyP5c9Otmy
         5I7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783940216; x=1784545016;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=XWIXGPO/zIvgoe73Zp0dqFW7Zs8Gu8Gr0uQZbbJn3bg=;
        b=cvarGovKYgOAQS3FPSMpy40k6bL1rUaeJTmOw+a9TKUIn/f9+HvGDd5LCxpe1Eazvr
         G9KFv5sxvwa26fikHWz12M75CFNHlxmiXG9rX2MgYm9+DePzYW7eBzpdZ0pbXdKlXYBh
         qrVusetSIAD18dIDopw+xtbKre01F5tDv3Zba67KYcY4qair+i1grhm/+i77kz6svOAw
         Z7DXrt/jm9EFoP679tf/C2xdgPyjhvDJDlArHjsibneYuAxSlRK0zw3OTgVd4Q89WBJJ
         AFqpcxAT4JKZ/yWI6geqx9HDs0qbc+eXYS6VtN6Q4vRExKrFClQOOu26mPdxZ49PvcFj
         27TQ==
X-Gm-Message-State: AOJu0YxbKFKgp3Egw2tS0Wc9h1bgtXPfrL5axhpYPHNmUXnXXnl0XA8Q
	iZJrAaX2LGDMWQg0V7t/Ut4+Rnyc6z0h6ARZLFlssUd+EB1c6mMZjbKtDfcC4/nTpGNGy/liezl
	WI34bTgsU9bWwmhNwyzy+2Cr/kuuTnAhIAZoxEGkj0qE/BDjzG7OS2fownm4e41sZ/Q==
X-Gm-Gg: AfdE7cncLJu7euA6DYuGV/hyqQWTpvKkSi55XTIo6hAMfdoOKsk9npVVynAMPwoZFzX
	M/CofAQPpSRQ2caa1m8NE/9jyDk1dqlIM1+SRRtmI6MwcyuFgQptvVjsXjaSERbtRMpaRxz5QkR
	+BbYYmX5Z/AfoqrP7YCGnacP+CCcFB3lTIFwztqaJ2/HadLw9+zswdL8uJXjxchcnr3/5b6HWcW
	n9XcumI+GHn2tuAEZjDxvX9T2afyPz92nXHI4oP6EwcpPHTgqV3iAU6TRCMeDFMIJvDKxyv67e9
	5fv/jgxyKtBBJsD/ItdacK+Niq+6AEErQf0t5RR6GRTNTr4fJ2E5fL1E3R4edu7iiLMc79IMyGm
	skVNCmXJeSNRuhfn3N7YQQV3er9q0GABZ4HXbY10YpRs=
X-Received: by 2002:a05:622a:4d8e:b0:517:c582:9161 with SMTP id d75a77b69052e-51caa02e846mr120942261cf.7.1783940216490;
        Mon, 13 Jul 2026 03:56:56 -0700 (PDT)
X-Received: by 2002:a05:622a:4d8e:b0:517:c582:9161 with SMTP id d75a77b69052e-51caa02e846mr120942041cf.7.1783940216036;
        Mon, 13 Jul 2026 03:56:56 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69a19ce4a60sm14666982a12.8.2026.07.13.03.56.54
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 13 Jul 2026 03:56:55 -0700 (PDT)
Message-ID: <b385b69a-4c4d-49cb-add5-285bb9a182a9@oss.qualcomm.com>
Date: Mon, 13 Jul 2026 13:56:53 +0300
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <gri2pdgawm2ymbmebzzxfel5kx5nmyqzrdg6oikfhv5bgt7xem@uld56b6csqhi>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <gri2pdgawm2ymbmebzzxfel5kx5nmyqzrdg6oikfhv5bgt7xem@uld56b6csqhi>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Proofpoint-ORIG-GUID: HqVUvpnV5I3ssrxNBmg5JYvVNC0jxwrg
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDExMyBTYWx0ZWRfX8nS6tgH5N0cv
 WKFuFCHKgHcT34SLPP7XS7newz3ulo70JmaeZiuwuExX4Arrd+t/8X7lc3t2WtVNb3rNDv+xqch
 rwo57EhckGBAa3ynjCRQ9N94kZ6+EyI=
X-Authority-Analysis: v=2.4 cv=e6c2j6p/ c=1 sm=1 tr=0 ts=6a54c479 cx=c_pps
 a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22
 a=SSmOFEACAAAA:8 a=csZBsyBRHWlIDgxsDZoA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=a_PwQJl-kcHnX1M80qC6:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDExMyBTYWx0ZWRfX0pK1BUDZxJHr
 IGqW/nB3EQ+SXRGfg41XFP5nSH6Knb1yPFJLtRcccGVAcgxCB6FZ1TpHf0Sklb65dtDeTYiqNiB
 I10wkYwEpaX4mK/K7yDQkye1GprKIalmxR6Y/n6t4ab1UozRo4pshbahuzurYu4lG0Bl+JDTKj8
 v9nuzDM5PBwplzR5hL07eBBFugX6M/o4VLxaq0yw9FP36D4EgmFVx3hi0e+GRZ18o9jNmGqYcQ4
 0SGi3nffrIQOnxWYozL5ijyvIxJzlCczwCqA1b5Meglk9Yk3FUd5eq0vR96oylJbTN17+MMAvjk
 0EkJBTTF0KByuwtH/96kBaxoA/vOBR53QS86g3+AWYj0bvAbKwfUQARKaAoP49Fl3+uJ2u+UfWj
 lhWboumbFJmTAsfzoiP7oxrrYfgv2BVpbGm4oGsxMA7bhtJn42hk2hfnKX76cP/j8XTPuk/q1AP
 OxN8ksptl2UttLaM6QQ==
X-Proofpoint-GUID: HqVUvpnV5I3ssrxNBmg5JYvVNC0jxwrg
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-13_02,2026-07-10_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501 clxscore=1015 phishscore=0 lowpriorityscore=0 spamscore=0
 adultscore=0 malwarescore=0 impostorscore=0 suspectscore=0 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130113

On 7/6/2026 4:11 PM, Dmitry Baryshkov wrote:
> On Mon, Jul 06, 2026 at 10:11:13AM +0300, Atanas Filipov wrote:
>> Add a Qualcomm JPEG encoder driver implemented on top of the
>> V4L2 mem2mem framework.
>>
>> The driver wires vb2 queue handling, format negotiation, JPEG header
>> handling, interrupt-driven job completion, and runtime PM/clock/ICC
>> integration for the standalone JPEG encode hardware block.
>>
>> This series targets SM8250 (Kona) platforms.
>>
>> The jpeg-encoder node is described as a child node of the CAMSS block
>> and is probed automatically via of_platform_populate() in camss_probe().
>>
>> Usage examples:
>>
>> - Check of related video node: v4l2-ctl --list-devices
>>    The expected result:
>>     qcom-jpeg-enc (platform:qcom-jpeg-enc):
>>          /dev/videoX
>>
>>
>> diff --git a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
>> index e4c16388ef07..53e83ebe4699 100644
>> --- a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
>> +++ b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
>> @@ -72,80 +72,75 @@ examples:
>>       #include <dt-bindings/interconnect/qcom,sm8250.h>
>>       #include <dt-bindings/interrupt-controller/arm-gic.h>
>>   
>> -    jpeg-encoder@ac53000 {
>> -        compatible = "qcom,sm8250-jenc";
>> -        reg = <0xac53000 0x1000>;
> 
> What is going on here? And why?

The binding example was updated in the driver patch by mistake. v5
will have binding and driver in separate patches.

> 
>> -
>> -        interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
>> -
>> -        clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
>> -                 <&gcc GCC_CAMERA_SF_AXI_CLK>,
>> -                 <&camcc CAM_CC_CORE_AHB_CLK>,
>> -                 <&camcc CAM_CC_CPAS_AHB_CLK>,
>> -                 <&camcc CAM_CC_CAMNOC_AXI_CLK>,
>> -                 <&camcc CAM_CC_JPEG_CLK>;
>> -        clock-names = "hf_axi",
>> -                      "sf_axi",
>> -                      "core_ahb",
>> -                      "cpas_ahb",
>> -                      "cnoc_axi",
>> -                      "jpeg";
>> -
>> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h b/drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h
>> new file mode 100644
>> index 000000000000..2ab29bfb9b88
>> --- /dev/null
>> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h
>> @@ -0,0 +1,37 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
>> + */
>> +
>> +#ifndef QCOM_JENC_DEFS_H
>> +#define QCOM_JENC_DEFS_H
>> +
>> +#include <linux/types.h>
>> +#include <uapi/linux/v4l2-controls.h>
> 
> There includes are not necessary for this header.
> 
>> +
>> +/* Offline JPEG encoder constraints */
>> +#define QCOM_JPEG_HW_MAX_WIDTH	8192
>> +#define QCOM_JPEG_HW_MAX_HEIGHT	8192
>> +#define QCOM_JPEG_HW_MIN_WIDTH	256
>> +#define QCOM_JPEG_HW_MIN_HEIGHT	256
>> +
>> +#define QCOM_JPEG_HW_DEF_HSTEP	16
>> +#define QCOM_JPEG_HW_DEF_VSTEP	16
>> +
>> +#define QCOM_JPEG_HW_DEF_WIDTH	1920
>> +#define QCOM_JPEG_HW_DEF_HEIGHT	1088
>> +
>> +#define QCOM_JPEG_MAX_PLANES	3
>> +
>> +#define QCOM_JPEG_QUALITY_MIN	1
>> +#define QCOM_JPEG_QUALITY_DEF	98
>> +#define QCOM_JPEG_QUALITY_MAX	100
>> +#define QCOM_JPEG_QUALITY_MID	(QCOM_JPEG_QUALITY_MAX / 2)
>> +#define QCOM_JPEG_QUALITY_UNT	1
>> +
>> +#define QCOM_JPEG_FPS_MIN	1
>> +#define QCOM_JPEG_FPS_MAX	240
>> +#define QCOM_JPEG_FPS_DEF	30
>> +#define QCOM_JPEG_FPS_UNT	1
> 
> This is a collection of random defines, which are mostly used once.
> Please move them to the corresponding source file.
>

Acknowledged. v5 will remove the unnecessary includes and move the
defines to their respective source files.

>> +
>> +#endif /* QCOM_JENC_DEFS_H */
>> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c b/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c
>> new file mode 100644
>> index 000000000000..ddfa84838b6b
>> --- /dev/null
>> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c
>> @@ -0,0 +1,314 @@
>> +// SPDX-License-Identifier: GPL-2.0-only
>> +/*
>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
>> + */
>> +
>> +#include <linux/clk.h>
>> +#include <linux/interrupt.h>
>> +#include <linux/mod_devicetable.h>
>> +#include <linux/module.h>
>> +#include <linux/platform_device.h>
>> +#include <linux/pm_opp.h>
>> +#include <linux/pm_runtime.h>
>> +#include <linux/slab.h>
>> +
>> +#include <media/v4l2-mem2mem.h>
>> +
>> +#include "qcom_jenc_dev.h"
>> +#include "qcom_jenc_ops.h"
>> +#include "qcom_jenc_res.h"
>> +#include "qcom_jenc_v4l2.h"
>> +
>> +enum jpeg_opp_clks_id {
>> +	JPEG_OPP_CNOC_IDX = 0,
>> +	JPEG_OPP_CORE_IDX
>> +};
>> +
>> +static const char * const opp_clk_names[] = {
>> +	[JPEG_OPP_CNOC_IDX] = "cnoc_axi",
> 
> This way your driver will force its own frequency on the CNOC_AXI clock.
> There are other clients of the clock, so there should be some kind of
> voting on it. Either use icc-clk or add CAMSS API to sum the votes on
> the CNOC_AXI.
> 

Addressed in the reply to your DTS comment.

>> +	[JPEG_OPP_CORE_IDX] = "jpeg",
>> +	NULL,
>> +};
>> +
>> +static struct dev_pm_opp_config opp_config = {
>> +	.clk_names = opp_clk_names,
>> +	.config_clks = dev_pm_opp_config_clks_simple,
>> +};
>> +
>> +static int qcom_jpeg_opp_init(struct qcom_jenc_dev *jenc)
>> +{
>> +	struct dev_pm_opp *opp;
>> +	int rc;
>> +
>> +	rc = devm_pm_opp_set_config(jenc->dev, &opp_config);
>> +	if (rc)
>> +		return rc;
>> +
>> +	rc = devm_pm_opp_of_add_table(jenc->dev);
>> +	if (rc && rc != -ENODEV)
>> +		return rc;
>> +
>> +	/* initialize the maximum available frequency for the JPEG core */
>> +	jenc->max_freq = ULONG_MAX;
>> +	opp = dev_pm_opp_find_freq_floor_indexed(jenc->dev, &jenc->max_freq, JPEG_OPP_CORE_IDX);
>> +	if (IS_ERR(opp))
>> +		return PTR_ERR(opp);
>> +
>> +	dev_pm_opp_put(opp);
>> +
>> +	/* initialize the default optimized frequency for the JPEG core */
>> +	jenc->opt_freq = jenc->max_freq;
>> +
>> +	dev_dbg(jenc->dev, "JPEG max clocks is: %lu\n", jenc->max_freq);
>> +
>> +	return 0;
>> +}
>> +
>> +static int qcom_jpeg_clk_init(struct qcom_jenc_dev *jenc)
>> +{
>> +	jenc->num_clks = devm_clk_bulk_get_all(jenc->dev, &jenc->clks);
>> +	if (jenc->num_clks < 0)
>> +		return jenc->num_clks;
>> +
>> +	return 0;
>> +}
>> +
>> +static int qcom_jpeg_clk_on(struct qcom_jenc_dev *jenc)
>> +{
>> +	struct dev_pm_opp *opp;
>> +	int rc;
>> +
>> +	rc = clk_bulk_prepare_enable(jenc->num_clks, jenc->clks);
>> +	if (rc)
>> +		return rc;
>> +
>> +	/* setup the OPP according to the calculated optimal frequency */
>> +	opp = dev_pm_opp_find_freq_ceil_indexed(jenc->dev, &jenc->opt_freq, JPEG_OPP_CORE_IDX);
>> +	if (IS_ERR(opp)) {
>> +		rc = PTR_ERR(opp);
>> +		goto err_clk_disable;
>> +	}
>> +
>> +	rc = dev_pm_opp_set_opp(jenc->dev, opp);
>> +	if (rc)
>> +		goto err_dev_pm_opp;
>> +
>> +	dev_dbg(jenc->dev, "selected OPP clocks cnoc=%lu, core=%lu\n",
>> +		dev_pm_opp_get_freq_indexed(opp, JPEG_OPP_CNOC_IDX),
>> +		dev_pm_opp_get_freq_indexed(opp, JPEG_OPP_CORE_IDX));
> 
> Drop extra debugging, you can enable debugging for OPP via
> CONFIG_DEBUG_DRIVER.
> 

Acknowledged. v5 will drop the dev_dbg.

>> +
>> +	dev_pm_opp_put(opp);
>> +
>> +	return 0;
>> +
>> +err_dev_pm_opp:
>> +	dev_pm_opp_put(opp);
> 
> Once you drop excessive debugging code, the dev_pm_opp_put() will find
> its natural place right after dev_pm_opp_set_opp(), before checking the
> rc.
> 

Acknowledged. Will be fixed in v5.

>> +err_clk_disable:
>> +	clk_bulk_disable_unprepare(jenc->num_clks, jenc->clks);
>> +
>> +	return rc;
>> +}
>> +
>> +static void qcom_jpeg_clk_off(struct qcom_jenc_dev *jenc)
>> +{
>> +	dev_pm_opp_set_opp(jenc->dev, NULL);
>> +	clk_bulk_disable_unprepare(jenc->num_clks, jenc->clks);
>> +	jenc->opt_freq = jenc->max_freq;
>> +}
>> +
>> +/* qcom_jpeg_camss_get - resume the parent CAMSS device */
>> +static int qcom_jpeg_camss_get(struct qcom_jenc_dev *jenc)
>> +{
>> +	return pm_runtime_resume_and_get(jenc->camss_dev);
> 
> Use devlinks instead.
> 

Acknowledged. v5 will model JPEG as a standalone peer node â€”
the camss_dev parent reference will be dropped entirely.

>> +}
>> +
>> +/* qcom_jpeg_camss_put - release the parent CAMSS device */
>> +static void qcom_jpeg_camss_put(struct qcom_jenc_dev *jenc)
>> +{
>> +	pm_runtime_put_sync(jenc->camss_dev);
>> +}
>> +
>> +static int qcom_jpeg_pm_suspend(struct device *dev)
>> +{
>> +	struct qcom_jenc_dev *jenc = dev_get_drvdata(dev);
>> +
>> +	qcom_jpeg_clk_off(jenc);
>> +	qcom_jpeg_camss_put(jenc);
>> +
>> +	return 0;
>> +}
>> +
>> +static int qcom_jpeg_pm_resume(struct device *dev)
>> +{
>> +	struct qcom_jenc_dev *jenc = dev_get_drvdata(dev);
>> +	int rc;
>> +
>> +	rc = qcom_jpeg_camss_get(jenc);
>> +	if (rc)
>> +		return rc;
>> +
>> +	rc = qcom_jpeg_clk_on(jenc);
>> +	if (rc) {
>> +		qcom_jpeg_camss_put(jenc);
>> +		return rc;
>> +	}
>> +
>> +	return 0;
>> +}
>> +
>> +static int qcom_jpeg_pm_system_suspend(struct device *dev)
>> +{
>> +	struct qcom_jenc_dev *jenc = dev_get_drvdata(dev);
>> +	int rc;
>> +
>> +	v4l2_m2m_suspend(jenc->m2m_dev);
>> +
>> +	rc = pm_runtime_force_suspend(dev);
>> +	if (rc)
>> +		v4l2_m2m_resume(jenc->m2m_dev);
>> +
>> +	return rc;
>> +}
>> +
>> +static int qcom_jpeg_pm_system_resume(struct device *dev)
>> +{
>> +	struct qcom_jenc_dev *jenc = dev_get_drvdata(dev);
>> +	int rc;
>> +
>> +	rc = pm_runtime_force_resume(dev);
>> +	if (rc)
>> +		return rc;
>> +
>> +	v4l2_m2m_resume(jenc->m2m_dev);
>> +
>> +	return 0;
>> +}
>> +
>> +static _DEFINE_DEV_PM_OPS(qcom_jpeg_pm_ops,
>> +			  qcom_jpeg_pm_system_suspend, qcom_jpeg_pm_system_resume,
>> +			  qcom_jpeg_pm_suspend, qcom_jpeg_pm_resume, NULL);
>> +
>> +static int qcom_jpeg_probe(struct platform_device *pdev)
>> +{
>> +	const struct qcom_dev_resources *res;
>> +	struct qcom_jenc_dev *jenc;
>> +	int rc;
>> +
>> +	jenc = devm_kzalloc(&pdev->dev, sizeof(*jenc), GFP_KERNEL);
>> +	if (!jenc)
>> +		return -ENOMEM;
>> +
>> +	jenc->dev = &pdev->dev;
>> +	jenc->camss_dev = pdev->dev.parent;
>> +	platform_set_drvdata(pdev, jenc);
>> +	rc = devm_mutex_init(&pdev->dev, &jenc->dev_mutex);
>> +	if (rc)
>> +		goto err_free_jenc;
>> +	spin_lock_init(&jenc->hw_lock);
>> +	init_completion(&jenc->reset_complete);
>> +	init_completion(&jenc->stop_complete);
>> +
>> +	res = device_get_match_data(jenc->dev);
>> +	if (!res) {
>> +		rc = dev_err_probe(jenc->dev, -ENODEV, "unsupported SoC\n");
>> +		goto err_free_jenc;
> 
> drop the gotos, it's an empty label now.
> 

Acknowledged. Will be fixed in v5.

Best regards,
Atanas

>> +	}
>> +	jenc->res = res;
>> +
>> +	if (!jenc->res->hw_ops) {
>> +		rc = dev_err_probe(jenc->dev, -EINVAL, "missing hw resources\n");
>> +		goto err_free_jenc;
>> +	}
>> +
>> +	rc = dma_set_mask_and_coherent(jenc->dev, DMA_BIT_MASK(32));
>> +	if (rc) {
>> +		dev_err_probe(jenc->dev, rc, "failed to set DMA mask\n");
>> +		goto err_free_jenc;
>> +	}
>> +
>> +	jenc->jpeg_base = devm_platform_ioremap_resource(pdev, 0);
>> +	if (IS_ERR(jenc->jpeg_base)) {
>> +		rc = dev_err_probe(jenc->dev, PTR_ERR(jenc->jpeg_base),
>> +				   "failed to map JPEG resource\n");
>> +		goto err_free_jenc;
>> +	}
>> +
>> +	rc = qcom_jpeg_opp_init(jenc);
>> +	if (rc) {
>> +		dev_err_probe(jenc->dev, rc, "failed to init OPP\n");
>> +		goto err_free_jenc;
>> +	}
>> +
>> +	rc = qcom_jpeg_clk_init(jenc);
>> +	if (rc) {
>> +		dev_err_probe(jenc->dev, rc, "failed to init clocks\n");
>> +		goto err_free_jenc;
>> +	}
>> +
>> +	jenc->irq = platform_get_irq(pdev, 0);
>> +	if (jenc->irq < 0) {
>> +		rc = dev_err_probe(jenc->dev, jenc->irq, "failed to get IRQ\n");
>> +		goto err_free_jenc;
>> +	}
>> +
>> +	rc = devm_request_threaded_irq(jenc->dev, jenc->irq,
>> +				       jenc->res->hw_ops->hw_irq_top,
>> +				       jenc->res->hw_ops->hw_irq_bot,
>> +				       IRQF_ONESHOT | IRQF_NO_AUTOEN, dev_name(jenc->dev), jenc);
>> +	if (rc) {
>> +		dev_err_probe(jenc->dev, rc, "failed to request IRQ\n");
>> +		goto err_free_jenc;
>> +	}
>> +
>> +	rc = v4l2_device_register(jenc->dev, &jenc->v4l2_dev);
>> +	if (rc) {
>> +		dev_err_probe(jenc->dev, rc, "failed to register V4L2 device\n");
>> +		goto err_free_jenc;
>> +	}
>> +
>> +	rc = devm_add_action_or_reset(jenc->dev,
>> +				      (void (*)(void *))v4l2_device_unregister,
>> +				      &jenc->v4l2_dev);
>> +	if (rc)
>> +		goto err_free_jenc;
>> +
>> +	rc = devm_pm_runtime_enable(jenc->dev);
>> +	if (rc)
>> +		goto err_free_jenc;
>> +
>> +	rc = qcom_jpeg_v4l2_register(jenc);
>> +	if (rc) {
>> +		dev_err_probe(jenc->dev, rc, "failed to register video device\n");
>> +		goto err_free_jenc;
>> +	}
>> +
>> +	dev_dbg(jenc->dev, "Qualcomm JPEG encoder registered\n");
>> +
>> +	return 0;
>> +
>> +err_free_jenc:
>> +	return rc;
>> +}
>> +
> 
> [...]
> 
>> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c b/drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c
>> new file mode 100644
>> index 000000000000..c9959518c64d
>> --- /dev/null
>> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c
>> @@ -0,0 +1,331 @@
>> +// SPDX-License-Identifier: GPL-2.0-only
>> +/*
>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
>> + */
>> +
>> +#include <linux/errno.h>
>> +#include <linux/string.h>
>> +
>> +#include <media/jpeg.h>
>> +#include <media/v4l2-jpeg.h>
>> +
>> +#include "qcom_jenc_dev.h"
>> +#include "qcom_jenc_hdr.h"
>> +
>> +/*
>> + * The elements defined in this header are specified
>> + * in the ITU-T T.81 / JPEG specification.
>> + *
>> + * https://www.w3.org/Graphics/JPEG/itu-t81.pdf
>> + */
>> +
>> +#define JFIF_HEADER_WIDTH_OFFS		0x07
>> +#define JFIF_HEADER_HEIGHT_OFFS		0x05
> 
> This is offset_of(), no need to define those.
> 
> I think, you already got a review from me. Move all standard-related
> defines and code to the generic v4l2 code, unless you get an explicit
> blessing from one of V4L2 maintainers not to do so.
> 
>> +#define JFIF_APP0_LENGTH_HI		0x00
>> +#define JFIF_APP0_LENGTH_LO		0x10
>> +#define JFIF_IDENT_TERM		0x00
>> +#define JFIF_VERSION_MAJOR		0x01
>> +#define JFIF_VERSION_MINOR		0x01
>> +#define JFIF_DENSITY_HI			0x00
>> +#define JFIF_DENSITY_LO			0x01
>> +#define JFIF_THUMBNAIL_SIZE		0x00
>> +
>> +#define JPEG_SEG_LEN_HI			0x00
>> +#define JPEG_LEN_DQT_LUMA_LO		0x43
>> +#define JPEG_LEN_DQT_CHROMA_LO		0x43
>> +#define JPEG_LEN_SOF0_MONO_LO		0x0b
>> +#define JPEG_LEN_SOF0_COLOR_LO		0x11
>> +#define JPEG_LEN_DHT_MONO_LO		0xd2
>> +#define JPEG_LEN_DHT_COLOR_HI		0x01
>> +#define JPEG_LEN_DHT_COLOR_LO		0xa2
>> +#define JPEG_LEN_SOS_MONO_LO		0x08
>> +#define JPEG_LEN_SOS_COLOR_LO		0x0c
>> +
>> +struct jpeg_header_buf {
>> +	u8  *ptr;
>> +	u32 size;
>> +	u32 pos;
>> +};
>> +
> 


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 33ECA340DA6
	for <linux-media@vger.kernel.org>; Mon, 13 Jul 2026 11:03:09 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783940592; cv=none; b=qRZ0c+JKDA0OYel1uzf9KNyX36zRibGDd1ywvXWdfB/soCSvcZAelHb/CZ1TlSSY07u8QD06vCJxQRulFXrkYJMFyUhNOm4TAY0FH2M/wwJq+cRS4otnTYPnoek6OP82JiimaZaHCuGxWd5jmHqyUCdfNJVdiLl3OdfRs53OlCw=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783940592; c=relaxed/simple;
	bh=C4QZYbBlFNaRzZh8cobwiO3amW/kadIjpcXjCdnRuMY=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=FsXzJ36TWHABy7u9oCc8TcolbN4mYe2/0RljZlpS6acQPWfg8DBe7t9PQ6okk1mCjTKMKcVHwysa2avRQEJuqU/ZgC6LW5fSLVENBtQgic2/IE7mOii3ejGUOHI8A3Z5MFEpifqQvOXFDAppD7C25OfcT5C/Tr7IclTtpILY7as=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=QL89H+8s; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eGRsJW7H; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="QL89H+8s";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eGRsJW7H"
Received: from pps.filterd (m0279864.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66D99Fbl793988
	for <linux-media@vger.kernel.org>; Mon, 13 Jul 2026 11:03:09 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	fVhLKlR88sVPwds33NtmxQTsMcLVRFlVMJgHZK/hY1s=; b=QL89H+8s2EI9zfQS
	LMnojl0kBThcrMRJDE5eKDn1gVxGwuWecXcO3yU71rrjwkWq/NHZPU9OuvAfDSos
	3F/XVqHkzr9/Uay8zVYa9kYqMfDCnjhL7mYsj3XX2ErX70EJ+H9TfjC87F1TBEDh
	V1NoP0pdnJqm7eFyXDHNBNW11mPBNZIkoAxG8Yn0ctDF1r6B/ZUYxSc9UD0V8CbJ
	9kWu4TXiOe0T3rgMiLPWY9HHI6IbllJvOp/IFCcIwJbpb3O9TLN4u2KHkkQH6Oga
	XZJ7CD+hzpB8SrY10MnpfRygEaWEeVlwu9wkdfEPOskSUW1Z+jBJ23Bz4SKGZnAk
	/OpfXw==
Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcw4qrcjn-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-media@vger.kernel.org>; Mon, 13 Jul 2026 11:03:09 +0000 (GMT)
Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-92e62e3459fso366620285a.0
        for <linux-media@vger.kernel.org>; Mon, 13 Jul 2026 04:03:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783940588; x=1784545388; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=fVhLKlR88sVPwds33NtmxQTsMcLVRFlVMJgHZK/hY1s=;
        b=eGRsJW7H1ggEL3xwQoFgHo4DCXTEfzrRjoIlpqe8vqn3sIweTrov3w7H4cJUCe55ul
         mBkULMughlkhEK0x5zk+FYP6FJXqsVH0OgnNI1+Md0N6knwsF7M6LIaOj8H2XQdIWn/N
         oKPS6LgVBbEBRrZka0kF1zHDDL2M8gl1xd2/COnp5bBbVYtV3QLhCKmLqtIAUKeDqTu/
         rppi52M48egKtW9buWF3ILVaGA49mIv22NpbchtJSc80orfuSisFVkvOlnv+NGf7ZIgl
         Jq1j127Kx3XIlOj9nj77hCmelTvjiWyU14MhOOVAWVL2W5xOlLMvIWoyWL9T2ZpllD1m
         5xJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783940588; x=1784545388;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=fVhLKlR88sVPwds33NtmxQTsMcLVRFlVMJgHZK/hY1s=;
        b=pADDUPFWdXNywDrRedaAFHMOSjcfzaM8oZpo6hjzdR4EHnapZL8pD/RKSJlVjAlixn
         yk3avgCzVcbAQCTENC+G2ZaR5aC9E50ysA7ZzwIRhwfxAQqBMZmYVdZOLKPiM2WjcjjI
         m8vfRVAqTZJYf9xQ9Ei5SCoZ60SgsnpVUJYhx6cc4yE3GmxiZ3qzjh35VuRI0mwgbtui
         /PZM/FP+INP+5A5GdhlwGwtMUrKLJXNk8aHCFOZBC+3T+Rk2AiMFDOF0l+skjgZoqn6h
         Bmnsuuh5N+xmPF+D0VI2UAP/IqEf2Jod6MSruv77eUNpGINxVJJjKuQaonWoEYaGRTkY
         VU5Q==
X-Forwarded-Encrypted: i=1; AHgh+RrbGaTDomUfINnEVcVt1ULcNWtuZ8QOUFUkS9F/COLX/M6z/Y9s3QIdXU6mvCtz3XoObM1UultNZBe2fQ==@vger.kernel.org
X-Gm-Message-State: AOJu0Yy2W/cK3nBmFkgT2zUnOoPmoNYapwovyMsuP6bnBIt4JJDrEzsW
	MlG8owRO+RvrEIvgC0U3uSOJ4GLonvYMLSGOeO2GReaBzBDGcpLoGD+iRZrImErO1SbWrknT3eH
	YXDwMlneLUvod0DjUik7DWn6AOCdcINKhSQ8Ojeewu/6WZ9SocCrh4wVGIFSGJZ5lfg==
X-Gm-Gg: AfdE7ckdEnxF1niAZ4vdWOb+0gxW7DcxebiG+fUNBQLut8NXZdvIgVhwQEUkgKSceS6
	kZmUDlawLGkrK+q2DZE8BlG0d5llLUZ7Dve+Hv5I0K1DNZF+WzEx0UemQmKnhXH8yC3hSA+G8uC
	358S4PZh3hnpY6K8rBJMw9ShyQk2yfOKowIDEujvPduX6ShfYjGTHe+rW4Q1iTK+MTbszzBWZQP
	tl+chN+xYBOCy5EBU3F0bYG5dlkb6pfblSW2jUhnW18t3oyeClzQZZrI8+J4UFIvX34Pfj3RcNM
	lV7X49ge23VtfFeJsBNK9Wnt4WrCZluGUSH1J17cxZxahPFbbIt+iMbW9ArXMAOCH19KC3l/Mhj
	q66xe9mYYYL57QFMT5xrSc1qk2uY7gQiPMS3DQ5IHzjg=
X-Received: by 2002:ac8:5ad2:0:b0:51c:1967:5098 with SMTP id d75a77b69052e-51cbf147113mr84526101cf.38.1783940587742;
        Mon, 13 Jul 2026 04:03:07 -0700 (PDT)
X-Received: by 2002:ac8:5ad2:0:b0:51c:1967:5098 with SMTP id d75a77b69052e-51cbf147113mr84525561cf.38.1783940586963;
        Mon, 13 Jul 2026 04:03:06 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15bb51af39sm883307766b.29.2026.07.13.04.03.05
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 13 Jul 2026 04:03:05 -0700 (PDT)
Message-ID: <6048ee9c-746f-46db-8cac-36ad9913bdcc@oss.qualcomm.com>
Date: Mon, 13 Jul 2026 14:03:04 +0300
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
        linux-media@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <51a0abf2-2a72-4551-894b-2c2de91ba0c2@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDExNSBTYWx0ZWRfXxk1DeKX5tu6g
 8vBxxyYqv5RHgtpuUKkaXq/z5hZkXLgL0sD/5bqUr0bRFhRYSo7UFNxBCLjp7Xk2LZqZzOPbNd/
 yt4TQQ2w/GvoAvMfmLQYrXP6T6BU4hNRHIdwExvkZPC42z7l7nws95oo0TeC6oF5RKY50EjEaw0
 GwQ7FABDFZXjvKkMK/eKgTKqC5EaHycPfoHwH9a2CtxOa08pIs81KJwd9yXabUCbNaW2bq4j1y8
 kfFkRgWO7iG2e/rnqY0M7R+3wQ+NH3VQ5lkGARgF+2NbRlZdC2q1O9p94J5PG8vK1kBAJNCv97z
 nY3Rpm04gqbM6OHNzHtzvjE45VxRXA3EODkjJpU/PJjuZPZb+6XbcoGkX/exHNJrDqqMFyKyu83
 kJQDoPrCpIhltYHz+AqAt4858DqfyjXEi7rrYIpn74QPrLJMTJX92vvJFsLnddFelR2/pUtdGDq
 0dd/zSQwPhR6ik84l/w==
X-Authority-Analysis: v=2.4 cv=HJrz0Itv c=1 sm=1 tr=0 ts=6a54c5ed cx=c_pps
 a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22
 a=EUspDBNiAAAA:8 a=iBs_2JLk4Nf4k2A5_gQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=PEH46H7Ffwr30OY-TuGO:22
X-Proofpoint-GUID: pBbmZM-tNNRrbC29v8nKqEkhqKUDloSv
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDExNSBTYWx0ZWRfX4IxYXh4rnt1N
 ED4+KVox6pvxo/naCVk5GNsj83W8/sAWDU38Vic7iGnmcOsw2Mjm8orKn+qgPkgD7OhVIzRojrG
 6diX506RGcLG3kcS6Jo/Sduqw8DaAb8=
X-Proofpoint-ORIG-GUID: pBbmZM-tNNRrbC29v8nKqEkhqKUDloSv
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-13_02,2026-07-10_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 spamscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0
 clxscore=1015 malwarescore=0 priorityscore=1501 suspectscore=0 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130115

On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
> Hi Atanas.
> 
> lt me provide a few initial simple review comments.
> 
> On 7/6/26 10:11, Atanas Filipov wrote:
>> Add a Qualcomm JPEG encoder driver implemented on top of the
>> V4L2 mem2mem framework.
>>
>> The driver wires vb2 queue handling, format negotiation, JPEG header
>> handling, interrupt-driven job completion, and runtime PM/clock/ICC
>> integration for the standalone JPEG encode hardware block.
>>
>> This series targets SM8250 (Kona) platforms.
>>
>> The jpeg-encoder node is described as a child node of the CAMSS block
>> and is probed automatically via of_platform_populate() in camss_probe().
>>
>> Usage examples:
>>
>> - Check of related video node: v4l2-ctl --list-devices
>> Â Â  The expected result:
>> Â Â Â  qcom-jpeg-enc (platform:qcom-jpeg-enc):
>> Â Â Â Â Â Â Â Â  /dev/videoX
>>
>> V4L2 Examples:
>>
>> v4l2-ctl -d /dev/video14 \
>> --set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
>> --stream-mmap --stream-out-mmap
>>
>> v4l2-ctl -d /dev/video14 \
>> -c compression_quality=100 \
>> --set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
>> --stream-mmap --stream-out-mmap \
>> --stream-count=100
>>
>> v4l2-ctl -d /dev/video14 \
>> --set-fmt-video-out=width=1920,height=1080,pixelformat=NM12 \
>> --stream-mmap --stream-out-mmap \
>> --set-ctrl=perf_level_auto=1 \
>> --set-ctrl=fps_target=30 \
>> --stream-count=100
>>
>> v4l2-ctl -d /dev/video14 \
>> --set-fmt-video-out=width=8192,height=8192,pixelformat=NM12 \
>> --stream-mmap --stream-out-mmap \
>> --stream-count=1 \
>> --stream-to=8192x8192_NM12.jpg
>>
>> v4l2-ctl -d /dev/video14 \
>> --set-fmt-video-out=width=8192,height=8192,pixelformat=GREY \
>> --stream-mmap --stream-out-mmap \
>> --stream-count=1 \
>> --stream-to=OUT_8192x8192.jpg
>>
>> v4l2-ctl -d /dev/video14 \
>> -c compression_quality=100 \
>> --set-fmt-video-out=width=1920,height=1088,pixelformat=NM12 \
>> --stream-mmap=4 --stream-out-mmap=4 \
>> --stream-count=100 \
>> --stream-out-pattern=21 \
>> --stream-to=OUT_1920x1088_100F.mjpg
>>
>> GStreamer examples:
>>
>> gst-launch-1.0 videotestsrc \
>> is-live=false pattern=ball num-buffers=50 ! \
>> video/x-raw,format=NV12,width=1920,height=1080 ! \
>> videoscale ! videoconvert ! \
>> video/x-raw,format=NV12,width=1920,height=1088 ! \
>> v4l2jpegenc ! \
>> fakesink sync=false
>>
>> gst-launch-1.0 videotestsrc is-live=true pattern=smpte ! \
>> video/x-raw,format=NV12,width=1920,height=1088 ! \
>> v4l2jpegenc extra-controls="controls,compression_quality=85" ! \
>> fpsdisplaysink -v sync=false
>>
>> Performance measurements on SM8250
>> (NV12, quality=100, GStreamer v4l2jpegenc vs jpegenc):
>>
>> +------------+-----------------------------+-------------------+
>> | Resolution |Â Â Â  HW v4l2jpegenc (q100)Â Â Â  | SW jpegenc (q100) |
>> |Â Â Â Â Â Â Â Â Â Â Â  | Execution | avrFPS | maxFPS | Execution |Â  FPSÂ  |
>> +------------+-----------+--------+--------+-----------+-------+
>> |Â Â  512x512Â  | 2.2332Â Â Â  | 1139.1 | 1195.4 | 7.1055Â Â Â  | 358.0 |
>> |Â  1280x720Â  | 1.7300Â Â Â  |Â  418.5 |Â  457.2 | 5.0585Â Â Â  | 143.1 |
>> | 1024x1024Â  | 1.6991Â Â Â  |Â  374.3 |Â  397.4 | 4.7304Â Â Â  | 134.4 |
>> | 1920x1088Â  | 1.6596Â Â Â  |Â  192.8 |Â  193.8 | 3.7913Â Â Â  |Â  84.4 |
>> | 2048x2048Â  | 1.7277Â Â Â  |Â Â  92.0 |Â Â  91.6 | 3.6343Â Â Â  |Â  43.7 |
>> | 4096x4096Â  | 1.5887Â Â Â  |Â Â  25.2 |Â Â  25.3 | 4.2163Â Â Â  |Â Â  9.5 |
>> | 8192x8192Â  | 1.3104Â Â Â  |Â Â Â  7.6 |Â Â Â  8.0 | 2.9987Â Â Â  |Â Â  3.3 |
>> +------------+-----------+--------+--------+-----------+-------+
>>
>> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
>> ---
>> Â  .../bindings/media/qcom,jpeg-encoder.yamlÂ Â Â Â  |Â  143 +-
>> Â  drivers/media/platform/qcom/KconfigÂ Â Â Â Â Â Â Â Â Â  |Â Â Â  1 +
>> Â  drivers/media/platform/qcom/MakefileÂ Â Â Â Â Â Â Â Â  |Â Â Â  1 +
>> Â  drivers/media/platform/qcom/jpeg/KconfigÂ Â Â Â Â  |Â Â  15 +
>> Â  drivers/media/platform/qcom/jpeg/MakefileÂ Â Â Â  |Â Â Â  9 +
>> Â  .../media/platform/qcom/jpeg/qcom_jenc_defs.h |Â Â  37 +
>> Â  .../media/platform/qcom/jpeg/qcom_jenc_dev.cÂ  |Â  314 ++++
>> Â  .../media/platform/qcom/jpeg/qcom_jenc_dev.hÂ  |Â  109 ++
>> Â  .../media/platform/qcom/jpeg/qcom_jenc_hdr.cÂ  |Â  331 ++++
>> Â  .../media/platform/qcom/jpeg/qcom_jenc_hdr.hÂ  |Â  119 ++
>> Â  .../media/platform/qcom/jpeg/qcom_jenc_ops.cÂ  | 1625 +++++++++++++++++
>> Â  .../media/platform/qcom/jpeg/qcom_jenc_ops.hÂ  |Â Â  52 +
>> Â  .../media/platform/qcom/jpeg/qcom_jenc_res.cÂ  |Â Â  15 +
>> Â  .../media/platform/qcom/jpeg/qcom_jenc_res.hÂ  |Â Â  19 +
>> Â  .../qcom/jpeg/qcom_jenc_v420_hw_info.hÂ Â Â Â Â Â Â  |Â  410 +++++
>> Â  .../media/platform/qcom/jpeg/qcom_jenc_v4l2.c | 1154 ++++++++++++
>> Â  .../media/platform/qcom/jpeg/qcom_jenc_v4l2.h |Â Â  23 +
>> Â  include/media/jpeg.hÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â Â  33 +
>> Â  include/uapi/linux/v4l2-controls.hÂ Â Â Â Â Â Â Â Â Â Â  |Â Â  21 +
>> Â  19 files changed, 4357 insertions(+), 74 deletions(-)
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/Kconfig
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/Makefile
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_defs.h
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_dev.c
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_dev.h
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.c
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_hdr.h
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_ops.c
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_ops.h
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_res.c
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_res.h
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/ 
>> qcom_jenc_v420_hw_info.h
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.c
>> Â  create mode 100644 drivers/media/platform/qcom/jpeg/qcom_jenc_v4l2.h
>>
>> diff --git a/Documentation/devicetree/bindings/media/qcom,jpeg- 
>> encoder.yaml b/Documentation/devicetree/bindings/media/qcom,jpeg- 
>> encoder.yaml
>> index e4c16388ef07..53e83ebe4699 100644
>> --- a/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
>> +++ b/Documentation/devicetree/bindings/media/qcom,jpeg-encoder.yaml
>> @@ -72,80 +72,75 @@ examples:
>> Â Â Â Â Â  #include <dt-bindings/interconnect/qcom,sm8250.h>
>> Â Â Â Â Â  #include <dt-bindings/interrupt-controller/arm-gic.h>
>> -Â Â Â  jpeg-encoder@ac53000 {
>> -Â Â Â Â Â Â Â  compatible = "qcom,sm8250-jenc";
>> -Â Â Â Â Â Â Â  reg = <0xac53000 0x1000>;
>> -
>> -Â Â Â Â Â Â Â  interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
>> -
>> -Â Â Â Â Â Â Â  clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&gcc GCC_CAMERA_SF_AXI_CLK>,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&camcc CAM_CC_CORE_AHB_CLK>,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&camcc CAM_CC_CPAS_AHB_CLK>,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&camcc CAM_CC_CAMNOC_AXI_CLK>,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&camcc CAM_CC_JPEG_CLK>;
>> -Â Â Â Â Â Â Â  clock-names = "hf_axi",
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf_axi",
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "core_ahb",
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "cpas_ahb",
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "cnoc_axi",
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "jpeg";
>> -
>> -Â Â Â Â Â Â Â  interconnects = <&gem_noc MASTER_AMPSS_M0 
>> QCOM_ICC_TAG_ACTIVE_ONLY
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &config_noc SLAVE_CAMERA_CFG 
>> QCOM_ICC_TAG_ACTIVE_ONLY>,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ALWAYS
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>;
>> -Â Â Â Â Â Â Â  interconnect-names = "cpu-cfg",
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "hf-mnoc",
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf-mnoc";
>> -
>> -Â Â Â Â Â Â Â  iommus = <&apps_smmu 0x2040 0x400>;
>> -
>> -Â Â Â Â Â Â Â  operating-points-v2 = <&jpeg_opp_table>;
>> -
>> -Â Â Â Â Â Â Â  jpeg_opp_table: opp-table {
>> -Â Â Â Â Â Â Â Â Â Â Â  compatible = "operating-points-v2";
>> -
>> -Â Â Â Â Â Â Â Â Â Â Â  opp-100000000 {
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-hz = /bits/ 64 <400000000>,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /bits/ 64 <100000000>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-peak-kBps = <76800 104166 104166>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-avg-kBps = <38400 33569 33569>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  required-opps = <&rpmhpd_opp_min_svs>;
>> -Â Â Â Â Â Â Â Â Â Â Â  };
>> -
>> -Â Â Â Â Â Â Â Â Â Â Â  opp-200000000 {
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-hz = /bits/ 64 <400000000>,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /bits/ 64 <200000000>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-peak-kBps = <76800 208333 208333>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-avg-kBps = <38400 67138 67138>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  required-opps = <&rpmhpd_opp_low_svs>;
>> -Â Â Â Â Â Â Â Â Â Â Â  };
>> -
>> -Â Â Â Â Â Â Â Â Â Â Â  opp-400000000 {
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-hz = /bits/ 64 <400000000>,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /bits/ 64 <400000000>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-peak-kBps = <76800 416666 416666>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-avg-kBps = <38400 134277 134277>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  required-opps = <&rpmhpd_opp_svs>;
>> -Â Â Â Â Â Â Â Â Â Â Â  };
>> -
>> -Â Â Â Â Â Â Â Â Â Â Â  opp-480000000 {
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-hz = /bits/ 64 <400000000>,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /bits/ 64 <480000000>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-peak-kBps = <76800 500000 500000>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-avg-kBps = <38400 161132 161132>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  required-opps = <&rpmhpd_opp_svs_l1>;
>> -Â Â Â Â Â Â Â Â Â Â Â  };
>> -
>> -Â Â Â Â Â Â Â Â Â Â Â  opp-600000000 {
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-hz = /bits/ 64 <400000000>,
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /bits/ 64 <600000000>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-peak-kBps = <76800 625000 625000>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-avg-kBps = <38400 201416 201416>;
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  required-opps = <&rpmhpd_opp_nom>;
>> +Â Â Â  soc {
> 
> The 'jpeg-encoder' devicetree node is not placed directly under 'soc', 
> which
> invalidates this one change in the dt-bindings documentation.
> 
> In any case, this change shall be squashed with 3/5, and the doc file 
> should
> be named by compatible value, i.e. 'qcom,sm8250-jenc.yaml'.
> 

Acknowledged. In v5 the binding change will be in its own patch and
the file will be named qcom,sm8250-jpeg-enc.yaml (encoder-only block).

Best regards,
Atanas

>> +Â Â Â Â Â Â Â  #address-cells = <2>;
>> +Â Â Â Â Â Â Â  #size-cells = <2>;
>> +
>> +Â Â Â Â Â Â Â  jpeg-encoder@ac53000 {
>> +Â Â Â Â Â Â Â Â Â Â Â  compatible = "qcom,sm8250-jenc";
>> +Â Â Â Â Â Â Â Â Â Â Â  reg = <0 0x0ac53000 0 0x1000>;
>> +
>> +Â Â Â Â Â Â Â Â Â Â Â  interrupts = <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>;
>> +
>> +Â Â Â Â Â Â Â Â Â Â Â  clocks = <&gcc GCC_CAMERA_HF_AXI_CLK>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&gcc GCC_CAMERA_SF_AXI_CLK>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&camcc CAM_CC_CORE_AHB_CLK>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&camcc CAM_CC_CPAS_AHB_CLK>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&camcc CAM_CC_CAMNOC_AXI_CLK>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&camcc CAM_CC_JPEG_CLK>;
>> +Â Â Â Â Â Â Â Â Â Â Â  clock-names = "hf_axi",
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf_axi",
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "core_ahb",
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "cpas_ahb",
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "cnoc_axi",
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "jpeg";
>> +
>> +Â Â Â Â Â Â Â Â Â Â Â  interconnects = <&gem_noc MASTER_AMPSS_M0 
>> QCOM_ICC_TAG_ACTIVE_ONLY
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &config_noc SLAVE_CAMERA_CFG 
>> QCOM_ICC_TAG_ACTIVE_ONLY>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_HF 
>> QCOM_ICC_TAG_ALWAYS
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0 
>> QCOM_ICC_TAG_ALWAYS>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  <&mmss_noc MASTER_CAMNOC_SF 
>> QCOM_ICC_TAG_ALWAYS
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &mc_virt SLAVE_EBI_CH0 
>> QCOM_ICC_TAG_ALWAYS>;
>> +Â Â Â Â Â Â Â Â Â Â Â  interconnect-names = "cpu-cfg",
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "hf-mnoc",
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "sf-mnoc";
> 
> This is the topic, which may raise a disagreement, but I'll repeat my
> position about the need to remove all "CAMSS bus" specific resources from
> the device node, they are found and should be allocated on parent's side.
> 
>  From what I see it is applicable to all but one clock and all 
> interconnects.
> 
>> +
>> +Â Â Â Â Â Â Â Â Â Â Â  iommus = <&apps_smmu 0x2040 0x400>;
>> +
>> +Â Â Â Â Â Â Â Â Â Â Â  operating-points-v2 = <&jpeg_opp_table>;
>> +
>> +Â Â Â Â Â Â Â Â Â Â Â  jpeg_opp_table: opp-table {
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  compatible = "operating-points-v2";
>> +
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-100000000 {
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-hz = /bits/ 64 <400000000>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /bits/ 64 <100000000>;
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  required-opps = <&rpmhpd_opp_min_svs>;
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  };
>> +
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-200000000 {
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-hz = /bits/ 64 <400000000>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /bits/ 64 <200000000>;
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  required-opps = <&rpmhpd_opp_low_svs>;
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  };
>> +
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-400000000 {
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-hz = /bits/ 64 <400000000>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /bits/ 64 <400000000>;
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  required-opps = <&rpmhpd_opp_svs>;
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  };
>> +
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-480000000 {
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-hz = /bits/ 64 <400000000>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /bits/ 64 <480000000>;
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  required-opps = <&rpmhpd_opp_svs_l1>;
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  };
>> +
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-600000000 {
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  opp-hz = /bits/ 64 <400000000>,
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  /bits/ 64 <600000000>;
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  required-opps = <&rpmhpd_opp_nom>;
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  };
>> Â Â Â Â Â Â Â Â Â Â Â Â Â  };
>> Â Â Â Â Â Â Â Â Â  };
>> Â Â Â Â Â  };
> 
> <snip>
> 
>> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_res.c b/ 
>> drivers/media/platform/qcom/jpeg/qcom_jenc_res.c
>> new file mode 100644
>> index 000000000000..f9ab7c86792f
>> --- /dev/null
>> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_res.c
>> @@ -0,0 +1,15 @@
>> +// SPDX-License-Identifier: GPL-2.0-only
>> +/*
>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
>> + */
>> +
>> +#include "qcom_jenc_ops.h"
>> +#include "qcom_jenc_res.h"
>> +
>> +#include "qcom_jenc_v420_hw_info.h"
>> +
>> +const struct qcom_dev_resources qcom_t165_t480_jpeg_drvdata = {
>> +Â Â Â  .hw_opsÂ Â Â Â Â Â Â Â Â Â Â  = &qcom_jpeg_default_ops,
>> +Â Â Â  .ref_clk_hzÂ Â Â Â Â Â Â  = 600000000UL,
>> +Â Â Â  .ref_throughput_mppsÂ Â Â  = 110UL,
>> +};
>> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_res.h b/ 
>> drivers/media/platform/qcom/jpeg/qcom_jenc_res.h
>> new file mode 100644
>> index 000000000000..91c6e789cffa
>> --- /dev/null
>> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_res.h
>> @@ -0,0 +1,19 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
>> + */
>> +
>> +#ifndef QCOM_JENC_RES_H
>> +#define QCOM_JENC_RES_H
>> +
>> +#include "qcom_jenc_defs.h"
>> +
>> +struct qcom_dev_resources {
>> +Â Â Â  const struct qcom_jpeg_hw_opsÂ Â Â  *hw_ops;
>> +Â Â Â  unsigned longÂ Â Â Â Â Â Â Â Â Â Â  ref_clk_hz;
>> +Â Â Â  unsigned longÂ Â Â Â Â Â Â Â Â Â Â  ref_throughput_mpps;
>> +};
>> +
>> +extern const struct qcom_dev_resources qcom_t165_t480_jpeg_drvdata;
>> +
>> +#endifÂ Â Â  /* QCOM_JENC_RES_H */
>> diff --git a/drivers/media/platform/qcom/jpeg/qcom_jenc_v420_hw_info.h 
>> b/drivers/media/platform/qcom/jpeg/qcom_jenc_v420_hw_info.h
>> new file mode 100644
>> index 000000000000..ebf69128cc2b
>> --- /dev/null
>> +++ b/drivers/media/platform/qcom/jpeg/qcom_jenc_v420_hw_info.h
>> @@ -0,0 +1,410 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
>> + */
>> +
>> +#ifndef QCOM_JENC_V420_HW_INFO_H
>> +#define QCOM_JENC_V420_HW_INFO_H
>> +
>> +#include "qcom_jenc_defs.h"
>> +
>> +#define JPEG_V420_HW_VER_STEP_POS 0
>> +#define JPEG_V420_HW_VER_STEP_MSK \
>> +Â Â Â  (0xffffu << JPEG_V420_HW_VER_STEP_POS)
>> +
>> +#define JPEG_V420_HW_VER_MINOR_POS 16
>> +#define JPEG_V420_HW_VER_MINOR_MSK \
>> +Â Â Â  (0x0fffu << JPEG_V420_HW_VER_MINOR_POS)
>> +
>> +#define JPEG_V420_HW_VER_MAJOR_POS 28
>> +#define JPEG_V420_HW_VER_MAJOR_MSK \
>> +Â Â Â  (0xfu << JPEG_V420_HW_VER_MAJOR_POS)
>> +
>> +#define JPEG_V420_HW_CAP_ENCODE_MSK BIT_U32(0)
>> +#define JPEG_V420_HW_CAP_DECODE_MSK BIT_U32(1)
>> +
>> +#define JPEG_V420_HW_CAP_UPSCALE_POS 4
>> +#define JPEG_V420_HW_CAP_UPSCALE_MSK \
>> +Â Â Â  (0x7u << JPEG_V420_HW_CAP_UPSCALE_POS)
>> +
>> +#define JPEG_V420_HW_CAP_DOWNSCALE_POS 8
>> +#define JPEG_V420_HW_CAP_DOWNSCALE_MSK \
>> +Â Â Â  (0x7u << JPEG_V420_HW_CAP_DOWNSCALE_POS)
>> +
>> +#define JPEG_V420_RST_CMD_FE_RESET_MSKÂ Â Â Â Â Â Â Â Â Â Â  BIT_U32(0)
>> +#define JPEG_V420_RST_CMD_WE_RESET_MSKÂ Â Â Â Â Â Â Â Â Â Â  BIT_U32(1)
>> +#define JPEG_V420_RST_CMD_ENCODER_RESET_MSKÂ Â Â Â Â Â Â  BIT_U32(4)
>> +#define JPEG_V420_RST_CMD_DECODER_RESET_MSKÂ Â Â Â Â Â Â  BIT_U32(5)
>> +#define JPEG_V420_RST_CMD_BLOCK_FORMATTER_RST_MSKÂ Â Â  BIT_U32(6)
>> +#define JPEG_V420_RST_CMD_SCALE_RESET_MSKÂ Â Â Â Â Â Â  BIT_U32(7)
>> +#define JPEG_V420_RST_CMD_REGISTER_RESET_MSKÂ Â Â Â Â Â Â  BIT_U32(13)
>> +#define JPEG_V420_RST_CMD_MISR_RESET_MSKÂ Â Â Â Â Â Â  BIT_U32(16)
>> +#define JPEG_V420_RST_CMD_CORE_RESET_MSKÂ Â Â Â Â Â Â  BIT_U32(17)
>> +#define JPEG_V420_RST_CMD_JPEG_V420_DOMAIN_RESET_MSKÂ Â Â  BIT_U32(29)
>> +#define JPEG_V420_RST_CMD_RESET_BYPASS_MSKÂ Â Â Â Â Â Â  BIT_U32(31)
>> +
>> +#define JPEG_V420_CORE_CFG_FE_ENABLE_MSKÂ Â Â  BIT_U32(0)
>> +#define JPEG_V420_CORE_CFG_WE_ENABLE_MSKÂ Â Â  BIT_U32(1)
>> +#define JPEG_V420_CORE_CFG_ENC_ENABLE_MSKÂ Â Â  BIT_U32(4)
>> +#define JPEG_V420_CORE_CFG_SCALE_ENABLE_MSKÂ Â Â  BIT_U32(7)
>> +#define JPEG_V420_CORE_CFG_TESTBUS_ENABLE_MSKÂ Â Â  BIT_U32(19)
>> +#define JPEG_V420_CORE_CFG_MODE_MSKÂ Â Â Â Â Â Â  BIT_U32(24)
>> +#define JPEG_V420_CORE_CFG_CGC_DISABLE_MSKÂ Â Â  BIT_U32(31)
>> +
>> +#define JPEG_V420_CMD_HW_START_MSKÂ Â Â Â Â Â Â  BIT_U32(0)
>> +#define JPEG_V420_CMD_HW_STOP_MSKÂ Â Â Â Â Â Â  BIT_U32(1)
>> +#define JPEG_V420_CMD_CLR_RD_PLN0_QUEUE_MSKÂ Â Â  BIT_U32(4)
>> +#define JPEG_V420_CMD_CLR_RD_PLN1_QUEUE_MSKÂ Â Â  BIT_U32(5)
>> +#define JPEG_V420_CMD_CLR_RD_PLN2_QUEUE_MSKÂ Â Â  BIT_U32(6)
>> +#define JPEG_V420_CMD_CLR_WR_PLN0_QUEUE_MSKÂ Â Â  BIT_U32(8)
>> +#define JPEG_V420_CMD_CLR_WR_PLN1_QUEUE_MSKÂ Â Â  BIT_U32(9)
>> +#define JPEG_V420_CMD_CLR_WR_PLN2_QUEUE_MSKÂ Â Â  BIT_U32(10)
>> +#define JPEG_V420_CMD_APPLY_SWC_RD_PARAMS_MSKÂ Â Â  BIT_U32(11)
>> +
>> +#define JPEG_V420_CORE_STATE_STATUS_ENCODE_STATE_MSKÂ Â Â  BIT_U32(0)
>> +#define JPEG_V420_CORE_STATE_STATUS_SCALE_STATE_MSKÂ Â Â  BIT_U32(2)
>> +#define JPEG_V420_CORE_STATE_STATUS_REALTIME_STATE_MSKÂ Â Â  BIT_U32(4)
>> +#define JPEG_V420_CORE_STATE_STATUS_BUS_STATE_MSKÂ Â Â  BIT_U32(8)
>> +#define JPEG_V420_CORE_STATE_STATUS_CGC_STATE_MSKÂ Â Â  BIT_U32(9)
>> +
>> +#define JPEG_V420_FE_CFG_BYTE_ORDERING_POS 0
>> +#define JPEG_V420_FE_CFG_BYTE_ORDERING_MSK \
>> +Â Â Â  (0xfu << JPEG_V420_FE_CFG_BYTE_ORDERING_POS)
>> +
>> +#define JPEG_V420_FE_CFG_BURST_LENGTH_MAX_POS 4
>> +#define JPEG_V420_FE_CFG_BURST_LENGTH_MAX_MSK \
>> +Â Â Â  (0xfu << JPEG_V420_FE_CFG_BURST_LENGTH_MAX_POS)
>> +
>> +#define JPEG_V420_FE_CFG_MEMORY_FORMAT_POS 8
>> +#define JPEG_V420_FE_CFG_MEMORY_FORMAT_MSK \
>> +Â Â Â  (0x3u << JPEG_V420_FE_CFG_MEMORY_FORMAT_POS)
>> +
>> +#define JPEG_V420_FE_CFG_CBCR_ORDER_MSKÂ Â Â Â Â Â Â  BIT_U32(12)
>> +#define JPEG_V420_FE_CFG_BOTTOM_VPAD_EN_MSKÂ Â Â  BIT_U32(13)
>> +#define JPEG_V420_FE_CFG_PLN0_EN_MSKÂ Â Â Â Â Â Â  BIT_U32(16)
>> +#define JPEG_V420_FE_CFG_PLN1_EN_MSKÂ Â Â Â Â Â Â  BIT_U32(17)
>> +#define JPEG_V420_FE_CFG_PLN2_EN_MSKÂ Â Â Â Â Â Â  BIT_U32(18)
>> +#define JPEG_V420_FE_CFG_SIXTEEN_MCU_EN_MSKÂ Â Â  BIT_U32(21)
>> +#define JPEG_V420_FE_CFG_MCUS_PER_BLOCK_MSKÂ Â Â  BIT_U32(22)
>> +#define JPEG_V420_FE_CFG_MAL_BOUNDARY_MSKÂ Â Â  BIT_U32(24)
>> +#define JPEG_V420_FE_CFG_MAL_EN_MSKÂ Â Â Â Â Â Â  BIT_U32(27)
>> +
>> +#define JPEG_V420_PLN_RD_OFFS_OFFSET_POS 0
>> +#define JPEG_V420_PLN_RD_OFFS_OFFSET_MSK \
>> +Â Â Â  (0x1fffffffu << JPEG_V420_PLN_RD_OFFS_OFFSET_POS)
>> +
>> +#define JPEG_V420_PLN_RD_BUFF_SIZE_WIDTH_POS 0
>> +#define JPEG_V420_PLN_RD_BUFF_SIZE_WIDTH_MSK \
>> +Â Â Â  (0xffffu << JPEG_V420_PLN_RD_BUFF_SIZE_WIDTH_POS)
>> +
>> +#define JPEG_V420_PLN_RD_BUFF_SIZE_HEIGHT_POS 16
>> +#define JPEG_V420_PLN_RD_BUFF_SIZE_HEIGHT_MSK \
>> +Â Â Â  (0xffffu << JPEG_V420_PLN_RD_BUFF_SIZE_HEIGHT_POS)
>> +
>> +#define JPEG_V420_PLN_RD_STRIDE_STRIDE_POS 0
>> +#define JPEG_V420_PLN_RD_STRIDE_STRIDE_MSK \
>> +Â Â Â  (0xffffu << JPEG_V420_PLN_RD_STRIDE_STRIDE_POS)
>> +
>> +#define JPEG_V420_PLN_RD_HINIT_FRACTIONAL_POS 0
>> +#define JPEG_V420_PLN_RD_HINIT_FRACTIONAL_MSK \
>> +Â Â Â  (0x1fffffu << JPEG_V420_PLN_RD_HINIT_FRACTIONAL_POS)
>> +
>> +#define JPEG_V420_PLN_RD_VINIT_FRACTIONAL_POS 0
>> +#define JPEG_V420_PLN_RD_VINIT_FRACTIONAL_MSK \
>> +Â Â Â  (0x1fffffu << JPEG_V420_PLN_RD_VINIT_FRACTIONAL_POS)
>> +
>> +#define JPEG_V420_WE_CFG_BYTE_ORDERING_POS 0
>> +#define JPEG_V420_WE_CFG_BYTE_ORDERING_MSK \
>> +Â Â Â  (0xfu << JPEG_V420_WE_CFG_BYTE_ORDERING_POS)
>> +
>> +#define JPEG_V420_WE_CFG_BURST_LENGTH_MAX_POS 4
>> +#define JPEG_V420_WE_CFG_BURST_LENGTH_MAX_MSK \
>> +Â Â Â  (0xfu << JPEG_V420_WE_CFG_BURST_LENGTH_MAX_POS)
>> +
>> +#define JPEG_V420_WE_CFG_MEMORY_FORMAT_POS 8
>> +#define JPEG_V420_WE_CFG_MEMORY_FORMAT_MSK \
>> +Â Â Â  (0x3u << JPEG_V420_WE_CFG_MEMORY_FORMAT_POS)
>> +
>> +#define JPEG_V420_WE_CFG_CBCR_ORDER_MSKÂ Â Â Â Â Â Â  BIT_U32(12)
>> +#define JPEG_V420_WE_CFG_PLN0_EN_MSKÂ Â Â Â Â Â Â  BIT_U32(16)
>> +#define JPEG_V420_WE_CFG_PLN1_EN_MSKÂ Â Â Â Â Â Â  BIT_U32(17)
>> +#define JPEG_V420_WE_CFG_PLN2_EN_MSKÂ Â Â Â Â Â Â  BIT_U32(18)
>> +#define JPEG_V420_WE_CFG_MAL_BOUNDARY_MSKÂ Â Â  BIT_U32(24)
>> +#define JPEG_V420_WE_CFG_MAL_EN_MSKÂ Â Â Â Â Â Â  BIT_U32(27)
>> +#define JPEG_V420_WE_CFG_POP_BUFF_ON_EOS_MSKÂ Â Â  BIT_U32(28)
>> +
>> +#define JPEG_V420_PLN_WR_BUFF_SIZE_WIDTH_POS 0
>> +#define JPEG_V420_PLN_WR_BUFF_SIZE_WIDTH_MSK \
>> +Â Â Â  (0xffffu << JPEG_V420_PLN_WR_BUFF_SIZE_WIDTH_POS)
>> +
>> +#define JPEG_V420_PLN_WR_BUFF_SIZE_HEIGHT_POS 16
>> +#define JPEG_V420_PLN_WR_BUFF_SIZE_HEIGHT_MSK \
>> +Â Â Â  (0xffffu << JPEG_V420_PLN_WR_BUFF_SIZE_HEIGHT_POS)
>> +
>> +#define JPEG_V420_PLN_WR_STRIDE_STRIDE_POS 0
>> +#define JPEG_V420_PLN_WR_STRIDE_STRIDE_MSK \
>> +Â Â Â  (0xffffu << JPEG_V420_PLN_WR_STRIDE_STRIDE_POS)
>> +
>> +#define JPEG_V420_PLN_WR_HINIT_INTEGER_POS 0
>> +#define JPEG_V420_PLN_WR_HINIT_INTEGER_MSK \
>> +Â Â Â  (0xffffu << JPEG_V420_PLN_WR_HINIT_INTEGER_POS)
>> +
>> +#define JPEG_V420_PLN_WR_VINIT_INTEGER_POS 0
>> +#define JPEG_V420_PLN_WR_VINIT_INTEGER_MSK \
>> +Â Â Â  (0xffffu << JPEG_V420_PLN_WR_VINIT_INTEGER_POS)
>> +
>> +#define JPEG_V420_PLN_WR_HSTEP_INTEGER_POS 0
>> +#define JPEG_V420_PLN_WR_HSTEP_INTEGER_MSK \
>> +Â Â Â  (0x1ffffu << JPEG_V420_PLN_WR_HSTEP_INTEGER_POS)
>> +
>> +#define JPEG_V420_PLN_WR_VSTEP_INTEGER_POS 0
>> +#define JPEG_V420_PLN_WR_VSTEP_INTEGER_MSK \
>> +Â Â Â  (0x1ffffu << JPEG_V420_PLN_WR_VSTEP_INTEGER_POS)
>> +
>> +#define JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_COL_POS 0
>> +#define JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_COL_MSK \
>> +Â Â Â  (0xffffu << JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_COL_POS)
>> +
>> +#define JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_ROW_POS 16
>> +#define JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_ROW_MSK \
>> +Â Â Â  (0xffffu << JPEG_V420_PLN_WR_BLK_CFG_BLOCKS_PER_ROW_POS)
>> +
>> +#define JPEG_V420_ENC_CFG_IMAGE_FORMAT_POS 0
>> +#define JPEG_V420_ENC_CFG_IMAGE_FORMAT_MSK \
>> +Â Â Â  (0x7u << JPEG_V420_ENC_CFG_IMAGE_FORMAT_POS)
>> +
>> +#define JPEG_V420_ENC_CFG_APPLY_EOI_MSKÂ Â Â Â Â Â Â  BIT_U32(7)
>> +#define JPEG_V420_ENC_CFG_HUFFMAN_SEL_MSKÂ Â Â  BIT_U32(8)
>> +#define JPEG_V420_ENC_CFG_FSC_ENABLE_MSKÂ Â Â  BIT_U32(11)
>> +#define JPEG_V420_ENC_CFG_OUTPUT_DISABLE_MSKÂ Â Â  BIT_U32(15)
>> +#define JPEG_V420_ENC_CFG_RST_MARKER_PERIOD_MSKÂ Â Â  BIT_U32(16)
>> +
>> +#define JPEG_V420_ENC_IMG_SIZE_ENCODE_WIDTH_POS 0u
>> +#define JPEG_V420_ENC_IMG_SIZE_ENCODE_WIDTH_MSK \
>> +Â Â Â  (0x1fffu << JPEG_V420_ENC_IMG_SIZE_ENCODE_WIDTH_POS)
>> +
>> +#define JPEG_V420_ENC_IMG_SIZE_ENCODE_HEIGHT_POS 16u
>> +#define JPEG_V420_ENC_IMG_SIZE_ENCODE_HEIGHT_MSK \
>> +Â Â Â  (0x1fffu << JPEG_V420_ENC_IMG_SIZE_ENCODE_HEIGHT_POS)
>> +
>> +#define JPEG_V420_STATUS_OUT_SIZE_BYTES_POS 0
>> +#define JPEG_V420_STATUS_OUT_SIZE_BYTES_MSK \
>> +Â Â Â  (0x1fffffffu << JPEG_V420_STATUS_OUT_SIZE_BYTES_POS)
>> +
>> +#define JPEG_V420_SCALE_CFG_HSCALE_ENABLE_MSKÂ Â Â Â Â Â Â  BIT_U32(4)
>> +#define JPEG_V420_SCALE_CFG_VSCALE_ENABLE_MSKÂ Â Â Â Â Â Â  BIT_U32(5)
>> +#define JPEG_V420_SCALE_CFG_UPSAMPLE_EN_MSKÂ Â Â Â Â Â Â  BIT_U32(6)
>> +#define JPEG_V420_SCALE_CFG_SUBSAMPLE_EN_MSKÂ Â Â Â Â Â Â  BIT_U32(7)
>> +#define JPEG_V420_SCALE_CFG_HSCALE_ALGO_MSKÂ Â Â Â Â Â Â  BIT_U32(8)
>> +#define JPEG_V420_SCALE_CFG_VSCALE_ALGO_MSKÂ Â Â Â Â Â Â  BIT_U32(9)
>> +
>> +#define JPEG_V420_SCALE_CFG_H_SCALE_FIR_ALGO_POSÂ  12u
>> +#define JPEG_V420_SCALE_CFG_H_SCALE_FIR_ALGO_MSK \
>> +Â Â Â  (0x3u << JPEG_V420_SCALE_CFG_H_SCALE_FIR_ALGO_POS)
>> +
>> +#define JPEG_V420_SCALE_CFG_V_SCALE_FIR_ALGO_POSÂ  16u
>> +#define JPEG_V420_SCALE_CFG_V_SCALE_FIR_ALGO_MSK \
>> +Â Â Â  (0x3u << JPEG_V420_SCALE_CFG_V_SCALE_FIR_ALGO_POS)
>> +
>> +#define JPEG_V420_SCALE_OUT_CFG_BLOCK_WIDTH_POS 0
>> +#define JPEG_V420_SCALE_OUT_CFG_BLOCK_WIDTH_MSK \
>> +Â Â Â  (0xffu << JPEG_V420_SCALE_OUT_CFG_BLOCK_WIDTH_POS)
>> +
>> +#define JPEG_V420_SCALE_OUT_CFG_BLOCK_HEIGHT_POS 16
>> +#define JPEG_V420_SCALE_OUT_CFG_BLOCK_HEIGHT_MSK \
>> +Â Â Â  (0xfu << JPEG_V420_SCALE_OUT_CFG_BLOCK_HEIGHT_POS)
>> +
>> +#define JPEG_V420_SCALE_PLN_HSTEP_FRACTIONAL_POS 0
>> +#define JPEG_V420_SCALE_PLN_HSTEP_FRACTIONAL_MSK \
>> +Â Â Â  (0x1fffffu << JPEG_V420_SCALE_PLN_HSTEP_FRACTIONAL_POS)
>> +
>> +#define JPEG_V420_SCALE_PLN_HSTEP_INTEGER_POS 21
>> +#define JPEG_V420_SCALE_PLN_HSTEP_INTEGER_MSK \
>> +Â Â Â  (0x3fu << JPEG_V420_SCALE_PLN_HSTEP_INTEGER_POS)
>> +
>> +#define JPEG_V420_SCALE_PLN_VSTEP_FRACTIONAL_POS 0
>> +#define JPEG_V420_SCALE_PLN_VSTEP_FRACTIONAL_MSK \
>> +Â Â Â  (0x1fffffu << JPEG_V420_SCALE_PLN_VSTEP_FRACTIONAL_POS)
>> +
>> +#define JPEG_V420_SCALE_PLN_VSTEP_INTEGER_POS 21
>> +#define JPEG_V420_SCALE_PLN_VSTEP_INTEGER_MSK \
>> +Â Â Â  (0x3fu << JPEG_V420_SCALE_PLN_VSTEP_INTEGER_POS)
>> +
>> +#define JPEG_V420_DMI_CFG_MEM_SEL_POS 0
>> +#define JPEG_V420_DMI_CFG_MEM_SEL_MSK \
>> +Â Â Â  (0x7u << JPEG_V420_DMI_CFG_MEM_SEL_POS)
>> +
>> +#define JPEG_V420_DMI_CFG_AUTO_INC_EN_MSKÂ Â Â  BIT_U32(4)
>> +
>> +/* DMI_CFG value to select quantization table memory and enable auto- 
>> increment */
>> +#define JPEG_DMI_ENABLE_UPLOAD            
>> (JPEG_V420_DMI_CFG_AUTO_INC_EN_MSK | 0x1u)
>> +
>> +#define JPEG_V420_DMI_ADDR_ADDR_POS 0
>> +#define JPEG_V420_DMI_ADDR_ADDR_MSK \
>> +Â Â Â  (0x3ffu << JPEG_V420_DMI_ADDR_ADDR_POS)
>> +
>> +#define JPEG_V420_TESTBUS_CFG_BUS_SEL_POS 0
>> +#define JPEG_V420_TESTBUS_CFG_BUS_SEL_MSK \
>> +Â Â Â  (0x3fu << JPEG_V420_TESTBUS_CFG_BUS_SEL_POS)
>> +
>> +#define JPEG_V420_FE_VBPAD_CFG_BLOCK_ROW_POS 0
>> +#define JPEG_V420_FE_VBPAD_CFG_BLOCK_ROW_MSK \
>> +Â Â Â  (0x1fffu << JPEG_V420_FE_VBPAD_CFG_BLOCK_ROW_POS)
>> +
>> +#define JPEG_V420_PLN_RD_HINIT_INT_INTEGER_POS 0
>> +#define JPEG_V420_PLN_RD_HINIT_INT_INTEGER_MSK \
>> +Â Â Â  (0x1ffffu << JPEG_V420_PLN_RD_HINIT_INT_INTEGER_POS)
>> +
>> +#define JPEG_V420_PLN_RD_VINIT_INT_INTEGER_POS 0
>> +#define JPEG_V420_PLN_RD_VINIT_INT_INTEGER_MSK \
>> +Â Â Â  (0x1ffffu << JPEG_V420_PLN_RD_VINIT_INT_INTEGER_POS)
>> +
>> +#define JPEG_V420_IRQ_STATUS_SESSION_DONE_MSKÂ Â Â Â Â Â Â  BIT_U32(0)
>> +#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN0_DONE_MSKÂ Â Â  BIT_U32(4)
>> +#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN1_DONE_MSKÂ Â Â  BIT_U32(5)
>> +#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN2_DONE_MSKÂ Â Â  BIT_U32(6)
>> +#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN0_REQ_ATTN_MSKÂ Â Â  BIT_U32(7)
>> +#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN1_REQ_ATTN_MSKÂ Â Â  BIT_U32(8)
>> +#define JPEG_V420_IRQ_STATUS_RD_BUF_PLN2_REQ_ATTN_MSKÂ Â Â  BIT_U32(9)
>> +#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_DONE_MSKÂ Â Â  BIT_U32(10)
>> +#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN1_DONE_MSKÂ Â Â  BIT_U32(11)
>> +#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN2_DONE_MSKÂ Â Â  BIT_U32(12)
>> +#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_REQ_ATTN_MSKÂ Â Â  BIT_U32(13)
>> +#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN1_REQ_ATTN_MSKÂ Â Â  BIT_U32(14)
>> +#define JPEG_V420_IRQ_STATUS_WR_BUF_PLN2_REQ_ATTN_MSKÂ Â Â  BIT_U32(15)
>> +#define JPEG_V420_IRQ_STATUS_DCD_UNESCAPED_FF_MSKÂ Â Â  BIT_U32(19)
>> +#define JPEG_V420_IRQ_STATUS_DCD_HUFFMAN_ERROR_MSKÂ Â Â  BIT_U32(20)
>> +#define JPEG_V420_IRQ_STATUS_DCD_COEFF_ERROR_MSKÂ Â Â  BIT_U32(21)
>> +#define JPEG_V420_IRQ_STATUS_DCD_MISSING_BITSTUFF_MSKÂ Â Â  BIT_U32(22)
>> +#define JPEG_V420_IRQ_STATUS_DCD_SCAN_UNDERFLOW_MSKÂ Â Â  BIT_U32(23)
>> +#define JPEG_V420_IRQ_STATUS_DCD_INVALID_RSM_MSKÂ Â Â  BIT_U32(24)
>> +#define JPEG_V420_IRQ_STATUS_DCD_INVALID_RSM_SEQ_MSKÂ Â Â  BIT_U32(25)
>> +#define JPEG_V420_IRQ_STATUS_DCD_MISSING_RSM_MSKÂ Â Â  BIT_U32(26)
>> +#define JPEG_V420_IRQ_STATUS_STOP_ACK_MSKÂ Â Â Â Â Â Â  BIT_U32(27)
>> +#define JPEG_V420_IRQ_STATUS_RESET_ACK_MSKÂ Â Â Â Â Â Â  BIT_U32(28)
>> +
>> +#defineÂ Â Â  JPEG_V420_IRQ_STATUS_RD_BUF_PLNS_DONE_MSK \
>> +Â Â Â  (JPEG_V420_IRQ_STATUS_RD_BUF_PLN0_DONE_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_RD_BUF_PLN1_DONE_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_RD_BUF_PLN2_DONE_MSK)
>> +
>> +#defineÂ Â Â  JPEG_V420_IRQ_STATUS_WR_BUF_PLNS_DONE_MSK \
>> +Â Â Â  (JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_DONE_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_WR_BUF_PLN1_DONE_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_WR_BUF_PLN2_DONE_MSK)
>> +
>> +#defineÂ Â Â  JPEG_V420_IRQ_STATUS_RD_BUF_PLNS_REQ_ATTN_MSK \
>> +Â Â Â  (JPEG_V420_IRQ_STATUS_RD_BUF_PLN0_REQ_ATTN_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_RD_BUF_PLN1_REQ_ATTN_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_RD_BUF_PLN2_REQ_ATTN_MSK)
>> +
>> +#defineÂ Â Â  JPEG_V420_IRQ_STATUS_WR_BUF_PLNS_REQ_ATTN_MSK \
>> +Â Â Â  (JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_REQ_ATTN_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_WR_BUF_PLN1_REQ_ATTN_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_WR_BUF_PLN2_REQ_ATTN_MSK)
>> +
>> +#defineÂ Â Â  JPEG_V420_IRQ_STATUS_SESION_ERROR_MSK \
>> +Â Â Â  (JPEG_V420_IRQ_STATUS_DCD_UNESCAPED_FF_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_DCD_HUFFMAN_ERROR_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_DCD_COEFF_ERROR_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_DCD_MISSING_BITSTUFF_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_DCD_SCAN_UNDERFLOW_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_DCD_INVALID_RSM_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_DCD_INVALID_RSM_SEQ_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_DCD_MISSING_RSM_MSK)
>> +
>> +#define JPEG_V420_IRQ_STATUS_ALL_BITS \
>> +Â Â Â  (JPEG_V420_IRQ_STATUS_SESSION_DONE_MSKÂ Â Â Â Â Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_RD_BUF_PLNS_DONE_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_WR_BUF_PLN0_DONE_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_RD_BUF_PLNS_REQ_ATTN_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_WR_BUF_PLNS_REQ_ATTN_MSKÂ Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_SESION_ERROR_MSKÂ Â Â Â Â Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_STOP_ACK_MSKÂ Â Â Â Â Â Â  | \
>> +Â Â Â Â  JPEG_V420_IRQ_STATUS_RESET_ACK_MSK)
>> +
>> +/* Register offsets for JPEG v4.2.0 hardware */
>> +#define JPEG_V420_REG_HW_VERSIONÂ Â Â  0x000
>> +#define JPEG_V420_REG_HW_CAPABILITYÂ Â Â  0x004
>> +#define JPEG_V420_REG_RESET_CMDÂ Â Â Â Â Â Â  0x008
>> +#define JPEG_V420_REG_CORE_CFGÂ Â Â Â Â Â Â  0x00c
>> +#define JPEG_V420_REG_HW_CMDÂ Â Â Â Â Â Â  0x010
>> +#define JPEG_V420_REG_ENC_CORE_STATEÂ Â Â  0x014
>> +#define JPEG_V420_REG_INT_MASKÂ Â Â Â Â Â Â  0x018
>> +#define JPEG_V420_REG_INT_CLRÂ Â Â Â Â Â Â  0x01c
>> +#define JPEG_V420_REG_INT_STATUSÂ Â Â  0x020
>> +#define JPEG_V420_REG_FE_CFGÂ Â Â Â Â Â Â  0x024
>> +
>> +/* FE (fetch engine) plane registers */
>> +#define JPEG_V420_REG_FE_PNTR_0Â Â Â Â Â Â Â  0x038
>> +#define JPEG_V420_REG_FE_PNTR_1Â Â Â Â Â Â Â  0x044
>> +#define JPEG_V420_REG_FE_PNTR_2Â Â Â Â Â Â Â  0x050
>> +#define JPEG_V420_REG_FE_OFFS_0Â Â Â Â Â Â Â  0x03c
>> +#define JPEG_V420_REG_FE_OFFS_1Â Â Â Â Â Â Â  0x048
>> +#define JPEG_V420_REG_FE_OFFS_2Â Â Â Â Â Â Â  0x054
>> +#define JPEG_V420_REG_FE_PNTR_CNTÂ Â Â  0x05c
>> +#define JPEG_V420_REG_FE_BSIZE_0Â Â Â  0x060
>> +#define JPEG_V420_REG_FE_BSIZE_1Â Â Â  0x068
>> +#define JPEG_V420_REG_FE_BSIZE_2Â Â Â  0x070
>> +#define JPEG_V420_REG_FE_STRIDE_0Â Â Â  0x064
>> +#define JPEG_V420_REG_FE_STRIDE_1Â Â Â  0x06c
>> +#define JPEG_V420_REG_FE_STRIDE_2Â Â Â  0x08c
>> +#define JPEG_V420_REG_FE_HINIT_0Â Â Â  0x074
>> +#define JPEG_V420_REG_FE_HINIT_1Â Â Â  0x078
>> +#define JPEG_V420_REG_FE_HINIT_2Â Â Â  0x07c
>> +#define JPEG_V420_REG_FE_VINIT_0Â Â Â  0x080
>> +#define JPEG_V420_REG_FE_VINIT_1Â Â Â  0x084
>> +#define JPEG_V420_REG_FE_VINIT_2Â Â Â  0x088
>> +#define JPEG_V420_REG_FE_VBPAD_CFGÂ Â Â  0x2e8
>> +
>> +/* WE (write engine) plane registers */
>> +#define JPEG_V420_REG_WE_CFGÂ Â Â Â Â Â Â  0x0c0
>> +#define JPEG_V420_REG_WE_PNTR_CNTÂ Â Â  0x0e4
>> +#define JPEG_V420_REG_WE_PNTR_0Â Â Â Â Â Â Â  0x0cc
>> +#define JPEG_V420_REG_WE_PNTR_1Â Â Â Â Â Â Â  0x0d0
>> +#define JPEG_V420_REG_WE_PNTR_2Â Â Â Â Â Â Â  0x0d4
>> +#define JPEG_V420_REG_WE_BSIZE_0Â Â Â  0x0e8
>> +#define JPEG_V420_REG_WE_BSIZE_1Â Â Â  0x0ec
>> +#define JPEG_V420_REG_WE_BSIZE_2Â Â Â  0x0f0
>> +#define JPEG_V420_REG_WE_STRIDE_0Â Â Â  0x0f4
>> +#define JPEG_V420_REG_WE_STRIDE_1Â Â Â  0x0f8
>> +#define JPEG_V420_REG_WE_STRIDE_2Â Â Â  0x0fc
>> +#define JPEG_V420_REG_WE_HINIT_0Â Â Â  0x100
>> +#define JPEG_V420_REG_WE_HINIT_1Â Â Â  0x104
>> +#define JPEG_V420_REG_WE_HINIT_2Â Â Â  0x108
>> +#define JPEG_V420_REG_WE_VINIT_0Â Â Â  0x10c
>> +#define JPEG_V420_REG_WE_VINIT_1Â Â Â  0x110
>> +#define JPEG_V420_REG_WE_VINIT_2Â Â Â  0x114
>> +#define JPEG_V420_REG_WE_HSTEP_0Â Â Â  0x118
>> +#define JPEG_V420_REG_WE_HSTEP_1Â Â Â  0x11c
>> +#define JPEG_V420_REG_WE_HSTEP_2Â Â Â  0x120
>> +#define JPEG_V420_REG_WE_VSTEP_0Â Â Â  0x124
>> +#define JPEG_V420_REG_WE_VSTEP_1Â Â Â  0x128
>> +#define JPEG_V420_REG_WE_VSTEP_2Â Â Â  0x12c
>> +#define JPEG_V420_REG_WE_BLOCKS_0Â Â Â  0x130
>> +#define JPEG_V420_REG_WE_BLOCKS_1Â Â Â  0x134
>> +#define JPEG_V420_REG_WE_BLOCKS_2Â Â Â  0x138
>> +
>> +/* Encoder registers */
>> +#define JPEG_V420_REG_ENC_CFGÂ Â Â Â Â Â Â  0x13c
>> +#define JPEG_V420_REG_ENC_IMG_SIZEÂ Â Â  0x140
>> +#define JPEG_V420_REG_ENC_OUT_SIZEÂ Â Â  0x180
>> +
>> +/* Scaler registers */
>> +#define JPEG_V420_REG_SCALE_CFGÂ Â Â Â Â Â Â  0x26c
>> +#define JPEG_V420_REG_SCALE_OUT_CFG_0Â Â Â  0x270
>> +#define JPEG_V420_REG_SCALE_OUT_CFG_1Â Â Â  0x274
>> +#define JPEG_V420_REG_SCALE_OUT_CFG_2Â Â Â  0x278
>> +#define JPEG_V420_REG_SCALE_HSTEP_0Â Â Â  0x27c
>> +#define JPEG_V420_REG_SCALE_HSTEP_1Â Â Â  0x280
>> +#define JPEG_V420_REG_SCALE_HSTEP_2Â Â Â  0x284
>> +#define JPEG_V420_REG_SCALE_VSTEP_0Â Â Â  0x28c
>> +#define JPEG_V420_REG_SCALE_VSTEP_1Â Â Â  0x290
>> +#define JPEG_V420_REG_SCALE_VSTEP_2Â Â Â  0x294
>> +
>> +/* DMI registers */
>> +#define JPEG_V420_REG_DMI_CFGÂ Â Â Â Â Â Â  0x298
>> +#define JPEG_V420_REG_DMI_ADDRÂ Â Â Â Â Â Â  0x29c
>> +#define JPEG_V420_REG_DMI_DATAÂ Â Â Â Â Â Â  0x2a0
>> +
>> +#endif /* QCOM_JENC_V420_HW_INFO_H */
> 
> qcom_jenc_v420_hw_info.h shall be removed, and its content goes to
> qcom_jenc_res.c file, no info is shared from the header, and static
> declarations in header files are not favoured.
> 
> In general the driver loos good.
> 


From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131])
	(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 65A4F380FEE
	for <linux-media@vger.kernel.org>; Mon, 13 Jul 2026 11:09:35 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1783940976; cv=none; b=BDCKTBn5HEh06fZMpeVnE/J0YYRfbo4pf5puVhu65sIq3NN0yBxiiwvjWLZYMLZJNDA5VEwEBa4LvNSj0bRd9REvqz8mxRAXHA8e/fmtOX+3jX5uSuwFozsE2CtAgawbQ2qtOH7W6+BMWrz3jCSTs5jPjklV5LzFwF/hj+Idl1M=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1783940976; c=relaxed/simple;
	bh=oTzHapr0m4GWqMHoVKB+zUrcoOxplD5vE8TgFIaEGB8=;
	h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:
	 In-Reply-To:Content-Type; b=bl6BWaibCSBlGDPq97RiR6oO4YL+9XE6kpYPq1zzSdSLEBTk8zh83qUZDioG5Wx4/VbmGvPVW3bRDEbQSYzK63gcmchyIpmSuxFemW+eyxOUf398d0aIXSnT44Mr9OJ+me29nz1TYKJYPr1TNdpPvHRIFbjVY5R7g/gKtbagNHY=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=NrlkrMvp; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=i0B1+N5r; arc=none smtp.client-ip=205.220.168.131
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="NrlkrMvp";
	dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="i0B1+N5r"
Received: from pps.filterd (m0279867.ppops.net [127.0.0.1])
	by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66D9M1Gd1090406
	for <linux-media@vger.kernel.org>; Mon, 13 Jul 2026 11:09:35 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	kXlfaTZwrb8382Qn5XcQieyV+sy0vh/kCq17fdwe73s=; b=NrlkrMvpO4alWrcd
	yYHvTnL+HuWLGPjTsrvCXLnKlx/BNqQ/gPvunnKV+eG+6lfObU9DkW1L6Wg7zNE/
	RPhqNKO2uFB5EUCK786ra8NZdIX9O2Dy2ViOlcCa4X13+Mb//dKSJ18Gp/AxTvVH
	huIu4Ofs2bDIJQt/nYIiyWcz5Ruogsmr7bsfOo25M8WjE1rdGRe0vNWDypeOnhII
	i/WF4o3Y9jvP/SfjLqa4eifRBTRx0/svXojI7KipPhykulkWiQc+TfLMtsnGxoLN
	uOhu1JHXgQTGMZkoObtCgDDMBmiw4oUkfQbppG7kUcgC1vlRtbFXCxWpN+6655e1
	YX21VA==
Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199])
	by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcwavrcdd-1
	(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
	for <linux-media@vger.kernel.org>; Mon, 13 Jul 2026 11:09:34 +0000 (GMT)
Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c1a97644aso50863261cf.2
        for <linux-media@vger.kernel.org>; Mon, 13 Jul 2026 04:09:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1783940973; x=1784545773; darn=vger.kernel.org;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=kXlfaTZwrb8382Qn5XcQieyV+sy0vh/kCq17fdwe73s=;
        b=i0B1+N5rNqzGbMHy464SQ3zYXrHAg/Iypj+nSeXeDidR0NM9zGxXfD7vOHoKHp2fb+
         j/Xha3kPY2BqBt2PqSO+JXh2rhtCg/0uoW7QgO4k0kTzgfdYVbpDajTz6ocOZ27J9Azw
         XryWWiPgGr7sxiSLIX87BaeDLyX49TTv59UyxeK5N57uDRdXYp0NdaxAKjf3kykvYB4s
         HBBwUMXJ3TcQmC+oA+vxVKw8C4USkW69XowTNuOAHpg4Vsgz1y72Ea0+jk7sr+wMKTPc
         wP3/HV+inhRRunvIaCcoyqbvtar9ZOmYHCCvWrHbDhkYnceEUtVU8C6atHss451GZwN8
         fZzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1783940973; x=1784545773;
        h=content-transfer-encoding:content-type:in-reply-to:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to:content-type;
        bh=kXlfaTZwrb8382Qn5XcQieyV+sy0vh/kCq17fdwe73s=;
        b=o5gAA/Cugr6hZ4QjfijP/NvwyadYcJCP6TuoA5lIEVFuNhC8aFHs7C1Qsm2VMz5/6z
         Gk8+c1wQwzol4e9T4kZxH4sazG25FWelaxnVn05UEK8Xx4cRPqxbsv45MGICPS+6mj+I
         A1tdyIrKl7AnAs1uVeMjvBAzexCOXbJsmZa6AqFdxGLmLtDTYHo8m5opepJNy8lDLWDi
         VJB6hr6zQ1og31crh6N3lAE/c2MpzJO4qQyLSxPwp/zsiK8GM2ZhAbe2ftov13SrapfE
         rZcuPD4gAhKS1mofb9wh52jzI5FbdWkDO4WIGcviTyo9Vdomo55pXlg3okh58R9zsvJp
         dFvw==
X-Gm-Message-State: AOJu0Yy9smuWv4xOouNH3HQ3AByF0cha5QoiMXHRqORX09XSFYIwjCXN
	LN5ZF7jO9gEmFdonl36PI4CDs/UjaKSQxTgAW4TERNHir34+M+o7XKowB0OdXKjd1CoTJ7krCvT
	rqGwjwHlHC7xt/JbZ6mxU10iTT42Jgk5fr7kZcNFofixFQ3u6pgZh1uSC6hlSTE0WIsIksZM4Bg
	==
X-Gm-Gg: AfdE7cn+UONLQF9QixGJMtYOvfOJLi6hzhhLhIBwaFVksOYbSs7Yxftw5bH/5Tjtpyi
	8+mVSAcHHa/nzKHK6LQXllGu55ni3+LS6FAgAzHOOedPOgd/AC751qnDC9PjOa0xoW0n+hghLeZ
	EvditNo6Fdkid1SA3GMj3y1Jvia5qNEVGj04bT02+C+dH3lj/AK1OF2paQoV/aUFsz+VZ5kUE9K
	l3awdnXczL9QFyiTeqET/YfhEJm/mtR561BPCB8tY3Vs48rm5+ewBlNuaqqnIYifLDm2KK3ZCP3
	BMmP4e/kYgSZIWy75V4gCIcgp2uE7y49k3rl3IX7AbNssb+HULnxrX/FIrZ8VXdnLxFIyQcA2QT
	9D4I8xW8SQyL3u7koQF8wZcjiV+BB+l/kQlKtZvXsztg=
X-Received: by 2002:a05:622a:109:b0:51c:10aa:9cd with SMTP id d75a77b69052e-51cbf145dd3mr87093991cf.38.1783940973597;
        Mon, 13 Jul 2026 04:09:33 -0700 (PDT)
X-Received: by 2002:a05:622a:109:b0:51c:10aa:9cd with SMTP id d75a77b69052e-51cbf145dd3mr87093571cf.38.1783940972784;
        Mon, 13 Jul 2026 04:09:32 -0700 (PDT)
Received: from [192.168.1.73] ([92.247.57.178])
        by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69a19cd8971sm14591344a12.5.2026.07.13.04.09.29
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 13 Jul 2026 04:09:31 -0700 (PDT)
Message-ID: <5213fe39-0c8e-449d-90db-5488fc4180a8@oss.qualcomm.com>
Date: Mon, 13 Jul 2026 14:09:29 +0300
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id: <linux-media.vger.kernel.org>
List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
To: =?UTF-8?Q?Uwe_Kleine-K=C3=B6nig?= <u.kleine-koenig@baylibre.com>
Cc: linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
        vladimir.zapolskiy@linaro.org, loic.poulain@oss.qualcomm.com,
        mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
        conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org,
        linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
        devicetree@vger.kernel.org
References: <20260706071113.383215-1-atanas.filipov@oss.qualcomm.com>
 <20260706071113.383215-6-atanas.filipov@oss.qualcomm.com>
 <akviE-ANATfFPdYZ@monoceros>
Content-Language: en-US
From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
In-Reply-To: <akviE-ANATfFPdYZ@monoceros>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: KTO3aFsJG503M3lI4XBl5Ma5oXqBMFeG
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDExNiBTYWx0ZWRfX8guJvA3qKahy
 2hWM/UIVfDTJc3cHuJ8il5gJS75Ofa8j3asB5e1RUVXXPqjpPquPxNcOkGuzf3e93Iac8qdTXOw
 hbJyTFuqoM805Musoa0DX/mCyryhXCKOiLkZV23ehGCJOIYD5SBfiRaFP73VFGzbUZoNkQ7VJHP
 BOp4NIpJXx1RS8r0XTky9cXzaVF+2WmGF50Qejg61tWdEc7T6wiSIYZ4E460zCeDUOxzyt0jmb9
 QsvZFkDaJ5q2yuir1IVcFH6VXH5PFkbimeui2obbK8vjb7bHwOJGfT9AGXA43Os7NlpbqaKQIfm
 IT4DhtkxJKuKpwiilWpoOkucBGEGrxe4hySogHdnF9LbXOmyNitQG9y4L7GuNXl3ki/U9CQauwL
 JgMCkHR5ofYYNw5r/qMeHzFnLz4mXPq+zy7NeKcrsEACoWYTjcX14ZlniovKZNF+fbsZaCHUlfY
 5WZPwu6AW1uKVTVInoQ==
X-Proofpoint-ORIG-GUID: KTO3aFsJG503M3lI4XBl5Ma5oXqBMFeG
X-Authority-Analysis: v=2.4 cv=dZSwG3Xe c=1 sm=1 tr=0 ts=6a54c76e cx=c_pps
 a=WeENfcodrlLV9YRTxbY/uA==:117 a=ybD9qRDIDfZaXNPQ7Ca20A==:17
 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22
 a=hFMuEfU6_yxUS0q6VWUA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=kacYvNCVWA4VmyqE58fU:22
X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDExNiBTYWx0ZWRfX0LJ+FxPNI6C+
 qen5J2mo1/ARhh8X3uUtWar5wRuJMTOQRumxJCphee3/Tm/hbrTwFgNDzyTu/jqHBJDcFnAyNJK
 rNQ+f/o9+27rFuvSYZNvfkS+FUMIsBM=
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49
 definitions=2026-07-13_02,2026-07-10_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 bulkscore=0 priorityscore=1501 adultscore=0 malwarescore=0 spamscore=0
 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130116

On 7/6/2026 8:13 PM, Uwe Kleine-KÃ¶nig wrote:
> Hello,
> 
> On Mon, Jul 06, 2026 at 10:11:13AM +0300, Atanas Filipov wrote:
>> +#include <linux/mod_devicetable.h>
> 
> Please don't add new users of this header. Only use the
> <linux/device-id/*.h> that you actually need.
> 
> Best regards
> Uwe

Acknowledged. Will be fixed in v5.

Best regards,
Atanas

