All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sinan Kaya <okaya-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
To: linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	timur-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	David Airlie <airlied-cv59FeDIM0c@public.gmane.org>,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	open list <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"open list:DRM DRIVERS"
	<dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>,
	Ben Skeggs <bskeggs-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: Re: [PATCH V3 10/29] drm/nouveau: deprecate pci_get_bus_and_slot()
Date: Mon, 27 Nov 2017 13:52:23 -0500	[thread overview]
Message-ID: <665f33c6-fb2f-b505-fd19-5875eae8193a@codeaurora.org> (raw)
In-Reply-To: <1511801886-6753-11-git-send-email-okaya-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>

+nouveau@lists.freedesktop.org


On 11/27/2017 11:57 AM, Sinan Kaya wrote:
> pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as
> where a PCI device is present. This restricts the device drivers to be
> reused for other domain numbers.
> 
> Getting ready to remove pci_get_bus_and_slot() function in favor of
> pci_get_domain_bus_and_slot().
> 
> Replace pci_get_bus_and_slot() with pci_get_domain_bus_and_slot()
> and extract the domain number from
> 1. struct pci_dev
> 2. struct pci_dev through drm_device->pdev
> 3. struct pci_dev through fb->subdev->drm_device->pdev
> 
> Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
> ---
>  drivers/gpu/drm/nouveau/dispnv04/arb.c           |  4 +++-
>  drivers/gpu/drm/nouveau/dispnv04/hw.c            | 10 +++++++---
>  drivers/gpu/drm/nouveau/nouveau_drm.c            |  3 ++-
>  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c | 10 +++++++++-
>  4 files changed, 21 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/nouveau/dispnv04/arb.c b/drivers/gpu/drm/nouveau/dispnv04/arb.c
> index 90075b6..c79160c 100644
> --- a/drivers/gpu/drm/nouveau/dispnv04/arb.c
> +++ b/drivers/gpu/drm/nouveau/dispnv04/arb.c
> @@ -213,8 +213,10 @@ struct nv_sim_state {
>  	if ((dev->pdev->device & 0xffff) == 0x01a0 /*CHIPSET_NFORCE*/ ||
>  	    (dev->pdev->device & 0xffff) == 0x01f0 /*CHIPSET_NFORCE2*/) {
>  		uint32_t type;
> +		int domain = pci_domain_nr(dev->pdev->bus);
>  
> -		pci_read_config_dword(pci_get_bus_and_slot(0, 1), 0x7c, &type);
> +		pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 1),
> +				      0x7c, &type);
>  
>  		sim_data.memory_type = (type >> 12) & 1;
>  		sim_data.memory_width = 64;
> diff --git a/drivers/gpu/drm/nouveau/dispnv04/hw.c b/drivers/gpu/drm/nouveau/dispnv04/hw.c
> index b985990..0c9bdf0 100644
> --- a/drivers/gpu/drm/nouveau/dispnv04/hw.c
> +++ b/drivers/gpu/drm/nouveau/dispnv04/hw.c
> @@ -216,12 +216,15 @@
>  {
>  	struct nvkm_pll_vals pllvals;
>  	int ret;
> +	int domain;
> +
> +	domain = pci_domain_nr(dev->pdev->bus);
>  
>  	if (plltype == PLL_MEMORY &&
>  	    (dev->pdev->device & 0x0ff0) == CHIPSET_NFORCE) {
>  		uint32_t mpllP;
> -
> -		pci_read_config_dword(pci_get_bus_and_slot(0, 3), 0x6c, &mpllP);
> +		pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 3),
> +				      0x6c, &mpllP);
>  		mpllP = (mpllP >> 8) & 0xf;
>  		if (!mpllP)
>  			mpllP = 4;
> @@ -232,7 +235,8 @@
>  	    (dev->pdev->device & 0xff0) == CHIPSET_NFORCE2) {
>  		uint32_t clock;
>  
> -		pci_read_config_dword(pci_get_bus_and_slot(0, 5), 0x4c, &clock);
> +		pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 5),
> +				      0x4c, &clock);
>  		return clock / 1000;
>  	}
>  
> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
> index 595630d..0b6c639 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
> @@ -406,7 +406,8 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
>  	}
>  
>  	/* subfunction one is a hdmi audio device? */
> -	drm->hdmi_device = pci_get_bus_and_slot((unsigned int)pdev->bus->number,
> +	drm->hdmi_device = pci_get_domain_bus_and_slot(pci_domain_nr(pdev->bus),
> +						(unsigned int)pdev->bus->number,
>  						PCI_DEVFN(PCI_SLOT(pdev->devfn), 1));
>  
>  	if (!drm->hdmi_device) {
> diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
> index 3c6a871..8849b71 100644
> --- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
> +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
> @@ -28,8 +28,16 @@
>  {
>  	struct pci_dev *bridge;
>  	u32 mem, mib;
> +	int domain = 0;
> +	struct pci_dev *pdev = NULL;
>  
> -	bridge = pci_get_bus_and_slot(0, PCI_DEVFN(0, 1));
> +	if (dev_is_pci(fb->subdev.device->dev))
> +		pdev = to_pci_dev(fb->subdev.device->dev);
> +
> +	if (pdev)
> +		domain = pci_domain_nr(pdev->bus);
> +
> +	bridge = pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(0, 1));
>  	if (!bridge) {
>  		nvkm_error(&fb->subdev, "no bridge device\n");
>  		return -ENODEV;
> 


-- 
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

WARNING: multiple messages have this Message-ID (diff)
From: Sinan Kaya <okaya@codeaurora.org>
To: linux-pci@vger.kernel.org, timur@codeaurora.org
Cc: linux-arm-msm@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	intel-gfx@lists.freedesktop.org, Ben Skeggs <bskeggs@redhat.com>,
	David Airlie <airlied@linux.ie>,
	Ilia Mirkin <imirkin@alum.mit.edu>,
	"open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS" 
	<dri-devel@lists.freedesktop.org>,
	"open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS" 
	<nouveau@lists.freedesktop.org>,
	open list <linux-kernel@vger.kernel.org>,
	"open list:DRM DRIVERS" <dri-devel@lists.freedesktop.org>,
	nouveau@lists.freedesktop.org
Subject: Re: [PATCH V3 10/29] drm/nouveau: deprecate pci_get_bus_and_slot()
Date: Mon, 27 Nov 2017 13:52:23 -0500	[thread overview]
Message-ID: <665f33c6-fb2f-b505-fd19-5875eae8193a@codeaurora.org> (raw)
In-Reply-To: <1511801886-6753-11-git-send-email-okaya@codeaurora.org>

+nouveau@lists.freedesktop.org


On 11/27/2017 11:57 AM, Sinan Kaya wrote:
> pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as
> where a PCI device is present. This restricts the device drivers to be
> reused for other domain numbers.
> 
> Getting ready to remove pci_get_bus_and_slot() function in favor of
> pci_get_domain_bus_and_slot().
> 
> Replace pci_get_bus_and_slot() with pci_get_domain_bus_and_slot()
> and extract the domain number from
> 1. struct pci_dev
> 2. struct pci_dev through drm_device->pdev
> 3. struct pci_dev through fb->subdev->drm_device->pdev
> 
> Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
> ---
>  drivers/gpu/drm/nouveau/dispnv04/arb.c           |  4 +++-
>  drivers/gpu/drm/nouveau/dispnv04/hw.c            | 10 +++++++---
>  drivers/gpu/drm/nouveau/nouveau_drm.c            |  3 ++-
>  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c | 10 +++++++++-
>  4 files changed, 21 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/nouveau/dispnv04/arb.c b/drivers/gpu/drm/nouveau/dispnv04/arb.c
> index 90075b6..c79160c 100644
> --- a/drivers/gpu/drm/nouveau/dispnv04/arb.c
> +++ b/drivers/gpu/drm/nouveau/dispnv04/arb.c
> @@ -213,8 +213,10 @@ struct nv_sim_state {
>  	if ((dev->pdev->device & 0xffff) == 0x01a0 /*CHIPSET_NFORCE*/ ||
>  	    (dev->pdev->device & 0xffff) == 0x01f0 /*CHIPSET_NFORCE2*/) {
>  		uint32_t type;
> +		int domain = pci_domain_nr(dev->pdev->bus);
>  
> -		pci_read_config_dword(pci_get_bus_and_slot(0, 1), 0x7c, &type);
> +		pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 1),
> +				      0x7c, &type);
>  
>  		sim_data.memory_type = (type >> 12) & 1;
>  		sim_data.memory_width = 64;
> diff --git a/drivers/gpu/drm/nouveau/dispnv04/hw.c b/drivers/gpu/drm/nouveau/dispnv04/hw.c
> index b985990..0c9bdf0 100644
> --- a/drivers/gpu/drm/nouveau/dispnv04/hw.c
> +++ b/drivers/gpu/drm/nouveau/dispnv04/hw.c
> @@ -216,12 +216,15 @@
>  {
>  	struct nvkm_pll_vals pllvals;
>  	int ret;
> +	int domain;
> +
> +	domain = pci_domain_nr(dev->pdev->bus);
>  
>  	if (plltype == PLL_MEMORY &&
>  	    (dev->pdev->device & 0x0ff0) == CHIPSET_NFORCE) {
>  		uint32_t mpllP;
> -
> -		pci_read_config_dword(pci_get_bus_and_slot(0, 3), 0x6c, &mpllP);
> +		pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 3),
> +				      0x6c, &mpllP);
>  		mpllP = (mpllP >> 8) & 0xf;
>  		if (!mpllP)
>  			mpllP = 4;
> @@ -232,7 +235,8 @@
>  	    (dev->pdev->device & 0xff0) == CHIPSET_NFORCE2) {
>  		uint32_t clock;
>  
> -		pci_read_config_dword(pci_get_bus_and_slot(0, 5), 0x4c, &clock);
> +		pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 5),
> +				      0x4c, &clock);
>  		return clock / 1000;
>  	}
>  
> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
> index 595630d..0b6c639 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
> @@ -406,7 +406,8 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
>  	}
>  
>  	/* subfunction one is a hdmi audio device? */
> -	drm->hdmi_device = pci_get_bus_and_slot((unsigned int)pdev->bus->number,
> +	drm->hdmi_device = pci_get_domain_bus_and_slot(pci_domain_nr(pdev->bus),
> +						(unsigned int)pdev->bus->number,
>  						PCI_DEVFN(PCI_SLOT(pdev->devfn), 1));
>  
>  	if (!drm->hdmi_device) {
> diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
> index 3c6a871..8849b71 100644
> --- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
> +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
> @@ -28,8 +28,16 @@
>  {
>  	struct pci_dev *bridge;
>  	u32 mem, mib;
> +	int domain = 0;
> +	struct pci_dev *pdev = NULL;
>  
> -	bridge = pci_get_bus_and_slot(0, PCI_DEVFN(0, 1));
> +	if (dev_is_pci(fb->subdev.device->dev))
> +		pdev = to_pci_dev(fb->subdev.device->dev);
> +
> +	if (pdev)
> +		domain = pci_domain_nr(pdev->bus);
> +
> +	bridge = pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(0, 1));
>  	if (!bridge) {
>  		nvkm_error(&fb->subdev, "no bridge device\n");
>  		return -ENODEV;
> 


-- 
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.

WARNING: multiple messages have this Message-ID (diff)
From: Sinan Kaya <okaya@codeaurora.org>
To: linux-pci@vger.kernel.org, timur@codeaurora.org
Cc: linux-arm-kernel@lists.infradead.org,
	David Airlie <airlied@linux.ie>,
	linux-arm-msm@vger.kernel.org, intel-gfx@lists.freedesktop.org,
	open list <linux-kernel@vger.kernel.org>,
	"open list:DRM DRIVERS" <dri-devel@lists.freedesktop.org>,
	Ben Skeggs <bskeggs@redhat.com>,
	nouveau@lists.freedesktop.org, Ilia Mirkin <imirkin@alum.mit.edu>
Subject: Re: [PATCH V3 10/29] drm/nouveau: deprecate pci_get_bus_and_slot()
Date: Mon, 27 Nov 2017 13:52:23 -0500	[thread overview]
Message-ID: <665f33c6-fb2f-b505-fd19-5875eae8193a@codeaurora.org> (raw)
In-Reply-To: <1511801886-6753-11-git-send-email-okaya@codeaurora.org>

+nouveau@lists.freedesktop.org


On 11/27/2017 11:57 AM, Sinan Kaya wrote:
> pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as
> where a PCI device is present. This restricts the device drivers to be
> reused for other domain numbers.
> 
> Getting ready to remove pci_get_bus_and_slot() function in favor of
> pci_get_domain_bus_and_slot().
> 
> Replace pci_get_bus_and_slot() with pci_get_domain_bus_and_slot()
> and extract the domain number from
> 1. struct pci_dev
> 2. struct pci_dev through drm_device->pdev
> 3. struct pci_dev through fb->subdev->drm_device->pdev
> 
> Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
> ---
>  drivers/gpu/drm/nouveau/dispnv04/arb.c           |  4 +++-
>  drivers/gpu/drm/nouveau/dispnv04/hw.c            | 10 +++++++---
>  drivers/gpu/drm/nouveau/nouveau_drm.c            |  3 ++-
>  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c | 10 +++++++++-
>  4 files changed, 21 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/nouveau/dispnv04/arb.c b/drivers/gpu/drm/nouveau/dispnv04/arb.c
> index 90075b6..c79160c 100644
> --- a/drivers/gpu/drm/nouveau/dispnv04/arb.c
> +++ b/drivers/gpu/drm/nouveau/dispnv04/arb.c
> @@ -213,8 +213,10 @@ struct nv_sim_state {
>  	if ((dev->pdev->device & 0xffff) == 0x01a0 /*CHIPSET_NFORCE*/ ||
>  	    (dev->pdev->device & 0xffff) == 0x01f0 /*CHIPSET_NFORCE2*/) {
>  		uint32_t type;
> +		int domain = pci_domain_nr(dev->pdev->bus);
>  
> -		pci_read_config_dword(pci_get_bus_and_slot(0, 1), 0x7c, &type);
> +		pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 1),
> +				      0x7c, &type);
>  
>  		sim_data.memory_type = (type >> 12) & 1;
>  		sim_data.memory_width = 64;
> diff --git a/drivers/gpu/drm/nouveau/dispnv04/hw.c b/drivers/gpu/drm/nouveau/dispnv04/hw.c
> index b985990..0c9bdf0 100644
> --- a/drivers/gpu/drm/nouveau/dispnv04/hw.c
> +++ b/drivers/gpu/drm/nouveau/dispnv04/hw.c
> @@ -216,12 +216,15 @@
>  {
>  	struct nvkm_pll_vals pllvals;
>  	int ret;
> +	int domain;
> +
> +	domain = pci_domain_nr(dev->pdev->bus);
>  
>  	if (plltype == PLL_MEMORY &&
>  	    (dev->pdev->device & 0x0ff0) == CHIPSET_NFORCE) {
>  		uint32_t mpllP;
> -
> -		pci_read_config_dword(pci_get_bus_and_slot(0, 3), 0x6c, &mpllP);
> +		pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 3),
> +				      0x6c, &mpllP);
>  		mpllP = (mpllP >> 8) & 0xf;
>  		if (!mpllP)
>  			mpllP = 4;
> @@ -232,7 +235,8 @@
>  	    (dev->pdev->device & 0xff0) == CHIPSET_NFORCE2) {
>  		uint32_t clock;
>  
> -		pci_read_config_dword(pci_get_bus_and_slot(0, 5), 0x4c, &clock);
> +		pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 5),
> +				      0x4c, &clock);
>  		return clock / 1000;
>  	}
>  
> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
> index 595630d..0b6c639 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
> @@ -406,7 +406,8 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
>  	}
>  
>  	/* subfunction one is a hdmi audio device? */
> -	drm->hdmi_device = pci_get_bus_and_slot((unsigned int)pdev->bus->number,
> +	drm->hdmi_device = pci_get_domain_bus_and_slot(pci_domain_nr(pdev->bus),
> +						(unsigned int)pdev->bus->number,
>  						PCI_DEVFN(PCI_SLOT(pdev->devfn), 1));
>  
>  	if (!drm->hdmi_device) {
> diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
> index 3c6a871..8849b71 100644
> --- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
> +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
> @@ -28,8 +28,16 @@
>  {
>  	struct pci_dev *bridge;
>  	u32 mem, mib;
> +	int domain = 0;
> +	struct pci_dev *pdev = NULL;
>  
> -	bridge = pci_get_bus_and_slot(0, PCI_DEVFN(0, 1));
> +	if (dev_is_pci(fb->subdev.device->dev))
> +		pdev = to_pci_dev(fb->subdev.device->dev);
> +
> +	if (pdev)
> +		domain = pci_domain_nr(pdev->bus);
> +
> +	bridge = pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(0, 1));
>  	if (!bridge) {
>  		nvkm_error(&fb->subdev, "no bridge device\n");
>  		return -ENODEV;
> 


-- 
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: okaya@codeaurora.org (Sinan Kaya)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V3 10/29] drm/nouveau: deprecate pci_get_bus_and_slot()
Date: Mon, 27 Nov 2017 13:52:23 -0500	[thread overview]
Message-ID: <665f33c6-fb2f-b505-fd19-5875eae8193a@codeaurora.org> (raw)
In-Reply-To: <1511801886-6753-11-git-send-email-okaya@codeaurora.org>

+nouveau at lists.freedesktop.org


On 11/27/2017 11:57 AM, Sinan Kaya wrote:
> pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as
> where a PCI device is present. This restricts the device drivers to be
> reused for other domain numbers.
> 
> Getting ready to remove pci_get_bus_and_slot() function in favor of
> pci_get_domain_bus_and_slot().
> 
> Replace pci_get_bus_and_slot() with pci_get_domain_bus_and_slot()
> and extract the domain number from
> 1. struct pci_dev
> 2. struct pci_dev through drm_device->pdev
> 3. struct pci_dev through fb->subdev->drm_device->pdev
> 
> Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
> ---
>  drivers/gpu/drm/nouveau/dispnv04/arb.c           |  4 +++-
>  drivers/gpu/drm/nouveau/dispnv04/hw.c            | 10 +++++++---
>  drivers/gpu/drm/nouveau/nouveau_drm.c            |  3 ++-
>  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c | 10 +++++++++-
>  4 files changed, 21 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/nouveau/dispnv04/arb.c b/drivers/gpu/drm/nouveau/dispnv04/arb.c
> index 90075b6..c79160c 100644
> --- a/drivers/gpu/drm/nouveau/dispnv04/arb.c
> +++ b/drivers/gpu/drm/nouveau/dispnv04/arb.c
> @@ -213,8 +213,10 @@ struct nv_sim_state {
>  	if ((dev->pdev->device & 0xffff) == 0x01a0 /*CHIPSET_NFORCE*/ ||
>  	    (dev->pdev->device & 0xffff) == 0x01f0 /*CHIPSET_NFORCE2*/) {
>  		uint32_t type;
> +		int domain = pci_domain_nr(dev->pdev->bus);
>  
> -		pci_read_config_dword(pci_get_bus_and_slot(0, 1), 0x7c, &type);
> +		pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 1),
> +				      0x7c, &type);
>  
>  		sim_data.memory_type = (type >> 12) & 1;
>  		sim_data.memory_width = 64;
> diff --git a/drivers/gpu/drm/nouveau/dispnv04/hw.c b/drivers/gpu/drm/nouveau/dispnv04/hw.c
> index b985990..0c9bdf0 100644
> --- a/drivers/gpu/drm/nouveau/dispnv04/hw.c
> +++ b/drivers/gpu/drm/nouveau/dispnv04/hw.c
> @@ -216,12 +216,15 @@
>  {
>  	struct nvkm_pll_vals pllvals;
>  	int ret;
> +	int domain;
> +
> +	domain = pci_domain_nr(dev->pdev->bus);
>  
>  	if (plltype == PLL_MEMORY &&
>  	    (dev->pdev->device & 0x0ff0) == CHIPSET_NFORCE) {
>  		uint32_t mpllP;
> -
> -		pci_read_config_dword(pci_get_bus_and_slot(0, 3), 0x6c, &mpllP);
> +		pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 3),
> +				      0x6c, &mpllP);
>  		mpllP = (mpllP >> 8) & 0xf;
>  		if (!mpllP)
>  			mpllP = 4;
> @@ -232,7 +235,8 @@
>  	    (dev->pdev->device & 0xff0) == CHIPSET_NFORCE2) {
>  		uint32_t clock;
>  
> -		pci_read_config_dword(pci_get_bus_and_slot(0, 5), 0x4c, &clock);
> +		pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 5),
> +				      0x4c, &clock);
>  		return clock / 1000;
>  	}
>  
> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
> index 595630d..0b6c639 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
> @@ -406,7 +406,8 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
>  	}
>  
>  	/* subfunction one is a hdmi audio device? */
> -	drm->hdmi_device = pci_get_bus_and_slot((unsigned int)pdev->bus->number,
> +	drm->hdmi_device = pci_get_domain_bus_and_slot(pci_domain_nr(pdev->bus),
> +						(unsigned int)pdev->bus->number,
>  						PCI_DEVFN(PCI_SLOT(pdev->devfn), 1));
>  
>  	if (!drm->hdmi_device) {
> diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
> index 3c6a871..8849b71 100644
> --- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
> +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
> @@ -28,8 +28,16 @@
>  {
>  	struct pci_dev *bridge;
>  	u32 mem, mib;
> +	int domain = 0;
> +	struct pci_dev *pdev = NULL;
>  
> -	bridge = pci_get_bus_and_slot(0, PCI_DEVFN(0, 1));
> +	if (dev_is_pci(fb->subdev.device->dev))
> +		pdev = to_pci_dev(fb->subdev.device->dev);
> +
> +	if (pdev)
> +		domain = pci_domain_nr(pdev->bus);
> +
> +	bridge = pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(0, 1));
>  	if (!bridge) {
>  		nvkm_error(&fb->subdev, "no bridge device\n");
>  		return -ENODEV;
> 


-- 
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.

  parent reply	other threads:[~2017-11-27 18:52 UTC|newest]

Thread overview: 172+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-27 16:57 [PATCH V3 00/29] PCI: deprecate pci_get_bus_and_slot() Sinan Kaya
2017-11-27 16:57 ` Sinan Kaya
2017-11-27 16:57 ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 01/29] alpha/PCI: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 02/29] powerpc/PCI: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 03/29] x86/PCI: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-28 13:45   ` Thomas Gleixner
2017-11-28 13:45     ` Thomas Gleixner
2017-11-28 13:45     ` Thomas Gleixner
2017-11-28 13:45     ` Thomas Gleixner
2017-11-27 16:57 ` [PATCH V3 04/29] ata: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 19:50   ` Tejun Heo
2017-11-27 19:50     ` Tejun Heo
2017-11-27 19:50     ` Tejun Heo
2017-11-27 19:50     ` Tejun Heo
2017-11-27 16:57 ` [PATCH V3 05/29] agp: nvidia: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 06/29] edd: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 07/29] ibft: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 08/29] drm/gma500: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 18:49   ` Sinan Kaya
2017-11-27 18:49     ` Sinan Kaya
2017-11-27 18:49     ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 09/29] drm/i915: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 18:50   ` Sinan Kaya
2017-11-27 18:50     ` Sinan Kaya
2017-11-27 18:50     ` Sinan Kaya
2017-12-12 14:04     ` Joonas Lahtinen
2017-12-12 14:04       ` Joonas Lahtinen
2017-12-12 14:04       ` Joonas Lahtinen
2017-12-12 14:04       ` Joonas Lahtinen
2017-12-13  0:07       ` Sinan Kaya
2017-12-13  0:07         ` Sinan Kaya
2017-12-13  0:07         ` Sinan Kaya
2017-12-13  8:01         ` Joonas Lahtinen
2017-12-13  8:01           ` Joonas Lahtinen
2017-12-13  8:01           ` Joonas Lahtinen
2017-12-13  8:01           ` Joonas Lahtinen
2017-11-28 15:30   ` [Intel-gfx] " Ville Syrjälä
2017-11-28 15:30     ` Ville Syrjälä
2017-11-28 15:30     ` Ville Syrjälä
2017-11-28 15:30     ` Ville Syrjälä
2017-11-28 16:29     ` Sinan Kaya
2017-11-28 16:29       ` Sinan Kaya
2017-11-28 16:29       ` Sinan Kaya
2017-12-03 19:29       ` Sinan Kaya
2017-12-03 19:29         ` Sinan Kaya
2017-12-03 19:29         ` Sinan Kaya
2018-02-16 14:54   ` Bjorn Helgaas
2018-02-16 14:54     ` Bjorn Helgaas
2018-02-16 14:54     ` Bjorn Helgaas
2018-02-19  9:34     ` Jani Nikula
2018-02-19  9:34       ` Jani Nikula
2018-02-19  9:34       ` Jani Nikula
2018-02-19  9:47       ` Joonas Lahtinen
2018-02-19  9:47         ` Joonas Lahtinen
2018-02-19  9:47         ` Joonas Lahtinen
2018-02-19  9:47         ` Joonas Lahtinen
2017-11-27 16:57 ` [PATCH V3 10/29] drm/nouveau: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
     [not found]   ` <1511801886-6753-11-git-send-email-okaya-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-11-27 18:52     ` Sinan Kaya [this message]
2017-11-27 18:52       ` Sinan Kaya
2017-11-27 18:52       ` Sinan Kaya
2017-11-27 18:52       ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 11/29] Drivers: ide: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 12/29] iommu/amd: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 13/29] powerpc/powermac: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 14/29] bnx2x: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 15/29] pch_gbe: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 16/29] PCI: cpqhp: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 17/29] PCI: ibmphp: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 18/29] PCI/quirks: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 19/29] PCI/syscall: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 20/29] xen: " Sinan Kaya
2017-11-27 16:57 ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 21/29] openprom: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57 ` [PATCH V3 22/29] [media] atomisp: " Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-27 16:57   ` Sinan Kaya
2017-11-29  8:36   ` Sakari Ailus
2017-11-29  8:36     ` Sakari Ailus
2017-11-29  8:36     ` Sakari Ailus
2017-11-29  8:36     ` Sakari Ailus
2017-11-29  8:36     ` Sakari Ailus
2017-11-27 16:58 ` [PATCH V3 23/29] staging: rts5208: remove rtsx_read_pci_cfg_byte() Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58 ` [PATCH V3 24/29] backlight: deprecate pci_get_bus_and_slot() Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 19:46   ` Jingoo Han
2017-11-27 19:46     ` Jingoo Han
2017-11-27 19:46     ` Jingoo Han
2017-11-27 19:46     ` Jingoo Han
2017-11-27 19:46     ` Jingoo Han
2017-11-28  8:13     ` Lee Jones
2017-11-28  8:13       ` Lee Jones
2017-11-28  8:13       ` Lee Jones
2017-11-28  8:13       ` Lee Jones
2017-11-27 16:58 ` [PATCH V3 25/29] video: fbdev: intelfb: " Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58 ` [PATCH V3 26/29] video: fbdev: nvidia: " Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58 ` [PATCH V3 27/29] video: fbdev: riva: " Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58 ` [PATCH V3 28/29] i7300_idle: remove unused file Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58 ` [PATCH V3 29/29] PCI: remove pci_get_bus_and_slot() function Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-27 16:58   ` Sinan Kaya
2017-11-29 17:09 ` [PATCH V3 00/29] PCI: deprecate pci_get_bus_and_slot() Bjorn Helgaas
2017-11-29 17:09   ` Bjorn Helgaas
2017-11-29 17:09   ` Bjorn Helgaas
2017-12-01  2:15   ` Sinan Kaya
2017-12-01  2:15     ` Sinan Kaya

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=665f33c6-fb2f-b505-fd19-5875eae8193a@codeaurora.org \
    --to=okaya-sgv2jx0feol9jmxxk+q4oq@public.gmane.org \
    --cc=airlied-cv59FeDIM0c@public.gmane.org \
    --cc=bskeggs-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=timur-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.