From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.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 5E6003D413F for ; Wed, 8 Apr 2026 16:44:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775666648; cv=none; b=Bu7h6VwddIyUCVTwpaOHk8OYUZuknlDa1bfn8biXKcbsBWski9X7DqxTiLPp7GDNniM+xEaJpYAtFqEEaCfg5plrC2eEKKnlphyZLeMGbdkdyofU3g678qacjnj0QUl86DD40O2kJCZnO0QF6Vov+5VdQQXIxdHwtx2xvw03PR8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775666648; c=relaxed/simple; bh=tKZadNj62OmxNTSuUaJwBgBko5grNq0eWhaWbj/Mau4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aCbkvIf6nx3lVZs7a9fWe367GjD7SBUUJZPYm/00Ea2/b2Ydw0eX3RLK6taCjL+E3k4dp3t5aFvCvZLD+62lDKwyAqDP2QbSf4+xlaKWwYDHeeeQWzE32gmpldC1qQplDJVt0I3JC1bxnXEQDYNW6kvLD/baXgnddwBE8+rejGQ= 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=Pk99o4D+; arc=none smtp.client-ip=209.85.128.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="Pk99o4D+" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-488a041eae5so210515e9.1 for ; Wed, 08 Apr 2026 09:44:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1775666644; x=1776271444; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=8GSrZhGrMMS7PLI4vCkRGCJCpMffY00f+pIcf7FWs54=; b=Pk99o4D+2NQKZKVzL5vAwp/nQ5WPMkeqvDsfI01dx1Qexug5LJtU3MRx7vCD1O9Myo QOqZa9o58vd1qSRJUolaKzSswpTuKIcg8Wsba1dN2MFrawGfNdI6q+LX2IkumlrXjjPk dIfKlfYfrvOVL5DWKbksr1+oVEd5W/da6sOjiYn79Gvw1cZoa9bymDEi5ukPgOGuWtnI bOMOetwNlvOJRazPQONBUJAcMkGUqHwXkJdFW8/MIHZ7jHCy59DhE3V6NjLY/ij6T/tW oy8EpjGcvS5fyM2fZHot4tKbRpDYMwwLFKlwFXQkhIoZ5OSnGhlCNFPCMCwW2fbmtum9 cMEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775666644; x=1776271444; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=8GSrZhGrMMS7PLI4vCkRGCJCpMffY00f+pIcf7FWs54=; b=VzT9/ipxq98RU7hcgv3Ec4AWFtb95kDhSHbF3w9k5haiB8eQ0TeE9g1TaPIgeIR8kc Np+/NBIjZkIUG9H/yxgtx++95JfabXFQbY4/xAoci24dcDbNwNFe3Ff+t/LOj0UrLF0B zUJAtT2CS1DDeCHdWLVYVBgMIqfThbQmjqNbScj0drLWUulZqz/uniJqRHptpQj4MaCw 6Jf5tw3qc4W/9SQ3aY/mWW6DaAgjCFs3/v7qUIeEHFZnCPY1b1lhGAmnHCKBLP13HEJR 683cTyZT4tly4qSsvUFm/VRpH2XJCQGtpvmI0ae5jAV5XzX9+rkCYCnSr8iYHXoHeGtl LyCA== X-Forwarded-Encrypted: i=1; AJvYcCXyw7T1PdDqv1MlaipKLy0cL+4YrAJ3496mUxB7A1Y24gfO+MMJExDVr3o3KwNUFp8aMAqFul8MFI2SeLA=@vger.kernel.org X-Gm-Message-State: AOJu0YwBON6zjFMAChmC7en9dnymZMjDJs2PEiOqbbcpxALIn/nzHFPV SBHIyMNDFEARP7lmsrs3shQBRnhp44kczd7K2PjBKuKOERiQdL+ig+Bm9H7wcfvfuas= X-Gm-Gg: AeBDiesxvksr8dJ5ADpgAUPMc3MY19QSkTx3UuSVdSGnMsky99i++8YmrBMLdHbYmfD E2YdOBkwSs44EY1+qlhxKiWVcW6udJZhoRR+lRpynObFlqQ7ENj9F2u55tV7oVUoGE4nK2UlOpM 2CVfsXvddx0g+W4nL7dO5vbmYD4j3DCJ026SNGi2N/k8sK2GDinaDJnifGncN9SJUG+DCh7WGDE f+SASAHgm9WCaAxC+ft/hgaoGvXEkqDloRSTJe3inWfQgBcTofUIcauDKNA6zORRZqJIVzPiY48 mG6bIHoX/+dsrAR+G/ItsMzXFnJVzhGNYyTHx6tnyHoAdZ0Rj/yYe8xyXfHfKt+UAJk43qNL2mN tqTCtfxEh9SCUIIM1rV0vU5nmFZOJbb484UbLi4tJvIsTYeIVIdV80kpxaFMA0LVF1TjPSj4bgZ yLGlr2VWHIZzEGr8mJ50To6KtYfCaFl1AzV00ELymHEfd3 X-Received: by 2002:a05:600c:3042:b0:488:a25e:14b2 with SMTP id 5b1f17b1804b1-488a25e153amr166289505e9.9.1775666643572; Wed, 08 Apr 2026 09:44:03 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:106d:1080:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488cd17be0csm1388065e9.18.2026.04.08.09.44.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Apr 2026 09:44:03 -0700 (PDT) From: Neil Armstrong Date: Wed, 08 Apr 2026 18:43:57 +0200 Subject: [PATCH RFC 4/7] media: qcom: iris: vdec: update size and stride calculations for 10bit formats Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260408-topic-sm8x50-iris-10bit-decoding-v1-4-428c1ec2e3f3@linaro.org> References: <20260408-topic-sm8x50-iris-10bit-decoding-v1-0-428c1ec2e3f3@linaro.org> In-Reply-To: <20260408-topic-sm8x50-iris-10bit-decoding-v1-0-428c1ec2e3f3@linaro.org> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=3483; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=tKZadNj62OmxNTSuUaJwBgBko5grNq0eWhaWbj/Mau4=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBp1oXNMb8pKfGauCuFVZFlR4JhylXbwSLWdV8fANt2 6pdcNw2JAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCadaFzQAKCRB33NvayMhJ0SmHD/ 9uE0edCR7hU2yqbFPp85j+X6H76dYWMU2eX0QXvDY9OVIVrO0RRQ/WKxchHnm5wSrYg+6ltQAGiTbI NCF0HcLBM46zsGT9P7CDHgzfuLZ0Sn9Dq31wNDSiBVRUitTpX3RX9AGnuN4Y4sFsQP6Ic4rvrpV7pf v21P4THh/VnODzwnBooxLVaRQk+90Q0OAyb6wbRr0484TIsNPcGmIbvFL3Si1Qeg7DrotMa0kDLDwK ttS8Ae+9Gl0JoJKIRxx/8ug3tR/eiZCVFIdBW8kIRUAwWMopfbBSRw+GU8FCnkAcCGJFHVT1gcdQ6B NQp8M1CcreBonDy/rj6zsc7z+LIacLYYcQwbFegRz77caeg1p+BHMa2sfFi4U6nDy59akozxuMdy3G OxUu4BdL7ZCg4q4/76f3xlszpsJ2LzvQFctwptY875oXTSmz1uq44DXsXZOwSugLLgsw7L6ky8Mk0W RqpdG3TlqzvRV+gh0aCuecyhiSPk3kDyH02R7/akE9wlTf08x0IkkyfWHWAmXEv/DWRb142Ju5timh Ua2CGHRx9Bgki8tQwiTxxrYcczAwSkRctVxobYu2zUnD4BK2n5YtB1yj1zw7zFPKLXAfAqOtjjKt1o PL46vun6V7vCy5tHplafxKnfGj6lB0wQBsZ/Z6bEj0+24OhyjJXWpjPA/8yw== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE Update the gen2 response and vdec s_fmt code to take in account the P010 and QC010 when calculating the width, height and stride. Signed-off-by: Neil Armstrong --- .../platform/qcom/iris/iris_hfi_gen2_response.c | 19 ++++++++++++++++--- drivers/media/platform/qcom/iris/iris_vdec.c | 21 ++++++++++++++++++--- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c index 8e19f61bbbf9..d268149191ea 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c @@ -542,9 +542,22 @@ static void iris_hfi_gen2_read_input_subcr_params(struct iris_inst *inst) pixmp_ip->width = width; pixmp_ip->height = height; - pixmp_op->width = ALIGN(width, 128); - pixmp_op->height = ALIGN(height, 32); - pixmp_op->plane_fmt[0].bytesperline = ALIGN(width, 128); + pixmp_op->width = pixmp_op->pixelformat == V4L2_PIX_FMT_QC10C ? + ALIGN(width, 192) : ALIGN(width, 128); + pixmp_op->height = pixmp_op->pixelformat == V4L2_PIX_FMT_QC10C ? + ALIGN(height, 16) : ALIGN(height, 32); + switch (pixmp_op->pixelformat) { + case V4L2_PIX_FMT_P010: + pixmp_op->plane_fmt[0].bytesperline = ALIGN(width * 2, 256); + break; + case V4L2_PIX_FMT_QC10C: + pixmp_op->plane_fmt[0].bytesperline = ALIGN(ALIGN(width, 192) * 4 / 3, 256); + break; + case V4L2_PIX_FMT_NV12: + case V4L2_PIX_FMT_QC08C: + pixmp_op->plane_fmt[0].bytesperline = ALIGN(width, 128); + break; + } pixmp_op->plane_fmt[0].sizeimage = iris_get_buffer_size(inst, BUF_OUTPUT); matrix_coeff = subsc_params.color_info & 0xFF; diff --git a/drivers/media/platform/qcom/iris/iris_vdec.c b/drivers/media/platform/qcom/iris/iris_vdec.c index 719217399a30..ca0518c27834 100644 --- a/drivers/media/platform/qcom/iris/iris_vdec.c +++ b/drivers/media/platform/qcom/iris/iris_vdec.c @@ -272,10 +272,25 @@ int iris_vdec_s_fmt(struct iris_inst *inst, struct v4l2_format *f) fmt = inst->fmt_dst; fmt->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; fmt->fmt.pix_mp.pixelformat = f->fmt.pix_mp.pixelformat; - fmt->fmt.pix_mp.width = ALIGN(f->fmt.pix_mp.width, 128); - fmt->fmt.pix_mp.height = ALIGN(f->fmt.pix_mp.height, 32); + codec_align = f->fmt.pix_mp.pixelformat == V4L2_PIX_FMT_QC10C ? 192 : 128; + fmt->fmt.pix_mp.width = ALIGN(f->fmt.pix_mp.width, codec_align); + codec_align = f->fmt.pix_mp.pixelformat == V4L2_PIX_FMT_QC10C ? 16 : 32; + fmt->fmt.pix_mp.height = ALIGN(f->fmt.pix_mp.height, codec_align); fmt->fmt.pix_mp.num_planes = 1; - fmt->fmt.pix_mp.plane_fmt[0].bytesperline = ALIGN(f->fmt.pix_mp.width, 128); + switch (f->fmt.pix_mp.pixelformat) { + case V4L2_PIX_FMT_P010: + fmt->fmt.pix_mp.plane_fmt[0].bytesperline = + ALIGN(f->fmt.pix_mp.width * 2, 256); + break; + case V4L2_PIX_FMT_QC10C: + fmt->fmt.pix_mp.plane_fmt[0].bytesperline = + ALIGN(f->fmt.pix_mp.width * 4 / 3, 256); + break; + case V4L2_PIX_FMT_NV12: + case V4L2_PIX_FMT_QC08C: + fmt->fmt.pix_mp.plane_fmt[0].bytesperline = f->fmt.pix_mp.width; + break; + } fmt->fmt.pix_mp.plane_fmt[0].sizeimage = iris_get_buffer_size(inst, BUF_OUTPUT); inst->buffers[BUF_OUTPUT].min_count = iris_vpu_buf_count(inst, BUF_OUTPUT); inst->buffers[BUF_OUTPUT].size = fmt->fmt.pix_mp.plane_fmt[0].sizeimage; -- 2.34.1