From nobody Fri Dec 19 19:20:08 2025 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 289D2175D47 for ; Tue, 15 Apr 2025 13:48:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724884; cv=none; b=d88ApJJNIOOtLAni0aqDMBLBhRaKmJXbUnm15sd3pReEe2Wkq935xStc4R53OasUBLpQoUy5425UgNwNA9PQlytylUhcjukiUi91t1T+PY7gGoAVS395f5I2+YKInS38seg6M+pSElivKHAAAsyV9AO1wmDduVGbdeR4CaeOc2Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724884; c=relaxed/simple; bh=9lL5z/5ZnlWCseQ67IPO6Gbh/2cC7+gxybyIcI8QMkY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hrnSuoJaHB58IaD3Xw8CwoMvp0umL9On/tiFUOyLGqbVUIXMrY4uNTE/BEINkX3BLOKAqbTvHLEKiJLYS1hK7lJp3iMUXnms5cUIJHrBQ1oHeQ02hAhQ9qIZvscjT1KaqtI0RqeZKXT6MnxapdpQJtMcFzbKZLnHoba/Q+78TRo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=wiaEkrsn; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="wiaEkrsn" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-43edecbfb46so38274395e9.0 for ; Tue, 15 Apr 2025 06:48:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744724879; x=1745329679; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=wLNuOPp7/6q1u/JipORAthYcl23KJ0kTZ/zrq8XSK10=; b=wiaEkrsnARhZubpW5pC7sNh1u0Jg+iFgdlJGcVipLqDUTwjtRalgRpQJzbSpM3eC/k HZdodf/MLkp6GV0HR6AoAeaYWzfTi5gDNLVVOmDYBF/gbj7Ac6Ueu9Lq+0lVEepBIT88 73Qr40Bsgh1ZMTkclqDFnBuWWzKd1O2sGPuTnC25T8Yff1d+rlaa7SOwcPABsWAyFB8t v2rwkpWWz5GaGYgYQQP/BywDi7Y9wbLJGEZmqxIGLQjXGOjDPEKkULkRi9gwc/II0lFX 6TlaE4l1iGtcw1NdLh9Yt83F4GucGvJ3R7qScBzwfYjKPeN1Rhfp6vmx+JaHdz0xG/u2 +6Sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744724879; x=1745329679; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wLNuOPp7/6q1u/JipORAthYcl23KJ0kTZ/zrq8XSK10=; b=Ueb5ppS/TWAm9J7CqoIVbTDvILh+IReODKifo9GblWgXGye3cs9KoKepAycUgTURrC cRVcd9tS8KeqsMKaHo6CzvgmqqeQUyV4mxBgtL7QwJ25HXW3aWLHU6IOgVhACJUdR4Y9 uAtIpY3T+mNBL3zQUMwD69pQRiU2mi4NtV7qDqPMNeaflStWSJOAOG3loeiTnsPe0j/s 9CbO1EtG4+u6cR8FjHGHKalBSPNedztCiPU7u5tfRvYAss39wwVAIqizOSL396uVnGwT 4WnX/VEr/3FI/fOh8oev2KuQPN4gL/FInXWa9KCqAGtGmnDPWe5zApvO9PE11tziyTOI a1xw== X-Forwarded-Encrypted: i=1; AJvYcCVa+YLm0u7r23ioOWO70sNSnCWb0gEGiYGppadnTpiV+lNCFY0WYrMv+Rbu+unUhoY2ZoU+OK07K+IYxNA=@vger.kernel.org X-Gm-Message-State: AOJu0YznrrVEvKu/+coRSB0H/x86N2lAmEnvlrSY7UDrjNcEn/UR+QBZ L0zauYznpoCJXG5JdFtEUeW/GvMPA0UF6xGCfWw8ma4xwJYilEWIvY0fSQ0A+WM= X-Gm-Gg: ASbGncvxddIRn+i2a3xl3i+fklJiKYbGUFncRZN+FCEMj8PO6x+uKqZdG6sogTDfQAZ 4rmz4CmkxnWx0RPW2Cfl3gTAb9UoSs/pjPONDGeJ7UYDNAaWMEMgHBUc07xBLsSm6jKNFsPROX0 aonFHxvfUmSfGKnPArMCZzZ2G9IxV8ofqYSNvJBxcdJgiOfysVKpdkULwpqsxGSFvi+73l1OMkw zBkrpyvzPGLPRa4HKVPjPt0Pf9/4fGbWGqDktqtu0Cv80YJYkX2s2WRUfxToBH1ojyZ98NrIUPm 8GWtq2zjdq9/CE6g3oExQQXaWFFxkBl6MGFVgIVQ1dbanMJbLijzMcCqHzGgkg== X-Google-Smtp-Source: AGHT+IEusx9V+EWA/jggcr6D9vXIrsx7SOzh1JnMQ08yxr3XdTQQwC6jFMkCy164NquHtj9I8blung== X-Received: by 2002:a05:600c:3590:b0:43d:563:6fef with SMTP id 5b1f17b1804b1-43f3a9aa721mr111498155e9.21.1744724879386; Tue, 15 Apr 2025 06:47:59 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:8261:5fff:fe11:bdda]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f2066d0fcsm210434195e9.19.2025.04.15.06.47.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Apr 2025 06:47:59 -0700 (PDT) From: Neil Armstrong Date: Tue, 15 Apr 2025 15:47:53 +0200 Subject: [PATCH v6 1/7] dt-bindings: media: qcom,sm8550-iris: document SM8650 IRIS accelerator Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250415-topic-sm8x50-iris-v10-v6-1-8ad319094055@linaro.org> References: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> In-Reply-To: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bryan O'Donoghue Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2304; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=9lL5z/5ZnlWCseQ67IPO6Gbh/2cC7+gxybyIcI8QMkY=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBn/mOKVg/1Jg0kiYLlIFPW57Hou8RbaRhsgIDzNaRQ FVVYct+JAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZ/5jigAKCRB33NvayMhJ0cgDEA Coi4IC0wHY2W+cJ5clSHLwLm7q8ECDZPqtxm0Nxbdi2OF2bTYPY+0rEXm5LV3r86342ns929POl72g xoJvF26u2nk2u2lEjLEheDc0vRDfAFjqT/ENZBEchcrKoaAuv8qK0y5Vp0NIhveh6W8i2qEoSBXdfU ur8mOJ9paPbYoM/DVeoyyPbIgQoPHALs/kuJ66ZJy8VMK8TzPZItW3NCqKHORx7vt9XY80R2Uxl3em j6rW2JCPv0cYLA0KVG3yoO5ZstIk71E3iwPMQ36UVJ3MQ/GqG2Mx/FFW1K7VubmyNDJ6VT15+M+4jU Ku12ggSq2ocqly727be9xlCOh49mUO9UCZ+tU6gRPQ8efhAKhl8RDnDetKnd0ijcfkFtQRNsh9dIll AnUYx6NNBVWblCGQ3Tc1EcGdvbYL42NKNjkPCW8moyhQAcPqTBTKJoZqJJOxCzPBgHjMPY02ZxxG+K duwIda3W8kdFUzmQzlidoADr0KvC1Ck6CKSvWMjIMavuYjafAtLbfJW70Cd+B/T10fpsozTaE3l++r CyNcs5NFssoxvTGTF0BrK5s3LDFP+aZNGOXkQO4eHAFUdZ9IzyOiYWMqJklLanCCyFM/kDXHyj+WWL fMEFh4jrss6BOAHneSaiDL3bN+tNcNmm0iDbPNdSJcEB8F50vYVcUZs/Hlkg== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE Document the IRIS video decoder and encoder accelerator found in the SM8650 platform, it requires 2 more reset lines in addition to the properties required for the SM8550 platform. Reviewed-by: Rob Herring (Arm) Reviewed-by: Vikash Garodia Reviewed-by: Bryan O'Donoghue Tested-by: Bryan O'Donoghue # x1e Dell Signed-off-by: Neil Armstrong --- .../bindings/media/qcom,sm8550-iris.yaml | 33 ++++++++++++++++++= ---- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml = b/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml index 6a89e9e3808758cfdbf6a51dfb9fc6559864253a..f567f84bd60d439b151bb140785= 5ba73582c3b83 100644 --- a/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml +++ b/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml @@ -14,9 +14,6 @@ description: The iris video processing unit is a video encode and decode accelerator present on Qualcomm platforms. =20 -allOf: - - $ref: qcom,venus-common.yaml# - properties: compatible: oneOf: @@ -24,7 +21,9 @@ properties: - enum: - qcom,sa8775p-iris - const: qcom,sm8550-iris - - const: qcom,sm8550-iris + - enum: + - qcom,sm8550-iris + - qcom,sm8650-iris =20 power-domains: maxItems: 4 @@ -54,11 +53,15 @@ properties: - const: video-mem =20 resets: - maxItems: 1 + minItems: 1 + maxItems: 3 =20 reset-names: + minItems: 1 items: - const: bus + - const: xo + - const: core =20 iommus: maxItems: 2 @@ -80,6 +83,26 @@ required: - iommus - dma-coherent =20 +allOf: + - $ref: qcom,venus-common.yaml# + - if: + properties: + compatible: + enum: + - qcom,sm8650-iris + then: + properties: + resets: + minItems: 3 + reset-names: + minItems: 3 + else: + properties: + resets: + maxItems: 1 + reset-names: + maxItems: 1 + unevaluatedProperties: false =20 examples: --=20 2.34.1 From nobody Fri Dec 19 19:20:08 2025 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 02609198E9B for ; Tue, 15 Apr 2025 13:48:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724884; cv=none; b=gg0SlH87ovssrcL5Y4lD9ApF5+8G3Qr3bWEqPMDmnnWK+EtYcZgStWY8AGQO1LMwL5tvZm/6hlT9JGTKRjdkK9CVjI9EYsmy2zgYcF8zGIY37/Tur8Tp0Im4XdPW0p5cYOZcrD4TwYBjt4T+lf4SiVUAz1r2aB9nGTmXbDWffeM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724884; c=relaxed/simple; bh=9hnSK/z/at7Q/XPaFDHxC32ZrhxYmQz5KS3r7i8xong=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mFUmBFk1UqjdRo3NKBB7vRs0fIwdOJ5wFY94x0FbPTANrTdWSUuXAd/6LijJMoKq4eRrDl0vm+q1lXuQrMaUEB/IOYpxj+txi6mcpPyJ5D9CKvHbvInxHT7QVMyFWIvqSSwOdhI0rEilBR99EZk24Zzj2iuDTM9kUnc5yVvAL/M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=EXxj2el/; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="EXxj2el/" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-43d04dc73b7so56435065e9.3 for ; Tue, 15 Apr 2025 06:48:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744724880; x=1745329680; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=XUkiFVraV2V5GiQVRCmgiYRRVnT/EoG7D4jFzUZHq4g=; b=EXxj2el/4LLgeleVPqjyl02FYT+TaVOeT+NTSkJwFNNsKgku3DOLRvYk2hF2MqQLdR nyVrTVLnM/KvT2IaN4rnsRAxMhnOvoRXisCh9O08mVyOYXYGjr1A6A1zo+Il0noqRAS5 jxMi0PzHgQSIPKSg3xnqVx3Bb3+hM2jNa+dQkWdZJMCtnyIjNHGNCjBCzH4qh1payN5i zGDaE+ViXXTiEMRTOjvvns/Iny5kB1WCjQW5Dl/45mA37+vLLeCGKXvQxzKDjxTAMjH4 xwwnJA15dWcG5r2CztpI+zAfErFix11nDSa5p9j+fX+vMDSznyU+m0GX/cn2FzMwcPeU 2XHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744724880; x=1745329680; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XUkiFVraV2V5GiQVRCmgiYRRVnT/EoG7D4jFzUZHq4g=; b=nhKD4FiZ3ZMPSAbg2477NuCNkjLZYW49zHvLnWfbkkcKqvO0fUxfElj5wtdpzJhHFT t3LMra6nKuGaXL0TJrLlFRm+99EnSdiRnnYCwbGDaRS/OPDXoKzmBqVRE8tA1Hddo9/T WbfPf5ATeu5VGIBAHrx8IeNCWz9zrux4G8f50DuiogTO9tnX8wMyv1j3jdSeVto/YjQQ ZRVoky4/FChlPca37dw+vC/5E6WAykhDq10KfznsomvsNFxU/v5lZzNyfjVR9SwtdY9l sdBHS9E9quqO/VLZAZv2gzvQV+rLllq6RSsbhSJVntMKsKRiA7NxupOPrPbx4h22+IEO ghhw== X-Forwarded-Encrypted: i=1; AJvYcCVUe9TH6ukNPDow3cbmOJNeDb5pAlvXm2YkzTte1waKSAmLNshYsF7p2XqWvToAAe7PGUk7HmojFEDjxOs=@vger.kernel.org X-Gm-Message-State: AOJu0Ywg5aMPaixE7wdFUriZ7WjIIBVB2ULVwaNauYhqTgzUM6GP2cMV TB1Akpd1ICLwLC2UiEwX8Je+XAqCgLJUNidwYgxyPJ1JQPTH97ZAqoUHDetx9Hg= X-Gm-Gg: ASbGncsAuigQCSg0YZOhLIRP+rJh12IaFJ4eNgCbK2fhFJVQl1ZxVUqL9TZ9ARvawPz lfzWR+ZyKWQRCg72qIeiAOIUbs7BYPxNbBmD4eWEal+pieVdNY5GQQZLFXtT62K+eGF35wLFYXG 6hkvYbiW4/k1tdUgY5boPKPbSJd9zI4ODLeM6ijf0IFoweB3X3jBaOOpVC4Z6g538Ilwe+qcHNd EHqeH+FHad8SifcKTGEcCUvmPvuRpvAMhQeect4FCtPsN9ss5iuhSjFjgFT74IGwYjr1lC74LBE L9rTOlz8ZGKiCVaUdAFiYrrjZy1aAY/koBLSYs6Wv19BpD7u1Dnyjjo/qvds9g== X-Google-Smtp-Source: AGHT+IFMdi+4kbGwypmXXsrc/gyrInDJYkNwgbBgHQvNkP5YCt/nHE4d0rMikSiQ7LIFEN7Ilo2PCg== X-Received: by 2002:a05:600c:3c82:b0:43c:ebc4:36a5 with SMTP id 5b1f17b1804b1-43f3a933b99mr139103035e9.7.1744724880253; Tue, 15 Apr 2025 06:48:00 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:8261:5fff:fe11:bdda]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f2066d0fcsm210434195e9.19.2025.04.15.06.47.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Apr 2025 06:47:59 -0700 (PDT) From: Neil Armstrong Date: Tue, 15 Apr 2025 15:47:54 +0200 Subject: [PATCH v6 2/7] media: platform: qcom/iris: add power_off_controller to vpu_ops Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250415-topic-sm8x50-iris-v10-v6-2-8ad319094055@linaro.org> References: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> In-Reply-To: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bryan O'Donoghue Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3981; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=9hnSK/z/at7Q/XPaFDHxC32ZrhxYmQz5KS3r7i8xong=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBn/mOLNDxHTG5Da2DVWG/qPqBcln7veirdTZGxAqyl XAox2beJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZ/5jiwAKCRB33NvayMhJ0brfEA CpZOMYhUJwejreolozGB5rv+f6tgRnjK5wHky9FzlKf1HKCiWsChf0dOSzwdV3VLkKb4zD5DN/+xSp 99sZ1YvEjG7M7C3X7DUutnUqqUjv96Wd1IfJN8vo4uOasTqmjGuNEgIH6A7aExflLjnL7VHcvyNcat oWdkT+f+bRJXNKIQjzU7YHm4DXM83r+CfzFyyzvvVEV0AEcM2yduxiJ4o9QRcWMATFdDAj7YJqXxwO qB8PzSiX4Q47CAQKMsMIZrbVy433gXYu/R6XRZULTEnmO4LEELjQ1paO4Oe4m6TWobd4H0C44rwewy Eq5d9HjgdpbYNdenoyesbtazlwqgYi8Vdy85MRFxqxu++AJOuY86Tlm9OtxixdFkYTN2dCP7XK2LUj T57LMZ7H1/3SQfAlSKCadKK2bOn9DQ0uU6nOWsNkbdSaeAkz/k6DlhXF8hgU6+I6IVOyrnawZsKFIX Ju2OoxDLwtal8saFNeo0aFBD9QolTZZoI13lAGiHkuviYIUgAbQrHycSy+ApfUwmIvumvxh3dfLy1Z GCtjnPqb9t94GSaR3UheUC7GmXWNlckGcx7NHJvsnZolr+6iViPFl/PeLZFi14Fh+dW4TCBs+VKMjN UGPexJnNuv90eCLPAhyPu4H30uN75wsTuHKlFh2+tLc3ZiBkDL+jlU5MAW9A== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE In order to support the SM8650 iris33 hardware, we need to provide a specific constoller power off sequences via the vpu_ops callbacks. Add the callback, and use the current helper for currently supported platforms. Reviewed-by: Bryan O'Donoghue Reviewed-by: Dikshita Agarwal Tested-by: Bryan O'Donoghue # x1e Dell Reviewed-by: Vikash Garodia Signed-off-by: Neil Armstrong --- drivers/media/platform/qcom/iris/iris_vpu2.c | 1 + drivers/media/platform/qcom/iris/iris_vpu3.c | 1 + drivers/media/platform/qcom/iris/iris_vpu_common.c | 4 ++-- drivers/media/platform/qcom/iris/iris_vpu_common.h | 2 ++ 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_vpu2.c b/drivers/media/p= latform/qcom/iris/iris_vpu2.c index 8f502aed43ce2fa6a272a2ce14ff1ca54d3e63a2..7cf1bfc352d34b897451061b5c1= 4fbe90276433d 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_vpu2.c @@ -34,5 +34,6 @@ static u64 iris_vpu2_calc_freq(struct iris_inst *inst, si= ze_t data_size) =20 const struct vpu_ops iris_vpu2_ops =3D { .power_off_hw =3D iris_vpu_power_off_hw, + .power_off_controller =3D iris_vpu_power_off_controller, .calc_freq =3D iris_vpu2_calc_freq, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu3.c b/drivers/media/p= latform/qcom/iris/iris_vpu3.c index b484638e6105a69319232f667ee7ae95e3853698..13dab61427b8bd0491b69a9bc5f= 5144d27d17362 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu3.c +++ b/drivers/media/platform/qcom/iris/iris_vpu3.c @@ -118,5 +118,6 @@ static u64 iris_vpu3_calculate_frequency(struct iris_in= st *inst, size_t data_siz =20 const struct vpu_ops iris_vpu3_ops =3D { .power_off_hw =3D iris_vpu3_power_off_hardware, + .power_off_controller =3D iris_vpu_power_off_controller, .calc_freq =3D iris_vpu3_calculate_frequency, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index fe9896d66848cdcd8c67bd45bbf3b6ce4a01ab10..268e45acaa7c0e3fe237123c62f= 0133d9dface14 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -211,7 +211,7 @@ int iris_vpu_prepare_pc(struct iris_core *core) return -EAGAIN; } =20 -static int iris_vpu_power_off_controller(struct iris_core *core) +int iris_vpu_power_off_controller(struct iris_core *core) { u32 val =3D 0; int ret; @@ -264,7 +264,7 @@ void iris_vpu_power_off(struct iris_core *core) { dev_pm_opp_set_rate(core->dev, 0); core->iris_platform_data->vpu_ops->power_off_hw(core); - iris_vpu_power_off_controller(core); + core->iris_platform_data->vpu_ops->power_off_controller(core); iris_unset_icc_bw(core); =20 if (!iris_vpu_watchdog(core, core->intr_status)) diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.h index 63fa1fa5a4989e48aebdb6c7619c140000c0b44c..f8965661c602f990d5a7057565f= 79df4112d097e 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.h @@ -13,6 +13,7 @@ extern const struct vpu_ops iris_vpu3_ops; =20 struct vpu_ops { void (*power_off_hw)(struct iris_core *core); + int (*power_off_controller)(struct iris_core *core); u64 (*calc_freq)(struct iris_inst *inst, size_t data_size); }; =20 @@ -22,6 +23,7 @@ void iris_vpu_clear_interrupt(struct iris_core *core); int iris_vpu_watchdog(struct iris_core *core, u32 intr_status); int iris_vpu_prepare_pc(struct iris_core *core); int iris_vpu_power_on(struct iris_core *core); +int iris_vpu_power_off_controller(struct iris_core *core); void iris_vpu_power_off_hw(struct iris_core *core); void iris_vpu_power_off(struct iris_core *core); =20 --=20 2.34.1 From nobody Fri Dec 19 19:20:08 2025 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F03B71A0BF1 for ; Tue, 15 Apr 2025 13:48:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724885; cv=none; b=WZnz1H1udxQfZtApF6z1B4uoqU//UdCEEmgkoQN6szrrbLWDooIEFBgMT0oxOjtk7kK0hTPQHE8zOiyNmT7pPYvIB43GNtji813wOBqLRwf17sA5kkuS0cqqah+uMhJwgnb27p1ZJFkdGi2Y0XG+sNRilqHo7T6pA7rfB2kIcMc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724885; c=relaxed/simple; bh=QOJWCRbWocJStZ4O8qKsDFpA9LiVnCH8PZi0Nhn/85o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cfl3DDozJIGIZaMS8Ptv7UrhQ6ZEwBW/crFDxwl73mr+EdvtLMKQdwrro3VJ9c+XJvyfgT5kmCacqynEu4iv+fiYYX0IOP0oQxIBq0KgeyvJkxOS2WkxSO5F6Vw26waqc70Sq6lr8YY8Ae++4mN62J1p4f4EKiL1Sq4Tpg6ttck= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=c3tJb7JR; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="c3tJb7JR" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-43cfba466b2so58413275e9.3 for ; Tue, 15 Apr 2025 06:48:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744724881; x=1745329681; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=VbyfCB9ABt9m7yero1XyRCvGRX9/7VOl0CwvvvzbTLk=; b=c3tJb7JRikg4/xI/+6sRQxa5zZUcapwf6px/7PNGC2DCuQCyRGtoZEEWF0Wsi++OQz aitfhFfWGh1oWqFRA6cE7+fvJp0hXDVxd1VBUW700G7c+Y3KNssbWvNer3yU4Nw1Ap8l Ry1QJEhn4ZywwcCqdu8EjQEmxZhuo/nKnSgrdcpvP0gVWE3vdflgDFBCIm1k7in38SR5 k0UvTmYj1w7Y162tJ8rIxbUuxU/7uMVXjdTZ8OrYipLEfPK6KfyeRhyuMfxT9h3EvRkJ PETViCUKNQZWIKXSMdQAKhVyFCR1WcY69ZFDZh6UrY3Sp+23LL1LpOvj2KRG6zgOme4d 24RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744724881; x=1745329681; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VbyfCB9ABt9m7yero1XyRCvGRX9/7VOl0CwvvvzbTLk=; b=cY4JCurmTilL8QhuNp+Klhu+N4j/2doSD4TUSoH3Q4kvCFOk5UE5LdmpAowq+Na4O3 nKjuHybUah8PhcYGAi07etz5kc7SgaiBQOJWgCfbP3AqPIe1+6/iuNdKEzGAoD/CU+Ey yz9KzoPJfQ94z7VaL4o73jKZEWnG+gPLmyJEefBAflZqQxNswg3hJ2lTp4D1yvC8e/ns xQf0quFnCMIfpcyG+SE8lyAyto/prnC+CB5th5IZzueuH/fUwt+V93JsPXwA6zLAMHdj iF8NGMhSMywTH9+Eced8nvVvKbeC5JxENQlw6Y4M5O8mEyg2aRIE4lezDCho614p6P1Q GQyA== X-Forwarded-Encrypted: i=1; AJvYcCVqz8DrZi53/NRvG8gnQ9yUw3JDso3I7J8KXvprbHbzUMWWlMIFzvwP3DSfX2u4SJTxLf2TgYbsZwbiAv8=@vger.kernel.org X-Gm-Message-State: AOJu0YybQKlFuOoIBQNGJfatPUcRCIRqrs0neFl12eA5fb0A+gkeCrnf E0lt2cH1vKbijjGmoyaRqGGK5zPdShhYj7GKlYCR0UzcDnHAY15EKfmVXaekRdg= X-Gm-Gg: ASbGncuYjDWi3HyFM1bk6/JdeEUWkGWUx1zKiCArybD26yL/jdEZ5PdxEb12/uDSVYR ZOsPosmNLCZRc4nKEsUiUcrQK0ZaKbMfK+c4xBUoA4UM5WXSzfuiB1UxHF7V+tyJVRzAUGjahQZ YjfM2MwsnO2Mai/67vLt7+NPXKGSnQyhH5K8oYiMGFm0in4oTXiGCQfYY4nPb23WnujoEjVO5A2 N8J1H3bVKRdNnyelmjCycN/gir0dQVaxVCRF8XQB74Drvg6+Q7JJcz4GwCXFAKoSnVb+r3yDK+p a6QWKDz/l5qutlHBCJOD/UNWcT8ea/egjO+DBtX6GepMxgCxgVrV7dajykL5Xg== X-Google-Smtp-Source: AGHT+IFZOwk7PYHY38wWwMBcmuYW3K8BQStofJ4Slz4FVx5HBy5M3wNuQQbdHpwE9XSYImylGHa7pg== X-Received: by 2002:a05:600c:1f94:b0:43c:fb95:c752 with SMTP id 5b1f17b1804b1-43f3a925de9mr175202925e9.3.1744724881088; Tue, 15 Apr 2025 06:48:01 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:8261:5fff:fe11:bdda]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f2066d0fcsm210434195e9.19.2025.04.15.06.48.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Apr 2025 06:48:00 -0700 (PDT) From: Neil Armstrong Date: Tue, 15 Apr 2025 15:47:55 +0200 Subject: [PATCH v6 3/7] media: platform: qcom/iris: introduce optional controller_rst_tbl Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250415-topic-sm8x50-iris-v10-v6-3-8ad319094055@linaro.org> References: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> In-Reply-To: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bryan O'Donoghue Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4440; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=QOJWCRbWocJStZ4O8qKsDFpA9LiVnCH8PZi0Nhn/85o=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBn/mOLu/Bxq3Wt6izL8RAjbr3TcQvgJrt5HbSeOUUK rena6KSJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZ/5jiwAKCRB33NvayMhJ0SJCD/ 4/Y0DJZp7p+uOttJvVVRDI9e9tvo8gXdwghlmxvzMmmmNH96VSPeE+oWh2Rubk4mmMnCS6jbi8Kn5j 0zyviBbygdfv9uwOdPSnzFXSy1oOqTrkuOFsvdwN5J0PaP0joDgjPGmtMUAQRwpczD6vU7uCvJlh2m Q1FLVpk5hhm6RELCoMrjKuTGbLv4b7eihkHsljrMSAJP5o+382bGZCKV0Em4N26fELcyGV4XlqcZuo u0e7jt053vxw4/0L2N4Z+vsMLNrAbGzmWHi0zZGDhRjsvwWE4pc8faSYAxwO/YKr+hSkM9HY4neHcH 8PH1jPeM6ohbvrliInhi7hJXSN89w1agnO9lHrcDPqDCH4slnWGnk3oIxkOqMSQAfPoBoSCK8lFth1 CgAvU3EdcaOtkOaFdmLemQuSwSUDiRHoxat9eKXKrOX9GlQBpcRKTN23qmL35LmEOXwLL1WhbZUxT0 4i5g8AeV7jFb2toMxuxuP2DDPXY69fOQyDLXhw4soDT3jteTD88oJy3+WrOXKQbpaDJG/n0F9iKBYp 7X9wcrULuoMZtaPrDFAfn18bw/46rq4tayTytNBs+FrTov3JBlQq4XxFviq+bh9afGoIaM/pp2maws J5DZwmpqwE53r5nMpGc74PnvvZJPL3nln3hO7TntZfBuHLTlrp06hnrswguA== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE Introduce an optional controller_rst_tbl use to store reset lines used to reset part of the controller. This is necessary for the vpu3 support, when the xo reset line must be asserted separately from the other reset line on power off operation. Factor the iris_init_resets() logic to allow requesting multiple reset tables. Reviewed-by: Bryan O'Donoghue Tested-by: Bryan O'Donoghue # x1e Dell Signed-off-by: Neil Armstrong Reviewed-by: Dikshita Agarwal --- drivers/media/platform/qcom/iris/iris_core.h | 2 ++ .../platform/qcom/iris/iris_platform_common.h | 2 ++ drivers/media/platform/qcom/iris/iris_probe.c | 39 +++++++++++++++---= ---- 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_core.h b/drivers/media/p= latform/qcom/iris/iris_core.h index 37fb4919fecc62182784b4dca90fcab47dd38a80..aeeac32a1f6d9a9fa7027e8e3db= 4d95f021c552e 100644 --- a/drivers/media/platform/qcom/iris/iris_core.h +++ b/drivers/media/platform/qcom/iris/iris_core.h @@ -43,6 +43,7 @@ struct icc_info { * @clock_tbl: table of iris clocks * @clk_count: count of iris clocks * @resets: table of iris reset clocks + * @controller_resets: table of controller reset clocks * @iris_platform_data: a structure for platform data * @state: current state of core * @iface_q_table_daddr: device address for interface queue table memory @@ -82,6 +83,7 @@ struct iris_core { struct clk_bulk_data *clock_tbl; u32 clk_count; struct reset_control_bulk_data *resets; + struct reset_control_bulk_data *controller_resets; const struct iris_platform_data *iris_platform_data; enum iris_core_state state; dma_addr_t iface_q_table_daddr; diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index f6b15d2805fb2004699709bb12cd7ce9b052180c..fdd40fd80178c4c66b37e392d07= a0a62f492f108 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -156,6 +156,8 @@ struct iris_platform_data { unsigned int clk_tbl_size; const char * const *clk_rst_tbl; unsigned int clk_rst_tbl_size; + const char * const *controller_rst_tbl; + unsigned int controller_rst_tbl_size; u64 dma_mask; const char *fwname; u32 pas_id; diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/= platform/qcom/iris/iris_probe.c index aca442dcc153830e6252d1dca87afb38c0b9eb8f..4f8bce6e2002bffee4c93dcaaf6= e52bf4e40992e 100644 --- a/drivers/media/platform/qcom/iris/iris_probe.c +++ b/drivers/media/platform/qcom/iris/iris_probe.c @@ -91,25 +91,40 @@ static int iris_init_clocks(struct iris_core *core) return 0; } =20 -static int iris_init_resets(struct iris_core *core) +static int iris_init_reset_table(struct iris_core *core, + struct reset_control_bulk_data **resets, + const char * const *rst_tbl, u32 rst_tbl_size) { - const char * const *rst_tbl; - u32 rst_tbl_size; u32 i =3D 0; =20 - rst_tbl =3D core->iris_platform_data->clk_rst_tbl; - rst_tbl_size =3D core->iris_platform_data->clk_rst_tbl_size; - - core->resets =3D devm_kzalloc(core->dev, - sizeof(*core->resets) * rst_tbl_size, - GFP_KERNEL); - if (!core->resets) + *resets =3D devm_kzalloc(core->dev, + sizeof(struct reset_control_bulk_data) * rst_tbl_size, + GFP_KERNEL); + if (!*resets) return -ENOMEM; =20 for (i =3D 0; i < rst_tbl_size; i++) - core->resets[i].id =3D rst_tbl[i]; + (*resets)[i].id =3D rst_tbl[i]; + + return devm_reset_control_bulk_get_exclusive(core->dev, rst_tbl_size, *re= sets); +} + +static int iris_init_resets(struct iris_core *core) +{ + int ret; + + ret =3D iris_init_reset_table(core, &core->resets, + core->iris_platform_data->clk_rst_tbl, + core->iris_platform_data->clk_rst_tbl_size); + if (ret) + return ret; + + if (!core->iris_platform_data->controller_rst_tbl_size) + return 0; =20 - return devm_reset_control_bulk_get_exclusive(core->dev, rst_tbl_size, cor= e->resets); + return iris_init_reset_table(core, &core->controller_resets, + core->iris_platform_data->controller_rst_tbl, + core->iris_platform_data->controller_rst_tbl_size); } =20 static int iris_init_resources(struct iris_core *core) --=20 2.34.1 From nobody Fri Dec 19 19:20:08 2025 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF4461A83F4 for ; Tue, 15 Apr 2025 13:48:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724885; cv=none; b=ogNARU48M+nIQq0CVn9VJGMzIkaCGcIFdEh6unPhji9GGI+K0zcIrVEhvdh0IC60hHQyNdkh4XJYj+W/pS28cVY17MNXOV8JInrus1XdvguxaBrNIR1dBVzeCjhlV0nfRQFPsO1tmD1Uu0ukMMwnVBSZcifd47ux1PLp/JECFEA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724885; c=relaxed/simple; bh=O1n9ZGon1tW89nP5AxkkAnhFJkmvU1gNvIer5n3oZ2U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=K39BgyBGEjIpApX5WN+95jtNT4yw9jClUbfDcAvZIoHilmtDxTngBP3c6RdW3diugBxg53fhvR+02idaf0fLNnWDAIbA/xGXO3N9XoSWClrRpqV5xt0W+2ShlcwCSlf7ecbrq4rcyT878lJk3zF1pU9jYtK1v8c/A0TJmXqEDkE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Lc4NB5KQ; arc=none smtp.client-ip=209.85.221.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Lc4NB5KQ" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-39c0dfad22aso3215970f8f.2 for ; Tue, 15 Apr 2025 06:48:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744724882; x=1745329682; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=D4n33F861tnhB5yN6ZfC4Q2gxN/qYdWRlSL6Yjy0AeI=; b=Lc4NB5KQSUycJELk8zBhTPDspaSlP1ty01+waBpj3LgSnUaBjUb9TUCSLrs73DTtP5 AVCFPX6vh5aYMFJUk+hE8PJXKUUPEKgiGGZCfKK/AA+QYf/pS1k7LEKt124T+erBx5+W rp4RH03NU/EiqgbTXfCwBxq9Z+FD2JTi5WJ1PkreQKgOU3QSg4fl4cm799EDfrs6zcFw ZU31QIWEHgf6q+WV0wGC+PNCoVGwavRHmrUUDt9ldgAvjnTIyYSwnccvNEYCJHcq1Hs4 ujxTAEQqOjug3V7RXpiUG7r3OOCHiNF3gIrreFalwcLZpS3HInQFMudaEnIyYrowSdKS myiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744724882; x=1745329682; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=D4n33F861tnhB5yN6ZfC4Q2gxN/qYdWRlSL6Yjy0AeI=; b=R2sDpw+5YIMdbmInbCOlbJy+iWvaXcBY9KK5kcetyM5QSp78gm+DAUfCXsbCEturzY C1LdAK+TJA3Jlu/ATcPoTjSR0vByr1ahpdkamdCMqb59jg1JHSiVXUm1w4TtNC/2jfae 6JVw88j7uaSJfhwPiGY0oZZXrwYAaHYUJd9IWKfih1GWN6FsHfr0NyYd87BdPw6z+wl6 yAa5UyTPjrkn70y1obhfXwN2fEDrkCLANwsgaCPcig8iWwb0cJ6JPeGwS16g5ZjSyGm1 qNRr8exRNZXp6snF3TEhcsYUWH92JhC4SH7N+aQ8BgYbt2hte4WPr2rgTnh8wiZoxMMH 7zPg== X-Forwarded-Encrypted: i=1; AJvYcCVZ8BnSmx3bhy3O4ruaaUGWTS1+gVUYm3sdBXwDSRojlBrp9tZZrzT0N8a/d1oL8xbaPWwgLzC63kiCbGE=@vger.kernel.org X-Gm-Message-State: AOJu0YzHrkK3H8Fvfd5f4gVsa66KFgdbOpB0UzMfBFzvO284jrwcS4rh cKS97sSit2EulFQQoAT7V3fus3UBVLKVRmM3l2TEOKHFanUEm9SAf5SSQUIxgHA= X-Gm-Gg: ASbGncurEGJgkAUpI3X160hYk7qH7T993gH9G/8EdHTEQ8JosbY2Z05r0TbpRhmYzwv ghKbvS99kT9q8cTTQ9gVSsAKJ4phuWh/bgMtDOa7znE7K2bXQbM552lK0Z96vpazDoW4HIJbR3U j2gVSBxvJCkkGgxj62IIiZ5fWs9fuKn/oy4WTQWTf84WGpCmi0G2yN0wDAd2AtQCuNKzRIRNoLj 5rk6y2TafRBnt5/b7Lnk58PpBJ+Npn2CGsM5JOD8HK5KcmYfxWGhvc7DePI3aJdRYdnlLd8b97I rmkLX2Oh+9o9iWjzVS7Avp4zvc9njx2XsEk4ERFiOolRdHfUQ80GvMsg8xEROg== X-Google-Smtp-Source: AGHT+IE9Bo9OcdxYfX6Y1XgaMV+4pQztLxWbZFC1dP2QObOpKvvzEGVHf+XpA1Yx6ubagR8CD6fUGQ== X-Received: by 2002:a05:6000:4022:b0:390:e1c5:fe2 with SMTP id ffacd0b85a97d-39eaaecdb2dmr12138455f8f.38.1744724881876; Tue, 15 Apr 2025 06:48:01 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:8261:5fff:fe11:bdda]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f2066d0fcsm210434195e9.19.2025.04.15.06.48.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Apr 2025 06:48:01 -0700 (PDT) From: Neil Armstrong Date: Tue, 15 Apr 2025 15:47:56 +0200 Subject: [PATCH v6 4/7] media: platform: qcom/iris: rename iris_vpu3 to iris_vpu3x Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250415-topic-sm8x50-iris-v10-v6-4-8ad319094055@linaro.org> References: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> In-Reply-To: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bryan O'Donoghue Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1397; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=O1n9ZGon1tW89nP5AxkkAnhFJkmvU1gNvIer5n3oZ2U=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBn/mOMxxYMjEkfSo3SVieulxkuOX2P+XVFOKE30ngY GccHUM+JAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZ/5jjAAKCRB33NvayMhJ0e/3D/ 9rk90C4tjSLedAYkr2ynbVw03itSUIL62YIxs/SY+SDO6QinBqxn56kc4oOr1mzEM9+jWg4/jYdhKE qFhLnzu8vi7sIFkibv48g8YbTswI1lZekAwb1onQbu12KUBFbTKIXpfwnh4MzaJNaDUm5HNYX4iCn7 cy77+qSMPxeEevp/Ha1Fs6EwfXqXqyRPdJtnQt8i3QYJBm5B58gC6OkxGiC9yOiIC8k6/dntyfMx14 QjLaVnxruWMrBz7L2ks/64nMdzuV5ij+kaoL0Pjw8nNQk25LwSfTfTtUYC92SS+vm8bLQC+6O9jsgp qZgmMJ/UQYDX1PW9gC4Grk0H8T5e5IFdT+0yv7H6WY84cxmNgMvztzGzrXL8FprY5D4ETk49OxULLs m6ohaQ91A+26+n3RDQFRpE9bS8hPj+Kbw3AnMrGF5V12tAiNqH8qvd+mi8A45I2Vl4VgVD1RTrOE90 1b8xU2AiErsZ78l4y+XnwmmEkjedetO4DrOLwm5Sa1ivLVrJDdalBCAH/lDXN7bbCi8A8ISW5Pik0A 93izjEBNIfxznq0xg8Ew/dncoAjqi84X0cwPAxwvx2CS9LWN287KRzyyR0jXAixawblP++A8M7Q0NK NdnjGr68HuiVA2kM6ss8aFyzKEFI25E2deriJx65p6U1W6BiBqYFZGrlznTg== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE The vpu33 HW is very close to vpu3, and shares most of the operations, so rename file to vpu3x since we'll handle all vpu3 variants in it. Reviewed-by: Dikshita Agarwal Tested-by: Bryan O'Donoghue # x1e Dell Reviewed-by: Vikash Garodia Signed-off-by: Neil Armstrong --- drivers/media/platform/qcom/iris/Makefile | 2 +- drivers/media/platform/qcom/iris/{iris_vpu3.c =3D> iris_vpu3x.c} | 0 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/plat= form/qcom/iris/Makefile index 35390534534e93f4617c1036a05ca0921567ba1d..473aaf655448180ade917e64228= 9677fc1277f99 100644 --- a/drivers/media/platform/qcom/iris/Makefile +++ b/drivers/media/platform/qcom/iris/Makefile @@ -20,7 +20,7 @@ qcom-iris-objs +=3D \ iris_vb2.o \ iris_vdec.o \ iris_vpu2.o \ - iris_vpu3.o \ + iris_vpu3x.o \ iris_vpu_buffer.o \ iris_vpu_common.o \ =20 diff --git a/drivers/media/platform/qcom/iris/iris_vpu3.c b/drivers/media/p= latform/qcom/iris/iris_vpu3x.c similarity index 100% rename from drivers/media/platform/qcom/iris/iris_vpu3.c rename to drivers/media/platform/qcom/iris/iris_vpu3x.c --=20 2.34.1 From nobody Fri Dec 19 19:20:08 2025 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC748192B81 for ; Tue, 15 Apr 2025 13:48:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724888; cv=none; b=Ll60v6Ey0ubp/43Ivb9cFnLYJSs+ZeoYsN4ZYEn1FbKg7bVArkYaLXrqtBf4gVX6hz/Ju3entetObDOBVrGOKPv+MruOcWUttCp4WQ0mMPk4irtuTvGosUjGO2eI8yISFVnNpw7TLAo//oNE2QtL2fS8ivs1u6zQoc5x5bX/YrM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724888; c=relaxed/simple; bh=fdVB/WDnUbOKrbnaFpC+5KLneXfwe1Hbvq+oQZ56p8Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cFSq5ECX8LApQKHAu50+Epxte4yyk9a3D7ksEPSVO/aWYOVRsdJhP/Pc6mTquwq2V0QVlZ2BjQT40V3pX1L/oaG6EBc1YhQUtrID780tn2zB1vvedWcB5fbyoa2ztEN5UFNi8rjn6o3VFKy+nPYYrvW1rmKZMvrch2m8VH5Ot98= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=QzSzgRl2; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="QzSzgRl2" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-43cebe06e9eso42023555e9.3 for ; Tue, 15 Apr 2025 06:48:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744724883; x=1745329683; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=CjNA/3yEeV6k5zGB03XZkp0NfQT5RQXMDZFss0yeJfc=; b=QzSzgRl2mW6UvALkCplQZf7lfklwB5nZAhsYA4NH+QrByOngIwE9hxR4/npCgYVQeg NN8eJri7ciU7tQ4y8LvrGDHvHBY7X1whUdfixKgXaZL5A5UQ2NL7gixfQD5PySHKsXYW 4Wy0eQMZ7Ou5hYNUaaYBKL/QXTADlrZKmjgKKUfY4qRHGUo9wUPuFGqgCQHArkHcvOA/ Dm7H3/L+sbx/C4V6OLhco1o4zKVQ1qPuNTJOeqvE1zj89NK+ZpIOptcOPnkfftmmG1Sg y135tw6XNe7mApVhfa9fpIVujYOf+A5MwuqLBZEh1ejHk2U+7w0ejFur9R4J8fzSPGcT 9IDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744724883; x=1745329683; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CjNA/3yEeV6k5zGB03XZkp0NfQT5RQXMDZFss0yeJfc=; b=HXhlIEOFMeskma04ZK9NpJJ/Ll6570GOuN1OKe3SbRnvJgrrdsvFseVEqQbtu7woRP mS/s5kyn+m4Mawkt2jTB7/VSwGqR7eX727+3NlMLl2De+wTGfJHPMGwzxfMYjk12REHx 4tHvrnUPmtRZQfDMZViT76svwnuG2uXKoBYQ5PhvPHa3QBm4wTM3uzEN8ZFoYlZtsQXY FocfVHsdSWgrgdEUumttDY294JbP5s0HJurIvf6PN+4NaSRITL5lHhuhu70MWGw2CGO9 jiIXyX5dyjs3jtxNxG6ThLMix3YgkGl9F6MS3v+uuSyMRMvZZGOBmY3xPbgcTUZQMnJz IIlQ== X-Forwarded-Encrypted: i=1; AJvYcCUAaN/B7DtJyb6PYTULvLB/8a775i0YSepZEtDy3dRwP93nVN5L66nejO0INaKas084LzKQ9ytPtcnIFY8=@vger.kernel.org X-Gm-Message-State: AOJu0YzNBYgre2ACDrCAhonS4Nb6HGg7sPCNpu+VL2t5w7T1MjW6ys+3 oFHUUl4L2bs2evYV7X2bnEQlyv+06dEN0RG7EB6JOcxul3TPWa2Bfzu+7zVG+eA= X-Gm-Gg: ASbGncvji+NNNi+l4xuntlnCHytuq9wwpzLHrNErOfhPYYPNwVfQs8Mk+DuX0eEgkat BE5acfUkEOkOJoOUxamHJxBXApnpla7EL4hSNVMJIzMO3zHfJJ50DPwF8XT2WVHpZr53N69f1zj cckWapK09jubjRqDH/uPUmxgpmUSi/FmtMb0bZVnCBWX2/jVluAtgVJ+QllZom9n4WPxACv2TdN nU6nna3+tsdQk8gikKKCmK//C17R/3s1U8CG8Dt8IPAPlKiwg7rfiupQsdSxhWPxjRPJVkkB3K8 5EBFYZFdC8hBfe2qUbVAxGw415hNR+UELfRGG2HHr3Zxc3qnAhv6Y9Sp+zMKVg== X-Google-Smtp-Source: AGHT+IHwtmeKJgSljlrI2gdnG1lCG5/Q8u68/ZeTzxGPZ6Qgi0tbZCTFEksRkrA7PPWO9hcta2nGYQ== X-Received: by 2002:a05:600c:1546:b0:43d:db5:7b1a with SMTP id 5b1f17b1804b1-43f3a93cdeamr149800645e9.12.1744724882698; Tue, 15 Apr 2025 06:48:02 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:8261:5fff:fe11:bdda]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f2066d0fcsm210434195e9.19.2025.04.15.06.48.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Apr 2025 06:48:02 -0700 (PDT) From: Neil Armstrong Date: Tue, 15 Apr 2025 15:47:57 +0200 Subject: [PATCH v6 5/7] media: platform: qcom/iris: add support for vpu33 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250415-topic-sm8x50-iris-v10-v6-5-8ad319094055@linaro.org> References: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> In-Reply-To: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bryan O'Donoghue Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=8847; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=fdVB/WDnUbOKrbnaFpC+5KLneXfwe1Hbvq+oQZ56p8Q=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBn/mOMw8dhG7gp7EC/6WMpJXB5TdVeiHQ5sZ5GeCAI 344dZYeJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZ/5jjAAKCRB33NvayMhJ0SMLEA CtqajFkOjgN7gJf83X8Hk8VWSpGX0choZ6u97HIZMU+ot1Jn9hPjkzYolk5h8swWA3w/Ixa0aytF++ nPyiHAgbwOus41b/XXrQpwnFdl7AnjK/4KhEsH0ueBHfTBApY+wJTHS5wU8ELqxiLuI8UJtr0pWEr7 yN/ILObJQbamAGhH2sRyCv/L4JD/v5KIAzCHFM8K/YbubAloZHoooq79hBmkzry5WSYZtA/ilmCEG8 V0fGGoEQk45nHXr2cZKQxzXywWvM4CaQzGWEtyRrNEHskuqpau3d075om224PO3K1EUyFYjopDTzSx wuJYL248TBcvzAWvk/cJrirTHsHmVGsG1sXoXir0eR5o9qUsCuwj+wZdyhR1aHD+uPwsOyGwRtpPTd d1mNoBiOsD9FjnN3eittZJwG5Lme9AyKaiB83KDNB6t8MfpQ8AKLe4nuvnAZ4QEqmNg1vfcIVTFw3D Hxufs3GEDyzk1BIc1L+zvZRK61h241vXWVXQw6hRX8uSt5adK3NUupd7ba1AvhVbbrRv9Qm3AX+0dO ZzBwVVbu/1tmh9ZYLzUN4Nj+TF/H+7zfCJ9X0GVhgYL2r8U30sOJlCYlpvLC2ULnL940Phzr9cAiWk cize7FaGF4AzkP19JmvJfCVMUaafYQVbISTg2PChyS0DgLUb3CkEk2sz/DTw== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE The IRIS acceleration found in the SM8650 platforms uses the vpu33 hardware version, and requires a slighly different reset and power off sequences in order to properly get out of runtime suspend. Tested-by: Bryan O'Donoghue # x1e Dell Signed-off-by: Neil Armstrong --- drivers/media/platform/qcom/iris/iris_vpu3x.c | 160 +++++++++++++++++= +++- drivers/media/platform/qcom/iris/iris_vpu_common.h | 1 + 2 files changed, 157 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_vpu3x.c b/drivers/media/= platform/qcom/iris/iris_vpu3x.c index 13dab61427b8bd0491b69a9bc5f5144d27d17362..9b7c9a1495ee2f51c60b1142b2e= d4680ff798f0a 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu3x.c @@ -4,20 +4,39 @@ */ =20 #include +#include =20 #include "iris_instance.h" #include "iris_vpu_common.h" #include "iris_vpu_register_defines.h" =20 +#define WRAPPER_TZ_BASE_OFFS 0x000C0000 +#define AON_BASE_OFFS 0x000E0000 #define AON_MVP_NOC_RESET 0x0001F000 =20 +#define WRAPPER_DEBUG_BRIDGE_LPI_CONTROL (WRAPPER_BASE_OFFS + 0x54) +#define WRAPPER_DEBUG_BRIDGE_LPI_STATUS (WRAPPER_BASE_OFFS + 0x58) +#define WRAPPER_IRIS_CPU_NOC_LPI_CONTROL (WRAPPER_BASE_OFFS + 0x5C) +#define REQ_POWER_DOWN_PREP BIT(0) +#define WRAPPER_IRIS_CPU_NOC_LPI_STATUS (WRAPPER_BASE_OFFS + 0x60) #define WRAPPER_CORE_CLOCK_CONFIG (WRAPPER_BASE_OFFS + 0x88) #define CORE_CLK_RUN 0x0 =20 +#define WRAPPER_TZ_CTL_AXI_CLOCK_CONFIG (WRAPPER_TZ_BASE_OFFS + 0x14) +#define CTL_AXI_CLK_HALT BIT(0) +#define CTL_CLK_HALT BIT(1) + +#define WRAPPER_TZ_QNS4PDXFIFO_RESET (WRAPPER_TZ_BASE_OFFS + 0x18) +#define RESET_HIGH BIT(0) + #define CPU_CS_AHB_BRIDGE_SYNC_RESET (CPU_CS_BASE_OFFS + 0x160) #define CORE_BRIDGE_SW_RESET BIT(0) #define CORE_BRIDGE_HW_RESET_DISABLE BIT(1) =20 +#define CPU_CS_X2RPMH (CPU_CS_BASE_OFFS + 0x168) +#define MSK_SIGNAL_FROM_TENSILICA BIT(0) +#define MSK_CORE_POWER_ON BIT(1) + #define AON_WRAPPER_MVP_NOC_RESET_REQ (AON_MVP_NOC_RESET + 0x000) #define VIDEO_NOC_RESET_REQ (BIT(0) | BIT(1)) =20 @@ -25,7 +44,16 @@ =20 #define VCODEC_SS_IDLE_STATUSN (VCODEC_BASE_OFFS + 0x70) =20 -static bool iris_vpu3_hw_power_collapsed(struct iris_core *core) +#define AON_WRAPPER_MVP_NOC_LPI_CONTROL (AON_BASE_OFFS) +#define AON_WRAPPER_MVP_NOC_LPI_STATUS (AON_BASE_OFFS + 0x4) + +#define AON_WRAPPER_MVP_NOC_CORE_SW_RESET (AON_BASE_OFFS + 0x18) +#define SW_RESET BIT(0) +#define AON_WRAPPER_MVP_NOC_CORE_CLK_CONTROL (AON_BASE_OFFS + 0x20) +#define NOC_HALT BIT(0) +#define AON_WRAPPER_SPARE (AON_BASE_OFFS + 0x28) + +static bool iris_vpu3x_hw_power_collapsed(struct iris_core *core) { u32 value, pwr_status; =20 @@ -40,7 +68,7 @@ static void iris_vpu3_power_off_hardware(struct iris_core= *core) u32 reg_val =3D 0, value, i; int ret; =20 - if (iris_vpu3_hw_power_collapsed(core)) + if (iris_vpu3x_hw_power_collapsed(core)) goto disable_power; =20 dev_err(core->dev, "video hw is power on\n"); @@ -79,7 +107,125 @@ static void iris_vpu3_power_off_hardware(struct iris_c= ore *core) iris_vpu_power_off_hw(core); } =20 -static u64 iris_vpu3_calculate_frequency(struct iris_inst *inst, size_t da= ta_size) +static void iris_vpu33_power_off_hardware(struct iris_core *core) +{ + u32 reg_val =3D 0, value, i; + int ret; + + if (iris_vpu3x_hw_power_collapsed(core)) + goto disable_power; + + dev_err(core->dev, "video hw is power on\n"); + + value =3D readl(core->reg_base + WRAPPER_CORE_CLOCK_CONFIG); + if (value) + writel(CORE_CLK_RUN, core->reg_base + WRAPPER_CORE_CLOCK_CONFIG); + + for (i =3D 0; i < core->iris_platform_data->num_vpp_pipe; i++) { + ret =3D readl_poll_timeout(core->reg_base + VCODEC_SS_IDLE_STATUSN + 4 *= i, + reg_val, reg_val & 0x400000, 2000, 20000); + if (ret) + goto disable_power; + } + + ret =3D readl_poll_timeout(core->reg_base + AON_WRAPPER_MVP_NOC_LPI_STATU= S, + reg_val, reg_val & BIT(0), 200, 2000); + if (ret) + goto disable_power; + + /* set MNoC to low power, set PD_NOC_QREQ (bit 0) */ + writel(BIT(0), core->reg_base + AON_WRAPPER_MVP_NOC_LPI_CONTROL); + + writel(CORE_BRIDGE_SW_RESET | CORE_BRIDGE_HW_RESET_DISABLE, + core->reg_base + CPU_CS_AHB_BRIDGE_SYNC_RESET); + writel(CORE_BRIDGE_HW_RESET_DISABLE, core->reg_base + CPU_CS_AHB_BRIDGE_S= YNC_RESET); + writel(0x0, core->reg_base + CPU_CS_AHB_BRIDGE_SYNC_RESET); + +disable_power: + iris_vpu_power_off_hw(core); +} + +static int iris_vpu33_power_off_controller(struct iris_core *core) +{ + u32 xo_rst_tbl_size =3D core->iris_platform_data->controller_rst_tbl_size; + u32 clk_rst_tbl_size =3D core->iris_platform_data->clk_rst_tbl_size; + u32 val =3D 0; + int ret; + + writel(MSK_SIGNAL_FROM_TENSILICA | MSK_CORE_POWER_ON, core->reg_base + CP= U_CS_X2RPMH); + + writel(REQ_POWER_DOWN_PREP, core->reg_base + WRAPPER_IRIS_CPU_NOC_LPI_CON= TROL); + + ret =3D readl_poll_timeout(core->reg_base + WRAPPER_IRIS_CPU_NOC_LPI_STAT= US, + val, val & BIT(0), 200, 2000); + if (ret) + goto disable_power; + + writel(0x0, core->reg_base + WRAPPER_DEBUG_BRIDGE_LPI_CONTROL); + + ret =3D readl_poll_timeout(core->reg_base + WRAPPER_DEBUG_BRIDGE_LPI_STAT= US, + val, val =3D=3D 0, 200, 2000); + if (ret) + goto disable_power; + + writel(CTL_AXI_CLK_HALT | CTL_CLK_HALT, + core->reg_base + WRAPPER_TZ_CTL_AXI_CLOCK_CONFIG); + writel(RESET_HIGH, core->reg_base + WRAPPER_TZ_QNS4PDXFIFO_RESET); + writel(0x0, core->reg_base + WRAPPER_TZ_QNS4PDXFIFO_RESET); + writel(0x0, core->reg_base + WRAPPER_TZ_CTL_AXI_CLOCK_CONFIG); + + reset_control_bulk_reset(clk_rst_tbl_size, core->resets); + + /* Disable MVP NoC clock */ + val =3D readl(core->reg_base + AON_WRAPPER_MVP_NOC_CORE_CLK_CONTROL); + val |=3D NOC_HALT; + writel(val, core->reg_base + AON_WRAPPER_MVP_NOC_CORE_CLK_CONTROL); + + /* enable MVP NoC reset */ + val =3D readl(core->reg_base + AON_WRAPPER_MVP_NOC_CORE_SW_RESET); + val |=3D SW_RESET; + writel(val, core->reg_base + AON_WRAPPER_MVP_NOC_CORE_SW_RESET); + + /* poll AON spare register bit0 to become zero with 50ms timeout */ + ret =3D readl_poll_timeout(core->reg_base + AON_WRAPPER_SPARE, + val, (val & BIT(0)) =3D=3D 0, 1000, 50000); + if (ret) + goto disable_power; + + /* enable bit(1) to avoid cvp noc xo reset */ + val =3D readl(core->reg_base + AON_WRAPPER_SPARE); + val |=3D BIT(1); + writel(val, core->reg_base + AON_WRAPPER_SPARE); + + reset_control_bulk_assert(xo_rst_tbl_size, core->controller_resets); + + /* De-assert MVP NoC reset */ + val =3D readl(core->reg_base + AON_WRAPPER_MVP_NOC_CORE_SW_RESET); + val &=3D ~SW_RESET; + writel(val, core->reg_base + AON_WRAPPER_MVP_NOC_CORE_SW_RESET); + + usleep_range(80, 100); + + reset_control_bulk_deassert(xo_rst_tbl_size, core->controller_resets); + + /* reset AON spare register */ + writel(0, core->reg_base + AON_WRAPPER_SPARE); + + /* Enable MVP NoC clock */ + val =3D readl(core->reg_base + AON_WRAPPER_MVP_NOC_CORE_CLK_CONTROL); + val &=3D ~NOC_HALT; + writel(val, core->reg_base + AON_WRAPPER_MVP_NOC_CORE_CLK_CONTROL); + + iris_disable_unprepare_clock(core, IRIS_CTRL_CLK); + +disable_power: + iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_CTRL_PO= WER_DOMAIN]); + iris_disable_unprepare_clock(core, IRIS_AXI_CLK); + + return 0; +} + +static u64 iris_vpu3x_calculate_frequency(struct iris_inst *inst, size_t d= ata_size) { struct platform_inst_caps *caps =3D inst->core->iris_platform_data->inst_= caps; struct v4l2_format *inp_f =3D inst->fmt_src; @@ -119,5 +265,11 @@ static u64 iris_vpu3_calculate_frequency(struct iris_i= nst *inst, size_t data_siz const struct vpu_ops iris_vpu3_ops =3D { .power_off_hw =3D iris_vpu3_power_off_hardware, .power_off_controller =3D iris_vpu_power_off_controller, - .calc_freq =3D iris_vpu3_calculate_frequency, + .calc_freq =3D iris_vpu3x_calculate_frequency, +}; + +const struct vpu_ops iris_vpu33_ops =3D { + .power_off_hw =3D iris_vpu33_power_off_hardware, + .power_off_controller =3D iris_vpu33_power_off_controller, + .calc_freq =3D iris_vpu3x_calculate_frequency, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.h index f8965661c602f990d5a7057565f79df4112d097e..93b7fa27be3bfa1cf6a3e83cc19= 2cdb89d63575f 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.h @@ -10,6 +10,7 @@ struct iris_core; =20 extern const struct vpu_ops iris_vpu2_ops; extern const struct vpu_ops iris_vpu3_ops; +extern const struct vpu_ops iris_vpu33_ops; =20 struct vpu_ops { void (*power_off_hw)(struct iris_core *core); --=20 2.34.1 From nobody Fri Dec 19 19:20:08 2025 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6DA381C861D for ; Tue, 15 Apr 2025 13:48:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724887; cv=none; b=s2t3glisANp96wPLJ2zrhFbxCH/DyN9y+PQWhy48uVSBrJuJpQZJyGbSvgYZMZIuNiVzdzXQzObhH5J6vmltHNuZG7LQkwbPQektF2lhWguW4Pj1YjgNtch4q1131pUgU41AuVmY3j1CcaBl5bwXaJsHL1zsFT3tiLqYjFPYaz0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724887; c=relaxed/simple; bh=TF5iaiyVF7pffStsTB0GQItBgvhj+hCdhoNBSo25fFM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=h6y1LwZ72Xf3XCw6EXN1CW53XFUgbR3zOvYyyRXcHf8jM6GHs3vNxurNko82/macubu3rYm8Pu//v22fmKdG3ti8O4vhbSwpCxnx+Sel7UBIh5x8UK5FMyGOMzHHq+iaXuIseAmb4BLi30EOPJowiIN8Yv72lmcqEHaAchPqNLY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=uX7ePMb5; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="uX7ePMb5" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-43cf034d4abso61120935e9.3 for ; Tue, 15 Apr 2025 06:48:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744724884; x=1745329684; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=mLxtG9RCmepkYDqnM9TbB2c+xw9+ALwx6QUQs/1V+xA=; b=uX7ePMb5Uk8f/4Nbg1fyOupeVHlvF37RkslCB4lmE9VZQ1lbw68mrjGhiKIWhaKVJq F17xrkKCZvt3KGCj9VBT8risEIpqooqaOPO50nvZ8Fzm4c0FcG+rYO+GAJeAAoa2I4z7 3YHg1Ibg5p3hztjbNAgCgdxSyABz07rz0VU/ncsz7+hJI9UvyFECnLDYbZXtm8AbHR15 u7IBGNbw39sK9ODk5043SvOHzlqUkSjapOE0MdHRuUj2lAagSSbE8u1seU9Pjnjiw+6/ hjdUZp7qYP/iws/pN67aKM399nePmJ1V5+L0vy3y5ZHtXYu+vn5GkYLm/bPEBXLPSdhr 5GGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744724884; x=1745329684; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mLxtG9RCmepkYDqnM9TbB2c+xw9+ALwx6QUQs/1V+xA=; b=ds8LrTJASjui4uJWSQ68DgMLbzLfLe2HZnNrCJLcmIb6qyTeRc0AcTgMqdXhdqOfZW 76657VUjrU2R6EG4Z8iCtCZK4EdZUmzw/qglXlc4eEcJf2hJ4bES7y05lUO7C0nfyu8/ tTq4vife6IoMGlIhk82zgahip0xlpNJv066y0KhDxJKQtLvqRBrBgMVjN7nyanVlcp1z GCAoCz0JyDmLfrPyMMR4NgqXSzj31MKQUzKkjcsJJpZrM04cfiAnOU2mbFjkqWfgpekH zzPrTengsj1qKWjDaq6xcuucsS982r5HmFAPugWmtEUoSx4XwUYTOAHd1tz1eZXze0P+ KhKw== X-Forwarded-Encrypted: i=1; AJvYcCUEC2HUu5LipG1pkXuFeR9bY+Te/8FpA7z+v3U1r7TQsdEb6uErt2SspkXMPGMRvWvijYtTR+DejeUWXnY=@vger.kernel.org X-Gm-Message-State: AOJu0Yy7DA0PzSeazgJ9jlG0fBQwm7rwkPrH1cscyQUIM9aPUZO8fFhI GxdwWCp4u2/6x3dUFniDeFZTU/EZ3fGurPVG/jmQZblSOilc9+aaKcax7AVdm0Q= X-Gm-Gg: ASbGnct0H1j4376+pD8kchiYa5QtkfISVbYc5ylYPx2bXWt7MurGbfSxtTsB+eX0Ht/ awlEcVPkQZsV+lc97U5kEweN7LR3gIlXknOEED7fZgGNT+PhH1ZIHG4m5iwJoBPW/5dEaHUrIum YbnZQzN9tfx5vDnWJX3cdmFnF4UFguVOE8mqrArOgWuvs2K29yUbPQ5h4OgZwOi7RhyU0Xyweq1 qNwKpNL3cNWIfitQJeysP/JJ+jZiuVNzIMjDTw5a1H7aLwC7SNnC7iO6hUVZ9JNb4koDSdZs03r K+5HTbpQYVrdGUiNZPA48t6qQcGNKS4XyjN5PiaphCl+ixoQZeuS9Rzgu0GCDg== X-Google-Smtp-Source: AGHT+IHX8LyCdt3HsfySnPiUJg+yyAZ+504sur7Q5LuGp99/7EULmDAuVPHP2u2hRNONJRiXw3yvqg== X-Received: by 2002:a05:600c:1e28:b0:43d:7a:471f with SMTP id 5b1f17b1804b1-43f3a959967mr150937515e9.18.1744724883552; Tue, 15 Apr 2025 06:48:03 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:8261:5fff:fe11:bdda]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f2066d0fcsm210434195e9.19.2025.04.15.06.48.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Apr 2025 06:48:03 -0700 (PDT) From: Neil Armstrong Date: Tue, 15 Apr 2025 15:47:58 +0200 Subject: [PATCH v6 6/7] media: platform: qcom/iris: rename platform_sm8550 to platform_gen2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250415-topic-sm8x50-iris-v10-v6-6-8ad319094055@linaro.org> References: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> In-Reply-To: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bryan O'Donoghue Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1368; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=TF5iaiyVF7pffStsTB0GQItBgvhj+hCdhoNBSo25fFM=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBn/mONdlcCMlu6uM2Mkezm5KHDQQEBq87XseQjCD4m ebhAdSeJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZ/5jjQAKCRB33NvayMhJ0XbSEA CWeDCdZKIYhCBBipC+hUx4GM80SEgfREUg6dogk1aic91bynv0R0TSVT4C2Q18k51z90+2WvBzzd82 PIcmdyvTaWnyw2uPGd660DAYUOgQpmTLZp7rigQDE/3nAhIjVhjaCicGlkjL8nxaOtRffwswMfwGFM vgKDIXlzMV+2LmTXHnlSpRHXLbuakrhthKA0Jnr1jDh3+SxjJgBG+zcADVngUMio5xS0xBiPPxaxAr cSWKCFO4sTXHZ/sB3bK9nrSBYuSlRy0Luh1vj9zkcikuai4aSl5M10TGiOYlwLZ244sd8IXO/Alq1q sc0sBtlyZxdPLPJYLR+4zpZFWNFgrUYRa/hzjsYAp4/gmY4C3Qk2uXm3hwYQX2NRThDigvAWAt9Jmm ZiQG4U4KpCvRizroJwPDqWH9ru+tof8Qk6bfaFOf5GY2BhL8MEdBsMLbVMU7pixKCk8PrbgJ4qtGAv YEkdueYbhOOENyFATZxQuWiJDKp0zOlMWAsi+K+jw71UzeBTXIqVFInX4pB06Cm+t87+hv++YdooZH ttKhBnIhDWZ5QNRfM87omdRVTzs4owVxKx6b+55pJCh5YsOk7NiKFho+MXt3J2Fvm7h5WagcbSm1ox nkE5sO9qyHp6uq/GY4HP55pYlXbj4do5XfAdJW+sT0wCNOtHzkuit4KijXaQ== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE In order to prepare for supporting the SM8650 SoC, move the iris_platform_sm8550.c file into iris_platform_gen2.c that will contain all the common HFI GEN2x structures. Signed-off-by: Neil Armstrong Reviewed-by: Bryan O'Donoghue --- drivers/media/platform/qcom/iris/Makefile | = 2 +- .../platform/qcom/iris/{iris_platform_sm8550.c =3D> iris_platform_gen2.c} = | 0 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/plat= form/qcom/iris/Makefile index 473aaf655448180ade917e642289677fc1277f99..e86d00ee6f15dda8bae2f25f726= feb0d427b7684 100644 --- a/drivers/media/platform/qcom/iris/Makefile +++ b/drivers/media/platform/qcom/iris/Makefile @@ -10,7 +10,7 @@ qcom-iris-objs +=3D \ iris_hfi_gen2_packet.o \ iris_hfi_gen2_response.o \ iris_hfi_queue.o \ - iris_platform_sm8550.o \ + iris_platform_gen2.o \ iris_power.o \ iris_probe.o \ iris_resources.o \ diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8550.c b/driv= ers/media/platform/qcom/iris/iris_platform_gen2.c similarity index 100% rename from drivers/media/platform/qcom/iris/iris_platform_sm8550.c rename to drivers/media/platform/qcom/iris/iris_platform_gen2.c --=20 2.34.1 From nobody Fri Dec 19 19:20:08 2025 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C6B21F3BBE for ; Tue, 15 Apr 2025 13:48:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724889; cv=none; b=ZocBam4X6yFeG0coA9ln6Z0hYOXIyrnaeGoCHR5E3+ImN92/DurKDPNqwEAZ3VVJR2JafvJ0Ioy7SnIhGpBmc4/tm/bxT74bUpe55BkaqLjVUENsIxT8PFGdKUHBJEygq+cUYLrWFjZBnKO8J1cChTjQKNfLtUl73an03iUHHYg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744724889; c=relaxed/simple; bh=x3wKOI+1ZrPfkShLd9Am24DbDrMkhm6DgUV9n49PlY0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tY89Bu3r0Y8zP7GNQU9R/pF32WhIFwpUBAn9vB+jegz/FGt6Msplrp9qMfwXR55FLoKtsHBDiFuk39tT2ScfCn4iM/Wm6xpyMP4MI+JlfNt0fmHKL3pt6R8ttN7RpBez6rQ4CeTJ4eox87p/OtTEP7OuC6krTExwHte3sFPEZFo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=YbPvOTEu; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="YbPvOTEu" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-43edb40f357so46974845e9.0 for ; Tue, 15 Apr 2025 06:48:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744724884; x=1745329684; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=5+FiVklT7IYe+jV4Sbf0wBSLR5dUd5EreBR2zi35Wo0=; b=YbPvOTEuQOMiFV2s50Oy6Yc6XUZjc8j+oTbTo1D3pfSS1iWgWYCtcnWKbqZWuq2NnS GVLl22EYJAYtFu0Iyq00YFkAFyR757theWGgzCgjTarB6JfOf/5dBw1zf7NwFz7HxFkS 2DtG7dVrcfwNoRJO//5um7BncadIFKVuAm0VLustzYi/vJU/1+WkdmkHBhU5MugrZXvL 45aHRyuKSFM//qJNVwGMaJ5KqdHmHCYrkrM7XNaDpqeOrJJ/obYJ4xJ1QRhJaRZNszND hptUtdVQJzxdEgwKlOnG6nmtbZjl/c3zbXWyCaWf6S930H5/1A/7S8x7U8gJCJyvHLvr EqBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744724884; x=1745329684; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5+FiVklT7IYe+jV4Sbf0wBSLR5dUd5EreBR2zi35Wo0=; b=C93d0M+ZttL5QKhyszKpHn8of28yV0aXIlLmfBH0l5BhBxRULsrgQudo9lMRNiY8Dj q6A9dcBjdGFoMXmnGOQdFV6zGKjYRonJUwby3Nb6fvh5po2UWcVLF92u/kS5dthXSrST AetpxjzvqCPNb/a2y26zm9LzjBQLOrMiPVJxne89N5haVC99eGaxLtqvWzMxYA/E3PMu nw/qkQOzB/kLDhxmeDVFpcQ+5TB/soqz6DDTiT8HvFORfWM5Pls+jeWaUALR0q3wmpq6 VIz3OaLwsVpjhrGIIhhvcGDbqcoW8YvS0k357NZpImrpdqiXY+2F3Jq1HFeeGkaQWdbG TWew== X-Forwarded-Encrypted: i=1; AJvYcCXcvhWUqV0ytUplSokMN1uWadz7OCQzKiUYa+DKyOPbGGzgug3MrImztu4WJIrAuuQsB+mB9Ya537wpI7k=@vger.kernel.org X-Gm-Message-State: AOJu0Yxry0KzBCRlxEOYhbAwgBZ0giLkyveV/491krZc0eufbmh1SuQr 4WfwgeCstt4nloF57LCta7lbUhD3a/OVdeZvRKNf6H9RFxxjZv78v1glF/+1v+U= X-Gm-Gg: ASbGnctz8v6hYeVIW1UZiu8f2PB0cRFapduqMBD6UG+pF8dG5lGyxrngwdBI6xGKC9+ CETZ2p7BTD5zFnBJwqZD/2KJdJpd/MH3lp74aulNDX8gGsBhtheHqSK0+Og514j48TU9jG+WjIU ylprOqoietUPEpsJ7BcamLRx9u6AM+nwrgzVkUu4O7Bj4loj8POJcLTOuUB8ct5ckqcK22xQABn LJjOj+lqxxNmwZ3ycO+ziPJeKI4AgSanHMcep+HJelUY096XC4+es30Q0iqs8Yn+PZLAjZJYdX5 kpRUuNlr/xMFOvgnW7UJnFnd94sZBXcItkWJl7gJESiF4i7BWqobjrDCwdqJoUwG+ula9QPq X-Google-Smtp-Source: AGHT+IGzY3nAKBrnSHuoBuPGQLg5ScyURISnM193MvtsfOaRNqODf9TXp6e25SCsEQtFqkO4aoIP2w== X-Received: by 2002:a05:600c:4f8e:b0:43d:24d:bbe2 with SMTP id 5b1f17b1804b1-43f7de6223cmr22854845e9.28.1744724884508; Tue, 15 Apr 2025 06:48:04 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:8261:5fff:fe11:bdda]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f2066d0fcsm210434195e9.19.2025.04.15.06.48.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Apr 2025 06:48:04 -0700 (PDT) From: Neil Armstrong Date: Tue, 15 Apr 2025 15:47:59 +0200 Subject: [PATCH v6 7/7] media: platform: qcom/iris: add sm8650 support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250415-topic-sm8x50-iris-v10-v6-7-8ad319094055@linaro.org> References: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> In-Reply-To: <20250415-topic-sm8x50-iris-v10-v6-0-8ad319094055@linaro.org> To: Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bryan O'Donoghue Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7059; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=x3wKOI+1ZrPfkShLd9Am24DbDrMkhm6DgUV9n49PlY0=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBn/mONUZzgH07deO4f2rzfXfKjieKGJILOclqxvDF2 hkMhDxWJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZ/5jjQAKCRB33NvayMhJ0blWD/ 94d5sTQTzH9K91KJgIG8KViCpadY1mGdP4qPYzbriFUiYgICRLKMRK52IPJMTOQhyTbPAMDyZZe9Cp 6JL8Zu6uiqy1XNatfEsBpSF9Hl+D5X4tTBaqp1oy/GkoolOKhW34MV0y3hSzcT6jUf0EwZXg7aHp+K c/TdbcKBjXibA6j95cP6oPAvTrX/JuKifB0EVojcNVVt5Flo1Pwh74aM2shfjXrg9XlvwbuZ37+zol uoWLdh7NS2u0Jgjld7hPGUTXOWGY3m3ueHA3QDW/Li/bHL+ewr0jqKwd/eRk7OaLW8GBtggQjIrh0E NBupDjERrogUknmcvwtH/YBX4msP5e3ChesKhXuqyDClRGAIcr1EpEW15x+MTZ0xp8GqXy0i4C6vSv VablDdwggTXOjCCHtBI2L0SgegquTDBQO5Tzl8b35sftNY7S6m3PG0jpAy7j8soxfKXD9XtQJEVvJP fO5+5OPFcP3y+fQpyO58oJ1/VDe1giIcVq1SinkNfvEbpXiYFjN+A/V3C+Z7NX8UAB1j5edQGyHGy/ r0Fhn6/Ame+AWrAvU9YGo9QvdIXa9YLo91hr4gviiuCAnIsOnkdecgiYl5dkKz/H1TezXA+C2zCzad WyR+Cn+z4nDm+kSPPNJywtAunKUM73Nx0zeMtNEDnSKSYvj8WyDxQ47w+jIQ== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE Add support for the SM8650 platform by re-using the SM8550 definitions and using the vpu33 ops. Move the reset tables that diffes in a per-SoC platform header, that will contain mode SoC specific data when more codecs are introduced. The SM8650/vpu33 requires more reset lines, but the H.264 decoder capabilities are identical. Tested-by: Bryan O'Donoghue # x1e Dell Signed-off-by: Neil Armstrong Reviewed-by: Bryan O'Donoghue --- .../platform/qcom/iris/iris_platform_common.h | 1 + .../media/platform/qcom/iris/iris_platform_gen2.c | 65 ++++++++++++++++++= +++- .../platform/qcom/iris/iris_platform_sm8550.h | 11 ++++ .../platform/qcom/iris/iris_platform_sm8650.h | 13 +++++ drivers/media/platform/qcom/iris/iris_probe.c | 4 ++ 5 files changed, 92 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index fdd40fd80178c4c66b37e392d07a0a62f492f108..6bc3a7975b04d612f6c89206eae= 95dac678695fc 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -35,6 +35,7 @@ enum pipe_type { =20 extern struct iris_platform_data sm8250_data; extern struct iris_platform_data sm8550_data; +extern struct iris_platform_data sm8650_data; =20 enum platform_clk_type { IRIS_AXI_CLK, diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen2.c b/driver= s/media/platform/qcom/iris/iris_platform_gen2.c index 35d278996c430f2856d0fe59586930061a271c3e..6d1771bd68689d96b5b9087b0ad= 32b934f7295ee 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_gen2.c +++ b/drivers/media/platform/qcom/iris/iris_platform_gen2.c @@ -10,6 +10,9 @@ #include "iris_platform_common.h" #include "iris_vpu_common.h" =20 +#include "iris_platform_sm8550.h" +#include "iris_platform_sm8650.h" + #define VIDEO_ARCH_LX 1 =20 static struct platform_inst_fw_cap inst_fw_cap_sm8550[] =3D { @@ -142,8 +145,6 @@ static const struct icc_info sm8550_icc_table[] =3D { { "video-mem", 1000, 15000000 }, }; =20 -static const char * const sm8550_clk_reset_table[] =3D { "bus" }; - static const struct bw_info sm8550_bw_table_dec[] =3D { { ((4096 * 2160) / 256) * 60, 1608000 }, { ((4096 * 2160) / 256) * 30, 826000 }, @@ -264,3 +265,63 @@ struct iris_platform_data sm8550_data =3D { .dec_op_int_buf_tbl =3D sm8550_dec_op_int_buf_tbl, .dec_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_dec_op_int_buf_tbl), }; + +/* + * Shares most of SM8550 data except: + * - vpu_ops to iris_vpu33_ops + * - clk_rst_tbl to sm8650_clk_reset_table + * - controller_rst_tbl to sm8650_controller_reset_table + * - fwname to "qcom/vpu/vpu33_p4.mbn" + */ +struct iris_platform_data sm8650_data =3D { + .get_instance =3D iris_hfi_gen2_get_instance, + .init_hfi_command_ops =3D iris_hfi_gen2_command_ops_init, + .init_hfi_response_ops =3D iris_hfi_gen2_response_ops_init, + .vpu_ops =3D &iris_vpu33_ops, + .set_preset_registers =3D iris_set_sm8550_preset_registers, + .icc_tbl =3D sm8550_icc_table, + .icc_tbl_size =3D ARRAY_SIZE(sm8550_icc_table), + .clk_rst_tbl =3D sm8650_clk_reset_table, + .clk_rst_tbl_size =3D ARRAY_SIZE(sm8650_clk_reset_table), + .controller_rst_tbl =3D sm8650_controller_reset_table, + .controller_rst_tbl_size =3D ARRAY_SIZE(sm8650_controller_reset_table), + .bw_tbl_dec =3D sm8550_bw_table_dec, + .bw_tbl_dec_size =3D ARRAY_SIZE(sm8550_bw_table_dec), + .pmdomain_tbl =3D sm8550_pmdomain_table, + .pmdomain_tbl_size =3D ARRAY_SIZE(sm8550_pmdomain_table), + .opp_pd_tbl =3D sm8550_opp_pd_table, + .opp_pd_tbl_size =3D ARRAY_SIZE(sm8550_opp_pd_table), + .clk_tbl =3D sm8550_clk_table, + .clk_tbl_size =3D ARRAY_SIZE(sm8550_clk_table), + /* Upper bound of DMA address range */ + .dma_mask =3D 0xe0000000 - 1, + .fwname =3D "qcom/vpu/vpu33_p4.mbn", + .pas_id =3D IRIS_PAS_ID, + .inst_caps =3D &platform_inst_cap_sm8550, + .inst_fw_caps =3D inst_fw_cap_sm8550, + .inst_fw_caps_size =3D ARRAY_SIZE(inst_fw_cap_sm8550), + .tz_cp_config_data =3D &tz_cp_config_sm8550, + .core_arch =3D VIDEO_ARCH_LX, + .hw_response_timeout =3D HW_RESPONSE_TIMEOUT_VALUE, + .ubwc_config =3D &ubwc_config_sm8550, + .num_vpp_pipe =3D 4, + .max_session_count =3D 16, + .max_core_mbpf =3D ((8192 * 4352) / 256) * 2, + .input_config_params =3D + sm8550_vdec_input_config_params, + .input_config_params_size =3D + ARRAY_SIZE(sm8550_vdec_input_config_params), + .output_config_params =3D + sm8550_vdec_output_config_params, + .output_config_params_size =3D + ARRAY_SIZE(sm8550_vdec_output_config_params), + .dec_input_prop =3D sm8550_vdec_subscribe_input_properties, + .dec_input_prop_size =3D ARRAY_SIZE(sm8550_vdec_subscribe_input_propertie= s), + .dec_output_prop =3D sm8550_vdec_subscribe_output_properties, + .dec_output_prop_size =3D ARRAY_SIZE(sm8550_vdec_subscribe_output_propert= ies), + + .dec_ip_int_buf_tbl =3D sm8550_dec_ip_int_buf_tbl, + .dec_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_dec_ip_int_buf_tbl), + .dec_op_int_buf_tbl =3D sm8550_dec_op_int_buf_tbl, + .dec_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_dec_op_int_buf_tbl), +}; diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8550.h b/driv= ers/media/platform/qcom/iris/iris_platform_sm8550.h new file mode 100644 index 0000000000000000000000000000000000000000..ac8847edb585e4a9ce6b669a3a5= 988e7809972af --- /dev/null +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8550.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights res= erved. + */ + +#ifndef __IRIS_PLATFORM_SM8550_H__ +#define __IRIS_PLATFORM_SM8550_H__ + +static const char * const sm8550_clk_reset_table[] =3D { "bus" }; + +#endif diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8650.h b/driv= ers/media/platform/qcom/iris/iris_platform_sm8650.h new file mode 100644 index 0000000000000000000000000000000000000000..75e9d572e788de043a56cf85a4c= b634bd02226b9 --- /dev/null +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8650.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights res= erved. + */ + +#ifndef __IRIS_PLATFORM_SM8650_H__ +#define __IRIS_PLATFORM_SM8650_H__ + +static const char * const sm8650_clk_reset_table[] =3D { "bus", "core" }; + +static const char * const sm8650_controller_reset_table[] =3D { "xo" }; + +#endif diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/= platform/qcom/iris/iris_probe.c index 4f8bce6e2002bffee4c93dcaaf6e52bf4e40992e..7cd8650fbe9c09598670530103e= 3d5edf32953e7 100644 --- a/drivers/media/platform/qcom/iris/iris_probe.c +++ b/drivers/media/platform/qcom/iris/iris_probe.c @@ -345,6 +345,10 @@ static const struct of_device_id iris_dt_match[] =3D { .data =3D &sm8250_data, }, #endif + { + .compatible =3D "qcom,sm8650-iris", + .data =3D &sm8650_data, + }, { }, }; MODULE_DEVICE_TABLE(of, iris_dt_match); --=20 2.34.1