From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,1/2] dma-mapping: move dma configuration to bus infrastructure From: Christoph Hellwig Message-Id: <20180322081530.GA29444@lst.de> Date: Thu, 22 Mar 2018 09:15:30 +0100 To: Nipun Gupta Cc: robin.murphy@arm.com, hch@lst.de, linux@armlinux.org.uk, gregkh@linuxfoundation.org, m.szyprowski@samsung.com, bhelgaas@google.com, zajec5@gmail.com, andy.gross@linaro.org, david.brown@linaro.org, dan.j.williams@intel.com, vinod.koul@intel.com, thierry.reding@gmail.com, robh+dt@kernel.org, frowand.list@gmail.com, jarkko.sakkinen@linux.intel.com, rafael.j.wysocki@intel.com, dmitry.torokhov@gmail.com, johan@kernel.org, msuchanek@suse.de, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, linux-wireless@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org, dmaengine@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, bharat.bhushan@nxp.com, leoyang.li@nxp.com List-ID: PiArc3RhdGljIGludCBhbWJhX2RtYV9jb25maWd1cmUoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7 Cj4gKwlyZXR1cm4gZG1hX2NvbW1vbl9jb25maWd1cmUoZGV2KTsKPiArfQoKU28gaXQgdHVybnMg b3V0IHdlIG9ubHkgZW5kIHdpdGggdHdvIGNhbGxlcnMgb2YgZG1hX2NvbW1vbl9jb25maWd1cmUK YWZ0ZXIgdGhpcyBzZXJpZXMuICBCYXNlZCBvbnQgaGF0IEknbSB0ZW1wdGVkIHdpdGggdGhlIHN1 Z2dlc3Rpb24KZnJvbSBSb2JpbiB0byBqdXN0IGhhdmUgYW1iYSBjYWxsIHBsYXRmb3JtX2RtYV9j b25maWd1cmUsIGFuZCBtb3ZlCnRoZSBjb2RlIGZyb20gZG1hX2NvbW1vbl9jb25maWd1cmUgdG8g cGxhdGZvcm1fZG1hX2NvbmZpZ3VyZS4KCj4gK2ludCBkbWFfY29uZmlndXJlKHN0cnVjdCBkZXZp Y2UgKmRldikKPiArewo+ICsJaWYgKGRldi0+YnVzLT5kbWFfY29uZmlndXJlKQo+ICsJCXJldHVy biBkZXYtPmJ1cy0+ZG1hX2NvbmZpZ3VyZShkZXYpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4g IHZvaWQgZG1hX2RlY29uZmlndXJlKHN0cnVjdCBkZXZpY2UgKmRldikKCkFzIGdyZXAgcG9pbnRl ZCBvdXQgdGhpcyB3YW50cyBhIGJsYW5rIGxpbmUgYWZ0ZXIgdGhlIGZ1bmN0aW9uLCBhbmQgd2hp bGUKaW4gbml0cGlja2luZyBtb2RlIEknZCBzdWdnZXN0IHRvIHJlbW92ZSB0aGUgYmxhbmsgbGlu ZSBhYm92ZSB0aGUgcmV0dXJuCnN0YXRlbWVudCB3aGlsZSBhdCBpdC4KCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2hvc3QxeC9idXMuYyBiL2RyaXZlcnMvZ3B1L2hvc3QxeC9idXMuYwo+IGlu ZGV4IDg4YTM1NTguLmZhOTg5NmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvaG9zdDF4L2J1 cy5jCj4gKysrIGIvZHJpdmVycy9ncHUvaG9zdDF4L2J1cy5jCj4gQEAgLTMxNCw2ICszMTQsMTQg QEAgc3RhdGljIGludCBob3N0MXhfZGV2aWNlX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IGRldmljZV9kcml2ZXIgKmRydikKPiAgCXJldHVybiBzdHJjbXAoZGV2X25hbWUoZGV2KSwg ZHJ2LT5uYW1lKSA9PSAwOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IGhvc3QxeF9kbWFfY29uZmln dXJlKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsJaWYgKGRldi0+b2Zfbm9kZSkKPiArCQly ZXR1cm4gb2ZfZG1hX2NvbmZpZ3VyZShkZXYsIGRldi0+b2Zfbm9kZSk7Cj4gKwo+ICsJcmV0dXJu IDA7CgpTYW1lIGhlcmUuCgo+ICsgKi8KPiArc3RhdGljIGludCBwY2lfZG1hX2NvbmZpZ3VyZShz dHJ1Y3QgZGV2aWNlICpkZXYpCj4gK3sKPiArCXN0cnVjdCBkZXZpY2UgKmJyaWRnZTsKPiArCWVu dW0gZGV2X2RtYV9hdHRyIGF0dHI7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCj4gKwlicmlkZ2UgPSBw Y2lfZ2V0X2hvc3RfYnJpZGdlX2RldmljZSh0b19wY2lfZGV2KGRldikpOwo+ICsKPiArCWlmIChJ U19FTkFCTEVEKENPTkZJR19PRikgJiYgYnJpZGdlLT5wYXJlbnQgJiYKPiArCSAgICBicmlkZ2Ut PnBhcmVudC0+b2Zfbm9kZSkgewo+ICsJCXJldCA9IG9mX2RtYV9jb25maWd1cmUoZGV2LCBicmlk Z2UtPnBhcmVudC0+b2Zfbm9kZSk7Cj4gKwl9IGVsc2UgaWYgKGhhc19hY3BpX2NvbXBhbmlvbihi cmlkZ2UpKSB7Cj4gKwkJYXR0ciA9IGFjcGlfZ2V0X2RtYV9hdHRyKHRvX2FjcGlfZGV2aWNlX25v ZGUoYnJpZGdlLT5md25vZGUpKTsKPiArCQlpZiAoYXR0ciAhPSBERVZfRE1BX05PVF9TVVBQT1JU RUQpCj4gKwkJCXJldCA9IGFjcGlfZG1hX2NvbmZpZ3VyZShkZXYsIGF0dHIpOwo+ICsJfQoKVGhl IGF0dHIgZGVjbGFyYXRpb24gY2FuIGJlIG1vdmVkIGludG8gdGhlIGlubmVyIHNjb3BlIGhlcmUu Cgo+ICsJcGNpX3B1dF9ob3N0X2JyaWRnZV9kZXZpY2UoYnJpZGdlKTsKPiArCj4gKwlyZXR1cm4g cmV0OwoKRHJvcCB0aGUgYmxhbmsgbGluZSBhZnRlciB0aGUgcmV0dXJuLCBwbGVhc2UuCi0tLQpU byB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUg ZG1hZW5naW5lIiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2Vy bmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21h am9yZG9tby1pbmZvLmh0bWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: Re: [PATCH v2 1/2] dma-mapping: move dma configuration to bus infrastructure Date: Thu, 22 Mar 2018 09:15:30 +0100 Message-ID: <20180322081530.GA29444@lst.de> References: <1520868292-2479-1-git-send-email-nipun.gupta@nxp.com> <1521615323-4752-1-git-send-email-nipun.gupta@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1521615323-4752-1-git-send-email-nipun.gupta-3arQi8VN3Tc@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Nipun Gupta Cc: zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org, david.brown-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, hch-jcswGhMUV9g@public.gmane.org, vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, rafael.j.wysocki-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org, andy.gross-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, msuchanek-l3A5Bk7waGM@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, johan-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, linux-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org, dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, leoyang.li-3arQi8VN3Tc@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org > +static int amba_dma_configure(struct device *dev) > +{ > + return dma_common_configure(dev); > +} So it turns out we only end with two callers of dma_common_configure after this series. Based ont hat I'm tempted with the suggestion from Robin to just have amba call platform_dma_configure, and move the code from dma_common_configure to platform_dma_configure. > +int dma_configure(struct device *dev) > +{ > + if (dev->bus->dma_configure) > + return dev->bus->dma_configure(dev); > + > + return 0; > +} > void dma_deconfigure(struct device *dev) As grep pointed out this wants a blank line after the function, and while in nitpicking mode I'd suggest to remove the blank line above the return statement while at it. > diff --git a/drivers/gpu/host1x/bus.c b/drivers/gpu/host1x/bus.c > index 88a3558..fa9896d 100644 > --- a/drivers/gpu/host1x/bus.c > +++ b/drivers/gpu/host1x/bus.c > @@ -314,6 +314,14 @@ static int host1x_device_match(struct device *dev, struct device_driver *drv) > return strcmp(dev_name(dev), drv->name) == 0; > } > > +static int host1x_dma_configure(struct device *dev) > +{ > + if (dev->of_node) > + return of_dma_configure(dev, dev->of_node); > + > + return 0; Same here. > + */ > +static int pci_dma_configure(struct device *dev) > +{ > + struct device *bridge; > + enum dev_dma_attr attr; > + int ret = 0; > + > + bridge = pci_get_host_bridge_device(to_pci_dev(dev)); > + > + if (IS_ENABLED(CONFIG_OF) && bridge->parent && > + bridge->parent->of_node) { > + ret = of_dma_configure(dev, bridge->parent->of_node); > + } else if (has_acpi_companion(bridge)) { > + attr = acpi_get_dma_attr(to_acpi_device_node(bridge->fwnode)); > + if (attr != DEV_DMA_NOT_SUPPORTED) > + ret = acpi_dma_configure(dev, attr); > + } The attr declaration can be moved into the inner scope here. > + pci_put_host_bridge_device(bridge); > + > + return ret; Drop the blank line after the return, please. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from verein.lst.de ([213.95.11.211]:46071 "EHLO newverein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752476AbeCVIPd (ORCPT ); Thu, 22 Mar 2018 04:15:33 -0400 Date: Thu, 22 Mar 2018 09:15:30 +0100 From: Christoph Hellwig To: Nipun Gupta Cc: robin.murphy@arm.com, hch@lst.de, linux@armlinux.org.uk, gregkh@linuxfoundation.org, m.szyprowski@samsung.com, bhelgaas@google.com, zajec5@gmail.com, andy.gross@linaro.org, david.brown@linaro.org, dan.j.williams@intel.com, vinod.koul@intel.com, thierry.reding@gmail.com, robh+dt@kernel.org, frowand.list@gmail.com, jarkko.sakkinen@linux.intel.com, rafael.j.wysocki@intel.com, dmitry.torokhov@gmail.com, johan@kernel.org, msuchanek@suse.de, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, linux-wireless@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org, dmaengine@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, bharat.bhushan@nxp.com, leoyang.li@nxp.com Subject: Re: [PATCH v2 1/2] dma-mapping: move dma configuration to bus infrastructure Message-ID: <20180322081530.GA29444@lst.de> References: <1520868292-2479-1-git-send-email-nipun.gupta@nxp.com> <1521615323-4752-1-git-send-email-nipun.gupta@nxp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <1521615323-4752-1-git-send-email-nipun.gupta@nxp.com> Sender: linux-pci-owner@vger.kernel.org List-ID: > +static int amba_dma_configure(struct device *dev) > +{ > + return dma_common_configure(dev); > +} So it turns out we only end with two callers of dma_common_configure after this series. Based ont hat I'm tempted with the suggestion from Robin to just have amba call platform_dma_configure, and move the code from dma_common_configure to platform_dma_configure. > +int dma_configure(struct device *dev) > +{ > + if (dev->bus->dma_configure) > + return dev->bus->dma_configure(dev); > + > + return 0; > +} > void dma_deconfigure(struct device *dev) As grep pointed out this wants a blank line after the function, and while in nitpicking mode I'd suggest to remove the blank line above the return statement while at it. > diff --git a/drivers/gpu/host1x/bus.c b/drivers/gpu/host1x/bus.c > index 88a3558..fa9896d 100644 > --- a/drivers/gpu/host1x/bus.c > +++ b/drivers/gpu/host1x/bus.c > @@ -314,6 +314,14 @@ static int host1x_device_match(struct device *dev, struct device_driver *drv) > return strcmp(dev_name(dev), drv->name) == 0; > } > > +static int host1x_dma_configure(struct device *dev) > +{ > + if (dev->of_node) > + return of_dma_configure(dev, dev->of_node); > + > + return 0; Same here. > + */ > +static int pci_dma_configure(struct device *dev) > +{ > + struct device *bridge; > + enum dev_dma_attr attr; > + int ret = 0; > + > + bridge = pci_get_host_bridge_device(to_pci_dev(dev)); > + > + if (IS_ENABLED(CONFIG_OF) && bridge->parent && > + bridge->parent->of_node) { > + ret = of_dma_configure(dev, bridge->parent->of_node); > + } else if (has_acpi_companion(bridge)) { > + attr = acpi_get_dma_attr(to_acpi_device_node(bridge->fwnode)); > + if (attr != DEV_DMA_NOT_SUPPORTED) > + ret = acpi_dma_configure(dev, attr); > + } The attr declaration can be moved into the inner scope here. > + pci_put_host_bridge_device(bridge); > + > + return ret; Drop the blank line after the return, please.