Re: [PATCH] accel/ivpu: Remove D3hot delay for Meteorlake

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Mar 31, 2023 at 01:40:27PM +0200, Stanislaw Gruszka wrote:
> From: Karol Wachowski <karol.wachowski@xxxxxxxxxxxxxxx>
> 
> VPU on MTL has hardware optimizations and does not require 10ms
> D0 - D3hot transition delay imposed by PCI specification.

PCIe r6.0, sec 5.9.

> The delay removal is traditionally done by adding PCI ID to
> quirk_remove_dhot_delay() in drivers/pci/quirks.c . But since

quirk_remove_d3hot_delay()

> we do not need that optimization before driver probe and we
> can better specify in the ivpu driver on what (future) hardware
> use the optimization, we do not use quirk_remove_dhot_delay()

Again.

> for that.
> 
> Signed-off-by: Karol Wachowski <karol.wachowski@xxxxxxxxxxxxxxx>
> Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@xxxxxxxxxxxxxxx>
> ---
>  drivers/accel/ivpu/ivpu_drv.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/accel/ivpu/ivpu_drv.c b/drivers/accel/ivpu/ivpu_drv.c
> index 3be4a5a2b07a..cf9925c0a8ad 100644
> --- a/drivers/accel/ivpu/ivpu_drv.c
> +++ b/drivers/accel/ivpu/ivpu_drv.c
> @@ -442,6 +442,10 @@ static int ivpu_pci_init(struct ivpu_device *vdev)
>  	/* Clear any pending errors */
>  	pcie_capability_clear_word(pdev, PCI_EXP_DEVSTA, 0x3f);
>  
> +	/* VPU MTL does not require PCI spec 10m D3hot delay */
> +	if (ivpu_is_mtl(vdev))
> +		pdev->d3hot_delay = 0;

d3hot_delay is used after a D0->D3hot transition, after a D3hot->D0
transition, and after the D0->D3hot and D3hot->D0 transitions in
pci_pm_reset().

I assume this device can tolerate removing *all* of those delays,
right?

>  	ret = pcim_enable_device(pdev);
>  	if (ret) {
>  		ivpu_err(vdev, "Failed to enable PCI device: %d\n", ret);
> -- 
> 2.25.1
> 



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux