From nobody Fri Dec 19 13:50:01 2025 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 49F922ED15F for ; Sun, 12 Oct 2025 16:23:49 +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=1760286238; cv=none; b=lgzhF+2wtzCh/kXGqUSEuB4la6+kEoRAjq9epRyiqhvkbiNIGHJcI16Snce1WBR0I0iaWJ2sEdQYn3JA/ZirL1amLXPvvWBuMmPIuavYWnQ2rZQtNAWUWYK/1VvZ1it07lLphFxfDRy4ZBtkjyOpyi8QECT0qv9Vk+7z7t004mA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760286238; c=relaxed/simple; bh=H/YOmdSqf4JIP4Cbg+JvuClkdIEqdkFL49DX9PNELTw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oj1Rh3A3VIB5wHdn2gfVyDpNlJ38fSRCRW8YzrrCeT380/qrZsrpXV7KPSp30c15PqdUFX2sak8rdjjiTJc4L/tdolHxGVxn+HHTZRUKm4BYAIHjLwv1ApEfhOo3YyiWcAgCYEbaYZAFztGF4UN1HffFqjIcscy+NllKYfvtZEA= 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=pzr6W/RF; 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="pzr6W/RF" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59C8tlMX017958 for ; Sun, 12 Oct 2025 16:23:37 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= d+GsqBZNv4YoSJsUViBcXog6s0e/JdFXU7mZ+Ya8PEM=; b=pzr6W/RFCbfwLAFR Nfz4MLuWSWXWYdr5aEvGF72KHe3IOO7+QUopvQq7oBb9CWdfpgfNKXQkZCoIxdv7 GSiQiJp8fS7cq363wLmF98coOTn0WBimuGp9P9EXiDZCjH8brPnqRJ340trPsBU1 2StAndudBJrNMB8GyJshDo2/Jwk1ARKK8n76xZQ9wu4P5BzYMhlU5B8b5tCHgejw +NJ1aTHrCAuKQx0M2vPB6NJ/8wIxWWsqDf8512HsRUhwKzxtyWU+O3Vt/hNL5xGH SLbPMzGq7QwbXTGWyZHZfL+2PJ8DTRhbjYja1sJiChkYNJ5gZBHfnz9K1NUkJUhV ZaB4aQ== 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 49qfa8299w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sun, 12 Oct 2025 16:23:37 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-871614ad3efso1891583485a.0 for ; Sun, 12 Oct 2025 09:23:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760286216; x=1760891016; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=d+GsqBZNv4YoSJsUViBcXog6s0e/JdFXU7mZ+Ya8PEM=; b=bt6SrQNaCNL8S/UWU0kvflstu+FZO6q+0moSE4qkV9NdxdzpEsmmSwyg3cy6hRp62O MgN4j1nKfrsYiXubLqPyx81BUYXDvq1zArv45x1vPIRtiwb+4sbvfA8NJKlb95G3j8PY /N1jr8CIm3A0w7yNesIVcMYX3zpndF6fX6bhBqR1JnLj/0W08OIBXCm1pBEd/z3GQ8Wi cYv7I0mblsfERjUuudNVMwjvyyObmGIzJcGqOlIzisuxVFkuMWpgQPfMILABCK11/tHB KRSueb8RuyHeNVFSlD03s/6W5bF3VkhwxhmZrPrslGUc0iS5VZ97KNPNKNvkU7GaLyTb H/vQ== X-Forwarded-Encrypted: i=1; AJvYcCXWlW93848rdLho8iCtv5AQ1OKrMopXP2LRJt69Jhv4cBimNrUnF7Jr8H53HUh3lYve4EiCduRPmX9ERVQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwSBFYtMRTkOyGoIMrsiprJNsuXhKcYbljtpNqI6d7AFGNwRjQ6 S3uiZOjXszMMq1ex3zPjfq7mGRHjyTe4WJwY6+QaHEZHKPS5d2Bu6StkBKfws82EFT5uqmWbMpL 57n0hvUcEUf5wT8btH7eC2RFS3C+o0wr97H9oowun1sTqbkWjtUcGBuGHqFNELgbLKVg= X-Gm-Gg: ASbGnctRBVXYPYD5PJA56nvsm0BSDPtf2YPW16shSpxXdcuUrCGsxPEaoFKGKnNHBEy FtSSQgy+4OGRwil7IOTSYXgLMxC+OJ4U9VJ1H5/3ZwyOUopIbezUr3FWGK8s4fa5BggqfEq94a5 uYxfFWnObnOvXMMLl2t+JeZwXA5l2pDNUzoLPiFLYFB1wspfaRXEMKmWJacZu1BcObvqmuKqMkg E28XGAHZCFE5W0H9etTopTDslfbEk1b+owR52xCo+YfJTS+QIx+XaXFg2E787xazdtMEovR+XB8 oSTGmc2UW3ss+glqBVsXk0taHuP4XoxE1aJSoeujbbadBqr7muyfTa0FNze65bb9xuRIjCeXUzU IcueyZV0hEmCCpDgXdqithQ9IqTCgHs/Mf8VhjSZPNhntdWyISX+f X-Received: by 2002:a05:620a:4492:b0:82f:6b85:73f8 with SMTP id af79cd13be357-8834fe9988amr2032709685a.5.1760286216525; Sun, 12 Oct 2025 09:23:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEZzIK660VRivJl+L8V8xBNzZiGjpj6iqRVflDvMd1ltU2WxrufRd26sSCpytlTdt/eutMDjg== X-Received: by 2002:a05:620a:4492:b0:82f:6b85:73f8 with SMTP id af79cd13be357-8834fe9988amr2032707085a.5.1760286215918; Sun, 12 Oct 2025 09:23:35 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-590881fe5besm3112637e87.50.2025.10.12.09.23.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 09:23:35 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 12 Oct 2025 19:23:28 +0300 Subject: [PATCH v2 1/8] media: iris: turn platform caps into constants 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: quoted-printable Message-Id: <20251012-iris-sc7280-v2-1-d53a1a4056c3@oss.qualcomm.com> References: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> In-Reply-To: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Konrad Dybcio Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Bryan O'Donoghue X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4960; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=H/YOmdSqf4JIP4Cbg+JvuClkdIEqdkFL49DX9PNELTw=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBo69YD0bmP7HA0ZV2aD+koYyognzHJGtlvTDHoC tV/FoESiDuJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOvWAwAKCRCLPIo+Aiko 1WVbB/9pVdzoBHDyCNGLOwGtKDIx8k8eX5JXHicpqYiIT6rR9YzoUtRQ6N8Ztmw2sUIG5nArl7q nkYllH7XvXhMsEFo2aJ348JTJpnyh5LZhEIEYsd6H0T9ZLKvKoa7mQYUyLJP7JkJjUY+60ckZ0f so5enh50GITF1junbwGwyjoNex57WdbgqKDBU53MtT+ADqGLWrdMpPZbVum2mWz6RXtBmzJTx/h oufr4XeyU9zIgSFpHGTkyvimsyyDk4DOf+lI6nZe4o7xofVPVP2sIDbDB0tPqlLEK9yGsTQl7fV Z6frkejYNpE5hGIHWT8FfM3typuMJKEigcyJ4+q26je7zqB1 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: dbIHAsJCObZ1iYIEZNVaWVWV1Yt1k3Tm X-Proofpoint-ORIG-GUID: dbIHAsJCObZ1iYIEZNVaWVWV1Yt1k3Tm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAxNyBTYWx0ZWRfXxvNW28+U3I81 BifMckbcnwfAWKlwZvtoZtQ2mg63UChNNkk0gjILSqLbODNsl7UWbp94Vs0BU7OhQS7DPnTcRMD nibzN17MpPfYMiLLTIi2NlE5pF+cOFN6p6rDZPBTdCIWCB9gkfhybOxClzaYG5P8HsIsK8DuDSJ lUbkiHrYZsZmTLSCYjarrjKv8bqpgV1nNMCw1jZ7fH5FK32tvWau4xkC2cKLJDHkUUGEqx6u6Eo izYhooNpbybZvKUvZZINbhbdMSnPCMxFX2LryACSIPCtTR+DyRjJqEm28qrOb7jJ9N71x3NOu80 919c6Hx66X8R7bSseGTWi3IWegP0EFSCPDsQmr/qphNvDx8C0FHYsNPZOCdfDVx5/Y9LUc6TYy4 5fE3+3R5390HYAu7lgMuq+zLOmPPNw== X-Authority-Analysis: v=2.4 cv=JLw2csKb c=1 sm=1 tr=0 ts=68ebd609 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=4lT8O_Qwe5KXetiC_XUA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-12_06,2025-10-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 adultscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510110017 Make all struct platform_inst_fw_cap instances constant, they are not modified at runtime. Reviewed-by: Bryan O'Donoghue Reviewed-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_ctrls.c | 2 +- drivers/media/platform/qcom/iris/iris_platform_common.h | 4 ++-- drivers/media/platform/qcom/iris/iris_platform_gen2.c | 4 ++-- drivers/media/platform/qcom/iris/iris_platform_qcs8300.h | 4 ++-- drivers/media/platform/qcom/iris/iris_platform_sm8250.c | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_ctrls.c b/drivers/media/= platform/qcom/iris/iris_ctrls.c index 754a5ad718bc37630bb861012301df7a2e7342a1..9da050aa1f7ce8152dfa46a706e= 2c27adfb5d6ce 100644 --- a/drivers/media/platform/qcom/iris/iris_ctrls.c +++ b/drivers/media/platform/qcom/iris/iris_ctrls.c @@ -301,7 +301,7 @@ int iris_ctrls_init(struct iris_inst *inst) =20 void iris_session_init_caps(struct iris_core *core) { - struct platform_inst_fw_cap *caps; + const struct platform_inst_fw_cap *caps; u32 i, num_cap, cap_id; =20 caps =3D core->iris_platform_data->inst_fw_caps_dec; diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 58d05e0a112eed25faea027a34c719c89d6c3897..17ed86bf78bb3b0bc3f0862253f= ba6505ac3d164 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -215,9 +215,9 @@ struct iris_platform_data { const char *fwname; u32 pas_id; struct platform_inst_caps *inst_caps; - struct platform_inst_fw_cap *inst_fw_caps_dec; + const struct platform_inst_fw_cap *inst_fw_caps_dec; u32 inst_fw_caps_dec_size; - struct platform_inst_fw_cap *inst_fw_caps_enc; + const struct platform_inst_fw_cap *inst_fw_caps_enc; u32 inst_fw_caps_enc_size; struct tz_cp_config *tz_cp_config_data; u32 core_arch; diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen2.c b/driver= s/media/platform/qcom/iris/iris_platform_gen2.c index 36d69cc73986b74534a2912524c8553970fd862e..cbf38e13f89e5c4c46e759fbb86= 777854d751552 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_gen2.c +++ b/drivers/media/platform/qcom/iris/iris_platform_gen2.c @@ -19,7 +19,7 @@ #define VIDEO_ARCH_LX 1 #define BITRATE_MAX 245000000 =20 -static struct platform_inst_fw_cap inst_fw_cap_sm8550_dec[] =3D { +static const struct platform_inst_fw_cap inst_fw_cap_sm8550_dec[] =3D { { .cap_id =3D PROFILE_H264, .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, @@ -203,7 +203,7 @@ static struct platform_inst_fw_cap inst_fw_cap_sm8550_d= ec[] =3D { }, }; =20 -static struct platform_inst_fw_cap inst_fw_cap_sm8550_enc[] =3D { +static const struct platform_inst_fw_cap inst_fw_cap_sm8550_enc[] =3D { { .cap_id =3D PROFILE_H264, .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, diff --git a/drivers/media/platform/qcom/iris/iris_platform_qcs8300.h b/dri= vers/media/platform/qcom/iris/iris_platform_qcs8300.h index 35ea0efade73caa687d300779c5b1dc3b17a0128..87517361a1cf4b6fe53b8a14831= 88670df52c7e7 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_qcs8300.h +++ b/drivers/media/platform/qcom/iris/iris_platform_qcs8300.h @@ -5,7 +5,7 @@ =20 #define BITRATE_MAX 245000000 =20 -static struct platform_inst_fw_cap inst_fw_cap_qcs8300_dec[] =3D { +static const struct platform_inst_fw_cap inst_fw_cap_qcs8300_dec[] =3D { { .cap_id =3D PROFILE_H264, .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, @@ -189,7 +189,7 @@ static struct platform_inst_fw_cap inst_fw_cap_qcs8300_= dec[] =3D { }, }; =20 -static struct platform_inst_fw_cap inst_fw_cap_qcs8300_enc[] =3D { +static const struct platform_inst_fw_cap inst_fw_cap_qcs8300_enc[] =3D { { .cap_id =3D PROFILE_H264, .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8250.c b/driv= ers/media/platform/qcom/iris/iris_platform_sm8250.c index 16486284f8acccf6a95a27f6003e885226e28f4d..e29cba993fde922b579eb7e5a59= ae34bb46f9f0f 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_sm8250.c +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8250.c @@ -17,7 +17,7 @@ #define BITRATE_PEAK_DEFAULT (BITRATE_DEFAULT * 2) #define BITRATE_STEP 100 =20 -static struct platform_inst_fw_cap inst_fw_cap_sm8250_dec[] =3D { +static const struct platform_inst_fw_cap inst_fw_cap_sm8250_dec[] =3D { { .cap_id =3D PIPE, .min =3D PIPE_1, @@ -38,7 +38,7 @@ static struct platform_inst_fw_cap inst_fw_cap_sm8250_dec= [] =3D { }, }; =20 -static struct platform_inst_fw_cap inst_fw_cap_sm8250_enc[] =3D { +static const struct platform_inst_fw_cap inst_fw_cap_sm8250_enc[] =3D { { .cap_id =3D STAGE, .min =3D STAGE_1, --=20 2.47.3 From nobody Fri Dec 19 13:50:01 2025 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 8EE862ED855 for ; Sun, 12 Oct 2025 16:23:48 +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=1760286239; cv=none; b=IJaW0Ll6IToR10VBPobPbYF3VLEvZODImE52KQ7dHYhjPUCk3DEHPZDC+5xI8S6/hiw+xC3/0xLZIg+JRKAKJpjZW4y9FazfF5bzCG7xWPwOh5661oUSlOwkALQIAomJOBbZ/oeRBKxzHKPlg1Zjy3t1V+eyeik4lA1Ulmu+pyM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760286239; c=relaxed/simple; bh=uoVbn3VVUUigPywid2f2V13SpTXgIyshJR5BshILzqU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NyLLDzFDa0slgXZ0BVn/JhyffOVcylr/2DjeigBCRw1hPH29rcRdYRkMBuhNx4On4FopflQtarRCA54krBO+S0fXi2UYz8coJyG3ViPqtDWAHvlyrlfKm/vWyJDUAsnjrQGPdYDalX1WTvSrDahYFxbJHUvDkTZrqkHr+A9l3Xc= 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=O5eL70qF; 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="O5eL70qF" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59CDvVTX009667 for ; Sun, 12 Oct 2025 16:23:39 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= j7hD3U2/iftBn6nPxqDaD4P+oLTZnUv6Tt0CD8XpPOk=; b=O5eL70qFkIZJJHx2 LKM8LAHfZ7xBoGhdxxtnrgg+uejcAa2fH3g72YIDv5T7Gv6n8vjs1CK1RKPlo55x vlakk6ufvK22DylNEKhPiXD1+1CkBDUd6ekpSAu5L33TbuELn0tWpertDcKNfgAO BReeBZrNHTgXQnbi5yiNS8bjiw/y3YFom01eJee+U2zi738oVWGUw+86pN4OMO/Z Fw5js+4aOKYhkHqMoAKcQashiCLVnSkla0cLD+ZRx4Znrl3eNY2dn4wCVdw3jxUE F0yOv4ESKnE1G6NPWgTNYr20iHNtFa3WNx1dBU0j5l2mdbbrircWY/cnZGlJ7Vms 1D8qSQ== 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 49qfert96v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sun, 12 Oct 2025 16:23:39 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8645d397860so3329492185a.2 for ; Sun, 12 Oct 2025 09:23:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760286219; x=1760891019; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=j7hD3U2/iftBn6nPxqDaD4P+oLTZnUv6Tt0CD8XpPOk=; b=rmDzDIDzXo2ZDBQW6B8PbkDzD06WmtRzV8K0gEo9vZDC+bfna6XjS1ZyvoM/NXAZ2d mBLFfOBx5zOKLRm6m+kVNRBwqAIuoid1Aiu5r3SlrwacqSLxO1qTe+FyGdjhE1Ws5CSo gmuQgiCDYSl3JcNRyl8kA7hrFeEKaFhYBUDL0HW7tmPZiivC2tpqOHW37v46Qc8r5YzO GASFtxrD/wN1L84CnC+nCHHwBUlBBn98EBw4DZlhPxYqYsSDmwaefhzz5pF9bSx81NO3 lzDlGcIVcfuiSSzIi3mM2fxKqhwwqQWPZwBKnd45jOg601QANai93i4YUzjAxIbzkbkL sjUg== X-Forwarded-Encrypted: i=1; AJvYcCUbSJ7q4kPZjLnix8MulpUKWIEybmKRyvad+65p5tMbOa5ZCED/l69KtMJdU10hCImJlulwsqnDRjNQcYE=@vger.kernel.org X-Gm-Message-State: AOJu0YzqscEq4em0vDeXNZ5feNGk+CGRF9cp03fjqUxIS4yrZEshTTUN WOKxbBFuhRco1W3Dar93Io2hlOUxRWGx33mPk5QfqU3ECNDxppb1xPdj1JnYvOPNdB0xXks4lU1 njCLF+2Y/ZIeA2lTG74EDP7op89M8Xef18iam120KjC/HkjDiHlGVzJHooHKgo9KCbGk= X-Gm-Gg: ASbGncuGrZN7/ifCKria9U+Kfx4tbVT/MnJqWA3jvPxH6aYQlNs9rlKfIaGYMrM9B5l 6Od1F0Zi4bV0KVMVSHDJkAseuvRkk9MJRR5RB/KezN+z7QFfHkY6c2HFhxtFm4zJyG5Yqs8Npq8 hMmgVyTOxUs8ZMIfMBYL7eVQeZvrmghPvIeMnmSYTW3Ot3EmKSrFPX94Iwwmb7V0ljEJwqYDN5m hffZonqIDU1ezZNiudeyhd8IzMi7ue+jv7+Gn1eqI3tUqIZ2T85o3kzemWS+4btt6/fiPtbmNmv 5E98JAH2/ofWOxlRe28RYRe6HCVmGyLh7kfEiernYL9BQjpcPguaCB+0gfdFr5oUiL6bQy9Z23p KW8f14IEWePd5HqXuyJA8Isbfwb1205FJ1YGqtVHMjYmkpswXhaY0 X-Received: by 2002:a05:620a:40d3:b0:860:f3ab:4456 with SMTP id af79cd13be357-883546e2a79mr2547042485a.86.1760286218703; Sun, 12 Oct 2025 09:23:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH4JwPUtFhk/OK+gKUxoDCRRYqjs5hT7RmTfQr2W2axCdZhIUnAOsYkGsUpxa3h0v3qPQj+qA== X-Received: by 2002:a05:620a:40d3:b0:860:f3ab:4456 with SMTP id af79cd13be357-883546e2a79mr2547039985a.86.1760286218242; Sun, 12 Oct 2025 09:23:38 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-590881fe5besm3112637e87.50.2025.10.12.09.23.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 09:23:36 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 12 Oct 2025 19:23:29 +0300 Subject: [PATCH v2 2/8] media: iris: turn platform data into constants 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: quoted-printable Message-Id: <20251012-iris-sc7280-v2-2-d53a1a4056c3@oss.qualcomm.com> References: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> In-Reply-To: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Konrad Dybcio Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Bryan O'Donoghue X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4265; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=uoVbn3VVUUigPywid2f2V13SpTXgIyshJR5BshILzqU=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBo69YDgTsZHb567g79+2iwK084AvbAnhqxEjRm9 9NSmPXpVzCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOvWAwAKCRCLPIo+Aiko 1buZCACRMQ45/h9HldMZ8AbFLfBfgzhsCceXbmGXXavOhjnpjKg4FrOFRTBU9XXnVsD9BTio0eK P83GzPA6fvIdkatxBq2TAh7eo4i8swWVvo/Gc6vowoa0DYpD5cI9iYBmPck+rBJBV6o60VHMer4 k1RYT5/Xc4HG04rtwCwCspqVyEiBmzB00KkBfSOyKSYNoCUFsM+HGwZYANnE6EQgNEKbooS+pIU 34oW2hALsgWjXFMLOgUAYyk2QrfIfbk49Y3vBPKEeImLdKBvJ11VWer70Vg11uWnq0wxtaKOriK T/vo3zmaejBudwRTzdHBsJqPZcppFYTGM2BL9v5pu2N+pGRY X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=R64O2NRX c=1 sm=1 tr=0 ts=68ebd60b cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=vHBkZ3WG4vhFy3QD8MgA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: OLaFZ30Fl-C2mYoRwwUrz0L61RvKD2EW X-Proofpoint-ORIG-GUID: OLaFZ30Fl-C2mYoRwwUrz0L61RvKD2EW X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAxOCBTYWx0ZWRfXx7lUBlVA3ThD 6DToGsBEb/jEvg97Y1isJQjPAf+g2qE1yw2dshHNCEXF4PowLuy3iGHkPZguiDm5jbou+kHAkLt dHubpudm7SMUjZ9EIFWc9Xi8g2PPzPFJe6tfPHPaShL1i3nIKKQGTsa+d1xrtJNa58HQxuRtD3I DMuBFZT1SmxfvwQfiE5EXNSjAsS5WHnLj7aTF5dEe79TEiJ76wKEGJO+Xj2N8JuN/yRjzZLa3rY fnXrRCzMFniuVbZ4cCa+Zxoh6uGTCzbDJ8lDK8DcxUsApnmtFryPgfS5ybl9GP2YftbszyAaRA9 BNJkHg0Q0zngcOFPrsHJK79yzdJ1AwzAN+Yt2s23HPnWnN+iPs/8w3T4L07dihXgybhmFCdl1Nd uw5vnTpH7v5FnDr7YmR2ihTsi1J/Qw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-12_06,2025-10-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 adultscore=0 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510110018 Make all struct iris_platform_data instances constant, they are not modified at runtime. Reviewed-by: Bryan O'Donoghue Reviewed-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_platform_common.h | 10 +++++----- drivers/media/platform/qcom/iris/iris_platform_gen2.c | 8 ++++---- drivers/media/platform/qcom/iris/iris_platform_sm8250.c | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 17ed86bf78bb3b0bc3f0862253fba6505ac3d164..5ffc1874e8c6362b1c650e912c2= 30e9c4e3bd160 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -41,11 +41,11 @@ enum pipe_type { PIPE_4 =3D 4, }; =20 -extern struct iris_platform_data qcs8300_data; -extern struct iris_platform_data sm8250_data; -extern struct iris_platform_data sm8550_data; -extern struct iris_platform_data sm8650_data; -extern struct iris_platform_data sm8750_data; +extern const struct iris_platform_data qcs8300_data; +extern const struct iris_platform_data sm8250_data; +extern const struct iris_platform_data sm8550_data; +extern const struct iris_platform_data sm8650_data; +extern const struct iris_platform_data sm8750_data; =20 enum platform_clk_type { IRIS_AXI_CLK, /* AXI0 in case of platforms with multiple AXI clocks */ diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen2.c b/driver= s/media/platform/qcom/iris/iris_platform_gen2.c index cbf38e13f89e5c4c46e759fbb86777854d751552..b444e816355624bca8248cce9da= 7adcd7caf6c5b 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_gen2.c +++ b/drivers/media/platform/qcom/iris/iris_platform_gen2.c @@ -737,7 +737,7 @@ static const u32 sm8550_enc_op_int_buf_tbl[] =3D { BUF_SCRATCH_2, }; =20 -struct iris_platform_data sm8550_data =3D { +const struct iris_platform_data sm8550_data =3D { .get_instance =3D iris_hfi_gen2_get_instance, .init_hfi_command_ops =3D iris_hfi_gen2_command_ops_init, .init_hfi_response_ops =3D iris_hfi_gen2_response_ops_init, @@ -827,7 +827,7 @@ struct iris_platform_data sm8550_data =3D { * - controller_rst_tbl to sm8650_controller_reset_table * - fwname to "qcom/vpu/vpu33_p4.mbn" */ -struct iris_platform_data sm8650_data =3D { +const struct iris_platform_data sm8650_data =3D { .get_instance =3D iris_hfi_gen2_get_instance, .init_hfi_command_ops =3D iris_hfi_gen2_command_ops_init, .init_hfi_response_ops =3D iris_hfi_gen2_response_ops_init, @@ -912,7 +912,7 @@ struct iris_platform_data sm8650_data =3D { .enc_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_enc_op_int_buf_tbl), }; =20 -struct iris_platform_data sm8750_data =3D { +const struct iris_platform_data sm8750_data =3D { .get_instance =3D iris_hfi_gen2_get_instance, .init_hfi_command_ops =3D iris_hfi_gen2_command_ops_init, .init_hfi_response_ops =3D iris_hfi_gen2_response_ops_init, @@ -998,7 +998,7 @@ struct iris_platform_data sm8750_data =3D { * - inst_caps to platform_inst_cap_qcs8300 * - inst_fw_caps to inst_fw_cap_qcs8300 */ -struct iris_platform_data qcs8300_data =3D { +const struct iris_platform_data qcs8300_data =3D { .get_instance =3D iris_hfi_gen2_get_instance, .init_hfi_command_ops =3D iris_hfi_gen2_command_ops_init, .init_hfi_response_ops =3D iris_hfi_gen2_response_ops_init, diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8250.c b/driv= ers/media/platform/qcom/iris/iris_platform_sm8250.c index e29cba993fde922b579eb7e5a59ae34bb46f9f0f..66a5bdd24d8a0e98b0554a01943= 8bf4caa1dc43c 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_sm8250.c +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8250.c @@ -314,7 +314,7 @@ static const u32 sm8250_enc_ip_int_buf_tbl[] =3D { BUF_SCRATCH_2, }; =20 -struct iris_platform_data sm8250_data =3D { +const struct iris_platform_data sm8250_data =3D { .get_instance =3D iris_hfi_gen1_get_instance, .init_hfi_command_ops =3D &iris_hfi_gen1_command_ops_init, .init_hfi_response_ops =3D iris_hfi_gen1_response_ops_init, --=20 2.47.3 From nobody Fri Dec 19 13:50:01 2025 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 0E5D72ECE89 for ; Sun, 12 Oct 2025 16:23:43 +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=1760286238; cv=none; b=GO81yVv5c6hE2msscaXID7LyLuLTfI99WqHoKt/powVzml0joAvs3KqK5MWHF2VaWlMx5L809zDbuUjbrI2IHXT7F9rgHRzp1N/uwQMkBZNS7pYfffLGYxMitj9TCjSUnbKNfW26MzNTGuU/B/n3i6tgioAzQdnEou+Gaq9Uri4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760286238; c=relaxed/simple; bh=mRLMpwKjgcnX/KXWGMaxI3d6ArbBbdWV/nBhx9iTa/Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NY4qp7rFwIny3iC40Htbbz+3WAm4uDLiNQTKZOfg2vIYvAxt/5cocsT+DJgbxvHwAh8Ahjs0QUtlVWUoKOA5GnGUv44lvQnnJWUViIFX0hPq8W4Tqba9rST06X16IeGjm3H2tw7waLOw1f2/E4LENGMNP3zs/KFA0Yyp+O0Yqok= 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=X0JACE6m; 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="X0JACE6m" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59CBKORQ019803 for ; Sun, 12 Oct 2025 16:23:42 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= 1pALJ3CG570LA+ya1f9jVtp0uqrIfxfXGHOTMwpge4w=; b=X0JACE6mkqAWisu0 zcT9Yo8ZRKZS++GWGO5ohC0TDuFlJZvIscR1+SrjB0pDurWgE89l6j5Oq/pvJ08n Ide1NhzvU0dmWSUyaNohY+acMnMwxu1MzYO041N++J/V7eVg4ssnqZHB1LKAuIQe 8ebjtJ0VZAuOlY5IP7nHKtV8gQX4GEWG0nJtF4Mxt4qJ2WVnWzhhO0jblAe5/C2V WaN8p2v2baoYRSuWLx7B+NQOJRxnf7AJaNEvwWy3YDM4Y/RFnMgxdusRlXEZAKqU 6Cv3beowMeyGHnHX0LLX+zC5xIdWmyPuPTMhHxmcaqFVK+26m2pdzNnLxozHcCP/ y3VNlg== 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 49qfd8t8wr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sun, 12 Oct 2025 16:23:41 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-86835654255so3711018285a.3 for ; Sun, 12 Oct 2025 09:23:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760286220; x=1760891020; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1pALJ3CG570LA+ya1f9jVtp0uqrIfxfXGHOTMwpge4w=; b=sxHIMKdZNzZnXRlg+SJwP/rL8wQrrGFCNKl/5YShx5hXgepNSFhlEkWASO8+q33q3X kuh3GF6NRecS/aAQSRA/uSeJyBjdbmyfPpcx55qDmJFwZwJLaN4e2g7CEVCl65XB02Pr pCIEW+Ag6oYBMA49lZvUIVrx+bnk3Mg7EKM1o539FhkXV902K3J5PVuvQRJEzc921ehB DIjZT3HxsI++AVkTLsAhKIQKrbQCi5ILdWBP6txdmqfNhKmjd/xzVsVB56+JwHwXdC5f fLyC2pQFo2kUgfOlsnrw17/6QBv5OBDjaE0gXNp9hd5UeyLaxqGNbSMA/zgM1OTCMSIo CaHA== X-Forwarded-Encrypted: i=1; AJvYcCWWsblabX2ZQhJCZYLlwzlo3ovkTTitgIr8q+m22xX0EQh27dtPBMJnPbeJMTmhmuyqJBFsYA8q8Hvo27w=@vger.kernel.org X-Gm-Message-State: AOJu0YwszNwfSXCga1rsR69JtmHJYpRF8kcAc6lRMWOWclwaIn8j7Uck yR7MfZmhOaUFyUPDMpO/Y6rAHJyqIc+B0PwM2gDOo12u/Vku4RLb3gsXuI2Ed883r/lk2JpBX2m 280dsr7BAIfHYTR9qmpQiikpd0MNAbyPvqM2938K0dxzOMwxZXRdAUGpyYndKLdfLZpw= X-Gm-Gg: ASbGnctLt9Unplq6vOJnt7PtGW8zN8nCxNCicJJVMiIoPuAOlEpaRzUjqZshjINRH1L 9CCmw9bxVglB/utqZsxbfZf1pEfbXpda6qyAd7MIFwFeuDlXUEmiP2UFzvP2uvH1RI2tYyENzW1 YrccAGe6u7CZfHMN95v3bsXtONyV79PrgfwRx/fV9XeR1AS0EXiurpSwnYz+BxVsV9ajQgPwSDp zbkNeQ96EUksY6cPhTgZPzFBxc2yo903mAYr7lxRAiDwfj+b11+scSDV0FeUPW1y9J24Q1a6dv1 j9ys9KtrSA4c9P4cESKdFUZzjw1ayHINoMC9PbDq+J39C7LPKPreXee+8+RWZGVDdpFk+z8+2qk WgqCWCj/7ffWLASkPuExrBnnV+U3U87cNP+VcsjyXd3bZgs6Y3rCC X-Received: by 2002:ac8:584c:0:b0:4b5:ea1f:77f4 with SMTP id d75a77b69052e-4e6ead859f5mr238940051cf.64.1760286220035; Sun, 12 Oct 2025 09:23:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHAfc78sK/RHXj9t8gmriTClaVxUR9zQ9ZzXUlC14qEgDhXpLh5+SXjkkv50WQyTyWGu4GygQ== X-Received: by 2002:ac8:584c:0:b0:4b5:ea1f:77f4 with SMTP id d75a77b69052e-4e6ead859f5mr238939701cf.64.1760286219414; Sun, 12 Oct 2025 09:23:39 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-590881fe5besm3112637e87.50.2025.10.12.09.23.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 09:23:38 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 12 Oct 2025 19:23:30 +0300 Subject: [PATCH v2 3/8] media: iris: stop copying r/o data 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: quoted-printable Message-Id: <20251012-iris-sc7280-v2-3-d53a1a4056c3@oss.qualcomm.com> References: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> In-Reply-To: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Konrad Dybcio Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=30903; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=mRLMpwKjgcnX/KXWGMaxI3d6ArbBbdWV/nBhx9iTa/Q=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBo69YDLvWBCsczn/3W9uwB+mby+FTh7buSDJ2m1 GoYb7bZWNmJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOvWAwAKCRCLPIo+Aiko 1SraCACCqEI+aYTpIXOF2RDIEa+AF0QQqLqHS9wnZpBSbR95R7dn6Wwd4Zp5Pj9tniQcR+yQKNO hMgdyMGN3RLeYCNdLr92bRQGt5X39ngC7q0N9ZLl4b4IqnSIded+FBhSctDIB7OA1e6thffzDNm oY1Bpmb5pw4ZFS2dPSHou4U5ldD8Qgr0AzG1XWwj/X9BHZ4ZYqCotk22QSYg3mhW0L4dj3DqFj5 t/b50zOvwIUjZ2j9hCg126inwNwigQv9Cx7PqQKFsor0CY/VpFBO6tG+poQLiIzPicM12DK79nw UZMUftbMyKSEaW5ArVKKQ5tu8xXFHNxVENFzskngrqN+t2rJ X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: ip8T5s4xKy1jlBCESlRVwACH0uqC2G0X X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAxOCBTYWx0ZWRfX6iqTK5o6j0sp sMUbR6PWtcuFDcWIrZ74tXVipTOFmSrsBZkPoZeNX4AFPNuZnV5zePAuOu+TOND6+1m+pPDgtYh 8rGp29gBrsyC6cZzbI/qH7ZgRMATdhh7js5rBvi7B6vIYQTEeerdWpyYXC5yVYSnVN7BSwvb2BK CvOjwTIsTFcVRCOD3Ddwjb0i6o9VbGjc7BzigYVpLYsFdxNZnm5nRkQo1Zq9k11OJ6A8C2Jl3Em dBj7AZ/yWMicqvCkIaznAvbU5jY73EjtIXTX+MZBqABqLtLum9Fodn0KYlCdmmujTle2wkUtblb MJRzY4I2Rt2xnQpLazPSi/T0zCjAFIcXG8LSTZ8BPu4L1N2epVBM4L6Jn4vUVp//wz5sZAqI9n0 2ByNSPGtEX/TWkUxCpXsARrTkcZyJg== X-Proofpoint-GUID: ip8T5s4xKy1jlBCESlRVwACH0uqC2G0X X-Authority-Analysis: v=2.4 cv=PdTyRyhd c=1 sm=1 tr=0 ts=68ebd60d cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=EUspDBNiAAAA:8 a=qRUaz7MsY3PVI_3wtuEA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-12_06,2025-10-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 bulkscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510110018 Most of the platform_inst_caps data is read-only. In order to lower the amount of memory consumed by the driver, store the value and the corresponding index in the read-write data and use the rest via the pointer to r/o capability data. Keep all read-only flags inside platform_inst_fw_cap.flags and transform CAP_FLAG_CLIENT_SET (which is being set per-instance once the client changes any of the controls) into the boolean field inside struct platform_inst_fw_cap_value. Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_core.h | 4 +- drivers/media/platform/qcom/iris/iris_ctrls.c | 238 ++++++++++-------= ---- drivers/media/platform/qcom/iris/iris_instance.h | 3 +- .../platform/qcom/iris/iris_platform_common.h | 8 +- drivers/media/platform/qcom/iris/iris_vdec.c | 5 +- drivers/media/platform/qcom/iris/iris_venc.c | 5 +- 6 files changed, 135 insertions(+), 128 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_core.h b/drivers/media/p= latform/qcom/iris/iris_core.h index fb194c967ad4f9b5e00cd74f0d41e0b827ef14db..b5037ae8c71921753c165a86a27= 7a4a4b5083b30 100644 --- a/drivers/media/platform/qcom/iris/iris_core.h +++ b/drivers/media/platform/qcom/iris/iris_core.h @@ -115,8 +115,8 @@ struct iris_core { struct delayed_work sys_error_handler; struct list_head instances; /* encoder and decoder have overlapping caps, so two different arrays are= required */ - struct platform_inst_fw_cap inst_fw_caps_dec[INST_FW_CAP_MAX]; - struct platform_inst_fw_cap inst_fw_caps_enc[INST_FW_CAP_MAX]; + struct platform_inst_fw_cap_value inst_fw_caps_dec[INST_FW_CAP_MAX]; + struct platform_inst_fw_cap_value inst_fw_caps_enc[INST_FW_CAP_MAX]; }; =20 int iris_core_init(struct iris_core *core); diff --git a/drivers/media/platform/qcom/iris/iris_ctrls.c b/drivers/media/= platform/qcom/iris/iris_ctrls.c index 9da050aa1f7ce8152dfa46a706e2c27adfb5d6ce..0e9adb3982a49cfd7cbe5110cfd= 5f573f0f7bb38 100644 --- a/drivers/media/platform/qcom/iris/iris_ctrls.c +++ b/drivers/media/platform/qcom/iris/iris_ctrls.c @@ -194,26 +194,28 @@ static int iris_op_s_ctrl(struct v4l2_ctrl *ctrl) { struct iris_inst *inst =3D container_of(ctrl->handler, struct iris_inst, = ctrl_handler); enum platform_inst_fw_cap_type cap_id; - struct platform_inst_fw_cap *cap; + unsigned int cap_idx; struct vb2_queue *q; =20 - cap =3D &inst->fw_caps[0]; cap_id =3D iris_get_cap_id(ctrl->id); if (!iris_valid_cap_id(cap_id)) return -EINVAL; =20 + cap_idx =3D inst->fw_caps[cap_id].idx; + q =3D v4l2_m2m_get_src_vq(inst->m2m_ctx); if (vb2_is_streaming(q) && - (!(inst->fw_caps[cap_id].flags & CAP_FLAG_DYNAMIC_ALLOWED))) + (!(inst->inst_fw_caps[cap_id].flags & CAP_FLAG_DYNAMIC_ALLOWED))) return -EINVAL; =20 - cap[cap_id].flags |=3D CAP_FLAG_CLIENT_SET; + inst->fw_caps[cap_id].client_set =3D true; =20 inst->fw_caps[cap_id].value =3D ctrl->val; =20 if (vb2_is_streaming(q)) { - if (cap[cap_id].set) - cap[cap_id].set(inst, cap_id); + + if (inst->inst_fw_caps[cap_idx].set) + inst->inst_fw_caps[cap_idx].set(inst, cap_id); } =20 return 0; @@ -225,13 +227,14 @@ static const struct v4l2_ctrl_ops iris_ctrl_ops =3D { =20 int iris_ctrls_init(struct iris_inst *inst) { - struct platform_inst_fw_cap *cap =3D &inst->fw_caps[0]; u32 num_ctrls =3D 0, ctrl_idx =3D 0, idx =3D 0; u32 v4l2_id; int ret; =20 for (idx =3D 1; idx < INST_FW_CAP_MAX; idx++) { - if (iris_get_v4l2_id(cap[idx].cap_id)) + unsigned int cap_idx =3D inst->fw_caps[idx].idx; + + if (iris_get_v4l2_id(inst->inst_fw_caps[cap_idx].cap_id)) num_ctrls++; } =20 @@ -245,9 +248,11 @@ int iris_ctrls_init(struct iris_inst *inst) return ret; =20 for (idx =3D 1; idx < INST_FW_CAP_MAX; idx++) { + unsigned int cap_idx =3D inst->fw_caps[idx].idx; + const struct platform_inst_fw_cap *cap =3D &inst->inst_fw_caps[cap_idx]; struct v4l2_ctrl *ctrl; =20 - v4l2_id =3D iris_get_v4l2_id(cap[idx].cap_id); + v4l2_id =3D iris_get_v4l2_id(cap->cap_id); if (!v4l2_id) continue; =20 @@ -256,21 +261,21 @@ int iris_ctrls_init(struct iris_inst *inst) goto error; } =20 - if (cap[idx].flags & CAP_FLAG_MENU) { + if (inst->inst_fw_caps[cap_idx].flags & CAP_FLAG_MENU) { ctrl =3D v4l2_ctrl_new_std_menu(&inst->ctrl_handler, &iris_ctrl_ops, v4l2_id, - cap[idx].max, - ~(cap[idx].step_or_mask), - cap[idx].value); + cap[cap_idx].max, + ~(cap[cap_idx].step_or_mask), + inst->fw_caps[idx].value); } else { ctrl =3D v4l2_ctrl_new_std(&inst->ctrl_handler, &iris_ctrl_ops, v4l2_id, - cap[idx].min, - cap[idx].max, - cap[idx].step_or_mask, - cap[idx].value); + cap[cap_idx].min, + cap[cap_idx].max, + cap[cap_idx].step_or_mask, + inst->fw_caps[idx].value); } if (!ctrl) { ret =3D -EINVAL; @@ -312,14 +317,8 @@ void iris_session_init_caps(struct iris_core *core) if (!iris_valid_cap_id(cap_id)) continue; =20 - core->inst_fw_caps_dec[cap_id].cap_id =3D caps[i].cap_id; - core->inst_fw_caps_dec[cap_id].min =3D caps[i].min; - core->inst_fw_caps_dec[cap_id].max =3D caps[i].max; - core->inst_fw_caps_dec[cap_id].step_or_mask =3D caps[i].step_or_mask; + core->inst_fw_caps_dec[cap_id].idx =3D i; core->inst_fw_caps_dec[cap_id].value =3D caps[i].value; - core->inst_fw_caps_dec[cap_id].flags =3D caps[i].flags; - core->inst_fw_caps_dec[cap_id].hfi_id =3D caps[i].hfi_id; - core->inst_fw_caps_dec[cap_id].set =3D caps[i].set; } =20 caps =3D core->iris_platform_data->inst_fw_caps_enc; @@ -330,29 +329,23 @@ void iris_session_init_caps(struct iris_core *core) if (!iris_valid_cap_id(cap_id)) continue; =20 - core->inst_fw_caps_enc[cap_id].cap_id =3D caps[i].cap_id; - core->inst_fw_caps_enc[cap_id].min =3D caps[i].min; - core->inst_fw_caps_enc[cap_id].max =3D caps[i].max; - core->inst_fw_caps_enc[cap_id].step_or_mask =3D caps[i].step_or_mask; + core->inst_fw_caps_enc[cap_id].idx =3D i; core->inst_fw_caps_enc[cap_id].value =3D caps[i].value; - core->inst_fw_caps_enc[cap_id].flags =3D caps[i].flags; - core->inst_fw_caps_enc[cap_id].hfi_id =3D caps[i].hfi_id; - core->inst_fw_caps_enc[cap_id].set =3D caps[i].set; } } =20 static u32 iris_get_port_info(struct iris_inst *inst, - enum platform_inst_fw_cap_type cap_id) + unsigned int cap_idx) { if (inst->domain =3D=3D DECODER) { - if (inst->fw_caps[cap_id].flags & CAP_FLAG_INPUT_PORT) + if (inst->inst_fw_caps[cap_idx].flags & CAP_FLAG_INPUT_PORT) return HFI_PORT_BITSTREAM; - else if (inst->fw_caps[cap_id].flags & CAP_FLAG_OUTPUT_PORT) + else if (inst->inst_fw_caps[cap_idx].flags & CAP_FLAG_OUTPUT_PORT) return HFI_PORT_RAW; } else { - if (inst->fw_caps[cap_id].flags & CAP_FLAG_INPUT_PORT) + if (inst->inst_fw_caps[cap_idx].flags & CAP_FLAG_INPUT_PORT) return HFI_PORT_RAW; - else if (inst->fw_caps[cap_id].flags & CAP_FLAG_OUTPUT_PORT) + else if (inst->inst_fw_caps[cap_idx].flags & CAP_FLAG_OUTPUT_PORT) return HFI_PORT_BITSTREAM; } =20 @@ -362,12 +355,13 @@ static u32 iris_get_port_info(struct iris_inst *inst, int iris_set_u32_enum(struct iris_inst *inst, enum platform_inst_fw_cap_ty= pe cap_id) { const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; u32 hfi_value =3D inst->fw_caps[cap_id].value; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32_ENUM, &hfi_value, sizeof(u32)); } @@ -375,12 +369,13 @@ int iris_set_u32_enum(struct iris_inst *inst, enum pl= atform_inst_fw_cap_type cap int iris_set_u32(struct iris_inst *inst, enum platform_inst_fw_cap_type ca= p_id) { const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; u32 hfi_value =3D inst->fw_caps[cap_id].value; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32, &hfi_value, sizeof(u32)); } @@ -389,7 +384,8 @@ int iris_set_stage(struct iris_inst *inst, enum platfor= m_inst_fw_cap_type cap_id { const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; struct v4l2_format *inp_f =3D inst->fmt_src; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; u32 height =3D inp_f->fmt.pix_mp.height; u32 width =3D inp_f->fmt.pix_mp.width; u32 work_mode =3D STAGE_2; @@ -401,7 +397,7 @@ int iris_set_stage(struct iris_inst *inst, enum platfor= m_inst_fw_cap_type cap_id =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32, &work_mode, sizeof(u32)); } @@ -409,12 +405,13 @@ int iris_set_stage(struct iris_inst *inst, enum platf= orm_inst_fw_cap_type cap_id int iris_set_pipe(struct iris_inst *inst, enum platform_inst_fw_cap_type c= ap_id) { const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; u32 work_route =3D inst->fw_caps[PIPE].value; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32, &work_route, sizeof(u32)); } @@ -422,19 +419,13 @@ int iris_set_pipe(struct iris_inst *inst, enum platfo= rm_inst_fw_cap_type cap_id) int iris_set_profile(struct iris_inst *inst, enum platform_inst_fw_cap_typ= e cap_id) { const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; - u32 hfi_id, hfi_value; - - if (inst->codec =3D=3D V4L2_PIX_FMT_H264) { - hfi_id =3D inst->fw_caps[PROFILE_H264].hfi_id; - hfi_value =3D inst->fw_caps[PROFILE_H264].value; - } else { - hfi_id =3D inst->fw_caps[PROFILE_HEVC].hfi_id; - hfi_value =3D inst->fw_caps[PROFILE_HEVC].value; - } + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; + u32 hfi_value =3D inst->fw_caps[cap_id].value; =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32_ENUM, &hfi_value, sizeof(u32)); } @@ -442,19 +433,13 @@ int iris_set_profile(struct iris_inst *inst, enum pla= tform_inst_fw_cap_type cap_ int iris_set_level(struct iris_inst *inst, enum platform_inst_fw_cap_type = cap_id) { const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; - u32 hfi_id, hfi_value; - - if (inst->codec =3D=3D V4L2_PIX_FMT_H264) { - hfi_id =3D inst->fw_caps[LEVEL_H264].hfi_id; - hfi_value =3D inst->fw_caps[LEVEL_H264].value; - } else { - hfi_id =3D inst->fw_caps[LEVEL_HEVC].hfi_id; - hfi_value =3D inst->fw_caps[LEVEL_HEVC].value; - } + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; + u32 hfi_value =3D inst->fw_caps[cap_id].value; =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32_ENUM, &hfi_value, sizeof(u32)); } @@ -462,20 +447,19 @@ int iris_set_level(struct iris_inst *inst, enum platf= orm_inst_fw_cap_type cap_id int iris_set_profile_level_gen1(struct iris_inst *inst, enum platform_inst= _fw_cap_type cap_id) { const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; struct hfi_profile_level pl; =20 - if (inst->codec =3D=3D V4L2_PIX_FMT_H264) { - pl.profile =3D inst->fw_caps[PROFILE_H264].value; + pl.profile =3D inst->fw_caps[cap_id].value; + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) pl.level =3D inst->fw_caps[LEVEL_H264].value; - } else { - pl.profile =3D inst->fw_caps[PROFILE_HEVC].value; + else pl.level =3D inst->fw_caps[LEVEL_HEVC].value; - } =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32_ENUM, &pl, sizeof(u32)); } @@ -484,7 +468,8 @@ int iris_set_header_mode_gen1(struct iris_inst *inst, e= num platform_inst_fw_cap_ { const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; u32 header_mode =3D inst->fw_caps[cap_id].value; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; u32 hfi_val; =20 if (header_mode =3D=3D V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) @@ -494,7 +479,7 @@ int iris_set_header_mode_gen1(struct iris_inst *inst, e= num platform_inst_fw_cap_ =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32, &hfi_val, sizeof(u32)); } @@ -504,7 +489,8 @@ int iris_set_header_mode_gen2(struct iris_inst *inst, e= num platform_inst_fw_cap_ const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; u32 prepend_sps_pps =3D inst->fw_caps[PREPEND_SPSPPS_TO_IDR].value; u32 header_mode =3D inst->fw_caps[cap_id].value; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; u32 hfi_val; =20 if (prepend_sps_pps) @@ -516,7 +502,7 @@ int iris_set_header_mode_gen2(struct iris_inst *inst, e= num platform_inst_fw_cap_ =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32_ENUM, &hfi_val, sizeof(u32)); } @@ -526,7 +512,8 @@ int iris_set_bitrate(struct iris_inst *inst, enum platf= orm_inst_fw_cap_type cap_ const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; u32 entropy_mode =3D inst->fw_caps[ENTROPY_MODE].value; u32 bitrate =3D inst->fw_caps[cap_id].value; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; u32 max_bitrate; =20 if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) @@ -541,7 +528,7 @@ int iris_set_bitrate(struct iris_inst *inst, enum platf= orm_inst_fw_cap_type cap_ =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32, &bitrate, sizeof(u32)); } @@ -552,12 +539,13 @@ int iris_set_peak_bitrate(struct iris_inst *inst, enu= m platform_inst_fw_cap_type u32 rc_mode =3D inst->fw_caps[BITRATE_MODE].value; u32 peak_bitrate =3D inst->fw_caps[cap_id].value; u32 bitrate =3D inst->fw_caps[BITRATE].value; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; =20 if (rc_mode !=3D V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) return 0; =20 - if (inst->fw_caps[cap_id].flags & CAP_FLAG_CLIENT_SET) { + if (inst->fw_caps[cap_id].client_set) { if (peak_bitrate < bitrate) peak_bitrate =3D bitrate; } else { @@ -568,7 +556,7 @@ int iris_set_peak_bitrate(struct iris_inst *inst, enum = platform_inst_fw_cap_type =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32, &peak_bitrate, sizeof(u32)); } @@ -579,7 +567,8 @@ int iris_set_bitrate_mode_gen1(struct iris_inst *inst, = enum platform_inst_fw_cap u32 bitrate_mode =3D inst->fw_caps[BITRATE_MODE].value; u32 frame_rc =3D inst->fw_caps[FRAME_RC_ENABLE].value; u32 frame_skip =3D inst->fw_caps[FRAME_SKIP_MODE].value; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; u32 rc_mode =3D 0; =20 if (!frame_rc) @@ -595,7 +584,7 @@ int iris_set_bitrate_mode_gen1(struct iris_inst *inst, = enum platform_inst_fw_cap =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32_ENUM, &rc_mode, sizeof(u32)); } @@ -606,7 +595,8 @@ int iris_set_bitrate_mode_gen2(struct iris_inst *inst, = enum platform_inst_fw_cap u32 bitrate_mode =3D inst->fw_caps[BITRATE_MODE].value; u32 frame_rc =3D inst->fw_caps[FRAME_RC_ENABLE].value; u32 frame_skip =3D inst->fw_caps[FRAME_SKIP_MODE].value; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; u32 rc_mode =3D 0; =20 if (!frame_rc) @@ -622,7 +612,7 @@ int iris_set_bitrate_mode_gen2(struct iris_inst *inst, = enum platform_inst_fw_cap =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32_ENUM, &rc_mode, sizeof(u32)); } @@ -631,7 +621,8 @@ int iris_set_entropy_mode_gen1(struct iris_inst *inst, = enum platform_inst_fw_cap { const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; u32 entropy_mode =3D inst->fw_caps[cap_id].value; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; u32 hfi_val; =20 if (inst->codec !=3D V4L2_PIX_FMT_H264) @@ -642,7 +633,7 @@ int iris_set_entropy_mode_gen1(struct iris_inst *inst, = enum platform_inst_fw_cap =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32, &hfi_val, sizeof(u32)); } @@ -651,7 +642,8 @@ int iris_set_entropy_mode_gen2(struct iris_inst *inst, = enum platform_inst_fw_cap { const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; u32 entropy_mode =3D inst->fw_caps[cap_id].value; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; u32 profile; =20 if (inst->codec !=3D V4L2_PIX_FMT_H264) @@ -667,7 +659,7 @@ int iris_set_entropy_mode_gen2(struct iris_inst *inst, = enum platform_inst_fw_cap =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_U32, &entropy_mode, sizeof(u32)); } @@ -678,32 +670,33 @@ int iris_set_min_qp(struct iris_inst *inst, enum plat= form_inst_fw_cap_type cap_i u32 i_qp_enable =3D 0, p_qp_enable =3D 0, b_qp_enable =3D 0; u32 i_frame_qp =3D 0, p_frame_qp =3D 0, b_frame_qp =3D 0; u32 min_qp_enable =3D 0, client_qp_enable =3D 0; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; u32 hfi_val; =20 if (inst->codec =3D=3D V4L2_PIX_FMT_H264) { - if (inst->fw_caps[MIN_FRAME_QP_H264].flags & CAP_FLAG_CLIENT_SET) + if (inst->fw_caps[MIN_FRAME_QP_H264].client_set) min_qp_enable =3D 1; if (min_qp_enable || - (inst->fw_caps[I_FRAME_MIN_QP_H264].flags & CAP_FLAG_CLIENT_SET)) + (inst->fw_caps[I_FRAME_MIN_QP_H264].client_set)) i_qp_enable =3D 1; if (min_qp_enable || - (inst->fw_caps[P_FRAME_MIN_QP_H264].flags & CAP_FLAG_CLIENT_SET)) + (inst->fw_caps[P_FRAME_MIN_QP_H264].client_set)) p_qp_enable =3D 1; if (min_qp_enable || - (inst->fw_caps[B_FRAME_MIN_QP_H264].flags & CAP_FLAG_CLIENT_SET)) + (inst->fw_caps[B_FRAME_MIN_QP_H264].client_set)) b_qp_enable =3D 1; } else { - if (inst->fw_caps[MIN_FRAME_QP_HEVC].flags & CAP_FLAG_CLIENT_SET) + if (inst->fw_caps[MIN_FRAME_QP_HEVC].client_set) min_qp_enable =3D 1; if (min_qp_enable || - (inst->fw_caps[I_FRAME_MIN_QP_HEVC].flags & CAP_FLAG_CLIENT_SET)) + (inst->fw_caps[I_FRAME_MIN_QP_HEVC].client_set)) i_qp_enable =3D 1; if (min_qp_enable || - (inst->fw_caps[P_FRAME_MIN_QP_HEVC].flags & CAP_FLAG_CLIENT_SET)) + (inst->fw_caps[P_FRAME_MIN_QP_HEVC].client_set)) p_qp_enable =3D 1; if (min_qp_enable || - (inst->fw_caps[B_FRAME_MIN_QP_HEVC].flags & CAP_FLAG_CLIENT_SET)) + (inst->fw_caps[B_FRAME_MIN_QP_HEVC].client_set)) b_qp_enable =3D 1; } =20 @@ -731,7 +724,7 @@ int iris_set_min_qp(struct iris_inst *inst, enum platfo= rm_inst_fw_cap_type cap_i =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_32_PACKED, &hfi_val, sizeof(u32)); } @@ -742,32 +735,33 @@ int iris_set_max_qp(struct iris_inst *inst, enum plat= form_inst_fw_cap_type cap_i u32 i_qp_enable =3D 0, p_qp_enable =3D 0, b_qp_enable =3D 0; u32 max_qp_enable =3D 0, client_qp_enable; u32 i_frame_qp, p_frame_qp, b_frame_qp; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; u32 hfi_val; =20 if (inst->codec =3D=3D V4L2_PIX_FMT_H264) { - if (inst->fw_caps[MAX_FRAME_QP_H264].flags & CAP_FLAG_CLIENT_SET) + if (inst->fw_caps[MAX_FRAME_QP_H264].client_set) max_qp_enable =3D 1; if (max_qp_enable || - (inst->fw_caps[I_FRAME_MAX_QP_H264].flags & CAP_FLAG_CLIENT_SET)) + (inst->fw_caps[I_FRAME_MAX_QP_H264].client_set)) i_qp_enable =3D 1; if (max_qp_enable || - (inst->fw_caps[P_FRAME_MAX_QP_H264].flags & CAP_FLAG_CLIENT_SET)) + (inst->fw_caps[P_FRAME_MAX_QP_H264].client_set)) p_qp_enable =3D 1; if (max_qp_enable || - (inst->fw_caps[B_FRAME_MAX_QP_H264].flags & CAP_FLAG_CLIENT_SET)) + (inst->fw_caps[B_FRAME_MAX_QP_H264].client_set)) b_qp_enable =3D 1; } else { - if (inst->fw_caps[MAX_FRAME_QP_HEVC].flags & CAP_FLAG_CLIENT_SET) + if (inst->fw_caps[MAX_FRAME_QP_HEVC].client_set) max_qp_enable =3D 1; if (max_qp_enable || - (inst->fw_caps[I_FRAME_MAX_QP_HEVC].flags & CAP_FLAG_CLIENT_SET)) + (inst->fw_caps[I_FRAME_MAX_QP_HEVC].client_set)) i_qp_enable =3D 1; if (max_qp_enable || - (inst->fw_caps[P_FRAME_MAX_QP_HEVC].flags & CAP_FLAG_CLIENT_SET)) + (inst->fw_caps[P_FRAME_MAX_QP_HEVC].client_set)) p_qp_enable =3D 1; if (max_qp_enable || - (inst->fw_caps[B_FRAME_MAX_QP_HEVC].flags & CAP_FLAG_CLIENT_SET)) + (inst->fw_caps[B_FRAME_MAX_QP_HEVC].client_set)) b_qp_enable =3D 1; } =20 @@ -796,7 +790,7 @@ int iris_set_max_qp(struct iris_inst *inst, enum platfo= rm_inst_fw_cap_type cap_i =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_32_PACKED, &hfi_val, sizeof(u32)); } @@ -806,7 +800,8 @@ int iris_set_frame_qp(struct iris_inst *inst, enum plat= form_inst_fw_cap_type cap const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; u32 i_qp_enable =3D 0, p_qp_enable =3D 0, b_qp_enable =3D 0, client_qp_en= able; u32 i_frame_qp, p_frame_qp, b_frame_qp; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; struct vb2_queue *q; u32 hfi_val; =20 @@ -822,18 +817,18 @@ int iris_set_frame_qp(struct iris_inst *inst, enum pl= atform_inst_fw_cap_type cap b_qp_enable =3D 1; } else { if (inst->codec =3D=3D V4L2_PIX_FMT_H264) { - if (inst->fw_caps[I_FRAME_QP_H264].flags & CAP_FLAG_CLIENT_SET) + if (inst->fw_caps[I_FRAME_QP_H264].client_set) i_qp_enable =3D 1; - if (inst->fw_caps[P_FRAME_QP_H264].flags & CAP_FLAG_CLIENT_SET) + if (inst->fw_caps[P_FRAME_QP_H264].client_set) p_qp_enable =3D 1; - if (inst->fw_caps[B_FRAME_QP_H264].flags & CAP_FLAG_CLIENT_SET) + if (inst->fw_caps[B_FRAME_QP_H264].client_set) b_qp_enable =3D 1; } else { - if (inst->fw_caps[I_FRAME_QP_HEVC].flags & CAP_FLAG_CLIENT_SET) + if (inst->fw_caps[I_FRAME_QP_HEVC].client_set) i_qp_enable =3D 1; - if (inst->fw_caps[P_FRAME_QP_HEVC].flags & CAP_FLAG_CLIENT_SET) + if (inst->fw_caps[P_FRAME_QP_HEVC].client_set) p_qp_enable =3D 1; - if (inst->fw_caps[B_FRAME_QP_HEVC].flags & CAP_FLAG_CLIENT_SET) + if (inst->fw_caps[B_FRAME_QP_HEVC].client_set) b_qp_enable =3D 1; } } @@ -857,7 +852,7 @@ int iris_set_frame_qp(struct iris_inst *inst, enum plat= form_inst_fw_cap_type cap =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_32_PACKED, &hfi_val, sizeof(u32)); } @@ -866,7 +861,8 @@ int iris_set_qp_range(struct iris_inst *inst, enum plat= form_inst_fw_cap_type cap { const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; struct hfi_quantization_range_v2 range; - u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; + unsigned int cap_idx =3D inst->fw_caps[cap_id].idx; + u32 hfi_id =3D inst->inst_fw_caps[cap_idx].hfi_id; =20 if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) { range.min_qp.qp_packed =3D inst->fw_caps[MIN_FRAME_QP_HEVC].value; @@ -878,7 +874,7 @@ int iris_set_qp_range(struct iris_inst *inst, enum plat= form_inst_fw_cap_type cap =20 return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, - iris_get_port_info(inst, cap_id), + iris_get_port_info(inst, cap_idx), HFI_PAYLOAD_32_PACKED, &range, sizeof(range)); } @@ -886,7 +882,7 @@ int iris_set_qp_range(struct iris_inst *inst, enum plat= form_inst_fw_cap_type cap int iris_set_properties(struct iris_inst *inst, u32 plane) { const struct iris_hfi_command_ops *hfi_ops =3D inst->core->hfi_ops; - struct platform_inst_fw_cap *cap; + const struct platform_inst_fw_cap *cap; int ret; u32 i; =20 @@ -895,7 +891,9 @@ int iris_set_properties(struct iris_inst *inst, u32 pla= ne) return ret; =20 for (i =3D 1; i < INST_FW_CAP_MAX; i++) { - cap =3D &inst->fw_caps[i]; + unsigned int cap_idx =3D inst->fw_caps[i].idx; + + cap =3D &inst->inst_fw_caps[cap_idx]; if (!iris_valid_cap_id(cap->cap_id)) continue; =20 diff --git a/drivers/media/platform/qcom/iris/iris_instance.h b/drivers/med= ia/platform/qcom/iris/iris_instance.h index 5982d7adefeab80905478b32cddba7bd4651a691..39d74bef4d188abb919c372b752= 9d1d0773bd96a 100644 --- a/drivers/media/platform/qcom/iris/iris_instance.h +++ b/drivers/media/platform/qcom/iris/iris_instance.h @@ -82,7 +82,8 @@ struct iris_inst { struct completion completion; struct completion flush_completion; u32 flush_responses_pending; - struct platform_inst_fw_cap fw_caps[INST_FW_CAP_MAX]; + struct platform_inst_fw_cap_value fw_caps[INST_FW_CAP_MAX]; + const struct platform_inst_fw_cap *inst_fw_caps; struct iris_buffers buffers[BUF_TYPE_MAX]; u32 fw_min_count; enum iris_inst_state state; diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 5ffc1874e8c6362b1c650e912c230e9c4e3bd160..104ff38219e30e6d52476d44b54= 338c55ef2ca7b 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -148,7 +148,7 @@ enum platform_inst_fw_cap_flags { CAP_FLAG_MENU =3D BIT(1), CAP_FLAG_INPUT_PORT =3D BIT(2), CAP_FLAG_OUTPUT_PORT =3D BIT(3), - CAP_FLAG_CLIENT_SET =3D BIT(4), + // BIT(4) CAP_FLAG_BITMASK =3D BIT(5), CAP_FLAG_VOLATILE =3D BIT(6), }; @@ -165,6 +165,12 @@ struct platform_inst_fw_cap { enum platform_inst_fw_cap_type cap_id); }; =20 +struct platform_inst_fw_cap_value { + unsigned int idx; + s64 value; + bool client_set; +}; + struct bw_info { u32 mbs_per_sec; u32 bw_ddr; diff --git a/drivers/media/platform/qcom/iris/iris_vdec.c b/drivers/media/p= latform/qcom/iris/iris_vdec.c index ae13c3e1b426bfd81a7b46dc6c3ff5eb5c4860cb..72559497e81c30373711e9b1135= 82039f1fb5153 100644 --- a/drivers/media/platform/qcom/iris/iris_vdec.c +++ b/drivers/media/platform/qcom/iris/iris_vdec.c @@ -55,8 +55,9 @@ int iris_vdec_inst_init(struct iris_inst *inst) inst->buffers[BUF_OUTPUT].min_count =3D iris_vpu_buf_count(inst, BUF_OUTP= UT); inst->buffers[BUF_OUTPUT].size =3D f->fmt.pix_mp.plane_fmt[0].sizeimage; =20 - memcpy(&inst->fw_caps[0], &core->inst_fw_caps_dec[0], - INST_FW_CAP_MAX * sizeof(struct platform_inst_fw_cap)); + memcpy(inst->fw_caps, core->inst_fw_caps_dec, + sizeof(inst->fw_caps)); + inst->inst_fw_caps =3D core->iris_platform_data->inst_fw_caps_dec; =20 return iris_ctrls_init(inst); } diff --git a/drivers/media/platform/qcom/iris/iris_venc.c b/drivers/media/p= latform/qcom/iris/iris_venc.c index 099bd5ed4ae0294725860305254c4cad1ec88d7e..3d1d481f8048305ef9a9bf0cb43= 5ebca68563105 100644 --- a/drivers/media/platform/qcom/iris/iris_venc.c +++ b/drivers/media/platform/qcom/iris/iris_venc.c @@ -68,8 +68,9 @@ int iris_venc_inst_init(struct iris_inst *inst) inst->operating_rate =3D DEFAULT_FPS; inst->frame_rate =3D DEFAULT_FPS; =20 - memcpy(&inst->fw_caps[0], &core->inst_fw_caps_enc[0], - INST_FW_CAP_MAX * sizeof(struct platform_inst_fw_cap)); + memcpy(inst->fw_caps, core->inst_fw_caps_enc, + sizeof(inst->fw_caps)); + inst->inst_fw_caps =3D core->iris_platform_data->inst_fw_caps_enc; =20 return iris_ctrls_init(inst); } --=20 2.47.3 From nobody Fri Dec 19 13:50:01 2025 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 8D0342ED854 for ; Sun, 12 Oct 2025 16:23:48 +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=1760286235; cv=none; b=PYATVUgMQbzmn2aGjhN+5kW+bkiao6MFAE7RehfvydIOLQ5Ou/+sfJwI4NKF3sk+W6XQvf1qbaTyN+IEtcHfplfGG06Z8a6B0SvB+6YDM3P5YjKnyTymNAyrTbUIl2re1bq1YEoRmdmu1Skaa95+Iv1J/A9wibJi9RRzNt7GxCc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760286235; c=relaxed/simple; bh=/XlkIw+30ImRJ1vZ+oZYrGWc5+GeaSVpL8dMGuZakzQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=W+W3fTHM+JmWjeBnoxsrP7QfYsw5v5RNx37w8ZD9/6hfZmiKNbmE5IsajtmiFcE92NLvE1uwMw/RO7QW6nUoqdGuIhab+zBhP/4o3vi7BsRSVSk+LAI3xMwUDKYXbMlPwWig7hUUC0Z1jYlVV0loJ8eDuPLHIkgA2+YTc89sBPc= 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=Cee6ndNl; 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="Cee6ndNl" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59CFvPcO019337 for ; Sun, 12 Oct 2025 16:23:43 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= HUM+cJTKntoj0TSOmVPixlbOh3sBmLzYWf/L9aPHlHQ=; b=Cee6ndNlbE46aEUx COuCekN0tGIOIJlxm2t81ICnn5phyZOWfuYbh3sXi/lssTFF27qEjbWBXJQVZoqi kJrz37IQqGhFqv6XjBIARjE0ZQdWRc7Il6H9g9vSUN0I2GvQoMhZxyNsyiadmzT4 Th2BfmHQH4CiJZLaruThBkturxxCZ7DgjEY4YzZAUeNsVKCVgckf7apXLre2z9GM ys2xjUuKUJa2mJJJLpMIfm8JroFC0x8/PvpQyrGuxcJVFVtTAMobwIYkOr213mhi 0qrX+5Nz/rDMhoUavCLrZsWBlCUw9mZs91U/cc/ZUy7zqZogs3Y4gzT+sH2zybd7 ge4Gwg== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 49qfdk28ga-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sun, 12 Oct 2025 16:23:43 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-87ae13cc97cso2272301685a.1 for ; Sun, 12 Oct 2025 09:23:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760286222; x=1760891022; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HUM+cJTKntoj0TSOmVPixlbOh3sBmLzYWf/L9aPHlHQ=; b=NMU2nrTxD68hPvqiCwgmckJLRswhEY/9aYrA5awLcSNfdFyCwP0J9q0fpUtiixfspu BV8pp5yR+v/WyeogfZr6u5BX1EECa+IuP3WfiCkKLKgNqrENoM0aSuaTE9oQZk0vlhoW 1HaCnGzy1d2IxWOm6D9kwNbN1J/CXvkBBgOruDeffCLTEDJ7tUYcfHTmFuPuHXXjospa HLg3RGuGVejTGAaQIJ0OW6Mqaav0lcko49xntlCzrBM6FQ/cUwc7e4kqMpuLqsHFEuds WUZy9leAHg3ek9P1vNrrL88pw0gOkIAWqqn6glhJbbYODdUpCrnStpF5tOiSj8WTy6hE ZvHQ== X-Forwarded-Encrypted: i=1; AJvYcCXF+XQPot4zG0yFEXnWV8F1J4TEW4JsKGK31/WEVXyrUx4Ho6hrHLyQ9TjcQ0J2j2/LIFa6khOTPHAR8dQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxMVlXX3d4XuP1uuZR2rilfsGd3O6uoUebiNmBIsMJSd29vvEMe 8Tii13RZbea13Uz1kuSO1lyMzoPoV0WzKvmkDcKRPew8CV/62fnLGzsv0u69FLWOoFodZGRO8Ms fxqUKje9RBCuwW9AbbxwkaUlF9koDTuUmUkNZKb+57ExVjew2DjD6YDGS1gdvsIy3lk4= X-Gm-Gg: ASbGncvtSdn4yFdPzm31BCprsLkSCe6FuGJaNK3A9GVcoJlHO3IlBgdCwR/WDlfRf1i FQBOyRKmPe+xXDvQm+RKxzAb09Zw6jkTtkXlwXI5whRL0mVYBy2t63qiYFVx2QiFrUKErFKbBpD s/1zvtfxTBOiw/QSgwHdwxwZUQ0s9Eh1nVR/fH2P4ji2aSyyZ+y73ctHtuo2rqw5wPf9yMkNOxg BUX7Kp2DIgxx3CT6yQ01vXms1uWAGGVwp8TriAwZmOTEFjNNcyzODlrv9i8nw6+phMATR9ldJYH ewyFC/YUmNDK4woFS3HpGhESKa+1VC1PO+iV0I+42rQdLz0yyEaYxP6D+zcciWKwmBfkZreFXYg JyAaFim4MYKNN3AHj04Xw7m3E1Y3j3PGRhzr1b3JAjdj0Q9+8gnSU X-Received: by 2002:a05:620a:1aaa:b0:85a:1020:63d7 with SMTP id af79cd13be357-883521dbb61mr2434433185a.47.1760286222233; Sun, 12 Oct 2025 09:23:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHHBYXOzwONO9kVZyil/dw34TySyD+6pIngj6wc/pdezQPpAFjhCWme3kHRKMbraemUDA5eIQ== X-Received: by 2002:a05:620a:1aaa:b0:85a:1020:63d7 with SMTP id af79cd13be357-883521dbb61mr2434430785a.47.1760286221813; Sun, 12 Oct 2025 09:23:41 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-590881fe5besm3112637e87.50.2025.10.12.09.23.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 09:23:41 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 12 Oct 2025 19:23:31 +0300 Subject: [PATCH v2 4/8] media: iris: stop encoding PIPE value into fw_caps 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: quoted-printable Message-Id: <20251012-iris-sc7280-v2-4-d53a1a4056c3@oss.qualcomm.com> References: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> In-Reply-To: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Konrad Dybcio Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3598; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=/XlkIw+30ImRJ1vZ+oZYrGWc5+GeaSVpL8dMGuZakzQ=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBo69YE9WP9zEatolepYmFytvcnCgF8zYPcW5KSj l/0l/KKoamJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOvWBAAKCRCLPIo+Aiko 1RvCB/4oz2P50mg+GiHwrflyGtjswsPxBbXfZD+fvueM28prVD6xZPRaxCsYYscI8cW2XFH5Fp8 Qk4TD08z8gUQkbKE0BOv2L9L+9wV2oN9cRg7kuUBK0Sn2W76IDsxahpwLQnLHmbNA6xv2/l7uOt UOFllxnKSNEuHqpnDiFMNkQnrNuz68/W6j7GFW7dgDM0YXdmjw658QH77eH7xLKuLAmFZxdLB6o L/IrIgT9S58k3K8UsZvdAvp6yveeMXp7QGaAhFobR7Btvastt/f3g+pfIT9uxsX03GPEmeDuQ7y YFiWxQ4atVHD91uHaonWqye0IDQNbvsOrE4Ws2JqDJBRa3bl X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: W63UlV3RDu7kcCAmV1vjVzXHAeuXxi6d X-Authority-Analysis: v=2.4 cv=MrNfKmae c=1 sm=1 tr=0 ts=68ebd60f cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=EUspDBNiAAAA:8 a=Fn2TP4Vc3OsuT4lKjqUA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-GUID: W63UlV3RDu7kcCAmV1vjVzXHAeuXxi6d X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAxOCBTYWx0ZWRfX5jLeyLj5bWWf CCdntKN2/9XlLsNB/STUpZNZVhCebCKtz7qbq/Fvdq9sSU4JM4BcVO65xIHJ4StvltPUSBhgkXd V2mmGQnepGJXv/AAOzUzu6NukgKMi7KBDyLRgwvN7Vk1tvRf6yzmLrL9a11EOLknoa/H+18O2sS gojfeNx/Y4oc07e3iyWRv9vyGZNyISDLMAy3XS8YEy5xrjZ9VuNQrddNR3pF+R9A4n9t2bSVYDI n4uS+ai+RHCtqbtVZuou8xB63+hk9OnIgI9XNxZ+Z1+QKqM4w/yd1SGWYpgJgF7S6rqwJtZ1sTv 60RktBHU8Bq9OKCQyGXVTUDIMdVDbV+6L0qoquJIuTbIUY2WdoMn97qd3X9P9gOzhDJvB4PWUnr OXASQrTt7SC7y/QrdW38ITaNIS+H7Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-12_06,2025-10-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 clxscore=1015 adultscore=0 phishscore=0 impostorscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510110018 The value of the PIPE property depends on the number of pipes available on the platform and is frequently the only difference between several fw_caps. In order to reduce duplciation, use num_vpp_pipe from the iris_platform_data rather than hardcoding the value into the fw_cap. Reviewed-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_ctrls.c | 6 +++++- drivers/media/platform/qcom/iris/iris_platform_gen2.c | 4 ++-- drivers/media/platform/qcom/iris/iris_platform_qcs8300.h | 4 ++-- drivers/media/platform/qcom/iris/iris_platform_sm8250.c | 4 ++-- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_ctrls.c b/drivers/media/= platform/qcom/iris/iris_ctrls.c index 0e9adb3982a49cfd7cbe5110cfd5f573f0f7bb38..8db3fa222bdb92a7ffff3dfe62d= 33f16c0550757 100644 --- a/drivers/media/platform/qcom/iris/iris_ctrls.c +++ b/drivers/media/platform/qcom/iris/iris_ctrls.c @@ -318,7 +318,11 @@ void iris_session_init_caps(struct iris_core *core) continue; =20 core->inst_fw_caps_dec[cap_id].idx =3D i; - core->inst_fw_caps_dec[cap_id].value =3D caps[i].value; + if (cap_id =3D=3D PIPE) + core->inst_fw_caps_dec[cap_id].value =3D + core->iris_platform_data->num_vpp_pipe; + else + core->inst_fw_caps_dec[cap_id].value =3D caps[i].value; } =20 caps =3D core->iris_platform_data->inst_fw_caps_enc; diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen2.c b/driver= s/media/platform/qcom/iris/iris_platform_gen2.c index b444e816355624bca8248cce9da7adcd7caf6c5b..7ad03a800356ae9fb73bdbd6d09= 928d0b500cb3c 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_gen2.c +++ b/drivers/media/platform/qcom/iris/iris_platform_gen2.c @@ -161,9 +161,9 @@ static const struct platform_inst_fw_cap inst_fw_cap_sm= 8550_dec[] =3D { { .cap_id =3D PIPE, .min =3D PIPE_1, - .max =3D PIPE_4, + /* .max is set via platform data */ .step_or_mask =3D 1, - .value =3D PIPE_4, + /* .value is set via platform data */ .hfi_id =3D HFI_PROP_PIPE, .set =3D iris_set_pipe, }, diff --git a/drivers/media/platform/qcom/iris/iris_platform_qcs8300.h b/dri= vers/media/platform/qcom/iris/iris_platform_qcs8300.h index 87517361a1cf4b6fe53b8a1483188670df52c7e7..612526a938eed0554fc0da99e12= c26d22e04bb6e 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_qcs8300.h +++ b/drivers/media/platform/qcom/iris/iris_platform_qcs8300.h @@ -147,9 +147,9 @@ static const struct platform_inst_fw_cap inst_fw_cap_qc= s8300_dec[] =3D { { .cap_id =3D PIPE, .min =3D PIPE_1, - .max =3D PIPE_2, + /* .max is set via platform data */ .step_or_mask =3D 1, - .value =3D PIPE_2, + /* .value is set via platform data */ .hfi_id =3D HFI_PROP_PIPE, .set =3D iris_set_pipe, }, diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8250.c b/driv= ers/media/platform/qcom/iris/iris_platform_sm8250.c index 66a5bdd24d8a0e98b0554a019438bf4caa1dc43c..2b3b8bd00a6096acaae928318d9= 231847ec89855 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_sm8250.c +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8250.c @@ -21,9 +21,9 @@ static const struct platform_inst_fw_cap inst_fw_cap_sm82= 50_dec[] =3D { { .cap_id =3D PIPE, .min =3D PIPE_1, - .max =3D PIPE_4, + /* .max is set via platform data */ .step_or_mask =3D 1, - .value =3D PIPE_4, + /* .value is set via platform data */ .hfi_id =3D HFI_PROPERTY_PARAM_WORK_ROUTE, .set =3D iris_set_pipe, }, --=20 2.47.3 From nobody Fri Dec 19 13:50:01 2025 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 EDCC32ED17C for ; Sun, 12 Oct 2025 16:23:49 +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=1760286235; cv=none; b=V+PZOh2zv2OMhFeq5fEVo6mPV/CD3wPvzGGmqYSeY1wRMzpx49AKVh9bIFRr0yAWSfa0llOiCZcirYE3QlqIlRpLeC02L8Zxhq1qslPbqEiPkuy14P9ROWer5Je5HBrqrUsaoSPnBtf9J81n6S4YuMo3pkzVEn4Fm5F9OHSMl38= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760286235; c=relaxed/simple; bh=tF2xZKEy1KLBLxslUFvlaXuedQWx0pXD/cGg0v/pPOY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CnW9XqxioZCX9k1tc3eOZQ0AbZoeEOXGqGqOnyazhl/+E8iCb+2vgGpYDE9PYsT8rhIlpgsjxdkDPsxVK4KOBYWadVptO8UX/KKRHuA0Bf+eGOEOnc0klXGi9RnyG7QsaIQxzVvfixQuwDAnNgsuIno9dyAjHZ+6qy0yooGwUU8= 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=H1xUeaOR; 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="H1xUeaOR" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59CCsCfS021163 for ; Sun, 12 Oct 2025 16:23:45 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= FugFEB47eB3mkByoTboJv9KwXWC9l7irzEYYgxy7X7c=; b=H1xUeaORP4V20Dpc 6rK69Fv0OENi30eriFGCPF7ME0Ah3CdDlRMDYl+waVnXcdmXwJJkrpD7F0CPGbuN 5LjxpIYInHn+SZMgPqrB/neiIsd2506LOf0QMG+Eok6kRt7I4ALeLVFBPv0mPQP9 RckvF+bH3fx+VMKZ7UeeG+zKedFnH1UtlnOwaItQ5WtIVhQfiTEyov5KMz/XF3cT W+V9QNLSdjJJdNO+rPWLoD6yF45vLqpGjeVD7fXLziUQCWYS5REfgnLBc9sEw4/P 4iAxRPs/9SIwmVUuDzjCyunoanRAF+L46/1MJTbrm6iS9KHOB7AqxQF4o3zA/GCn ZZYL0Q== 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 49qff0j8bx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sun, 12 Oct 2025 16:23:45 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8217df6d44cso1752872285a.2 for ; Sun, 12 Oct 2025 09:23:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760286224; x=1760891024; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FugFEB47eB3mkByoTboJv9KwXWC9l7irzEYYgxy7X7c=; b=kdga64XfCURbhNNgK1JEYXHIDXTWHQLcSbQvWPOI6JzRmV0nWnIggNyFbLDRZ/wWio ZHditsY+okOyxfKfVQRtz/0azC+7r6J4M5E8rf0oh1UwoXF1dVg6ih6xR+YKV0YRjFKI WaJIw9YgfPtmsjVsH+bJWwBFN4ar5ByDZfIGtDWnwMJIKR7ntCkH6uMfxBIYmYNKGn9h rp00kGgWoK9vxKSs5h94bhjJKi4Oi8xtHhJoIXTfplIpKWVCqZK3aGdER0P+JMOX7hk5 wHasfFpfSUNJiZnzualr9GNq6qws0GcAXKTw7q6AV3C0j/W15zztr5anWFKTLzw1XEnx q0hg== X-Forwarded-Encrypted: i=1; AJvYcCWwWj4XWN56sJ6ZeMDVAr41AhnQMzOu8/Uw8Uf40j/dAlbj0DIX893QHZWhda6StrqTUbjQr456uwUhd2c=@vger.kernel.org X-Gm-Message-State: AOJu0YyXD1rLw4ijVUvJPut/fO/BZsuTT23nFYHT5uTDeROGQ2prap2l qgzU1kCvqS2shQ1/R1NQ2nnYILvPdtP9bS7jiph4utXslxk78QBu4fU9AYr3PV591Rz3XBT5qBf iK/GActLwBd1x/tYSEbruu/pM2JB1L//WFJbyqK24cgIhqeGwsR3dPbouL4Qz/hkz/hs= X-Gm-Gg: ASbGncsPvyq3zKNR56+rNFVd3Ca1njEyuj95lkgWs4jLdzdeTSCxHlJSqUavhhceGJR 8xJZn5+x1BhsouTwxYR51KDpFYVhzfh57cEZKbKKzb0ZmKAYA3HcoJQMODyEbIdkS190KOHocFU zidMiTdBE0jTfk3COmiiuRD4thgNlesEMvslYu5t9Bhitz62DERHCv5M1Zau4k7XvVzH717LEax muBofTYisTU3z0pFBg7v64MwK6nKN/GxEv8+z7rU/A4qsJsiqK3ZulE1JteVDS3jG8Qf/hgqNnN rdFUNQ2dDZcSvdnctrLh0RgnbslDAkoFi/BRFy0PWCj5Z6wk4gv++XQBYOaoD+r6TnERx6NYZdS YfkrDkZmTdTuFrfuAM80ZDCFnEwT1772EKtJ9qLKfNbI5J4u9yLZo X-Received: by 2002:a05:620a:3949:b0:866:1327:82e9 with SMTP id af79cd13be357-8834ff8de3cmr2369630285a.16.1760286223600; Sun, 12 Oct 2025 09:23:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFUdgR02KN+HPdLNpZCzQLvCTNtL2DJ8PVRxyEo6wNPKUHhRndJY/+uwU3zyck9BVzwQEeYdw== X-Received: by 2002:a05:620a:3949:b0:866:1327:82e9 with SMTP id af79cd13be357-8834ff8de3cmr2369626885a.16.1760286223010; Sun, 12 Oct 2025 09:23:43 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-590881fe5besm3112637e87.50.2025.10.12.09.23.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 09:23:42 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 12 Oct 2025 19:23:32 +0300 Subject: [PATCH v2 5/8] media: iris: remove duplicateion between generic gen2 data and qcs8300 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: quoted-printable Message-Id: <20251012-iris-sc7280-v2-5-d53a1a4056c3@oss.qualcomm.com> References: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> In-Reply-To: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Konrad Dybcio Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=18927; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=tF2xZKEy1KLBLxslUFvlaXuedQWx0pXD/cGg0v/pPOY=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBo69YEOUKvbmPadfqa5VyPQVJ9HWuzm8DcMyBoK V4IXsier8CJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOvWBAAKCRCLPIo+Aiko 1YdxB/sGJk+sAgU2t2r3vmtydkR+99Fja7qSvkvvqjo9Jo7X391Zs5z3zkOWhpDvCOA/R8+2dE6 b1XThuqJQVxxaf7z4OrsXabu5uUADnPGChZRgImeeexlsRdXwv+pZMvBEiYwpNnJYpXq02jJrDJ 9JIMqwPJXDx6FjRVujYa9QBGtqvMBlA3QCDHrtRf21jP9uyES3+xGPb+jYTfRTjy7yCFydTpcQj PtIPQDmgiYCaHgSS0bS1Fe8KpbiqNxhyhNKnxunRI2eOYexoq0nuynMGAW1ui0fh/3cVsodsEcw XmM1xXIBNm7v3MTVsNh8JT+CvQnoKJ5OAKSscuykGZ8T5bIq X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAxOCBTYWx0ZWRfX08ZgAJ93vB0F wqbDMY8UDfmOBOR2RHP+eFgK8dJY+6/u1c7aUJ48uVcQglm9AMMQRjqavNSoLt7WuJGHTh40HBh mTlwJcSM6I0+OM72uvyBr7o+iibSEEUl+Y8u14IhiQ/PJg2Q7IacuZZBn5NcoWFPCZIL8vOgOYb NZQDahJAU7RPsy2xPsKzuGHfacXHxxqjMwzPNge1VMG4OjUUNZrKuZJRrLB2hhSWPTlz5/ZvhCm gmKqSwm7TjzgLjwqnsmbn1DWCbCVxxfMEC5bDB4R0IGpWY4ylymz+4iAwCGgR+t8B8BRb8RgBRk GlvgWSFtBOINo97HOC7hahqA9Bl1gvHBXQpWB1PxBoVqw+5EJcbKtgX3E5erRXmR/XEsFXalJCs cK7ea60n8dmsf/LkIMAg8K/9HVvjBw== X-Proofpoint-GUID: DjgrTbSNfxF9bzC8u0jYCuMcCqFlldI_ X-Authority-Analysis: v=2.4 cv=PriergM3 c=1 sm=1 tr=0 ts=68ebd611 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=EUspDBNiAAAA:8 a=8lhtx-rUCDsU0NfLSlYA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-ORIG-GUID: DjgrTbSNfxF9bzC8u0jYCuMcCqFlldI_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-12_06,2025-10-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 clxscore=1015 bulkscore=0 phishscore=0 lowpriorityscore=0 spamscore=0 suspectscore=0 impostorscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510110018 Now as we have removed PIPE value from inst_fw_caps_dec there should be no difference between inst_fw_caps of QCS8300 and SM8550+. Drop the QCS8300-specific tables and use generic one instead. The differences between QCS8300 and SM8550 data comes from a non-conflict merge of commit d22037f3fd33 ("media: iris: Set platform capabilities to firmware for encoder video device") (which added .set callbacks), and commit 6bdfa3f947a7 ("media: iris: Add platform-specific capabilities for encoder video device") (which added QCS8300 data, but not the callbacks). Signed-off-by: Dmitry Baryshkov --- .../media/platform/qcom/iris/iris_platform_gen2.c | 9 +- .../platform/qcom/iris/iris_platform_qcs8300.h | 534 +----------------= ---- 2 files changed, 8 insertions(+), 535 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen2.c b/driver= s/media/platform/qcom/iris/iris_platform_gen2.c index 7ad03a800356ae9fb73bdbd6d09928d0b500cb3c..25d761cacbbb5d45b02b8868c0f= 698d47ed1e758 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_gen2.c +++ b/drivers/media/platform/qcom/iris/iris_platform_gen2.c @@ -996,7 +996,6 @@ const struct iris_platform_data sm8750_data =3D { /* * Shares most of SM8550 data except: * - inst_caps to platform_inst_cap_qcs8300 - * - inst_fw_caps to inst_fw_cap_qcs8300 */ const struct iris_platform_data qcs8300_data =3D { .get_instance =3D iris_hfi_gen2_get_instance, @@ -1022,10 +1021,10 @@ const struct iris_platform_data qcs8300_data =3D { .fwname =3D "qcom/vpu/vpu30_p4_s6.mbn", .pas_id =3D IRIS_PAS_ID, .inst_caps =3D &platform_inst_cap_qcs8300, - .inst_fw_caps_dec =3D inst_fw_cap_qcs8300_dec, - .inst_fw_caps_dec_size =3D ARRAY_SIZE(inst_fw_cap_qcs8300_dec), - .inst_fw_caps_enc =3D inst_fw_cap_qcs8300_enc, - .inst_fw_caps_enc_size =3D ARRAY_SIZE(inst_fw_cap_qcs8300_enc), + .inst_fw_caps_dec =3D inst_fw_cap_sm8550_dec, + .inst_fw_caps_dec_size =3D ARRAY_SIZE(inst_fw_cap_sm8550_dec), + .inst_fw_caps_enc =3D inst_fw_cap_sm8550_enc, + .inst_fw_caps_enc_size =3D ARRAY_SIZE(inst_fw_cap_sm8550_enc), .tz_cp_config_data =3D &tz_cp_config_sm8550, .core_arch =3D VIDEO_ARCH_LX, .hw_response_timeout =3D HW_RESPONSE_TIMEOUT_VALUE, diff --git a/drivers/media/platform/qcom/iris/iris_platform_qcs8300.h b/dri= vers/media/platform/qcom/iris/iris_platform_qcs8300.h index 612526a938eed0554fc0da99e12c26d22e04bb6e..a97a9f932b75a88535df66160df= c934220919ed5 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_qcs8300.h +++ b/drivers/media/platform/qcom/iris/iris_platform_qcs8300.h @@ -3,537 +3,9 @@ * Copyright (c) 2022-2025 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 -#define BITRATE_MAX 245000000 =20 -static const struct platform_inst_fw_cap inst_fw_cap_qcs8300_dec[] =3D { - { - .cap_id =3D PROFILE_H264, - .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, - .max =3D V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) | - BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) | - BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) | - BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH) | - BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH), - .value =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, - .hfi_id =3D HFI_PROP_PROFILE, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - .set =3D iris_set_u32_enum, - }, - { - .cap_id =3D PROFILE_HEVC, - .min =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, - .max =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) | - BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE), - .value =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, - .hfi_id =3D HFI_PROP_PROFILE, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - .set =3D iris_set_u32_enum, - }, - { - .cap_id =3D PROFILE_VP9, - .min =3D V4L2_MPEG_VIDEO_VP9_PROFILE_0, - .max =3D V4L2_MPEG_VIDEO_VP9_PROFILE_2, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_0) | - BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_2), - .value =3D V4L2_MPEG_VIDEO_VP9_PROFILE_0, - .hfi_id =3D HFI_PROP_PROFILE, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - .set =3D iris_set_u32_enum, - }, - { - .cap_id =3D LEVEL_H264, - .min =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, - .max =3D V4L2_MPEG_VIDEO_H264_LEVEL_6_2, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_0) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_1) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_2) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_6_0) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_6_1) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_6_2), - .value =3D V4L2_MPEG_VIDEO_H264_LEVEL_6_1, - .hfi_id =3D HFI_PROP_LEVEL, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - .set =3D iris_set_u32_enum, - }, - { - .cap_id =3D LEVEL_HEVC, - .min =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, - .max =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_6) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2), - .value =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1, - .hfi_id =3D HFI_PROP_LEVEL, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - .set =3D iris_set_u32_enum, - }, - { - .cap_id =3D LEVEL_VP9, - .min =3D V4L2_MPEG_VIDEO_VP9_LEVEL_1_0, - .max =3D V4L2_MPEG_VIDEO_VP9_LEVEL_6_0, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_0) | - BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_1) | - BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_0) | - BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_1) | - BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_0) | - BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_1) | - BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_0) | - BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_1) | - BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_5_0) | - BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_5_1) | - BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_5_2) | - BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_6_0), - .value =3D V4L2_MPEG_VIDEO_VP9_LEVEL_6_0, - .hfi_id =3D HFI_PROP_LEVEL, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - .set =3D iris_set_u32_enum, - }, - { - .cap_id =3D TIER, - .min =3D V4L2_MPEG_VIDEO_HEVC_TIER_MAIN, - .max =3D V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN) | - BIT(V4L2_MPEG_VIDEO_HEVC_TIER_HIGH), - .value =3D V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, - .hfi_id =3D HFI_PROP_TIER, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - .set =3D iris_set_u32_enum, - }, - { - .cap_id =3D INPUT_BUF_HOST_MAX_COUNT, - .min =3D DEFAULT_MAX_HOST_BUF_COUNT, - .max =3D DEFAULT_MAX_HOST_BURST_BUF_COUNT, - .step_or_mask =3D 1, - .value =3D DEFAULT_MAX_HOST_BUF_COUNT, - .hfi_id =3D HFI_PROP_BUFFER_HOST_MAX_COUNT, - .flags =3D CAP_FLAG_INPUT_PORT, - .set =3D iris_set_u32, - }, - { - .cap_id =3D STAGE, - .min =3D STAGE_1, - .max =3D STAGE_2, - .step_or_mask =3D 1, - .value =3D STAGE_2, - .hfi_id =3D HFI_PROP_STAGE, - .set =3D iris_set_stage, - }, - { - .cap_id =3D PIPE, - .min =3D PIPE_1, - /* .max is set via platform data */ - .step_or_mask =3D 1, - /* .value is set via platform data */ - .hfi_id =3D HFI_PROP_PIPE, - .set =3D iris_set_pipe, - }, - { - .cap_id =3D POC, - .min =3D 0, - .max =3D 2, - .step_or_mask =3D 1, - .value =3D 1, - .hfi_id =3D HFI_PROP_PIC_ORDER_CNT_TYPE, - }, - { - .cap_id =3D CODED_FRAMES, - .min =3D CODED_FRAMES_PROGRESSIVE, - .max =3D CODED_FRAMES_PROGRESSIVE, - .step_or_mask =3D 0, - .value =3D CODED_FRAMES_PROGRESSIVE, - .hfi_id =3D HFI_PROP_CODED_FRAMES, - }, - { - .cap_id =3D BIT_DEPTH, - .min =3D BIT_DEPTH_8, - .max =3D BIT_DEPTH_8, - .step_or_mask =3D 1, - .value =3D BIT_DEPTH_8, - .hfi_id =3D HFI_PROP_LUMA_CHROMA_BIT_DEPTH, - }, - { - .cap_id =3D RAP_FRAME, - .min =3D 0, - .max =3D 1, - .step_or_mask =3D 1, - .value =3D 1, - .hfi_id =3D HFI_PROP_DEC_START_FROM_RAP_FRAME, - .flags =3D CAP_FLAG_INPUT_PORT, - .set =3D iris_set_u32, - }, -}; - -static const struct platform_inst_fw_cap inst_fw_cap_qcs8300_enc[] =3D { - { - .cap_id =3D PROFILE_H264, - .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, - .max =3D V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) | - BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH) | - BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) | - BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) | - BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH), - .value =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, - .hfi_id =3D HFI_PROP_PROFILE, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - }, - { - .cap_id =3D PROFILE_HEVC, - .min =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, - .max =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) | - BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE) | - BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10), - .value =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, - .hfi_id =3D HFI_PROP_PROFILE, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - }, - { - .cap_id =3D LEVEL_H264, - .min =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, - .max =3D V4L2_MPEG_VIDEO_H264_LEVEL_6_0, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_0) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_1) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_2) | - BIT(V4L2_MPEG_VIDEO_H264_LEVEL_6_0), - .value =3D V4L2_MPEG_VIDEO_H264_LEVEL_5_0, - .hfi_id =3D HFI_PROP_LEVEL, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - }, - { - .cap_id =3D LEVEL_HEVC, - .min =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, - .max =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_6) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1) | - BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2), - .value =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_5, - .hfi_id =3D HFI_PROP_LEVEL, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - }, - { - .cap_id =3D STAGE, - .min =3D STAGE_1, - .max =3D STAGE_2, - .step_or_mask =3D 1, - .value =3D STAGE_2, - .hfi_id =3D HFI_PROP_STAGE, - }, - { - .cap_id =3D HEADER_MODE, - .min =3D V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, - .max =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) | - BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME), - .value =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, - .hfi_id =3D HFI_PROP_SEQ_HEADER_MODE, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - }, - { - .cap_id =3D PREPEND_SPSPPS_TO_IDR, - .min =3D 0, - .max =3D 1, - .step_or_mask =3D 1, - .value =3D 0, - }, - { - .cap_id =3D BITRATE, - .min =3D 1, - .max =3D BITRATE_MAX, - .step_or_mask =3D 1, - .value =3D BITRATE_DEFAULT, - .hfi_id =3D HFI_PROP_TOTAL_BITRATE, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | - CAP_FLAG_DYNAMIC_ALLOWED, - }, - { - .cap_id =3D BITRATE_PEAK, - .min =3D 1, - .max =3D BITRATE_MAX, - .step_or_mask =3D 1, - .value =3D BITRATE_DEFAULT, - .hfi_id =3D HFI_PROP_TOTAL_PEAK_BITRATE, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | - CAP_FLAG_DYNAMIC_ALLOWED, - }, - { - .cap_id =3D BITRATE_MODE, - .min =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, - .max =3D V4L2_MPEG_VIDEO_BITRATE_MODE_CBR, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) | - BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR), - .value =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, - .hfi_id =3D HFI_PROP_RATE_CONTROL, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - }, - { - .cap_id =3D FRAME_SKIP_MODE, - .min =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, - .max =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) | - BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT) | - BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT), - .value =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - }, - { - .cap_id =3D FRAME_RC_ENABLE, - .min =3D 0, - .max =3D 1, - .step_or_mask =3D 1, - .value =3D 1, - }, - { - .cap_id =3D GOP_SIZE, - .min =3D 0, - .max =3D INT_MAX, - .step_or_mask =3D 1, - .value =3D 2 * DEFAULT_FPS - 1, - .hfi_id =3D HFI_PROP_MAX_GOP_FRAMES, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | - CAP_FLAG_DYNAMIC_ALLOWED, - }, - { - .cap_id =3D ENTROPY_MODE, - .min =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC, - .max =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC, - .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) | - BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC), - .value =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC, - .hfi_id =3D HFI_PROP_CABAC_SESSION, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, - }, - { - .cap_id =3D MIN_FRAME_QP_H264, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MIN_QP_8BIT, - .hfi_id =3D HFI_PROP_MIN_QP_PACKED, - .flags =3D CAP_FLAG_OUTPUT_PORT, - }, - { - .cap_id =3D MIN_FRAME_QP_HEVC, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MIN_QP_8BIT, - .hfi_id =3D HFI_PROP_MIN_QP_PACKED, - .flags =3D CAP_FLAG_OUTPUT_PORT, - }, - { - .cap_id =3D MAX_FRAME_QP_H264, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MAX_QP, - .hfi_id =3D HFI_PROP_MAX_QP_PACKED, - .flags =3D CAP_FLAG_OUTPUT_PORT, - }, - { - .cap_id =3D MAX_FRAME_QP_HEVC, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MAX_QP, - .hfi_id =3D HFI_PROP_MAX_QP_PACKED, - .flags =3D CAP_FLAG_OUTPUT_PORT, - }, - { - .cap_id =3D I_FRAME_MIN_QP_H264, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MIN_QP_8BIT, - }, - { - .cap_id =3D I_FRAME_MIN_QP_HEVC, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MIN_QP_8BIT, - }, - { - .cap_id =3D P_FRAME_MIN_QP_H264, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MIN_QP_8BIT, - }, - { - .cap_id =3D P_FRAME_MIN_QP_HEVC, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MIN_QP_8BIT, - }, - { - .cap_id =3D B_FRAME_MIN_QP_H264, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MIN_QP_8BIT, - }, - { - .cap_id =3D B_FRAME_MIN_QP_HEVC, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MIN_QP_8BIT, - }, - { - .cap_id =3D I_FRAME_MAX_QP_H264, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MAX_QP, - }, - { - .cap_id =3D I_FRAME_MAX_QP_HEVC, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MAX_QP, - }, - { - .cap_id =3D P_FRAME_MAX_QP_H264, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MAX_QP, - }, - { - .cap_id =3D P_FRAME_MAX_QP_HEVC, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MAX_QP, - }, - { - .cap_id =3D B_FRAME_MAX_QP_H264, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MAX_QP, - }, - { - .cap_id =3D B_FRAME_MAX_QP_HEVC, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D MAX_QP, - }, - { - .cap_id =3D I_FRAME_QP_H264, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D DEFAULT_QP, - .hfi_id =3D HFI_PROP_QP_PACKED, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | - CAP_FLAG_DYNAMIC_ALLOWED, - }, - { - .cap_id =3D I_FRAME_QP_HEVC, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D DEFAULT_QP, - .hfi_id =3D HFI_PROP_QP_PACKED, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | - CAP_FLAG_DYNAMIC_ALLOWED, - }, - { - .cap_id =3D P_FRAME_QP_H264, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D DEFAULT_QP, - .hfi_id =3D HFI_PROP_QP_PACKED, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | - CAP_FLAG_DYNAMIC_ALLOWED, - }, - { - .cap_id =3D P_FRAME_QP_HEVC, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D DEFAULT_QP, - .hfi_id =3D HFI_PROP_QP_PACKED, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | - CAP_FLAG_DYNAMIC_ALLOWED, - }, - { - .cap_id =3D B_FRAME_QP_H264, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D DEFAULT_QP, - .hfi_id =3D HFI_PROP_QP_PACKED, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | - CAP_FLAG_DYNAMIC_ALLOWED, - }, - { - .cap_id =3D B_FRAME_QP_HEVC, - .min =3D MIN_QP_8BIT, - .max =3D MAX_QP, - .step_or_mask =3D 1, - .value =3D DEFAULT_QP, - .hfi_id =3D HFI_PROP_QP_PACKED, - .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | - CAP_FLAG_DYNAMIC_ALLOWED, - }, -}; +#ifndef __IRIS_PLATFORM_QCS8300_H__ +#define __IRIS_PLATFORM_QCS8300_H__ =20 static struct platform_inst_caps platform_inst_cap_qcs8300 =3D { .min_frame_width =3D 96, @@ -548,3 +20,5 @@ static struct platform_inst_caps platform_inst_cap_qcs83= 00 =3D { .max_frame_rate =3D MAXIMUM_FPS, .max_operating_rate =3D MAXIMUM_FPS, }; + +#endif --=20 2.47.3 From nobody Fri Dec 19 13:50:01 2025 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 58D962ED853 for ; Sun, 12 Oct 2025 16:23:52 +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=1760286241; cv=none; b=RBsxR6Asnd9WUDyeMRFWshND62Krbwz+P+KtSX7pCX28dGgttQgGaCpRA5bmAy+GSL6WShBSYRtW7gP+9VHz1K61bg8Q1/1OYjQ5XV/oJ/YG1MbtTi1Jvb3V2/9S8lV+NKK2QzDikitD3lxaVzFmKANG9Y428VdUxYKABwXM4vc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760286241; c=relaxed/simple; bh=wbVaP1lpyBvdUoAnAqQoSQ3X0Ci5SY+Yd6B95zwrfnU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=D6bAI2uUVlDoQhVZ45N5OOQSV0bjac1SHJDwBTLpu8gG/z/wRSjmzpJCx33kgTY02m5QnMEE+CLniyIWOZe7O8bGQGQz4ROo+e6jUCJO8oLlAwt+zYNDpAVWwKpNrB2qCnGAWww4cNEJ0glonTjCE97wlacM9xHJycIqxIgiAPw= 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=Z9m59G7q; 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="Z9m59G7q" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59CDj2hx018156 for ; Sun, 12 Oct 2025 16:23:48 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= Zdk3MYWDo75fxIgwdOMJLGKZRJXuA9oW4IWL2hMM1tU=; b=Z9m59G7qzaJ8io8K vVPeHct/cnIkybqd/zhMZTGNQTv3Z9lAEL8nsZf2k17KRFzeKrWAMJKOSFdLkWg4 tGcDNwhWd5/4EjRCWY1yuNOHMXG8OjxRQLbmfLIr7bDAtyIzLwhGEw7kWUzCaI2U 3VnPVn0pPlMNyu+0WmzYqKJPd+LLtzf30rfrtKllCpi6+HOv7JzdhSfUr/LklHDb mW4oV0ITFS5cRCLq/yLkgjbZQ8UFNHZyqXY7w909HpZO8API1utDEujOHfiL6xn+ niiOnu6buW5u6COrRpIyZLNsPv/xze/qTHU7i0bGqvvddzak60M80s7iUH+j3Lte xv0QDw== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 49qfd8t8wx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sun, 12 Oct 2025 16:23:48 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-8589058c59bso2956793485a.2 for ; Sun, 12 Oct 2025 09:23:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760286227; x=1760891027; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Zdk3MYWDo75fxIgwdOMJLGKZRJXuA9oW4IWL2hMM1tU=; b=VTKoMGwBB96ZL/zXcB9GQBavuSb6BVXLCYd+bNhWGGIOfO45sinh46MzEJOl3kZPIS smKEwgO465Ug00ubcGufNY29JxGIulievxUtNn3SX/MtYuBrEzwYaH8WzJTVSFe4RJBR XhocIC+KYFnjmyn0tGWAotCYU2nZ0yFwZqx9kIlDTK+8EWvn6qln6w5V709ug22PRQM7 B/ZvFl8jpTkGehfqvmpDG63nI7ZcUnqg1L+GPML2YPyiAzyO6XkcOngFNl2TgtHClnrx AMiDGFyGzgNA48sV8Jda5uB5ySWSNSD/keMBugZQkC0t85VTf6j7iL8WKnA74UxNK6US buow== X-Forwarded-Encrypted: i=1; AJvYcCXq3sEK1t51ScEwoakby1ZUhkKLvoHbqrUJcAAWYZ9LUHTfSrF5Z3UJ2pp8vqoEcGhPGFBWV4T/xvOgnsk=@vger.kernel.org X-Gm-Message-State: AOJu0Yx+f6lOzl8zaNkrxGNHq0INHekHBMKoJwqVUyeaApj3gtQDeHjM vx0Zjl2vxS70wY5XBNuP7Q265S275m61IJZV+l/3csrhXMX8N0pNp95Q56pheSdGP+JFkqe7j/g MjIWiBBKf4luNAQgxpNA81dqqOiZuFIfEr+ZLI28HT5bcfWEojPV1Jpm0hKRcAjOhP8M= X-Gm-Gg: ASbGncsITGiHq61SuEwDr89MArUAMBO67SkKqpiNdbJTRlLWljft0d+iyZhJpJGpIIZ fm+zKz+aHtKjEINm7WH4IwLFosWaUQ+/und+7fqHQzaPy57LCgU3L2+9Wzy06OVlyQCndLAfqE0 F0ycdL/BoKBuLHBDlsU69brn7JHpeD7jLW4OFjZ1PRos90Aq/0T1U9LTkKgUZHpLt6bRugZee/h IzOFxpDCXYzPZFW+C3nR5yCwzcit7XlY/lf3o6UYGJMp1oFuHrdSZQgok5EPuRBMa/NEJN/4GKJ 4uFhjVfJ/830fecioJWqZg3i4SUjKaMjSVEqZqLObIWY6g65J5HwtY+UGVQfcvDCkx4OslgC82U qO+JQ7xKTXYO11VowdQ7YMPA65R/2ZwyNgdWYaAWSn+87zfetRMmN X-Received: by 2002:a05:622a:1341:b0:4b7:a308:b5b9 with SMTP id d75a77b69052e-4e6ead76899mr269865111cf.46.1760286226996; Sun, 12 Oct 2025 09:23:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFZGDGwXcAJdBLHhlMucpkDABkvYlwnDKAhf0zQvF8JrxPpKUF6XtsrKMmZucxWkSK6izIzcg== X-Received: by 2002:a05:622a:1341:b0:4b7:a308:b5b9 with SMTP id d75a77b69052e-4e6ead76899mr269864691cf.46.1760286226358; Sun, 12 Oct 2025 09:23:46 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-590881fe5besm3112637e87.50.2025.10.12.09.23.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 09:23:44 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 12 Oct 2025 19:23:33 +0300 Subject: [PATCH v2 6/8] media: iris: rename sm8250 platform file to gen1 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: quoted-printable Message-Id: <20251012-iris-sc7280-v2-6-d53a1a4056c3@oss.qualcomm.com> References: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> In-Reply-To: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Konrad Dybcio Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1430; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=wbVaP1lpyBvdUoAnAqQoSQ3X0Ci5SY+Yd6B95zwrfnU=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBo69YErcPp7M+PY9ZwW4nUC3BdbqrQ9iiCVFAnY HcOOnZUQhCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOvWBAAKCRCLPIo+Aiko 1dPhB/9ZLwZkjd610uZ3E3iD6QYmbp4taWwj+TpZX3g/a+mSgumXyMxTTJH3Kd4Zp+9o/66M9ps wwaPD7r9Vd7672fTlakmq1t5JeTpr8dfDF56ofVS9dYox4ZFFN/06JwinHG8poGDtcT+Q9AZ6xg DusCgJv2UoXrfzwjqvlU3HhyQgtTwdbxZVeIFAyOgEAYNOGf+IGJDf+3f5XdtrdZxCE7r00v74q JrMKLuy/tDewGGya6gfGlmYiHB5q8v8ER1aBEFWg2MJmBFyPzb4AZ87+BQixUhEREy2d6UvIEEo IyiH7aD7mWRb7kvL3T4JSmo/rc7ozDxALpxcznCwq27hfARZ X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: --656fmRc06SHBmUpwT6PaZImos5SYT0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAxOCBTYWx0ZWRfX4MfWPPC2r+Re OYLFhpI0NcYWIld2AXeq2Ra7T8r70EMPkt/sv/yMfE+qrplvn/TqHJviFbfdQTAmpd1HneL38LS d9YSLF1yAY1EFPEkyRW0M+9Ra2mZ+QPzM4xkaVHFyp4Sxxr8cQd5yepfKWlc3F3C1ktVLfhYLgu OpqJ47CMjIqJYbPZKmXIH+ap7aL9WwLBFEfcfScSkzt0xKyRuKFydpSYw0/FuvLpHEuoCSvocIx QdL3R00ZQpRde65cKYd0PLLl0a/QbgyHr1WHnwTFo1XOHm2QD5PNDM8YJlVsso7Lx47WiuMY9rY VxnY+PAT9se3TFYbt0zAcZpC1tRIz47cYXgB76ddLWvG4sb55PPlOoqaGf6KqdDRETyor820X1/ Brq62DsgTLUBFEOHXM9l+YT8dkctOw== X-Proofpoint-GUID: --656fmRc06SHBmUpwT6PaZImos5SYT0 X-Authority-Analysis: v=2.4 cv=PdTyRyhd c=1 sm=1 tr=0 ts=68ebd614 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=EUspDBNiAAAA:8 a=OYuIXoeRUKmE5Kzn4ZAA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-12_06,2025-10-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 bulkscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510110018 In preparation to adding more Gen1 platforms, which will share a significant amount of data, rename the SM8250 platform file to iris_platform_gen1.c. Reviewed-by: Konrad Dybcio Reviewed-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/Makefile | = 2 +- .../platform/qcom/iris/{iris_platform_sm8250.c =3D> iris_platform_gen1.c} = | 0 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/plat= form/qcom/iris/Makefile index 13270cd6d899852dded675b33d37f5919b81ccba..fad3be044e5fe783db697a592b4= f09de4d42d0d2 100644 --- a/drivers/media/platform/qcom/iris/Makefile +++ b/drivers/media/platform/qcom/iris/Makefile @@ -26,7 +26,7 @@ qcom-iris-objs +=3D iris_buffer.o \ iris_vpu_common.o \ =20 ifeq ($(CONFIG_VIDEO_QCOM_VENUS),) -qcom-iris-objs +=3D iris_platform_sm8250.o +qcom-iris-objs +=3D iris_platform_gen1.o endif =20 obj-$(CONFIG_VIDEO_QCOM_IRIS) +=3D qcom-iris.o diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8250.c b/driv= ers/media/platform/qcom/iris/iris_platform_gen1.c similarity index 100% rename from drivers/media/platform/qcom/iris/iris_platform_sm8250.c rename to drivers/media/platform/qcom/iris/iris_platform_gen1.c --=20 2.47.3 From nobody Fri Dec 19 13:50:01 2025 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 3AA18296BB9 for ; Sun, 12 Oct 2025 16:23:52 +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=1760286240; cv=none; b=eBI9ryC3uC5iLmH/Y5g/1gQ71xkqB1TlyEVCq6UeGfspI1leW2MURBiDWxlhEcgtbShZ3Nfl7csk+rhIgmePsq9MRZ7hHMgqUkOJhRV/37CQ/hWYaORm89v85prAhuv4FdrrAWOBUxmMUxvSKb73hRWgk3mybWvAEtmIq5Ge8Bg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760286240; c=relaxed/simple; bh=Vp/ykzgKhfedpHBRbN7YilOuy87M0W8I3NU/Zs/Wn5c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IyBvNHVhBJjISxexQ5QalEoFxyy8GrG5i/ExpGUA7Qw0vxo7cBnEOEdIhK/TUbqiZRvNcy0U8xyWvByKDVcCiT2FSkwt/8K+XbPaelbqCipCZr2OBoHu19Zj1qj/dsndpuE/9UcIadc9VGWto57wlUoiLAGAOheu9VFzK8TNURM= 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=YNA4/nzR; 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="YNA4/nzR" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59CBiY61024462 for ; Sun, 12 Oct 2025 16:23:49 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= ctamzewqOXOp6USHp3dTDRf2YyPP8/Km6zYRt+SqkZ8=; b=YNA4/nzR5NPe+Sow p5oK8Yo9leJYuLMLo5mcexbucgc32kV2eFd62cNnxgDIylC7DjgKbDGBg56o3O4Q JeB6OWKEhcsXXtH92QWN+b1GTBEBcjE8TL5gLr7og+ILFyl/ty5oqSybLSIOeAl9 05GRG4HGi6SNT+xcwhGylMIoacQFjYv7QuaPk1RuQXQbocC2fz/Sv1DKHjHMKfle J43rX8zPTl3jjNmL0Y6CwmRxMHxc1DWIlSFtCKTFumPWVFFefTBXeev8G+LJpol6 j9HHyYNZiXdm5mwBdufHb60+Fn2IEOoDwsw5IzAnPGzt7idiKa6DmgG8CjYRm0EC nBq7/w== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 49qfa829a8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sun, 12 Oct 2025 16:23:49 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-859b89cd3f2so2032295385a.1 for ; Sun, 12 Oct 2025 09:23:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760286228; x=1760891028; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ctamzewqOXOp6USHp3dTDRf2YyPP8/Km6zYRt+SqkZ8=; b=Jo3G5FU7CD7PUacr0KQKDelpkLHwWkb5oZ2AdR3fQ9aKnUHmbw8Uc1oqufXo727MyQ jDfO3mqeCM5TIvMPr0RkCGzaqtoGXad25AfHCu2JeeXVM1YiZpz5YcmdyZoF6l8SVQCY 6Uhj2I91a9dm3R0roJXxSy+l6ZZNvjYf+OXNdl/nmoaqeiYF5CYC6rGSw6CaP4CuuEBt MFURE+AsSnSZUYywnw5V5vRbR+BFdKcr3bDiBzmEftOiPjZlvwrp+qnusC8Bkuhdnhb4 8iuWK0CKtsT8oSFdwD/GT9w7nlTVo3TJM10gbLBFgY+H6JRvAU9AUuxGZBqIlyfYs4IR fDiA== X-Forwarded-Encrypted: i=1; AJvYcCWvkDvfFvf2WeD4qbvs/5D2wO5910JozotOrNcPXTuMOSd/mU7TapRNaEwBh/ttYbkt/BtHk9adbX0G8SU=@vger.kernel.org X-Gm-Message-State: AOJu0YwgWAZY/EroUTw10G7fOtd9AeiN9wJAdaZqK73mq7w6R9Gr8RwE 4O8gB6njLPTlTrpf/5zrsZ3yEDjoSPFl/mwtFh6MIlu6drSqeVpnHszRBFdBHLN3NVlstaKxfiV PKcXLl3Ur5weh/gyNpu+SUUIkWfsabt6UjKAeTpaxAIzuRIPdUgzg2LsF4mwLzgFBVpw= X-Gm-Gg: ASbGncs+BpnxI9HkBkXvCRPG6Mh1FOsKPKp7GEQpBPo2xih4nfSw7Hc8VFdSgvgSX+/ waQ/RxyAKH3ib4ugPyVWDHkPVuEgJBwyINceL499eKMMZak4BJoXGxklOZ0wlpnmSWrEYPanqts 5YEInu8kee904e+aFsXWKJ8LSuRKIEVONjy/Giq8xaM5krIK/QGkmQFgzqUeNedwKW9CEFamgcS 2ciSX+R5bs2UKNuIIrJ5liL0p+m8/I4thb8vuFGcxJgQ/8q/hU+QjAV1o0Qo7ya0wCVABSgKIbv B3pEazQ4juZHOtCgwgBDtMomf8Lgg/EYg0hM9tA4jY3kfXP5E+y4MAbUTpNiisqh70xwpSUN8d3 y0Y1fxrEtndCJroIQOEXv+YJGaqDlvX4va6NPkF32p2kEFvROAqFL X-Received: by 2002:a05:620a:4589:b0:84a:af34:5b7f with SMTP id af79cd13be357-88352d9a115mr2697231885a.75.1760286228125; Sun, 12 Oct 2025 09:23:48 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHCU9EriCEgZLwanEy7iBG53kjY57KtFtqY+aPx1kKvbLXWf/wFW8ji95TnuuFJmrOAa/fpkg== X-Received: by 2002:a05:620a:4589:b0:84a:af34:5b7f with SMTP id af79cd13be357-88352d9a115mr2697229285a.75.1760286227620; Sun, 12 Oct 2025 09:23:47 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-590881fe5besm3112637e87.50.2025.10.12.09.23.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 09:23:46 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 12 Oct 2025 19:23:34 +0300 Subject: [PATCH v2 7/8] media: iris: move common register definitions to the header 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: quoted-printable Message-Id: <20251012-iris-sc7280-v2-7-d53a1a4056c3@oss.qualcomm.com> References: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> In-Reply-To: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Konrad Dybcio Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Bryan O'Donoghue X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=8281; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=Vp/ykzgKhfedpHBRbN7YilOuy87M0W8I3NU/Zs/Wn5c=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ8brayxvwg6nRppZMZw8xdu9ujimT2Su7ukqoYVSEw3CH +S7/zXrZDRmYWDkYpAVU2TxKWiZGrMpOezDjqn1MINYmUCmMHBxCsBEpKXZ/5npTHp1rqzpw1nO n2yZfZa2kw/MmbyonmP9usg1svF6y2bOCDVsutl9sIFl4najT502blECYqaPJz3NfPzF6NiqBcW vneXn2Zsbi72Oa7zA9lH8pHmAdMSF6GO7/OJ6vneG9rD7MHwt71pjIJLdUvjM69iH62Z3HDNFZF 4U9MT8Up2WwXzaK39xws9PPNY23zXWck+84yDUw+SWkXn6Q0fjyaz5b8Mv+B3YHBmpnfF3Svyn7 pJYHc0XjK82XCw53Xns6jlm3qqHv/omKqSmb3837fnD7NDIhN/pW3reXLf7/S6AvZFre+5kpaCq NmvLuyvlMq5WxunymDzK5Itrqev99P6ttyTPoVX7GEX6AQ== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: VRKScK2l-bxYxQTKXLYNzJwelYQ-h9sp X-Proofpoint-ORIG-GUID: VRKScK2l-bxYxQTKXLYNzJwelYQ-h9sp X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAxNyBTYWx0ZWRfXzMV+DrETRHPe TQSgULDzi5icamKjYSv/yJkljUsPN7PG0kdNi123GIjnTRN22J75eUs9yttxM6kZ8s2uMxxH9eM 7+J7FUmtR2GJMFweR0grTBfqACu3jHqmdImsEvkgn61ERtkAyk1y/yikME5ezGIDqaJOvR2Ksu1 skYQUang3JKre3zMeSc7lbWOzFSFRzInxNwVifcyOvjYPftc6kTFJPawycZ9gQ1xdDEi/LOQbW3 D9UzGUt64FXLmWZiKUYX7JXn6k29LN7gmP4mHh+2iP8tLkgfGEN/Zqyx7aIVxi2m8Y8O1YiZEv8 Q6EK9fBCfdDdQamBv+Yk9WeHCLvB65AlVmdULHWlOB+WD0WcC/J2yjqGAoT/q79ZBitOwXcNxC0 OYOWb/JV8lytPflgJAJmJHIEOjHKiA== X-Authority-Analysis: v=2.4 cv=JLw2csKb c=1 sm=1 tr=0 ts=68ebd615 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=qUPVcWiRufo_Kb4lI7EA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-12_06,2025-10-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 adultscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510110017 Simplify adding new platforms by moving common registers definitions from VPU 3.x and "common" file to the header with other register defines. Reviewed-by: Bryan O'Donoghue Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_vpu3x.c | 35 -------------- drivers/media/platform/qcom/iris/iris_vpu_common.c | 43 ----------------- .../platform/qcom/iris/iris_vpu_register_defines.h | 56 ++++++++++++++++++= ++++ 3 files changed, 56 insertions(+), 78 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_vpu3x.c b/drivers/media/= platform/qcom/iris/iris_vpu3x.c index 339776a0b4672e246848c3a6a260eb83c7da6a60..78aede9ac497abafc0545647c34= a53c63c595f72 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu3x.c @@ -11,48 +11,13 @@ #include "iris_vpu_common.h" #include "iris_vpu_register_defines.h" =20 -#define WRAPPER_TZ_BASE_OFFS 0x000C0000 -#define AON_BASE_OFFS 0x000E0000 #define AON_MVP_NOC_RESET 0x0001F000 =20 -#define WRAPPER_DEBUG_BRIDGE_LPI_CONTROL (WRAPPER_BASE_OFFS + 0x54) -#define WRAPPER_DEBUG_BRIDGE_LPI_STATUS (WRAPPER_BASE_OFFS + 0x58) -#define WRAPPER_IRIS_CPU_NOC_LPI_CONTROL (WRAPPER_BASE_OFFS + 0x5C) -#define REQ_POWER_DOWN_PREP BIT(0) -#define WRAPPER_IRIS_CPU_NOC_LPI_STATUS (WRAPPER_BASE_OFFS + 0x60) -#define NOC_LPI_STATUS_DONE BIT(0) /* Indicates the NOC handshake is com= plete */ -#define NOC_LPI_STATUS_DENY BIT(1) /* Indicates the NOC handshake is den= ied */ -#define NOC_LPI_STATUS_ACTIVE BIT(2) /* Indicates the NOC is active */ -#define WRAPPER_CORE_CLOCK_CONFIG (WRAPPER_BASE_OFFS + 0x88) -#define CORE_CLK_RUN 0x0 -/* VPU v3.5 */ -#define WRAPPER_IRIS_VCODEC_VPU_WRAPPER_SPARE_0 (WRAPPER_BASE_OFFS + 0x78) - -#define WRAPPER_TZ_CTL_AXI_CLOCK_CONFIG (WRAPPER_TZ_BASE_OFFS + 0x14) -#define CTL_AXI_CLK_HALT BIT(0) -#define CTL_CLK_HALT BIT(1) - -#define WRAPPER_TZ_QNS4PDXFIFO_RESET (WRAPPER_TZ_BASE_OFFS + 0x18) -#define RESET_HIGH BIT(0) - -#define CPU_CS_AHB_BRIDGE_SYNC_RESET (CPU_CS_BASE_OFFS + 0x160) -#define CORE_BRIDGE_SW_RESET BIT(0) -#define CORE_BRIDGE_HW_RESET_DISABLE BIT(1) - -#define CPU_CS_X2RPMH (CPU_CS_BASE_OFFS + 0x168) -#define MSK_SIGNAL_FROM_TENSILICA BIT(0) -#define MSK_CORE_POWER_ON BIT(1) - #define AON_WRAPPER_MVP_NOC_RESET_REQ (AON_MVP_NOC_RESET + 0x000) #define VIDEO_NOC_RESET_REQ (BIT(0) | BIT(1)) =20 #define AON_WRAPPER_MVP_NOC_RESET_ACK (AON_MVP_NOC_RESET + 0x004) =20 -#define VCODEC_SS_IDLE_STATUSN (VCODEC_BASE_OFFS + 0x70) - -#define AON_WRAPPER_MVP_NOC_LPI_CONTROL (AON_BASE_OFFS) -#define AON_WRAPPER_MVP_NOC_LPI_STATUS (AON_BASE_OFFS + 0x4) - #define AON_WRAPPER_MVP_NOC_CORE_SW_RESET (AON_BASE_OFFS + 0x18) #define SW_RESET BIT(0) #define AON_WRAPPER_MVP_NOC_CORE_CLK_CONTROL (AON_BASE_OFFS + 0x20) diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index bb98950e018fadf69ac4f41b3037f7fd6ac33c5b..2d6548e47d47967c1c110489cb8= 088130fb625fd 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -11,13 +11,6 @@ #include "iris_vpu_common.h" #include "iris_vpu_register_defines.h" =20 -#define WRAPPER_TZ_BASE_OFFS 0x000C0000 -#define AON_BASE_OFFS 0x000E0000 - -#define CPU_IC_BASE_OFFS (CPU_BASE_OFFS) - -#define CPU_CS_A2HSOFTINTCLR (CPU_CS_BASE_OFFS + 0x1C) -#define CLEAR_XTENSA2HOST_INTR BIT(0) =20 #define CTRL_INIT (CPU_CS_BASE_OFFS + 0x48) #define CTRL_STATUS (CPU_CS_BASE_OFFS + 0x4C) @@ -35,42 +28,6 @@ #define UC_REGION_ADDR (CPU_CS_BASE_OFFS + 0x64) #define UC_REGION_SIZE (CPU_CS_BASE_OFFS + 0x68) =20 -#define CPU_CS_H2XSOFTINTEN (CPU_CS_BASE_OFFS + 0x148) -#define HOST2XTENSA_INTR_ENABLE BIT(0) - -#define CPU_CS_X2RPMH (CPU_CS_BASE_OFFS + 0x168) -#define MSK_SIGNAL_FROM_TENSILICA BIT(0) -#define MSK_CORE_POWER_ON BIT(1) - -#define CPU_IC_SOFTINT (CPU_IC_BASE_OFFS + 0x150) -#define CPU_IC_SOFTINT_H2A_SHFT 0x0 - -#define WRAPPER_INTR_STATUS (WRAPPER_BASE_OFFS + 0x0C) -#define WRAPPER_INTR_STATUS_A2HWD_BMSK BIT(3) -#define WRAPPER_INTR_STATUS_A2H_BMSK BIT(2) - -#define WRAPPER_INTR_MASK (WRAPPER_BASE_OFFS + 0x10) -#define WRAPPER_INTR_MASK_A2HWD_BMSK BIT(3) -#define WRAPPER_INTR_MASK_A2HCPU_BMSK BIT(2) - -#define WRAPPER_DEBUG_BRIDGE_LPI_CONTROL (WRAPPER_BASE_OFFS + 0x54) -#define WRAPPER_DEBUG_BRIDGE_LPI_STATUS (WRAPPER_BASE_OFFS + 0x58) -#define WRAPPER_IRIS_CPU_NOC_LPI_CONTROL (WRAPPER_BASE_OFFS + 0x5C) -#define WRAPPER_IRIS_CPU_NOC_LPI_STATUS (WRAPPER_BASE_OFFS + 0x60) - -#define WRAPPER_TZ_CPU_STATUS (WRAPPER_TZ_BASE_OFFS + 0x10) -#define WRAPPER_TZ_CTL_AXI_CLOCK_CONFIG (WRAPPER_TZ_BASE_OFFS + 0x14) -#define CTL_AXI_CLK_HALT BIT(0) -#define CTL_CLK_HALT BIT(1) - -#define WRAPPER_TZ_QNS4PDXFIFO_RESET (WRAPPER_TZ_BASE_OFFS + 0x18) -#define RESET_HIGH BIT(0) - -#define AON_WRAPPER_MVP_NOC_LPI_CONTROL (AON_BASE_OFFS) -#define REQ_POWER_DOWN_PREP BIT(0) - -#define AON_WRAPPER_MVP_NOC_LPI_STATUS (AON_BASE_OFFS + 0x4) - static void iris_vpu_interrupt_init(struct iris_core *core) { u32 mask_val; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_register_defines.h b= /drivers/media/platform/qcom/iris/iris_vpu_register_defines.h index fe8a39e5e5a3fc68dc3a706ffdba07a5558163cf..9955367a9f8179d2e364c41dcfe= 8ad445a0a13f4 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_register_defines.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_register_defines.h @@ -9,9 +9,65 @@ #define VCODEC_BASE_OFFS 0x00000000 #define CPU_BASE_OFFS 0x000A0000 #define WRAPPER_BASE_OFFS 0x000B0000 +#define WRAPPER_TZ_BASE_OFFS 0x000C0000 +#define AON_BASE_OFFS 0x000E0000 + +#define VCODEC_SS_IDLE_STATUSN (VCODEC_BASE_OFFS + 0x70) =20 #define CPU_CS_BASE_OFFS (CPU_BASE_OFFS) =20 +#define CPU_CS_A2HSOFTINTCLR (CPU_CS_BASE_OFFS + 0x1C) +#define CLEAR_XTENSA2HOST_INTR BIT(0) + +#define CPU_CS_H2XSOFTINTEN (CPU_CS_BASE_OFFS + 0x148) +#define HOST2XTENSA_INTR_ENABLE BIT(0) + +#define CPU_IC_BASE_OFFS (CPU_BASE_OFFS) +#define CPU_IC_SOFTINT (CPU_IC_BASE_OFFS + 0x150) +#define CPU_IC_SOFTINT_H2A_SHFT 0x0 + +#define CPU_CS_AHB_BRIDGE_SYNC_RESET (CPU_CS_BASE_OFFS + 0x160) +#define CORE_BRIDGE_SW_RESET BIT(0) +#define CORE_BRIDGE_HW_RESET_DISABLE BIT(1) + +#define CPU_CS_X2RPMH (CPU_CS_BASE_OFFS + 0x168) +#define MSK_SIGNAL_FROM_TENSILICA BIT(0) +#define MSK_CORE_POWER_ON BIT(1) + +#define WRAPPER_INTR_STATUS (WRAPPER_BASE_OFFS + 0x0C) +#define WRAPPER_INTR_STATUS_A2HWD_BMSK BIT(3) +#define WRAPPER_INTR_STATUS_A2H_BMSK BIT(2) + +#define WRAPPER_INTR_MASK (WRAPPER_BASE_OFFS + 0x10) +#define WRAPPER_INTR_MASK_A2HWD_BMSK BIT(3) +#define WRAPPER_INTR_MASK_A2HCPU_BMSK BIT(2) + #define WRAPPER_CORE_POWER_STATUS (WRAPPER_BASE_OFFS + 0x80) +#define WRAPPER_DEBUG_BRIDGE_LPI_CONTROL (WRAPPER_BASE_OFFS + 0x54) +#define WRAPPER_DEBUG_BRIDGE_LPI_STATUS (WRAPPER_BASE_OFFS + 0x58) +#define WRAPPER_IRIS_CPU_NOC_LPI_CONTROL (WRAPPER_BASE_OFFS + 0x5C) +#define REQ_POWER_DOWN_PREP BIT(0) + +#define WRAPPER_IRIS_CPU_NOC_LPI_STATUS (WRAPPER_BASE_OFFS + 0x60) +#define NOC_LPI_STATUS_DONE BIT(0) /* Indicates the NOC handshake is com= plete */ +#define NOC_LPI_STATUS_DENY BIT(1) /* Indicates the NOC handshake is den= ied */ +#define NOC_LPI_STATUS_ACTIVE BIT(2) /* Indicates the NOC is active */ + +#define WRAPPER_IRIS_VCODEC_VPU_WRAPPER_SPARE_0 (WRAPPER_BASE_OFFS + 0x78) + +#define WRAPPER_CORE_CLOCK_CONFIG (WRAPPER_BASE_OFFS + 0x88) +#define CORE_CLK_RUN 0x0 + +#define WRAPPER_TZ_CPU_STATUS (WRAPPER_TZ_BASE_OFFS + 0x10) + +#define WRAPPER_TZ_CTL_AXI_CLOCK_CONFIG (WRAPPER_TZ_BASE_OFFS + 0x14) +#define CTL_AXI_CLK_HALT BIT(0) +#define CTL_CLK_HALT BIT(1) + +#define WRAPPER_TZ_QNS4PDXFIFO_RESET (WRAPPER_TZ_BASE_OFFS + 0x18) +#define RESET_HIGH BIT(0) + +#define AON_WRAPPER_MVP_NOC_LPI_CONTROL (AON_BASE_OFFS) +#define AON_WRAPPER_MVP_NOC_LPI_STATUS (AON_BASE_OFFS + 0x4) =20 #endif --=20 2.47.3 From nobody Fri Dec 19 13:50:01 2025 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 1265F2EC55C for ; Sun, 12 Oct 2025 16:23:55 +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=1760286247; cv=none; b=QijtITiiQ9cE+kP8GhoAn2qCpvVVBxfoiw49nxnsLUAnIL6qbYcB93XzMhp87UFUvBURSwHtzQLHdI0YxKPnyOfcxLLaPbWqMqf7go8zUg6Mqzg5rIZ4T1qsKbDAN3thfNaxdA2oTaMkndgvSyXmydIUFAHi/XNnafZ51BPuZZY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760286247; c=relaxed/simple; bh=2L4dIKk6ZY/FJ9FIa3pJYnA0sfqUGLbJJFlrdXMdCOU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bCFoMQQa6Rc9wO/JvlPVv5iPgaWQGXJh0t1XwFHDJUDry4YnSKHG+thyZu4gPxy7UFzAykfbNOLO9oUnpbZ5EATg/KC5CBxD2HKJgpHrx/i96S4Udke3A608UG3Ov2cakRB5DSCbYLHUgHen1PG6t7IoyM8SMjTNRDFIrKn0+ew= 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=GwXl+PEc; 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="GwXl+PEc" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59CFlIMi004393 for ; Sun, 12 Oct 2025 16:23:51 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= tWabY8gftkzC9JrOZ4Ek/4oJxm6WnV5RvqX/3ANhZGs=; b=GwXl+PEcEJAhO/22 6IN7Qz/2hKct4OuaVhg7qdrfuUHsyOjxtJVpp5J/QzRUorBm++8TbyhWMbio1wS0 auXhSpOJ3Y5EIGGGFu0hmyhs6ySX2Vk07jYmHgRxQwtH4Vf50sv7BQ7ZEnRmtM9q hpSAmFn+NlqbBwnBxRsxZCzNX11YvTSNmOzXiky64q/ppzZR29zR0xFl8GgGXnFZ K09guX3vKc5ivPeqzQhbHHTWJhWYZ3Z9jrV/7RCwnsSJiRZyh9LK0/Ddv1zP9jPt I28uqf+XSkUHP0mKGVLT60Z0diG/b82mAkGllcN5qRW5bwvJkopq6aVo5H5vWsSy z1Xj8g== 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 49qgdft5m3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sun, 12 Oct 2025 16:23:51 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-857003e911fso2044368785a.3 for ; Sun, 12 Oct 2025 09:23:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760286229; x=1760891029; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tWabY8gftkzC9JrOZ4Ek/4oJxm6WnV5RvqX/3ANhZGs=; b=YS0CeIM4z4v9f0TSxR2qT7AjwPhNreMMgySIK1U/AAs2bpaA+0L846yuj4kzrwmoon M+q/xvAS30PFxaO7kgu9Exc8j44+vHy6Zu0o2T893j3zZ2/qdKYZPqtB2G8BIdCwRPCv YHAs5wjMOMYaYNQeQZJA8H1JyUcPVAsN9vzFuN9Ciyq4B2E6UbJI6ocAiGZTutoGUdvK KJLdBHX8cYDza++lKcQfDZE1MvIMbqDj92cHzM7NvgfK9/934JglMOsYGa5u35DxMeeF vnuLt/ZWEBMecMKZ1pSHB26bofrQv1YeybZZrSiPeuedX4Io42nu9zEUE+vyCeaJR8wC siqQ== X-Forwarded-Encrypted: i=1; AJvYcCWrwiX11uYTsHI5Csw/vtoEEHwTU7Tip0c9sr//wLpSitgxkNfDWRZMVVZ5BPiBDamdlFZQNmShmQTBHaE=@vger.kernel.org X-Gm-Message-State: AOJu0Ywy2eT0B7DSh6hFGHhhfiYNORfIoePcqUZMdd3hn3XWWHdTD+BO K4Euaphb5X5HSt3mNnYAXmJh2xUmwwb7Lng7LteJNz5aBVZ74ytWw4Aw8DI9CZnauj4CQEQSF9t nl4HDVK8Iiui+fMvEd2SrTLS8HM+4DRk/QN60CJqKGZkLNJxkgG65ME6cbMBB1ZLVc/I= X-Gm-Gg: ASbGncsYi6Po+A3URqg5ATc+GhcuJbaQMiQwcFfaloCudyuADArYMOlAhuH2UeDeCPr 07dlAmlyUidw81dtOxXBBNQchobPi0Mx/GRVdZfEYNooo0EwOJdjAsqVdDIUX06dlurWfB3zC8B YacgwcKz9Wx9c4CUxSYCNFTBpO+vmXKO7d6Bwxqzksj6x3+VghV8IwLDwem+OBEifcZ74uy1fX2 IutUNMyIMAvJqdpUwdpD7CoL9bbawQuwmAPH/84lrpTqrfkA1sTBZgmjii6jIJHFOig5oXwknaU IujBMp7x1sB7Xn9cTVSBrWYrGg8ERwIZyqx98Ik6bet3apDPdipZrTUMdM7KL8zahYF1YE/zBBR R22Dsiqk8aX1jRGcjQC/WgsGb5sMI65PdP74aE0Qal40cFrl3eXms X-Received: by 2002:a05:620a:f0e:b0:850:222a:817d with SMTP id af79cd13be357-88350f578camr2390384485a.37.1760286229334; Sun, 12 Oct 2025 09:23:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFgdeRrEX0yLdgYYQ8HSehyJ8d5qNPjcgLygT+LVvxqCHcYKm3OAktK/rV05nQTDX1XGIfGnQ== X-Received: by 2002:a05:620a:f0e:b0:850:222a:817d with SMTP id af79cd13be357-88350f578camr2390380885a.37.1760286228799; Sun, 12 Oct 2025 09:23:48 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-590881fe5besm3112637e87.50.2025.10.12.09.23.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 09:23:48 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 12 Oct 2025 19:23:35 +0300 Subject: [PATCH v2 8/8] media: iris: enable support for SC7280 platform 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: quoted-printable Message-Id: <20251012-iris-sc7280-v2-8-d53a1a4056c3@oss.qualcomm.com> References: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> In-Reply-To: <20251012-iris-sc7280-v2-0-d53a1a4056c3@oss.qualcomm.com> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Konrad Dybcio Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=10303; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=2L4dIKk6ZY/FJ9FIa3pJYnA0sfqUGLbJJFlrdXMdCOU=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBo69YE1I7MKbUtgytMB1QBmrtLRktoKRifhEjEB hT6H7bWLs+JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOvWBAAKCRCLPIo+Aiko 1cQYB/4iJ2DhE/kLf6VGQH3aW6IkH2RKhsXPvmDjbY5NFy/80lvgn/RC5hqiQVxYLI671mqxe8a fmJVubPZOEtJJEWgHgpB10EdGplr7Gtl5Jzh/Vj4VAsHqFwu/A6R6/3pmH5l/XYPOH2DyZ+B3kE Hs+DnUNL6I3d+8QJ3Yt5JQ0mLnjlijhBV45mpBu65aC/16UyVosaBE/Mq5qlhFElG5Bbk+8Rl6D /GzmgIzKTlHchVtSBmaq9URtvFVcnpbNTxg6T3D22pFsS26YrZkE86QfWeAmHX/XrLnstQybRQ/ 4tcNqz6xeOTtdt7iWFsAF5uM3KspbtEaQg4VNzmpmaAQcbRu X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAyNSBTYWx0ZWRfX6onOKQaqbnp9 UjU9XeF+arYacxNRQi3rMPj1q+9qgZPkLIzKPs1HCLUWFFMoEQ8v1ynTutHY3WppalRwSWhcOTu NOlWjvSu6b/frdX5kh/GoHo16J91eQ4EHt2kochMluhFQZKoxwRG2nxkXtCbgHgQyGW4655hIsk xFYd8G8t3LWrNameMvoL8GucSX97DH7laH157uvVIxn43T5GHiBGHey9xWo7WjtpBnhCajqO+wx 94HH/GmYbx6Mwlg1wHsuZMSqdNBQ4PoWfRlLrtM2mpQibP389nj9mjxieqIqHB0kfc0+GD9UNCh qeKQs+qi6OZOFISeym3mort43uFTCncSPV0fohoI8B82EzBZjKBDMahiy//bwjddaEH1fZPXNJW GdZVc09uiv9Az99ry+KS5I6FqpK0EA== X-Proofpoint-GUID: IivFGh9GsIrLqX72SmI9blsi0CbeOD7B X-Proofpoint-ORIG-GUID: IivFGh9GsIrLqX72SmI9blsi0CbeOD7B X-Authority-Analysis: v=2.4 cv=J4ynLQnS c=1 sm=1 tr=0 ts=68ebd617 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=EUspDBNiAAAA:8 a=5iJXzg3vIJBiWc8SjKUA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-12_06,2025-10-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 bulkscore=0 suspectscore=0 clxscore=1015 phishscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510110025 As a part of migrating code from the old Venus driver to the new Iris one, add support for the SC7280 platform. It is very similar to SM8250, but it (currently) uses no reset controls (there is an optional GCC-generated reset, it will be added later) and no AON registers region. Extend the VPU ops to support optional clocks and skip the AON shutdown for this platform. Signed-off-by: Dmitry Baryshkov --- .../platform/qcom/iris/iris_platform_common.h | 4 ++ .../media/platform/qcom/iris/iris_platform_gen1.c | 52 ++++++++++++++++++= ++++ drivers/media/platform/qcom/iris/iris_probe.c | 4 ++ drivers/media/platform/qcom/iris/iris_resources.c | 2 +- drivers/media/platform/qcom/iris/iris_vpu2.c | 6 +++ drivers/media/platform/qcom/iris/iris_vpu_common.c | 34 ++++++++++---- 6 files changed, 92 insertions(+), 10 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 104ff38219e30e6d52476d44b54338c55ef2ca7b..43cd6bf94ab600e53f983c9e11b= 63dc0a572e6ad 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -42,6 +42,7 @@ enum pipe_type { }; =20 extern const struct iris_platform_data qcs8300_data; +extern const struct iris_platform_data sc7280_data; extern const struct iris_platform_data sm8250_data; extern const struct iris_platform_data sm8550_data; extern const struct iris_platform_data sm8650_data; @@ -50,7 +51,9 @@ extern const struct iris_platform_data sm8750_data; enum platform_clk_type { IRIS_AXI_CLK, /* AXI0 in case of platforms with multiple AXI clocks */ IRIS_CTRL_CLK, + IRIS_AHB_CLK, IRIS_HW_CLK, + IRIS_HW_AXI_CLK, IRIS_AXI1_CLK, IRIS_CTRL_FREERUN_CLK, IRIS_HW_FREERUN_CLK, @@ -230,6 +233,7 @@ struct iris_platform_data { u32 hw_response_timeout; struct ubwc_config_data *ubwc_config; u32 num_vpp_pipe; + bool no_aon; u32 max_session_count; /* max number of macroblocks per frame supported */ u32 max_core_mbpf; diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen1.c b/driver= s/media/platform/qcom/iris/iris_platform_gen1.c index 2b3b8bd00a6096acaae928318d9231847ec89855..828864902501aef072d60935fe5= 7019a70dcb9f4 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_gen1.c +++ b/drivers/media/platform/qcom/iris/iris_platform_gen1.c @@ -12,6 +12,8 @@ #include "iris_vpu_buffer.h" #include "iris_vpu_common.h" =20 +#include "iris_platform_sc7280.h" + #define BITRATE_MIN 32000 #define BITRATE_MAX 160000000 #define BITRATE_PEAK_DEFAULT (BITRATE_DEFAULT * 2) @@ -364,3 +366,53 @@ const struct iris_platform_data sm8250_data =3D { .enc_ip_int_buf_tbl =3D sm8250_enc_ip_int_buf_tbl, .enc_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl), }; + +const struct iris_platform_data sc7280_data =3D { + .get_instance =3D iris_hfi_gen1_get_instance, + .init_hfi_command_ops =3D &iris_hfi_gen1_command_ops_init, + .init_hfi_response_ops =3D iris_hfi_gen1_response_ops_init, + .get_vpu_buffer_size =3D iris_vpu_buf_size, + .vpu_ops =3D &iris_vpu2_ops, + .set_preset_registers =3D iris_set_sm8250_preset_registers, + .icc_tbl =3D sm8250_icc_table, + .icc_tbl_size =3D ARRAY_SIZE(sm8250_icc_table), + .bw_tbl_dec =3D sc7280_bw_table_dec, + .bw_tbl_dec_size =3D ARRAY_SIZE(sc7280_bw_table_dec), + .pmdomain_tbl =3D sm8250_pmdomain_table, + .pmdomain_tbl_size =3D ARRAY_SIZE(sm8250_pmdomain_table), + .opp_pd_tbl =3D sc7280_opp_pd_table, + .opp_pd_tbl_size =3D ARRAY_SIZE(sc7280_opp_pd_table), + .clk_tbl =3D sc7280_clk_table, + .clk_tbl_size =3D ARRAY_SIZE(sc7280_clk_table), + /* Upper bound of DMA address range */ + .dma_mask =3D 0xe0000000 - 1, + .fwname =3D "qcom/vpu/vpu20_p1.mbn", + .pas_id =3D IRIS_PAS_ID, + .inst_caps =3D &platform_inst_cap_sm8250, + .inst_fw_caps_dec =3D inst_fw_cap_sm8250_dec, + .inst_fw_caps_dec_size =3D ARRAY_SIZE(inst_fw_cap_sm8250_dec), + .inst_fw_caps_enc =3D inst_fw_cap_sm8250_enc, + .inst_fw_caps_enc_size =3D ARRAY_SIZE(inst_fw_cap_sm8250_enc), + .tz_cp_config_data =3D &tz_cp_config_sm8250, + .hw_response_timeout =3D HW_RESPONSE_TIMEOUT_VALUE, + .num_vpp_pipe =3D 4, + .no_aon =3D true, + .max_session_count =3D 16, + .max_core_mbpf =3D NUM_MBS_8K, + .max_core_mbps =3D ((7680 * 4320) / 256) * 60, + .dec_input_config_params_default =3D + sm8250_vdec_input_config_param_default, + .dec_input_config_params_default_size =3D + ARRAY_SIZE(sm8250_vdec_input_config_param_default), + .enc_input_config_params =3D sm8250_venc_input_config_param, + .enc_input_config_params_size =3D + ARRAY_SIZE(sm8250_venc_input_config_param), + + .dec_ip_int_buf_tbl =3D sm8250_dec_ip_int_buf_tbl, + .dec_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_dec_ip_int_buf_tbl), + .dec_op_int_buf_tbl =3D sm8250_dec_op_int_buf_tbl, + .dec_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_dec_op_int_buf_tbl), + + .enc_ip_int_buf_tbl =3D sm8250_enc_ip_int_buf_tbl, + .enc_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl), +}; diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/= platform/qcom/iris/iris_probe.c index 00e99be16e087c4098f930151fd76cd381d721ce..9bc9b34c2576581635fa8d87eed= 1965657eb3eb3 100644 --- a/drivers/media/platform/qcom/iris/iris_probe.c +++ b/drivers/media/platform/qcom/iris/iris_probe.c @@ -357,6 +357,10 @@ static const struct of_device_id iris_dt_match[] =3D { .data =3D &qcs8300_data, }, #if (!IS_ENABLED(CONFIG_VIDEO_QCOM_VENUS)) + { + .compatible =3D "qcom,sc7280-venus", + .data =3D &sc7280_data, + }, { .compatible =3D "qcom,sm8250-venus", .data =3D &sm8250_data, diff --git a/drivers/media/platform/qcom/iris/iris_resources.c b/drivers/me= dia/platform/qcom/iris/iris_resources.c index cf32f268b703c1c042a9bcf146e444fff4f4990d..164490c49c95ee048670981fdab= 014d20436ef85 100644 --- a/drivers/media/platform/qcom/iris/iris_resources.c +++ b/drivers/media/platform/qcom/iris/iris_resources.c @@ -112,7 +112,7 @@ int iris_prepare_enable_clock(struct iris_core *core, e= num platform_clk_type clk =20 clock =3D iris_get_clk_by_type(core, clk_type); if (!clock) - return -EINVAL; + return -ENOENT; =20 return clk_prepare_enable(clock); } diff --git a/drivers/media/platform/qcom/iris/iris_vpu2.c b/drivers/media/p= latform/qcom/iris/iris_vpu2.c index de7d142316d2dc9ab0c4ad9cc8161c87ac949b4c..9c103a2e4e4eafee101a8a9b168= fdc8ca76e277d 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_vpu2.c @@ -3,9 +3,15 @@ * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 +#include +#include +#include + #include "iris_instance.h" #include "iris_vpu_common.h" =20 +#include "iris_vpu_register_defines.h" + static u64 iris_vpu2_calc_freq(struct iris_inst *inst, size_t data_size) { struct platform_inst_caps *caps =3D inst->core->iris_platform_data->inst_= caps; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index 2d6548e47d47967c1c110489cb8088130fb625fd..f8fd120873ccdcb5239985d0d6a= 8bbda144a98f6 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -179,12 +179,14 @@ int iris_vpu_power_off_controller(struct iris_core *c= ore) =20 writel(MSK_SIGNAL_FROM_TENSILICA | MSK_CORE_POWER_ON, core->reg_base + CP= U_CS_X2RPMH); =20 - writel(REQ_POWER_DOWN_PREP, core->reg_base + AON_WRAPPER_MVP_NOC_LPI_CONT= ROL); + if (!core->iris_platform_data->no_aon) { + writel(REQ_POWER_DOWN_PREP, core->reg_base + AON_WRAPPER_MVP_NOC_LPI_CON= TROL); =20 - ret =3D readl_poll_timeout(core->reg_base + AON_WRAPPER_MVP_NOC_LPI_STATU= S, - val, val & BIT(0), 200, 2000); - if (ret) - goto disable_power; + ret =3D readl_poll_timeout(core->reg_base + AON_WRAPPER_MVP_NOC_LPI_STAT= US, + val, val & BIT(0), 200, 2000); + if (ret) + goto disable_power; + } =20 writel(REQ_POWER_DOWN_PREP, core->reg_base + WRAPPER_IRIS_CPU_NOC_LPI_CON= TROL); =20 @@ -207,6 +209,7 @@ int iris_vpu_power_off_controller(struct iris_core *cor= e) writel(0x0, core->reg_base + WRAPPER_TZ_CTL_AXI_CLOCK_CONFIG); =20 disable_power: + iris_disable_unprepare_clock(core, IRIS_AHB_CLK); iris_disable_unprepare_clock(core, IRIS_CTRL_CLK); iris_disable_unprepare_clock(core, IRIS_AXI_CLK); iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_CTRL_PO= WER_DOMAIN]); @@ -218,6 +221,7 @@ void iris_vpu_power_off_hw(struct iris_core *core) { dev_pm_genpd_set_hwmode(core->pmdomain_tbl->pd_devs[IRIS_HW_POWER_DOMAIN]= , false); iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_HW_POWE= R_DOMAIN]); + iris_disable_unprepare_clock(core, IRIS_HW_AXI_CLK); iris_disable_unprepare_clock(core, IRIS_HW_CLK); } =20 @@ -251,11 +255,17 @@ int iris_vpu_power_on_controller(struct iris_core *co= re) =20 ret =3D iris_prepare_enable_clock(core, IRIS_CTRL_CLK); if (ret) - goto err_disable_clock; + goto err_disable_axi_clock; + + ret =3D iris_prepare_enable_clock(core, IRIS_AHB_CLK); + if (ret && ret !=3D -ENOENT) + goto err_disable_ctrl_clock; =20 return 0; =20 -err_disable_clock: +err_disable_ctrl_clock: + iris_disable_unprepare_clock(core, IRIS_CTRL_CLK); +err_disable_axi_clock: iris_disable_unprepare_clock(core, IRIS_AXI_CLK); err_disable_power: iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_CTRL_PO= WER_DOMAIN]); @@ -275,13 +285,19 @@ int iris_vpu_power_on_hw(struct iris_core *core) if (ret) goto err_disable_power; =20 + ret =3D iris_prepare_enable_clock(core, IRIS_HW_AXI_CLK); + if (ret && ret !=3D -ENOENT) + goto err_disable_hw_clock; + ret =3D dev_pm_genpd_set_hwmode(core->pmdomain_tbl->pd_devs[IRIS_HW_POWER= _DOMAIN], true); if (ret) - goto err_disable_clock; + goto err_disable_hw_axi_clock; =20 return 0; =20 -err_disable_clock: +err_disable_hw_axi_clock: + iris_disable_unprepare_clock(core, IRIS_HW_AXI_CLK); +err_disable_hw_clock: iris_disable_unprepare_clock(core, IRIS_HW_CLK); err_disable_power: iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_HW_POWE= R_DOMAIN]); --=20 2.47.3