From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-yw1-f172.google.com (mail-yw1-f172.google.com [209.85.128.172]) (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 BAE473D47D4 for ; Thu, 16 Apr 2026 13:44:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776347094; cv=none; b=fJQDwb8mZFom39JE6Ur6WXGARVL1211qF2OKV30HQ7CREIZFj5X13ZmvF/bELFxS50OCXvEeRKeWgnCnY56UYJNjYp/AibKYownrzNBS+3SH6HR4lsRZq6m6HUPE6GB68+csNZ6cOGWgomSmg6oFfYwWEwq4iCaZ5RupUoxe1ac= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776347094; c=relaxed/simple; bh=V83toJRzq8U8D4mGDj0lJeN58s6MqU8MQGaAbFH2CNs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=I4idEXEJdGQyV9b1Osjoa4W6uAf9i2pV7RACZl+/YbHD3casZl/SUdozYefAq461N3C9RkPp3x1tfN1fvQkn5rtzFvUAQJ64x8/6OFUTKGn3g4smTO1UQjhwkhg3SaBsXMWhcKkXdukudqpzSV5D9ffox9uGSSDwLPpyXrGg4S4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SjvvvtL2; arc=none smtp.client-ip=209.85.128.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SjvvvtL2" Received: by mail-yw1-f172.google.com with SMTP id 00721157ae682-79cd8f8e261so53491587b3.3 for ; Thu, 16 Apr 2026 06:44:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776347092; x=1776951892; 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=KtnVA07z93Sa3PHIsBwQ1JskBEYwpeJ7GU4WtOXVzaI=; b=SjvvvtL2e+RJbFO2GiwZ+xRA732PLucVmcgtxnuG5gvNlzwUGeXe2pbxDuGnEn3G3r 7TFDz/u9sPLcSCf/I89T8MNkcASNU3jKzz8vRSmED4CdpLQ5ny9ZjGytKrLl0M7Rxr7n X4I1jLr3iUVVeiPv1Vl6frD5sHdq5TORiTs66sPylMZPUBZJJDCROtk5jQE0OrgtyWvm xQjYFH8OM1wKCk3gZ1ET30iE9OBmSpBOB97BbYnXr1WgjmFnSe0gn+r2enNMB7VmsFUL 76NcdQG3rnWf9kagPWDXJ5BNUI1XMuHHkqX+2d6JKh7te6+LwYcMQZyQ2itN5qcZskeD VAXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776347092; x=1776951892; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=KtnVA07z93Sa3PHIsBwQ1JskBEYwpeJ7GU4WtOXVzaI=; b=Wy+mO8v9msNBo5+trM67v+Z6b3TO2JnbG1aZGL3VopucjICGDTqT30pdvpdxO7BTRD 3WZc6AjM0hC4ggKCYiIAMokAwRNoef/l8AFRx9t6OiMRQ/7q2KaNbkfFBaStxGKNkCVt lJxMuUe1EXQRabv2CWuvz1LO/1Lmyr01C2hJzaK92N7SzM95Qs+nIoy4t93hjQTxLVQp jj+JVmpMPBKnZyctamlMDIfi6iIiY9Ul1hrKBkJqkDkvKcM90jmL52KH6XGoevWYboyq i5B6wAjARERmgoFyvOk7E/KebOlGxJzREK+TSgQVKcKnz3najYUvy23A2aLcQ3wd438E ee4Q== X-Forwarded-Encrypted: i=1; AFNElJ8j/ESUZ4Xz9GhVqG7iuwOq/I4yJ+1xhg+osDLCXdI1StFWJI7MsD9CGBfdHst40nh4Us8fy9LC3/Rx0wU=@vger.kernel.org X-Gm-Message-State: AOJu0YyetwH2hGXL12T7PhRhVjAUF9Scje9XrlWJaq2ydwdafX8GeD6g BySPqiU19Zhl7WQOZrIAmovb3khckHV/hO1SCdcAMqliq03cty9Ki/gT X-Gm-Gg: AeBDieuOfRkFemhItef+3nt+oO92hkKMmC/Y8II41RalP9ivgD1nt7irPx9r/jKeWmu 3zDcj6ccvp/h6dTAzOx2FcL5PsB31eaeh/OuY7Di0zQDUFQnKae2Q6r5LLAZQDrqtLSgGwZ/WJb QyJk40qbjJaGwTLb4dxNNSoNRtU29MEt9cqJ4xycNNT5bdPI9/pTcwBMYm4GEFNX+xQBQOypwPb F6QUoiRqevkQUGTj+HjkiCaRVSF5YCp6eOkcRsnJzNf4IZyJN2ASu0nLh6xNtkardqpJPC0NXNN YjLIM7jMumz+/ve12pUQHluJhV6TSfKlslawjDHljd4YViXC1bPsCO724uu8YgnTP7sOrCRKzWk BuJQFrGNrhnI+/eS7JRrxLeYOgeysxIXTbDIBerJ6zuXtGnmJKTTxMZzxj6uZ70gneR5QUOFZ3P 52x6AvyO0+3UN9P3/F6Bj+Adf61Q== X-Received: by 2002:a05:690c:6983:b0:7b4:378c:f72d with SMTP id 00721157ae682-7b4378cf8bamr136828277b3.42.1776347091671; Thu, 16 Apr 2026 06:44:51 -0700 (PDT) Received: from [192.168.0.39] ([79.133.247.80]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7b76931854esm23363737b3.37.2026.04.16.06.44.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 06:44:51 -0700 (PDT) From: Erikas Bitovtas Date: Thu, 16 Apr 2026 16:43:56 +0300 Subject: [PATCH RFC 09/10] media: qcom: venus: Move HFI v3 venc and vdec methods to HFI v1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260416-msm8939-venus-rfc-v1-9-a09fcf2c23df@gmail.com> References: <20260416-msm8939-venus-rfc-v1-0-a09fcf2c23df@gmail.com> In-Reply-To: <20260416-msm8939-venus-rfc-v1-0-a09fcf2c23df@gmail.com> To: Bryan O'Donoghue , Vikash Garodia , Dikshita Agarwal , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?utf-8?q?Andr=C3=A9_Apitzsch?= , Bjorn Andersson , Konrad Dybcio , Michael Turquette , Stephen Boyd Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, Erikas Bitovtas X-Mailer: b4 0.15.2 Some Qualcomm SoCs which come with HFI v1 like MSM8909 and MSM8939 also have dedicated cores for Venus, like in HFI v3. Move methods from HFI v3 to HFI v1 so they can be reused. Signed-off-by: Erikas Bitovtas --- drivers/media/platform/qcom/venus/pm_helpers.c | 66 +++++++++++++++++++------- 1 file changed, 48 insertions(+), 18 deletions(-) diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c index f0269524ac70..cc21a4762188 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -328,10 +328,56 @@ static int core_power_v1(struct venus_core *core, int on) return ret; } +static int vdec_get_v1(struct device *dev) +{ + struct venus_core *core = dev_get_drvdata(dev); + + return vcodec_clks_get(core, dev, core->vcodec0_clks, + core->res->vcodec0_clks); +} + +static int vdec_power_v1(struct device *dev, int on) +{ + struct venus_core *core = dev_get_drvdata(dev); + int ret = 0; + + if (on == POWER_ON) + ret = vcodec_clks_enable(core, core->vcodec0_clks); + else + vcodec_clks_disable(core, core->vcodec0_clks); + + return ret; +} + +static int venc_get_v1(struct device *dev) +{ + struct venus_core *core = dev_get_drvdata(dev); + + return vcodec_clks_get(core, dev, core->vcodec1_clks, + core->res->vcodec1_clks); +} + +static int venc_power_v1(struct device *dev, int on) +{ + struct venus_core *core = dev_get_drvdata(dev); + int ret = 0; + + if (on == POWER_ON) + ret = vcodec_clks_enable(core, core->vcodec1_clks); + else + vcodec_clks_disable(core, core->vcodec1_clks); + + return ret; +} + static const struct venus_pm_ops pm_ops_v1 = { .core_get = core_get_v1, .core_put = core_put_v1, .core_power = core_power_v1, + .vdec_get = vdec_get_v1, + .vdec_power = vdec_power_v1, + .venc_get = venc_get_v1, + .venc_power = venc_power_v1, .load_scale = load_scale_v1, }; @@ -351,14 +397,6 @@ vcodec_control_v3(struct venus_core *core, u32 session_type, bool enable) writel(1, ctrl); } -static int vdec_get_v3(struct device *dev) -{ - struct venus_core *core = dev_get_drvdata(dev); - - return vcodec_clks_get(core, dev, core->vcodec0_clks, - core->res->vcodec0_clks); -} - static int vdec_power_v3(struct device *dev, int on) { struct venus_core *core = dev_get_drvdata(dev); @@ -376,14 +414,6 @@ static int vdec_power_v3(struct device *dev, int on) return ret; } -static int venc_get_v3(struct device *dev) -{ - struct venus_core *core = dev_get_drvdata(dev); - - return vcodec_clks_get(core, dev, core->vcodec1_clks, - core->res->vcodec1_clks); -} - static int venc_power_v3(struct device *dev, int on) { struct venus_core *core = dev_get_drvdata(dev); @@ -405,9 +435,9 @@ static const struct venus_pm_ops pm_ops_v3 = { .core_get = core_get_v1, .core_put = core_put_v1, .core_power = core_power_v1, - .vdec_get = vdec_get_v3, + .vdec_get = vdec_get_v1, .vdec_power = vdec_power_v3, - .venc_get = venc_get_v3, + .venc_get = venc_get_v1, .venc_power = venc_power_v3, .load_scale = load_scale_v1, }; -- 2.53.0