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 20C0E3F7898 for ; Thu, 26 Mar 2026 12:07:03 +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=1774526826; cv=none; b=dnXDOgo+an+v8EFImk73TC8e9W1vLADqP85la1CrAtWQ5GB6M+Eq3lTGII/igk1abYR7hqkP00F6mRuKCrJRcWlUy7PkkEHVoe3GthPr8cqKshGPvwpzPCQD4yOy+IYDhg1HFK2Col/wnoSlkBZV/XAWy4GSA4CY0SqsgDFifPg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774526826; c=relaxed/simple; bh=VGmkSRhf8QPXnE2EoJZ/NS89R0xqWBWWZdZZHt2XNvA=; h=Message-ID:Date:MIME-Version:From:Subject:To:Cc:References: In-Reply-To:Content-Type; b=jFBTVUjqO4wMEXL1IZJ7LPjDB4neztMjPyHlTYLjg4Rm9p1yB4IjNXEtgNI7pSbRx0UImQ2b+C1PhlHZDk2b/cksjb5LztvP7tYoFWwiFPB7ivH0X9VYUXnv/mtu4DHYC4vO5hqBr84B6AAvgV0e2qshBoctaXowqQgX9YTU/8Q= 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=CS5Cf4ZQ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cu/VAH7V; 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="CS5Cf4ZQ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cu/VAH7V" 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 62Q6fbVx1060691 for ; Thu, 26 Mar 2026 12:07:02 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= XDhl88bVqyu17xGfeK+lPA3g2oinqiNwhpJk9qPpcJg=; b=CS5Cf4ZQl7JNnLDM y17ZXm3Jha3AxHkbB2RhqX5xrhGsNn3MmB7ZLDDoYk/Q9wFnYY4pZPel50pRNWeB g0uMxT66bmeWOvruEPFxg7NEXsDbnz7zwbfYhuvLnEut7YCWjs4nCE9AFDEVrAFj DGfbmU1i6TGlvIsSug/T/nTEWhHpLXtLB0lkhjrpRBLqZVyppGFRkS9mqI8P+Moi F6OYXNH5iKLx5O9rJ313Bx0VOB068IffHnO3Ckesk40HdXSJVTZdZftYEfwykvSM uoDgGD6USX17X/yj9Vz7FnG/PTcCz0fXxJnIb+YpVp2wic0MpCkY80LEn2mitPP2 IuEAWQ== 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 4d4qksthxj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 26 Mar 2026 12:07:02 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b3544bc7bso16361781cf.2 for ; Thu, 26 Mar 2026 05:07:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774526822; x=1775131622; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=XDhl88bVqyu17xGfeK+lPA3g2oinqiNwhpJk9qPpcJg=; b=cu/VAH7VEszfH+MyJXXqyMxBZe6gZwFvC1cbcaWH02dGICS0zHahBbYL9liY6kFu0l j+z5oJTisXBTpMHehj3f6qWlrR6hay2LQfEmpdU4m28XJ2HATArM+u43/IjpaazRsT1E DgNZd5fXT42j59UJZF/PKiEYQ2+y4W1X4U37wmAKt6VwlG5558Z0GfEegc1R10Gjg2UI C2M84Jdmi4uQVJC28t9F+2HiB3QoQGEjP1XbN+4OqlY7Sf/AGQWry6i9/5HnUlycftf0 uFH54L2bX+LpkuDZmD7Drg0pJ4lyq5F9wcv9+Y1uSM9SNzeWQPo3GSxf+XJjVyq4Fidz S3cA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774526822; x=1775131622; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=XDhl88bVqyu17xGfeK+lPA3g2oinqiNwhpJk9qPpcJg=; b=qft1THoHuWMiv1y5i/Und4va35hKD/t/mhIg1wd+fJNp3kT5srq6jf+tDKv2XoXjHq T0TiencgWws11590CVIutbNv2bgoLPcWQlIWZU6CykdtoAJCJXOwCIswK8a6JJeGgzOk PdzlyTdWWdhj0d1JxPvgdDJPLDsjT0+F8pBJTQ6srswBbWwHIflJovcGcSqOEshuIgE2 UQr7E9ueWjy+uSLQc4JqoefXiFc5hVeMLLh5Qb7iNgOYiNCCLK8VUBGE793xRFDZ9Spj lPLexxAs/C2RM7wNZnA7qVgUPzffx2Ml5zAWD5zqPajxx+IdlA50hER7sHGoB0wJ8ACd Ai8Q== X-Forwarded-Encrypted: i=1; AJvYcCVzjb72tTjNdOGkkGP4dlEucAiXWgLp5+dGxoyZaL7mo55yCHJ4KGxa1RtCSReiZdEg2QOk21Add0Yf0go=@vger.kernel.org X-Gm-Message-State: AOJu0YzBZ5evfyHqMiOHhW65lil6a4Jy5v6fIQw1oTOrgO+7uBcCy8ap TamK8HXyrEpu+X/de0rGDVXNfPnuBJhEzmjNgssMaKpwd1BI2vtA8nhyRqwuQ0GWND85zG7W47K slJtXT++kqLY0eDvhMYvAqOPQ32pskL257S1foCVSJBbfjP0ps/gAKBb1pQKyaFGPZaU= X-Gm-Gg: ATEYQzzUkej2+8K8fyuK6bc47kuSDhRTtwpYKINvcQXKwkNFw3a4470PfGTYUAN/VGk NEILR5jDPWH1ihjWMjMSPdP+hfkx7hzCuTwzgem0KwicZJu3z4nLzp7BHzEV5XJ2/3jarreEee0 Vmep43s0w8h7ATBm8WLOtn6NJtpMHENdd7WRu/k5Zf5CpputlRk/Oaa/wQd2ctWRqlRM4lq6jUy t/4bt+mACD/fF6plgdTQN8zhhfzktEqkEfIjX79Qwmyp/2jG0rBHSydHmg87+ZyERSvnqeYMzr8 9djbu5XoRIlsmuGtA5JlDAZV0OxWa/UwBEMpBc5dUyE/E/o0Ag1x+T6wP1obevi2QFoJ8jVMQaJ 2N4u02QdVp8P1bIL9aXMZF6dEQOa+vqMb28rm9JIJNOtgYpYW/GJMR98GlNLw5jRd4RKKQX3+HL 9bvW73qS8cPWdFS7kTr2uZdbCYb5erBATCpoMGn8nJMU+HzXADn5HgwmcjTcySRdLeBXMb7tguo IZBhsML1DpAIPK1 X-Received: by 2002:a05:622a:492:b0:50b:3ff3:f489 with SMTP id d75a77b69052e-50b80e36161mr94928501cf.34.1774526822001; Thu, 26 Mar 2026 05:07:02 -0700 (PDT) X-Received: by 2002:a05:622a:492:b0:50b:3ff3:f489 with SMTP id d75a77b69052e-50b80e36161mr94927811cf.34.1774526821403; Thu, 26 Mar 2026 05:07:01 -0700 (PDT) Received: from ?IPV6:2001:1c00:c32:7800:5bfa:a036:83f0:f9ec? (2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl. [2001:1c00:c32:7800:5bfa:a036:83f0:f9ec]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9b203ef851sm109201466b.45.2026.03.26.05.07.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Mar 2026 05:07:00 -0700 (PDT) Message-ID: <7fc31426-3157-49c7-a30d-dcd7b181fcc6@oss.qualcomm.com> Date: Thu, 26 Mar 2026 13:06:59 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: johannes.goede@oss.qualcomm.com Subject: Re: [RFC PATCH 2/3] media: qcom: camss: Add CAMSS Offline Processing Engine driver To: Dmitry Baryshkov , Bryan O'Donoghue Cc: Loic Poulain , vladimir.zapolskiy@linaro.org, laurent.pinchart@ideasonboard.com, kieran.bingham@ideasonboard.com, robh@kernel.org, krzk+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org, linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, mchehab@kernel.org References: <20260323125824.211615-1-loic.poulain@oss.qualcomm.com> <20260323125824.211615-3-loic.poulain@oss.qualcomm.com> <1ba54ec0-be51-4694-a79b-f272e76303d2@kernel.org> <12194cc0-0960-486c-be7e-1a22d95de340@kernel.org> Content-Language: en-US, nl In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI2MDA4NCBTYWx0ZWRfX1mrzAxUhPl2t OQaiTnJjGGXZzgNMOy4DgIsXzBjkq1vsM6T1BuFt1Gx2tgUWJq2MnnaYxssrJ4LfNQhXQZG2+7M uAh9XN8SlRd3rjGMsSGL2A0oiWvbe6LMuKN7QjngxM7sd44vy9KrO8xfJkLEDWm/g+M7S1cJlJb OXl98eAYz1adL8tsU3Syzp154uu1jwT2j0llwkXXOVFbwMazAQMMHOJd0201SL33wmn808MNt3F mXj3T3cuWlilLY1vE9sLyNZzInNKpWJ2MzGDa4s1oyTTZ4maiWC3y/cA2ALaKm04UXIBd6aCyhj 4SYYuW8c944NR+T5Mkqy8qTWqE8mNbqqhe9Ld+p1ZU6K8wCn4aKFWgPecUp5Zn1f+R2xd2jfC5u 4EFMcgnxSZo5Bs/vs0OIwd5cE34jg3TssRQOnyW/KddniUi762tfZsmTp+6JLjStDQzRy0R5uUv rwKYMfK0v2J0zooy9/Q== X-Proofpoint-ORIG-GUID: VcLoaKASazeJfgH3OMkmrhZXDuCZFoqI X-Authority-Analysis: v=2.4 cv=eOMeTXp1 c=1 sm=1 tr=0 ts=69c52166 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=VwQbUJbxAAAA:8 a=RCPHVYlSrOQLcUI7fhoA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: VcLoaKASazeJfgH3OMkmrhZXDuCZFoqI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-26_02,2026-03-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 malwarescore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 adultscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603260084 Hi Dmitry, On 24-Mar-26 22:27, Dmitry Baryshkov wrote: > On Tue, Mar 24, 2026 at 11:00:21AM +0000, Bryan O'Donoghue wrote: >> On 23/03/2026 15:31, Loic Poulain wrote: >>> As far as I understand, CDM could also be implemented in a generic way >>> within CAMSS, since other CAMSS blocks make use of CDM as well. >>> This is something we should discuss further. >> My concern is even conservatively if each module adds another 10 ? writes by >> the time we get to denoising, sharpening, lens shade correction, those >> writes could easily look more like 100. >> >> What user-space should submit is well documented data-structures which then >> get translated into CDM buffers by the OPE and IFE for the various bits of >> the pipeline. > > I hope here you have accent on the well-documented (ideally some kind of > the vendor-independent ABI). The plan is to use the new extensible generic v4l2 ISP parameters API for this: https://docs.kernel.org/6.19/driver-api/media/v4l2-isp.html What this does is basically divide the parameter buffer (which is just a mmap-able bunch of bytes) into variable sized packets/ blocks with each block having a small header, with a type field. And then we can have say CCMv1 type for the CCM on the OPE and if with some future hardware the format of the CCM (say different fixpoint format) ever changes we can simply define a new CCMv2 and then the parameter buffer can be filled with different versions of different parameter blocks depending on the hw. And on the kernel side there are helpers to parse this, you simply pass a list of the types the current hw supports + per type data-callback functions. And then your CCMv1 or CCMv2 helper will get called with the matching parameter-data. So this way we can easily add new hw support without needing to change the existing API, we can simply extend the list of parameter types as needed. Regards, Hans