From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.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 9ED743932C4 for ; Tue, 2 Jun 2026 08:39:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780389570; cv=none; b=Rc9v/XYhLrmm1D8gnDF9KXq5x3h1GwIpQKTSw61dFjajwZl91MseFd6hUKE8EIz+pH1BgMSHlt1eZIiHWjd5yXrK09YC+XFHLHZvsBn/s21ZD7zpe3zLAuY1Itq5niYQuQvZUH+FMIfHhyEe8c7T92U9YnEQnNSL8wmkydjDsYc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780389570; c=relaxed/simple; bh=fIMj9J3bf66tJ0SCujCc667QSjtjF1FCVosD2tmUDVA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FpGfyX4umAvguF9lDK7ldNh5dlXk5iuOcvfQ6IFdMs+kXU6S8AfmnwqIlBUY7esRgwbpm4yvHVCsBdzUVlAxBB/vdhB9wBSaPnftfRmLm0Dlme9sF2Z/SdMp9aT1CGIsGt1T6C6H5c9X3UPLbWPXJ7jmchU20xkmiasyI4DjWeE= 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=HEOjrJuF; arc=none smtp.client-ip=209.85.128.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="HEOjrJuF" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-490a765d410so25218215e9.1 for ; Tue, 02 Jun 2026 01:39:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780389564; x=1780994364; 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=x+d/vjagw3btqR9jRfyvVTPfDk4CiJBd17ayADhnvx4=; b=HEOjrJuF5uLjEA6+D1rurpIWw43TfzPfoX/RV9SG1I1keGE0/3V3JbnuA+6SCUy+VB Jh8QRbWXRAk9ZnJv2Y7gWB2PfB8dawuJBHlmMV2kBpuNZ27wItDr4LgKeTG3LifXijjJ V+Xr8/KNjI0FINByiZiwIasxGtsRyycKJJvCDqF0RxJiieAikjb6qC+y9GCfaejB/+n5 5Vj+wf8V2P/jU4jw1X8Bz8XE4Z3EvoTfLFKiKkeGVnZUIjsSgjKNIxsEzfMIQCRWiT9c 7zKLxo8NTHmejNcW18Dj2hdVEOt6vMmJsUtzEF7vIT5YV/WpCwC3w5sgN1ZeJyhI2Iaz uygw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780389564; x=1780994364; 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=x+d/vjagw3btqR9jRfyvVTPfDk4CiJBd17ayADhnvx4=; b=Mc2f8lpR+wB3t//AtHxxxGu/fLb0+daMCP5c/34aymeW+3ZNLEeOg1aWt+yteun+2h PwuZ9AaZImzSXvWPoU5QH9M/Ev5W78k3gAZ5Oxf/SRIkeiOttiO+qKGiB8el2lHxUxSG t1TOGXyPD1NRU0k162eEX/UTbR/U19BQu/y+ZGPUfKgE1qPinir3sCIWOh4Nav/2lbtB IacLaQruWx/iSFD9JCNGFft8qWqufvIR8ugXKUrQa6wodKGL+o3MR+4yr9csSn6Y7IJy PqpGk+G+K5YJG+5NOFNa0ly9fpaAtpDVKjbOzFbPWhbqoPVTRQOe3ANCsvkGt7qT19YY 2HQA== X-Forwarded-Encrypted: i=1; AFNElJ+ImNioW5hZs7LJUK5hLbbhAmJYHE/B+dOXt58OT4tAQs0K2y8NI5JGbvjV+Pe9dnLs7t3qngQyVBJJi6E=@vger.kernel.org X-Gm-Message-State: AOJu0Yxfa853ULLIRBz2qTyAwmQgq3IqLvpjZUzYcIb/auKKLJaSML9j yslRHYcwAzRZpbxHej6FBvR7lRTKMGV7CvWuEvguL0EIJuKnSozn3IquqV60em8Z5/s= X-Gm-Gg: Acq92OFTHFbkADEhll+ChIC5zE1H98m3A9XfRGo+G9pvN7zeIr7uzjgKbF+qgRwEKX1 u2YEawuTClOpPzoG0PCeCtFQTrxYNcanPC7LmJnxdM0C2M/MX7uh8vlTRs3kxjW6eJ8nAGf7CEM oLL0kOBrBRxHytiJBxYpb5tl1f4VIDPnbDfgVoWDV4CQPUszn4PWlJ0/jzooiH0eoEAgnv2PEtL J9dKV+UqPtT1e9owYJMLiP+dj7qOZha12svER7CAITOGNyH/kkCOJneDlwnmiDIE5MhTXR5LVTY fvfCIC9EWA0JGY8ibfJBgOFYPSIQK02t4zX9c1SxZcWZsZTNESJ73fKe9JYIDGbbYhw6v6u4vVi zyIYOy6inL/WCYmyE5i5g7uPx26RPUItT+Ft5xLaYYpf0McsF9uUjuxHCZ+jPlPj6D7chIBafe8 sryQsM8DrmrR5IrOrEFlnGv8Z3yK28G6S7YYJ+B+YmrLvWTuP6tH9vmOfJVNR/9yHMGA== X-Received: by 2002:a05:600c:2a8a:b0:490:6869:7d8b with SMTP id 5b1f17b1804b1-490a293cf20mr198069715e9.15.1780389563957; Tue, 02 Jun 2026 01:39:23 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:106d:1080:8261:5fff:fe11:bdda]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490b0e26050sm43879425e9.9.2026.06.02.01.39.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 01:39:23 -0700 (PDT) From: Neil Armstrong Date: Tue, 02 Jun 2026 10:39:19 +0200 Subject: [PATCH v5 4/6] 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: <20260602-topic-sm8x50-iris-10bit-decoding-v5-4-c2b32474ed67@linaro.org> References: <20260602-topic-sm8x50-iris-10bit-decoding-v5-0-c2b32474ed67@linaro.org> In-Reply-To: <20260602-topic-sm8x50-iris-10bit-decoding-v5-0-c2b32474ed67@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 , Dmitry Baryshkov , Wangao Wang X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=3729; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=fIMj9J3bf66tJ0SCujCc667QSjtjF1FCVosD2tmUDVA=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBqHpa3IUPhLMJS595Po4f2N7hGKHKchnIkrmXC55UO 1+FmtNWJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCah6WtwAKCRB33NvayMhJ0fCND/ 9kh4aCyBLUxSs/+3ucFkXWirorf1+bV7FNNBmzNeRH5c6YDWV31KsLP0WSCPxIPVW+x4BY1MJNy5ye T9htDNR8SQy646PS/nC0y5BaMFTHCA1vgafDHX+PuA6Z/CGFk2BrrR51tt3UMm26h02XIyWmf0viSV C7aIytsrEnezFJRwaJO37pqRbbjulVKWzGngJOAv4y97aQbhIcSOsqnOkbkfAGmAAz1P1CrKIVjuwl sWEIW9/vP4kmlgpv8Ia90+hjF0UEx+XZU8j0XnnhuP1HvXgg+oDqcDaEVNcM8Z/P5VGSJxy11KMqtZ JLouLB2wKjaAAV8L0NI72YRizVQnKEUmGH0n8QqiR1trO/HpxYkjgZFy7MI1fUP5R52+NHt607gj4g /btiSuNW9o0R6o1cZDslcAotN0T3dP+MFs4baIGp8nzrDEBqCj5jqKfwabSEcaMohBkn2VGHBOITBw fvhw915XOXGvi2QW2M/PEjrQiozETAvRW7zMrVW99vXWEQqqA3dRdHX9SScghPU0vMyykePC7GWyQh 9YYfPaAgMaTBj+yllna4h/FG2sySmtPA023VIB8Aya5pu0hUb7IwkIhRK6RQ+3+sqNCZWVcD6PsuiH dQplDFi3NZDguVO7c+gv5cEqIR/+oLcbJuNE6iL3dRObFppKe4kPBXOqfeZQ== 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. Reviewed-by: Dmitry Baryshkov Tested-by: Wangao Wang Signed-off-by: Neil Armstrong --- .../platform/qcom/iris/iris_hfi_gen2_response.c | 21 ++++++++++++++++--- drivers/media/platform/qcom/iris/iris_vdec.c | 24 +++++++++++++++++++--- 2 files changed, 39 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 c350d231265e..aca90aab8548 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,24 @@ 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); + switch (pixmp_op->pixelformat) { + case V4L2_PIX_FMT_P010: + pixmp_op->width = ALIGN(width, 128); + pixmp_op->height = ALIGN(height, 32); + pixmp_op->plane_fmt[0].bytesperline = ALIGN(width * 2, 256); + break; + case V4L2_PIX_FMT_QC10C: + pixmp_op->width = roundup(width, 192); + pixmp_op->height = ALIGN(height, 16); + pixmp_op->plane_fmt[0].bytesperline = ALIGN(pixmp_op->width * 4 / 3, 256); + break; + case V4L2_PIX_FMT_NV12: + case V4L2_PIX_FMT_QC08C: + pixmp_op->width = ALIGN(width, 128); + pixmp_op->height = ALIGN(height, 32); + pixmp_op->plane_fmt[0].bytesperline = pixmp_op->width; + 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 b65832042dc8..92e9201cd3a4 100644 --- a/drivers/media/platform/qcom/iris/iris_vdec.c +++ b/drivers/media/platform/qcom/iris/iris_vdec.c @@ -263,10 +263,28 @@ 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); 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.width = ALIGN(f->fmt.pix_mp.width, 128); + fmt->fmt.pix_mp.height = ALIGN(f->fmt.pix_mp.height, 32); + 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.width = roundup(f->fmt.pix_mp.width, 192); + fmt->fmt.pix_mp.height = ALIGN(f->fmt.pix_mp.height, 16); + 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.width = ALIGN(f->fmt.pix_mp.width, 128); + fmt->fmt.pix_mp.height = ALIGN(f->fmt.pix_mp.height, 32); + fmt->fmt.pix_mp.plane_fmt[0].bytesperline = + ALIGN(f->fmt.pix_mp.width, 128); + 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