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 D63A53672BB for ; Wed, 13 May 2026 12:49: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=1778676580; cv=none; b=Z3mqHrqEv68OaUs2ScPoIsRQl65rk6k8vWljHuUh1/VviXaSuAbSLA0qJsVLeBBpOh4taMs8smiwtasQ7vr7YHpCkqDbSpxAshNTXvd15a2oineG/UL6vZYiOAs/f8dbEAeiAyqoNs8Bzh2F/UQXrlOfOOZa6uVd9y1y6Oj0Nxc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778676580; c=relaxed/simple; bh=51abVJLmqPXnrz/IkKiqyklTNSZTZj3V8WGdms5cxdg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=N/3lx7L1dx/VwykqNHvPh0AqDWhkDk5cV+h72efVVVtgGHnjZ1NJekvs5G/meaPi+N8LtbK7iQBMF/t4LrQxgZWCohFKM1yXs43vHA+fyMLeautLm00adFZ4ju4YJR35j0JFV4TUsIRiaweeRPe4I1O804KZqoT1ahGoXAa5HjQ= 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=B5HuTHAF; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZBNdjdwP; 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="B5HuTHAF"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZBNdjdwP" 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 64D8rGJg4082543 for ; Wed, 13 May 2026 12:49:32 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= yVW7PJDNqNGBBo4tUTiap+vPu+AjRGuVR1+5KXJSqK0=; b=B5HuTHAFd+YIyu/2 QcIMHpwhtFcSt2NFbTxfnHc/zjhH5m4xeJ9qeX/hI6o6fT5GKI0I/W4Bd6Ns0Zre g8kSTyWSrIRwqIFhYgMHdol7tJUZDnwUU6a+hn+zu/+AeYInJds4k0zWKXlYDpTR sJa5xkPAJ8AwyFFikBIn8Xr8gkSDTl9IIDVPW5PtzwEOSws16mO0PokArulqM3PB oGJcHUrREK6qC4J8eKIFLlOhVjYgh+QIVDH1Y2D9WljEVwMWl3KRwJ9sAYhKhXIM wr7qntbEpeug/FUohD0wVK8nIh/qsfVZNSFhFmxE1NPKc2f8EYnMAxArVktQ824S 62EE9g== 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 4e4p6e0tnv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 12:49:32 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-90e311df56eso343082885a.1 for ; Wed, 13 May 2026 05:49:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778676571; x=1779281371; 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=yVW7PJDNqNGBBo4tUTiap+vPu+AjRGuVR1+5KXJSqK0=; b=ZBNdjdwP8P3L9bGFKX0AX23YU7bxORAWH8z+egrgTU3nPHEx5uxKamSY8nHAQspTBX EjI5KKQUyYZOUyAxkzT0Wk6zTvJ0Z1wvXeUVXhpcwfgASxYAvNlGchGYwuZ5a7XLuSE2 T+t6CHWDeqaL3m0Lvx81VBuXKdxs8R7I7L+kVAiyg7SA5ktsquO32+o7z1NycHbyXFV/ PXDDNlYfDxOj92Y0WVHxSFVEGxa8NTdv5f8WX5MWeXdTizx55yX0/Cf+rrj0a9tPhaWH 8CHhEXl7F7W5otX1x4eS+2SJY9SWji6Gd7koNEvnTiod0fQvuiHwUBpLlQUFhdh88goj Brxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778676571; x=1779281371; 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=yVW7PJDNqNGBBo4tUTiap+vPu+AjRGuVR1+5KXJSqK0=; b=Md1l8HFDy6aRv58IcXW+3nFIajfdSjlAdgX7Alo78F8+gVeeDkqxoXQFmz7MTbukxV TNPNhRbzNOEtpwnzAP9Jm8jjHQVYJ+GE0leQdjVfUU54Ek9nZpTaWDTgXYkib8XIaZ7H OvCfflvAFfl3wscmn4uKXrb0lb0wmMbzMu+jlB/wM1OXp+HzvDQfRZ461dBcifhaD1+P MZUHk2bk5F1EC/seysRkRb2+T3SbeC0Py8VI0LeYNogGzQmEnLf1xpbMZfBZw61dGfJR VmZ05xjLFaTkyG3OHug+eHZYy/q2eQ752HaEIh9gr9Am7vUmRq94Xg7gY/P1USZdetnm WXlw== X-Forwarded-Encrypted: i=1; AFNElJ9hIe1flWHC8PuZNrmUq0BFfsT5YwDdVb4ZK++QgoBwbkn3aY8bjhz4hzaaxWEjwsjb8hn98wDCYr2BaYU=@vger.kernel.org X-Gm-Message-State: AOJu0Ywje6R26onZ+t1LIUtPhCe9LO0wgMNMFF4/cjRUTG2yz3ECcjg6 3umnfA/xWMDlOfYT1jETtf/8+CeuTOtruOWsOLieDlqZCu/wggzNKS0LCGUsbiWY3Bd82c9cWMs 3auklbbQS4dAYx2cAzXNkXWmxYhkEGdu1yNPJrMADhixVQXO35pn5gefWHNFwoOqWFTo= X-Gm-Gg: Acq92OGOT7hDOM3MzVElAIWZYAuEeYt9hOMW6y1/UJH9cQGit1/72z2dLwM5zR7TMYB LW1CBc4tAfXZRTFtdn7cbpkB2iCjnTBSsNVNA1/9m0YBvX3ykZCIatf2iwT6kAvQdHAXHAu0nFv grYfr2hv0EKyoYX+dFJaHCVP/5IFiW8iIT/bkf9x8LUrcFywwXfYbiKwK0XWOs8QOCaEfF0GBlV rdyB1fdsgrNUX4myHCe9QaUiNfR8T3oeBaP35UUqqQ0F8pSpPAQt81IhYBmcfUvjmA4ZHzYG3WN rXLxLbLfmjKz1IQfg1cEexwDFg+4iOgv5R7zS/P9SQgIY8jftzqJ2fntX55knNVmy0XidyhBKrW ulqu6pz9T79F3xIGDeLU2tmPI9ZkTaIaods2s/htgucbW5Q4OTphMl3+WcunOyzu5hF49CuZuu1 nAqGgzQ/k0AA0GdgyS4oH13uxbDPCSLzXSrsI= X-Received: by 2002:a05:622a:413:b0:509:5c6f:c0e with SMTP id d75a77b69052e-514cf01d4c9mr99998631cf.37.1778676571409; Wed, 13 May 2026 05:49:31 -0700 (PDT) X-Received: by 2002:a05:622a:413:b0:509:5c6f:c0e with SMTP id d75a77b69052e-514cf01d4c9mr99998331cf.37.1778676570943; Wed, 13 May 2026 05:49:30 -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-393f5f5f15asm41106841fa.17.2026.05.13.05.49.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 05:49:29 -0700 (PDT) From: Dmitry Baryshkov Date: Wed, 13 May 2026 15:45:45 +0300 Subject: [PATCH v2 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: <20260513-iris-ar50lt-v2-11-411e5f7bdc4c@oss.qualcomm.com> References: <20260513-iris-ar50lt-v2-0-411e5f7bdc4c@oss.qualcomm.com> In-Reply-To: <20260513-iris-ar50lt-v2-0-411e5f7bdc4c@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=3369; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=51abVJLmqPXnrz/IkKiqyklTNSZTZj3V8WGdms5cxdg=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBHNBXR5BkkB34CVfSLNuImHH7Gy/ZgmIB/A8H EIAocIhG/OJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagRzQQAKCRCLPIo+Aiko 1XZ5B/kBwnwQjGjpk5WumUdb4z3B8ob7rKlTIhOjuIigeerdT+MKXIF/ADFCQDfGarAhwUQ1tSt 21vUUPST1hTfTN/zFv72tNxdKI/t1lKJw/Frkmh9hdRW2jbfx39ekYWUeNiAJyxjqo2WAftdnf5 +IfABkfLKlBmH+ZTEg7OE5T1Dci2jGNinqutNTpRrt/VUGOpr1GPtxZn4MPXzl82VTO0s2HeeEl EPkwuSIVxZIb+yf9lzwsITEd0hyK9rjLPVqI6S7ZBQ/mo4vVn4wqogYpSy96Ah/bDpc3yNkspL2 asuKRWupWK5P+pVSYA/4XD7Tdqj3kZ5qhlZS1+KGnsrLCK8j X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: HyoLtqoUEFRe2qheF1KeOtPdxPsfFR8S X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEzMiBTYWx0ZWRfX9D4/ZMIZgmq/ CnDpmiwRmqxyweARIm1felOlOatomJmRsM0vVCXGEERozgNg1UX0jNNKBI+hSIvltYKF+BFphfY oAeoW2zTEvsCvVJJdtU4YIPEERzumDQLCiLoLfUde+c35QLkkwMQteVArC7OIcR7IsGLGNCFCLp CVA1HXoMsNAnjR2bLyLhP/2RNkHoz4BF2lPIVLwxKrl9vuguFAsd55+k4RHzBZGuub0hkODfXVm 7idw5u9pdgTslGy410upQf2EyxAwvcdPR98RNMW8TGv47SIf8eU4adVGXnO9OSlfEV7fnwzdjmV 18j+xKvf+Fhbn2cfOrqM/gIDwp3XZoJZ+3U5peY7DwNFc3WUrXkvUXkS4k9T77o/LzRzp5zfY+b 9w8tbIyzWyqmFedLgQuTX5/XKh0Hifh6lY6yKXZH0fPQvGicyCAM/aKzpt66lgRrRJlBi5cEm6f baPDsI59cjseTkGaT1A== X-Proofpoint-GUID: HyoLtqoUEFRe2qheF1KeOtPdxPsfFR8S X-Authority-Analysis: v=2.4 cv=Wukb99fv c=1 sm=1 tr=0 ts=6a04735c cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=_TRJU0tGboi39qq34nEA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 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-05-13_01,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 spamscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 phishscore=0 suspectscore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130132 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 | 74 +++++++++++++++++++++- 1 file changed, 73 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..ee996eb1f41f 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,78 @@ 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; + + 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 +729,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