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 35A148634C for ; Tue, 16 Jun 2026 00:05:25 +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=1781568326; cv=none; b=EUQY0CCaStOcxYj40p/pS7Be6pDIR1+6ygg/dCge86HW2xoad58IKaLOfZLYqQivXsnaMb5FijfYLjvk9B8jmD5Ga7ASHpO49vneDH5S8A8fslJc3rdys97LdWNiHzXDS1lqFlecLa4joDczCc8EHPmp/sPbArCyNn3tPAcVDt0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568326; c=relaxed/simple; bh=rzyqQrKzvy6ldK9fhdbOvdhzBtzpiycrKy0NRCh1cXI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QI/wQKw71pgX74SuTozsToV2WQC+9qp/+jSpMzoOs4CH4nzl5KIp1rGRgDdJWmMsJIHIPLQmmhZzgem9hVdbMDSHW07Fh12ASICw665i7Pp5ABcxmUkVl7sDy2+fZgNapDCmqQldHgEBQxsBthKHJq1In77R2U8da9TTgHTHNCY= 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=Qiyz549Y; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=PzOgVQCH; 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="Qiyz549Y"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="PzOgVQCH" 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 65FIxDGE861104 for ; Tue, 16 Jun 2026 00:05: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= i0Pk/65yvuq+3l2N+bYFXSL7qdsgACQtO5BE0On9j7Q=; b=Qiyz549YAFK8b5Z2 zMlMCotrDFx/3AYIDcPFSj7wlIACdPq36R6oGIT1G64KJqaqBwibTYU6igtIknUq FgqOux1rJD8rUG3Ehx0Sxt78BZqn5TJRyfPb+YWT0vcDZRnIfGV0b2ruZ9gToMB7 iHi0Y2vivDuKmeZb7Juwuw4zeuITKJGFP4JTYKPLCQSvTlsnvln+DGS1mtWlJOoA Io4LD+SbTlwgy7QXTwXyfne51QPGMctYUDl4B3x72ENbSGdGH6Y3nMk1pn9OmlVL E2d4+2lBsAR85AbskIpQxxCBxyFFgLUrpZscFKgBK/onkFitqi8xmIqZ9UqEDMqv Em3Cog== 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 4eteydbmsn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:05:24 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-9157f453a27so570284285a.1 for ; Mon, 15 Jun 2026 17:05:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568323; x=1782173123; 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=i0Pk/65yvuq+3l2N+bYFXSL7qdsgACQtO5BE0On9j7Q=; b=PzOgVQCHCvqU+kkyeaI3hJyj3uGiEDjlXq0ZV4K22mqiwfRN25HtUEstluWVjBEBqH 6cj18qA+XfUtqB4TFPvoSs4FXp27lXH2U1PWjaiC9cIAYh7cADGHUpnwhH5E3Vdoe4S5 tDSYEZbIIJhAeKbVHrf68EPQsvmRzLGSV6f2xs7vpJNAyIbderAKbbaj4gduuYBfwu88 IZWmwzqTVNqoeVVrO4BxoXcBSjJoJ335AkFTUJkdrrVDmen1CCWmLdLseRa+NqydWF67 KeFdbP+yp+oKmT/wUCMReWwOcVJKRiIwKTDCIxP4Dk6zjbo3cCA1dfkZTTetlPChD9sn GGRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568323; x=1782173123; 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=i0Pk/65yvuq+3l2N+bYFXSL7qdsgACQtO5BE0On9j7Q=; b=dQgeB1gTb3uaMEkirHGxWv3jsSA1K3xfa1d3BYcOJygMBTFF8XrWloIfGTvFM8CER7 /YlYS4ropt844fRFgEfX/xbgySlU2PEt3X/Hjd+RqNmm+EELESkm1aP5HpwWt0fw99IV RByJ6IeFNZ6qmMagW6aaZFCxzdJ4i3bsOuKKV5jyFHhmg4SrVobH8boiLkFJ6hk1oQWs nLD4hgfGqkT2zHo+DwKLFp0CY32b7BPW8YUSBhPW2Y027H4skF7kqkVGiuMsZ9mMICG+ 37BAbQFqoNHsJ9Mv0cv3oCsxhIO9+/fFQJe/+q2/53H46/gpyUMdNbXIFsRBJMrsV6nQ GL7w== X-Forwarded-Encrypted: i=1; AFNElJ/qpWwKSYd1Cwd0FKhpVg65WmaxuX7tdtCY8z3IpUTcXmYcMGNMp4jQRlfyc9GZJDyQC3XC0qdTGEPN58U=@vger.kernel.org X-Gm-Message-State: AOJu0YyAUVaMRK9Q6OnI3oM7e6y5SL6uurISMK2nmtkfsDY8/QsxEQS6 zqG2EO1jt8b2Nx38QvJdwWm8aJbYUaNYuDfoMQTRBs0mldi9N4K9uC0e5tLqLPiUvoo7WTqzETW EW8Z9ezVzJKXiVRgyTAnkh2hAteeIWfYAXoKGdF2JKuY1NEqRs5RmlP3BmEQ6oSTTw7Q= X-Gm-Gg: Acq92OFmsw7T6ZJLMBSfWbsiKSHDqbH5OoNnSJH9S8ApsBQwTUxLbwB9e4NnPtwJ6OE hrfwyB2RIuzHEDnVjal9gXgrS2DRyN7qs9w8w/ZJRyHDB8qx6MKIrvzE9PqOGwBVDVh7Ae8K9Wc orHaAo4TOqI3Ihbm+DUp3c65vCy9LyG04B+eQcyZMIVE2E8R6uF4baXHmeyehVQiijge6L0OAqQ XzmaqrLijN4nn7uIoA1oLGFbuui9aFPMbF9L47aOUNHKjReJqtuzlFqIJgqrc4BLsvv5nXXn8Kl L7QSlAiIxV3RlnsW8Qu9NM6utDNqDAARgU+VxJORqmfgMww1KdhcnawEo1xPgxubSUmHF8/JxxK ItOQMYxn62z6WIbZ0N08h7zrDjfayyCwtA3vzkwjtncs2GrjLtAMemE5wvH4XT2LXvXAZFeML1k QA3XIhvDZTI+5upMXqaJoTjQccS3xeNGVJ+uk= X-Received: by 2002:a05:620a:1791:b0:915:d5d6:f1fa with SMTP id af79cd13be357-9161bd3a595mr2526502485a.31.1781568323550; Mon, 15 Jun 2026 17:05:23 -0700 (PDT) X-Received: by 2002:a05:620a:1791:b0:915:d5d6:f1fa with SMTP id af79cd13be357-9161bd3a595mr2526498885a.31.1781568323093; Mon, 15 Jun 2026 17:05: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 2adb3069b0e04-5ad2e1a7092sm3015731e87.50.2026.06.15.17.05.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:05:20 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:38 +0300 Subject: [PATCH v5 11/16] media: iris: update buffer requirements based on received info 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: <20260616-iris-ar50lt-v5-11-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3438; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=rzyqQrKzvy6ldK9fhdbOvdhzBtzpiycrKy0NRCh1cXI=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ5bBZP4CSeHJjVu+9UnkbrdSaU99GB8mUpqk4r7jYlrLy emPU291MhqzMDByMciKKbL4FLRMjdmUHPZhx9R6mEGsTCBTGLg4BWAi83vZ/7tHmc3pNzteH1yu lB/WsXJ/stQWr7SQKu1vpxe/bssysPphvtbtzOecXvc9jDdrFGbpbNje8t9w61+P7b8dJZljjp8 zdb155Kp+1P5lauFGFtphZ3yfXDx5qjVGJXPt3cqTxh8O2ebOjnOo12mu47b/eqgwdfLlnYvExA Uyop/cmqX1PTCm/0IaJ8/1pD1P13GcWKDn05Ztv8bU8iKzcknho7VpNQt2npMvFOTeLciuVxGkc 6PwWO2lW1ci8pJ97zXNnsX2/OCBN/J7iq46u7IJS2Y6qzhmrn6YLnjXxzhzt9vcQ/WZCxk+PUt1 UXI6k8jI/qLznnb7hE1i5g69jFHesXZ3W1ZHPlIw+rgTAA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: SPuuesUIpn7nR9D4QWD1N5qX92NzMtwz X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfXxaZY4lT5VT7x w2JfHtyayz/elEQxTTr7prLq22N8nJ78XJG53bGpjnF52wvtBOFGrmLQS66DG+O9FerbWPSGt5S ijiynC3i1LA3JuNVhJGVU8BcC46n4wU= X-Authority-Analysis: v=2.4 cv=QrJuG1yd c=1 sm=1 tr=0 ts=6a309344 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=_TRJU0tGboi39qq34nEA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-ORIG-GUID: SPuuesUIpn7nR9D4QWD1N5qX92NzMtwz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX0p8uRoinghdi 3/NcEDHUedok0GuDkpHiD43w5dPqtQOCZiPIXAxYjUem/EOA6F/VOeo5R2DedsGIYr7G+vz/OTK 8DBgeYdkkwQLHWbOQ7a/YTua4BL6OOuqTH6MubxdRp8865aQLTWJge4TaV3YrGZnmTISbR+fl9F eYsDGtr10JW/sKKVIPQ/yA2+jMfqhA60ZHdEhBURDJL4KUtXS7pO7w9bEHTyu/wsb4UIJZT24tP jKmIhccprI364z8x6nuGaCcOAwgrWzJP3qCxQ2JTbilTtUudTFMgWgHZCmsfWy2/lfguOuHlCEz 7Ylconpe86/Dft731hOSOtSgw6OiwLWVlZeW+P7ULzOYtLTTs9hND6MAwBJWfa5penjiZXRnOHH nAVAUUaY4jWVqYI440T0G5qXsPulgp3PmN3qaErtyWBVliqEp9oBsAf7mzNh1TdJZ9uibqPzmPl ZD3Fikq5sNc3okn3EQA== 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-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 impostorscore=0 malwarescore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 Upon receiving data for HFI_PROPERTY_CONFIG_BUFFER_REQUIREMENTS the driver should update buffer sizes and counts from the received data. Implement corresponding functionality updating buffers data. This will be used for upcoming support of AR50Lt platforms with Gen1 firmware. Signed-off-by: Dmitry Baryshkov --- .../platform/qcom/iris/iris_hfi_gen1_response.c | 75 +++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c b/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c index 23fc7194b1e3..896953ea62ea 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c @@ -533,6 +533,79 @@ static void iris_hfi_gen1_session_ftb_done(struct iris_inst *inst, void *packet) dev_err(core->dev, "error in ftb done\n"); } +static enum iris_buffer_type iris_hfi_gen1_buf_type(struct iris_inst *inst, u32 type) +{ + switch (type) { + case HFI_BUFFER_INPUT: + return BUF_INPUT; + case HFI_BUFFER_OUTPUT: + if (iris_split_mode_enabled(inst)) + return BUF_DPB; + return BUF_OUTPUT; + case HFI_BUFFER_OUTPUT2: + if (iris_split_mode_enabled(inst)) + return BUF_OUTPUT; + return BUF_DPB; + case HFI_BUFFER_INTERNAL_PERSIST_1: + return BUF_PERSIST; + case HFI_BUFFER_INTERNAL_SCRATCH: + return BUF_BIN; + case HFI_BUFFER_INTERNAL_SCRATCH_1: + return BUF_SCRATCH_1; + case HFI_BUFFER_INTERNAL_SCRATCH_2: + return BUF_SCRATCH_2; + case HFI_BUFFER_INTERNAL_PERSIST: + return BUF_ARP; + default: + return -EINVAL; + } +} + +static void iris_hfi_gen1_session_buffer_requirements(struct iris_inst *inst, + void *data, size_t size) +{ + struct hfi_buffer_requirements *req; + + if (!size || size % sizeof(*req)) + return; + + for (req = data; size; size -= sizeof(*req), req++) { + enum iris_buffer_type type = iris_hfi_gen1_buf_type(inst, req->type); + + if (type == -EINVAL) + continue; + + /* on relevant platforms hold_count and min_count are swapped */ + inst->buffers[type].min_count = req->hold_count; + inst->buffers[type].size = req->size; + + if (type == BUF_OUTPUT) + inst->fw_min_count = req->count_actual; + } +} + +static void iris_hfi_gen1_session_property_info(struct iris_inst *inst, void *packet) +{ + struct hfi_msg_session_property_info_pkt *pkt = packet; + + if (!pkt->num_properties) { + dev_err(inst->core->dev, "error, no properties\n"); + goto out; + } + + switch (pkt->property) { + case HFI_PROPERTY_CONFIG_BUFFER_REQUIREMENTS: + iris_hfi_gen1_session_buffer_requirements(inst, pkt->data, + pkt->shdr.hdr.size - sizeof(*pkt)); + break; + default: + dev_warn(inst->core->dev, "unknown property id: %x\n", pkt->property); + } + +out: + complete(&inst->completion); +} + struct iris_hfi_gen1_response_pkt_info { u32 pkt; u32 pkt_sz; @@ -657,7 +730,7 @@ static void iris_hfi_gen1_handle_response(struct iris_core *core, void *response } else if (hdr->pkt_type == HFI_MSG_SESSION_FILL_BUFFER) { iris_hfi_gen1_session_ftb_done(inst, hdr); } else if (hdr->pkt_type == HFI_MSG_SESSION_PROPERTY_INFO) { - complete(&inst->completion); + iris_hfi_gen1_session_property_info(inst, hdr); } else { struct hfi_msg_session_hdr_pkt *shdr; -- 2.47.3