From nobody Fri Dec 19 13:50:11 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 D185F26FDB3 for ; Mon, 13 Oct 2025 02:09:04 +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=1760321346; cv=none; b=T5H9aafpyl1ekG2lCYuNdMc8x/XaX39vcp9uGwN0AaqwwLH+idOKTR2prjpMsgdBSg/AEPeI3HNXEM088xDo0HvfHG+3qmh6fdYzPf+y0vTA0SZzHjaU0/aUubigB6SoJ5SzLAgyhH7OaYL2ZAaSG5JmNZbx4Q93h+FiKyBHr5M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760321346; c=relaxed/simple; bh=H/YOmdSqf4JIP4Cbg+JvuClkdIEqdkFL49DX9PNELTw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=n+WFn5xh983eDmdK+g3WCJvrv5dUPGFSiwG1Dno47KLjsmOl9H9yE3ajvRf9gbjYpRfM6zeRwlWw2YmvjwOgwtQwZlynJ/ugcsjkS30V2QOaULPbpp3/4QRa3MeL89gNXWeKJPl8JS758h0xcWL9uHitqwGjMgwFmrHjq2/ni5Q= 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=V3Y3KCFu; 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="V3Y3KCFu" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59CNpCIG021775 for ; Mon, 13 Oct 2025 02:09:03 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=V3Y3KCFuuOtURpUl XGtwHKU26HeiRVhFKrCoEDoCjOF7R9NFzpUo2irTrqDWIltzf6aa1lhu5Q+khKUt lY9ZwJ0DAMn8t33IS9clMXBJOx1Ka5MbNgmrJufpQ28D9z4bislBBgv8BWaS5Fmj VFq+6DOq5Ca1SOrPJWXVNPyqwJ3TM7UhnhjayVMHltw7NqYsrVggUgFPlU7tJ+ft c5m1TMi4/9Uf3HjJTm9HJrbTzgTpfItmb7A5fUQBjtLxndWFegeLUL2zFGRwTS26 y0R3Ast2bFqIeiK2/eWd5NGCMRSIbMyG21vhrpQoNPOfZ+p2cT0ZLlaNF8vIKEic LBzaSA== 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 49qfm5axnk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Mon, 13 Oct 2025 02:09:03 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8635d475523so2023987185a.3 for ; Sun, 12 Oct 2025 19:09:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760321343; x=1760926143; 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=BAVZ7Qg5HePek/wenwOs8sPEIo3Ld8rO1BVn4wrtqQolRTEnV7MeC+tUs+/Oh+osrm VaqRJjn7g2j6QIgPacJO5+tTnJbG5ud0Vq6v0vOA17WkcLOuOVAtbX/3xcq8OAenknH/ FMOoqi51dgBRmK7Jvu9NEkXT8YLvgk3WBJu8mekpv7DuKf1c7aKr8W4JRV6BMKUcF9kv E86MNYsMELreXai5XRz612YGy55ZJYFkSanQmkSkTAz9WxBYglJjt83pt5GJGS4b9D1P 2mEOEJJsLSepWtSp1+1kQwXgUUfRkEVu7oD5UrwVmZMQHFFPxKDOey6faJm6uPaLDF8m cDOA== X-Forwarded-Encrypted: i=1; AJvYcCV6jQK35hZQ5z1FbI6bX8euzAvY1udCUfKbRBn7Cl7b1LNv8KtPfwtBTuGYvLx7g8ylZ9lO92C7hCbaQIQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxKcAy+M8fp/t6Ln0aX4fN7+v3Jg2/Z36yB+rTkHb2aRTqEVBLa JoZ6Qz3AJ/FG0Feo0GLyzDAZExBuwwuhRIyk/VFGiXieRRGSY2ZBKT++zoSVlt06RoC3nmeuobd Vnj3J7yJm+zQt2kA9SptFwYhUhzFUA9w6b0K+11bN0XX7pzewS7m0MwW0xTWZwGXm3RA= X-Gm-Gg: ASbGncu1wvigXLogVCKCvyEXkbhHvIDjs2HtW8KovipCPAp/MxXswESr6CTjgwJqcRg OkylmnduoIcdj/Ir8Far8ESzGGfnVFiwMYIjasCHYkL6mko1CpWYvcDo89gdaP3vB+LRmOYEK9o YDsyoi3dL9iZMzgYUF5Vc/yx/Kh+JFCSkVmb4GnS/JpBZJzxEP5jzBGWGzG/tnoaDcurUkBhzNm GvdblDNcJcuo1ka+olQgi34babr/uaJvYFOX4fIU+wyhM4ChaRxdd943CYiRvKl64WuAsS23r8E 929jRXtUQQfuYGwiOauInhL0bZ863e5HG6sSpNuL34jbe/VanxDgr4cmiwlrwCqsGcUXeh8SfLD uNXH3WE6Xr7qg+2RUtyDykQVWb/iB0kedxL52s/bPu/qJG6kzBm+J X-Received: by 2002:a05:622a:4184:b0:4d0:d8f0:5648 with SMTP id d75a77b69052e-4e6eacb277bmr274397971cf.5.1760321342724; Sun, 12 Oct 2025 19:09:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHW8jME1hgswBhgsFe/+bf/Vs3tSXnzptuEDV6/tjydEpZYYPwTpvszF8moN1lBmk8RoL/LMw== X-Received: by 2002:a05:622a:4184:b0:4d0:d8f0:5648 with SMTP id d75a77b69052e-4e6eacb277bmr274397641cf.5.1760321342116; Sun, 12 Oct 2025 19:09:02 -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-590881e4f99sm3563419e87.7.2025.10.12.19.09.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 19:09:01 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 13 Oct 2025 05:08:55 +0300 Subject: [PATCH v3 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: <20251013-iris-sc7280-v3-1-f3bceb77a250@oss.qualcomm.com> References: <20251013-iris-sc7280-v3-0-f3bceb77a250@oss.qualcomm.com> In-Reply-To: <20251013-iris-sc7280-v3-0-f3bceb77a250@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/pANAwAKAYs8ij4CKSjVAcsmYgBo7F85y/E0P4y+BtrRLaOLuoo/7OpPfKpH/Cuhz kWdyeIxbvCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOxfOQAKCRCLPIo+Aiko 1Z3HB/9/G6YxaAkOVTI9JCCK3IfJ5gD21vmndr/+ICU3z9ZT8NfHlaqFSFoYzS0IhBkE6ZynbSJ FaxM1mGKYMj2VqbMZZOh5YawQG4DPvkWSeUQyIxcFFbpMfif44yeawflaPGwQTDcr/agRYyvoxM 3flkUK1IC4scXeSGsKbCWamSXUTmc+sh5x3qP2NEggItM7Xu7LJtRoHQPpjWqfilLwN6z0kmp+X NR8g5Wi2KgcnXGxDPGGukCT4iZkIqrn9uZorRHI0GpJ+qb5Snjpmp+qalA6u9cC6Xk18flE7FWF 4whjZY3pNYtleHjzNcV45ABjsSl/Ml0wBQ6Qi+p86RkdI+/S X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: zBzn24rNMI1BuDrbRM2rd2-OZKvo5wVo X-Proofpoint-ORIG-GUID: zBzn24rNMI1BuDrbRM2rd2-OZKvo5wVo X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAyMCBTYWx0ZWRfX61f3faqwCdzI MCRBBdG653bJ3F4cVnyMRljnikarrHEc8vX3Zr6koP6MsldZT880jnc4+Carcas/5/kFASF7ewv H6vtj2NDP3xHmFQjWW0Ltz1/1D1X+dIqJC9aCJxFxhlFdRqa/LAoSfj6+oNDxxaqoJ1GbQL3wDl SgljfZkY6Gb/ZxoXemR3C3u49MRHt5Dhp3n6Y12oaXUK37I0WQswA0+OBNUPOTHbl7Y0VeZxYf3 S3fWIRupfeBaMiVaCON2KRpZh8mbWuRY3XA4KbSqUIkbQZzzgY4AgP5yerTg6rdYwEksZ2BbUDT jSy+fkgxOeKX6PwFq3s53nUxs/UZFBNTozqJ2ybP5UvJr6NRHrNuNv10+5pz1WZMRFvkmmz9Jpi 9bi7lVA6rVdXTk+FwsAFvQGnBUbDdw== X-Authority-Analysis: v=2.4 cv=V71wEOni c=1 sm=1 tr=0 ts=68ec5f3f 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-13_01,2025-10-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 malwarescore=0 spamscore=0 adultscore=0 suspectscore=0 impostorscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510110020 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 Reviewed-by: Vikash Garodia --- 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:11 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 0060F27E056 for ; Mon, 13 Oct 2025 02:09:05 +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=1760321347; cv=none; b=aKk440YUFilgTbVSFyN/r/B7lH8HnixfQgkV44SMgSP/EUVVM2XDTp28HOIGDRiuuP7ktYO+YiW3r+fZ2ceAzYbjKWEmwPzejIu5tIe1dsUzDmKfSgvmZCpvmLf4BCV0FtYVxs5l7TeU+V9aJoe3gp3FS6AUXFLfhgwtpW/I82I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760321347; c=relaxed/simple; bh=uoVbn3VVUUigPywid2f2V13SpTXgIyshJR5BshILzqU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MMmXpDwxYb0WC3qbOfb8AczGa2wLN28jpyNwDiekfsfoANB/Fv5T1TaRHZF6JZ0avP3UaD6GAKvQiShBntkLKxFto29qfkOLMqxhdV7/97ltmXXDrm7d4ZzWs21VitMnxa0FNpi9RFmKjyphuJCi8CkOuAhmYkLe/2oD6zXm+fw= 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=b+2rrARX; 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="b+2rrARX" 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 59CNLtFe029642 for ; Mon, 13 Oct 2025 02:09:05 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=b+2rrARXi5ld0C7U SKEBLTrxL+eBSnli+3URaxZ+aHIvTURZR8zC6SGB0jQKa2MwJsztMxrj4LcpnEfe /x6NpM41tYMcS4pEOoPp2wSUWnva6o4d8MckMy7bXbCRPmAUy7N1MZaknnZp+f7Z /gzbiPsBabYOKG2KMs8xuF2q9Nt3IFkBzyNYybVg+Rf5+2fy/KtkfhjVYYuwgW4P JzmRcJgQXRxz4lEI71b4dTqgy6TR8keSHXBX1ZG2UYvWARZa1gFxQT1tXh2kUiKG dLnqHrY8L2auU5C9sEhLMvF7dxTaiMZb+fci79KPdGLq9rwXOH0U6OYXrwQoACQi vi9BtQ== 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 49qfa82xnu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Mon, 13 Oct 2025 02:09:04 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-85641d6f913so2329160585a.2 for ; Sun, 12 Oct 2025 19:09:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760321344; x=1760926144; 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=vG+96biK87nc3Y6e45i8fEuYG6wCYyk8U1Su1V++guQEde7kusrrjeB2ISY8uhmPBT mavVla3AvZlYQrabI4lEj7lK0P+Mf2kNUuT7LxXSXdF83RPcbrdnjAvf/LNdcadnMsGf j/IH/yH1mX3BQP/N/vWM/riH7J3Ct3OhMY7TKcMQzgICR6mi7sEzVs52r0qv3k1iJ+9H 5svRsOQdIBMEhjQnYaHV6jV3QX0yPITXKQsf3Nb5spAn0ZtsuQd1Vnfcg/ZnOWzCNiLd NKucbsOt7Kor5t2jX3J2215JTpCIRqNlVzqUO2meus6v+CAYFuJDswyAhRVHQ0f992wq IUcw== X-Forwarded-Encrypted: i=1; AJvYcCW+EFHuxioaMZGORtBkTFzKuS7SL0varyBBg7/CV6iMjADEFybrKLK9ilSC1d6hL9y4IKOuG/SwH2/5L0M=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+O9DHhWqI7J3hjfjp4/YqsBI15eP1ft7TbVgCwPX4aOfX19lg qT8E+6Z9i/eBie4zcry2DM9OgqvAUvxqJmgKwk6XpjuXBeG16SmRjeFLCEofUjQEO8iyCdre09c y5xm8bTolJsnDaVlfDWJPrxiAe5OOufASm94s7+W638s5qVUAa17ZACRcxF6TheWyrYw= X-Gm-Gg: ASbGncu1j3kzbTxCSJH56RXDZh3tbEF5JgHAzQaHbuFTV69QJ8fXBX7k0kd2C9Gm/mE l6TFdRbM4dY9Es3BsILNEXXtzseHvVsAUoBPbwPsxcm4hL4JlL41XCxVy+m8vmssXKY1EdHhupL vvvol60dYV+icDyUc61fEWYkkRMyT/k4Fmw5VUiSYsLZXPTe/X1nSFfurCUAouycUuIlfNhBmEx VS4m1X3qT9Qg5jQQAikk2H2s4sAulBcZVMnSCKqKe2ril6n4lwOMk4XRNwHkACazzdnU50H55OE Z6wR0OaWKYj1NLMwFTwxxS3rqZJOq8/vHZlVwIZktKsttwvybk5Fp+dECPfnzdNqdFpvGhxQZJh DS2pytpXXqYzl57Yj8qbdGW7d5JfUz0Igfonh40usKMJ5IlxuKjeF X-Received: by 2002:ac8:5d04:0:b0:4b0:8890:105e with SMTP id d75a77b69052e-4e6eacb2f3fmr299040711cf.2.1760321343801; Sun, 12 Oct 2025 19:09:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFg9IS6kDYK0T9iuv5+5IKPmABEcvmmR+Hu2ZOr9fhDnfEnA2k3E7/moaPiHre7oJQH2DJs7w== X-Received: by 2002:ac8:5d04:0:b0:4b0:8890:105e with SMTP id d75a77b69052e-4e6eacb2f3fmr299040461cf.2.1760321343363; Sun, 12 Oct 2025 19:09:03 -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-590881e4f99sm3563419e87.7.2025.10.12.19.09.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 19:09:02 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 13 Oct 2025 05:08:56 +0300 Subject: [PATCH v3 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: <20251013-iris-sc7280-v3-2-f3bceb77a250@oss.qualcomm.com> References: <20251013-iris-sc7280-v3-0-f3bceb77a250@oss.qualcomm.com> In-Reply-To: <20251013-iris-sc7280-v3-0-f3bceb77a250@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/pANAwAKAYs8ij4CKSjVAcsmYgBo7F85wT360XX5JJ5aVEXCPwFeNzXXzItY1KvTt Klk0f3RqGiJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOxfOQAKCRCLPIo+Aiko 1cuYB/9eE/F3PizE+HSWV/gj/yb2/fZ7u38lHtfvb9s7aGBbFBQrQ1/7CnhtW/1jgTvTxMDX7O6 rCdz4zf6SvEQZZdbHybkybwoRxwMMSbb6hTrvsczv6Z3Q1abmZvD8dcrvxY/5DAA3zrde+N/x1u HjrpcYTUDJ1ztgFsPqEUViFsSEZV0k0Lq+1RpqdJjcGi3u9c+t4y3WP1DSes7YW2HExAUAks2WG qVCztx1hBwE8pVQEHKSeB7O3FHV8GPSbPdAoMa+GJfEqI4x4i2bVsgLhg+6egi/mWlCgf7jAh2R GGnbmJYqd7MDwFl3kxToQozl5OvfzyH3NPdWuO8uplFCCw08 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: Ccll-71P_2OrfF5Q0_Ubxs5cZChBPnSe X-Proofpoint-ORIG-GUID: Ccll-71P_2OrfF5Q0_Ubxs5cZChBPnSe X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAxNyBTYWx0ZWRfX2tKt5es4377f gDw4gyv29idScCobUu+sJBrN1LTHY8WSmQYE0sYlVvwleIAxlRdIevsxdsmUQ48bYJxdir/fPgd iiW5FCSRDhQcRX+aqYN/kszpF4iWlAUxVdB9FDQAe2DyCqyY0jrQb7GiRbbzCFoxEb6h4SuEnis ga333kl5lvUphqTkF8dE7897Of2ziYOPl2RnOmrJFHSR6ublJILyIIX3thID2PK+i0ONQ6Bj2q7 XhP5nywkkuQJVzhTanK/yXdOycCPa9AzBhkKyLzc058+bD1nMMIEcAPatq3+v2YTINtNJP3Nd4W CdEO6B3hQYavIfHzlO+mo3aTm9HcjhFMysmEY2/DXd6zeVJMVGFMxj45tqljoWOc92YgK9TOxZo BP3MtmZSP+WYXu1InMBXWMDMdeOxlg== X-Authority-Analysis: v=2.4 cv=JLw2csKb c=1 sm=1 tr=0 ts=68ec5f40 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=vHBkZ3WG4vhFy3QD8MgA: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-13_01,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 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 Reviewed-by: Vikash Garodia --- 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:11 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 CDA2327E045 for ; Mon, 13 Oct 2025 02:09:08 +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=1760321351; cv=none; b=dtP4LlcFSb3x7Uq5d6TY01CpOqdMRGrBwEwI4ax/dZ5ZO1ObB64lZTU30r9iHFEqMOrTwtwxee5z+U6pPqfCJyX2emxcTTWECXUw0XpEryu5x2V78886DN5+btXJaewg3r/S2N8Pg9n4mUPB/oUMzDPULpTbIOZwshOi9z2jqd4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760321351; 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=InTLMDohGNcE0igDOcRdV3Kf7BTv15f/KKjgwS/x5fB0Yz2Qe2EmbWPVMcYesKom3CgCRO69ASiSlYw3Cs7lj7N5axbrmNE/m17draEAXvVM1NkI7wrWOcR7K6lbwJYjd+ODT5SV3zeRLu+8wMPQk8SixOGE6Q9jhV2B3rVDaMI= 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=eYJ5yHnI; 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="eYJ5yHnI" 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 59CNH8h3017690 for ; Mon, 13 Oct 2025 02:09:08 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=eYJ5yHnIVXP8EH4Y ThraHmXYGYWUvQXG7dBw9DUZwoZxS1B8LTLWRFxpiEm7ZJf7rBG6Tm/IloyL8Y5g +9E4pymy6yFDcQkQGIHMOtS5aZOSGff3NL6ym6TH5CZxoD8/0Y24xRYQ3/O0TSNx 676+Aoe31r9wa+wYNSGC24AbH+tRe3/en0SiF1vKQGH27L/e4rXrH5oVyPEaXrzl cRYnfB6zI/6wKkFaIyV+cgQA7tj1uev11ZSjJjFiAkhbP9+UA1cjcQwh0BlMVpe9 Kzq1Ps68ILzg080kjyHhz86yOuvT6W6i/2LKStR4Vu4oCosYtuFoieIMrgZY2Rzk YzKETg== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 49qgdftv0q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Mon, 13 Oct 2025 02:09:08 +0000 (GMT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-78ea15d3548so87456696d6.1 for ; Sun, 12 Oct 2025 19:09:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760321346; x=1760926146; 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=eY6AMrwYbYIdf/9IadN9NSoOz8NhItTwz55GTz87XfI38OP1nDKq/5A5mGDg2F0vVm gcn1Rt4ZN9CbGnfeYmR1OC4wzVPqRIGz3SQyYVWhub1DnWbK01WJaW2Cph9x+q+0mHts n3SUsKvYQDLjoqr86e51jFy8NlBvJYMw7JtZEFAVdPbzCLU9Wfk1Rf+zxKTmdJBhEGPM rvhUTnHp87GHNVcgu7caWcZwnvVdth7iykai5ANN7WCfcX5ni5rP6SNSHgXn0WovPlVU 9rWE94LeIKZlRLm0O/XRzTllD4gHbrc1htLtLFnw9x14SM2DC9AWMVJjXFzqqoyxy3ub kHSQ== X-Forwarded-Encrypted: i=1; AJvYcCUF8pISSIoYXpKZPhTrjD1c3MaHtU7tH0DHKAt+KXD1IHa5YfwiADJb41pOsfXFFoohpvJkGZ4yjfbLsKQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzDxweiBCBCa3qBKNyibtj85eGEAyMyW3GE1rqNpXDOp8yNj18w PTJ8B+6RcYsGmmm/6jFSfcc74oDBkS61Qm9HOxtpdXsdKgAVrqUWWLqG9BbiEyEOEQXRaSst4J6 a6r5NIMk9qmGtaO40mbRrqC4dBV2uzaROuM1y06bRK7WaPPdwL4h5cmZ6ULiqi6LifJhGSQnVtw Q= X-Gm-Gg: ASbGncvCVQu+4lj8Aa21C30ZRY1a7XubePq85npURCsYZmOGVsKFm+F+HhgyDILr7PD Nn82qaKZWv042sNSEFxKdF2EwDlRfDhbQLkpqxnthSM7XljxtzCPdkyOzPvEXMbgI5yyRSHVx9z TNFWZwI8VZeWwPKIO+ZLDHcEW5viiv4LI73O/97L32osXATIHOSIMtUNxa0Nyz7c0UgymrvadEn Qx93FNulGlPX1aX649zD7HO+KlZbLzldHCS6qgCfz4+LR7yndbN0ONX66TjoaVSPpc/DaDPX8Zq sz3Q9goFCRq4jE83LFmV78ovCanEfc07GtE5JDJzyLpkn+lovmQKgSXk58uD4yqIyg2nmULHyj/ MHugudum6iv6oeR79EJz381m2Ns1SNklkc/sSS4ymPEfJjwOswlVJ X-Received: by 2002:a05:622a:44a:b0:4e5:c50:54ba with SMTP id d75a77b69052e-4e6eada65ffmr262368401cf.48.1760321345806; Sun, 12 Oct 2025 19:09:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHNiayHFUAFRg9GeafEySnh/+a6X2IPTx7offg1zvxmMm4+O2BU8AqJ1WFVuw01XCh8/Qz4pA== X-Received: by 2002:a05:622a:44a:b0:4e5:c50:54ba with SMTP id d75a77b69052e-4e6eada65ffmr262368151cf.48.1760321345181; Sun, 12 Oct 2025 19:09:05 -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-590881e4f99sm3563419e87.7.2025.10.12.19.09.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 19:09:03 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 13 Oct 2025 05:08:57 +0300 Subject: [PATCH v3 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: <20251013-iris-sc7280-v3-3-f3bceb77a250@oss.qualcomm.com> References: <20251013-iris-sc7280-v3-0-f3bceb77a250@oss.qualcomm.com> In-Reply-To: <20251013-iris-sc7280-v3-0-f3bceb77a250@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/pANAwAKAYs8ij4CKSjVAcsmYgBo7F85+vyeh+j07kTYEsgMIVtCT6i8dJIVGAwgW AsUuOyhEBGJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOxfOQAKCRCLPIo+Aiko 1Yj3B/9/8KTqV50OW57zZhPDunuChedE2doWlrrZPvBv2+KQKm0kZU5Qf0J3zDpbaYrqciV+8+A K16sw/Ssg0UZhoh3vs8QyYHijMj768dC35SboLSnInbmv0dOAHATgIgA0Q1Ofi5iXI0cwFHmIzx 2OYQIowL9BPoq5J2eBwT7Fg85vg97UEm1ciVnqnexSxQG0EL5Nw6QRYTYv5EPSbuhq7FhnpF8w6 TQcec/GDICSrdV3qzXdLPmBIWIr/RTOFfrsC3d4s4s23qAkCQl5hl+GswsdQ4m6ZfFPU6i9MNza LatRqV/vZD9JxeWN5+IFRPJQlpqggAn3UpF2/gyGtBUAAtIe X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAyNSBTYWx0ZWRfXx3CLKK0Eeu/i XyLlqzlNvsunRA0HNwrUHbtGit4X9XCmTtph1VqRTnhVPolXgGzaKPErtE0dhYDDxAx63wHhtuY 9LjujVfQGurA+z7DlAD6XJiCwbAmjOqnd4Gvrlsou8pb4vtzqZfXtLQkrMIpOtmAsQDnYPWdT03 wSlw3YTnbnf/tjpaY1vDk890T0mnMIWwQcwaQSerBQx0xQeep2+FOGfh+Jaax3dekFjYl6VqNd+ DJkj1ABLzPMf9wIJ1VcqRCtQj8RIwlDfaCVVrmku7E2Ol5lNLNFuo4sbW2gitL5UD58hUcY7uzU 2IILpL0OgGXEEklRWberzN/cELKQOvLsZWlIBjdv0TivKMMBHwdre/FdRzmDV3IHnGZgA2V1gBT SjfAKvV4s++RHoR28YGxeZd1x4W0hA== X-Proofpoint-GUID: mhWJvoy-ySAv1kJf_BJf_-WxonY1zmFE X-Proofpoint-ORIG-GUID: mhWJvoy-ySAv1kJf_BJf_-WxonY1zmFE X-Authority-Analysis: v=2.4 cv=J4ynLQnS c=1 sm=1 tr=0 ts=68ec5f44 cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=EUspDBNiAAAA:8 a=qRUaz7MsY3PVI_3wtuEA:9 a=QEXdDO2ut3YA:10 a=1HOtulTD9v-eNWfpl4qZ: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-13_01,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 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:11 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 0B2DE2EC0B0 for ; Mon, 13 Oct 2025 02:09:08 +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=1760321350; cv=none; b=O9wUB0MycYw9afE3E6t3CUeKemsI837mHG1Cy1NN+GUd7PCkRUd3q4w2jbpR1rbJr7/oY02SGj0M1wlaEFBmhKJTnOI0qCRp+s6+eiA7Bvq2/qv+mrnbqYX09TOSNW6JauVskM10fkq9wXqfoiK8m6iVe3iZv74qCALpXGlhVSc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760321350; 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=cZ7nntotl+RABkK6UHFtyOfKn9cFwL/3EiSQFFo43Pm4qDdll8o8M6IZlAuOy/yNRlZ2VyrYMVflfYUOpIE/OTudHLybU9YxdKZr74CJfTwUjvJidcqgnVtRewcRNl8m+9nakIAIfmYbSxSyO/QXNpbSnjBFSYLZp0tc0DskS9E= 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=gP6kFrnX; 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="gP6kFrnX" 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 59CLUrZS003816 for ; Mon, 13 Oct 2025 02:09:08 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=gP6kFrnXKYN0RT+d iFkIR/mogp5yA4zrWnnHcrsL0cfbsLQ0j1AkOrvk08zbro9HWO31sCs4qf35swkA X4HPq8M5OFafrnI9Xtb7jdYYcZi8AHt1QFfg0D7CThcP97F2pNeNDf9UZ9mua5YK Uw/fYAITIO5GPJRw+z+wPuXIgj0Epy9VHTxqvJKQqxdy2CtBJYCmHXoocpgnfkGQ QmCej3c1yNmil1v68IPaSlP0mtXP264ccpX+vcTHoGMIJEFHMRKfBxcbMrC6KYsG SjGMWuz+tSfmQYqfjTms7DXr1tqAMCcNJSVBILv6C30llCanWTBbMy3/ViozYjpI 3QSSgg== 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 49qfd8ty6w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Mon, 13 Oct 2025 02:09:08 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-88375756116so20428685a.3 for ; Sun, 12 Oct 2025 19:09:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760321347; x=1760926147; 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=anjMALWpSRoGOfrPeRI3GHAP7fDpMGSXP+LsfBfklfkj8EmoLnrGFBe/664RkluLym 1pAfScIopIPCl9iaIOyx5X0NT78METvdrq1VEM13hayL+pjU85n9+zF/ZzAseCC9a77r zAf6IsUT7DC011nxc2oCEiVdC/LNXKVrwjpJjIFDtN4iR5bA6QG6wodbzKlsL/9n+cSS x6ZMXOeqUvoc5M61Zt70ihymtQQLjwHs3tqBN/uPeFESF+fZ1etv80fG5FBeiR4RwLMk GM/FfX1Qt7yGf2VLyLxZRAHYrq5y2KTH4jHVp77IFFAV7UFEEpkpHdT70X/YTk8jcjrg 4OCw== X-Forwarded-Encrypted: i=1; AJvYcCVONwLqaIlFmKUmUwpYFV/Wb7EaaWr5jiCTW3opvpC1duBlExgXn1jAIcqIUi4XXReXkCIQdyEkbU/AzSo=@vger.kernel.org X-Gm-Message-State: AOJu0YwE1pYL2GJHvuzL9efYitiwHp8nmMq/OuCw6qzx95kYNu51FA1r qok66/0R40x9fxdyX6IGFPCduwAX+nDwVocVvT/cFvImRoqmQ8+qNq/XqZgzn9riHrl7RI8ov3m Ume197Fb446bsmGFBh1Fha6GH/lH5Qt9V+EOrBdit6IrBhGYj61XcVEUM+nCYHv6dxxw= X-Gm-Gg: ASbGncsJgBOyTyrF7Ib9QG90ItBbvVg0qpqH6tQSFIlAtGOsu8ONVPSdywFhUJtLun5 BqFXJCo694WR+48O2PdzVYlYI6D2UfjVgaC8jOY7M650GyIgk8A0JgmA4ksyD0+2XwiZnDuEUY9 ahGRItKEHjp4B8CEqtbyCtrJcQKu0vohBMqfJNWQRbLeWe4DSGTlcpT0Wfgqml3lP+autUq22Gs nHXQ9JlYnjGn15gX3AndPMvinrt4qCpdHolc/2KbfTS3tfGKpFss5iyPEgAvsCCOdZNGDRYd9gH pIjClQFqQwt9traAV4+jPy0bPjUMOuuPNPyGUgfj36JnRCle6r+sCn85KgyGqQZTxJ3X982tD+t I/WemZTZ0QfLY9Q54b/paQMKS2Bu2HS2XQviySVZI3YTcEaBhDz8x X-Received: by 2002:a05:620a:471f:b0:815:630d:2cbd with SMTP id af79cd13be357-883525bfc34mr2648056685a.34.1760321346817; Sun, 12 Oct 2025 19:09:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHc9zi5G7Np9PMmpTV08gJ5PED9SMZ8Oj12OF4Yfr9cRxtew0QXsK0KpIUqXoJdVs7LGsoCcg== X-Received: by 2002:a05:620a:471f:b0:815:630d:2cbd with SMTP id af79cd13be357-883525bfc34mr2648054585a.34.1760321346372; Sun, 12 Oct 2025 19:09:06 -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-590881e4f99sm3563419e87.7.2025.10.12.19.09.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 19:09:05 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 13 Oct 2025 05:08:58 +0300 Subject: [PATCH v3 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: <20251013-iris-sc7280-v3-4-f3bceb77a250@oss.qualcomm.com> References: <20251013-iris-sc7280-v3-0-f3bceb77a250@oss.qualcomm.com> In-Reply-To: <20251013-iris-sc7280-v3-0-f3bceb77a250@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/pANAwAKAYs8ij4CKSjVAcsmYgBo7F85xROBnEcvVuuG8608RC5WqpC8IFzBcFptO Ft0Is5mx0aJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOxfOQAKCRCLPIo+Aiko 1fULB/4420l6VWC4Zg6CIgJOKWiRt+6rwPgw181gT2rS9I00mI+4SMS1vgESudXdlIOsjdTmFBd SiX0U8Pi3BLpPEImPVRx226jc5bk6B31gy6NrUCrk9iqLFRLfrfdkZdiIjai7AU5cERAn/d9zye xkM8OUnYd6xW5RBX/pXVDai3Q3y3ZIwk0tstijzI4mXBfI/vt+TQ5N0FTFpoBKwRM9Bauv2zwPX eI90tbyT8rPuco7UnUtjL9TMPQlwfurKziel4iDWKBy56Wr12EcidfQWhfS82uXd6GUa4YydzKQ PxZTeZqs+mIhB2D63bP7jG3NQX+qsfHWP1iblU4aQSfeg1rU X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: a4dHa-QrH_kkrGni65fXkrCTvMNvIarD X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAxOCBTYWx0ZWRfX+YLqoe7uEyaU KtcDTSiTEqZ4mhnIfGErrIE7DKNVdNctKuI5AzkNwrxNFLmPqONvsyA5ShntqTFCk0AR7gN1+gF Ieoou7xV73epNn9+LAbBDTUa1UP6jjaBsSUSMk6lI7oQA4oISj4QyQiKBXvG1VJ9sFR3NDowhQY D3wPt36SgYui/HOghAZHpnh5IdCHPPrBDzJm9cboocirsSaJI7Hk3U+9MiQSIgyb2mAaf1NjTY5 s2bcIbTWNKtcYPl9+4jG80Pwh9bQ6otO0xTOnYXkjfWTF2RhUg4EQEQazo4lkcHSVNDYD1UOSx9 xlvYOOgeJy1Ev79SPSEWkAYBB5JtU4SOlEusiscxxMyAfrnU6pzw/w6AahZJVx+bGCE5MR5l+s7 nMs6qp9CdI54oJ4HD91tlhdIRCnunQ== X-Proofpoint-GUID: a4dHa-QrH_kkrGni65fXkrCTvMNvIarD X-Authority-Analysis: v=2.4 cv=PdTyRyhd c=1 sm=1 tr=0 ts=68ec5f44 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=EUspDBNiAAAA:8 a=Fn2TP4Vc3OsuT4lKjqUA: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-13_01,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 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:11 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 82D3E2F25EB for ; Mon, 13 Oct 2025 02:09:11 +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=1760321355; cv=none; b=tbExv2UAjCniaJkkKFeTc9T9EUpVnfSgSk6ZqhlH6aOS4X/6Ff3fpB3qhQaf04+Uzi70/1KTskYE3vfU0/mmrBL61f16myyo889BKwY2ggwdtjOuZZYcG3GWjCnGMGAhEHvcGqhp3huSHqDgQEycRKKtNId7SEkbPxXK3nNo57M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760321355; c=relaxed/simple; bh=tF2xZKEy1KLBLxslUFvlaXuedQWx0pXD/cGg0v/pPOY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=p5h4ueL8iQ1JjkKia0j6zreF7OfsVbnJqWzipL3VsB74oVGSOKBgiTLNBVDTLZEPhwos8JDo8HckBT8efEacmdj4cRpJjCfrcygFuQ8A2rJ/af64Ujp6D/y/UIZ+PlHIZe/U8xRkw0kzGhTEht/ZmvnNs+P7JnkXhJIsSG7kE/o= 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=SiBc5mNr; 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="SiBc5mNr" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59CMvtXZ016328 for ; Mon, 13 Oct 2025 02:09:11 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=SiBc5mNr/9MEtdiz Za/B4dVj16KV37n/EW2yDCJwcvJanuAkKguRwP/Vl3yibCkHZ6lIUIclD6G1Z2DX EGggLW+uVdnCjhH355bkEGYr2midVHShDUq0+pUdCaVdC4dAYUvZi/ANTgm6oadn 8/d4bna2767uCkxCJjYxefh7Dk9DSll67p1OIgxzW60P3tCAb/Rwgk7eNO+CiphI pW8BGW6zspX/E+/iiCaY/U3DTvcHbGCJBq2piaDIqLADFZDv9UePfgbP64pFp1wC xynu8RwMm/97Xr0ZbRTXPB92Q8qCQ+2BVsnA3WlM5GRxAmqznog3WAVSawsstR0S i5F4KQ== Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 49qgh62vgh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Mon, 13 Oct 2025 02:09:10 +0000 (GMT) Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-78efb3e2738so210503236d6.3 for ; Sun, 12 Oct 2025 19:09:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760321350; x=1760926150; 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=NDDSxoTVqUFrFjoBzswwca4GZGxvQ2SmqYStMQQA4TyszRkvrZJXDP+IhHkthd7xPU MfC/o5lYKy9BkQOkrEUulWveHZEybBzjwPAOaNbNKAQaR3LC07OlEolfdh/uBmNf87KT gEy3s51I8lFrL2O41m+9KObNF5QZwE+NZUY8R8q+PzmJTMmlZN7x8nLznwCRcNOP+mwk xUpKSZH0UkW6P26Nw3ZO42WslpImWE+oFplrJwBbeiIKT3iZmyc/GYs3THf6JvQfeOyx 6dCDmcnsvaWo+I1qIi88KQQH83XfetOgxHXRnfc6Ekvn518ZzZOardbjQ364+9Tr8KD3 r4lw== X-Forwarded-Encrypted: i=1; AJvYcCVQssRgGdmXy3LOdpCvq4meho6ALG5pZwVdPMgjJUyCUwm+Twfmjx4VRxRkhDuzSPkvrL1L7PHb1YhkFiE=@vger.kernel.org X-Gm-Message-State: AOJu0Ywvyx6YogbjIxd7Pb3/HOkxZT1x3BrfHr7+5PfZSpkNFQemswuP 26ivwSyJ1DJSJZuv6KzqQTjHn88x3mhmZRusv5x2cJ7JwbiSJZQlSxH9gWu2sdfXADog9kPSMaF L/ujzizVA6NjxFpUiqyl5sGFU8MGTZbR0+Zi1QRAZqBf1KnAjfoxcQMeJEkch+GlH0/w= X-Gm-Gg: ASbGnctGshZ/6a9R63ZPednb01KVswrtDbo3bcSf701NKEBsmoNq5FJIn9ndM5JEpgZ 0ua+m7YuHffkwxEKSMM26O4a4kWhmmIcvJSYbBzQxzODX4BnlIamjOVaATsAW/sRVuZM1lRDqBw xOdwkr+Gno1Vmn1uWjYAd8E/iKB/d2CJhxwHrOUg49wc0U9FSxkyQpPxvjybmrWT+89Jc3kUOiK Bkizyc8mWXeBd1ZyOYHJOvNhtZDbtwGnLHYuHscJvw+ZCC0JwZzYqQSR2+cOqK8EsudruKDH+RR XQY+UPy1wkyO9MpknwttBKn1miN2VMOa1BMrZo7wGptGsIM4JlylpV5momuW0KEPs6K6G5KK5sA h/agVfSdAlBGgXDl9z7oPuAt2h+BroE0y26hSISNTKgYHhk5yu9lg X-Received: by 2002:a05:622a:550b:b0:4da:24c1:9713 with SMTP id d75a77b69052e-4e6eacc1f5amr275068301cf.15.1760321349355; Sun, 12 Oct 2025 19:09:09 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE98h50XykWhGkypoyEQvA5TxuMCYFcc7+hp1bieaWCbAFpDjw53AF3ukvQ36Z8Mf+gdzxQ3w== X-Received: by 2002:a05:622a:550b:b0:4da:24c1:9713 with SMTP id d75a77b69052e-4e6eacc1f5amr275067981cf.15.1760321348838; Sun, 12 Oct 2025 19:09:08 -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-590881e4f99sm3563419e87.7.2025.10.12.19.09.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 19:09:07 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 13 Oct 2025 05:08:59 +0300 Subject: [PATCH v3 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: <20251013-iris-sc7280-v3-5-f3bceb77a250@oss.qualcomm.com> References: <20251013-iris-sc7280-v3-0-f3bceb77a250@oss.qualcomm.com> In-Reply-To: <20251013-iris-sc7280-v3-0-f3bceb77a250@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/pANAwAKAYs8ij4CKSjVAcsmYgBo7F85TeHppIVpL2EVSKYl0gE/PzpIjBVmkHbHT hQVPAO8YCOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOxfOQAKCRCLPIo+Aiko 1Zd/B/9fMhqo5RZZfWT3Cl7nr/ApZJQFL58x0SCU553YoNJ+DPpslcvoEASeVAI+Ln1AJCEMO1k vZglwbz5LyurTlV4FI9mZLRR/7ZpInJpqVOY+PFxEOrUG0GacI/XFcOCSfDCtLbh0omufV9L9FL HnMN5G2Qm2cj1L6+LVZ0KXOH/41+dDQHoqQTmByvn9oK0Or3a++8b9bA81wA6aeZVNJ7b9eq5hx lG+hDDsYqZeIfSHGkvgAUMfOSGXF7b8lcWEra+uL2NiLiaM4sIqPax11YzdAJm9eAynJ+3GCJQn xsStUWn1km0zz7Pr4sKY6XCPTB6mGddUcSW5O/gr0Z7Tc6me X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=H/zWAuYi c=1 sm=1 tr=0 ts=68ec5f47 cx=c_pps a=oc9J++0uMp73DTRD5QyR2A==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=EUspDBNiAAAA:8 a=8lhtx-rUCDsU0NfLSlYA:9 a=QEXdDO2ut3YA:10 a=iYH6xdkBrDN1Jqds4HTS:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAyNiBTYWx0ZWRfXzNl7hVjgDPEU sxq8gOPax+N1WCzSsBLiTrXi+wsx4hD47GWatdVIwvn5E+l2eq06EMtHttmhiHVvd0o1S6Clkm1 IaHSMNc41EqFZzyPdKv0xVvsXIE1qAU+eYTOn0qv5jOgAh/DBZgrVTdRWfWBtQbdymH7oPcjQAK ZeZmMg5GVRKa17CqeP6zbpktDUzIiFyZOz4Hi5NLDacNzcxAQyCUEajnAeVQnbblZjfTnah3pN9 jEQqaaf3r69XlxAIZjV97K8lco37Lfdg/+R55IzDfh5VNFnRMlZD+D0QiYCxf9c2j/H6MUhgkUk blvDP98YTkkWBuXeU/qQXm+hgn5Cjc5AZe1W7BbLQyhLrFZHRYEWXm4JFa3I0a8YNV/ZX90Cpve foogHiqG/2o0mVW05i+j3Py7yTUgNg== X-Proofpoint-ORIG-GUID: xEmNLosJT4uuWwxYwOypZbBGXY2iLtse X-Proofpoint-GUID: xEmNLosJT4uuWwxYwOypZbBGXY2iLtse 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-13_01,2025-10-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 priorityscore=1501 bulkscore=0 malwarescore=0 clxscore=1015 impostorscore=0 spamscore=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-2510110026 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 Reviewed-by: Vikash Garodia --- .../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:11 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 82DB92F25EC for ; Mon, 13 Oct 2025 02:09:12 +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=1760321354; cv=none; b=YZ2Q6DVUyB0dxmLg5dElXMFBD9F19vN9GEzFWtr5VxBMrugNSHbIFHvMcBlYdgcJFN3ZmhXPEb+R5jqLVWPsxcnc5vdvAwX5FVKrMntyJblQC6Um3hAIvr+p3Nhkl1y4drL1AZ0VqlL9i5MZ4fWV81pzNNysJuYdMwm8n4W4bOo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760321354; c=relaxed/simple; bh=wbVaP1lpyBvdUoAnAqQoSQ3X0Ci5SY+Yd6B95zwrfnU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YAdMsmuCx3N4jqviyWZMvyku7dW3ft/7tZ4vQ2Z34su8QnHZo0lzyN8qDMx9ephh0OPEAENKEe2QPdzm+2R1PWJHpfiNhexuMAmwrIkpEqSsY/RbKrokqoIC7PXxvqOLI2I6eKw0igpjKbKfgOGnLHZWmeA87+KBK0lmFjj5SAs= 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=A8G3awOL; 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="A8G3awOL" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59CNXfKD000354 for ; Mon, 13 Oct 2025 02:09:11 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=A8G3awOLJrpeZ5tV WoexDgt2tnE5eTi40iGbt5CGit31P3LrRT/jCzdPZowoXyy5JUe/KEi8hXGIEJfb HCymTdTdhPpFl0+YHddMyjffg2XDimCInsyhWQNY7IzK1U3cUbxB9gIs174UpxKA SBUZLZfPQiTK2tHImoBC5fTd4dQvv8IKfcqD2bzWkASOQLlXhbgVDyESy4c9mliB JaCutKJ6KqCktv9XM6o1d6Eq3uIu75LFn3lTb/w+D0a5vXpHJwKrtyXA5pLyBocV 8ry6E4aqGq42zn09Vhn8Gjn8EPLlzNpg2F1oGAUeANLnyS7th7MDZ2a6koOLiOUo OmY1cA== Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 49qg0btwc8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Mon, 13 Oct 2025 02:09:11 +0000 (GMT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-78f28554393so211480406d6.0 for ; Sun, 12 Oct 2025 19:09:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760321350; x=1760926150; 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=cahx4eSZPUKO/7zvAO4Kox/vDBM6lvVJlUznEG3gvtgrqAMMpKQAhGlvTadHeHlJ63 cD0uAblqh3hBdA9l8Rz5eujRFFnuLnMGQh0BWLhFNLCDXlurUBmUQ0tqLKYGsUSE1DbV H6ndaLP6aGyzN7sLn5u0S8A+CZXqHbmnPlksGa8b7qbY4IA48V1i6Mx6ffDbodIlNe4J sO+ukhsqeYxU1a8aR82CrNRRQGRJZO/kMrY+RVv6jcwKw0J21vPgp/xovIawUDY4MAYG BnJDLeU7zni0lIpXwjOBKtPFx2VDnj/ZmcK00hxsPEDKK68uLxI7Z3g0rLM96Udldovg 1yGQ== X-Forwarded-Encrypted: i=1; AJvYcCXeyZMajRB6ze8kCHxAKAcYM4f87Tk504SCYv1AmcAU1iWx6a2H/XxzD6a/cO1seO8ERPolSsZtcntl2vI=@vger.kernel.org X-Gm-Message-State: AOJu0YzzkapZl26HbRQRvdWsBg5l5rFHYdRcil5vNUM2cn2Bi5aJAiS2 JVR0qmTgXYzdPesVMg1CHdTfmQB3PUYQZYo+DGIxPWlbYNZZpgWeRaUUrZ/ccrnXzUG5aAmcWbb PnOVs7bk5Wun5elsDRVubI2zIaSD2QRGXhp8buwYSets/2b041mSgpeo50NNiQIwHXFQ= X-Gm-Gg: ASbGncv9jAs/x26Zp1/74H6e5griv7d485jUDjy9O9ujmqZdi7eKooJWxFBlnhFaFC9 oJdb7i3FejGHrdiBP07dn1y53GnHpHJ6AIuRr9kAVEZgY53LZ1zMrAD/QeVJouPT5PPzyoaXKlR mqinNqCZww0/jkePOSGlj2NNUk1GEd1/eWbf5oaMocdlb4YsYMekrT6I6upfYAJxkGTOV+uKEay 6lTKttLpO6SLqkWDZWxnR5m3bVM6lwVrU+Jvxy5ai19eTEr2EZ2gKbjVnWzETNHfy5ZLzjHlaVu /hCFhhT+VqPPfRw1NqXmOb4mYWnwBJdAO1nazphO+RKLTbeOZWAcThQQWbVTjE71uJpiF/7rAnM 4tvjKkjMd/L0/qKuS4M3fRXl/rLTLUnNU8kU5Kj/MUmJ8gnTkhyig X-Received: by 2002:ac8:5d0e:0:b0:4e5:4531:2a4e with SMTP id d75a77b69052e-4e6ead7c558mr259927601cf.78.1760321350431; Sun, 12 Oct 2025 19:09:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFbtDwhTw3wFDerFdKWqV9V4ypofI8gQE0PqdpTVBNF3CPN31e1q51G61ezYb3csieopyoRCg== X-Received: by 2002:ac8:5d0e:0:b0:4e5:4531:2a4e with SMTP id d75a77b69052e-4e6ead7c558mr259927361cf.78.1760321350051; Sun, 12 Oct 2025 19:09:10 -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-590881e4f99sm3563419e87.7.2025.10.12.19.09.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 19:09:09 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 13 Oct 2025 05:09:00 +0300 Subject: [PATCH v3 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: <20251013-iris-sc7280-v3-6-f3bceb77a250@oss.qualcomm.com> References: <20251013-iris-sc7280-v3-0-f3bceb77a250@oss.qualcomm.com> In-Reply-To: <20251013-iris-sc7280-v3-0-f3bceb77a250@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/pANAwAKAYs8ij4CKSjVAcsmYgBo7F85pdysF02W4HqhSIvGSDCIJ7GrLbDMZVFsc dv4gTglv9iJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOxfOQAKCRCLPIo+Aiko 1cRWCACwpvVooIFThA50z6RkSDlGk5bW6Iqs+IuB0eI3woWhV7hRWW/PJ3X8v0V/1KF5sUn8VP1 9nIRRUhzLBBiX3KQRN5W3yXXK0odowR3+EHWcWkywXgxw+LDC2MCqIoEaao1eVeWq6GEIHioHUp cKcmhm9dhAjwIMfhByfudrN4sbyfKyKolTbhw8m/slzG/myvffVax548hQ2lOsA8wM9sskaS4Uf ysTgkdfyGJvoSBl29Ku3hs/1XTh18jYrkT7sOhWObdT2DKStN21kilNoj2PFNsqRukpF29z9iq/ LxXLQdHysdYupMj9Qb2hGhZZpipeOdM+qvJ5Dik7tPq0OU1j X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: -14m0pvrLCF6tz2IqWGpSkvNXVJWzxU0 X-Proofpoint-ORIG-GUID: -14m0pvrLCF6tz2IqWGpSkvNXVJWzxU0 X-Authority-Analysis: v=2.4 cv=eaIwvrEH c=1 sm=1 tr=0 ts=68ec5f47 cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=EUspDBNiAAAA:8 a=OYuIXoeRUKmE5Kzn4ZAA:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAyMiBTYWx0ZWRfXylyg5RSTe522 PKbAYEELV3fWiT7xJpLFrBqfjkX9mdAmGpTvS2NAiRvKas/ICXF3c7pgnQp0rI6E5Z1E8EymcO+ RbZa0s3irqxHrkYxuF5YaMShddCY818NjI/9syCzgGHEoM86OnDJj7S3XkY2UgTCALpKZ4wsv7+ Ut47DpfrbLTi6Wf2LsiTxm7JCPf/aNyezJ0ASgw3ZdBwqlZbR7WiYq6XLeY5miB9gGd82bhCkIi 59bJeo2NLlX0Jw4B9w3xN/f42wnrTnom1JfI+dAx1mR7ocQHYx2o4wqWSLCc8smisuzJ/8b23v8 VWlEvBYE7xSSoCQW4XIyIOUgSxZt64W4g81K1CsmCo66sC0s6a9u1kV3I2XS/pOTtOIhTU9FM1j 8jHSLBfrSVcpBuDhIVTx/ZluKsBM/Q== 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-13_01,2025-10-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 spamscore=0 impostorscore=0 phishscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510110022 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 Reviewed-by: Vikash Garodia --- 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:11 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 B41B327FB12 for ; Mon, 13 Oct 2025 02:09:14 +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=1760321357; cv=none; b=GBZPgDzPWPPD2No1OVCcRhfod3zuKbhzelfM5M+lsvnPvjOoZSCiEoYPvpcLVrIqnDszFY8zrIWhXuzz2T/K+AMuJ3yHjzhWZmYTb3LUh1V+DuhviKjErPAU87Lg0WguuXWaxBEST34QGqL24YBg6SdQ/E3Dsa9/t+3POK93/Lk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760321357; 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=PcVZvtnYA+IDyPiLXj0a0mQsSCDsBv/VJ1bLUIDh+o9UOz/XvJX8Lkh06JY2+PsU/Ye70FM+DErJ6sbXcLBHd8VpsPCjLcSPzubg8W6P5ifnXt7MzOa3dGG3LC3Cyp65j81hhEKt+Tla6O4B7EIAh7Af0DFWrxOgQ1wv7STE5sk= 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=e1i0y/bH; 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="e1i0y/bH" 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 59CNg4t0029814 for ; Mon, 13 Oct 2025 02:09:14 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=e1i0y/bHANz4Qo23 ZVXN/YfLFEL6AqRZoY3o9rdDPWELvkj2aKUhiPClpSpYY4ynLhJEBf9Jqrsc6Hmw gh5p9PDAYSaCjtxorNQ5KHWsZ8Uo7AAMR64F4cuDxbunOaV9VClqa00GTV9oHCGM 0rr+BTJoWXtlXWjnW5L+Al3eS4Sa6GLc2efEe/YJtj2q/ilrYXmyDN4gThBXhtFZ /K8nvbukV14zrT6AY0eqxlHQJFZOBbcrxM9cK4iHGPHdBK0E/oPsEnxIMSMNeRyW 12RMMJhJT/T31nPISN4bNN6m/JzTUPQJGcGlJdM+EodLrAOc34W8BHuqLb8D+sr9 Twuhkw== 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 49qgdftv10-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Mon, 13 Oct 2025 02:09:14 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-871614ad3efso1994625385a.0 for ; Sun, 12 Oct 2025 19:09:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760321353; x=1760926153; 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=By6GYHKUc475PKYOtIYaXlYUNyTIIK4TKLGwAJgicy069xWonEt8RnrF3r9LQsLt4P lTwvL7PGJUo7qWHl9kk2Ui+Pyoh+eNQDhelInXt47OT5qjJ3izrft+lrc1RECBV71jlh Hr/80U0OAIEETu3rCxF8MELFSLN+teveKaU3rkqkKyItQooDFDISfEc+Xmi9YBXjtaZL Dh7UKP+mzMXbRFib0YkwD58KbuNp1aHcyPghOTlgbvxN77QWSj0u++xVid8UyTiFIh1p bBWpoVdqU9mVftn5VCDb76DvCeqCDe6yWiuVU3bUTx5W848/XDaRMqKCNYbH8mRNGbts o4Bw== X-Forwarded-Encrypted: i=1; AJvYcCVWxScXrisfEHMlfDSSB8EYDHg4NcmbPkz9EoOmjTx/4IWozjgVEfbKLKWjYsobpOwRQ6i2te1AmIPxJrk=@vger.kernel.org X-Gm-Message-State: AOJu0Yxwr2cIiE3mWG7NimAy3s9yc95EfEi4P55oBFjTQ6+cjA+pZjwy MbPHoNqUkG1d29mmBWSTStyR2baLvU9IGuJSlX5udnNmQTvJ2WS6tcM6cdybFFF31UW3N9hXPeO yWwOQugBW7QixdCoMq6qwtQn/mXg4CTzdUNNlOLZEnPmoxcCfx7pHDlWBSznIXmnZYqY= X-Gm-Gg: ASbGnctAvW2X5VQN8xfmbEQBbyLBSPsYq14H51q0B+mcBFzdVWYtevO/UAvhMsM6Ort 6hC8aXzOG6MRp89qkHCpvr822qNE7uxBW9CpIQvqM/S8AEjoo2eDsCbffDDVZt8pR7oWMcodjy9 ErAvukyPtZHp0b35biYuLaxL6ifWeXqnEfH8R1IirrPOHRe05olEz+t/qM5cccjTxX2pcAbc+hD 48WaqpHemJSO4d4kqnbJSYSMQNSAL8GpX8kxqbrLkJtYjDfnFUews/g9R9pDdqXiB1T6DDVXGeP X+1qi+YUICDMbe20TzN909X7zeAZTgvenyuWE1nScCYqoRjf8YxOiw9kxQr+Bq6g9b2TApYDGGo sKp7cVZxEFCtdjp4qePT30fTCIi5fQy1kZzulgARf7Y3/9ODQi6sp X-Received: by 2002:a05:620a:1a83:b0:85e:3ab2:9627 with SMTP id af79cd13be357-88353b2a836mr2680155385a.60.1760321352696; Sun, 12 Oct 2025 19:09:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEj0BXQKCxddmLt52w+2YWNLCNIqpg5mFTrg3PhAaGu8+XAjRniTdGYKr4vTlXFjn9QLc6ixw== X-Received: by 2002:a05:620a:1a83:b0:85e:3ab2:9627 with SMTP id af79cd13be357-88353b2a836mr2680152785a.60.1760321352081; Sun, 12 Oct 2025 19:09:12 -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-590881e4f99sm3563419e87.7.2025.10.12.19.09.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 19:09:10 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 13 Oct 2025 05:09:01 +0300 Subject: [PATCH v3 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: <20251013-iris-sc7280-v3-7-f3bceb77a250@oss.qualcomm.com> References: <20251013-iris-sc7280-v3-0-f3bceb77a250@oss.qualcomm.com> In-Reply-To: <20251013-iris-sc7280-v3-0-f3bceb77a250@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=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBo7F852VY8ZzICC8m3ZLzbaSBh/FnPr688CSzzX aLBmgYVTHOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOxfOQAKCRCLPIo+Aiko 1VKHB/9mAf7nWFfPN4lMK1JX67k5zhUsORN7xlYt85z/U0VcptRwbdowFWF+rXarDUjkW2I2pke 4QVyxTdfUnrLelO8Y6wJG/GWz/EGD0sT+TzV6d7o3UtE9gDHwTcRLDC20D8tKYKoFaQH3bjXFIn Yp2ejI8Uvg8E/KyoUyDx50v/IZM2rRN98oE6hPqEPDhOaiDJvjSwUnS3J+tY6HznGbHvP8zwSdg bxc1SXJqwGf9x1IU7I1rMJVbMxt8z4VkqwNUIR5lj699C2dntd2yWDdpiRlbrbY34uf/SJO9xdO 7RnPjHFyDfjX54uJtNazujq7vJpMTRsXxEeFtdGmtZJdOT+T X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAyNSBTYWx0ZWRfX3u88o3G7RWLA tGH6+Dn+RGClc+YPm1q0YP7T3rCK0eq19+9bgPiC7RC/qrXaL5Ck+uhnGfYPo//L/hzDDDRLiz7 lkFDKeebblLmPcMHKhr5Stp5AF6EQ6al8zV4840Iz9dO5v98PhBHcXbag5EoizaZkdzTTgFJmKW dNbi2r1GzgzHhkizXHX/42hv8jCAD7BSmmeULX6qFE3EQUEAXtU38FBz9cc7/4rquznb0mHwmD+ bC0r8QjwTq5ltP2ngDLibETwcWoGu7oSJtrcDYtd0gB/iea5XXTKbGghgGneYBFR+1UZQhWryDo pf+Cv1RBRBnvtY7H8eEuhf+C4NuiQiEIqCLhf0AhrTlVX6BO2NkBnH1QgRr6deEfqYPABlQh0QY MWZGHSIM6LP+Bsw/kR+5KpiSHbEh2w== X-Proofpoint-GUID: 5Y_LPRBAW44zWb9LTlEb_rRd5SmGIQRu X-Proofpoint-ORIG-GUID: 5Y_LPRBAW44zWb9LTlEb_rRd5SmGIQRu X-Authority-Analysis: v=2.4 cv=J4ynLQnS c=1 sm=1 tr=0 ts=68ec5f4a cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==: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=PEH46H7Ffwr30OY-TuGO: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-13_01,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 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:11 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 96FEE2F60A1 for ; Mon, 13 Oct 2025 02:09:18 +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=1760321360; cv=none; b=hDSEW8/f+hpPnA7pfG+viFNpW88ipxpbtvjLxm5s1IoHkur+dl+kAyao9UToIhYyympXVFA07Baqu4YDLGy4YCvJ8XGNOEVL/JEraefb/3b6/6x7R3rHSTUkenmfhmdJEDMRwxKS6ruB0fUYae8Wi/hQ94y5swz7KeMlJhb5GQo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760321360; c=relaxed/simple; bh=6FRZ1CpC3MU/4n9iRxLNrUmwxEaMlpAnTQZio3HCtrQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hL6i7MOaEb3eMk+f5ytHXBHI+gGTyIukc7e54/t+4L6tzIHuk+GgnQs8m5goV0dnkjaTjuEdhJA+O1zvfkjnSzNSm6Gx8lBQaqpyQ2G27/ODmnPx342d0H43INmYflzPffWlgNaYWRSitsGRgTMKcf1wsNkUtStLESReNcUXkF0= 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=TXUfPjkm; 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="TXUfPjkm" 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 59CLsrTF000713 for ; Mon, 13 Oct 2025 02:09:17 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= nBL4RMDsP9fvHNxUhltDF9qa+M/Bza/qq9I2lxvJDRc=; b=TXUfPjkm6dLisSMK I4qqGf9K4FjnrWLmDVqSHz9fHVURTSw0vzRDb8vItmSziK4i9z7sKVUAwqg92FlJ IJ3y8m/siEWyyAO/jOyxsHp50rD7JDuTety+cDFwuumnqpXMcZHSi7zioIyxufU6 406Xi1nBSsSmQK51jUyznDvbnMUj1hmpQIKUjfN2pl2ot3lO0lopxpO0yDkenhu7 uxvWnQBSfkKIJT5MMs2K7qy1YuomAYyZ/LY1UxNOujDySvYAYaTZqGCQhwyGHZCQ 1tUNs+vk/dOmH20Tx7Q6X4cwQnNdwdQDsrjvIuvF8ni6r2KkPhjXp39ju1+dLoXQ TfRNZg== Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 49qgdftv14-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Mon, 13 Oct 2025 02:09:17 +0000 (GMT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-78ea15d3548so87457786d6.1 for ; Sun, 12 Oct 2025 19:09:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760321355; x=1760926155; 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=nBL4RMDsP9fvHNxUhltDF9qa+M/Bza/qq9I2lxvJDRc=; b=QHQxbRNLZcm2a1OF3u8zsQ8UkNtiR5RjlxlmSAogp2E8vMYQwxz0gaj3N0ql0iGrRa N419VgpaWLKTpcKbJ1993wqHwrvWJIjd/YP+0A5LHNjMIkQ6SjgXdovkufq8qMoHZKdU N0Cw1pGdt7huVRIbxdn7Joy/h87ZtmKeQ4C0WmfwML7fMKey0SS36nYabMV9QS8KwKH5 PD0rlf4rZuqRpPnmUcelGVkwQLk69VncWLAV08awtkNs/QrkXSsCWeQWqsMO8vMryfmZ hQYUJqieVzv9Pl5gTuyGqD5e0jAVpRIgl3ZxEUOhqEP9CZY7MvAsiZJXClVyfJhqcOGe 77Uw== X-Forwarded-Encrypted: i=1; AJvYcCXvNZkhe9NLuUQCpo/7yStIax1MwP17TYiQhF0w8kAXkJCHQLmw8sTQOjOxj+dWLG0y306kI6dZlu6ElQw=@vger.kernel.org X-Gm-Message-State: AOJu0YzoYHlCkFDSIv7o6/LGTglw8yS1nksdtmd68/CuTI/uOAtuI2qo +PiFdB4P6v0ua9VOunG+pDCf4YwNMCjHP+Wwl/kr9wG+PqJV+hIJArg9GD/prLKQmnTVuKGXybo vKKg8CMzcNRhEhvwWOxfkTbe2T4NswrRsTUk1jtgypwhJL/QUY/2uGKe4igO7nY0EFs0= X-Gm-Gg: ASbGncuASrMEvnFCsmCZLpj1dM7trs9MF+c7Q48oBwc4DzYBi5b4rlmPQWu1j859aXJ 7Bszbtv0OdRCKR3MWsj/FzGkI7syzGHG+cKTHoMEsdGzq1AoIstXRpNgnqQbHcwI9eeWt2CWp+U we0pwsJxbP764U4Iw8MBaphcdovhgtqv9lWa6uJut82lfAc0VhyV9Lp6Y5ebuuSdcNDaA0n1JqW CJz975ecUPVmnm5plGnPonVo/+0ZsEFKDmZoUT6FwBnNxTu4XpT7UucUBf6ScFZZojl/6G13otu 4L8Oz3P6wnB+2AwrZNzUIZngUWa+7IjfXXAen/TKPaIbE6Xyjz6nzyr5rUm95RsYE4YIc+Q6afl HIY7JIMjs9PYSsJ3uILPCzS/o8Gz1u2hcHfKJFWVUHC/AWIREQDPX X-Received: by 2002:a05:622a:1982:b0:4dc:1e47:ebe8 with SMTP id d75a77b69052e-4e702e32607mr171331141cf.61.1760321355133; Sun, 12 Oct 2025 19:09:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEqtvda7Z3Iqyd6KoSZZtpknRNnLsY2ZEhR4nfog4F7Zc3no+ojUZC1laU2qNnZB62byz4tZA== X-Received: by 2002:a05:622a:1982:b0:4dc:1e47:ebe8 with SMTP id d75a77b69052e-4e702e32607mr171330961cf.61.1760321354613; Sun, 12 Oct 2025 19:09:14 -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-590881e4f99sm3563419e87.7.2025.10.12.19.09.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Oct 2025 19:09:13 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 13 Oct 2025 05:09:02 +0300 Subject: [PATCH v3 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: <20251013-iris-sc7280-v3-8-f3bceb77a250@oss.qualcomm.com> References: <20251013-iris-sc7280-v3-0-f3bceb77a250@oss.qualcomm.com> In-Reply-To: <20251013-iris-sc7280-v3-0-f3bceb77a250@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=11511; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=6FRZ1CpC3MU/4n9iRxLNrUmwxEaMlpAnTQZio3HCtrQ=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBo7F86nxhtV+jjO6P5EDwG5509ovKDwPSze4oD/ JXapNb15E6JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaOxfOgAKCRCLPIo+Aiko 1VfGCACM/e3+OmeAtEEDdB19BpYFg01/Vt5gGkk1oHjd6N08T8shbRUxhnA29jMNF3dd8VRFOWa saq7aM+1o9ddz80lIJU/8Hva23AXB3+Blzuqf2rGsoC7ajYshvJL74OkNMv5NPPVHmeCjQjhPzz SKCjHavG+nvTDKQUjGb+MM/EkOFnsbqxHi4DdHXfmLCd+IWx65aOopgNf+v0R3pGFz0CP2k0oby ZncF0tzf1dduA7dIW3rqSRhfFTW4G72BbDXwmKd6r2BBWd6CdAzv5OSzg0h3Iq+dRmmg6Wkiiur 4EbmzLGNxKf+JDIzX3hME6p9G4KmzoCqKNS19hXv71RvJSLw X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAyNSBTYWx0ZWRfXzLGdBXjxj5Yp wduZVIVnHphEgWZDl+nhcHTB/TWdF92TnFFX06xuC3ulyDIt2mXCOrz3E5LQdAwvfNYDd76L6Ys kIeftFykerIPIbs+Ahwjm32kfbKWSpduX54lf7COGIdZ1LJa+OlLJ5HceNMkCG/2deMCvBw8+u4 yOVkbXn9536O5ubNNERsgY7cNhx2tvvk5cVv0KS7gKEENNYxudsy5DEZu8OKD5vZuMBNxZ0jlTi m6qn9xH9dGdO1Q0Nc1OUQndcv554A3T1BqYLYpLQt6axllO2eVqHrxXRvSsTBlw5n3M3CRxppRh 4o5hIXpKBVq/5/J+HEtsc2rVwLtfmEymwi0aociuAykbzD9GhctX2VhJF7EJJBvKJmI2srJ6k9V CPvdHkVANElVO1+jOgNjbCDsyXvNNA== X-Proofpoint-GUID: J40l1ATw9OeL1s967bQNlbtfghjjHjpu X-Proofpoint-ORIG-GUID: J40l1ATw9OeL1s967bQNlbtfghjjHjpu X-Authority-Analysis: v=2.4 cv=J4ynLQnS c=1 sm=1 tr=0 ts=68ec5f4d cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=EUspDBNiAAAA:8 a=pG0Ruh8lDxDpiiRDS04A:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ: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-13_01,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 ++++++++++++++++++= ++++ .../platform/qcom/iris/iris_platform_sc7280.h | 27 +++++++++++ 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 ++++++++++---- 7 files changed, 119 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_platform_sc7280.h b/driv= ers/media/platform/qcom/iris/iris_platform_sc7280.h new file mode 100644 index 0000000000000000000000000000000000000000..f2dea77f2805f48ab00822fe9d7= 0ffafadc47494 --- /dev/null +++ b/drivers/media/platform/qcom/iris/iris_platform_sc7280.h @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + + +#ifndef __IRIS_PLATFORM_SC7280_H__ +#define __IRIS_PLATFORM_SC7280_H__ + +static const struct bw_info sc7280_bw_table_dec[] =3D { + { ((3840 * 2160) / 256) * 60, 1896000, }, + { ((3840 * 2160) / 256) * 30, 968000, }, + { ((1920 * 1080) / 256) * 60, 618000, }, + { ((1920 * 1080) / 256) * 30, 318000, }, +}; + +static const char * const sc7280_opp_pd_table[] =3D { "cx" }; + +static const struct platform_clk_data sc7280_clk_table[] =3D { + {IRIS_CTRL_CLK, "core" }, + {IRIS_AXI_CLK, "bus" }, + {IRIS_AHB_CLK, "iface" }, + {IRIS_HW_CLK, "vcodec_core" }, + {IRIS_HW_AXI_CLK, "vcodec_bus" }, +}; + +#endif 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