diff mbox series

PCI: tegra: Fix host initialization during resume

Message ID 20210504172157.29712-1-vidyas@nvidia.com (mailing list archive)
State Accepted
Delegated to: Lorenzo Pieralisi
Headers show
Series PCI: tegra: Fix host initialization during resume | expand

Commit Message

Vidya Sagar May 4, 2021, 5:21 p.m. UTC
Commit 275e88b06a27 ("PCI: tegra: Fix host link initialization") broke
host initialization during resume as it misses out calling the API
dw_pcie_setup_rc() which is required for host and MSI initialization.

Fixes: 275e88b06a27 ("PCI: tegra: Fix host link initialization")
Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
---
 drivers/pci/controller/dwc/pcie-tegra194.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Jon Hunter May 6, 2021, 8:49 a.m. UTC | #1
On 04/05/2021 18:21, Vidya Sagar wrote:
> Commit 275e88b06a27 ("PCI: tegra: Fix host link initialization") broke
> host initialization during resume as it misses out calling the API
> dw_pcie_setup_rc() which is required for host and MSI initialization.
> 
> Fixes: 275e88b06a27 ("PCI: tegra: Fix host link initialization")
> Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
> ---
>  drivers/pci/controller/dwc/pcie-tegra194.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
> index 6fa216e52d14..4c3c0738f2e6 100644
> --- a/drivers/pci/controller/dwc/pcie-tegra194.c
> +++ b/drivers/pci/controller/dwc/pcie-tegra194.c
> @@ -2214,6 +2214,8 @@ static int tegra_pcie_dw_resume_noirq(struct device *dev)
>  		goto fail_host_init;
>  	}
>  
> +	dw_pcie_setup_rc(&pcie->pci.pp);
> +
>  	ret = tegra_pcie_dw_start_link(&pcie->pci);
>  	if (ret < 0)
>  		goto fail_host_init;
> 


Thanks for fixing!

Tested-by: Jon Hunter <jonathanh@nvidia.com>

We should also mark this for stable so that this gets back-ported.

Jon
Jon Hunter May 17, 2021, 2:11 p.m. UTC | #2
Hi Lorenzo, Bjorn,

On 06/05/2021 09:49, Jon Hunter wrote:
> 
> On 04/05/2021 18:21, Vidya Sagar wrote:
>> Commit 275e88b06a27 ("PCI: tegra: Fix host link initialization") broke
>> host initialization during resume as it misses out calling the API
>> dw_pcie_setup_rc() which is required for host and MSI initialization.
>>
>> Fixes: 275e88b06a27 ("PCI: tegra: Fix host link initialization")
>> Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
>> ---
>>  drivers/pci/controller/dwc/pcie-tegra194.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
>> index 6fa216e52d14..4c3c0738f2e6 100644
>> --- a/drivers/pci/controller/dwc/pcie-tegra194.c
>> +++ b/drivers/pci/controller/dwc/pcie-tegra194.c
>> @@ -2214,6 +2214,8 @@ static int tegra_pcie_dw_resume_noirq(struct device *dev)
>>  		goto fail_host_init;
>>  	}
>>  
>> +	dw_pcie_setup_rc(&pcie->pci.pp);
>> +
>>  	ret = tegra_pcie_dw_start_link(&pcie->pci);
>>  	if (ret < 0)
>>  		goto fail_host_init;
>>
> 
> 
> Thanks for fixing!
> 
> Tested-by: Jon Hunter <jonathanh@nvidia.com>
> 
> We should also mark this for stable so that this gets back-ported.


Can we queue this as a fix for v5.13 and tag for stable?

Thanks!
Jon
Lorenzo Pieralisi May 17, 2021, 4:18 p.m. UTC | #3
On Mon, May 17, 2021 at 03:11:00PM +0100, Jon Hunter wrote:
> Hi Lorenzo, Bjorn,
> 
> On 06/05/2021 09:49, Jon Hunter wrote:
> > 
> > On 04/05/2021 18:21, Vidya Sagar wrote:
> >> Commit 275e88b06a27 ("PCI: tegra: Fix host link initialization") broke
> >> host initialization during resume as it misses out calling the API
> >> dw_pcie_setup_rc() which is required for host and MSI initialization.
> >>
> >> Fixes: 275e88b06a27 ("PCI: tegra: Fix host link initialization")
> >> Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
> >> ---
> >>  drivers/pci/controller/dwc/pcie-tegra194.c | 2 ++
> >>  1 file changed, 2 insertions(+)
> >>
> >> diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
> >> index 6fa216e52d14..4c3c0738f2e6 100644
> >> --- a/drivers/pci/controller/dwc/pcie-tegra194.c
> >> +++ b/drivers/pci/controller/dwc/pcie-tegra194.c
> >> @@ -2214,6 +2214,8 @@ static int tegra_pcie_dw_resume_noirq(struct device *dev)
> >>  		goto fail_host_init;
> >>  	}
> >>  
> >> +	dw_pcie_setup_rc(&pcie->pci.pp);
> >> +
> >>  	ret = tegra_pcie_dw_start_link(&pcie->pci);
> >>  	if (ret < 0)
> >>  		goto fail_host_init;
> >>
> > 
> > 
> > Thanks for fixing!
> > 
> > Tested-by: Jon Hunter <jonathanh@nvidia.com>
> > 
> > We should also mark this for stable so that this gets back-ported.
> 
> 
> Can we queue this as a fix for v5.13 and tag for stable?

We usually send fixes for -rc* when the patches they are fixing
were merged in the current cycle (ie merged for v5.13).

This is not the case so I shall send it for v5.14.

Lorenzo
Bjorn Helgaas May 17, 2021, 4:47 p.m. UTC | #4
On Mon, May 17, 2021 at 05:18:36PM +0100, Lorenzo Pieralisi wrote:
> On Mon, May 17, 2021 at 03:11:00PM +0100, Jon Hunter wrote:
> > Hi Lorenzo, Bjorn,
> > 
> > On 06/05/2021 09:49, Jon Hunter wrote:
> > > 
> > > On 04/05/2021 18:21, Vidya Sagar wrote:
> > >> Commit 275e88b06a27 ("PCI: tegra: Fix host link initialization") broke
> > >> host initialization during resume as it misses out calling the API
> > >> dw_pcie_setup_rc() which is required for host and MSI initialization.
> > >>
> > >> Fixes: 275e88b06a27 ("PCI: tegra: Fix host link initialization")
> > >> Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
> > >> ---
> > >>  drivers/pci/controller/dwc/pcie-tegra194.c | 2 ++
> > >>  1 file changed, 2 insertions(+)
> > >>
> > >> diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
> > >> index 6fa216e52d14..4c3c0738f2e6 100644
> > >> --- a/drivers/pci/controller/dwc/pcie-tegra194.c
> > >> +++ b/drivers/pci/controller/dwc/pcie-tegra194.c
> > >> @@ -2214,6 +2214,8 @@ static int tegra_pcie_dw_resume_noirq(struct device *dev)
> > >>  		goto fail_host_init;
> > >>  	}
> > >>  
> > >> +	dw_pcie_setup_rc(&pcie->pci.pp);
> > >> +
> > >>  	ret = tegra_pcie_dw_start_link(&pcie->pci);
> > >>  	if (ret < 0)
> > >>  		goto fail_host_init;
> > > 
> > > Thanks for fixing!
> > > 
> > > Tested-by: Jon Hunter <jonathanh@nvidia.com>
> > > 
> > > We should also mark this for stable so that this gets back-ported.
> > 
> > Can we queue this as a fix for v5.13 and tag for stable?
> 
> We usually send fixes for -rc* when the patches they are fixing
> were merged in the current cycle (ie merged for v5.13).

Looks like this has been broken since v5.11-rc1 (December 27, 2020),
when 275e88b06a27 was merged.  Probably would be worth an occasional
boot test to make sure things stay working.

> This is not the case so I shall send it for v5.14.
> 
> Lorenzo
Jon Hunter May 17, 2021, 5:41 p.m. UTC | #5
On 17/05/2021 17:47, Bjorn Helgaas wrote:
> On Mon, May 17, 2021 at 05:18:36PM +0100, Lorenzo Pieralisi wrote:
>> On Mon, May 17, 2021 at 03:11:00PM +0100, Jon Hunter wrote:
>>> Hi Lorenzo, Bjorn,
>>>
>>> On 06/05/2021 09:49, Jon Hunter wrote:
>>>>
>>>> On 04/05/2021 18:21, Vidya Sagar wrote:
>>>>> Commit 275e88b06a27 ("PCI: tegra: Fix host link initialization") broke
>>>>> host initialization during resume as it misses out calling the API
>>>>> dw_pcie_setup_rc() which is required for host and MSI initialization.
>>>>>
>>>>> Fixes: 275e88b06a27 ("PCI: tegra: Fix host link initialization")
>>>>> Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
>>>>> ---
>>>>>  drivers/pci/controller/dwc/pcie-tegra194.c | 2 ++
>>>>>  1 file changed, 2 insertions(+)
>>>>>
>>>>> diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
>>>>> index 6fa216e52d14..4c3c0738f2e6 100644
>>>>> --- a/drivers/pci/controller/dwc/pcie-tegra194.c
>>>>> +++ b/drivers/pci/controller/dwc/pcie-tegra194.c
>>>>> @@ -2214,6 +2214,8 @@ static int tegra_pcie_dw_resume_noirq(struct device *dev)
>>>>>  		goto fail_host_init;
>>>>>  	}
>>>>>  
>>>>> +	dw_pcie_setup_rc(&pcie->pci.pp);
>>>>> +
>>>>>  	ret = tegra_pcie_dw_start_link(&pcie->pci);
>>>>>  	if (ret < 0)
>>>>>  		goto fail_host_init;
>>>>
>>>> Thanks for fixing!
>>>>
>>>> Tested-by: Jon Hunter <jonathanh@nvidia.com>
>>>>
>>>> We should also mark this for stable so that this gets back-ported.
>>>
>>> Can we queue this as a fix for v5.13 and tag for stable?
>>
>> We usually send fixes for -rc* when the patches they are fixing
>> were merged in the current cycle (ie merged for v5.13).
> 
> Looks like this has been broken since v5.11-rc1 (December 27, 2020),
> when 275e88b06a27 was merged.  Probably would be worth an occasional
> boot test to make sure things stay working.


Yes exactly it has been broken for a while and unfortunately went unnoticed.

We do boot test -next, mainline and the various stable branches on our
Tegra boards daily. The boot test did not catch this, but there is a
error generated when resuming from suspend and I am working to ensure we
catch such errors when resuming from suspend.

Cheers
Jon
Lorenzo Pieralisi June 3, 2021, 2:21 p.m. UTC | #6
On Tue, 4 May 2021 22:51:57 +0530, Vidya Sagar wrote:
> Commit 275e88b06a27 ("PCI: tegra: Fix host link initialization") broke
> host initialization during resume as it misses out calling the API
> dw_pcie_setup_rc() which is required for host and MSI initialization.

Applied to pci/tegra, thanks!

[1/1] PCI: tegra: Fix host initialization during resume
      https://git.kernel.org/lpieralisi/pci/c/d0180ba464

Thanks,
Lorenzo
diff mbox series

Patch

diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
index 6fa216e52d14..4c3c0738f2e6 100644
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -2214,6 +2214,8 @@  static int tegra_pcie_dw_resume_noirq(struct device *dev)
 		goto fail_host_init;
 	}
 
+	dw_pcie_setup_rc(&pcie->pci.pp);
+
 	ret = tegra_pcie_dw_start_link(&pcie->pci);
 	if (ret < 0)
 		goto fail_host_init;