From nobody Wed Dec 17 04:03:00 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 E6D5832142D for ; Mon, 15 Dec 2025 08:39:57 +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=1765787999; cv=none; b=qlyVFOsG1MMcyJ31vcbHmZA4edt9LP4m78UDk61sqM8oWVj39ag2SVIF4LXDDp9nEWE4UiFJq6VbX6gzcZt6u2BjtjeGweY1xf5MDFOd8GNAbQ+XRjydXPLqyBV14h8lOTkVm4w+Q20+CoXiiVEz9BtBoRq0KbfGFfzv3EJs8zo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765787999; c=relaxed/simple; bh=lT56rcO/2wjclbI67SuJRUAAr4AVOFYX1OPiKxP0VqQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=n+hOv4c2RN0w1eA0MPREL9MgHQVuH+DHjTYvE6v5FnqKumghAjXDE9LVodidiX4URvPYqPE7iHtcWWHa+0C2fzFfiXLApZK646OImGE2ET7tx8zU5wQ4TeXIRn6wAxvGw08qG31/6ug5OJFU+8s+IPCk98ZR1mqwfRE15Q4xkpg= 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=OjWJaUnS; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hDEgod7p; 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="OjWJaUnS"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hDEgod7p" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BEMS0E93264681 for ; Mon, 15 Dec 2025 08:39:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=Z3dXAwZWQrX iznkoQcO7REoUwgPXToMeXoe6XzLEAy4=; b=OjWJaUnSMoVHGmjEYa7k5SmdQNw GvXUPQBa1AhpGUJsO+WETgWYbb3W6Hd4/PDRnDiScIA4M02HAjWbz8sLFmCSexCH SBZG9MRWqWlH4v2JryvxiPcVB2quUXacP1CxCB/Ky40KCgYwMuP8mN1OHezYRgg+ kHAc0ZJuInPOM+UpPAmXuVnF//LZF7S+yTAkREgUZyn1+LU1Fqitn6ZbgGre/pb1 K3bF0FmlD+6ULIk3pCq2Nkbio7ACbjqfI9aaQ3UlfcuTY+6x5Yeyd7wGZ2mPESKj x7fcAR2jgJfreVCB2iPivPtwgFXcl2zpMoJP2ZvxKVSeNC0xfUa4Sl4fZBg== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b11dsbsn0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 15 Dec 2025 08:39:56 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4ee41b07099so38065121cf.2 for ; Mon, 15 Dec 2025 00:39:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765787996; x=1766392796; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Z3dXAwZWQrXiznkoQcO7REoUwgPXToMeXoe6XzLEAy4=; b=hDEgod7pX0rZ8xTst5gxXGabSs7Xg5wB693o5FwW9BKZLKka4ez83YT9ZUnd6i6Bdf tIOn/i+c/JFV2Zl81JMjQ+i1itiRu3S+HeEb1ZNGLLUdOJb88plSxElchIarSmUDFtCJ VWr7LTJmH4G8nV8EXs46tlwtRcKbCrD1s+uZqOSRwmm8LRvrGugPFCf74KZf3kQ6WCD1 UtVFGvHG+AImD8+4FfW1wVbx9Sl9DzPhkhcT5+XXfEMyYUGfEjbA2/Hq9MVeUYjKZ2GH +nURnbz/T48ys0QVG4JiOruxruuMnfCV9sAB8yW5w9NxlU2LjrE9ioMyQqx65S5ZXuAi cz9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765787996; x=1766392796; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Z3dXAwZWQrXiznkoQcO7REoUwgPXToMeXoe6XzLEAy4=; b=aBCEG6sYHW+8I6dpstwOIgDLrGAI+reBjRVRCf092uD/w+/vJz8ZF7skDbUcK3SZFm N6u/gBtL5Bh0yLmJmzEyeNrkQETLmSrbnLxkkvmuXdt8dDAEN6QmhjN+5pSkrO4HF0MJ 3O3bCblK8OzP8CWsPfdY3hDMar1OqOakTFRaTlw+7shKMh0nHuBn9T/JciwWQzOMNf69 UNPN6VVyxdQ9nYHf6fHkK14P5hqISl+WPJZ5AoO5N71CH7Mih5q8rkE9TuSV5sd+FLzS dg23v5ElIfgp4efN+A4futlwvJJVtefVEn/DF7rMHFVJoY7i1cKFWXpqJ4oEOQjmEA3F 4G2w== X-Forwarded-Encrypted: i=1; AJvYcCWOV+h83QjYNiskSwSHIlF35dH8MfNJtAwVbny+RysSIN9ATQ9YEyTxyBOP5e1w+X/KSKtI9JOtC+gGK1k=@vger.kernel.org X-Gm-Message-State: AOJu0YxK0H/AmomLuHsHSM4JGb2lM274WwBToFA0KRKr3ikloaSuwAZM CLH4S0qPGbLQSkVUp5LlxoWySGm1lRDylZbOcjNbBTc/YV1ERM14It/fThEf/Ug4jLLsOF1cA6o 7gGwd1CcdbqxYKkg7W8M5b+lIwGaz53xxEsZnlY4CD6hiQc4y24643JfG5awiGru9yHY= X-Gm-Gg: AY/fxX44UsT6U2uCvlEED+vnYvJorFtftVNVks6IvpH9w4/vNdBQG4dWb4jxbmGa1Oh waZu7qEtqKYC5+p09NoRGvDPMofuWR9mi73n+BfGivGi8kuJ2e8i+Vzz4JWB/0SCY3iGUsfadLU Pn3neS/BhK1a7RzEbwDbubZumBv98Hok73ofA0uOOUL4PyrDQkPn3z24suI9Ba+hivd+sJ5X9lY Mmfy6xlaCQgsrXHie3Okxd3x526tq1nR3pbHxrmhXenhigmqr5J2WLhTrlzoX03iyJLkt7+mj9H 20oUDOAuJ5KW1lWTYIk+2k419nDMGR2nDNfuVtJvs+EOOoZoCpJhvWWVai/nn/pp/K4D1ZWIITJ YonflWUCwpQRXFLG40W/LozSqzLGMYqv/cMQq0FabqECO7tAsAG41mLAYbhkcoAc6pvQ= X-Received: by 2002:a05:622a:60f:b0:4ee:2984:7d95 with SMTP id d75a77b69052e-4f1d04ac58cmr145353871cf.13.1765787996232; Mon, 15 Dec 2025 00:39:56 -0800 (PST) X-Google-Smtp-Source: AGHT+IHoFWVPMAV6JlXUuSiLN649BtOiFD1OzCUudJcet20PnZk/76ESO1U7JtloETSwBkU1CL9nCw== X-Received: by 2002:a05:622a:60f:b0:4ee:2984:7d95 with SMTP id d75a77b69052e-4f1d04ac58cmr145353601cf.13.1765787995655; Mon, 15 Dec 2025 00:39:55 -0800 (PST) Received: from yuanjiey.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4f1bd6b50afsm90557971cf.21.2025.12.15.00.39.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 00:39:55 -0800 (PST) From: yuanjie yang To: robin.clark@oss.qualcomm.com, lumag@kernel.org, abhinav.kumar@linux.dev, jesszhan0024@gmail.com, sean@poorly.run, marijn.suijten@somainline.org, airlied@gmail.com, simona@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, yongxing.mou@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, tingwei.zhang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com Subject: [PATCH v3 01/11] dt-bindings: display/msm: qcom,kaanapali-dpu: Add Kaanapali Date: Mon, 15 Dec 2025 16:38:44 +0800 Message-Id: <20251215083854.577-2-yuanjie.yang@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> References: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: SXHFprCmC47pQ6O170Fr3ArhUDrN0ipp X-Proofpoint-ORIG-GUID: SXHFprCmC47pQ6O170Fr3ArhUDrN0ipp X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDA3MSBTYWx0ZWRfX9bxz6PqH6Zm4 Q1xgeqEVTBPpgXD2/Tt5I+R2RUXJwCbU6NhSSx+DiKjeCFt5qV8YRfLEVCsny2OCKBBd1q8sJkz H87qGgVGhB9fR8S/iNIJipaXfCQE72po9lq/XhK+a3zrwPOCXauaXsskaH4UVQToI21WzXen4S4 IlZVQQhjJ5DE/CSx4Hrhr/ipRAYK5WP7wFcZ5f527tJKxiMEyidg9bSddJKwdZ1Unl1hqKkZgrh MnxUF3lLKkBWU8rBquZzgNVvkZ4qDdQ4AkKZIxgTRRWsqSyhPRGTiNmgSJdgDNd2DBNuJjdfpNe xmJt1AEImzm4BCKa16bAOuxA6ubZrfPsQUqo/hCdk0dkfQvALCofF+GaZoiJu3bBbmDBXqwgZM3 ouKvJbd+gEWib+tS1hHcinjIMtX1Ig== X-Authority-Analysis: v=2.4 cv=cfLfb3DM c=1 sm=1 tr=0 ts=693fc95c cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=LEfPF28z9Y6gGZEU5FYA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-15_01,2025-12-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512150071 Content-Type: text/plain; charset="utf-8" From: Yuanjie Yang Add DPU version 13.0 for Qualcomm Kaanapali Soc. The Kaanapali DPU and SM8750 have significant differences, including additions and removals of registers, as well as changes in register addresses. Acked-by: Rob Herring (Arm) Signed-off-by: Yuanjie Yang --- .../devicetree/bindings/display/msm/qcom,sm8650-dpu.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sm8650-dpu.= yaml b/Documentation/devicetree/bindings/display/msm/qcom,sm8650-dpu.yaml index fe296e3186d0..e29c4687c3a2 100644 --- a/Documentation/devicetree/bindings/display/msm/qcom,sm8650-dpu.yaml +++ b/Documentation/devicetree/bindings/display/msm/qcom,sm8650-dpu.yaml @@ -16,6 +16,7 @@ properties: oneOf: - enum: - qcom,glymur-dpu + - qcom,kaanapali-dpu - qcom,sa8775p-dpu - qcom,sm8650-dpu - qcom,sm8750-dpu --=20 2.34.1 From nobody Wed Dec 17 04:03:00 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 7540B261B98 for ; Mon, 15 Dec 2025 08:40: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=1765788007; cv=none; b=G3pt3Rhl0drqU8ZL56M0N0B87kOmI2W5Z6UDn79cxuzk/FsJjqj0Y9Pb/DL8qePB2Sd3Yk7bSUgzWQtvXf2tvh2YToLpSLyGIZ6x6yDXAHLsPeJ8CJ70dIX23NrCXHywlLhuoOS+d4ZjVreTkvtGwiufOSX+uxM9UAfPXgmDl58= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765788007; c=relaxed/simple; bh=vTeQ5AHKkwW/UkEd9H1rXrSNU2GbMHUYNZLpJPgp8X0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=QIgiT8Bcv22uitFkFHmm47TgwfzUWnrYo3o5VHs9OxLXZh1ahZPyQPSereKnIWWXLRBCtmI7xgzSZ5YgvEOATESNk29b/54fCsuaat/E1ZY9hybtSok0dzTTxDn9g+OY/fEtSw1x4IRLs/7hgYoTq278nOCRn77ABrpQ7n9wlUM= 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=GLQP+rnH; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cCAlkz4g; 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="GLQP+rnH"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cCAlkz4g" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BF8dtDi3501681 for ; Mon, 15 Dec 2025 08:40:04 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=sav2JkTpiNB huDhe1bdSzqFnq6opp4D6AgKKwiZEkUs=; b=GLQP+rnHjxmM4Gu3RrUAsJrjuj1 WpDKzVpDAvzh8NeF/pp58Wa3J3hkeqYZWI+ZUPRiBWGhppANJOF8oxGUCJeGodO/ ii6SF+2m7/Qa4HfkDOjrv0jPGvzQQErzm7uzvEXSJ74TXf4uvBLDCq/P8R3Np0SE 5x0GS5Md0rqELXQ2YFv7P5Lo8GANQaSJvjP6LB+blyGfg9QNnRlCOHikrbQ9UOTz Xc/209FbIwXf1EzLi5wuw+8coxbI1r++iZI5l5z7cl1WYw/nQWKQtyY3yvXqxHC5 cOIlAR2isRBB5f0gk0nTYR4h4v73IGSA6UP3rN51xNGEplYv/iERt1mF05w== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b11cyks2x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 15 Dec 2025 08:40:04 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4eff973c491so76937611cf.1 for ; Mon, 15 Dec 2025 00:40:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765788004; x=1766392804; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sav2JkTpiNBhuDhe1bdSzqFnq6opp4D6AgKKwiZEkUs=; b=cCAlkz4gwFCmoZpGOTcRcjhvgz7jKX8JgcroD4KIVEYg/QMnM3fx4ZpODS+0o/5f53 HM60tVx2RC1WmAL4dnB/wulOXl5WAUQWx24QGMiBzyw1ke8JJ+DKrrl6byXct/s0X7on bTVWbhJu4VfG9sNvPDUcHHIUicirUz/qYzxiSSN+n3xl34k8+aLowbtr9NBG7JK/njun xDZNfmCKeMZV7z+hvbNQfYxJ87RU2VuTHVy2Kf/XPQqeC3OPf1rYNOwfiM2UeusmsH9O 3j6KFzXf2yU8oHUo+tgo6vOipxFHxOErZd1VNX2Nqu5x7zujok8GPWLIderIzHXMJdHS 57HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765788004; x=1766392804; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=sav2JkTpiNBhuDhe1bdSzqFnq6opp4D6AgKKwiZEkUs=; b=Sjgyo8pNRBTqhxqqQhyK0GYWL1PpH3zFei95YkCOn8sMFWc6Ikfo3jyCQ6vIJvPNW9 VX+A40KjnIgWtg/oUlx3tzL3fkim9qRDLFJTdfsNO3irWUjT6BPDyIvx8Q/potHEuM4k mra1ahKRUc1DqIm7aMv24GuqFfCmAOVp5sQkmA/eE9sCQW6KeufrUc7UIWqXh5Amg8bD eYls129ni+e7eoExKRVWr3pDrRrn4dj02ajn8DtiDLklJXb8oUlXpxpNOGvB1MACb5qL 73/t2THNyfsfikfWl2aQcSG8/QYfRLosNl2hkQWzAtwLK612SDeC+klyEuYL7lnJJDAN +GYw== X-Forwarded-Encrypted: i=1; AJvYcCU24HQfdlL5v5pxihMvIh5dNlx6EYwBWJPoaG2ysmoHPPUc6e38F+c1/wpg/tG8YQIXb60M993WMaQkAH4=@vger.kernel.org X-Gm-Message-State: AOJu0Yx24h0MKtVyb3p8oDqqgb0WIgQdfD+8ZEf8wAcoGVtEpegp3ooX TqV6u5R/4tUmEy1SXOIzgJUnrFURzBZi4mlWm8TSA8XxiSYYOja5vmp5WIRMaZycZGHba2THx82 T50D4/SJ3jQFfB+slu+heZl+Gign2XcuH+GtTr4R1T9Hksc+7e9MfX274Zx7NFq9ixcA= X-Gm-Gg: AY/fxX5qjdsowyzb8x1+dCLDJFlBWdZVtvQDKBaNcrhPsmMDoKlqhAvC2xL0QT1SK7D nSLvrFmcns5i5l8+umJg80ul3deU0HgmO+5vf9Syqx0r6f9yuzslKWoGjXLCQhz/NkX94a0XyQE DDsY7tL7WaLwWrsnTczOhqtBQ1QFih7T4WWRtZKOrAcxWohcfQ32TRzsLLKUpTrlzvA2NZTiRgf QDXp5vnQsF+iaCRd9wk6dxRMEV/uT3d/QkP5LlJVTTPRSpnvvlq6W0vtCgITuNXwCqdXddKxH72 EsHbAIVKVFhBGCMJ+x8ZfEPTTO1cZorZH3b1oL1idGxwb8xcPPlI4CYkpNxLEpGvS9xm+0w/h9E Lx4VXBSwC+S4V9KTDGHmWk2H671QGO+JcBe9Y4lFr9N1JdckuDsWRfPqB7kWIcvpmjx4= X-Received: by 2002:a05:622a:59c4:b0:4ed:1bba:f935 with SMTP id d75a77b69052e-4f1d05e1009mr142361911cf.57.1765788004067; Mon, 15 Dec 2025 00:40:04 -0800 (PST) X-Google-Smtp-Source: AGHT+IFjYobfDnCO0D7Ol1hDSoFkMn3Lh3k7Wfl96wThmTVmw+iAn7yB3AV0vwzn0Pg3esUZljPQiw== X-Received: by 2002:a05:622a:59c4:b0:4ed:1bba:f935 with SMTP id d75a77b69052e-4f1d05e1009mr142361631cf.57.1765788003667; Mon, 15 Dec 2025 00:40:03 -0800 (PST) Received: from yuanjiey.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4f1bd6b50afsm90557971cf.21.2025.12.15.00.39.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 00:40:03 -0800 (PST) From: yuanjie yang To: robin.clark@oss.qualcomm.com, lumag@kernel.org, abhinav.kumar@linux.dev, jesszhan0024@gmail.com, sean@poorly.run, marijn.suijten@somainline.org, airlied@gmail.com, simona@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, yongxing.mou@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, tingwei.zhang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com Subject: [PATCH v3 02/11] dt-bindings: display/msm: dsi-phy-7nm: Add Kaanapali DSI PHY Date: Mon, 15 Dec 2025 16:38:45 +0800 Message-Id: <20251215083854.577-3-yuanjie.yang@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> References: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDA3MSBTYWx0ZWRfX0MANC6XME0vx SfxMfiHq9Gr4IxrPvCKiel32kwMVStd14wKmhcxGvJnjUaZFrOQAbs+i24m2HNh5SiKURsarA0t FYOsW4T5i7XaFkv1HGi4u84a5HnBshbOyfL7QAdDzGJSsZogztmCY3CWy0Rt45u/mN+wozMqX1j YZrR3+OHl3k6mdX1qzHo6JxZlrByveHCRrnly4Ixa40jhjshpN2AuyPwpOtpk1tPJNcCmx34mN5 VZwuiCs55UPQGaUotl0IBO2ALpSmLwviU/dmnCRJUnZrJn/BxldgPSIYDKH+Lou9lazeTmhGUX9 buULHyUAjI/4QEofmMja54i9RZmfnl0JeUYQvYI0lg3BExDUIg886Lg1o7Jr59mqq+YSCD5T/VA zd0M0CnWiYgRrs077w6fBaKYVforLA== X-Proofpoint-GUID: v0ueCvcKXlUrxgKNlej7tdmKpPUHPHZf X-Authority-Analysis: v=2.4 cv=Afq83nXG c=1 sm=1 tr=0 ts=693fc964 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=tNVMJPnUsVqa3Ada0T4A:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-ORIG-GUID: v0ueCvcKXlUrxgKNlej7tdmKpPUHPHZf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-15_01,2025-12-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512150071 Content-Type: text/plain; charset="utf-8" From: Yuanjie Yang The DSI PHY registers on the Kaanapali platform differ from those on SM8750. So add DSI PHY for Kaanapali to compatible these changes. Signed-off-by: Yuanjie Yang --- Documentation/devicetree/bindings/display/msm/dsi-phy-7nm.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/display/msm/dsi-phy-7nm.yaml= b/Documentation/devicetree/bindings/display/msm/dsi-phy-7nm.yaml index 1ca820a500b7..a6e044eed3df 100644 --- a/Documentation/devicetree/bindings/display/msm/dsi-phy-7nm.yaml +++ b/Documentation/devicetree/bindings/display/msm/dsi-phy-7nm.yaml @@ -17,6 +17,7 @@ properties: enum: - qcom,dsi-phy-7nm - qcom,dsi-phy-7nm-8150 + - qcom,kaanapali-dsi-phy-3nm - qcom,sa8775p-dsi-phy-5nm - qcom,sar2130p-dsi-phy-5nm - qcom,sc7280-dsi-phy-7nm --=20 2.34.1 From nobody Wed Dec 17 04:03:00 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 DC5EA329C65 for ; Mon, 15 Dec 2025 08:40:13 +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=1765788016; cv=none; b=qubwprSmH/I61LF3pavBNdhM4DDembnoOM4kl9BA4Zz5fADYw4bTGKmYZt8w6WhBegz70fCw/P2agvSFQR9Y7W73UgqKdFThk1in+K3bgn9rdWeKJDBnVS/QnIHadEGgNSOJN46+33iiFJBs9KN5ESJi2F0sDrq5zd+QRpHxlrg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765788016; c=relaxed/simple; bh=JaD7mb6XfRdztIfNyhkMYYOnCv9vI/fjXzhflA1DBYc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=He6Ejb3ptykH8CI6EhgyUu5FdYmAMiVKFFNc7QudiWWP+YzkCRVo7hEHesX1xvQMS7VQH5XL9QIVJpqMTU2QEj9Sw2TCpaPGkEHG/78nuBFloLgDcT9OuJxf5uwh3rxlqtcnaI0oVkD5XCMVvP7UrwPuomhzICwkDTnsKxZzfro= 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=e39neXgb; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eBSuoKWf; 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="e39neXgb"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eBSuoKWf" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BEL0hnw2213664 for ; Mon, 15 Dec 2025 08:40:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=OqlJLDbVw4T n78JJhjxStsJzAZqGZdEBuegjg/h0GSI=; b=e39neXgbZS2rDcxHUr4/HLOsedp sIzFQ/+TleNw6ZWsGQjK0ZVvJhE+3G3cDIUQx2U+5Onx1lWTp7eSpzjLHa+pRyW6 Qv7jlWcmV3unqe5f7NS/+GJG4tsTHLfBmm6cOAMnNLRtdBoGlhiKhe3pi2uiL+f6 sB7G6q50FVntmVe0x7K1fZbHH+hA07q2eNtPEhthhkoC3dZUc3Ervh0NXMVoCmi6 TEBgpuHhzjU0C00i7wI1PgfRGzGm8+K5FcsMdoZJ1/iNRujpRJb1mMXD5UhITFNR 9VoAvune1NlQKT9UZ/xXt1fMJRNYAO3IE+99Pii274o9q8m6xmy2W8CZDDw== 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 4b1771ucgp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 15 Dec 2025 08:40:12 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8b2de6600c0so850369085a.1 for ; Mon, 15 Dec 2025 00:40:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765788012; x=1766392812; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OqlJLDbVw4Tn78JJhjxStsJzAZqGZdEBuegjg/h0GSI=; b=eBSuoKWfeN43G8ZhA5MoM4/ZqRMUkOG8HK96I4sStsz2UnUeaALnTI6YXtTd6Hn2Hi oIVoIiTXzZdGV0zPP9n7ne3H85rXx8x6bwhsGtXalTqCXgazEJ/c9pTFhluIwGcEJRkf xzMrfrFFYZXtrnauOaIaMc2Mw9TQnzu5u5kWjeP57hZPRd/XaW7PwU1aL+eEBRnUv9rI NtQ/hpBYtf4v4/sHOXZAjZ257l4QiF8sVO3pYTiO1rHflx6WnjnG38MHB3191bH5OVp3 T8W3sgoqEauhyf9miwy/+lCUaKLVMV9SvZ1tD+p/j8ibpDGdl9eZg48NUupccVbAXUUp hZXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765788012; x=1766392812; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=OqlJLDbVw4Tn78JJhjxStsJzAZqGZdEBuegjg/h0GSI=; b=MNvvrFyK8cisMJZ1GXCrARfLh4btRjF/EOwczsZP3zznJiP02y9OBfLI/hy03jt/UK 1r1WzgP7bmpYa3SPa2IKfm8Tsd1x/JB5ahHkBfpGAWzG/bJf97tpGZcmwlHb5/BLKhVV NAv1y/vhOCJvf+PMwcTxg5PlYwr5ZWoznfRHg3Dbk3ilRaAkrAoj2qhhUJxfdskshyDN MPKlueZTRSGd5EWnSo8wWMsYOEiv2x0L7jV57V8Jj3bQtYRncv/PVSLgDdwj1dpJlkS/ yuixCoAfN4Qm0UZy7E8hsee8Za4LV1eeNg5p3MfyFDMuC/BLIF5bQItl4Yg4c5LCQS2U ACZA== X-Forwarded-Encrypted: i=1; AJvYcCVT2FeJfbzscVzmJwhp/n8l7Qj9cD+rLB9HiJ5U0PzN5q5oYkniKqUvwvZZR12nNexeRPnH6tzNFuo7758=@vger.kernel.org X-Gm-Message-State: AOJu0YzzfcAKf8YuYMVba3A0db9dpBc8ObaVYmjuDcNs4LJxV0JYi1BV reZN7Xyh9ZZgFqaZ/NfxIDEHOGA6DAsdkobPUXaiq9m7xtjfXzYxu1qmcduJBvtywUMhM1Csxl9 gEyN/1Z2QCZ2Yu1y2wSJWDtmHBJJ04JlSOe5b5OZDbOtRxHyCRWsPHzouApncZ3NO9eA= X-Gm-Gg: AY/fxX4u+Bl0U5tPtbdNDwJLLwxw40VmFR0CZiygdJodgefagwRU9Sw5GTPSKr8tob2 xLhG/FmIIpvUC6I7vHosN0QVtmpI2n27F9I6r1USv8b0og1F0oDoQirc+X9EueijmSNeLmlTrDG 61bYTKiLjT8NZqEazK2iU/9bxV5l5HenEl5eC+W/ts/wfefKQ5eGgIr61kbQNYH3hSMR5Q5x6DZ pvBPIKB5dABFxHrfFvMCpoM942t1xIJ9mjKpvmaeVNBncIuOOiTjQRtp+qA1AzKpNYq2P/bAkJN DcO8HYxqnHVgyIfDOXRdDhWgxNFoZauRgpIqHkiPw5RZ5i1VdCA1jKDBaCzS5rMP4JTvPOLojbX 3Mj5wYeupAFhB6bHzMmXUHFUMlR5Epsr2fRvTUoIt79Mvz37BfuqMXIcKrf3IkHN4Res= X-Received: by 2002:ac8:6a0c:0:b0:4f1:df6f:6399 with SMTP id d75a77b69052e-4f1df6f6fa6mr64921091cf.14.1765788011978; Mon, 15 Dec 2025 00:40:11 -0800 (PST) X-Google-Smtp-Source: AGHT+IEjq6cUNKx8n0oIPZ+dTibjwjdoBvKbVns0jWdiwucSy+EN2FmAkVrey2CIl/19EhkHEWqZXA== X-Received: by 2002:ac8:6a0c:0:b0:4f1:df6f:6399 with SMTP id d75a77b69052e-4f1df6f6fa6mr64921031cf.14.1765788011576; Mon, 15 Dec 2025 00:40:11 -0800 (PST) Received: from yuanjiey.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4f1bd6b50afsm90557971cf.21.2025.12.15.00.40.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 00:40:11 -0800 (PST) From: yuanjie yang To: robin.clark@oss.qualcomm.com, lumag@kernel.org, abhinav.kumar@linux.dev, jesszhan0024@gmail.com, sean@poorly.run, marijn.suijten@somainline.org, airlied@gmail.com, simona@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, yongxing.mou@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, tingwei.zhang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com Subject: [PATCH v3 03/11] dt-bindings: display/msm: dsi-controller-main: Add Kaanapali Date: Mon, 15 Dec 2025 16:38:46 +0800 Message-Id: <20251215083854.577-4-yuanjie.yang@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> References: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=Q6vfIo2a c=1 sm=1 tr=0 ts=693fc96c cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=NRHHWUy0EX9jfUzwrTwA:9 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-ORIG-GUID: FlzU8isO6dF1LwaYJl-h-8c-sRB0G4En X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDA3MSBTYWx0ZWRfX3yPf9wbnC49z LhAQe6yy9o4b8zP3HPv8QnJWTN447Qezt182z/9waOztcm2tE1y4TiR1NSOdidptkKsqmWSBWwP OJ1HCLQ8qGGGixGRReVevTLG/QO4EFry0tjR6hs2mnnm2HB9Pfm/+3+IHh1k+IE1ABafV1H/BoR /MLhDXr6ngqUzw/FP6xtP/P14dljF47ezYi2JLB2HvaFF5cc5RPY/Xb6C1HbqcURyZchNSPIKrG 86rLWiv89UBsR4Max3sV2kKOJNjroIummUHzn1BEVSJ1Sz+VRDzq4wfQl+iUGQDPdaILBov5/th NIiMQPA9fbzplazF58miqAlSgmnKj6lg2rzeVHXI9CYAsO/uhZgfJkZCIQ9hMhGNLfi1918BfFy gW5wc60Np4BhA2jEmX2sOKQGbb9AEg== X-Proofpoint-GUID: FlzU8isO6dF1LwaYJl-h-8c-sRB0G4En X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-15_01,2025-12-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 bulkscore=0 malwarescore=0 suspectscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512150071 Content-Type: text/plain; charset="utf-8" From: Yuanjie Yang The DSI registers on the Kaanapali platform differ from those on SM8750. So add DSI for Kaanapali to compatible these changes. Signed-off-by: Yuanjie Yang --- .../devicetree/bindings/display/msm/dsi-controller-main.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/display/msm/dsi-controller-m= ain.yaml b/Documentation/devicetree/bindings/display/msm/dsi-controller-mai= n.yaml index 4400d4cce072..536ebf331828 100644 --- a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml +++ b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml @@ -15,6 +15,7 @@ properties: - items: - enum: - qcom,apq8064-dsi-ctrl + - qcom,kaanapali-dsi-ctrl - qcom,msm8226-dsi-ctrl - qcom,msm8916-dsi-ctrl - qcom,msm8953-dsi-ctrl @@ -369,6 +370,7 @@ allOf: compatible: contains: enum: + - qcom,kaanapali-dsi-ctrl - qcom,sm8750-dsi-ctrl then: properties: --=20 2.34.1 From nobody Wed Dec 17 04:03:00 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 F120732936C for ; Mon, 15 Dec 2025 08:40:22 +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=1765788025; cv=none; b=GZdPTHrMgF5hZjz7olTEz3Zv7DUnW/K0quSz6eF/2NtUThzdkDJMx0mhoRjCV2voMbLIxcYzQSpg30R2GOEuiiwRE3ZOLj5Bq3aMWXQi7qdXH2/c24VHkziS6P4Mj6fx4zesPeCz5ySVsKs87TmOMMP+uYPjOnezgo+wRH9iDGo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765788025; c=relaxed/simple; bh=C/SRBt/7dSGnmJr1VczwjK56l7+Ma6+LmugqmP8ce6Q=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iayJ2eTMDZ1XbJShrFj2p66KQy+6sHz7EzjLW8lQv8aUxjCHhE3Pvt+ktS/66VasFhqh7P1YFXgYmAsWxfnPTavU7dvK3Tz00NxtAscJfQw7kUDcjQNxns787gx3K8osnOhIoaVcjt80EZRLrih2hzJFl5oqoZM+70fT3xrufLM= 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=goziGgG0; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Ae8Raskk; 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="goziGgG0"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Ae8Raskk" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BF8dtDk3501681 for ; Mon, 15 Dec 2025 08:40:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=ejOLCXs2H6V eH6zAgJDf6kqCLHfca0LQJWts7i4UWpM=; b=goziGgG0IItSySQrlKxP+XsOHrT rlBOewv2PZTaQm0KiIlo3bo5kOdGTpybHsFpJrrm8A0l15YJBxbSS1YOsDz1fePc i4g0IfQAopF2jze9fIXBu8sL2ZinRDBVgCnYzhgezX1vbcpsfCY4k0Oxu8sGA8tC Hd6ndep0mXWt9vKRDIzqDGG6+LHw2jVYcgiSKLGXvHr4thW2d0rSRQWeIO0JPP2M 56o1Nop0mJCcnZ9SkoSB0Qv8/InuPn+1xLjXW6F2xJJQmRlMkfMMgwLCAX9vJI29 U/FIQmEkzNT/g6+LGu1VE83z4LfX2f4QPAUnFEEiBRZ8/BfIfIKaalNQ3Og== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b11cyks4a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 15 Dec 2025 08:40:21 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4ed7591799eso73732231cf.0 for ; Mon, 15 Dec 2025 00:40:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765788020; x=1766392820; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ejOLCXs2H6VeH6zAgJDf6kqCLHfca0LQJWts7i4UWpM=; b=Ae8Raskkm7HXz8Fj2/Ob8z2H6XSKZ3OpVdsTb/UfkkC1RZ33izL6z6BKpu04oJcFQi VauDeNdhEOwbt7xalsuSk+p47AdyUqW4Ax1tcQibPQfIMYl9bIHgSsYWrZ29xuK2zaIH V6DK38YD6IQs9CTaMZoP7SHq3DvqM2rmW3yQWvzOtY0fSqLsmHz1YQx7XhePcgE6W2nJ rdSiHDqIvNuELyiuDAgXNnpUrAi0sP0lq1Ko1mOpDOLwqRkyUEDIj1ckhiAgf5Dc/9U3 wPPf/Q15fiXV6BYTJ2Xnp5NY7gUw7pnwJfeA3uTstRz72o4/7kNt4w6TuFgiT36OubcQ +agg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765788020; x=1766392820; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ejOLCXs2H6VeH6zAgJDf6kqCLHfca0LQJWts7i4UWpM=; b=hi/qQp+/2z2/cbp5xYFu/16cafAYdTTJ7HWrA/ha7F+yRdkjM4D8bQsIt0R1H3Lix2 zrbx0DmGwkRi96P08P4nyEQegBFYRoLw8JMNGIVQSPJcHYX2sZWSkekuW5Ni1evELUVm w/OttPJiW/ISy6A0NHgHtL4nMG2EFIkbH7tob4jvL9AUtdpCIvq87LuMyhS9cDm1FK6l QBQh6H2Cn5eq7aQsxHf7Thsv0RBhvp6UVQbqS/Lvy8KUYY6sdaAR9LNM3QgIMVfXaiAq NjoLauzKqEnZcMaBNtkb7WsFF88Gxaf55LX2mKc3/PTEPNc204sknJZ6W9YODdZGuhwz KZmA== X-Forwarded-Encrypted: i=1; AJvYcCXfWsyTw95GwVyJ4fYZ1avbSuuqHT2rD1LjGqh9F5docBzuyuWU+u/VgBD0gPp3WFE2DX0/KSz/oXHoMJE=@vger.kernel.org X-Gm-Message-State: AOJu0YzBIJRjOeyPDaj8MMPXNoIVsSa7p3/w+nGAn2q5rrihgwxe6ecb 4eVejKpBGWjJ2tZFAY0CBf4dJqpdT5ip6D4TY586eNxX2GrrE02mM188KiF39J4NuM/hKW97jh6 21/k5YlFJ7e1V/hXC/VUk/0Tt0KIUVgq10YzNoyTd214QcB93ElcJCPEQKapWe4xlEKM= X-Gm-Gg: AY/fxX6+NbhZpeUSXNfoUOZ5OizFprx/jhqRinBxdYqiC4ioannRj83K6sR5K4C8J9Z CPonQZJtqK6gHqtobeyGSThInfEctbX9GweFnk4LWU5z5JzKB8Fpw4mYBtlA+N0LB4fPOgNvo8Z AVIC6Vw+aIQtv7bpKgu7fO0vgai9b0uyxqEyhy3+aOmZveerkLZJddD25+OxGN8G67CCazaBhRZ GlX8jS7oyc2KOjX3PVm37EKCJZEG/drYV5Yr4FmolDw1FsRwl4uf3LZmEx7To6pncsC05XAoJMy byKgrKvOYEM3DtogbkW7pHGbiTtWU10D+3EQyPE4m6ngHikcMH3X3Hj+IUURQPZCgU2NiQMjkmy w8jlMw8mQPe7MvuTQEnrx85izBTKNL0igSqGIPesjCXvmG0KGEHSyZENomv/WBkeRL1c= X-Received: by 2002:a05:622a:14:b0:4ee:739:149 with SMTP id d75a77b69052e-4f1d059e3a1mr136581601cf.46.1765788020573; Mon, 15 Dec 2025 00:40:20 -0800 (PST) X-Google-Smtp-Source: AGHT+IEmxFdMKPIKbwVSnYQ41ff/1mZalKEXYhAjGYgahZJ4WpTfUfg/F8/VvJ6t7RoZzhLyp5YFjg== X-Received: by 2002:a05:622a:14:b0:4ee:739:149 with SMTP id d75a77b69052e-4f1d059e3a1mr136581431cf.46.1765788020149; Mon, 15 Dec 2025 00:40:20 -0800 (PST) Received: from yuanjiey.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4f1bd6b50afsm90557971cf.21.2025.12.15.00.40.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 00:40:19 -0800 (PST) From: yuanjie yang To: robin.clark@oss.qualcomm.com, lumag@kernel.org, abhinav.kumar@linux.dev, jesszhan0024@gmail.com, sean@poorly.run, marijn.suijten@somainline.org, airlied@gmail.com, simona@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, yongxing.mou@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, tingwei.zhang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com Subject: [PATCH v3 04/11] dt-bindings: display/msm: qcom,kaanapali-mdss: Add Kaanapali Date: Mon, 15 Dec 2025 16:38:47 +0800 Message-Id: <20251215083854.577-5-yuanjie.yang@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> References: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDA3MiBTYWx0ZWRfX/2ra7hMHJbcA t8XS8GnK2kmzL16Z1+BzB2VoN5z/ggbViXFvTBn6v77EDiMz1w/b8dgeYXje//JEgo/q23OOmf5 xBaJq5y52VRdI2CxAdK6lZ2DhqMKpTwKVa+NqfEHa9eHcGnXKZ07YiOxnDODu/OwfroDivmxDKe VC7IKMrkTN5VoX6OoLIhid4SUIG/pHTChOfVQlS20e2bsgKBDTWsXSIdi9MK0qDrSRdyRMoEdqd U0/IotCalMZbyzAlebjnumhC4InTkNyITLabhtvyVMr0DDKWSzYHGrDfB6TxWqDB7s+Z0XazOVJ /QZqZ37powzsQK2YFLcjAkQSXSyFY5KNyv0bCaMWlmM/9CVjh/LEB8uRGiqTML/BhBZswVJH9Ug 3iU4mz/QONdRE4hPlhPl0jBmq+EHMw== X-Proofpoint-GUID: Hgwu5LcVum5KFxC1fORs_cNlueM54VPG X-Authority-Analysis: v=2.4 cv=Afq83nXG c=1 sm=1 tr=0 ts=693fc975 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=gEfo2CItAAAA:8 a=EUspDBNiAAAA:8 a=ttgK4pBlxCW4zpXUERAA:9 a=dawVfQjAaf238kedN5IG:22 a=sptkURWiP4Gy88Gu7hUp:22 X-Proofpoint-ORIG-GUID: Hgwu5LcVum5KFxC1fORs_cNlueM54VPG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-15_01,2025-12-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512150072 Content-Type: text/plain; charset="utf-8" From: Yuanjie Yang Kaanapali introduces DPU 13.0.0 and DSI 2.10. Compared to SM8750, Kaanapali has significant register changes, making it incompatible with SM8750. So add MDSS/MDP display subsystem for Qualcomm Kaanapali. Co-developed-by: Yongxing Mou Signed-off-by: Yongxing Mou Signed-off-by: Yuanjie Yang --- .../display/msm/qcom,kaanapali-mdss.yaml | 297 ++++++++++++++++++ 1 file changed, 297 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,kaan= apali-mdss.yaml diff --git a/Documentation/devicetree/bindings/display/msm/qcom,kaanapali-m= dss.yaml b/Documentation/devicetree/bindings/display/msm/qcom,kaanapali-mds= s.yaml new file mode 100644 index 000000000000..92293e2b4d94 --- /dev/null +++ b/Documentation/devicetree/bindings/display/msm/qcom,kaanapali-mdss.yaml @@ -0,0 +1,297 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/msm/qcom,kaanapali-mdss.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Kaanapali Display MDSS + +maintainers: + - Yongxing Mou + - Yuanjie Yang + +description: + Kaanapali MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blo= cks + like DPU display controller, DSI and DP interfaces etc. + +$ref: /schemas/display/msm/mdss-common.yaml# + +properties: + compatible: + const: qcom,kaanapali-mdss + + clocks: + items: + - description: Display AHB + - description: Display hf AXI + - description: Display core + - description: Display AHB SWI + + iommus: + maxItems: 1 + + interconnects: + items: + - description: Interconnect path from mdp0 port to the data bus + - description: Interconnect path from CPU to the reg bus + + interconnect-names: + items: + - const: mdp0-mem + - const: cpu-cfg + +patternProperties: + "^display-controller@[0-9a-f]+$": + type: object + additionalProperties: true + properties: + compatible: + const: qcom,kaanapali-dpu + + "^dsi@[0-9a-f]+$": + type: object + additionalProperties: true + properties: + compatible: + contains: + const: qcom,kaanapali-dsi-ctrl + + "^phy@[0-9a-f]+$": + type: object + additionalProperties: true + properties: + compatible: + const: qcom,kaanapali-dsi-phy-3nm + +required: + - compatible + +unevaluatedProperties: false + +examples: + - | + #include + #include + #include + #include + #include + + display-subsystem@9800000 { + compatible =3D "qcom,kaanapali-mdss"; + reg =3D <0x09800000 0x1000>; + reg-names =3D "mdss"; + + interrupts =3D ; + + clocks =3D <&disp_cc_mdss_ahb_clk>, + <&gcc_disp_hf_axi_clk>, + <&disp_cc_mdss_mdp_clk>, + <&disp_cc_mdss_ahb_swi_clk>; + resets =3D <&disp_cc_mdss_core_bcr>; + + power-domains =3D <&mdss_gdsc>; + + iommus =3D <&apps_smmu 0x800 0x2>; + + interrupt-controller; + #interrupt-cells =3D <1>; + + #address-cells =3D <1>; + #size-cells =3D <1>; + ranges; + + display-controller@9801000 { + compatible =3D "qcom,kaanapali-dpu"; + reg =3D <0x09801000 0x1c8000>, + <0x09b16000 0x3000>; + reg-names =3D "mdp", + "vbif"; + + interrupts-extended =3D <&mdss 0>; + + clocks =3D <&gcc_disp_hf_axi_clk>, + <&disp_cc_mdss_ahb_clk>, + <&disp_cc_mdss_mdp_lut_clk>, + <&disp_cc_mdss_mdp_clk>, + <&disp_cc_mdss_vsync_clk>; + clock-names =3D "nrt_bus", + "iface", + "lut", + "core", + "vsync"; + + assigned-clocks =3D <&disp_cc_mdss_vsync_clk>; + assigned-clock-rates =3D <19200000>; + + operating-points-v2 =3D <&mdp_opp_table>; + + power-domains =3D <&rpmhpd RPMHPD_MMCX>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + dpu_intf1_out: endpoint { + remote-endpoint =3D <&mdss_dsi0_in>; + }; + }; + + port@1 { + reg =3D <1>; + + dpu_intf2_out: endpoint { + remote-endpoint =3D <&mdss_dsi1_in>; + }; + }; + }; + + mdp_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + opp-156000000 { + opp-hz =3D /bits/ 64 <156000000>; + required-opps =3D <&rpmhpd_opp_low_svs_d1>; + }; + + opp-207000000 { + opp-hz =3D /bits/ 64 <207000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + }; + + opp-337000000 { + opp-hz =3D /bits/ 64 <337000000>; + required-opps =3D <&rpmhpd_opp_svs>; + }; + + opp-417000000 { + opp-hz =3D /bits/ 64 <417000000>; + required-opps =3D <&rpmhpd_opp_svs_l1>; + }; + + opp-532000000 { + opp-hz =3D /bits/ 64 <532000000>; + required-opps =3D <&rpmhpd_opp_nom>; + }; + + opp-600000000 { + opp-hz =3D /bits/ 64 <600000000>; + required-opps =3D <&rpmhpd_opp_nom_l1>; + }; + + opp-650000000 { + opp-hz =3D /bits/ 64 <650000000>; + required-opps =3D <&rpmhpd_opp_turbo>; + }; + }; + }; + + dsi@9ac0000 { + compatible =3D "qcom,kaanapali-dsi-ctrl", "qcom,mdss-dsi-ctrl"; + reg =3D <0x09ac0000 0x1000>; + reg-names =3D "dsi_ctrl"; + + interrupts-extended =3D <&mdss 4>; + + clocks =3D <&disp_cc_mdss_byte0_clk>, + <&disp_cc_mdss_byte0_intf_clk>, + <&disp_cc_mdss_pclk0_clk>, + <&disp_cc_mdss_esc0_clk>, + <&disp_cc_mdss_ahb_clk>, + <&gcc_disp_hf_axi_clk>, + <&mdss_dsi0_phy 1>, + <&mdss_dsi0_phy 0>, + <&disp_cc_esync0_clk>, + <&disp_cc_osc_clk>, + <&disp_cc_mdss_byte0_clk_src>, + <&disp_cc_mdss_pclk0_clk_src>; + clock-names =3D "byte", + "byte_intf", + "pixel", + "core", + "iface", + "bus", + "dsi_pll_pixel", + "dsi_pll_byte", + "esync", + "osc", + "byte_src", + "pixel_src"; + + operating-points-v2 =3D <&mdss_dsi_opp_table>; + + power-domains =3D <&rpmhpd RPMHPD_MMCX>; + + phys =3D <&mdss_dsi0_phy>; + phy-names =3D "dsi"; + + #address-cells =3D <1>; + #size-cells =3D <0>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + mdss_dsi0_in: endpoint { + remote-endpoint =3D <&dpu_intf1_out>; + }; + }; + + port@1 { + reg =3D <1>; + + mdss_dsi0_out: endpoint { + remote-endpoint =3D <&panel0_in>; + data-lanes =3D <0 1 2 3>; + }; + }; + }; + + mdss_dsi_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + opp-187500000 { + opp-hz =3D /bits/ 64 <187500000>; + required-opps =3D <&rpmhpd_opp_low_svs_d1>; + }; + + opp-250000000 { + opp-hz =3D /bits/ 64 <250000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + }; + + opp-312500000 { + opp-hz =3D /bits/ 64 <312500000>; + required-opps =3D <&rpmhpd_opp_svs>; + }; + + opp-358000000 { + opp-hz =3D /bits/ 64 <358000000>; + required-opps =3D <&rpmhpd_opp_svs_l1>; + }; + }; + }; + + mdss_dsi0_phy: phy@9ac1000 { + compatible =3D "qcom,kaanapali-dsi-phy-3nm"; + reg =3D <0x0 0x09ac1000 0x0 0x1cc>, + <0x0 0x09ac1200 0x0 0x80>, + <0x0 0x09ac1500 0x0 0x400>; + reg-names =3D "dsi_phy", + "dsi_phy_lane", + "dsi_pll"; + + clocks =3D <&disp_cc_mdss_ahb_clk>, + <&rpmhcc RPMH_CXO_CLK>; + clock-names =3D "iface", + "ref"; + + #clock-cells =3D <1>; + #phy-cells =3D <0>; + }; + }; --=20 2.34.1 From nobody Wed Dec 17 04:03:00 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 68534329C4B for ; Mon, 15 Dec 2025 08:40:30 +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=1765788032; cv=none; b=FAU3scj5uSnoTCEMwkGfhslguj84nvGdEmnOHB0VyUQ0G0jwcCFBkTtnPO5S1mb6E+rXu5nmQpsqMx0Yg1fkmmds8cRKiYMLLg0y6OLTeAgF3/KZuQaLAYXS6G96EyV1RK6xVDvhGcc/qAFoDJCX1ZKz0ljXm97As10Xgetu2ZA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765788032; c=relaxed/simple; bh=9NEfqZGAspJARqDUStHlgocJrjSmzTYofnsxILM05Aw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DUQe19ViwjAerb9dEBU6UWOGbi5Y0A2r0dvkSMW+mvYQnvYHHJ4586ntQkXffycmFyiLcNfIozHz6k6Ez+geKT2pjbChT3Atz9EPPw0v7lrRBq11+gn0vFQox2Nk++Qew6JnwGigJyNfnDXhCiA9x8AZosvnzojqF6X9i2J6OS8= 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=GiUHDZ+3; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eSjnLt2W; 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="GiUHDZ+3"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eSjnLt2W" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BEMPjkJ3259983 for ; Mon, 15 Dec 2025 08:40:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=T5hormO1Tzm iMptirNKEBXdbWFDw2mJd8ZK7F/ndOPI=; b=GiUHDZ+3mRxBGRkuHWnuU4KxTRD BRMMKpl+1xHry6oADWGSvdPkZvY+rD1NVwqvKuZTscyCSpqC5xzOLNewgDYP6YGy iQ61YS19nKRVoG12kW4M0mqs9caEtkDSLBDb9ebB/OAAHNzulM81ShFkmb9NG/gt 0xvcMsDj9BArDuTlawLA+3w84pP4koFgHsqdE2qB5zmkLa+SsjkES55fSvh4fbi7 qEVi1Fx7a6i4RwFIAkpzx5HkBhFD+v6eLJkUFK4n8OSY9n3CenOAeOEBCuQ3wQvP sh6hzVTwH8iXJrkfWwqGmKowSWerkizyQR7S+iBsnRw3Ysich7vchD9iTNg== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b11dsbsqu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 15 Dec 2025 08:40:29 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4f183e4cc7bso66349071cf.0 for ; Mon, 15 Dec 2025 00:40:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765788029; x=1766392829; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=T5hormO1TzmiMptirNKEBXdbWFDw2mJd8ZK7F/ndOPI=; b=eSjnLt2W70LuLHIYq9+9raYEGA9sk7i2a7Zs2OnYt5G/wG1HfreweThpNoySuO3WIJ nfib6SDQ92FtUSXT3SMfLTT5BTPnN7YDNTE/rAg1ULP69Cw4tkVOImzlJEHxiHcm2hJO KjSg3Wxd1N74hV9wkhM1jDastGgugmWf/DUow/Kk9vEQKAfSJHQyWE2aGPGX59jWBUAl LfA7lcNTZW4wSmQ0DBkSe7punLdVXaBdNSBHfpqsKwh2xuM5Ow18I5oXpSFtINjb7BW2 eQCEZE3nFhU36bwal2sskydQlZTYGr/EiPCyZ23RgBTpD9LHfLrXIyux2w8bPY9Kstq4 yckw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765788029; x=1766392829; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=T5hormO1TzmiMptirNKEBXdbWFDw2mJd8ZK7F/ndOPI=; b=XK96plIuZp+yUIYoXh4Fayaw0nvyjgFt4b6w2UGvK/tOR0JXu1Vhr0CGCVHHnCXJGT JDss6EjkqcR33+SjQggHrv+rThzht4D/SsaqDeqKDUvBDB1IsY3t74E2R6TT4qaoY4uC kN+zUuW+I9WYPv2IaRH+NLWQESefqvo9GqtFpDx6ltQw2B9XKVDk02RSfJ3gFOeWrrIt 9J2+xeQkLd7DqAfKhF7su2YKF45MLrIpJHeHUebI3oPG4E8fbYp3f5Adx7coqJQvdj7m zyuEiQRtVVi+cptROPvArsx06HyKDT4vYannZFFQeVVVB1DmzLDvZ3qkxxiiFGxjDVCw 8jXw== X-Forwarded-Encrypted: i=1; AJvYcCWP/0IuNHjw74E4slvC2DM8dunIdF66V/lET+4n8TG53oEBcg73NckevBnFd0draeGe/mnQ4+hH1uuljhw=@vger.kernel.org X-Gm-Message-State: AOJu0Yz2YjOFQYeRcS9KEzP8eVV861DA6BVUQQ9zE/j8cFwA+oGvCdEu BU4HT+RAvJkdgpHS2inxz40uujKHG2Cjc7sXlvQWtqjxHeo5YCv/Nw+yjLq7keqRzQoqnub6isC zd57BAvWxmAE7DlEND8UR0IVJ3+/GjVYsFESWhxqmPW/qkx4ajcSt2kPScgYDBzSn+vk= X-Gm-Gg: AY/fxX4Jgv2AqNS2BVGXFxMBL5/IAApkUqX7/X544wd/WoHykW6O0mKAtm512fH2+jQ gGtgx6ton7UAzORGAsv+GQ48BMFzzFSg9V7uMDmumGSiGMTDbHLMkLKEiVcjzA82sl21SS8IGS+ kA1eWXCdk/pWiP+vQMx43D7CUMwOQLY+hvAeIjeL9xwLbBK6nfpAJm+rvf6v5YqWgPOHUqAYeO6 acS9jtYgbk2at8uV6Wpefynzc0rq23/j0J0phSAHsmVt5jH2Quc4RP6VwUxjFTN316ifYAjSoKs AtpkMtJ/ty23Ujk9B5rzAevzF8Gr1DPR+btv7a7ICUF3YiJvHwJ2ZSqisVhjdr0b7aq0EB2wyQR Dzw3ONhmYVWYsvzdM+qaPG7M2jl9PhfM9Y4yHdtghN+lXwbgZ5Z+zH2Bjisr/N/euAJI= X-Received: by 2002:a05:622a:4c8d:b0:4b7:a680:2111 with SMTP id d75a77b69052e-4f1d049f54bmr115502541cf.8.1765788028600; Mon, 15 Dec 2025 00:40:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IE21JM+j2xLBWwUMji/MxEsoKpff5aogjPA7lsLdjIGqhs/FRgyL+lLOBLkdvbMHjyrb9e34Q== X-Received: by 2002:a05:622a:4c8d:b0:4b7:a680:2111 with SMTP id d75a77b69052e-4f1d049f54bmr115502311cf.8.1765788028170; Mon, 15 Dec 2025 00:40:28 -0800 (PST) Received: from yuanjiey.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4f1bd6b50afsm90557971cf.21.2025.12.15.00.40.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 00:40:27 -0800 (PST) From: yuanjie yang To: robin.clark@oss.qualcomm.com, lumag@kernel.org, abhinav.kumar@linux.dev, jesszhan0024@gmail.com, sean@poorly.run, marijn.suijten@somainline.org, airlied@gmail.com, simona@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, yongxing.mou@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, tingwei.zhang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com Subject: [PATCH v3 05/11] drm/msm/mdss: Add support for Kaanapali Date: Mon, 15 Dec 2025 16:38:48 +0800 Message-Id: <20251215083854.577-6-yuanjie.yang@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> References: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: jaLKUCPliMY1VQ5-N5L2FG1cj_Ba2oTM X-Proofpoint-ORIG-GUID: jaLKUCPliMY1VQ5-N5L2FG1cj_Ba2oTM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDA3MiBTYWx0ZWRfX0jR9VLQEPpp0 ywynTIs+iEEEJkQFP+gY5fmD/i1UufkLtI9NfSKl/gRegaYoNcoWCBCa/1syP5kYBk+SSIFXRRB gL4HaKWygjoEhN4afyQK3xwO5+9/VoAOoESX6ldamI9PVszXJh657u5vkVcBNzMuE2vyZawBueX b5A1/mwc67PS/fbDnUSf+y5jFXO7Yd6BIsOJkDjlqqOmI3AjeNsZQmQYu7OLVACozIBhYA8lzhr IBgDKTrReseWd2fP974E/1kmzvtVWKFNjjspCGW7U8BnvIkemssTkLJTIQRwrDudu7nRzk4VAJH NKr8UHkL+PaaYIfigq9MFGHsJBGfV7Yd9xbvNpc9ONIswF+86/DpD5ZHTmKdRSMFA4qF8imFcja 74ahs5l7xc5r8RmZLW3tYhoEZf3x9A== X-Authority-Analysis: v=2.4 cv=cfLfb3DM c=1 sm=1 tr=0 ts=693fc97d cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=sRsiwY7EFmHr75jNHr8A:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-15_01,2025-12-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512150072 Content-Type: text/plain; charset="utf-8" From: Yuanjie Yang Add mdss support for the Qualcomm Kaanapali platform. Co-developed-by: Yongxing Mou Signed-off-by: Yongxing Mou Signed-off-by: Yuanjie Yang --- drivers/gpu/drm/msm/msm_mdss.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/msm_mdss.c b/drivers/gpu/drm/msm/msm_mdss.c index bf9a33e925ac..cd330870a6fb 100644 --- a/drivers/gpu/drm/msm/msm_mdss.c +++ b/drivers/gpu/drm/msm/msm_mdss.c @@ -239,7 +239,11 @@ static void msm_mdss_setup_ubwc_dec_50(struct msm_mdss= *msm_mdss) =20 writel_relaxed(value, msm_mdss->mmio + REG_MDSS_UBWC_STATIC); =20 - writel_relaxed(4, msm_mdss->mmio + REG_MDSS_UBWC_CTRL_2); + if (data->ubwc_dec_version =3D=3D UBWC_5_0) + writel_relaxed(4, msm_mdss->mmio + REG_MDSS_UBWC_CTRL_2); + else + writel_relaxed(5, msm_mdss->mmio + REG_MDSS_UBWC_CTRL_2); + writel_relaxed(1, msm_mdss->mmio + REG_MDSS_UBWC_PREDICTION_MODE); } =20 @@ -296,6 +300,9 @@ static int msm_mdss_enable(struct msm_mdss *msm_mdss) case UBWC_5_0: msm_mdss_setup_ubwc_dec_50(msm_mdss); break; + case UBWC_6_0: + msm_mdss_setup_ubwc_dec_50(msm_mdss); + break; default: dev_err(msm_mdss->dev, "Unsupported UBWC decoder version %x\n", msm_mdss->mdss_data->ubwc_dec_version); @@ -552,6 +559,7 @@ static const struct msm_mdss_data data_153k6 =3D { }; =20 static const struct of_device_id mdss_dt_match[] =3D { + { .compatible =3D "qcom,kaanapali-mdss", .data =3D &data_57k }, { .compatible =3D "qcom,mdss", .data =3D &data_153k6 }, { .compatible =3D "qcom,glymur-mdss", .data =3D &data_57k }, { .compatible =3D "qcom,msm8998-mdss", .data =3D &data_76k8 }, --=20 2.34.1 From nobody Wed Dec 17 04:03:00 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 81D0930E0E7 for ; Mon, 15 Dec 2025 08:40:38 +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=1765788040; cv=none; b=A9EcnRgLsLxhbfLU1yTOxUP7CaBobq0clVD9OkdPy5QGghSdscXny879A1Y9QX9O2/kEzaOiafvW1fB9RXUA78AvchLnyV8CZJKPKqBIlOGuhLlM6Rt7Iusk5KueR8t5IJA5RnXlAFV9YG8ztCWW2PJoJTtM5kdpGdDVWw2M8Eg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765788040; c=relaxed/simple; bh=R1VM8ltcS4jz1YsMqy5CD0qOT8l5O47c//W7Qyj7LUU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=M1MlZpWg7ZJa3chlAlRf9+qgaph+7Zlm50iRcJba9QTWU1U9KgWJ8lXfyxwhbRRyTUbibFkKa7I3hWXznKBx5Sdv8BsG0fWu6ZLE/ToDtH78rka9MAtBe1ks7mqFRiLoXUEO6ER//f1wx++86kZcJJ10AtNTni49GfSyVDP8j6Q= 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=IHi/ZNsR; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=dNXshZWk; 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="IHi/ZNsR"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="dNXshZWk" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BENakuK3670445 for ; Mon, 15 Dec 2025 08:40:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=2OMfokriNEm V3L9dGBSJIm9fOYQLSe+dw4pSj/NNaNk=; b=IHi/ZNsRuNRV6uzb5NbGEGoGzEI Z5ixEVnBTRJ2k2xyiFMbAv/5ZK8n1wFRWq/anDqcZGTq8axSCDYdG7uvv2GlDC/I 2Bi3zwEWtc0MTzq5r1BKJgtjQmDqa9kyONYLdZntkhtobj41g9d/TMAWWtZ66LQI b1A267gEouKQ9tXnAsypiKtqTYU9Got30OAUMucCpp253PJqVeUYQG7PlG9Qp7mP 7KjiYMTMGHLoRG5okShcokgSgdQ7K8jmCmdGnvbouOFfo5JfVuFeuKkSV9V+1XkC CDZA4iA1s5D7ImrzS09HAqjEYWvBygY8dafZYkdI098ACZN8imva/3Kb+Dg== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b11avkqfb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 15 Dec 2025 08:40:37 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4edad69b4e8so64155411cf.1 for ; Mon, 15 Dec 2025 00:40:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765788037; x=1766392837; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2OMfokriNEmV3L9dGBSJIm9fOYQLSe+dw4pSj/NNaNk=; b=dNXshZWkghUBAQZcRVSCfHQTm7KOYcQrioochaa7Bsx7ZnSQrjiGgjzY1Ue7IcyykG UjtHpd2wSaKpBJmUXfU6LIXUUy9Vet3s0sGhjxDzPlPTqk/lZclmFsd2C0D0fhrvvQ9a 1SAa6lGQbBOXFjK/b50ckXXDPUUwezK8Lvf/+NvQpYE2K4xGxdNwozhzUEgNZ8vjIb9u GijIXgiI5CaQRGKElXLTdCHLT2SUWeVFkqMg3CbVBrB9Hl8D4EU1al8YkDrJr1/YK0VV o5Rh/kAmPJ6K5i6PzP2NhZUjaF5aHGGI1fa9n+szu8T4RyBkzvgD1aAAlwDSBdeUl5Hf F5DA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765788037; x=1766392837; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=2OMfokriNEmV3L9dGBSJIm9fOYQLSe+dw4pSj/NNaNk=; b=OWR5N4reMOGwDGOFl0UMBoqVIpn8wS2CnF9iEI8E/By5aJm/8m1X5UY+2IwNv/83BX 4C377E73nLwSrrK+NX2RpkmHoMVXx79aNtHzgE4efMmzpZsXiV46sLEmD1wupE2tfy4K 2t211/VHofI1mNfifW7SOQovWRWEEyqXB6f2r/ADGcXnpV6mA6PCXyxqOMA1BYNFhdNV gTExs4QEOLviXn73cRhT7Z2fuOQ9tzhf1OFLvsBQb/aN0sbwWA/pWq7EddnBw34784bE i9nhpdTRkNUlMPdo+03pWNqsl3mTkfHYLTB11aaZqDguTQWgZ+QZt0mX9y4vrqBvLoIe gQkQ== X-Forwarded-Encrypted: i=1; AJvYcCVYOoo/fXUlPY4FpeHJgcUdOtT5dqamnJrGifcn8KIa8O4Rb5z9u2MykjcxHlyXWih6Iq2JsziJeLhn9DE=@vger.kernel.org X-Gm-Message-State: AOJu0Yy1ik744S7qgKOtXNGL6rwkl/NF/tU9UOhWtcJd30hpN5kKrUJh Cf/4FVcU3NZYMPSLwJWcBGb9Lzjo/vsVpJLvxrHDyNCMO1NA0g/YNkZJDcNVLmWojmD5HKjgyc1 uvm6p+0tSvA/7Jt32bJHAPzPccZq2HyrNKh93vcTUeDG307/8LBZ7BRPpjrZXyWq7jzg= X-Gm-Gg: AY/fxX4Y/aIHavb73qdRnVDq2hYPQD+EEDMu6xBKjC3DWRvq51MZRULykPT4ogb0v6w mYkytnwNVxww4LWfmd2V3OiUVrqhJsezqVuA6X0kczzi15SLxdB16Ed4uNV6/QKrHKSLUsRo8MC Cxo5ZgXctRdhbNq5uVHnI1NxZZcyYFplNYkJ+1x4/u46pVqb4YKyYFJFGnURGLyM8/+iYtfX3X3 haiGlcnYTarLy/dPSATl337Pd7axu4yMAkGd6EhIoUpYRlujo6TOp2V2Qu0x3REVeDOto5BGE7L Tf4RWIM1uEhu3oMZ2H4n80ryuiNJB+f98G2UepT1y0KADKpuJhgkD4pZ3WhBrmikhlyTeYRLeT1 a8PNCTg6QwZWQAHrDjBIkxaVgel7HIlCgGIhcU9V5cO+aJ3ZyMHOA4Au8iJNSEFFh08o= X-Received: by 2002:ac8:5a49:0:b0:4f1:8bfd:bdc0 with SMTP id d75a77b69052e-4f1bfe6f7fbmr194668511cf.39.1765788036889; Mon, 15 Dec 2025 00:40:36 -0800 (PST) X-Google-Smtp-Source: AGHT+IFquCbinPDhAbYXnGkJ0wvZmDim1bIk7PfXYefiaPKtBfDyxhsk5phSVASo5dAYZ5Kl8RU5Tw== X-Received: by 2002:ac8:5a49:0:b0:4f1:8bfd:bdc0 with SMTP id d75a77b69052e-4f1bfe6f7fbmr194668261cf.39.1765788036482; Mon, 15 Dec 2025 00:40:36 -0800 (PST) Received: from yuanjiey.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4f1bd6b50afsm90557971cf.21.2025.12.15.00.40.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 00:40:36 -0800 (PST) From: yuanjie yang To: robin.clark@oss.qualcomm.com, lumag@kernel.org, abhinav.kumar@linux.dev, jesszhan0024@gmail.com, sean@poorly.run, marijn.suijten@somainline.org, airlied@gmail.com, simona@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, yongxing.mou@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, tingwei.zhang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, Dmitry Baryshkov Subject: [PATCH v3 06/11] drm/msm/dsi/phy: Add support for Kaanapali Date: Mon, 15 Dec 2025 16:38:49 +0800 Message-Id: <20251215083854.577-7-yuanjie.yang@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> References: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDA3MiBTYWx0ZWRfX5pxtSliiQtLX /QTG26cFdBMJD2XQD0RBqGdMWLDGK9PoJrYwCqXZtazdrR1Mh/NLN7YIOmRsgz/LsPAfchixtty BjvBTPW7SosMkCzLSKX/khFhckwB51+3dTfImCYqn/J8oWN5g4uVMlO1dawdOG8jl9SDPw2lW4O 170yVqxpje7ba8U5jGAtuoTMt77mR38okeoH0az9IHN1m5ps9QDThUrzGT1x306CTorxD6kAKIJ zURA4GAnmJWzJEZGa7VH/gasNbOS9Gxk+UEeiMKbVsHTZbJJ7bCFqi5urqrH75rCcXSiCH3nqXj jHdP8FJO85ioE2AVqGP8JWexycG6sFKFioMzRQvXpmdaI+XtCX9xRC7/c5pFRK4lyx/BieQ049/ 1biUKbe/shnMXB35hfqz0F52AU73AA== X-Proofpoint-GUID: KU91PDHEZrVjCwuD1xmkIVyMQqsdldMY X-Authority-Analysis: v=2.4 cv=PJQCOPqC c=1 sm=1 tr=0 ts=693fc985 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=ab5uJhi7KCXt4xzmVoQA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-ORIG-GUID: KU91PDHEZrVjCwuD1xmkIVyMQqsdldMY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-15_01,2025-12-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 suspectscore=0 adultscore=0 priorityscore=1501 bulkscore=0 spamscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512150072 Content-Type: text/plain; charset="utf-8" From: Yuanjie Yang Add DSI PHY support for the Kaanapali platform, kaanapali introduce addition of DSI2/DSI2_phy compared to SM8650, However, based on the HPG diagram, only DSI0_phy and DSI1_phy works. Co-developed-by: Yongxing Mou Signed-off-by: Yongxing Mou Reviewed-by: Dmitry Baryshkov Signed-off-by: Yuanjie Yang --- drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 ++ drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 1 + drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 23 +++++++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c b/drivers/gpu/drm/msm/ds= i/phy/dsi_phy.c index 4ea681130dba..7937266de1d2 100644 --- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c +++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c @@ -577,6 +577,8 @@ static const struct of_device_id dsi_phy_dt_match[] =3D= { .data =3D &dsi_phy_4nm_8650_cfgs }, { .compatible =3D "qcom,sm8750-dsi-phy-3nm", .data =3D &dsi_phy_3nm_8750_cfgs }, + { .compatible =3D "qcom,kaanapali-dsi-phy-3nm", + .data =3D &dsi_phy_3nm_kaanapali_cfgs }, #endif {} }; diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.h b/drivers/gpu/drm/msm/ds= i/phy/dsi_phy.h index 3cbf08231492..c01784ca38ed 100644 --- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.h +++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.h @@ -64,6 +64,7 @@ extern const struct msm_dsi_phy_cfg dsi_phy_5nm_sar2130p_= cfgs; extern const struct msm_dsi_phy_cfg dsi_phy_4nm_8550_cfgs; extern const struct msm_dsi_phy_cfg dsi_phy_4nm_8650_cfgs; extern const struct msm_dsi_phy_cfg dsi_phy_3nm_8750_cfgs; +extern const struct msm_dsi_phy_cfg dsi_phy_3nm_kaanapali_cfgs; =20 struct msm_dsi_dphy_timing { u32 clk_zero; diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c b/drivers/gpu/drm/ms= m/dsi/phy/dsi_phy_7nm.c index c5e1d2016bcc..8cb0db3a9880 100644 --- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c +++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c @@ -1504,3 +1504,26 @@ const struct msm_dsi_phy_cfg dsi_phy_3nm_8750_cfgs = =3D { .num_dsi_phy =3D 2, .quirks =3D DSI_PHY_7NM_QUIRK_V7_0, }; + +const struct msm_dsi_phy_cfg dsi_phy_3nm_kaanapali_cfgs =3D { + .has_phy_lane =3D true, + .regulator_data =3D dsi_phy_7nm_98000uA_regulators, + .num_regulators =3D ARRAY_SIZE(dsi_phy_7nm_98000uA_regulators), + .ops =3D { + .enable =3D dsi_7nm_phy_enable, + .disable =3D dsi_7nm_phy_disable, + .pll_init =3D dsi_pll_7nm_init, + .save_pll_state =3D dsi_7nm_pll_save_state, + .restore_pll_state =3D dsi_7nm_pll_restore_state, + .set_continuous_clock =3D dsi_7nm_set_continuous_clock, + }, + .min_pll_rate =3D 600000000UL, +#ifdef CONFIG_64BIT + .max_pll_rate =3D 5000000000UL, +#else + .max_pll_rate =3D ULONG_MAX, +#endif + .io_start =3D { 0x9ac1000, 0x9ac4000 }, + .num_dsi_phy =3D 2, + .quirks =3D DSI_PHY_7NM_QUIRK_V7_0, +}; --=20 2.34.1 From nobody Wed Dec 17 04:03:00 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 280EB329C48 for ; Mon, 15 Dec 2025 08:40:47 +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=1765788049; cv=none; b=T214QQBKvVKT3Whkjb+Dxlwo/MkYYOie3eBszzWzJd7pepaJ6e3GOaxCTAP8KvqLPjEXkIbQl4fnFUzDqW5DnoOMsXQpxXOK1W1Z4mMVQSpFsFXq4S2SQemMjJNomrWzpvyWovO1eEKw+S1LhV9hqKA4hvqdjkIox6m0Vpmsc88= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765788049; c=relaxed/simple; bh=eYqbCgFTx7pO2+x0Rgwk8N2aIIU8O+9nShTeQC9NPWs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=VShuBdivS64/w+4D9+tkRY5L66XSW87+UsX5b3C4tUugXY/EmYqaOzdYVpsrKovJ4DG96uYcHwO2xzPz7y+TmPLJOAoeM7FXF1dAUNVkM8w3MtAwmbYG5mSoL2EkBbgXTQkIb9dtrMMIXMSshRjXWZwv8q7blk3gLJCqpK2QlEE= 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=cdLNK5jD; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iVUV53sE; 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="cdLNK5jD"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iVUV53sE" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BENPlIj2884898 for ; Mon, 15 Dec 2025 08:40:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=AlSWjXvP89D 8APUnrnCOFRXps/W1frFHw3Bcs+wBdn0=; b=cdLNK5jDp8TBB7djLkAZ6HtFZoW WTej2mBmm7t8tW9Je6HRuT8zUzvjjl/E1dCsS+jz1SL8gSIVj+LBa2gF/tFSzOnn gnKYLsH7/g+1ybTm/TQyHPdboHESWBt3nz+LVX2rh+yJXq9lCscolQxx+Rus6neD 4GQ/HItzF9rWj+WdhnLzSHXZmyiIfe6vXtpoSmOUR3QQJIX1nPgIk7tmvPTE3SPq iBXBCRec+Cr7zO56HMJHb6pBYnHiVh3DYmaDCnDnJkPHS5APwMbzxjGEiarLw3ua QCWXir820zTOKa0IHrdXwJKQzq/T3QDgYULHlDUvFaRi6SKCxO3ZuUl68+Q== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b119t3swq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 15 Dec 2025 08:40:46 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4ed7591799eso73735891cf.0 for ; Mon, 15 Dec 2025 00:40:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765788046; x=1766392846; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AlSWjXvP89D8APUnrnCOFRXps/W1frFHw3Bcs+wBdn0=; b=iVUV53sEeI3gf18cay1Ao3WixaBEBu4r4sxQT0OwUFkmSD0Qne9aqEspQaqSCDvbz4 My+MOcZlEEv6ZRhJ1b7TX00AK4Hr1ConYFt6z9WAFv0tOfMDCuqwscebZmttDEBu907F R5G2zZAerTI6kh0T+u9ESN19F6cqnrb63Orh7UmcDYPlCEmYW54BGBE5BMNcB096tEsQ AlK1kGP7IBa45Fe1pGThEtsCR1RiDlq7fERcLb/m/PAVzX3qiOLZTWvo+mft6YHIWLFq qMrxwGugFHFYCitz3ix4PcgurcUK+RSprCjBsYsWznle0+i2EXqz/ibiveu0ZUEXb6+R xq+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765788046; x=1766392846; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=AlSWjXvP89D8APUnrnCOFRXps/W1frFHw3Bcs+wBdn0=; b=GJ66uuwcCTDI8h/ATqoIVWMxsSaIuxQAqdEYJ3Ld+bOAX+xoyKTJPXKaihF1fV9tlB sUsiYWK3xhOOt3M81O8zjdIsjdmOSg5n6KKVozGfPxrVnRJK6a/VswmbeUaEV0azFHP/ PvrlScYpeS7MHqGH/u3Q6Vz0wLyAh6eCoV82RTGTIUepPed86oLsjkYq/Ctmm9EKOSvo AhwvdVWIaerSGjj/825sfXJrwruWNFxcYgmAzHq5U6ZLaY2Jpw//+HTEMUzPh+bvBjxZ Sdw+EOHjKWHV8n9/fPsKrg+f/ap6/cZsAWioyjLvq4UcWM6azaB2XFlf6yIVg3UJFv/c zaoQ== X-Forwarded-Encrypted: i=1; AJvYcCVqEap9DiFD2em0aYISj3lICcTayc1tWU6MLnFXJDb5P8FWUB86k+XcdLniRzl/czZ4jrGSeylhCGHmttA=@vger.kernel.org X-Gm-Message-State: AOJu0YxtaIPbsLMeN05CJhZ+JVNfThD2WNwpeNvPPBa0nUCb+r6wCyot 7zaPG1HD+WHyi0tqdpBdl0HsYQQ0KTsWT5HjCx3OLforYPeKnoGmVpxj5qb4PPrAWJeAXstlnVN Rv+n2uyBdfzc7f7DYPb5eAwEnFkMXoSN+biFK3X/WSu/n0wKNm/J1U7G8rsqlV+WORgM= X-Gm-Gg: AY/fxX4MVW7/azIN/SfrclBCQi0Iyx30T0uj5K61XCSkaNVueS0ouY4F5IBooO0pTSW jsZPX3HjenOyIAvtUFY03iXFgaiBe8EJ4+VUTsluiGzxW5XpqYrV9HC248zuBrDNST5iVz56zfi wsmNF3gr8vrMDRnGZTc4RvT1vEcXWjYuQeLwriY+m//ETa0/gyvPl2uYrZdazY6EabRCgMBStRe 8bY26XzeUEBXZUanOw0KHRGRc25lYI85+OYDNbYOMn75ytL5XlL+N0KkHKxW5FesVaokXOnEE67 qfGecP7oPF3MMMlSi4U72Jh0PfZeSFHNuIBgGXZGVbkq3Sk/ejc1kXnOo6aOgmIBfgbOIxXD+iQ ivjDpbBruywyKMUMAvGwVoWh71XIC2QzAknsyoqIQdquF+sOIxnMFvsV5lhvnq2RyeZk= X-Received: by 2002:a05:622a:1791:b0:4e6:ebe3:9403 with SMTP id d75a77b69052e-4f1d059d261mr122345681cf.41.1765788045665; Mon, 15 Dec 2025 00:40:45 -0800 (PST) X-Google-Smtp-Source: AGHT+IGkrFIAQoibBowZ+hZ+Nx8U5gIQEDXi5Q9OFXQj88z4ksCGjc3LaNGlfwA9GNy8uOY0+1Glhg== X-Received: by 2002:a05:622a:1791:b0:4e6:ebe3:9403 with SMTP id d75a77b69052e-4f1d059d261mr122345531cf.41.1765788045177; Mon, 15 Dec 2025 00:40:45 -0800 (PST) Received: from yuanjiey.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4f1bd6b50afsm90557971cf.21.2025.12.15.00.40.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 00:40:44 -0800 (PST) From: yuanjie yang To: robin.clark@oss.qualcomm.com, lumag@kernel.org, abhinav.kumar@linux.dev, jesszhan0024@gmail.com, sean@poorly.run, marijn.suijten@somainline.org, airlied@gmail.com, simona@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, yongxing.mou@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, tingwei.zhang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, Dmitry Baryshkov Subject: [PATCH v3 07/11] drm/msm/dsi: Add support for Kaanapali Date: Mon, 15 Dec 2025 16:38:50 +0800 Message-Id: <20251215083854.577-8-yuanjie.yang@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> References: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDA3MiBTYWx0ZWRfX21yKXs2oBHHn DHOGSNysCkdzAetGnTOpXry0YPkR2gBGzvOorAkHHucIq1bSLj0gZNE/18N39JimO2eAMaw1v0j 4iIxCSJaiFTSoiHS9AImd4mfktmYu7wt8pYqq8IM38tJiaqs11LLBx8tDE0RrPn1LAMJEZ0VBsi 2+g6NhGPUVI+bgdGr0YlYRsxfqo6ww9hHwR2BvAqDhTfnHmofbDdy2SWqFx9QVEJQtlA9EmpR6Y 8ilb3XTXT6OmLSs4h9uXArYjZCVHlV3MYIUW9R2phfOZDAIHqG5YWtkS+1irKyTDLcTovwFKZB+ h+sxFGxUEA7KI0lNg9GfENJNPGEfNtsFELhgxExKziHdePcdijH2E2CzwnDaHZQDL3H+AJrflwE nEFqva8SpNzmAJQP0nvEqoURNSB1nQ== X-Proofpoint-GUID: IwResjmKPuhd9cW8aDkmRc5HDlE2EyFz X-Authority-Analysis: v=2.4 cv=E6nAZKdl c=1 sm=1 tr=0 ts=693fc98e cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=EGddA7oXPexY6v9tJfMA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-ORIG-GUID: IwResjmKPuhd9cW8aDkmRc5HDlE2EyFz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-15_01,2025-12-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 suspectscore=0 adultscore=0 clxscore=1015 spamscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512150072 Content-Type: text/plain; charset="utf-8" From: Yuanjie Yang Add DSI Controller version 2.10.0 support for DSI on Qualcomm Kaanapali SoC. Co-developed-by: Yongxing Mou Signed-off-by: Yongxing Mou Reviewed-by: Dmitry Baryshkov Signed-off-by: Yuanjie Yang --- drivers/gpu/drm/msm/dsi/dsi_cfg.c | 13 +++++++++++++ drivers/gpu/drm/msm/dsi/dsi_cfg.h | 1 + 2 files changed, 14 insertions(+) diff --git a/drivers/gpu/drm/msm/dsi/dsi_cfg.c b/drivers/gpu/drm/msm/dsi/ds= i_cfg.c index fed8e9b67011..bd3c51c350e7 100644 --- a/drivers/gpu/drm/msm/dsi/dsi_cfg.c +++ b/drivers/gpu/drm/msm/dsi/dsi_cfg.c @@ -205,6 +205,17 @@ static const struct msm_dsi_config sm8650_dsi_cfg =3D { }, }; =20 +static const struct msm_dsi_config kaanapali_dsi_cfg =3D { + .io_offset =3D DSI_6G_REG_SHIFT, + .regulator_data =3D sm8650_dsi_regulators, + .num_regulators =3D ARRAY_SIZE(sm8650_dsi_regulators), + .bus_clk_names =3D dsi_v2_4_clk_names, + .num_bus_clks =3D ARRAY_SIZE(dsi_v2_4_clk_names), + .io_start =3D { + { 0x9ac0000, 0x9ac3000 }, + }, +}; + static const struct regulator_bulk_data sc7280_dsi_regulators[] =3D { { .supply =3D "vdda", .init_load_uA =3D 8350 }, /* 1.2 V */ { .supply =3D "refgen" }, @@ -332,6 +343,8 @@ static const struct msm_dsi_cfg_handler dsi_cfg_handler= s[] =3D { &sm8650_dsi_cfg, &msm_dsi_6g_v2_host_ops}, {MSM_DSI_VER_MAJOR_6G, MSM_DSI_6G_VER_MINOR_V2_9_0, &sm8650_dsi_cfg, &msm_dsi_6g_v2_9_host_ops}, + {MSM_DSI_VER_MAJOR_6G, MSM_DSI_6G_VER_MINOR_V2_10_0, + &kaanapali_dsi_cfg, &msm_dsi_6g_v2_9_host_ops}, }; =20 const struct msm_dsi_cfg_handler *msm_dsi_cfg_get(u32 major, u32 minor) diff --git a/drivers/gpu/drm/msm/dsi/dsi_cfg.h b/drivers/gpu/drm/msm/dsi/ds= i_cfg.h index 38f303f2ed04..5dc812028bd5 100644 --- a/drivers/gpu/drm/msm/dsi/dsi_cfg.h +++ b/drivers/gpu/drm/msm/dsi/dsi_cfg.h @@ -32,6 +32,7 @@ #define MSM_DSI_6G_VER_MINOR_V2_7_0 0x20070000 #define MSM_DSI_6G_VER_MINOR_V2_8_0 0x20080000 #define MSM_DSI_6G_VER_MINOR_V2_9_0 0x20090000 +#define MSM_DSI_6G_VER_MINOR_V2_10_0 0x200a0000 =20 #define MSM_DSI_V2_VER_MINOR_8064 0x0 =20 --=20 2.34.1 From nobody Wed Dec 17 04:03:00 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 99449329393 for ; Mon, 15 Dec 2025 08:40:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765788057; cv=none; b=bgNcisEyl6DH5daX4hfi+UVJS1F1e9pUg8CbjpU835IlnBu+F7MVSCt7hQB+hXf+Yol8v64Xp6y9UdZHOJyucN7jGoVZAzM/dSdN2ccpSBvRtsQfsbHRMtmhCcU6oUih4J+/E2laO1tSwKxj/3q/LU6+P0noygp7pLRv8tkFyW4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765788057; c=relaxed/simple; bh=CWfkoJLjgIy2gUgRXCOUxurYebB6LVsEC7XgknJptQU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=OsUL5N+HLGNnpk4QmCoF+qj1Ys5CR3AKeBFUxKPa02DfYlxNwNe5eg/jcx6gLv6EgYt2uvrPArQXpvzLJESUYBpNUBB428SEH1KsRfF7ZVa6OlRsvqHDF8A+NnMNy8Jd4zp8/ChAYpmPPMuMJyxe4IV14M7mRs8QhbKjK9WmJ/A= 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=ipzbHdt3; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZqYoXEpS; 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="ipzbHdt3"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZqYoXEpS" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BENK2af2287701 for ; Mon, 15 Dec 2025 08:40:55 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=ZtV4X5cR6Ur U16OtyrxKymwqQ6A4WNFYALAmfpTs2C4=; b=ipzbHdt3Z5lcQmn0jzbJcgXpN8W UfprVbrjyX2o7v4dGazqeKJk+z5+z+uEbkqeUyfRq3tdTAqZZeBbAfaylR0r3/J+ lM+oCBP9415T45FFHQCSYOZrKMNnEf4B8iITcmo41KaIUtgvLutINk1QzFUAciXR QURaJOUNHdf9E2q6yV0+vxJzc8IncDdukXeePj8U5oigDWQ6Ixv4TVya4DpuiAeL lQg6+g9/0Aa7vdp1rUxSH/xYKMWx1rBRwlwekvDjqrcGPjBjueYOLG6i/Vtboz/e VJdvnfzKirxhGtf7OWixKI78Hu/Tr9CPXfB+vVa092DLKnkWJSbqRgv1SXA== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b11afbu2s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 15 Dec 2025 08:40:54 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4ee3dfe072dso86341721cf.2 for ; Mon, 15 Dec 2025 00:40:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765788054; x=1766392854; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZtV4X5cR6UrU16OtyrxKymwqQ6A4WNFYALAmfpTs2C4=; b=ZqYoXEpSQOeTviWeDH19SYN8HBdoKXPUib39kOcETbrUluDIj4R2kMdIM8L+zfj5m3 L8d8PE4kJI5DQtknKxgdnWLnAjijXwKAKYDD0tsz3Jrl0A/WgxpF3PM3jvnu7rF1aAzU nUiH01ieAzWyW/xF4ZgTSweLVtdZnH8u6g1bMpECIWEtluJmioIybknJ2dPWNpIaYHge ExMGABvK7RQN8HVCuSqB1yH+dgDl8/t0FDPYRJhRSNUgZ7PP5DNEc+yXUumhyl9C4yxd HXjYn4knP1rgEOW2tnj33EtL/S/YWNlU93TL2YXQAbRjFE84Pt3KyKFqpGbDckRsdiol LDkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765788054; x=1766392854; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZtV4X5cR6UrU16OtyrxKymwqQ6A4WNFYALAmfpTs2C4=; b=XkjbSBLQ+f/bnM0WoqQjCuo6+vrObM3VBmhYn3yZt0JDOByeEBNsoMiMD+8Ikba2qi v4UWv9VU8f73WlG0tLRQDvJwmrtzYjd+e0/Q2Kok7gwAy/U/sC5oYILXdNPr4qa1eMEg GEuflRu1UiZtcuHm+xgJO3W4oMwV1fYytVHXc6/tcHf9/wbPzSU94WtvF7ICgeH4Mx3e tkA4WoV8YQhV06CaPjjOw/hf47Rywdr58zwnL/dMy+1o1xUAhCK9XiH2o+N/HtRdDgq5 0ZxJZWvrfcV49E/RusfkqSUn3p3t9eHoWREY6WRMm0WthjIPDpwVOz8io1HycxZo3KUR h7Lw== X-Forwarded-Encrypted: i=1; AJvYcCVTmrmzn74EEoW9653DHq77RSDYYZ538xy3qw1XRGBqlccMo3Wbsvo7FHKt1VMlydt9LBpFx1y4UgMWvCQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyJYbxW2CaRG2laZHgOa0cdd4rje43IxIaeTpernGueDpKL9rZX XXyHxaULLV7ESD3nBownHRSPDqFupW+NTPvK4wteshUYc5sfuwwW0/D7aqYOJLQY0xB2kcmhChw zURc4PwHQHQvLFJwsmMuf3bGQeHb0UfC4YujUUgx4k5K0xAtBpuiWzMo/HJ/NwcJWQjY= X-Gm-Gg: AY/fxX73mtQk5nzmAPouxefCMAdzsBmcxoNefQM83R2z3IsGc+H/hcU4K7zPnlNKiTj vszfUNVZNRAr/B2eN4xgNruYTbsov5e1X76SGrD3zVHzmzubSMFsSy0chSqjBBM553OcJW+Ea98 L6GFj1Z9+twL7RM4gDKNgEIGAwzZWFqguy+hT6cHqVC3zS34piP44NVJKQvldv/fkPbu2CBGl40 aGGbKJ2sC9APFYoskobpzndShPu1nR7r7QgpwSN3ObiGWJTghYB2c3NYbZLZ+xmQPtcHZKsjUoY ee2ZCbOMyavzmKHXD2S6zpSWk2mG+jrvv5fNLltyr5mwqZwr1TD/pVG3Pbw61/bFeP4o79kO/HY amiiHMyRBlYicTEkAgggAKxk+rZB/+qiAAuS3IrG5g+q3IQ3b0R0vKr7WsJjGgfZTrIo= X-Received: by 2002:ac8:5794:0:b0:4f1:c6c4:dbcf with SMTP id d75a77b69052e-4f1d05e1994mr118120701cf.41.1765788053682; Mon, 15 Dec 2025 00:40:53 -0800 (PST) X-Google-Smtp-Source: AGHT+IH/1noZeIOiPTqPNhvlgm4f0gFz0fAc6cRFHkHLSAhxls+TIUbS04EGECkvuqYtOB+uQYVx2A== X-Received: by 2002:ac8:5794:0:b0:4f1:c6c4:dbcf with SMTP id d75a77b69052e-4f1d05e1994mr118120621cf.41.1765788053258; Mon, 15 Dec 2025 00:40:53 -0800 (PST) Received: from yuanjiey.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4f1bd6b50afsm90557971cf.21.2025.12.15.00.40.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 00:40:52 -0800 (PST) From: yuanjie yang To: robin.clark@oss.qualcomm.com, lumag@kernel.org, abhinav.kumar@linux.dev, jesszhan0024@gmail.com, sean@poorly.run, marijn.suijten@somainline.org, airlied@gmail.com, simona@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, yongxing.mou@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, tingwei.zhang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com Subject: [PATCH v3 08/11] drm/msm/dpu: Add interrupt registers for DPU 13.0.0 Date: Mon, 15 Dec 2025 16:38:51 +0800 Message-Id: <20251215083854.577-9-yuanjie.yang@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> References: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=TtDrRTXh c=1 sm=1 tr=0 ts=693fc996 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=RfJNy9JZAWTFlj1jTG0A:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDA3MiBTYWx0ZWRfXwNENAGPUetkW 8yF/TZYWWhyirfwBFL31RK/eT9Brl7EMVIBIpcoKZiIJhEnssWMkERy/VDbUdzir6nRUajl+jeR woV41YDsQyRYHmMB30J2X1hxjr/ecm6YLjy7ysLn6yeJdRAAv7V8HILbY4ZjhASQO0ZQa3g0uhV 6dka1dlsvlshEs2j2uj41fnUOTZ7u1pB4aYwvFMRtLUVdpP+Am2V6RzpK9fYgbjtLXqiR57hLfn 9DMtAJ2tfcPDio/XlcgsuF/MWGKOjLOiD7atB4u+rw306qyF3GklshYCH6Nks2WrU5sokSnRvm5 oNw6+Ixqb23G2mEQFzY261oexuogQZsAPf5o62ZCfFSUuK/R2+PpKtw3Q0IIRsI6BKlSqafbZLl aHdzOmKiJW7HGx0TuBtXZMsW5wNSmg== X-Proofpoint-GUID: NHAnqFYSFawRlL4kOk59n2sjGy9OkcVv X-Proofpoint-ORIG-GUID: NHAnqFYSFawRlL4kOk59n2sjGy9OkcVv X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-15_01,2025-12-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 clxscore=1015 priorityscore=1501 bulkscore=0 adultscore=0 impostorscore=0 malwarescore=0 phishscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512150072 Content-Type: text/plain; charset="utf-8" From: Yuanjie Yang DPU version 13.0.0 introduces changes to the interrupt register layout. Update the driver to support these modifications for proper interrupt handling. Co-developed-by: Yongxing Mou Signed-off-by: Yongxing Mou Signed-off-by: Yuanjie Yang Reviewed-by: Dmitry Baryshkov --- .../gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 89 ++++++++++++++++++- 1 file changed, 88 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c b/drivers/gp= u/drm/msm/disp/dpu1/dpu_hw_interrupts.c index 49bd77a755aa..5b7cd5241f45 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c @@ -40,6 +40,15 @@ #define MDP_INTF_REV_7xxx_INTR_TEAR_STATUS(intf) (MDP_INTF_REV_7xxx_TEAR_O= FF(intf) + 0x004) #define MDP_INTF_REV_7xxx_INTR_TEAR_CLEAR(intf) (MDP_INTF_REV_7xxx_TEAR_O= FF(intf) + 0x008) =20 +#define MDP_INTF_REV_13xx_OFF(intf) (0x18d000 + 0x1000 * (intf)) +#define MDP_INTF_REV_13xx_INTR_EN(intf) (MDP_INTF_REV_13xx_OFF(intf) + 0= x1c0) +#define MDP_INTF_REV_13xx_INTR_STATUS(intf) (MDP_INTF_REV_13xx_OFF(intf) = + 0x1c4) +#define MDP_INTF_REV_13xx_INTR_CLEAR(intf) (MDP_INTF_REV_13xx_OFF(intf) += 0x1c8) +#define MDP_INTF_REV_13xx_TEAR_OFF(intf) (0x18d800 + 0x1000 * (intf)) +#define MDP_INTF_REV_13xx_INTR_TEAR_EN(intf) (MDP_INTF_REV_13xx_TEAR_OFF(= intf) + 0x000) +#define MDP_INTF_REV_13xx_INTR_TEAR_STATUS(intf) (MDP_INTF_REV_13xx_TEAR_O= FF(intf) + 0x004) +#define MDP_INTF_REV_13xx_INTR_TEAR_CLEAR(intf) (MDP_INTF_REV_13xx_TEAR_O= FF(intf) + 0x008) + /** * struct dpu_intr_reg - array of DPU register sets * @clr_off: offset to CLEAR reg @@ -199,6 +208,82 @@ static const struct dpu_intr_reg dpu_intr_set_7xxx[] = =3D { }, }; =20 +/* + * dpu_intr_set_13xx - List of DPU interrupt registers for DPU >=3D 13.0 + */ +static const struct dpu_intr_reg dpu_intr_set_13xx[] =3D { + [MDP_SSPP_TOP0_INTR] =3D { + INTR_CLEAR, + INTR_EN, + INTR_STATUS + }, + [MDP_SSPP_TOP0_INTR2] =3D { + INTR2_CLEAR, + INTR2_EN, + INTR2_STATUS + }, + [MDP_SSPP_TOP0_HIST_INTR] =3D { + HIST_INTR_CLEAR, + HIST_INTR_EN, + HIST_INTR_STATUS + }, + [MDP_INTF0_INTR] =3D { + MDP_INTF_REV_13xx_INTR_CLEAR(0), + MDP_INTF_REV_13xx_INTR_EN(0), + MDP_INTF_REV_13xx_INTR_STATUS(0) + }, + [MDP_INTF1_INTR] =3D { + MDP_INTF_REV_13xx_INTR_CLEAR(1), + MDP_INTF_REV_13xx_INTR_EN(1), + MDP_INTF_REV_13xx_INTR_STATUS(1) + }, + [MDP_INTF1_TEAR_INTR] =3D { + MDP_INTF_REV_13xx_INTR_TEAR_CLEAR(1), + MDP_INTF_REV_13xx_INTR_TEAR_EN(1), + MDP_INTF_REV_13xx_INTR_TEAR_STATUS(1) + }, + [MDP_INTF2_INTR] =3D { + MDP_INTF_REV_13xx_INTR_CLEAR(2), + MDP_INTF_REV_13xx_INTR_EN(2), + MDP_INTF_REV_13xx_INTR_STATUS(2) + }, + [MDP_INTF2_TEAR_INTR] =3D { + MDP_INTF_REV_13xx_INTR_TEAR_CLEAR(2), + MDP_INTF_REV_13xx_INTR_TEAR_EN(2), + MDP_INTF_REV_13xx_INTR_TEAR_STATUS(2) + }, + [MDP_INTF3_INTR] =3D { + MDP_INTF_REV_13xx_INTR_CLEAR(3), + MDP_INTF_REV_13xx_INTR_EN(3), + MDP_INTF_REV_13xx_INTR_STATUS(3) + }, + [MDP_INTF4_INTR] =3D { + MDP_INTF_REV_13xx_INTR_CLEAR(4), + MDP_INTF_REV_13xx_INTR_EN(4), + MDP_INTF_REV_13xx_INTR_STATUS(4) + }, + [MDP_INTF5_INTR] =3D { + MDP_INTF_REV_13xx_INTR_CLEAR(5), + MDP_INTF_REV_13xx_INTR_EN(5), + MDP_INTF_REV_13xx_INTR_STATUS(5) + }, + [MDP_INTF6_INTR] =3D { + MDP_INTF_REV_13xx_INTR_CLEAR(6), + MDP_INTF_REV_13xx_INTR_EN(6), + MDP_INTF_REV_13xx_INTR_STATUS(6) + }, + [MDP_INTF7_INTR] =3D { + MDP_INTF_REV_13xx_INTR_CLEAR(7), + MDP_INTF_REV_13xx_INTR_EN(7), + MDP_INTF_REV_13xx_INTR_STATUS(7) + }, + [MDP_INTF8_INTR] =3D { + MDP_INTF_REV_13xx_INTR_CLEAR(8), + MDP_INTF_REV_13xx_INTR_EN(8), + MDP_INTF_REV_13xx_INTR_STATUS(8) + }, +}; + #define DPU_IRQ_MASK(irq_idx) (BIT(DPU_IRQ_BIT(irq_idx))) =20 static inline bool dpu_core_irq_is_valid(unsigned int irq_idx) @@ -507,7 +592,9 @@ struct dpu_hw_intr *dpu_hw_intr_init(struct drm_device = *dev, if (!intr) return ERR_PTR(-ENOMEM); =20 - if (m->mdss_ver->core_major_ver >=3D 7) + if (m->mdss_ver->core_major_ver >=3D 13) + intr->intr_set =3D dpu_intr_set_13xx; + else if (m->mdss_ver->core_major_ver >=3D 7) intr->intr_set =3D dpu_intr_set_7xxx; else intr->intr_set =3D dpu_intr_set_legacy; --=20 2.34.1 From nobody Wed Dec 17 04:03:00 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 4C88E32AAB1 for ; Mon, 15 Dec 2025 08:41: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=1765788066; cv=none; b=Y/hbdYqhdTk83LIdIZHpvAaWnCvXZtpIYuaCsmYT8QGvMcbbgHfswvOo8YiyY1NYKob/FEAyf/CYcOhW0xSnlQRHJB7VzxgjvD4kP9RfsSGU7/FFEoP/Ek6Bkp5RHhEeb8kepir4s66grxldDsVRluvcH+EUxSZgGs9wp7xVuXc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765788066; c=relaxed/simple; bh=pi+q+INUxyyiwE0IJfXuVCBAGBL4kBDPbNEVNUe2nrY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=uIzSvKJMRo0d9VjYEYf8ayufU1tE+zLLQNQ2TBZTsmSSji4BZl5PU/1+POi3cGdkEW9cVhUPVWHPAOFUP8JShZpIhlcj74+l+vbl8Hw7eYuIx91qoZgUAkJbQZd5pR3ujTNR5mCIzrjf8mS0zy7HqJcKBNY7Dnz92gJ+ZFx+0RA= 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=Z8PWAEyM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=SMVsLdFG; 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="Z8PWAEyM"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="SMVsLdFG" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BEMwVdT3710870 for ; Mon, 15 Dec 2025 08:41:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=ZuJSk/FtQiJ yILY6kiuxKueZxJIQbI4/O0UfJtoVz0w=; b=Z8PWAEyMnq9BaTsN0Z8TzqHDFqb dxgkzi9ypxo7KZzwRh0HxLcnYYDd5nkmLReKtc6W3S+NJzjNVRTQiUDHJ3AtyRBl b7Wucn7Ved37Sy4VFJYNhPbM9lTVIS9wRud02JYTbjeG6FHXNU9Yha20GMpsgy+Q BtAF3KCWtA+zgW52yE0v/W/HhIwsvhAyvpMCR6VWwsn8eg74VrgO9w54pJbAqyTc GxM4ImQUVJhv/zCQWqNmsm+ICkRxg3G45fCc32u38ypEtezaV8PUkxB6muQXdUiK aY22B8gCZrndaDaZjHYq9tI3dolVyjm2/rb1CuuH2E0y6Dzyd8Wig35c/gQ== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b11a7urvc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 15 Dec 2025 08:41:03 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4ed74e6c468so45875811cf.3 for ; Mon, 15 Dec 2025 00:41:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765788062; x=1766392862; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZuJSk/FtQiJyILY6kiuxKueZxJIQbI4/O0UfJtoVz0w=; b=SMVsLdFGjQQ4ks4oNFhKMs+aWqZpbn7nqVZEBXGRhEB6cSXvuKkrdOMCI3Ltss48Tv LXZDSnhDwQQcZ3Pra/7Tqrvqxnug08WzCZOR2ItCOKVqQ+5v7QX7HQ5gTas/QjInMihp jyOfqwqZ88Qx4ar8aFlZZkLDxUPMHoGMAyrXfMvZmKE+N0Ejx+OLW1n5KFm3PMEVzSen e779RYqJG4wFlpzeotLTjvGYO1n22vf2sXTScILSm7i+07W8UwYvKgBLdU+iBLNU89lf 4eASjG4GpCV30hOtGCs3p+f1+2YhC/X+qQMvV8FyYTnl4ERMVQt72xxAogpz/xFbHjxG TU3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765788062; x=1766392862; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZuJSk/FtQiJyILY6kiuxKueZxJIQbI4/O0UfJtoVz0w=; b=Is2aNxWUOTWQzwSmwABhLiXorXc0PukCNWAdq6i2xP5Cg/kQMCXn1hw3h8zPkcrBuB qn0OZMPuoQ1GO1DA4652sG9YBq3s/kLjdSnmZ0vFqtqTOaA/qx2y6XHOWUqkFCSGmQf1 93xqcuGPcKDTrBmIsURiLw2coVUU0qJT9NaEwmiLIbwO2yyPW36jXGPi8RZIbS2hiKWq 1reG2A8Ffj84LyX8jF8yjMCF6eSqJakGDpeaIW6f3DjxShKfcezQxBm5AvrNfi/S+tZP v7cXYrrD05XQ1hQl5uXSw/UC04rXAWcpx2FbR97iUfm8pjOd8abmAG293MWt3VIPklfG mUhg== X-Forwarded-Encrypted: i=1; AJvYcCUQ3ELFNYdYIE//C8dGnGWM74N/9Q2m8vVS6xSTpdwY8o0BNr0+UgyjWbsGRpL8QM6b73dp+6P/TTT+c5s=@vger.kernel.org X-Gm-Message-State: AOJu0Ywoteg9bZOIFsLrXXz6s1h0mUANQ6wLq0ym0AlaD62fo1leOgoX XJ+4VT1g3CbsWEiMxISm6uk8fbWIQyxSAz75nw3YARY+y6cpk3WVYJqECKR5b5az8P7M+77/jx1 MziIgb72ndIKycc6xQJurZTP5B19Z6QmgdsuS5oapBsvnwfS6wNrhdMf6j7M9aIXaqbc= X-Gm-Gg: AY/fxX5pk3ADfQ0pGbMLmETJ7dF2lr3jL+YVulHuIZDycab4u1XCB5Eh3hwHMvRPDn2 E3LOigFM+e2Ns2aznGs8a7It4HUAJSbPZyz+qmFU8J+esmGroHo5OrjY2IfYVcz52TCmDJWI5Uc PUsV6rq/eCBAlYgRRNX6aohpMcqrRWglaX3HRd+ixNCCdHWtZOjhRAVd6BZmUIocYtCwYTmRBOD j/SqBAbFzYjaKmGIP8FMP7Ni0U10KHtRGzAVnKK358Gqj/2/B/pANXqwQmOZaoUfamiB8rzFyy9 089Xjuw39xjhjVpiJbtFHMzn6875/TLVg3wWKh902iZxBCaNbMrRUT4vs5tup6Kt1TK6sEJ63G/ uJMW9PWXNXKYrD7WU3DB2ZJxQDg2AIIZBUVqqGN1jtFk59NLOEjKwgtEIJuA60TwyzH0= X-Received: by 2002:ac8:7f0e:0:b0:4ee:4157:c052 with SMTP id d75a77b69052e-4f1d053d080mr130816601cf.37.1765788062300; Mon, 15 Dec 2025 00:41:02 -0800 (PST) X-Google-Smtp-Source: AGHT+IF5ywJU2GbDn5QTaMGxo/IEWXpqro6AY43TNHqHd7eQFlrn+YqevKN/GAZVhxZZNKOTOcPrdg== X-Received: by 2002:ac8:7f0e:0:b0:4ee:4157:c052 with SMTP id d75a77b69052e-4f1d053d080mr130816341cf.37.1765788061778; Mon, 15 Dec 2025 00:41:01 -0800 (PST) Received: from yuanjiey.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4f1bd6b50afsm90557971cf.21.2025.12.15.00.40.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 00:41:01 -0800 (PST) From: yuanjie yang To: robin.clark@oss.qualcomm.com, lumag@kernel.org, abhinav.kumar@linux.dev, jesszhan0024@gmail.com, sean@poorly.run, marijn.suijten@somainline.org, airlied@gmail.com, simona@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, yongxing.mou@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, tingwei.zhang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, Dmitry Baryshkov Subject: [PATCH v3 09/11] drm/msm/dpu: Add support for Kaanapali DPU Date: Mon, 15 Dec 2025 16:38:52 +0800 Message-Id: <20251215083854.577-10-yuanjie.yang@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> References: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDA3MiBTYWx0ZWRfX8Y7UCRT23aZI V4uNOPWr7VCeBlUZzCvnyszJCrqVMFLtC9zHGlwikVgpXU/6EK3S471MISgzsQgQ9egILuP5NnF MUwBTTlVu0jL/oPw7/jaeu7u85jozADdXabRfjkdZ0hTV1vqrdgNBFydEBIGrR2Ww6IZAw2KDah YEBJ7NFoZdfUm9uPZ926WyMTlIOQuiX2powd6Yz38AufqeSPfWsGd/iP0rGfXKQl+7TiEmim5ct eHf81zoOlja7Vv9vTE6t3I4pShj8L4oRzNAEsQkNx3tSQWm7DoVgLLBgMCXJqsyVxT4/4r8PNQo /4EG/E/VpVqbyVedQJQrzo8U1HA60Fofp0KdGBU3iwF72Ibn0InW6FHbuvQMJMxiVcIS5VoapcV QOo3nUlbWp7HH9wa1oPeIQQn2bE5rw== X-Proofpoint-ORIG-GUID: STUCupVg8S98W5RD-Sxf9ZDDYFZHBJRX X-Proofpoint-GUID: STUCupVg8S98W5RD-Sxf9ZDDYFZHBJRX X-Authority-Analysis: v=2.4 cv=aOf9aL9m c=1 sm=1 tr=0 ts=693fc99f cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=iVC9QAuiRl3Xz_40r_EA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-15_01,2025-12-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 impostorscore=0 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512150072 Content-Type: text/plain; charset="utf-8" From: Yuanjie Yang Add support for Display Processing Unit (DPU) version 13.0 on the Kaanapali platform. This version introduces changes to the SSPP sub-block structure. Add common block and rectangle blocks to accommodate these structural modifications for compatibility. Co-developed-by: Yongxing Mou Signed-off-by: Yongxing Mou Reviewed-by: Dmitry Baryshkov Signed-off-by: Yuanjie Yang --- .../disp/dpu1/catalog/dpu_13_0_kaanapali.h | 492 ++++++++++++++++++ .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 41 ++ .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 1 + drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 1 + 4 files changed, 535 insertions(+) create mode 100644 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_13_0_kaanapal= i.h diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_13_0_kaanapali.h b/d= rivers/gpu/drm/msm/disp/dpu1/catalog/dpu_13_0_kaanapali.h new file mode 100644 index 000000000000..0b20401b04cf --- /dev/null +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_13_0_kaanapali.h @@ -0,0 +1,492 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#ifndef _DPU_13_0_KAANAPALI_H +#define _DPU_13_0_KAANAPALI_H + +static const struct dpu_caps kaanapali_dpu_caps =3D { + .max_mixer_width =3D DEFAULT_DPU_OUTPUT_LINE_WIDTH, + .max_mixer_blendstages =3D 0xb, + .has_src_split =3D true, + .has_dim_layer =3D true, + .has_idle_pc =3D true, + .has_3d_merge =3D true, + .max_linewidth =3D 8192, + .pixel_ram_size =3D DEFAULT_PIXEL_RAM_SIZE, +}; + +static const struct dpu_mdp_cfg kaanapali_mdp =3D { + .name =3D "top_0", + .base =3D 0, .len =3D 0x494, + .clk_ctrls =3D { + [DPU_CLK_CTRL_REG_DMA] =3D { .reg_off =3D 0x2bc, .bit_off =3D 20 }, + }, +}; + +static const struct dpu_ctl_cfg kaanapali_ctl[] =3D { + { + .name =3D "ctl_0", .id =3D CTL_0, + .base =3D 0x1f000, .len =3D 0x1000, + .intr_start =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 9), + }, { + .name =3D "ctl_1", .id =3D CTL_1, + .base =3D 0x20000, .len =3D 0x1000, + .intr_start =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 10), + }, { + .name =3D "ctl_2", .id =3D CTL_2, + .base =3D 0x21000, .len =3D 0x1000, + .intr_start =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 11), + }, { + .name =3D "ctl_3", .id =3D CTL_3, + .base =3D 0x22000, .len =3D 0x1000, + .intr_start =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 12), + }, { + .name =3D "ctl_4", .id =3D CTL_4, + .base =3D 0x23000, .len =3D 0x1000, + .intr_start =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 13), + }, { + .name =3D "ctl_5", .id =3D CTL_5, + .base =3D 0x24000, .len =3D 0x1000, + .intr_start =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 23), + }, +}; + +static const struct dpu_sspp_cfg kaanapali_sspp[] =3D { + { + .name =3D "sspp_0", .id =3D SSPP_VIG0, + .base =3D 0x2b000, .len =3D 0x84, + .features =3D VIG_SDM845_MASK_SDMA, + .sblk =3D &dpu_vig_sblk_qseed3_3_5, + .xin_id =3D 0, + .type =3D SSPP_TYPE_VIG, + }, { + .name =3D "sspp_1", .id =3D SSPP_VIG1, + .base =3D 0x34000, .len =3D 0x84, + .features =3D VIG_SDM845_MASK_SDMA, + .sblk =3D &dpu_vig_sblk_qseed3_3_5, + .xin_id =3D 4, + .type =3D SSPP_TYPE_VIG, + }, { + .name =3D "sspp_2", .id =3D SSPP_VIG2, + .base =3D 0x3d000, .len =3D 0x84, + .features =3D VIG_SDM845_MASK_SDMA, + .sblk =3D &dpu_vig_sblk_qseed3_3_5, + .xin_id =3D 8, + .type =3D SSPP_TYPE_VIG, + }, { + .name =3D "sspp_3", .id =3D SSPP_VIG3, + .base =3D 0x46000, .len =3D 0x84, + .features =3D VIG_SDM845_MASK_SDMA, + .sblk =3D &dpu_vig_sblk_qseed3_3_5, + .xin_id =3D 12, + .type =3D SSPP_TYPE_VIG, + }, { + .name =3D "sspp_8", .id =3D SSPP_DMA0, + .base =3D 0x97000, .len =3D 0x84, + .features =3D DMA_SDM845_MASK_SDMA, + .sblk =3D &dpu_dma_sblk, + .xin_id =3D 1, + .type =3D SSPP_TYPE_DMA, + }, { + .name =3D "sspp_9", .id =3D SSPP_DMA1, + .base =3D 0xa0000, .len =3D 0x84, + .features =3D DMA_SDM845_MASK_SDMA, + .sblk =3D &dpu_dma_sblk, + .xin_id =3D 5, + .type =3D SSPP_TYPE_DMA, + }, { + .name =3D "sspp_10", .id =3D SSPP_DMA2, + .base =3D 0xa9000, .len =3D 0x84, + .features =3D DMA_SDM845_MASK_SDMA, + .sblk =3D &dpu_dma_sblk, + .xin_id =3D 9, + .type =3D SSPP_TYPE_DMA, + }, { + .name =3D "sspp_11", .id =3D SSPP_DMA3, + .base =3D 0xb2000, .len =3D 0x84, + .features =3D DMA_SDM845_MASK_SDMA, + .sblk =3D &dpu_dma_sblk, + .xin_id =3D 13, + .type =3D SSPP_TYPE_DMA, + }, { + .name =3D "sspp_12", .id =3D SSPP_DMA4, + .base =3D 0xbb000, .len =3D 0x84, + .features =3D DMA_CURSOR_SDM845_MASK_SDMA, + .sblk =3D &dpu_dma_sblk, + .xin_id =3D 14, + .type =3D SSPP_TYPE_DMA, + }, { + .name =3D "sspp_13", .id =3D SSPP_DMA5, + .base =3D 0xc4000, .len =3D 0x84, + .features =3D DMA_CURSOR_SDM845_MASK_SDMA, + .sblk =3D &dpu_dma_sblk, + .xin_id =3D 15, + .type =3D SSPP_TYPE_DMA, + }, +}; + +static const struct dpu_lm_cfg kaanapali_lm[] =3D { + { + .name =3D "lm_0", .id =3D LM_0, + .base =3D 0x103000, .len =3D 0x400, + .features =3D MIXER_MSM8998_MASK, + .sblk =3D &sm8750_lm_sblk, + .lm_pair =3D LM_1, + .pingpong =3D PINGPONG_0, + .dspp =3D DSPP_0, + }, { + .name =3D "lm_1", .id =3D LM_1, + .base =3D 0x10b000, .len =3D 0x400, + .features =3D MIXER_MSM8998_MASK, + .sblk =3D &sm8750_lm_sblk, + .lm_pair =3D LM_0, + .pingpong =3D PINGPONG_1, + .dspp =3D DSPP_1, + }, { + .name =3D "lm_2", .id =3D LM_2, + .base =3D 0x113000, .len =3D 0x400, + .features =3D MIXER_MSM8998_MASK, + .sblk =3D &sm8750_lm_sblk, + .lm_pair =3D LM_3, + .pingpong =3D PINGPONG_2, + .dspp =3D DSPP_2, + }, { + .name =3D "lm_3", .id =3D LM_3, + .base =3D 0x11b000, .len =3D 0x400, + .features =3D MIXER_MSM8998_MASK, + .sblk =3D &sm8750_lm_sblk, + .lm_pair =3D LM_2, + .pingpong =3D PINGPONG_3, + .dspp =3D DSPP_3, + }, { + .name =3D "lm_4", .id =3D LM_4, + .base =3D 0x123000, .len =3D 0x400, + .features =3D MIXER_MSM8998_MASK, + .sblk =3D &sm8750_lm_sblk, + .lm_pair =3D LM_5, + .pingpong =3D PINGPONG_4, + }, { + .name =3D "lm_5", .id =3D LM_5, + .base =3D 0x12b000, .len =3D 0x400, + .features =3D MIXER_MSM8998_MASK, + .sblk =3D &sm8750_lm_sblk, + .lm_pair =3D LM_4, + .pingpong =3D PINGPONG_5, + }, { + .name =3D "lm_6", .id =3D LM_6, + .base =3D 0x133000, .len =3D 0x400, + .features =3D MIXER_MSM8998_MASK, + .sblk =3D &sm8750_lm_sblk, + .lm_pair =3D LM_7, + .pingpong =3D PINGPONG_6, + }, { + .name =3D "lm_7", .id =3D LM_7, + .base =3D 0x13b000, .len =3D 0x400, + .features =3D MIXER_MSM8998_MASK, + .sblk =3D &sm8750_lm_sblk, + .lm_pair =3D LM_6, + .pingpong =3D PINGPONG_7, + }, +}; + +static const struct dpu_dspp_cfg kaanapali_dspp[] =3D { + { + .name =3D "dspp_0", .id =3D DSPP_0, + .base =3D 0x105000, .len =3D 0x1800, + .sblk =3D &sm8750_dspp_sblk, + }, { + .name =3D "dspp_1", .id =3D DSPP_1, + .base =3D 0x10d000, .len =3D 0x1800, + .sblk =3D &sm8750_dspp_sblk, + }, { + .name =3D "dspp_2", .id =3D DSPP_2, + .base =3D 0x115000, .len =3D 0x1800, + .sblk =3D &sm8750_dspp_sblk, + }, { + .name =3D "dspp_3", .id =3D DSPP_3, + .base =3D 0x11d000, .len =3D 0x1800, + .sblk =3D &sm8750_dspp_sblk, + }, +}; + +static const struct dpu_pingpong_cfg kaanapali_pp[] =3D { + { + .name =3D "pingpong_0", .id =3D PINGPONG_0, + .base =3D 0x108000, .len =3D 0, + .sblk =3D &kaanapali_pp_sblk, + .merge_3d =3D MERGE_3D_0, + .intr_done =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 8), + }, { + .name =3D "pingpong_1", .id =3D PINGPONG_1, + .base =3D 0x110000, .len =3D 0, + .sblk =3D &kaanapali_pp_sblk, + .merge_3d =3D MERGE_3D_0, + .intr_done =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 9), + }, { + .name =3D "pingpong_2", .id =3D PINGPONG_2, + .base =3D 0x118000, .len =3D 0, + .sblk =3D &kaanapali_pp_sblk, + .merge_3d =3D MERGE_3D_1, + .intr_done =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 10), + }, { + .name =3D "pingpong_3", .id =3D PINGPONG_3, + .base =3D 0x120000, .len =3D 0, + .sblk =3D &kaanapali_pp_sblk, + .merge_3d =3D MERGE_3D_1, + .intr_done =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 11), + }, { + .name =3D "pingpong_4", .id =3D PINGPONG_4, + .base =3D 0x128000, .len =3D 0, + .sblk =3D &kaanapali_pp_sblk, + .merge_3d =3D MERGE_3D_2, + .intr_done =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 30), + }, { + .name =3D "pingpong_5", .id =3D PINGPONG_5, + .base =3D 0x130000, .len =3D 0, + .sblk =3D &kaanapali_pp_sblk, + .merge_3d =3D MERGE_3D_2, + .intr_done =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 31), + }, { + .name =3D "pingpong_6", .id =3D PINGPONG_6, + .base =3D 0x138000, .len =3D 0, + .sblk =3D &kaanapali_pp_sblk, + .merge_3d =3D MERGE_3D_3, + .intr_done =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 20), + }, { + .name =3D "pingpong_7", .id =3D PINGPONG_7, + .base =3D 0x140000, .len =3D 0, + .sblk =3D &kaanapali_pp_sblk, + .merge_3d =3D MERGE_3D_3, + .intr_done =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 21), + }, { + .name =3D "pingpong_cwb_0", .id =3D PINGPONG_CWB_0, + .base =3D 0x169000, .len =3D 0, + .sblk =3D &kaanapali_pp_sblk, + .merge_3d =3D MERGE_3D_4, + }, { + .name =3D "pingpong_cwb_1", .id =3D PINGPONG_CWB_1, + .base =3D 0x169400, .len =3D 0, + .sblk =3D &kaanapali_pp_sblk, + .merge_3d =3D MERGE_3D_4, + }, { + .name =3D "pingpong_cwb_2", .id =3D PINGPONG_CWB_2, + .base =3D 0x16a000, .len =3D 0, + .sblk =3D &kaanapali_pp_sblk, + .merge_3d =3D MERGE_3D_5, + }, { + .name =3D "pingpong_cwb_3", .id =3D PINGPONG_CWB_3, + .base =3D 0x16a400, .len =3D 0, + .sblk =3D &kaanapali_pp_sblk, + .merge_3d =3D MERGE_3D_5, + }, +}; + +static const struct dpu_merge_3d_cfg kaanapali_merge_3d[] =3D { + { + .name =3D "merge_3d_0", .id =3D MERGE_3D_0, + .base =3D 0x163000, .len =3D 0x1c, + }, { + .name =3D "merge_3d_1", .id =3D MERGE_3D_1, + .base =3D 0x164000, .len =3D 0x1c, + }, { + .name =3D "merge_3d_2", .id =3D MERGE_3D_2, + .base =3D 0x165000, .len =3D 0x1c, + }, { + .name =3D "merge_3d_3", .id =3D MERGE_3D_3, + .base =3D 0x166000, .len =3D 0x1c, + }, { + .name =3D "merge_3d_4", .id =3D MERGE_3D_4, + .base =3D 0x169700, .len =3D 0x1c, + }, { + .name =3D "merge_3d_5", .id =3D MERGE_3D_5, + .base =3D 0x16a700, .len =3D 0x1c, + }, +}; + +/* + * NOTE: Each display compression engine (DCE) contains dual hard + * slice DSC encoders so both share same base address but with + * its own different sub block address. + */ +static const struct dpu_dsc_cfg kaanapali_dsc[] =3D { + { + .name =3D "dce_0_0", .id =3D DSC_0, + .base =3D 0x181000, .len =3D 0x8, + .features =3D BIT(DPU_DSC_NATIVE_42x_EN), + .sblk =3D &sm8750_dsc_sblk_0, + }, { + .name =3D "dce_0_1", .id =3D DSC_1, + .base =3D 0x181000, .len =3D 0x8, + .features =3D BIT(DPU_DSC_NATIVE_42x_EN), + .sblk =3D &sm8750_dsc_sblk_1, + }, { + .name =3D "dce_1_0", .id =3D DSC_2, + .base =3D 0x183000, .len =3D 0x8, + .features =3D BIT(DPU_DSC_NATIVE_42x_EN), + .sblk =3D &sm8750_dsc_sblk_0, + }, { + .name =3D "dce_1_1", .id =3D DSC_3, + .base =3D 0x183000, .len =3D 0x8, + .features =3D BIT(DPU_DSC_NATIVE_42x_EN), + .sblk =3D &sm8750_dsc_sblk_1, + }, { + .name =3D "dce_2_0", .id =3D DSC_4, + .base =3D 0x185000, .len =3D 0x8, + .features =3D BIT(DPU_DSC_NATIVE_42x_EN), + .sblk =3D &sm8750_dsc_sblk_0, + }, { + .name =3D "dce_2_1", .id =3D DSC_5, + .base =3D 0x185000, .len =3D 0x8, + .features =3D BIT(DPU_DSC_NATIVE_42x_EN), + .sblk =3D &sm8750_dsc_sblk_1, + }, { + .name =3D "dce_3_0", .id =3D DSC_6, + .base =3D 0x187000, .len =3D 0x8, + .features =3D BIT(DPU_DSC_NATIVE_42x_EN), + .sblk =3D &sm8750_dsc_sblk_0, + }, { + .name =3D "dce_3_1", .id =3D DSC_7, + .base =3D 0x187000, .len =3D 0x8, + .features =3D BIT(DPU_DSC_NATIVE_42x_EN), + .sblk =3D &sm8750_dsc_sblk_1, + }, +}; + +static const struct dpu_wb_cfg kaanapali_wb[] =3D { + { + .name =3D "wb_2", .id =3D WB_2, + .base =3D 0x16e000, .len =3D 0x2c8, + .features =3D WB_SDM845_MASK, + .format_list =3D wb2_formats_rgb_yuv, + .num_formats =3D ARRAY_SIZE(wb2_formats_rgb_yuv), + .xin_id =3D 6, + .vbif_idx =3D VBIF_RT, + .maxlinewidth =3D 4096, + .intr_wb_done =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 4), + }, +}; + +static const struct dpu_cwb_cfg kaanapali_cwb[] =3D { + { + .name =3D "cwb_0", .id =3D CWB_0, + .base =3D 0x169200, .len =3D 0x20, + }, + { + .name =3D "cwb_1", .id =3D CWB_1, + .base =3D 0x169600, .len =3D 0x20, + }, + { + .name =3D "cwb_2", .id =3D CWB_2, + .base =3D 0x16a200, .len =3D 0x20, + }, + { + .name =3D "cwb_3", .id =3D CWB_3, + .base =3D 0x16a600, .len =3D 0x20, + }, +}; + +static const struct dpu_intf_cfg kaanapali_intf[] =3D { + { + .name =3D "intf_0", .id =3D INTF_0, + .base =3D 0x18d000, .len =3D 0x4bc, + .type =3D INTF_DP, + .controller_id =3D MSM_DP_CONTROLLER_0, + .prog_fetch_lines_worst_case =3D 24, + .intr_underrun =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 24), + .intr_vsync =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 25), + }, { + .name =3D "intf_1", .id =3D INTF_1, + .base =3D 0x18e000, .len =3D 0x4bc, + .type =3D INTF_DSI, + .controller_id =3D MSM_DSI_CONTROLLER_0, + .prog_fetch_lines_worst_case =3D 24, + .intr_underrun =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 26), + .intr_vsync =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 27), + .intr_tear_rd_ptr =3D DPU_IRQ_IDX(MDP_INTF1_TEAR_INTR, 2), + }, { + .name =3D "intf_2", .id =3D INTF_2, + .base =3D 0x18f000, .len =3D 0x4bc, + .type =3D INTF_DSI, + .controller_id =3D MSM_DSI_CONTROLLER_1, + .prog_fetch_lines_worst_case =3D 24, + .intr_underrun =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 28), + .intr_vsync =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 29), + .intr_tear_rd_ptr =3D DPU_IRQ_IDX(MDP_INTF2_TEAR_INTR, 2), + }, { + .name =3D "intf_3", .id =3D INTF_3, + .base =3D 0x190000, .len =3D 0x4bc, + .type =3D INTF_DP, + .controller_id =3D MSM_DP_CONTROLLER_1, + .prog_fetch_lines_worst_case =3D 24, + .intr_underrun =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 30), + .intr_vsync =3D DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 31), + }, +}; + +static const struct dpu_perf_cfg kaanapali_perf_data =3D { + .max_bw_low =3D 21400000, + .max_bw_high =3D 30200000, + .min_core_ib =3D 2500000, + .min_llcc_ib =3D 0, + .min_dram_ib =3D 800000, + .min_prefill_lines =3D 35, + .danger_lut_tbl =3D {0x0ffff, 0x0ffff, 0x0}, + .safe_lut_tbl =3D {0xff00, 0xff00, 0xffff}, + .qos_lut_tbl =3D { + {.nentry =3D ARRAY_SIZE(kaanapali_qos_linear), + .entries =3D kaanapali_qos_linear + }, + {.nentry =3D ARRAY_SIZE(kaanapali_qos_macrotile), + .entries =3D kaanapali_qos_macrotile + }, + {.nentry =3D ARRAY_SIZE(sc7180_qos_nrt), + .entries =3D sc7180_qos_nrt + }, + /* TODO: macrotile-qseed is different from macrotile */ + }, + .cdp_cfg =3D { + {.rd_enable =3D 1, .wr_enable =3D 1}, + {.rd_enable =3D 1, .wr_enable =3D 0} + }, + .clk_inefficiency_factor =3D 105, + .bw_inefficiency_factor =3D 120, +}; + +static const struct dpu_mdss_version kaanapali_mdss_ver =3D { + .core_major_ver =3D 13, + .core_minor_ver =3D 0, +}; + +const struct dpu_mdss_cfg dpu_kaanapali_cfg =3D { + .mdss_ver =3D &kaanapali_mdss_ver, + .caps =3D &kaanapali_dpu_caps, + .mdp =3D &kaanapali_mdp, + .cdm =3D &dpu_cdm_13_x, + .ctl_count =3D ARRAY_SIZE(kaanapali_ctl), + .ctl =3D kaanapali_ctl, + .sspp_count =3D ARRAY_SIZE(kaanapali_sspp), + .sspp =3D kaanapali_sspp, + .mixer_count =3D ARRAY_SIZE(kaanapali_lm), + .mixer =3D kaanapali_lm, + .dspp_count =3D ARRAY_SIZE(kaanapali_dspp), + .dspp =3D kaanapali_dspp, + .pingpong_count =3D ARRAY_SIZE(kaanapali_pp), + .pingpong =3D kaanapali_pp, + .dsc_count =3D ARRAY_SIZE(kaanapali_dsc), + .dsc =3D kaanapali_dsc, + .merge_3d_count =3D ARRAY_SIZE(kaanapali_merge_3d), + .merge_3d =3D kaanapali_merge_3d, + .wb_count =3D ARRAY_SIZE(kaanapali_wb), + .wb =3D kaanapali_wb, + .cwb_count =3D ARRAY_SIZE(kaanapali_cwb), + .cwb =3D sm8650_cwb, + .intf_count =3D ARRAY_SIZE(kaanapali_intf), + .intf =3D kaanapali_intf, + .vbif_count =3D ARRAY_SIZE(sm8650_vbif), + .vbif =3D sm8650_vbif, + .perf =3D &kaanapali_perf_data, +}; + +#endif diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c b/drivers/gpu/d= rm/msm/disp/dpu1/dpu_hw_catalog.c index 23bb39b471b7..be3492df8bde 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c @@ -241,6 +241,23 @@ static const u32 wb2_formats_rgb_yuv[] =3D { .rotation_cfg =3D NULL, \ } =20 +/* kaanapali SSPP common configuration */ +#define _VIG_SBLK_REC0_REC1(scaler_ver) \ + { \ + .sspp_rec0_blk =3D {.name =3D "sspp_rec0", \ + .base =3D 0x1000, .len =3D 0x180,}, \ + .csc_blk =3D {.name =3D "csc", \ + .base =3D 0x1800, .len =3D 0x100,}, \ + .scaler_blk =3D {.name =3D "scaler", \ + .version =3D scaler_ver, \ + .base =3D 0x2000, .len =3D 0xec,}, \ + .sspp_rec1_blk =3D {.name =3D "sspp_rec1", \ + .base =3D 0x3000, .len =3D 0x180,}, \ + .format_list =3D plane_formats_yuv, \ + .num_formats =3D ARRAY_SIZE(plane_formats_yuv), \ + .rotation_cfg =3D NULL, \ + } + #define _VIG_SBLK_ROT(scaler_ver, rot_cfg) \ { \ .scaler_blk =3D {.name =3D "scaler", \ @@ -329,6 +346,9 @@ static const struct dpu_sspp_sub_blks dpu_vig_sblk_qsee= d3_3_3 =3D static const struct dpu_sspp_sub_blks dpu_vig_sblk_qseed3_3_4 =3D _VIG_SBLK(SSPP_SCALER_VER(3, 4)); =20 +static const struct dpu_sspp_sub_blks dpu_vig_sblk_qseed3_3_5 =3D + _VIG_SBLK_REC0_REC1(SSPP_SCALER_VER(3, 5)); + static const struct dpu_sspp_sub_blks dpu_rgb_sblk =3D _RGB_SBLK(); =20 static const struct dpu_sspp_sub_blks dpu_dma_sblk =3D _DMA_SBLK(); @@ -412,6 +432,11 @@ static const struct dpu_pingpong_sub_blks sc7280_pp_sb= lk =3D { .len =3D 0x20, .version =3D 0x20000}, }; =20 +static const struct dpu_pingpong_sub_blks kaanapali_pp_sblk =3D { + .dither =3D {.name =3D "dither", .base =3D 0xc0, + .len =3D 0x40, .version =3D 0x30000}, +}; + /************************************************************* * DSC sub blocks config *************************************************************/ @@ -452,6 +477,13 @@ static const struct dpu_cdm_cfg dpu_cdm_5_x =3D { .base =3D 0x79200, }; =20 +static const struct dpu_cdm_cfg dpu_cdm_13_x =3D { + .name =3D "cdm_0", + .id =3D CDM_0, + .len =3D 0x240, + .base =3D 0x19e000, +}; + /************************************************************* * VBIF sub blocks config *************************************************************/ @@ -639,6 +671,10 @@ static const struct dpu_qos_lut_entry sc7180_qos_linea= r[] =3D { {.fl =3D 0, .lut =3D 0x0011222222335777}, }; =20 +static const struct dpu_qos_lut_entry kaanapali_qos_linear[] =3D { + {.fl =3D 0, .lut =3D 0x0011223344556666}, +}; + static const struct dpu_qos_lut_entry sm6350_qos_linear_macrotile[] =3D { {.fl =3D 0, .lut =3D 0x0011223445566777 }, }; @@ -668,6 +704,10 @@ static const struct dpu_qos_lut_entry sc7180_qos_macro= tile[] =3D { {.fl =3D 0, .lut =3D 0x0011223344556677}, }; =20 +static const struct dpu_qos_lut_entry kaanapali_qos_macrotile[] =3D { + {.fl =3D 0, .lut =3D 0x0011223344556666}, +}; + static const struct dpu_qos_lut_entry sc8180x_qos_macrotile[] =3D { {.fl =3D 10, .lut =3D 0x0000000344556677}, }; @@ -727,3 +767,4 @@ static const struct dpu_qos_lut_entry sc7180_qos_nrt[] = =3D { #include "catalog/dpu_10_0_sm8650.h" #include "catalog/dpu_12_0_sm8750.h" #include "catalog/dpu_12_2_glymur.h" +#include "catalog/dpu_13_0_kaanapali.h" diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h b/drivers/gpu/d= rm/msm/disp/dpu1/dpu_hw_catalog.h index 336757103b5a..0eb7cdf82ff9 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h @@ -750,6 +750,7 @@ struct dpu_mdss_cfg { }; =20 extern const struct dpu_mdss_cfg dpu_glymur_cfg; +extern const struct dpu_mdss_cfg dpu_kaanapali_cfg; extern const struct dpu_mdss_cfg dpu_msm8917_cfg; extern const struct dpu_mdss_cfg dpu_msm8937_cfg; extern const struct dpu_mdss_cfg dpu_msm8953_cfg; diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/= disp/dpu1/dpu_kms.c index f4c9767c418d..0623f1dbed97 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -1506,6 +1506,7 @@ static const struct dev_pm_ops dpu_pm_ops =3D { =20 static const struct of_device_id dpu_dt_match[] =3D { { .compatible =3D "qcom,glymur-dpu", .data =3D &dpu_glymur_cfg, }, + { .compatible =3D "qcom,kaanapali-dpu", .data =3D &dpu_kaanapali_cfg, }, { .compatible =3D "qcom,msm8917-mdp5", .data =3D &dpu_msm8917_cfg, }, { .compatible =3D "qcom,msm8937-mdp5", .data =3D &dpu_msm8937_cfg, }, { .compatible =3D "qcom,msm8953-mdp5", .data =3D &dpu_msm8953_cfg, }, --=20 2.34.1 From nobody Wed Dec 17 04:03:00 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 7B6C532AACE for ; Mon, 15 Dec 2025 08:41:12 +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=1765788074; cv=none; b=XHPboMpvO7/4AkHUBOs9LKRcrHC/TiAs9ougLvQXm92KGVMvxpk92yrIkjldMUxF7TOe62e17NkIfA3XUnn7lMeN4UByDmSl3eDgT0RfvgbrpE7aBM4+jrxYYWNLiJ29F9blJP/1itemfcDn6T0FnThUAWPXKLBcwnU8T28kP6E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765788074; c=relaxed/simple; bh=28XPRDu7buGoP84le8xj05AnjvLSe4hCZewdbDrbl5E=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=E2wSyb65OTNLu1QBAFvuLRtWxA2TkTxEZvdIWU2SVb1xkAKeZ2ea2B1jj378EOVoSVjQFxP+/Y+xI4fOCrlrns2OjhQ7YCfk72hOKmqkNjM+6BJ8koEkdB4CTVG2ASTxOZ67IbUnVpAiHuuxPNpoX4fI7UY+rdikezNgvluO0vo= 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=nPJiS9kS; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Y5+lrP+k; 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="nPJiS9kS"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Y5+lrP+k" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BENGV3w3745585 for ; Mon, 15 Dec 2025 08:41:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=VJ6GOkwdElu 7QOYIBZ7JvlmgR56LXPMI7jXifO2+Kvg=; b=nPJiS9kS7eDgw0GGjRMoIzPmPlY lSDg+I3HsV9Y7Su048VyMnTgQnQUdMRetJ6aBtOd0nx+vO9cBo5I/EY+VIk2G8bh NRElvR9n1Y9kow8eE8Fyd9P2Rs0942NUYK+3ykzt0YvZEx3i/qD39A8CytdwLNSO 8rNFTHbF/W5ID7eNxwRkyydeFhgS9iSdPTvoCv8k+HhjSpyKLXj34C4AmrgPUN4D xLQjbx/CLy9DFqg42ZT8Y4ZIDRgvcCJvQ/IvKNOlk1cH7N51JGzxBHlnHZ6YR+jo j4GFobPQQyM7aaAmvGOo7Unuquu4ZeylT/ty8k1y7Dx0+xcVg754UNvyPYw== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b11a7urwb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 15 Dec 2025 08:41:11 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4ee0995fa85so107302541cf.1 for ; Mon, 15 Dec 2025 00:41:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765788070; x=1766392870; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VJ6GOkwdElu7QOYIBZ7JvlmgR56LXPMI7jXifO2+Kvg=; b=Y5+lrP+kfq8d3BqmrMu7oN4bVEDzbNTkweHYmzspldyHLX9iWVQBmwyAn2D1PVsrxf LJuK4ny++Kk0s88CM1KItVDlfRT5UcQS0799AIkGND5HKQq9A8jJbRVCcujmeYxFRL2C 5NmxIUQuGp0F0esdMQd7oTx5099uGuP6ZnjUS4Rk9eaaCRtViAzoKb8jVdhR91da+8RT D1U3pmw7OE759Is/8MLjbwC60GH2UIPBwBkKOJ+m32O2wQwrwECugg2OoCQsU4Z0gpEI Jcq6635z8EVqDlXEJoDe+B6Q9A5ZtWwkSAS7Llitm1Sq9XT9lRz6aSbKahyFpmGlCErX Aaag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765788070; x=1766392870; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=VJ6GOkwdElu7QOYIBZ7JvlmgR56LXPMI7jXifO2+Kvg=; b=apsKh71O5M94kLAQp92GSFMfqEzoHTyooihBeB9nNcANK68DycAGqM3Yxpu3n2g/fQ 7XnS0X9B0yNf9WsFSG698oMubEyyq9upxIidY90H4qVUT1lTrsOEhzLYVkJRISPPVoua EsI6/chmhYJRwR4L7YupORrSKxY/FBInKzPAJr7Du+/XuoYgm0cxCbLwy9xfIsy/C6aZ TbKw5ZwwsaJPb7tfG6vXIEhNQvieZWpJvZZQ3Pwxn2+BKSXi+4KHyAoQWvmxsV66PXHb GbI55EUPAScJpTOgeSiRJTICOy+b92sruFWNrzI62kNM+Ep3ToRaaZiiyvvelbQarc/f s2qg== X-Forwarded-Encrypted: i=1; AJvYcCUg0Th01P7ex+v0lUPDf0qwOos/nwskvDcIZGRxLRaKcpZncUi2I1psslRnVUyV25EqTpxw4nx5uI/Z374=@vger.kernel.org X-Gm-Message-State: AOJu0YznRyJZK/ZdM3pW6g/J4dbymx0k+cfbtaz0r0BbL8wrZXEVr5J/ vDjXdX2ywY7HBugh1DTvxBTv6WSzzYLVAllRELcGUQv1Y6BKwKQmea1mcaIwejNphHqP8SoAibU sgyaLNfJjGpij/F7BBkSBTAKSRdE/oAERiWNdFLNFzga/18zJnSpdkaXfvsJHSJvo2dgbKYZ9H6 k= X-Gm-Gg: AY/fxX77/wwVdmAsFP1x1hCj85GS0RPhBtU8HjpaNtg6QMIgDLalXbz9BjKJPf52tfL nBNmE/w1LvhLEIvp7Tlw6EOG7SkPfcO1oUuFyZOyPdwiWK+b9S3pD8x0CPLFIxMFe9JB/7BEb8b Mm34kW2PHlNpYR/XW9wybakTaxhmFDsFCOSLfgzrWutvAmvQroZ0RzvcmtNrJlgMjlflwxCPxdI D2u2ayGn2siJzG5on22aJkd8SLjaqsuErbJ4fNgcpLB89WbfWE4tGNE0t9h2w+/40u1H22sD8mE wftbcEDPnq9IldJKV6J/PDHBNGGhh1QAbPisvuKBf0lt/zwRYETnK78KwgZJs2RFdcwtFLpxm9J DyHdpJAJIwtexy4cZmRxcflA3UX4ps9YX6+yCvssDeiNESxgYOjyoD9Qu0F2Pb391R8c= X-Received: by 2002:ac8:5790:0:b0:4ee:1857:2673 with SMTP id d75a77b69052e-4f1d04f4a4amr149228851cf.35.1765788070336; Mon, 15 Dec 2025 00:41:10 -0800 (PST) X-Google-Smtp-Source: AGHT+IG5qZ5aShA2fnui2E7fFtHaTn8n6OmnSVzIDmY1zhgwwZ6dUJgbi6+vNPnxXciErRmhpeVOHA== X-Received: by 2002:ac8:5790:0:b0:4ee:1857:2673 with SMTP id d75a77b69052e-4f1d04f4a4amr149228661cf.35.1765788069861; Mon, 15 Dec 2025 00:41:09 -0800 (PST) Received: from yuanjiey.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4f1bd6b50afsm90557971cf.21.2025.12.15.00.41.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 00:41:09 -0800 (PST) From: yuanjie yang To: robin.clark@oss.qualcomm.com, lumag@kernel.org, abhinav.kumar@linux.dev, jesszhan0024@gmail.com, sean@poorly.run, marijn.suijten@somainline.org, airlied@gmail.com, simona@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, yongxing.mou@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, tingwei.zhang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com Subject: [PATCH v3 10/11] drm/msm/dpu: Refactor SSPP to compatible DPU 13.0.0 Date: Mon, 15 Dec 2025 16:38:53 +0800 Message-Id: <20251215083854.577-11-yuanjie.yang@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> References: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDA3MiBTYWx0ZWRfX5VygJC0nL00R xMEEsuf9UepLVNS9SQAmoDCbd9iZfJqWLTnm/J5I6xnkU+uBVpudeNcnijKl4BRR9Sm1L+//fgG hxfU31xUs2S24bVuSCu4J2INs+te0JAEXOphrjkysUWTwfie5RMOamUoZ7r7Co67jkubtO8Uoxz fzSVcCwsxPIljkN3UeTJKvU50eI4CRqvcWX3qCKsOFuQmMjQJ8sYq1ssNXz740XfeJMqX6hUNnZ +lVcyU1tENmUuVBmsf+q6y7MU86MRVc97JmIPK8GUmdQteRrAvHcCe81wQLxHJsg4ereQ0XqKoc xdW5pmLstABSKiDHGbxGwoHDr45YGeMFnJ3TAnSSjIbYa5Jg0Nlf19BGCp/iiPO7XqZ2Ncq4Hf0 ynjWwtdMo7cnpUi91ADclWcSm9pQ5A== X-Proofpoint-ORIG-GUID: ZpjO64p2pUknHgFw25cRKckWZoSm2JwJ X-Proofpoint-GUID: ZpjO64p2pUknHgFw25cRKckWZoSm2JwJ X-Authority-Analysis: v=2.4 cv=aOf9aL9m c=1 sm=1 tr=0 ts=693fc9a7 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=ZMRFE71WIASCzucPcdAA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-15_01,2025-12-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 impostorscore=0 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512150072 Content-Type: text/plain; charset="utf-8" From: Yuanjie Yang DPU version 13.0.0 introduces structural changes including register additions, removals, and relocations. Refactor SSPP-related code to be compatible with DPU 13.0.0 modifications. Co-developed-by: Yongxing Mou Signed-off-by: Yongxing Mou Signed-off-by: Yuanjie Yang --- .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 15 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 155 ++++++++++-------- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h | 52 ++++++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c | 18 ++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h | 3 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c | 17 +- 6 files changed, 191 insertions(+), 69 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h b/drivers/gpu/d= rm/msm/disp/dpu1/dpu_hw_catalog.h index 0eb7cdf82ff9..f2aba9bdfcd3 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h @@ -208,6 +208,18 @@ struct dpu_dsc_blk { u32 len; }; =20 +/** + * struct dpu_sspp_v13_rec_blk - SSPP REC sub-blk information + * @name: string name for debug purposes + * @base: offset of this sub-block relative to the block offset + * @len: register block length of this sub-block + */ +struct dpu_sspp_v13_rec_blk { + char name[DPU_HW_BLK_NAME_LEN]; + u32 base; + u32 len; +}; + /** * enum dpu_qos_lut_usage - define QoS LUT use cases */ @@ -294,7 +306,8 @@ struct dpu_sspp_sub_blks { u32 qseed_ver; struct dpu_scaler_blk scaler_blk; struct dpu_pp_blk csc_blk; - + struct dpu_sspp_v13_rec_blk sspp_rec0_blk; + struct dpu_sspp_v13_rec_blk sspp_rec1_blk; const u32 *format_list; u32 num_formats; const struct dpu_rotation_cfg *rotation_cfg; diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c b/drivers/gpu/drm/= msm/disp/dpu1/dpu_hw_sspp.c index 6f1fc790ad6d..7ed28009c463 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c @@ -145,11 +145,18 @@ static void dpu_hw_sspp_setup_multirect(struct dpu_sw_pipe *pipe) { struct dpu_hw_sspp *ctx =3D pipe->sspp; - u32 mode_mask; =20 if (!ctx) return; =20 + dpu_hw_setup_multirect_impl(pipe, ctx, SSPP_MULTIRECT_OPMODE); +} + +void dpu_hw_setup_multirect_impl(struct dpu_sw_pipe *pipe, + struct dpu_hw_sspp *ctx, u32 op_mode_off) +{ + u32 mode_mask; + if (pipe->multirect_index =3D=3D DPU_SSPP_RECT_SOLO) { /** * if rect index is RECT_SOLO, we cannot expect a @@ -158,7 +165,7 @@ static void dpu_hw_sspp_setup_multirect(struct dpu_sw_p= ipe *pipe) */ mode_mask =3D 0; } else { - mode_mask =3D DPU_REG_READ(&ctx->hw, SSPP_MULTIRECT_OPMODE); + mode_mask =3D DPU_REG_READ(&ctx->hw, op_mode_off); mode_mask |=3D pipe->multirect_index; if (pipe->multirect_mode =3D=3D DPU_SSPP_MULTIRECT_TIME_MX) mode_mask |=3D BIT(2); @@ -166,11 +173,11 @@ static void dpu_hw_sspp_setup_multirect(struct dpu_sw= _pipe *pipe) mode_mask &=3D ~BIT(2); } =20 - DPU_REG_WRITE(&ctx->hw, SSPP_MULTIRECT_OPMODE, mode_mask); + DPU_REG_WRITE(&ctx->hw, op_mode_off, mode_mask); } =20 -static void _sspp_setup_opmode(struct dpu_hw_sspp *ctx, - u32 mask, u8 en) +void dpu_hw_sspp_setup_opmode(struct dpu_hw_sspp *ctx, + u32 mask, u8 en) { const struct dpu_sspp_sub_blks *sblk =3D ctx->cap->sblk; u32 opmode; @@ -189,8 +196,8 @@ static void _sspp_setup_opmode(struct dpu_hw_sspp *ctx, DPU_REG_WRITE(&ctx->hw, sblk->scaler_blk.base + SSPP_VIG_OP_MODE, opmode); } =20 -static void _sspp_setup_csc10_opmode(struct dpu_hw_sspp *ctx, - u32 mask, u8 en) +void dpu_hw_sspp_setup_csc10_opmode(struct dpu_hw_sspp *ctx, + u32 mask, u8 en) { const struct dpu_sspp_sub_blks *sblk =3D ctx->cap->sblk; u32 opmode; @@ -211,10 +218,6 @@ static void dpu_hw_sspp_setup_format(struct dpu_sw_pip= e *pipe, const struct msm_format *fmt, u32 flags) { struct dpu_hw_sspp *ctx =3D pipe->sspp; - struct dpu_hw_blk_reg_map *c; - u32 chroma_samp, unpack, src_format; - u32 opmode =3D 0; - u32 fast_clear =3D 0; u32 op_mode_off, unpack_pat_off, format_off; =20 if (!ctx || !fmt) @@ -231,7 +234,25 @@ static void dpu_hw_sspp_setup_format(struct dpu_sw_pip= e *pipe, format_off =3D SSPP_SRC_FORMAT_REC1; } =20 + dpu_hw_setup_format_impl(pipe, fmt, flags, ctx, op_mode_off, + unpack_pat_off, format_off, + SSPP_UBWC_STATIC_CTRL, SSPP_UBWC_ERROR_STATUS); +} + +void dpu_hw_setup_format_impl(struct dpu_sw_pipe *pipe, const struct msm_f= ormat *fmt, + u32 flags, struct dpu_hw_sspp *ctx, u32 op_mode_off, + u32 unpack_pat_off, u32 format_off, u32 ubwc_ctrl_off, + u32 ubwc_err_off) +{ + struct dpu_hw_blk_reg_map *c; + u32 chroma_samp, unpack, src_format; + u32 opmode; + u32 fast_clear; + u8 core_major_ver; + c =3D &ctx->hw; + core_major_ver =3D ctx->mdss_ver->core_major_ver; + opmode =3D DPU_REG_READ(c, op_mode_off); opmode &=3D ~(MDSS_MDP_OP_FLIP_LR | MDSS_MDP_OP_FLIP_UD | MDSS_MDP_OP_BWC_EN | MDSS_MDP_OP_PE_OVERRIDE); @@ -273,31 +294,34 @@ static void dpu_hw_sspp_setup_format(struct dpu_sw_pi= pe *pipe, if (MSM_FORMAT_IS_UBWC(fmt)) opmode |=3D MDSS_MDP_OP_BWC_EN; src_format |=3D (fmt->fetch_mode & 3) << 30; /*FRAME_FORMAT */ - DPU_REG_WRITE(c, SSPP_FETCH_CONFIG, - DPU_FETCH_CONFIG_RESET_VALUE | - ctx->ubwc->highest_bank_bit << 18); + + if (core_major_ver < 13) + DPU_REG_WRITE(c, SSPP_FETCH_CONFIG, + DPU_FETCH_CONFIG_RESET_VALUE | + ctx->ubwc->highest_bank_bit << 18); + switch (ctx->ubwc->ubwc_enc_version) { case UBWC_1_0: fast_clear =3D fmt->alpha_enable ? BIT(31) : 0; - DPU_REG_WRITE(c, SSPP_UBWC_STATIC_CTRL, - fast_clear | (ctx->ubwc->ubwc_swizzle & 0x1) | - BIT(8) | - (ctx->ubwc->highest_bank_bit << 4)); + DPU_REG_WRITE(c, ubwc_ctrl_off, + fast_clear | (ctx->ubwc->ubwc_swizzle & 0x1) | + BIT(8) | + (ctx->ubwc->highest_bank_bit << 4)); break; case UBWC_2_0: fast_clear =3D fmt->alpha_enable ? BIT(31) : 0; - DPU_REG_WRITE(c, SSPP_UBWC_STATIC_CTRL, - fast_clear | (ctx->ubwc->ubwc_swizzle) | - (ctx->ubwc->highest_bank_bit << 4)); + DPU_REG_WRITE(c, ubwc_ctrl_off, + fast_clear | (ctx->ubwc->ubwc_swizzle) | + (ctx->ubwc->highest_bank_bit << 4)); break; case UBWC_3_0: - DPU_REG_WRITE(c, SSPP_UBWC_STATIC_CTRL, - BIT(30) | (ctx->ubwc->ubwc_swizzle) | - (ctx->ubwc->highest_bank_bit << 4)); + DPU_REG_WRITE(c, ubwc_ctrl_off, + BIT(30) | (ctx->ubwc->ubwc_swizzle) | + (ctx->ubwc->highest_bank_bit << 4)); break; case UBWC_4_0: - DPU_REG_WRITE(c, SSPP_UBWC_STATIC_CTRL, - MSM_FORMAT_IS_YUV(fmt) ? 0 : BIT(30)); + DPU_REG_WRITE(c, ubwc_ctrl_off, + MSM_FORMAT_IS_YUV(fmt) ? 0 : BIT(30)); break; } } @@ -313,19 +337,18 @@ static void dpu_hw_sspp_setup_format(struct dpu_sw_pi= pe *pipe, =20 /* update scaler opmode, if appropriate */ if (test_bit(DPU_SSPP_CSC, &ctx->cap->features)) - _sspp_setup_opmode(ctx, VIG_OP_CSC_EN | VIG_OP_CSC_SRC_DATAFMT, - MSM_FORMAT_IS_YUV(fmt)); + dpu_hw_sspp_setup_opmode(ctx, VIG_OP_CSC_EN | VIG_OP_CSC_SRC_DATAFMT, + MSM_FORMAT_IS_YUV(fmt)); else if (test_bit(DPU_SSPP_CSC_10BIT, &ctx->cap->features)) - _sspp_setup_csc10_opmode(ctx, - VIG_CSC_10_EN | VIG_CSC_10_SRC_DATAFMT, - MSM_FORMAT_IS_YUV(fmt)); + dpu_hw_sspp_setup_csc10_opmode(ctx, + VIG_CSC_10_EN | VIG_CSC_10_SRC_DATAFMT, + MSM_FORMAT_IS_YUV(fmt)); =20 DPU_REG_WRITE(c, format_off, src_format); DPU_REG_WRITE(c, unpack_pat_off, unpack); DPU_REG_WRITE(c, op_mode_off, opmode); - /* clear previous UBWC error */ - DPU_REG_WRITE(c, SSPP_UBWC_ERROR_STATUS, BIT(31)); + DPU_REG_WRITE(c, ubwc_err_off, BIT(31)); } =20 static void dpu_hw_sspp_setup_pe_config(struct dpu_hw_sspp *ctx, @@ -385,9 +408,9 @@ static void dpu_hw_sspp_setup_pe_config(struct dpu_hw_s= spp *ctx, tot_req_pixels[3]); } =20 -static void _dpu_hw_sspp_setup_scaler3(struct dpu_hw_sspp *ctx, - struct dpu_hw_scaler3_cfg *scaler3_cfg, - const struct msm_format *format) +void dpu_hw_sspp_setup_scaler3(struct dpu_hw_sspp *ctx, + struct dpu_hw_scaler3_cfg *scaler3_cfg, + const struct msm_format *format) { if (!ctx || !scaler3_cfg) return; @@ -405,15 +428,11 @@ static void dpu_hw_sspp_setup_rects(struct dpu_sw_pip= e *pipe, struct dpu_sw_pipe_cfg *cfg) { struct dpu_hw_sspp *ctx =3D pipe->sspp; - struct dpu_hw_blk_reg_map *c; - u32 src_size, src_xy, dst_size, dst_xy; u32 src_size_off, src_xy_off, out_size_off, out_xy_off; =20 if (!ctx || !cfg) return; =20 - c =3D &ctx->hw; - if (pipe->multirect_index =3D=3D DPU_SSPP_RECT_SOLO || pipe->multirect_index =3D=3D DPU_SSPP_RECT_0) { src_size_off =3D SSPP_SRC_SIZE; @@ -427,20 +446,8 @@ static void dpu_hw_sspp_setup_rects(struct dpu_sw_pipe= *pipe, out_xy_off =3D SSPP_OUT_XY_REC1; } =20 - - /* src and dest rect programming */ - src_xy =3D (cfg->src_rect.y1 << 16) | cfg->src_rect.x1; - src_size =3D (drm_rect_height(&cfg->src_rect) << 16) | - drm_rect_width(&cfg->src_rect); - dst_xy =3D (cfg->dst_rect.y1 << 16) | cfg->dst_rect.x1; - dst_size =3D (drm_rect_height(&cfg->dst_rect) << 16) | - drm_rect_width(&cfg->dst_rect); - - /* rectangle register programming */ - DPU_REG_WRITE(c, src_size_off, src_size); - DPU_REG_WRITE(c, src_xy_off, src_xy); - DPU_REG_WRITE(c, out_size_off, dst_size); - DPU_REG_WRITE(c, out_xy_off, dst_xy); + dpu_hw_setup_rects_impl(pipe, cfg, ctx, src_size_off, + src_xy_off, out_size_off, out_xy_off); } =20 static void dpu_hw_sspp_setup_sourceaddress(struct dpu_sw_pipe *pipe, @@ -497,8 +504,8 @@ static void dpu_hw_sspp_setup_sourceaddress(struct dpu_= sw_pipe *pipe, DPU_REG_WRITE(&ctx->hw, SSPP_SRC_YSTRIDE1, ystride1); } =20 -static void dpu_hw_sspp_setup_csc(struct dpu_hw_sspp *ctx, - const struct dpu_csc_cfg *data) +void dpu_hw_sspp_setup_csc(struct dpu_hw_sspp *ctx, + const struct dpu_csc_cfg *data) { u32 offset; bool csc10 =3D false; @@ -519,21 +526,31 @@ static void dpu_hw_sspp_setup_csc(struct dpu_hw_sspp = *ctx, static void dpu_hw_sspp_setup_solidfill(struct dpu_sw_pipe *pipe, u32 colo= r) { struct dpu_hw_sspp *ctx =3D pipe->sspp; - struct dpu_hw_fmt_layout cfg; + u32 const_clr_off; =20 if (!ctx) return; =20 + if (pipe->multirect_index =3D=3D DPU_SSPP_RECT_SOLO || + pipe->multirect_index =3D=3D DPU_SSPP_RECT_0) + const_clr_off =3D SSPP_SRC_CONSTANT_COLOR; + else + const_clr_off =3D SSPP_SRC_CONSTANT_COLOR_REC1; + + dpu_hw_setup_solidfill_impl(pipe, color, ctx, const_clr_off); +} + +void dpu_hw_setup_solidfill_impl(struct dpu_sw_pipe *pipe, + u32 color, struct dpu_hw_sspp *ctx, + u32 const_clr_off) +{ + struct dpu_hw_fmt_layout cfg; + /* cleanup source addresses */ memset(&cfg, 0, sizeof(cfg)); ctx->ops.setup_sourceaddress(pipe, &cfg); =20 - if (pipe->multirect_index =3D=3D DPU_SSPP_RECT_SOLO || - pipe->multirect_index =3D=3D DPU_SSPP_RECT_0) - DPU_REG_WRITE(&ctx->hw, SSPP_SRC_CONSTANT_COLOR, color); - else - DPU_REG_WRITE(&ctx->hw, SSPP_SRC_CONSTANT_COLOR_REC1, - color); + DPU_REG_WRITE(&ctx->hw, const_clr_off, color); } =20 static void dpu_hw_sspp_setup_qos_lut(struct dpu_hw_sspp *ctx, @@ -547,14 +564,20 @@ static void dpu_hw_sspp_setup_qos_lut(struct dpu_hw_s= spp *ctx, cfg); } =20 +void dpu_hw_sspp_setup_qos_ctrl_impl(struct dpu_hw_sspp *ctx, + bool danger_safe_en, u32 ctrl_off) +{ + DPU_REG_WRITE(&ctx->hw, ctrl_off, + danger_safe_en ? SSPP_QOS_CTRL_DANGER_SAFE_EN : 0); +} + static void dpu_hw_sspp_setup_qos_ctrl(struct dpu_hw_sspp *ctx, bool danger_safe_en) { if (!ctx) return; =20 - DPU_REG_WRITE(&ctx->hw, SSPP_QOS_CTRL, - danger_safe_en ? SSPP_QOS_CTRL_DANGER_SAFE_EN : 0); + dpu_hw_sspp_setup_qos_ctrl_impl(ctx, danger_safe_en, SSPP_QOS_CTRL); } =20 static void dpu_hw_sspp_setup_cdp(struct dpu_sw_pipe *pipe, @@ -609,7 +632,7 @@ static void _setup_layer_ops(struct dpu_hw_sspp *c, c->ops.setup_multirect =3D dpu_hw_sspp_setup_multirect; =20 if (test_bit(DPU_SSPP_SCALER_QSEED3_COMPATIBLE, &features)) - c->ops.setup_scaler =3D _dpu_hw_sspp_setup_scaler3; + c->ops.setup_scaler =3D dpu_hw_sspp_setup_scaler3; =20 if (test_bit(DPU_SSPP_CDP, &features)) c->ops.setup_cdp =3D dpu_hw_sspp_setup_cdp; diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h b/drivers/gpu/drm/= msm/disp/dpu1/dpu_hw_sspp.h index bdac5c04bf79..c6b19cb4d158 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h @@ -331,5 +331,57 @@ struct dpu_hw_sspp *dpu_hw_sspp_init(struct drm_device= *dev, int _dpu_hw_sspp_init_debugfs(struct dpu_hw_sspp *hw_pipe, struct dpu_kms = *kms, struct dentry *entry); =20 +void dpu_hw_sspp_setup_opmode(struct dpu_hw_sspp *ctx, + u32 mask, u8 en); + +void dpu_hw_sspp_setup_csc10_opmode(struct dpu_hw_sspp *ctx, + u32 mask, u8 en); + +void dpu_hw_sspp_setup_scaler3(struct dpu_hw_sspp *ctx, + struct dpu_hw_scaler3_cfg *scaler3_cfg, + const struct msm_format *format); + +void dpu_hw_sspp_setup_csc(struct dpu_hw_sspp *ctx, + const struct dpu_csc_cfg *data); + +void dpu_hw_setup_multirect_impl(struct dpu_sw_pipe *pipe, + struct dpu_hw_sspp *ctx, + u32 op_mode_off); + +void dpu_hw_setup_format_impl(struct dpu_sw_pipe *pipe, const struct msm_f= ormat *fmt, + u32 flags, struct dpu_hw_sspp *ctx, + u32 op_mode_off, u32 unpack_pat_off, u32 format_off, + u32 ubwc_ctrl_off, u32 ubwc_err_off); + +static inline void dpu_hw_setup_rects_impl(struct dpu_sw_pipe *pipe, struc= t dpu_sw_pipe_cfg *cfg, + struct dpu_hw_sspp *ctx, u32 src_size_off, + u32 src_xy_off, u32 out_size_off, u32 out_xy_off) +{ + struct dpu_hw_blk_reg_map *c; + u32 src_size, src_xy, dst_size, dst_xy; + + c =3D &ctx->hw; + + /* src and dest rect programming */ + src_xy =3D (cfg->src_rect.y1 << 16) | cfg->src_rect.x1; + src_size =3D (drm_rect_height(&cfg->src_rect) << 16) | + drm_rect_width(&cfg->src_rect); + dst_xy =3D (cfg->dst_rect.y1 << 16) | cfg->dst_rect.x1; + dst_size =3D (drm_rect_height(&cfg->dst_rect) << 16) | + drm_rect_width(&cfg->dst_rect); + + /* rectangle register programming */ + DPU_REG_WRITE(c, src_size_off, src_size); + DPU_REG_WRITE(c, src_xy_off, src_xy); + DPU_REG_WRITE(c, out_size_off, dst_size); + DPU_REG_WRITE(c, out_xy_off, dst_xy); +} + +void dpu_hw_setup_solidfill_impl(struct dpu_sw_pipe *pipe, + u32 color, struct dpu_hw_sspp *ctx, u32 const_clr_off); + +void dpu_hw_sspp_setup_qos_ctrl_impl(struct dpu_hw_sspp *ctx, + bool danger_safe_en, u32 ctrl_off); + #endif /*_DPU_HW_SSPP_H */ =20 diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c b/drivers/gpu/drm/= msm/disp/dpu1/dpu_hw_util.c index 486be346d40d..3cf22ec62792 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c @@ -81,6 +81,13 @@ static u32 dpu_hw_util_log_mask =3D DPU_DBG_MASK_NONE; #define QOS_CREQ_LUT_0 0x14 #define QOS_CREQ_LUT_1 0x18 =20 +/* CMN_QOS_LUT */ +#define SSPP_CMN_QOS_CTRL 0x28 +#define SSPP_CMN_DANGER_LUT 0x2c +#define SSPP_CMN_SAFE_LUT 0x30 +#define SSPP_CMN_CREQ_LUT_0 0x34 +#define SSPP_CMN_CREQ_LUT_1 0x38 + /* QOS_QOS_CTRL */ #define QOS_QOS_CTRL_DANGER_SAFE_EN BIT(0) #define QOS_QOS_CTRL_DANGER_VBLANK_MASK GENMASK(5, 4) @@ -475,6 +482,17 @@ void _dpu_hw_setup_qos_lut(struct dpu_hw_blk_reg_map *= c, u32 offset, cfg->danger_safe_en ? QOS_QOS_CTRL_DANGER_SAFE_EN : 0); } =20 +void _dpu_hw_setup_qos_lut_v13(struct dpu_hw_blk_reg_map *c, + const struct dpu_hw_qos_cfg *cfg) +{ + DPU_REG_WRITE(c, SSPP_CMN_DANGER_LUT, cfg->danger_lut); + DPU_REG_WRITE(c, SSPP_CMN_SAFE_LUT, cfg->safe_lut); + DPU_REG_WRITE(c, SSPP_CMN_CREQ_LUT_0, cfg->creq_lut); + DPU_REG_WRITE(c, SSPP_CMN_CREQ_LUT_1, cfg->creq_lut >> 32); + DPU_REG_WRITE(c, SSPP_CMN_QOS_CTRL, + cfg->danger_safe_en ? QOS_QOS_CTRL_DANGER_SAFE_EN : 0); +} + /* * note: Aside from encoders, input_sel should be set to 0x0 by default */ diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h b/drivers/gpu/drm/= msm/disp/dpu1/dpu_hw_util.h index 67b08e99335d..1822ac699757 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h @@ -360,6 +360,9 @@ void _dpu_hw_setup_qos_lut(struct dpu_hw_blk_reg_map *c= , u32 offset, bool qos_8lvl, const struct dpu_hw_qos_cfg *cfg); =20 +void _dpu_hw_setup_qos_lut_v13(struct dpu_hw_blk_reg_map *c, + const struct dpu_hw_qos_cfg *cfg); + void dpu_hw_setup_misr(struct dpu_hw_blk_reg_map *c, u32 misr_ctrl_offset, u8 input_sel); =20 diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c b/drivers/gpu/drm/ms= m/disp/dpu1/dpu_hw_wb.c index 478a091aeccf..006dcc4a0dcc 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c @@ -148,6 +148,15 @@ static void dpu_hw_wb_setup_qos_lut(struct dpu_hw_wb *= ctx, cfg); } =20 +static void dpu_hw_wb_setup_qos_lut_v13(struct dpu_hw_wb *ctx, + struct dpu_hw_qos_cfg *cfg) +{ + if (!ctx || !cfg) + return; + + _dpu_hw_setup_qos_lut_v13(&ctx->hw, cfg); +} + static void dpu_hw_wb_setup_cdp(struct dpu_hw_wb *ctx, const struct msm_format *fmt, bool enable) @@ -202,8 +211,12 @@ static void _setup_wb_ops(struct dpu_hw_wb_ops *ops, if (test_bit(DPU_WB_XY_ROI_OFFSET, &features)) ops->setup_roi =3D dpu_hw_wb_roi; =20 - if (test_bit(DPU_WB_QOS, &features)) - ops->setup_qos_lut =3D dpu_hw_wb_setup_qos_lut; + if (test_bit(DPU_WB_QOS, &features)) { + if (mdss_rev->core_major_ver >=3D 13) + ops->setup_qos_lut =3D dpu_hw_wb_setup_qos_lut_v13; + else + ops->setup_qos_lut =3D dpu_hw_wb_setup_qos_lut; + } =20 if (test_bit(DPU_WB_CDP, &features)) ops->setup_cdp =3D dpu_hw_wb_setup_cdp; --=20 2.34.1 From nobody Wed Dec 17 04:03:00 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 4061A32B99F for ; Mon, 15 Dec 2025 08:41:20 +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=1765788082; cv=none; b=K0i3KGC2BLNTqRH8g98AMZdPGVNmVCJ1qnX2JP+w01qeDm92XfuiknfBFGS09yyt/n/xiveBu23CVLZyU+43zjyfBbDBywR74HG75yj9I8pN6uOQvIJF5afqr5qNeQ4QDPaEY4EHBYRN0dQ+dJ1WbZgYfCfT/9R/EQgfDu0JnhU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765788082; c=relaxed/simple; bh=XcsxZqlkrAPYpOesdswiBYmUBpesDBwPbcr9uqy+X5I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=LYt5/MpuGUF9542P9bh7SlmIfeALx2KIuPeWUn0J+mg2m8/mJo32f9Cs04tZgaB+OV4a6MDhzRomzYwBdUsJQWAfjBDOqQLr+8dEp6JEse/pZIdLUW8ioX+KnkMIJ+vFGpemnnMVhtMIhX//qhMh7lqDlZP3hE6N2uOs3+QnswU= 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=IMlkt72e; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Y4/70Z5N; 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="IMlkt72e"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Y4/70Z5N" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BEMhWt83137343 for ; Mon, 15 Dec 2025 08:41:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=mcJrBJUG+Yq TOokZC0kC+clKjD1pzzdK2ox6Ib8S9Lo=; b=IMlkt72eb5gos02XitgHXaSzfGH KQfTFkeQcN2GIL25bAkK7mb0lgHBLBfITdij8Ydc+tfYYYxmjy2ABxOwPgngj90g QFzzEJBMi1uFF3hnkrC1fCgnByPKHYd3D2YYN+YIETru3GVlZ/bmMNtqPXBy9cQn 3rmApxE54D1o+ySYy22Y5zhmLNo68ctH3x5ZHqOhLIfMiBmwW5Jp3TEPV+FMFe36 qvhdnY5MZITqzguU+/YsoLqmdRxjMHW0C4C89UTWOA7NXLM8ppslTOgRr30Cspf8 cKTL9nbf1FKaynB+n2doS3YPjlU75SGNb9DfAU2mwMWcO1y5wn1A7HgW8qg== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b119aktm9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 15 Dec 2025 08:41:19 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4ee27e24711so60708851cf.1 for ; Mon, 15 Dec 2025 00:41:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765788078; x=1766392878; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mcJrBJUG+YqTOokZC0kC+clKjD1pzzdK2ox6Ib8S9Lo=; b=Y4/70Z5NpS08zTCHTOmyv70y/gdH7lTS65zAvSiXG26gcS+giruedLawLWr7TI2ECd /mzzoDdRE+JS6ZaaNFHaGXpHz1EOOy5rm+AZEzrCj5JmIKU9KwtecU5TiXAg7p6IUMtD 77zxl4O81tkJ1ii7pSMiYlZxyJ378WogBCxN+yksmQyPahFOu0aL4fCyLW2Q2Zr+mdwi UrOiJImCcMMZYr0SFkgb/yb01Rn7dFOjBoHhYTfT9bfczpx1DpRzdzn60PrLKbD2UtA8 njoZaQ/1keHEZ+fuHJli6/utKQYy+VkfWQu9rri5j5Lo3g8BODJumFEgcAPQA3aeJ9xl 9JSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765788078; x=1766392878; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=mcJrBJUG+YqTOokZC0kC+clKjD1pzzdK2ox6Ib8S9Lo=; b=AEJMnMtbxFfVmqB9GwKymCrvlWq3Ji7nTRHZjR3o4k+ePVTu8s79xG+O4miBkvzYJJ NgQd375ySS9ndxpk56rqoFBjhGXbH3uN0xZ6PPJQY47UXmRvZzfo7FlTaA1liMV54OAe 6n+GKVEp8Qaby0f27apFH5aV8g/zWRDORIllrQLgNl987e+NBSMaAy5B0unSK2gIiLNY qeWMxiIeUJ7xbtvGKqL28W3d4CSXJoN5p3DwqdLi+1cZB/804Eqj+pXr9hI5iMmLtHqw Nkr2pVt2Q4/NgaxEnkrSxNpkRCHygxIfWuSzfdI+oq0/o/MK3AxOGbNzZ+bm5Z+e0UCm 9hxg== X-Forwarded-Encrypted: i=1; AJvYcCVMv9vfg5wYZcJ+IiaiWNhymvmHwQHCcuPAgVzYYHMu0cUlv/g8winbjKNK4PZwNTBSM3fbwjLmZE0fmvs=@vger.kernel.org X-Gm-Message-State: AOJu0YxexAtaLssCOQkGsGI9bt3Mxq0tXlGySkqLWceJftRKSd4a25Hx Y22Gdln26drs7szr6Mk7eaCbovcFtKstlrsCZIXaXGF3pn9OgKHKKRAF2osKPqQX/Xw/u7U0BFV w50FdUJ9wqttvJ9qushGTtF8OGWWeHIRDFQqpteHadtpDt7JKYLxEWJDHEurvv5FBX1o= X-Gm-Gg: AY/fxX7Sn/B3gnoQbCnwsNi1ZmHTqmXH8b4N8KVPuO0AEQbjpwTq5aF5ig2MY1BgCt6 Ov87R3GK91X9mvstE3rhiZrx6h9BFQlPFGnJ9qwka4YumgeUhBhuW/zT4FlUgdr42gJVn4WPDBm dLMM8FRdwlTig5pvvW9TP8YteX3nURaC45usX3b7k4uVpXRnK4f7hPklbQ0j/5Vjg8aIZg8vzlG PPGt2Zu8NQMgx/GWYA8SWsmqqaR8K/NhyAwnD4712IoHERzsKGY5tRKPMlU5WEgoM8njSNtTDYk 1yjG20wlYtWlDS5ZkYVktrQ7lUy7FnQ7uZasFRotMF0RjfKZinK+j0U6aOb6sEbUM7aqRM4eW4R tjOplEQQLT5fPSDyn6sZOG355UQIwJzKIxsTXjgU68lctpffGJjfRyeOs/HcOtuYdNIU= X-Received: by 2002:ac8:5705:0:b0:4f1:b9e8:1d34 with SMTP id d75a77b69052e-4f1d0622c8dmr130916011cf.61.1765788078246; Mon, 15 Dec 2025 00:41:18 -0800 (PST) X-Google-Smtp-Source: AGHT+IHmtkT2FrMh3A8JdAyzZzQ/M03hiq4FyGZ//hLnndI9tiGgF2mYveq2bp23FrW4NwiKA12JGQ== X-Received: by 2002:ac8:5705:0:b0:4f1:b9e8:1d34 with SMTP id d75a77b69052e-4f1d0622c8dmr130915751cf.61.1765788077748; Mon, 15 Dec 2025 00:41:17 -0800 (PST) Received: from yuanjiey.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4f1bd6b50afsm90557971cf.21.2025.12.15.00.41.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 00:41:17 -0800 (PST) From: yuanjie yang To: robin.clark@oss.qualcomm.com, lumag@kernel.org, abhinav.kumar@linux.dev, jesszhan0024@gmail.com, sean@poorly.run, marijn.suijten@somainline.org, airlied@gmail.com, simona@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, yongxing.mou@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, tingwei.zhang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com Subject: [PATCH v3 11/11] drm/msm/dpu: Add Kaanapali SSPP sub-block support Date: Mon, 15 Dec 2025 16:38:54 +0800 Message-Id: <20251215083854.577-12-yuanjie.yang@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> References: <20251215083854.577-1-yuanjie.yang@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE1MDA3MiBTYWx0ZWRfX14GDClQAgwFH zB4I51uSpc+eKYqlRvTp7aHQe+4GMGELuRubE+BgHqolxWr6N6+/crIEUziS0prHkZi/UcG3WwH AyIMoVQ1HLKYVkQ+liP9InFt+bpVUSH2L4miwoKBiQbGqaA40VBxbice6eRnCp3rxS6HH7orxZm ExXqbbTyRS4VVBBrOtIESXkTAHS962YK7uNEU2YnnWXT/dZJL7m2l3CaGfIsAEHEBE29IGegS/J gHbMJadlFSvoYCAqPCk9/bbQYaEOnZ6fHyhPnYA/IrLhRd6GNCgJgjob7vI08IspIWx3/eNOwv4 6isTICiB5Ls24mHPZXDxp2T4URJJum8lxsf6li4YpjtIpSZgbGol3apb06wnHSmxt+PzPydqTl4 PKWbbEs0+4NgZRosGJS0nCvZdGr5qg== X-Authority-Analysis: v=2.4 cv=LNFrgZW9 c=1 sm=1 tr=0 ts=693fc9af cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=J8Rk1CmWvRk3UPPSVzgA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-GUID: DjRcFsMt85z2OmgIMTuXi0jRKwLjfbcK X-Proofpoint-ORIG-GUID: DjRcFsMt85z2OmgIMTuXi0jRKwLjfbcK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-15_01,2025-12-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 phishscore=0 malwarescore=0 spamscore=0 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512150072 Content-Type: text/plain; charset="utf-8" From: Yuanjie Yang Add support for Kaanapali platform SSPP sub-blocks, which introduce structural changes including register additions, removals, and relocations. Add the new common and rectangle blocks, and update register definitions and handling to ensure compatibility with DPU v13.0. Co-developed-by: Yongxing Mou Signed-off-by: Yongxing Mou Signed-off-by: Yuanjie Yang --- drivers/gpu/drm/msm/Makefile | 1 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 5 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h | 4 + .../gpu/drm/msm/disp/dpu1/dpu_hw_sspp_v13.c | 321 ++++++++++++++++++ 4 files changed, 330 insertions(+), 1 deletion(-) create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp_v13.c diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile index 8aa7d07303fb..8b94c5f1cb68 100644 --- a/drivers/gpu/drm/msm/Makefile +++ b/drivers/gpu/drm/msm/Makefile @@ -86,6 +86,7 @@ msm-display-$(CONFIG_DRM_MSM_DPU) +=3D \ disp/dpu1/dpu_hw_lm.o \ disp/dpu1/dpu_hw_pingpong.o \ disp/dpu1/dpu_hw_sspp.o \ + disp/dpu1/dpu_hw_sspp_v13.o \ disp/dpu1/dpu_hw_dspp.o \ disp/dpu1/dpu_hw_merge3d.o \ disp/dpu1/dpu_hw_top.o \ diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c b/drivers/gpu/drm/= msm/disp/dpu1/dpu_hw_sspp.c index 7ed28009c463..f7f1914d4537 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c @@ -729,7 +729,10 @@ struct dpu_hw_sspp *dpu_hw_sspp_init(struct drm_device= *dev, =20 hw_pipe->mdss_ver =3D mdss_rev; =20 - _setup_layer_ops(hw_pipe, hw_pipe->cap->features, mdss_rev); + if (mdss_rev->core_major_ver >=3D 13) + dpu_hw_sspp_init_v13(hw_pipe, hw_pipe->cap->features, mdss_rev); + else + _setup_layer_ops(hw_pipe, hw_pipe->cap->features, mdss_rev); =20 return hw_pipe; } diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h b/drivers/gpu/drm/= msm/disp/dpu1/dpu_hw_sspp.h index c6b19cb4d158..309af4183ba3 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h @@ -383,5 +383,9 @@ void dpu_hw_setup_solidfill_impl(struct dpu_sw_pipe *pi= pe, void dpu_hw_sspp_setup_qos_ctrl_impl(struct dpu_hw_sspp *ctx, bool danger_safe_en, u32 ctrl_off); =20 +void dpu_hw_sspp_init_v13(struct dpu_hw_sspp *c, + unsigned long features, + const struct dpu_mdss_version *mdss_rev); + #endif /*_DPU_HW_SSPP_H */ =20 diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp_v13.c b/drivers/gpu/= drm/msm/disp/dpu1/dpu_hw_sspp_v13.c new file mode 100644 index 000000000000..e78a20b45300 --- /dev/null +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp_v13.c @@ -0,0 +1,321 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#include +#include + +#include "dpu_hw_sspp.h" + +/* >=3D v13 DPU */ +/* CMN Registers -> Source Surface Processing Pipe Common SSPP registers */ +/* Name Offset */ +#define SSPP_CMN_CLK_CTRL 0x0 +#define SSPP_CMN_CLK_STATUS 0x4 +#define SSPP_CMN_MULTI_REC_OP_MODE 0x10 +#define SSPP_CMN_ADDR_CONFIG 0x14 +#define SSPP_CMN_CAC_CTRL 0x20 +#define SSPP_CMN_SYS_CACHE_MODE 0x24 +#define SSPP_CMN_QOS_CTRL 0x28 + +#define SSPP_CMN_FILL_LEVEL_SCALE 0x3c +#define SSPP_CMN_FILL_LEVELS 0x40 +#define SSPP_CMN_STATUS 0x44 +#define SSPP_CMN_FETCH_DMA_RD_OTS 0x48 +#define SSPP_CMN_FETCH_DTB_WR_PLANE0 0x4c +#define SSPP_CMN_FETCH_DTB_WR_PLANE1 0x50 +#define SSPP_CMN_FETCH_DTB_WR_PLANE2 0x54 +#define SSPP_CMN_DTB_UNPACK_RD_PLANE0 0x58 +#define SSPP_CMN_DTB_UNPACK_RD_PLANE1 0x5c +#define SSPP_CMN_DTB_UNPACK_RD_PLANE2 0x60 +#define SSPP_CMN_UNPACK_LINE_COUNT 0x64 +#define SSPP_CMN_TPG_CONTROL 0x68 +#define SSPP_CMN_TPG_CONFIG 0x6c +#define SSPP_CMN_TPG_COMPONENT_LIMITS 0x70 +#define SSPP_CMN_TPG_RECTANGLE 0x74 +#define SSPP_CMN_TPG_BLACK_WHITE_PATTERN_FRAMES 0x78 +#define SSPP_CMN_TPG_RGB_MAPPING 0x7c +#define SSPP_CMN_TPG_PATTERN_GEN_INIT_VAL 0x80 + +/*RECRegisterset*/ +/*Name Offset*/ +#define SSPP_REC_SRC_FORMAT 0x0 +#define SSPP_REC_SRC_UNPACK_PATTERN 0x4 +#define SSPP_REC_SRC_OP_MODE 0x8 +#define SSPP_REC_SRC_CONSTANT_COLOR 0xc +#define SSPP_REC_SRC_IMG_SIZE 0x10 +#define SSPP_REC_SRC_SIZE 0x14 +#define SSPP_REC_SRC_XY 0x18 +#define SSPP_REC_OUT_SIZE 0x1c +#define SSPP_REC_OUT_XY 0x20 +#define SSPP_REC_SW_PIX_EXT_LR 0x24 +#define SSPP_REC_SW_PIX_EXT_TB 0x28 +#define SSPP_REC_SRC_SIZE_ODX 0x30 +#define SSPP_REC_SRC_XY_ODX 0x34 +#define SSPP_REC_OUT_SIZE_ODX 0x38 +#define SSPP_REC_OUT_XY_ODX 0x3c +#define SSPP_REC_SW_PIX_EXT_LR_ODX 0x40 +#define SSPP_REC_SW_PIX_EXT_TB_ODX 0x44 +#define SSPP_REC_PRE_DOWN_SCALE 0x48 +#define SSPP_REC_SRC0_ADDR 0x4c +#define SSPP_REC_SRC1_ADDR 0x50 +#define SSPP_REC_SRC2_ADDR 0x54 +#define SSPP_REC_SRC3_ADDR 0x58 +#define SSPP_REC_SRC_YSTRIDE0 0x5c +#define SSPP_REC_SRC_YSTRIDE1 0x60 +#define SSPP_REC_CURRENT_SRC0_ADDR 0x64 +#define SSPP_REC_CURRENT_SRC1_ADDR 0x68 +#define SSPP_REC_CURRENT_SRC2_ADDR 0x6c +#define SSPP_REC_CURRENT_SRC3_ADDR 0x70 +#define SSPP_REC_SRC_ADDR_SW_STATUS 0x74 +#define SSPP_REC_CDP_CNTL 0x78 +#define SSPP_REC_TRAFFIC_SHAPER 0x7c +#define SSPP_REC_TRAFFIC_SHAPER_PREFILL 0x80 +#define SSPP_REC_PD_MEM_ALLOC 0x84 +#define SSPP_REC_QOS_CLAMP 0x88 +#define SSPP_REC_UIDLE_CTRL_VALUE 0x8c +#define SSPP_REC_UBWC_STATIC_CTRL 0x90 +#define SSPP_REC_UBWC_STATIC_CTRL_OVERRIDE 0x94 +#define SSPP_REC_UBWC_STATS_ROI 0x98 +#define SSPP_REC_UBWC_STATS_WORST_TILE_ROW_BW_ROI0 0x9c +#define SSPP_REC_UBWC_STATS_TOTAL_BW_ROI0 0xa0 +#define SSPP_REC_UBWC_STATS_WORST_TILE_ROW_BW_ROI1 0xa4 +#define SSPP_REC_UBWC_STATS_TOTAL_BW_ROI1 0xa8 +#define SSPP_REC_UBWC_STATS_WORST_TILE_ROW_BW_ROI2 0xac +#define SSPP_REC_UBWC_STATS_TOTAL_BW_ROI2 0xb0 +#define SSPP_REC_EXCL_REC_CTRL 0xb4 +#define SSPP_REC_EXCL_REC_SIZE 0xb8 +#define SSPP_REC_EXCL_REC_XY 0xbc +#define SSPP_REC_LINE_INSERTION_CTRL 0xc0 +#define SSPP_REC_LINE_INSERTION_OUT_SIZE 0xc4 +#define SSPP_REC_FETCH_PIPE_ACTIVE 0xc8 +#define SSPP_REC_META_ERROR_STATUS 0xcc +#define SSPP_REC_UBWC_ERROR_STATUS 0xd0 +#define SSPP_REC_FLUSH_CTRL 0xd4 +#define SSPP_REC_INTR_EN 0xd8 +#define SSPP_REC_INTR_STATUS 0xdc +#define SSPP_REC_INTR_CLEAR 0xe0 +#define SSPP_REC_HSYNC_STATUS 0xe4 +#define SSPP_REC_FP16_CONFIG 0x150 +#define SSPP_REC_FP16_CSC_MATRIX_COEFF_R_0 0x154 +#define SSPP_REC_FP16_CSC_MATRIX_COEFF_R_1 0x158 +#define SSPP_REC_FP16_CSC_MATRIX_COEFF_G_0 0x15c +#define SSPP_REC_FP16_CSC_MATRIX_COEFF_G_1 0x160 +#define SSPP_REC_FP16_CSC_MATRIX_COEFF_B_0 0x164 +#define SSPP_REC_FP16_CSC_MATRIX_COEFF_B_1 0x168 +#define SSPP_REC_FP16_CSC_PRE_CLAMP_R 0x16c +#define SSPP_REC_FP16_CSC_PRE_CLAMP_G 0x170 +#define SSPP_REC_FP16_CSC_PRE_CLAMP_B 0x174 +#define SSPP_REC_FP16_CSC_POST_CLAMP 0x178 + +static inline u32 dpu_hw_sspp_calculate_rect_off(enum dpu_sspp_multirect_i= ndex rect_index, + struct dpu_hw_sspp *ctx) +{ + return (rect_index =3D=3D DPU_SSPP_RECT_SOLO || rect_index =3D=3D DPU_SSP= P_RECT_0) ? + ctx->cap->sblk->sspp_rec0_blk.base : ctx->cap->sblk->sspp_rec1_blk.base; +} + +static void dpu_hw_sspp_setup_multirect_v13(struct dpu_sw_pipe *pipe) +{ + struct dpu_hw_sspp *ctx =3D pipe->sspp; + + if (!ctx) + return; + + dpu_hw_setup_multirect_impl(pipe, ctx, SSPP_CMN_MULTI_REC_OP_MODE); +} + +static void dpu_hw_sspp_setup_format_v13(struct dpu_sw_pipe *pipe, + const struct msm_format *fmt, u32 flags) +{ + struct dpu_hw_sspp *ctx =3D pipe->sspp; + u32 op_mode_off, unpack_pat_off, format_off; + u32 ubwc_ctrl_off, ubwc_err_off; + u32 offset; + + if (!ctx || !fmt) + return; + + offset =3D dpu_hw_sspp_calculate_rect_off(pipe->multirect_index, ctx); + + op_mode_off =3D offset + SSPP_REC_SRC_OP_MODE; + unpack_pat_off =3D offset + SSPP_REC_SRC_UNPACK_PATTERN; + format_off =3D offset + SSPP_REC_SRC_FORMAT; + ubwc_ctrl_off =3D offset + SSPP_REC_UBWC_STATIC_CTRL; + ubwc_err_off =3D offset + SSPP_REC_UBWC_ERROR_STATUS; + + dpu_hw_setup_format_impl(pipe, fmt, flags, ctx, op_mode_off, + unpack_pat_off, format_off, ubwc_ctrl_off, ubwc_err_off); +} + +static void dpu_hw_sspp_setup_pe_config_v13(struct dpu_hw_sspp *ctx, + struct dpu_hw_pixel_ext *pe_ext) +{ + struct dpu_hw_blk_reg_map *c; + u8 color; + u32 lr_pe[4], tb_pe[4]; + const u32 bytemask =3D 0xff; + u32 offset =3D ctx->cap->sblk->sspp_rec0_blk.base; + + if (!ctx || !pe_ext) + return; + + c =3D &ctx->hw; + /* program SW pixel extension override for all pipes*/ + for (color =3D 0; color < DPU_MAX_PLANES; color++) { + /* color 2 has the same set of registers as color 1 */ + if (color =3D=3D 2) + continue; + + lr_pe[color] =3D ((pe_ext->right_ftch[color] & bytemask) << 24) | + ((pe_ext->right_rpt[color] & bytemask) << 16) | + ((pe_ext->left_ftch[color] & bytemask) << 8) | + (pe_ext->left_rpt[color] & bytemask); + + tb_pe[color] =3D ((pe_ext->btm_ftch[color] & bytemask) << 24) | + ((pe_ext->btm_rpt[color] & bytemask) << 16) | + ((pe_ext->top_ftch[color] & bytemask) << 8) | + (pe_ext->top_rpt[color] & bytemask); + } + + /* color 0 */ + DPU_REG_WRITE(c, SSPP_REC_SW_PIX_EXT_LR + offset, lr_pe[0]); + DPU_REG_WRITE(c, SSPP_REC_SW_PIX_EXT_TB + offset, tb_pe[0]); + + /* color 1 and color 2 */ + DPU_REG_WRITE(c, SSPP_REC_SW_PIX_EXT_LR_ODX + offset, lr_pe[1]); + DPU_REG_WRITE(c, SSPP_REC_SW_PIX_EXT_TB_ODX + offset, tb_pe[1]); +} + +static void dpu_hw_sspp_setup_rects_v13(struct dpu_sw_pipe *pipe, + struct dpu_sw_pipe_cfg *cfg) +{ + struct dpu_hw_sspp *ctx =3D pipe->sspp; + u32 src_size_off, src_xy_off, out_size_off, out_xy_off; + u32 offset; + + if (!ctx || !cfg) + return; + + offset =3D dpu_hw_sspp_calculate_rect_off(pipe->multirect_index, ctx); + + src_size_off =3D offset + SSPP_REC_SRC_SIZE; + src_xy_off =3D offset + SSPP_REC_SRC_XY; + out_size_off =3D offset + SSPP_REC_OUT_SIZE; + out_xy_off =3D offset + SSPP_REC_OUT_XY; + + dpu_hw_setup_rects_impl(pipe, cfg, ctx, src_size_off, + src_xy_off, out_size_off, out_xy_off); +} + +static void dpu_hw_sspp_setup_sourceaddress_v13(struct dpu_sw_pipe *pipe, + struct dpu_hw_fmt_layout *layout) +{ + struct dpu_hw_sspp *ctx =3D pipe->sspp; + int i; + u32 offset, ystride0, ystride1; + + if (!ctx) + return; + + offset =3D dpu_hw_sspp_calculate_rect_off(pipe->multirect_index, ctx); + + for (i =3D 0; i < ARRAY_SIZE(layout->plane_addr); i++) + DPU_REG_WRITE(&ctx->hw, offset + SSPP_REC_SRC0_ADDR + i * 0x4, + layout->plane_addr[i]); + + ystride0 =3D (layout->plane_pitch[0]) | (layout->plane_pitch[2] << 16); + ystride1 =3D (layout->plane_pitch[1]) | (layout->plane_pitch[3] << 16); + + DPU_REG_WRITE(&ctx->hw, offset + SSPP_REC_SRC_YSTRIDE0, ystride0); + DPU_REG_WRITE(&ctx->hw, offset + SSPP_REC_SRC_YSTRIDE1, ystride1); +} + +static void dpu_hw_sspp_setup_solidfill_v13(struct dpu_sw_pipe *pipe, u32 = color) +{ + struct dpu_hw_sspp *ctx =3D pipe->sspp; + u32 const_clr_off; + u32 offset; + + if (!ctx) + return; + + offset =3D dpu_hw_sspp_calculate_rect_off(pipe->multirect_index, ctx); + const_clr_off =3D offset + SSPP_REC_SRC_CONSTANT_COLOR; + + dpu_hw_setup_solidfill_impl(pipe, color, ctx, const_clr_off); +} + +static void dpu_hw_sspp_setup_qos_lut_v13(struct dpu_hw_sspp *ctx, + struct dpu_hw_qos_cfg *cfg) +{ + if (!ctx || !cfg) + return; + + _dpu_hw_setup_qos_lut_v13(&ctx->hw, cfg); +} + +static void dpu_hw_sspp_setup_qos_ctrl_v13(struct dpu_hw_sspp *ctx, + bool danger_safe_en) +{ + if (!ctx) + return; + + dpu_hw_sspp_setup_qos_ctrl_impl(ctx, danger_safe_en, SSPP_CMN_QOS_CTRL); +} + +static void dpu_hw_sspp_setup_cdp_v13(struct dpu_sw_pipe *pipe, + const struct msm_format *fmt, + bool enable) +{ + struct dpu_hw_sspp *ctx =3D pipe->sspp; + u32 offset =3D 0; + + if (!ctx) + return; + + offset =3D dpu_hw_sspp_calculate_rect_off(pipe->multirect_index, ctx); + dpu_setup_cdp(&ctx->hw, offset + SSPP_REC_CDP_CNTL, fmt, enable); +} + +static bool dpu_hw_sspp_setup_clk_force_ctrl_v13(struct dpu_hw_sspp *ctx, = bool enable) +{ + static const struct dpu_clk_ctrl_reg sspp_clk_ctrl =3D { + .reg_off =3D SSPP_CMN_CLK_CTRL, + .bit_off =3D 0 + }; + + return dpu_hw_clk_force_ctrl(&ctx->hw, &sspp_clk_ctrl, enable); +} + +void dpu_hw_sspp_init_v13(struct dpu_hw_sspp *c, + unsigned long features, const struct dpu_mdss_version *mdss_rev) +{ + c->ops.setup_format =3D dpu_hw_sspp_setup_format_v13; + c->ops.setup_rects =3D dpu_hw_sspp_setup_rects_v13; + c->ops.setup_sourceaddress =3D dpu_hw_sspp_setup_sourceaddress_v13; + c->ops.setup_solidfill =3D dpu_hw_sspp_setup_solidfill_v13; + c->ops.setup_pe =3D dpu_hw_sspp_setup_pe_config_v13; + + if (test_bit(DPU_SSPP_QOS, &features)) { + c->ops.setup_qos_lut =3D dpu_hw_sspp_setup_qos_lut_v13; + c->ops.setup_qos_ctrl =3D dpu_hw_sspp_setup_qos_ctrl_v13; + } + + if (test_bit(DPU_SSPP_CSC, &features) || + test_bit(DPU_SSPP_CSC_10BIT, &features)) + c->ops.setup_csc =3D dpu_hw_sspp_setup_csc; + + if (test_bit(DPU_SSPP_SMART_DMA_V1, &c->cap->features) || + test_bit(DPU_SSPP_SMART_DMA_V2, &c->cap->features)) + c->ops.setup_multirect =3D dpu_hw_sspp_setup_multirect_v13; + + if (test_bit(DPU_SSPP_SCALER_QSEED3_COMPATIBLE, &features)) + c->ops.setup_scaler =3D dpu_hw_sspp_setup_scaler3; + + if (test_bit(DPU_SSPP_CDP, &features)) + c->ops.setup_cdp =3D dpu_hw_sspp_setup_cdp_v13; + + c->ops.setup_clk_force_ctrl =3D dpu_hw_sspp_setup_clk_force_ctrl_v13; +} --=20 2.34.1