RE: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"

Vikash Garodia posted 1 patch 2 years, 7 months ago
drivers/media/platform/qcom/venus/core.c     |  8 ++++++++
drivers/media/platform/qcom/venus/firmware.c | 13 +++++++++++++
2 files changed, 21 insertions(+)
RE: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Vikash Garodia 2 years, 7 months ago
Hi Javier and Matthias,
Can we try the attached patch if that fixes the suspend issue for sc7180 and sc7280 ?

> -----Original Message-----
> From: Javier Martinez Canillas <javierm@redhat.com>
> Sent: Tuesday, February 7, 2023 3:53 PM
> To: linux-kernel@vger.kernel.org
> Cc: Albert Esteve <aesteve@redhat.com>; stanimir.varbanov@linaro.org;
> Matthias Kaehlcke <mka@chromium.org>; Enric Balletbo i Serra
> <eballetb@redhat.com>; Javier Martinez Canillas <javierm@redhat.com>; Andy
> Gross <agross@kernel.org>; Bjorn Andersson <andersson@kernel.org>; Konrad
> Dybcio <konrad.dybcio@linaro.org>; Mauro Carvalho Chehab
> <mchehab@kernel.org>; Stanimir Varbanov
> <stanimir.k.varbanov@gmail.com>; Vikash Garodia (QUIC)
> <quic_vgarodia@quicinc.com>; linux-arm-msm@vger.kernel.org; linux-
> media@vger.kernel.org
> Subject: [PATCH] Revert "venus: firmware: Correct non-pix start and end
> addresses"
> 
> WARNING: This email originated from outside of Qualcomm. Please be wary of
> any links or attachments, and do not enable macros.
> 
> This reverts commit a837e5161cfffbb3242cc0eb574f8bf65fd32640, which
> broke probing of the venus driver, at least on the SC7180 SoC HP X2
> Chromebook:
> 
>   [   11.455782] qcom-venus aa00000.video-codec: Adding to iommu group 11
>   [   11.506980] qcom-venus aa00000.video-codec: non legacy binding
>   [   12.143432] qcom-venus aa00000.video-codec: failed to reset venus core
>   [   12.156440] qcom-venus: probe of aa00000.video-codec failed with error -
> 110
> 
> Matthias Kaehlcke also reported that the same change caused a regression in
> SC7180 and sc7280, that prevents AOSS from entering sleep mode during
> system suspend. So let's revert this commit for now to fix both issues.
> 
> Fixes: a837e5161cff ("venus: firmware: Correct non-pix start and end
> addresses")
> Reported-by: Matthias Kaehlcke <mka@chromium.org>
> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
> ---
> 
>  drivers/media/platform/qcom/venus/firmware.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/platform/qcom/venus/firmware.c
> b/drivers/media/platform/qcom/venus/firmware.c
> index 142d4c74017c..d59ecf776715 100644
> --- a/drivers/media/platform/qcom/venus/firmware.c
> +++ b/drivers/media/platform/qcom/venus/firmware.c
> @@ -38,8 +38,8 @@ static void venus_reset_cpu(struct venus_core *core)
>         writel(fw_size, wrapper_base + WRAPPER_FW_END_ADDR);
>         writel(0, wrapper_base + WRAPPER_CPA_START_ADDR);
>         writel(fw_size, wrapper_base + WRAPPER_CPA_END_ADDR);
> -       writel(0, wrapper_base + WRAPPER_NONPIX_START_ADDR);
> -       writel(0, wrapper_base + WRAPPER_NONPIX_END_ADDR);
> +       writel(fw_size, wrapper_base + WRAPPER_NONPIX_START_ADDR);
> +       writel(fw_size, wrapper_base + WRAPPER_NONPIX_END_ADDR);
> 
>         if (IS_V6(core)) {
>                 /* Bring XTSS out of reset */
> --
> 2.39.1

Thanks,
Vikash
From bcce3fd9e60a47cb7063b6a5b66867e19a0d0316 Mon Sep 17 00:00:00 2001
From: Vikash Garodia <quic_vgarodia@quicinc.com>
Date: Tue, 7 Feb 2023 17:42:11 +0530
Subject: [PATCH] firmware: video: configure the secure and non secure region

Program video registers about the secure and non secure regions.
---
 drivers/media/platform/qcom/venus/core.c     |  8 ++++++++
 drivers/media/platform/qcom/venus/firmware.c | 13 +++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 990a151..e0a49c9 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -762,6 +762,10 @@ static const struct venus_resources sc7180_res = {
 	.vmem_size = 0,
 	.vmem_addr = 0,
 	.dma_mask = 0xe0000000 - 1,
+	.cp_start = 0,
+	.cp_size = 0x70800000,
+	.cp_nonpixel_start = 0x1000000,
+	.cp_nonpixel_size = 0x24800000,
 	.fwname = "qcom/venus-5.4/venus.mdt",
 };
 
@@ -872,6 +876,10 @@ static const struct venus_resources sc7280_res = {
 	.vmem_id = VIDC_RESOURCE_NONE,
 	.vmem_size = 0,
 	.vmem_addr = 0,
+	.cp_start = 0,
+	.cp_size = 0x25800000,
+	.cp_nonpixel_start = 0x1000000,
+	.cp_nonpixel_size = 0x24800000,
 	.dma_mask = 0xe0000000 - 1,
 	.fwname = "qcom/vpu-2.0/venus.mbn",
 };
diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
index 142d4c7..5cc977c 100644
--- a/drivers/media/platform/qcom/venus/firmware.c
+++ b/drivers/media/platform/qcom/venus/firmware.c
@@ -210,6 +210,7 @@ int venus_boot(struct venus_core *core)
 	struct device *dev = core->dev;
 	const struct venus_resources *res = core->res;
 	const char *fwpath = NULL;
+	void __iomem *wrapper_base;
 	phys_addr_t mem_phys;
 	size_t mem_size;
 	int ret;
@@ -253,6 +254,18 @@ int venus_boot(struct venus_core *core)
 		}
 	}
 
+	if (!core->use_tz && res->cp_size) {
+		if (IS_V6(core))
+			wrapper_base = core->wrapper_tz_base;
+		else
+			wrapper_base = core->wrapper_base;
+
+		writel(res->cp_start, wrapper_base + WRAPPER_CPA_START_ADDR);
+		writel(res->cp_start + res->cp_size, wrapper_base + WRAPPER_CPA_END_ADDR);
+		writel(res->cp_nonpixel_start, wrapper_base + WRAPPER_NONPIX_START_ADDR);
+		writel(res->cp_nonpixel_start + res->cp_nonpixel_size, wrapper_base + WRAPPER_NONPIX_END_ADDR);
+	}
+
 	return 0;
 }
 
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

Re: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Javier Martinez Canillas 2 years, 7 months ago
Hello Vikash,

On 2/7/23 17:40, Vikash Garodia wrote:
> Hi Javier and Matthias,
> Can we try the attached patch if that fixes the suspend issue for sc7180 and sc7280 ?
> 

I tested your attached patch on an SC7180 machine (HP X2 Chromebook) and as Matthias
mentioned, it still causes the driver's probe to fail:

[ 2119.063779] qcom-venus aa00000.video-codec: non legacy binding
[ 2119.085695] platform video-firmware.0: Adding to iommu group 11
[ 2119.156302] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x000000b0, fsynr=0x61, cbfrsynra=0xc40, cb=7
[ 2119.259382] qcom-venus aa00000.video-codec: failed to reset venus core
[ 2119.267782] platform video-firmware.0: Removing from iommu group 11
[ 2119.275052] qcom-venus: probe of aa00000.video-codec failed with error -110

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat
Re: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Javier Martinez Canillas 2 years, 7 months ago
On 2/8/23 10:06, Javier Martinez Canillas wrote:
> Hello Vikash,
> 
> On 2/7/23 17:40, Vikash Garodia wrote:
>> Hi Javier and Matthias,
>> Can we try the attached patch if that fixes the suspend issue for sc7180 and sc7280 ?
>>
> 
> I tested your attached patch on an SC7180 machine (HP X2 Chromebook) and as Matthias
> mentioned, it still causes the driver's probe to fail:
> 
> [ 2119.063779] qcom-venus aa00000.video-codec: non legacy binding
> [ 2119.085695] platform video-firmware.0: Adding to iommu group 11
> [ 2119.156302] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x000000b0, fsynr=0x61, cbfrsynra=0xc40, cb=7
> [ 2119.259382] qcom-venus aa00000.video-codec: failed to reset venus core
> [ 2119.267782] platform video-firmware.0: Removing from iommu group 11
> [ 2119.275052] qcom-venus: probe of aa00000.video-codec failed with error -110
> 

So what should we do about this folks? Since not allowing the driver to probe
on at least SC7180 is a quite serious regression, can we revert for now until
a proper fix is figured out?

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat
RE: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Vikash Garodia 2 years, 7 months ago
Hi Javier,

>-----Original Message-----
>From: Javier Martinez Canillas <javierm@redhat.com>
>Sent: Friday, February 10, 2023 1:45 PM
>To: Vikash Garodia <vgarodia@qti.qualcomm.com>; linux-
>kernel@vger.kernel.org; mka@chromium.org
>Cc: Albert Esteve <aesteve@redhat.com>; stanimir.varbanov@linaro.org; Enric
>Balletbo i Serra <eballetb@redhat.com>; Andy Gross <agross@kernel.org>;
>Bjorn Andersson <andersson@kernel.org>; Konrad Dybcio
><konrad.dybcio@linaro.org>; Mauro Carvalho Chehab <mchehab@kernel.org>;
>Stanimir Varbanov <stanimir.k.varbanov@gmail.com>; Vikash Garodia (QUIC)
><quic_vgarodia@quicinc.com>; linux-arm-msm@vger.kernel.org; linux-
>media@vger.kernel.org; Fritz Koenig <frkoenig@google.com>; Dikshita Agarwal
>(QUIC) <quic_dikshita@quicinc.com>; Rajeshwar Kurapaty (QUIC)
><quic_rkurapat@quicinc.com>
>Subject: Re: [PATCH] Revert "venus: firmware: Correct non-pix start and end
>addresses"
>
>WARNING: This email originated from outside of Qualcomm. Please be wary of
>any links or attachments, and do not enable macros.
>
>On 2/8/23 10:06, Javier Martinez Canillas wrote:
>> Hello Vikash,
>>
>> On 2/7/23 17:40, Vikash Garodia wrote:
>>> Hi Javier and Matthias,
>>> Can we try the attached patch if that fixes the suspend issue for sc7180 and
>sc7280 ?
>>>
>>
>> I tested your attached patch on an SC7180 machine (HP X2 Chromebook)
>> and as Matthias mentioned, it still causes the driver's probe to fail:
>>
>> [ 2119.063779] qcom-venus aa00000.video-codec: non legacy binding [
>> 2119.085695] platform video-firmware.0: Adding to iommu group 11 [
>> 2119.156302] arm-smmu 15000000.iommu: Unhandled context fault:
>> fsr=0x402, iova=0x000000b0, fsynr=0x61, cbfrsynra=0xc40, cb=7 [
>> 2119.259382] qcom-venus aa00000.video-codec: failed to reset venus
>> core [ 2119.267782] platform video-firmware.0: Removing from iommu
>> group 11 [ 2119.275052] qcom-venus: probe of aa00000.video-codec
>> failed with error -110
>>
>
>So what should we do about this folks? Since not allowing the driver to probe on
>at least SC7180 is a quite serious regression, can we revert for now until a proper
>fix is figured out?

I am able to repro this issue on sc7180 and discussing with firmware team on the cause
of reset failure. The original patch was raised for fixing rare SMMU faults during warm
boot of video hardware. Hence looking to understand the regressing part before we
proceed to revert.

>--
>Best regards,
>
>Javier Martinez Canillas
>Core Platforms
>Red Hat

Re: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Javier Martinez Canillas 2 years, 7 months ago
Hello Vikash,

On 2/10/23 10:22, Vikash Garodia wrote:

[...]

>>
>> So what should we do about this folks? Since not allowing the driver to probe on
>> at least SC7180 is a quite serious regression, can we revert for now until a proper
>> fix is figured out?
> 
> I am able to repro this issue on sc7180 and discussing with firmware team on the cause
> of reset failure. The original patch was raised for fixing rare SMMU faults during warm
> boot of video hardware. Hence looking to understand the regressing part before we
> proceed to revert.
> 

Great, if you are working on a proper fix then that would be much better indeed.

Thanks for the follow-up!

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat
Re: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Linux regression tracking (Thorsten Leemhuis) 2 years, 7 months ago
On 10.02.23 11:07, Javier Martinez Canillas wrote:
> On 2/10/23 10:22, Vikash Garodia wrote:
>
>>> So what should we do about this folks? Since not allowing the driver to probe on
>>> at least SC7180 is a quite serious regression, can we revert for now until a proper
>>> fix is figured out?
>>
>> I am able to repro this issue on sc7180 and discussing with firmware team on the cause
>> of reset failure. The original patch was raised for fixing rare SMMU faults during warm
>> boot of video hardware. Hence looking to understand the regressing part before we
>> proceed to revert.
> 
> Great, if you are working on a proper fix then that would be much better indeed.

Yeah, that's great, but OTOH: there is almost certainly just one week
before 6.2 will be released. Ideally this should be fixed by then.
Vikash, do you think that's in the cards? If not: why not revert this
now to make sure 6.2 works fine?

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
If I did something stupid, please tell me, as explained on that page.
Re: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Linux regression tracking (Thorsten Leemhuis) 2 years, 6 months ago
On 11.02.23 15:27, Linux regression tracking (Thorsten Leemhuis) wrote:
> On 10.02.23 11:07, Javier Martinez Canillas wrote:
>> On 2/10/23 10:22, Vikash Garodia wrote:
>>
>>>> So what should we do about this folks? Since not allowing the driver to probe on
>>>> at least SC7180 is a quite serious regression, can we revert for now until a proper
>>>> fix is figured out?
>>>
>>> I am able to repro this issue on sc7180 and discussing with firmware team on the cause
>>> of reset failure. The original patch was raised for fixing rare SMMU faults during warm
>>> boot of video hardware. Hence looking to understand the regressing part before we
>>> proceed to revert.
>>
>> Great, if you are working on a proper fix then that would be much better indeed.
> 
> Yeah, that's great, but OTOH: there is almost certainly just one week
> before 6.2 will be released. Ideally this should be fixed by then.
> Vikash, do you think that's in the cards? If not: why not revert this
> now to make sure 6.2 works fine?

Hmm, no reply. And we meanwhile have Wednesday and 6.2 is almost
certainly going to be out on Sunday. And the problem was called "a quite
serious regression" above. So why not quickly fix this with the revert,
as proposed earlier?

Vikash? Javier?

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
If I did something stupid, please tell me, as explained on that page.

#regzbot ignore-activity
Re: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Javier Martinez Canillas 2 years, 6 months ago
On Wed, Feb 15, 2023 at 11:53 AM Linux regression tracking (Thorsten
Leemhuis) <regressions@leemhuis.info> wrote:
>
> On 11.02.23 15:27, Linux regression tracking (Thorsten Leemhuis) wrote:
> > On 10.02.23 11:07, Javier Martinez Canillas wrote:
> >> On 2/10/23 10:22, Vikash Garodia wrote:
> >>
> >>>> So what should we do about this folks? Since not allowing the driver to probe on
> >>>> at least SC7180 is a quite serious regression, can we revert for now until a proper
> >>>> fix is figured out?
> >>>
> >>> I am able to repro this issue on sc7180 and discussing with firmware team on the cause
> >>> of reset failure. The original patch was raised for fixing rare SMMU faults during warm
> >>> boot of video hardware. Hence looking to understand the regressing part before we
> >>> proceed to revert.
> >>
> >> Great, if you are working on a proper fix then that would be much better indeed.
> >
> > Yeah, that's great, but OTOH: there is almost certainly just one week
> > before 6.2 will be released. Ideally this should be fixed by then.
> > Vikash, do you think that's in the cards? If not: why not revert this
> > now to make sure 6.2 works fine?
>
> Hmm, no reply. And we meanwhile have Wednesday and 6.2 is almost
> certainly going to be out on Sunday. And the problem was called "a quite
> serious regression" above. So why not quickly fix this with the revert,
> as proposed earlier?
>
> Vikash? Javier?
>

I agree with you, that we should land this revert and then properly
fix the page fault issue in v6.3.

But it's not my call, the v4l2/media folks have to decide that.

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat
Re: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Linux regression tracking (Thorsten Leemhuis) 2 years, 6 months ago
On 15.02.23 11:57, Javier Martinez Canillas wrote:
> On Wed, Feb 15, 2023 at 11:53 AM Linux regression tracking (Thorsten
> Leemhuis) <regressions@leemhuis.info> wrote:
>> On 11.02.23 15:27, Linux regression tracking (Thorsten Leemhuis) wrote:
>>> On 10.02.23 11:07, Javier Martinez Canillas wrote:
>>>> On 2/10/23 10:22, Vikash Garodia wrote:
>>>>
>>>>>> So what should we do about this folks? Since not allowing the driver to probe on
>>>>>> at least SC7180 is a quite serious regression, can we revert for now until a proper
>>>>>> fix is figured out?
>>>>> I am able to repro this issue on sc7180 and discussing with firmware team on the cause
>>>>> of reset failure. The original patch was raised for fixing rare SMMU faults during warm
>>>>> boot of video hardware. Hence looking to understand the regressing part before we
>>>>> proceed to revert.
>>>> Great, if you are working on a proper fix then that would be much better indeed.
>>> Yeah, that's great, but OTOH: there is almost certainly just one week
>>> before 6.2 will be released. Ideally this should be fixed by then.
>>> Vikash, do you think that's in the cards? If not: why not revert this
>>> now to make sure 6.2 works fine?
>> Hmm, no reply. And we meanwhile have Wednesday and 6.2 is almost
>> certainly going to be out on Sunday. And the problem was called "a quite
>> serious regression" above. So why not quickly fix this with the revert,
>> as proposed earlier?
>> Vikash? Javier?
>
> I agree with you, that we should land this revert and then properly
> fix the page fault issue in v6.3.
> 
> But it's not my call, the v4l2/media folks have to decide that.

In that case: Mauro, what's your opinion here?

Thread starts here:
https://lore.kernel.org/lkml/20230207102254.1446461-1-javierm@redhat.com/

Regression report:
https://lore.kernel.org/lkml/Y9LSMap%2BjRxbtpC8@google.com/

Ciao, Thorsten
Re: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Thorsten Leemhuis 2 years, 6 months ago
On 15.02.23 14:18, Linux regression tracking (Thorsten Leemhuis) wrote:
> On 15.02.23 11:57, Javier Martinez Canillas wrote:
>> On Wed, Feb 15, 2023 at 11:53 AM Linux regression tracking (Thorsten
>> Leemhuis) <regressions@leemhuis.info> wrote:
>>> On 11.02.23 15:27, Linux regression tracking (Thorsten Leemhuis) wrote:
>>>> On 10.02.23 11:07, Javier Martinez Canillas wrote:
>>>>> On 2/10/23 10:22, Vikash Garodia wrote:
>>>>>
>>>>>>> So what should we do about this folks? Since not allowing the driver to probe on
>>>>>>> at least SC7180 is a quite serious regression, can we revert for now until a proper
>>>>>>> fix is figured out?
>>>>>> I am able to repro this issue on sc7180 and discussing with firmware team on the cause
>>>>>> of reset failure. The original patch was raised for fixing rare SMMU faults during warm
>>>>>> boot of video hardware. Hence looking to understand the regressing part before we
>>>>>> proceed to revert.
>>>>> Great, if you are working on a proper fix then that would be much better indeed.
>>>> Yeah, that's great, but OTOH: there is almost certainly just one week
>>>> before 6.2 will be released. Ideally this should be fixed by then.
>>>> Vikash, do you think that's in the cards? If not: why not revert this
>>>> now to make sure 6.2 works fine?
>>> Hmm, no reply. And we meanwhile have Wednesday and 6.2 is almost
>>> certainly going to be out on Sunday. And the problem was called "a quite
>>> serious regression" above. So why not quickly fix this with the revert,
>>> as proposed earlier?
>>> Vikash? Javier?
>>
>> I agree with you, that we should land this revert and then properly
>> fix the page fault issue in v6.3.
>>
>> But it's not my call, the v4l2/media folks have to decide that.
> 
> In that case: Mauro, what's your opinion here?
> 
> Thread starts here:
> https://lore.kernel.org/lkml/20230207102254.1446461-1-javierm@redhat.com/
> 
> Regression report:
> https://lore.kernel.org/lkml/Y9LSMap%2BjRxbtpC8@google.com/

No reply from Mauro and Linus chose to not apply the revert I pointed
him to. That at this point leads to the question:

Vikash, did you or somebody else make any progress to fix this properly?

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
If I did something stupid, please tell me, as explained on that page.

#regzbot poke
RE: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Vikash Garodia 2 years, 6 months ago
Hi All,

>-----Original Message-----
>From: Thorsten Leemhuis <regressions@leemhuis.info>
>Sent: Tuesday, February 21, 2023 8:33 PM
>To: Vikash Garodia <vgarodia@qti.qualcomm.com>
>Cc: linux-kernel@vger.kernel.org; mka@chromium.org; Albert Esteve
><aesteve@redhat.com>; stanimir.varbanov@linaro.org; Enric Balletbo i Serra
><eballetb@redhat.com>; Andy Gross <agross@kernel.org>; Bjorn Andersson
><andersson@kernel.org>; Konrad Dybcio <konrad.dybcio@linaro.org>; Stanimir
>Varbanov <stanimir.k.varbanov@gmail.com>; Vikash Garodia (QUIC)
><quic_vgarodia@quicinc.com>; linux-arm-msm@vger.kernel.org; linux-
>media@vger.kernel.org; Fritz Koenig <frkoenig@google.com>; Dikshita Agarwal
>(QUIC) <quic_dikshita@quicinc.com>; Rajeshwar Kurapaty (QUIC)
><quic_rkurapat@quicinc.com>; Javier Martinez Canillas <javierm@redhat.com>;
>Linux regressions mailing list <regressions@lists.linux.dev>; Mauro Carvalho
>Chehab <mchehab@kernel.org>
>Subject: Re: [PATCH] Revert "venus: firmware: Correct non-pix start and end
>addresses"
>
>WARNING: This email originated from outside of Qualcomm. Please be wary of
>any links or attachments, and do not enable macros.
>
>On 15.02.23 14:18, Linux regression tracking (Thorsten Leemhuis) wrote:
>> On 15.02.23 11:57, Javier Martinez Canillas wrote:
>>> On Wed, Feb 15, 2023 at 11:53 AM Linux regression tracking (Thorsten
>>> Leemhuis) <regressions@leemhuis.info> wrote:
>>>> On 11.02.23 15:27, Linux regression tracking (Thorsten Leemhuis) wrote:
>>>>> On 10.02.23 11:07, Javier Martinez Canillas wrote:
>>>>>> On 2/10/23 10:22, Vikash Garodia wrote:
>>>>>>
>>>>>>>> So what should we do about this folks? Since not allowing the
>>>>>>>> driver to probe on at least SC7180 is a quite serious
>>>>>>>> regression, can we revert for now until a proper fix is figured out?
>>>>>>> I am able to repro this issue on sc7180 and discussing with
>>>>>>> firmware team on the cause of reset failure. The original patch
>>>>>>> was raised for fixing rare SMMU faults during warm boot of video
>>>>>>> hardware. Hence looking to understand the regressing part before we
>proceed to revert.
>>>>>> Great, if you are working on a proper fix then that would be much better
>indeed.
>>>>> Yeah, that's great, but OTOH: there is almost certainly just one
>>>>> week before 6.2 will be released. Ideally this should be fixed by then.
>>>>> Vikash, do you think that's in the cards? If not: why not revert
>>>>> this now to make sure 6.2 works fine?
>>>> Hmm, no reply. And we meanwhile have Wednesday and 6.2 is almost
>>>> certainly going to be out on Sunday. And the problem was called "a
>>>> quite serious regression" above. So why not quickly fix this with
>>>> the revert, as proposed earlier?
>>>> Vikash? Javier?
>>>
>>> I agree with you, that we should land this revert and then properly
>>> fix the page fault issue in v6.3.
>>>
>>> But it's not my call, the v4l2/media folks have to decide that.
>>
>> In that case: Mauro, what's your opinion here?
>>
>> Thread starts here:
>> https://lore.kernel.org/lkml/20230207102254.1446461-1-javierm@redhat.c
>> om/
>>
>> Regression report:
>> https://lore.kernel.org/lkml/Y9LSMap%2BjRxbtpC8@google.com/
>
>No reply from Mauro and Linus chose to not apply the revert I pointed him to.
>That at this point leads to the question:
>
>Vikash, did you or somebody else make any progress to fix this properly?

We tried with different settings for the registers and arrive at a conclusion that
the original configuration was proper. There is no need to explicitly configure
the secure non-pixel region when there is no support for the usecase. So, in summary,
we are good to have the revert.

Stan, could you please help with the revert and a pull request having this revert
alongwith other pending changes ?

>Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
>--
>Everything you wanna know about Linux kernel regression tracking:
>https://linux-regtracking.leemhuis.info/about/#tldr
>If I did something stupid, please tell me, as explained on that page.
>
>#regzbot poke
RE: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Javier Martinez Canillas 2 years, 6 months ago
Vikash Garodia <vgarodia@qti.qualcomm.com> writes:

Hello Vikash,

> Hi All,
>

[...]

>>
>>No reply from Mauro and Linus chose to not apply the revert I pointed him to.
>>That at this point leads to the question:
>>
>>Vikash, did you or somebody else make any progress to fix this properly?
>
> We tried with different settings for the registers and arrive at a conclusion that
> the original configuration was proper. There is no need to explicitly configure
> the secure non-pixel region when there is no support for the usecase. So, in summary,
> we are good to have the revert.
>

Perfect. Thanks a lot for looking at this.

> Stan, could you please help with the revert and a pull request having this revert
> alongwith other pending changes ?
>

Other fix posted is "media: venus: dec: Fix capture formats enumeration order":

https://patchwork.kernel.org/project/linux-media/patch/20230210081835.2054482-1-javierm@redhat.com/

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat
RE: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by Javier Martinez Canillas 2 years, 6 months ago
Javier Martinez Canillas <javierm@redhat.com> writes:

> Vikash Garodia <vgarodia@qti.qualcomm.com> writes:
>
> Hello Vikash,
>
>> Hi All,
>>
>
> [...]
>
>>>
>>>No reply from Mauro and Linus chose to not apply the revert I pointed him to.
>>>That at this point leads to the question:
>>>
>>>Vikash, did you or somebody else make any progress to fix this properly?
>>
>> We tried with different settings for the registers and arrive at a conclusion that
>> the original configuration was proper. There is no need to explicitly configure
>> the secure non-pixel region when there is no support for the usecase. So, in summary,
>> we are good to have the revert.
>>
>
> Perfect. Thanks a lot for looking at this.
>
>> Stan, could you please help with the revert and a pull request having this revert
>> alongwith other pending changes ?
>>
>
> Other fix posted is "media: venus: dec: Fix capture formats enumeration order":
>
> https://patchwork.kernel.org/project/linux-media/patch/20230210081835.2054482-1-javierm@redhat.com/
>

Vikash,

Could you or someone else from QC please Review/Ack these two patches,
since it seems that Stanimir moved on and maybe is not working in this
driver anymore?

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat
Re: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by mka@chromium.org 2 years, 7 months ago
Hi Vikash,

On Tue, Feb 07, 2023 at 04:40:24PM +0000, Vikash Garodia wrote:
> Hi Javier and Matthias,
> Can we try the attached patch if that fixes the suspend issue for sc7180 and sc7280 ?

On my side the patch fixes the issue for sc7280, but not sc7180.

> > -----Original Message-----
> > From: Javier Martinez Canillas <javierm@redhat.com>
> > Sent: Tuesday, February 7, 2023 3:53 PM
> > To: linux-kernel@vger.kernel.org
> > Cc: Albert Esteve <aesteve@redhat.com>; stanimir.varbanov@linaro.org;
> > Matthias Kaehlcke <mka@chromium.org>; Enric Balletbo i Serra
> > <eballetb@redhat.com>; Javier Martinez Canillas <javierm@redhat.com>; Andy
> > Gross <agross@kernel.org>; Bjorn Andersson <andersson@kernel.org>; Konrad
> > Dybcio <konrad.dybcio@linaro.org>; Mauro Carvalho Chehab
> > <mchehab@kernel.org>; Stanimir Varbanov
> > <stanimir.k.varbanov@gmail.com>; Vikash Garodia (QUIC)
> > <quic_vgarodia@quicinc.com>; linux-arm-msm@vger.kernel.org; linux-
> > media@vger.kernel.org
> > Subject: [PATCH] Revert "venus: firmware: Correct non-pix start and end
> > addresses"
> > 
> > WARNING: This email originated from outside of Qualcomm. Please be wary of
> > any links or attachments, and do not enable macros.
> > 
> > This reverts commit a837e5161cfffbb3242cc0eb574f8bf65fd32640, which
> > broke probing of the venus driver, at least on the SC7180 SoC HP X2
> > Chromebook:
> > 
> >   [   11.455782] qcom-venus aa00000.video-codec: Adding to iommu group 11
> >   [   11.506980] qcom-venus aa00000.video-codec: non legacy binding
> >   [   12.143432] qcom-venus aa00000.video-codec: failed to reset venus core
> >   [   12.156440] qcom-venus: probe of aa00000.video-codec failed with error -
> > 110
> > 
> > Matthias Kaehlcke also reported that the same change caused a regression in
> > SC7180 and sc7280, that prevents AOSS from entering sleep mode during
> > system suspend. So let's revert this commit for now to fix both issues.
> > 
> > Fixes: a837e5161cff ("venus: firmware: Correct non-pix start and end
> > addresses")
> > Reported-by: Matthias Kaehlcke <mka@chromium.org>
> > Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
> > ---
> > 
> >  drivers/media/platform/qcom/venus/firmware.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/media/platform/qcom/venus/firmware.c
> > b/drivers/media/platform/qcom/venus/firmware.c
> > index 142d4c74017c..d59ecf776715 100644
> > --- a/drivers/media/platform/qcom/venus/firmware.c
> > +++ b/drivers/media/platform/qcom/venus/firmware.c
> > @@ -38,8 +38,8 @@ static void venus_reset_cpu(struct venus_core *core)
> >         writel(fw_size, wrapper_base + WRAPPER_FW_END_ADDR);
> >         writel(0, wrapper_base + WRAPPER_CPA_START_ADDR);
> >         writel(fw_size, wrapper_base + WRAPPER_CPA_END_ADDR);
> > -       writel(0, wrapper_base + WRAPPER_NONPIX_START_ADDR);
> > -       writel(0, wrapper_base + WRAPPER_NONPIX_END_ADDR);
> > +       writel(fw_size, wrapper_base + WRAPPER_NONPIX_START_ADDR);
> > +       writel(fw_size, wrapper_base + WRAPPER_NONPIX_END_ADDR);
> > 
> >         if (IS_V6(core)) {
> >                 /* Bring XTSS out of reset */
> > --
> > 2.39.1
> 
> Thanks,
> Vikash
Re: [PATCH] Revert "venus: firmware: Correct non-pix start and end addresses"
Posted by mka@chromium.org 2 years, 7 months ago
On Tue, Feb 07, 2023 at 05:50:19PM +0000, mka@chromium.org wrote:
> Hi Vikash,
> 
> On Tue, Feb 07, 2023 at 04:40:24PM +0000, Vikash Garodia wrote:
> > Hi Javier and Matthias,
> > Can we try the attached patch if that fixes the suspend issue for sc7180 and sc7280 ?
> 
> On my side the patch fixes the issue for sc7280, but not sc7180.

Some more info for sc7180:

[   10.313055] qcom-venus aa00000.video-codec: failed to reset venus core
[   10.331454] qcom-venus: probe of aa00000.video-codec failed with error -110

So venus didn't probe successfully. As a result sync_state() of its rpmhpd and
interconnects isn't called and they keep running at max speed, which prevents
the Always-On subsystem from suspending:

[   30.171148] qcom-rpmhpd 18200000.rsc:power-controller: Consumer 'aa00000.video-codec' did not probe (successfully)
[   30.682950] qnoc-sc7180 9680000.interconnect: Consumer 'aa00000.video-codec' did not probe (successfully)
[   30.701843] qnoc-sc7180 1740000.interconnect: Consumer 'aa00000.video-codec' did not probe (successfully)
[   30.720168] qnoc-sc7180 1638000.interconnect: Consumer 'aa00000.video-codec' did not probe (successfully)
[   30.738478] qnoc-sc7180 1500000.interconnect: Consumer 'aa00000.video-codec' did not probe (successfully)

(these debug logs are not upstream)

> > > -----Original Message-----
> > > From: Javier Martinez Canillas <javierm@redhat.com>
> > > Sent: Tuesday, February 7, 2023 3:53 PM
> > > To: linux-kernel@vger.kernel.org
> > > Cc: Albert Esteve <aesteve@redhat.com>; stanimir.varbanov@linaro.org;
> > > Matthias Kaehlcke <mka@chromium.org>; Enric Balletbo i Serra
> > > <eballetb@redhat.com>; Javier Martinez Canillas <javierm@redhat.com>; Andy
> > > Gross <agross@kernel.org>; Bjorn Andersson <andersson@kernel.org>; Konrad
> > > Dybcio <konrad.dybcio@linaro.org>; Mauro Carvalho Chehab
> > > <mchehab@kernel.org>; Stanimir Varbanov
> > > <stanimir.k.varbanov@gmail.com>; Vikash Garodia (QUIC)
> > > <quic_vgarodia@quicinc.com>; linux-arm-msm@vger.kernel.org; linux-
> > > media@vger.kernel.org
> > > Subject: [PATCH] Revert "venus: firmware: Correct non-pix start and end
> > > addresses"
> > > 
> > > WARNING: This email originated from outside of Qualcomm. Please be wary of
> > > any links or attachments, and do not enable macros.
> > > 
> > > This reverts commit a837e5161cfffbb3242cc0eb574f8bf65fd32640, which
> > > broke probing of the venus driver, at least on the SC7180 SoC HP X2
> > > Chromebook:
> > > 
> > >   [   11.455782] qcom-venus aa00000.video-codec: Adding to iommu group 11
> > >   [   11.506980] qcom-venus aa00000.video-codec: non legacy binding
> > >   [   12.143432] qcom-venus aa00000.video-codec: failed to reset venus core
> > >   [   12.156440] qcom-venus: probe of aa00000.video-codec failed with error -
> > > 110
> > > 
> > > Matthias Kaehlcke also reported that the same change caused a regression in
> > > SC7180 and sc7280, that prevents AOSS from entering sleep mode during
> > > system suspend. So let's revert this commit for now to fix both issues.
> > > 
> > > Fixes: a837e5161cff ("venus: firmware: Correct non-pix start and end
> > > addresses")
> > > Reported-by: Matthias Kaehlcke <mka@chromium.org>
> > > Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
> > > ---
> > > 
> > >  drivers/media/platform/qcom/venus/firmware.c | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/drivers/media/platform/qcom/venus/firmware.c
> > > b/drivers/media/platform/qcom/venus/firmware.c
> > > index 142d4c74017c..d59ecf776715 100644
> > > --- a/drivers/media/platform/qcom/venus/firmware.c
> > > +++ b/drivers/media/platform/qcom/venus/firmware.c
> > > @@ -38,8 +38,8 @@ static void venus_reset_cpu(struct venus_core *core)
> > >         writel(fw_size, wrapper_base + WRAPPER_FW_END_ADDR);
> > >         writel(0, wrapper_base + WRAPPER_CPA_START_ADDR);
> > >         writel(fw_size, wrapper_base + WRAPPER_CPA_END_ADDR);
> > > -       writel(0, wrapper_base + WRAPPER_NONPIX_START_ADDR);
> > > -       writel(0, wrapper_base + WRAPPER_NONPIX_END_ADDR);
> > > +       writel(fw_size, wrapper_base + WRAPPER_NONPIX_START_ADDR);
> > > +       writel(fw_size, wrapper_base + WRAPPER_NONPIX_END_ADDR);
> > > 
> > >         if (IS_V6(core)) {
> > >                 /* Bring XTSS out of reset */
> > > --
> > > 2.39.1
> > 
> > Thanks,
> > Vikash
> 
>