[PATCH v3 04/37] drm/nouveau: create pci device once

Zhi Wang zhiw at nvidia.com
Wed Jul 31 10:21:17 UTC 2024


On Fri, 26 Jul 2024 14:37:55 +1000
Ben Skeggs <bskeggs at nvidia.com> wrote:

> HW isn't touched anymore (aside from detection) until the first
> nvif_device has been allocated, so we no longer need a separate
> probe-only step before kicking efifb (etc) off the HW.
>

The patch LGTM. I am curious about what was the situation back to the
time when this probe-only step was required? Like there was a period
that nvkm_device_pci_new() would affect the HW states?
 
> Signed-off-by: Ben Skeggs <bskeggs at nvidia.com>
> ---
>  drivers/gpu/drm/nouveau/nouveau_drm.c | 11 ++---------
>  1 file changed, 2 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c
> b/drivers/gpu/drm/nouveau/nouveau_drm.c index
> 0687bc59d486..f372bf2954aa 100644 ---
> a/drivers/gpu/drm/nouveau/nouveau_drm.c +++
> b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -839,23 +839,16 @@ static
> int nouveau_drm_probe(struct pci_dev *pdev, /* We need to check that
> the chipset is supported before booting
>  	 * fbdev off the hardware, as there's no way to put it back.
>  	 */
> -	ret = nvkm_device_pci_new(pdev, nouveau_config, "error",
> -				  true, false, 0, &device);
> +	ret = nvkm_device_pci_new(pdev, nouveau_config,
> nouveau_debug,
> +				  true, true, ~0ULL, &device);
>  	if (ret)
>  		return ret;
>  
> -	nvkm_device_del(&device);
> -
>  	/* Remove conflicting drivers (vesafb, efifb etc). */
>  	ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev,
> &driver_pci); if (ret)
>  		return ret;
>  
> -	ret = nvkm_device_pci_new(pdev, nouveau_config,
> nouveau_debug,
> -				  true, true, ~0ULL, &device);
> -	if (ret)
> -		return ret;
> -
>  	pci_set_master(pdev);
>  
>  	if (nouveau_atomic)



More information about the Nouveau mailing list