From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [PATCH V3 09/29] drm/i915: deprecate pci_get_bus_and_slot() Date: Tue, 28 Nov 2017 17:30:51 +0200 Message-ID: <20171128153051.GU10981@intel.com> References: <1511801886-6753-1-git-send-email-okaya@codeaurora.org> <1511801886-6753-10-git-send-email-okaya@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1511801886-6753-10-git-send-email-okaya@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sinan Kaya Cc: David Airlie , linux-pci@vger.kernel.org, timur@codeaurora.org, Rodrigo Vivi , open list , "open list:DRM DRIVERS" , linux-arm-msm@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org List-Id: linux-arm-msm@vger.kernel.org T24gTW9uLCBOb3YgMjcsIDIwMTcgYXQgMTE6NTc6NDZBTSAtMDUwMCwgU2luYW4gS2F5YSB3cm90 ZToKPiBwY2lfZ2V0X2J1c19hbmRfc2xvdCgpIGlzIHJlc3RyaWN0aXZlIHN1Y2ggdGhhdCBpdCBh c3N1bWVzIGRvbWFpbj0wIGFzCj4gd2hlcmUgYSBQQ0kgZGV2aWNlIGlzIHByZXNlbnQuIFRoaXMg cmVzdHJpY3RzIHRoZSBkZXZpY2UgZHJpdmVycyB0byBiZQo+IHJldXNlZCBmb3Igb3RoZXIgZG9t YWluIG51bWJlcnMuCj4gCj4gR2V0dGluZyByZWFkeSB0byByZW1vdmUgcGNpX2dldF9idXNfYW5k X3Nsb3QoKSBmdW5jdGlvbiBpbiBmYXZvciBvZgo+IHBjaV9nZXRfZG9tYWluX2J1c19hbmRfc2xv dCgpLgo+IAo+IEV4dHJhY3QgdGhlIGRvbWFpbiBudW1iZXIgZnJvbSBkcm1fZGV2aWNlIGFuZCBw YXNzIGl0IGludG8KPiBwY2lfZ2V0X2RvbWFpbl9idXNfYW5kX3Nsb3QoKSBmdW5jdGlvbi4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBTaW5hbiBLYXlhIDxva2F5YUBjb2RlYXVyb3JhLm9yZz4KPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyB8IDUgKysrKy0KPiAgMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYwo+IGluZGV4IDlmNDVjZmUuLjVhOGNiNzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKPiBAQCAtNDE5LDcgKzQxOSwxMCBAQCBzdGF0aWMgaW50IGk5MTVfZ2V0cGFyYW0oc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCj4gIHN0YXRpYyBpbnQgaTkxNV9n ZXRfYnJpZGdlX2RldihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAt CWRldl9wcml2LT5icmlkZ2VfZGV2ID0gcGNpX2dldF9idXNfYW5kX3Nsb3QoMCwgUENJX0RFVkZO KDAsIDApKTsKPiArCWludCBkb21haW4gPSBwY2lfZG9tYWluX25yKGRldl9wcml2LT5kcm0ucGRl di0+YnVzKTsKPiArCj4gKwlkZXZfcHJpdi0+YnJpZGdlX2RldiA9Cj4gKwkJcGNpX2dldF9kb21h aW5fYnVzX2FuZF9zbG90KGRvbWFpbiwgMCwgUENJX0RFVkZOKDAsIDApKTsKCk1heWJlIGp1c3Qg cGNpX2dldF9zbG90KHBkZXYtPmJ1cywgUENJX0RFVkZOKDAsIDApKSA/CgpJIGd1ZXNzIGlmIHdl IHdhbnQgdG8gYmUgcGVkYW50aWMgd2UgY291bGQgZ28gZm9yOgoKYnVzID0gcGNpX2ZpbmRfaG9z dF9icmlkZ2UocGRldi0+YnVzKS0+YnVzOwpwY2lfZ2V0X3Nsb3QoYnVzLCBQQ0lfREVWRk4oMCwg MCkpCgpidXQgSSB0aGluayB0aGUgR1BVIHNob3VsZCBhbHdheXMgYmUgb24gdGhlIHJvb3QgYnVz LCBzbyB0aGUgc2ltcGxlcgpmb3JtIHNob3VsZCBiZSBmaW5lLgoKPiAgCWlmICghZGV2X3ByaXYt PmJyaWRnZV9kZXYpIHsKPiAgCQlEUk1fRVJST1IoImJyaWRnZSBkZXZpY2Ugbm90IGZvdW5kXG4i KTsKPiAgCQlyZXR1cm4gLTE7Cj4gLS0gCj4gMS45LjEKPiAKPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50 ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Return-Path: Date: Tue, 28 Nov 2017 17:30:51 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Sinan Kaya Subject: Re: [Intel-gfx] [PATCH V3 09/29] drm/i915: deprecate pci_get_bus_and_slot() Message-ID: <20171128153051.GU10981@intel.com> References: <1511801886-6753-1-git-send-email-okaya@codeaurora.org> <1511801886-6753-10-git-send-email-okaya@codeaurora.org> MIME-Version: 1.0 In-Reply-To: <1511801886-6753-10-git-send-email-okaya@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Airlie , linux-pci@vger.kernel.org, timur@codeaurora.org, Rodrigo Vivi , open list , "open list:DRM DRIVERS" , linux-arm-msm@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="iso-8859-1" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+bjorn=helgaas.com@lists.infradead.org List-ID: On Mon, Nov 27, 2017 at 11:57:46AM -0500, Sinan Kaya wrote: > pci_get_bus_and_slot() is restrictive such that it assumes domain=3D0 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(). > = > Extract the domain number from drm_device and pass it into > pci_get_domain_bus_and_slot() function. > = > Signed-off-by: Sinan Kaya > --- > drivers/gpu/drm/i915/i915_drv.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > = > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_= drv.c > index 9f45cfe..5a8cb79 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -419,7 +419,10 @@ static int i915_getparam(struct drm_device *dev, voi= d *data, > = > static int i915_get_bridge_dev(struct drm_i915_private *dev_priv) > { > - dev_priv->bridge_dev =3D pci_get_bus_and_slot(0, PCI_DEVFN(0, 0)); > + int domain =3D pci_domain_nr(dev_priv->drm.pdev->bus); > + > + dev_priv->bridge_dev =3D > + pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(0, 0)); Maybe just pci_get_slot(pdev->bus, PCI_DEVFN(0, 0)) ? I guess if we want to be pedantic we could go for: bus =3D pci_find_host_bridge(pdev->bus)->bus; pci_get_slot(bus, PCI_DEVFN(0, 0)) but I think the GPU should always be on the root bus, so the simpler form should be fine. > if (!dev_priv->bridge_dev) { > DRM_ERROR("bridge device not found\n"); > return -1; > -- = > 1.9.1 > = > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- = Ville Syrj=E4l=E4 Intel OTC _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com (Ville =?iso-8859-1?Q?Syrj=E4l=E4?=) Date: Tue, 28 Nov 2017 17:30:51 +0200 Subject: [Intel-gfx] [PATCH V3 09/29] drm/i915: deprecate pci_get_bus_and_slot() In-Reply-To: <1511801886-6753-10-git-send-email-okaya@codeaurora.org> References: <1511801886-6753-1-git-send-email-okaya@codeaurora.org> <1511801886-6753-10-git-send-email-okaya@codeaurora.org> Message-ID: <20171128153051.GU10981@intel.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Mon, Nov 27, 2017 at 11:57:46AM -0500, 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(). > > Extract the domain number from drm_device and pass it into > pci_get_domain_bus_and_slot() function. > > Signed-off-by: Sinan Kaya > --- > drivers/gpu/drm/i915/i915_drv.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index 9f45cfe..5a8cb79 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -419,7 +419,10 @@ static int i915_getparam(struct drm_device *dev, void *data, > > static int i915_get_bridge_dev(struct drm_i915_private *dev_priv) > { > - dev_priv->bridge_dev = pci_get_bus_and_slot(0, PCI_DEVFN(0, 0)); > + int domain = pci_domain_nr(dev_priv->drm.pdev->bus); > + > + dev_priv->bridge_dev = > + pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(0, 0)); Maybe just pci_get_slot(pdev->bus, PCI_DEVFN(0, 0)) ? I guess if we want to be pedantic we could go for: bus = pci_find_host_bridge(pdev->bus)->bus; pci_get_slot(bus, PCI_DEVFN(0, 0)) but I think the GPU should always be on the root bus, so the simpler form should be fine. > if (!dev_priv->bridge_dev) { > DRM_ERROR("bridge device not found\n"); > return -1; > -- > 1.9.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Ville Syrj?l? Intel OTC From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932078AbdK1Pa7 (ORCPT ); Tue, 28 Nov 2017 10:30:59 -0500 Received: from mga03.intel.com ([134.134.136.65]:44607 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753241AbdK1Pa5 (ORCPT ); Tue, 28 Nov 2017 10:30:57 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,468,1505804400"; d="scan'208";a="1249508742" Date: Tue, 28 Nov 2017 17:30:51 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Sinan Kaya Cc: linux-pci@vger.kernel.org, timur@codeaurora.org, David Airlie , linux-arm-msm@vger.kernel.org, intel-gfx@lists.freedesktop.org, open list , "open list:DRM DRIVERS" , Rodrigo Vivi , linux-arm-kernel@lists.infradead.org Subject: Re: [Intel-gfx] [PATCH V3 09/29] drm/i915: deprecate pci_get_bus_and_slot() Message-ID: <20171128153051.GU10981@intel.com> References: <1511801886-6753-1-git-send-email-okaya@codeaurora.org> <1511801886-6753-10-git-send-email-okaya@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1511801886-6753-10-git-send-email-okaya@codeaurora.org> User-Agent: Mutt/1.7.2 (2016-11-26) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 27, 2017 at 11:57:46AM -0500, 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(). > > Extract the domain number from drm_device and pass it into > pci_get_domain_bus_and_slot() function. > > Signed-off-by: Sinan Kaya > --- > drivers/gpu/drm/i915/i915_drv.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index 9f45cfe..5a8cb79 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -419,7 +419,10 @@ static int i915_getparam(struct drm_device *dev, void *data, > > static int i915_get_bridge_dev(struct drm_i915_private *dev_priv) > { > - dev_priv->bridge_dev = pci_get_bus_and_slot(0, PCI_DEVFN(0, 0)); > + int domain = pci_domain_nr(dev_priv->drm.pdev->bus); > + > + dev_priv->bridge_dev = > + pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(0, 0)); Maybe just pci_get_slot(pdev->bus, PCI_DEVFN(0, 0)) ? I guess if we want to be pedantic we could go for: bus = pci_find_host_bridge(pdev->bus)->bus; pci_get_slot(bus, PCI_DEVFN(0, 0)) but I think the GPU should always be on the root bus, so the simpler form should be fine. > if (!dev_priv->bridge_dev) { > DRM_ERROR("bridge device not found\n"); > return -1; > -- > 1.9.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Ville Syrjälä Intel OTC