All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Gabriele Paoloni <gabriele.paoloni@huawei.com>
To: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: "arnd@arndb.de" <arnd@arndb.de>,
	Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>,
	"Wangzhou (B)" <wangzhou1@hisilicon.com>,
	"bhelgaas@google.com" <bhelgaas@google.com>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	James Morse <James.Morse@arm.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Yuanzhichang <yuanzhichang@hisilicon.com>,
	Zhudacai <zhudacai@hisilicon.com>,
	zhangjukuo <zhangjukuo@huawei.com>,
	qiuzhenfa <qiuzhenfa@hisilicon.com>,
	"Liguozhu (Kenneth)" <liguozhu@hisilicon.com>
Subject: RE: [PATCH v2]   PCI: Store PCIe bus address in struct of_pci_range
Date: Wed, 22 Jul 2015 11:11:19 +0000	[thread overview]
Message-ID: <EE11001F9E5DDD47B7634E2F8A612F2E01D66544@lhreml503-mbx> (raw)
In-Reply-To: <20150722104619.GE14923@e106497-lin.cambridge.arm.com>

Many Thanks Liviu

I am going to send out v3 base on your suggestions

> -----Original Message-----
> From: linux-pci-owner@vger.kernel.org [mailto:linux-pci-
> owner@vger.kernel.org] On Behalf Of Liviu Dudau
> Sent: Wednesday, July 22, 2015 11:46 AM
> To: Gabriele Paoloni
> Cc: arnd@arndb.de; Lorenzo Pieralisi; Wangzhou (B); bhelgaas@google.com;
> robh+dt@kernel.org; James Morse; linux-pci@vger.kernel.org; linux-arm-
> kernel@lists.infradead.org; devicetree@vger.kernel.org; Yuanzhichang;
> Zhudacai; zhangjukuo; qiuzhenfa; Liguozhu (Kenneth)
> Subject: Re: [PATCH v2] PCI: Store PCIe bus address in struct
> of_pci_range
> 
> Hi Gabriele,
> 
> On Tue, Jul 14, 2015 at 11:46:39AM +0100, Gabriele Paoloni wrote:
> > From: gabriele paoloni <gabriele.paoloni@huawei.com>
> >
> >     This patch is needed port PCIe designware to new DT parsing API
> >     As discussed in
> >     http://lists.infradead.org/pipermail/linux-arm-kernel/2015-
> January/317743.html
> >     in designware we have a problem as the PCI addresses in the PCIe
> controller
> >     address space are required in order to perform correct HW
> operation.
> >
> >     In order to solve this problem commit
> >     f4c55c5a3 "PCI: designware: Program ATU with untranslated
> address"
> >     added code to read the PCIe controller start address directly
> from the
> >     DT ranges.
> >
> >     In the new DT parsing API of_pci_get_host_bridge_resources()
> hides the
> >     DT parser from the host controller drivers, so it is not possible
> >     for drivers to parse values directly from the DT.
> >
> >     In http://www.spinics.net/lists/linux-pci/msg42540.html we
> already tried
> >     to use the new DT parsing API but there is a bug (obviously) in
> setting
> >     the <*>_mod_base addresses
> >     Applying this patch we can easily set "<*>_mod_base = win-
> >__res.start"
> >
> >     This patch adds a new field in "struct of_pci_range" to store the
> >     pci bus start address; it fills the field in
> of_pci_range_parser_one();
> >     in of_pci_get_host_bridge_resources() it retrieves the resource
> entry
> >     after it is created and added to the resource list and uses
> >     entry->__res.start to store the pci controller address
> >
> >     the patch is based on 4.2-rc1
> >
> >     Signed-off-by: Gabriele Paoloni <gabriele.paoloni@huawei.com>
> > ---
> >  drivers/of/address.c       | 2 ++
> >  drivers/of/of_pci.c        | 4 ++++
> >  include/linux/of_address.h | 1 +
> >  3 files changed, 7 insertions(+)
> >
> > diff --git a/drivers/of/address.c b/drivers/of/address.c
> > index 8bfda6a..23a5793 100644
> > --- a/drivers/of/address.c
> > +++ b/drivers/of/address.c
> > @@ -253,6 +253,7 @@ struct of_pci_range
> *of_pci_range_parser_one(struct of_pci_range_parser *parser,
> >  						struct of_pci_range *range)
> >  {
> >  	const int na = 3, ns = 2;
> > +	const int p_ns = of_n_size_cells(parser->node);
> >
> >  	if (!range)
> >  		return NULL;
> > @@ -265,6 +266,7 @@ struct of_pci_range
> *of_pci_range_parser_one(struct of_pci_range_parser *parser,
> >  	range->pci_addr = of_read_number(parser->range + 1, ns);
> >  	range->cpu_addr = of_translate_address(parser->node,
> >  				parser->range + na);
> > +	range->bus_addr = of_read_number(parser->range + na, p_ns);
> >  	range->size = of_read_number(parser->range + parser->pna + na,
> ns);
> >
> >  	parser->range += parser->np;
> > diff --git a/drivers/of/of_pci.c b/drivers/of/of_pci.c
> > index 5751dc5..b171d02 100644
> > --- a/drivers/of/of_pci.c
> > +++ b/drivers/of/of_pci.c
> > @@ -198,6 +198,7 @@ int of_pci_get_host_bridge_resources(struct
> device_node *dev,
> >
> >  	pr_debug("Parsing ranges property...\n");
> >  	for_each_of_pci_range(&parser, &range) {
> > +		struct resource_entry *entry;
> >  		/* Read next ranges element */
> >  		if ((range.flags & IORESOURCE_TYPE_BITS) == IORESOURCE_IO)
> >  			snprintf(range_type, 4, " IO");
> > @@ -240,6 +241,9 @@ int of_pci_get_host_bridge_resources(struct
> device_node *dev,
> >  		}
> >
> >  		pci_add_resource_offset(resources, res,	res->start -
> range.pci_addr);
> > +		entry = list_last_entry(resources, struct resource_entry,
> node);
> > +		/*we are using __res for storing the PCI controller
> address*/
> 
> Minor nit, please add spaces around the beginning and end of comment
> markers.

Sure no probs.

> 
> > +		entry->__res.start = range.bus_addr;
> >  	}
> >
> >  	return 0;
> > diff --git a/include/linux/of_address.h b/include/linux/of_address.h
> > index d88e81b..865f96e 100644
> > --- a/include/linux/of_address.h
> > +++ b/include/linux/of_address.h
> > @@ -16,6 +16,7 @@ struct of_pci_range {
> >  	u32 pci_space;
> >  	u64 pci_addr;
> >  	u64 cpu_addr;
> > +	u64 bus_addr;
> >  	u64 size;
> >  	u32 flags;
> >  };
> > --
> > 1.9.1
> >
> 
> This touches code I have previously added, so I guess you need:
> 
> Acked-by: Liviu Dudau <Liviu.Dudau@arm.com>

Sure I will add it.

> 
> Best regards,
> Liviu
> 
> --
> ====================
> | I would like to |
> | fix the world,  |
> | but they're not |
> | giving me the   |
>  \ source code!  /
>   ---------------
>     ¯\_(ツ)_/¯
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: gabriele.paoloni@huawei.com (Gabriele Paoloni)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2]   PCI: Store PCIe bus address in struct of_pci_range
Date: Wed, 22 Jul 2015 11:11:19 +0000	[thread overview]
Message-ID: <EE11001F9E5DDD47B7634E2F8A612F2E01D66544@lhreml503-mbx> (raw)
In-Reply-To: <20150722104619.GE14923@e106497-lin.cambridge.arm.com>

Many Thanks Liviu

I am going to send out v3 base on your suggestions

> -----Original Message-----
> From: linux-pci-owner at vger.kernel.org [mailto:linux-pci-
> owner at vger.kernel.org] On Behalf Of Liviu Dudau
> Sent: Wednesday, July 22, 2015 11:46 AM
> To: Gabriele Paoloni
> Cc: arnd at arndb.de; Lorenzo Pieralisi; Wangzhou (B); bhelgaas at google.com;
> robh+dt at kernel.org; James Morse; linux-pci at vger.kernel.org; linux-arm-
> kernel at lists.infradead.org; devicetree at vger.kernel.org; Yuanzhichang;
> Zhudacai; zhangjukuo; qiuzhenfa; Liguozhu (Kenneth)
> Subject: Re: [PATCH v2] PCI: Store PCIe bus address in struct
> of_pci_range
> 
> Hi Gabriele,
> 
> On Tue, Jul 14, 2015 at 11:46:39AM +0100, Gabriele Paoloni wrote:
> > From: gabriele paoloni <gabriele.paoloni@huawei.com>
> >
> >     This patch is needed port PCIe designware to new DT parsing API
> >     As discussed in
> >     http://lists.infradead.org/pipermail/linux-arm-kernel/2015-
> January/317743.html
> >     in designware we have a problem as the PCI addresses in the PCIe
> controller
> >     address space are required in order to perform correct HW
> operation.
> >
> >     In order to solve this problem commit
> >     f4c55c5a3 "PCI: designware: Program ATU with untranslated
> address"
> >     added code to read the PCIe controller start address directly
> from the
> >     DT ranges.
> >
> >     In the new DT parsing API of_pci_get_host_bridge_resources()
> hides the
> >     DT parser from the host controller drivers, so it is not possible
> >     for drivers to parse values directly from the DT.
> >
> >     In http://www.spinics.net/lists/linux-pci/msg42540.html we
> already tried
> >     to use the new DT parsing API but there is a bug (obviously) in
> setting
> >     the <*>_mod_base addresses
> >     Applying this patch we can easily set "<*>_mod_base = win-
> >__res.start"
> >
> >     This patch adds a new field in "struct of_pci_range" to store the
> >     pci bus start address; it fills the field in
> of_pci_range_parser_one();
> >     in of_pci_get_host_bridge_resources() it retrieves the resource
> entry
> >     after it is created and added to the resource list and uses
> >     entry->__res.start to store the pci controller address
> >
> >     the patch is based on 4.2-rc1
> >
> >     Signed-off-by: Gabriele Paoloni <gabriele.paoloni@huawei.com>
> > ---
> >  drivers/of/address.c       | 2 ++
> >  drivers/of/of_pci.c        | 4 ++++
> >  include/linux/of_address.h | 1 +
> >  3 files changed, 7 insertions(+)
> >
> > diff --git a/drivers/of/address.c b/drivers/of/address.c
> > index 8bfda6a..23a5793 100644
> > --- a/drivers/of/address.c
> > +++ b/drivers/of/address.c
> > @@ -253,6 +253,7 @@ struct of_pci_range
> *of_pci_range_parser_one(struct of_pci_range_parser *parser,
> >  						struct of_pci_range *range)
> >  {
> >  	const int na = 3, ns = 2;
> > +	const int p_ns = of_n_size_cells(parser->node);
> >
> >  	if (!range)
> >  		return NULL;
> > @@ -265,6 +266,7 @@ struct of_pci_range
> *of_pci_range_parser_one(struct of_pci_range_parser *parser,
> >  	range->pci_addr = of_read_number(parser->range + 1, ns);
> >  	range->cpu_addr = of_translate_address(parser->node,
> >  				parser->range + na);
> > +	range->bus_addr = of_read_number(parser->range + na, p_ns);
> >  	range->size = of_read_number(parser->range + parser->pna + na,
> ns);
> >
> >  	parser->range += parser->np;
> > diff --git a/drivers/of/of_pci.c b/drivers/of/of_pci.c
> > index 5751dc5..b171d02 100644
> > --- a/drivers/of/of_pci.c
> > +++ b/drivers/of/of_pci.c
> > @@ -198,6 +198,7 @@ int of_pci_get_host_bridge_resources(struct
> device_node *dev,
> >
> >  	pr_debug("Parsing ranges property...\n");
> >  	for_each_of_pci_range(&parser, &range) {
> > +		struct resource_entry *entry;
> >  		/* Read next ranges element */
> >  		if ((range.flags & IORESOURCE_TYPE_BITS) == IORESOURCE_IO)
> >  			snprintf(range_type, 4, " IO");
> > @@ -240,6 +241,9 @@ int of_pci_get_host_bridge_resources(struct
> device_node *dev,
> >  		}
> >
> >  		pci_add_resource_offset(resources, res,	res->start -
> range.pci_addr);
> > +		entry = list_last_entry(resources, struct resource_entry,
> node);
> > +		/*we are using __res for storing the PCI controller
> address*/
> 
> Minor nit, please add spaces around the beginning and end of comment
> markers.

Sure no probs.

> 
> > +		entry->__res.start = range.bus_addr;
> >  	}
> >
> >  	return 0;
> > diff --git a/include/linux/of_address.h b/include/linux/of_address.h
> > index d88e81b..865f96e 100644
> > --- a/include/linux/of_address.h
> > +++ b/include/linux/of_address.h
> > @@ -16,6 +16,7 @@ struct of_pci_range {
> >  	u32 pci_space;
> >  	u64 pci_addr;
> >  	u64 cpu_addr;
> > +	u64 bus_addr;
> >  	u64 size;
> >  	u32 flags;
> >  };
> > --
> > 1.9.1
> >
> 
> This touches code I have previously added, so I guess you need:
> 
> Acked-by: Liviu Dudau <Liviu.Dudau@arm.com>

Sure I will add it.

> 
> Best regards,
> Liviu
> 
> --
> ====================
> | I would like to |
> | fix the world,  |
> | but they're not |
> | giving me the   |
>  \ source code!  /
>   ---------------
>     ?\_(?)_/?
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Gabriele Paoloni <gabriele.paoloni@huawei.com>
To: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: "arnd@arndb.de" <arnd@arndb.de>,
	Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>,
	"Wangzhou (B)" <wangzhou1@hisilicon.com>,
	"bhelgaas@google.com" <bhelgaas@google.com>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	James Morse <James.Morse@arm.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Yuanzhichang <yuanzhichang@hisilicon.com>,
	Zhudacai <zhudacai@hisilicon.com>,
	zhangjukuo <zhangjukuo@huawei.com>,
	qiuzhenfa <qiuzhenfa@hisilicon.com>,
	"Liguozhu (Kenneth)" <liguozhu@hisilicon.com>
Subject: RE: [PATCH v2]   PCI: Store PCIe bus address in struct of_pci_range
Date: Wed, 22 Jul 2015 11:11:19 +0000	[thread overview]
Message-ID: <EE11001F9E5DDD47B7634E2F8A612F2E01D66544@lhreml503-mbx> (raw)
In-Reply-To: <20150722104619.GE14923@e106497-lin.cambridge.arm.com>

TWFueSBUaGFua3MgTGl2aXUNCg0KSSBhbSBnb2luZyB0byBzZW5kIG91dCB2MyBiYXNlIG9uIHlv
dXIgc3VnZ2VzdGlvbnMNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBs
aW51eC1wY2ktb3duZXJAdmdlci5rZXJuZWwub3JnIFttYWlsdG86bGludXgtcGNpLQ0KPiBvd25l
ckB2Z2VyLmtlcm5lbC5vcmddIE9uIEJlaGFsZiBPZiBMaXZpdSBEdWRhdQ0KPiBTZW50OiBXZWRu
ZXNkYXksIEp1bHkgMjIsIDIwMTUgMTE6NDYgQU0NCj4gVG86IEdhYnJpZWxlIFBhb2xvbmkNCj4g
Q2M6IGFybmRAYXJuZGIuZGU7IExvcmVuem8gUGllcmFsaXNpOyBXYW5nemhvdSAoQik7IGJoZWxn
YWFzQGdvb2dsZS5jb207DQo+IHJvYmgrZHRAa2VybmVsLm9yZzsgSmFtZXMgTW9yc2U7IGxpbnV4
LXBjaUB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWFybS0NCj4ga2VybmVsQGxpc3RzLmluZnJhZGVh
ZC5vcmc7IGRldmljZXRyZWVAdmdlci5rZXJuZWwub3JnOyBZdWFuemhpY2hhbmc7DQo+IFpodWRh
Y2FpOyB6aGFuZ2p1a3VvOyBxaXV6aGVuZmE7IExpZ3Vvemh1IChLZW5uZXRoKQ0KPiBTdWJqZWN0
OiBSZTogW1BBVENIIHYyXSBQQ0k6IFN0b3JlIFBDSWUgYnVzIGFkZHJlc3MgaW4gc3RydWN0DQo+
IG9mX3BjaV9yYW5nZQ0KPiANCj4gSGkgR2FicmllbGUsDQo+IA0KPiBPbiBUdWUsIEp1bCAxNCwg
MjAxNSBhdCAxMTo0NjozOUFNICswMTAwLCBHYWJyaWVsZSBQYW9sb25pIHdyb3RlOg0KPiA+IEZy
b206IGdhYnJpZWxlIHBhb2xvbmkgPGdhYnJpZWxlLnBhb2xvbmlAaHVhd2VpLmNvbT4NCj4gPg0K
PiA+ICAgICBUaGlzIHBhdGNoIGlzIG5lZWRlZCBwb3J0IFBDSWUgZGVzaWdud2FyZSB0byBuZXcg
RFQgcGFyc2luZyBBUEkNCj4gPiAgICAgQXMgZGlzY3Vzc2VkIGluDQo+ID4gICAgIGh0dHA6Ly9s
aXN0cy5pbmZyYWRlYWQub3JnL3BpcGVybWFpbC9saW51eC1hcm0ta2VybmVsLzIwMTUtDQo+IEph
bnVhcnkvMzE3NzQzLmh0bWwNCj4gPiAgICAgaW4gZGVzaWdud2FyZSB3ZSBoYXZlIGEgcHJvYmxl
bSBhcyB0aGUgUENJIGFkZHJlc3NlcyBpbiB0aGUgUENJZQ0KPiBjb250cm9sbGVyDQo+ID4gICAg
IGFkZHJlc3Mgc3BhY2UgYXJlIHJlcXVpcmVkIGluIG9yZGVyIHRvIHBlcmZvcm0gY29ycmVjdCBI
Vw0KPiBvcGVyYXRpb24uDQo+ID4NCj4gPiAgICAgSW4gb3JkZXIgdG8gc29sdmUgdGhpcyBwcm9i
bGVtIGNvbW1pdA0KPiA+ICAgICBmNGM1NWM1YTMgIlBDSTogZGVzaWdud2FyZTogUHJvZ3JhbSBB
VFUgd2l0aCB1bnRyYW5zbGF0ZWQNCj4gYWRkcmVzcyINCj4gPiAgICAgYWRkZWQgY29kZSB0byBy
ZWFkIHRoZSBQQ0llIGNvbnRyb2xsZXIgc3RhcnQgYWRkcmVzcyBkaXJlY3RseQ0KPiBmcm9tIHRo
ZQ0KPiA+ICAgICBEVCByYW5nZXMuDQo+ID4NCj4gPiAgICAgSW4gdGhlIG5ldyBEVCBwYXJzaW5n
IEFQSSBvZl9wY2lfZ2V0X2hvc3RfYnJpZGdlX3Jlc291cmNlcygpDQo+IGhpZGVzIHRoZQ0KPiA+
ICAgICBEVCBwYXJzZXIgZnJvbSB0aGUgaG9zdCBjb250cm9sbGVyIGRyaXZlcnMsIHNvIGl0IGlz
IG5vdCBwb3NzaWJsZQ0KPiA+ICAgICBmb3IgZHJpdmVycyB0byBwYXJzZSB2YWx1ZXMgZGlyZWN0
bHkgZnJvbSB0aGUgRFQuDQo+ID4NCj4gPiAgICAgSW4gaHR0cDovL3d3dy5zcGluaWNzLm5ldC9s
aXN0cy9saW51eC1wY2kvbXNnNDI1NDAuaHRtbCB3ZQ0KPiBhbHJlYWR5IHRyaWVkDQo+ID4gICAg
IHRvIHVzZSB0aGUgbmV3IERUIHBhcnNpbmcgQVBJIGJ1dCB0aGVyZSBpcyBhIGJ1ZyAob2J2aW91
c2x5KSBpbg0KPiBzZXR0aW5nDQo+ID4gICAgIHRoZSA8Kj5fbW9kX2Jhc2UgYWRkcmVzc2VzDQo+
ID4gICAgIEFwcGx5aW5nIHRoaXMgcGF0Y2ggd2UgY2FuIGVhc2lseSBzZXQgIjwqPl9tb2RfYmFz
ZSA9IHdpbi0NCj4gPl9fcmVzLnN0YXJ0Ig0KPiA+DQo+ID4gICAgIFRoaXMgcGF0Y2ggYWRkcyBh
IG5ldyBmaWVsZCBpbiAic3RydWN0IG9mX3BjaV9yYW5nZSIgdG8gc3RvcmUgdGhlDQo+ID4gICAg
IHBjaSBidXMgc3RhcnQgYWRkcmVzczsgaXQgZmlsbHMgdGhlIGZpZWxkIGluDQo+IG9mX3BjaV9y
YW5nZV9wYXJzZXJfb25lKCk7DQo+ID4gICAgIGluIG9mX3BjaV9nZXRfaG9zdF9icmlkZ2VfcmVz
b3VyY2VzKCkgaXQgcmV0cmlldmVzIHRoZSByZXNvdXJjZQ0KPiBlbnRyeQ0KPiA+ICAgICBhZnRl
ciBpdCBpcyBjcmVhdGVkIGFuZCBhZGRlZCB0byB0aGUgcmVzb3VyY2UgbGlzdCBhbmQgdXNlcw0K
PiA+ICAgICBlbnRyeS0+X19yZXMuc3RhcnQgdG8gc3RvcmUgdGhlIHBjaSBjb250cm9sbGVyIGFk
ZHJlc3MNCj4gPg0KPiA+ICAgICB0aGUgcGF0Y2ggaXMgYmFzZWQgb24gNC4yLXJjMQ0KPiA+DQo+
ID4gICAgIFNpZ25lZC1vZmYtYnk6IEdhYnJpZWxlIFBhb2xvbmkgPGdhYnJpZWxlLnBhb2xvbmlA
aHVhd2VpLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9vZi9hZGRyZXNzLmMgICAgICAgfCAy
ICsrDQo+ID4gIGRyaXZlcnMvb2Yvb2ZfcGNpLmMgICAgICAgIHwgNCArKysrDQo+ID4gIGluY2x1
ZGUvbGludXgvb2ZfYWRkcmVzcy5oIHwgMSArDQo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNyBpbnNl
cnRpb25zKCspDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9vZi9hZGRyZXNzLmMgYi9k
cml2ZXJzL29mL2FkZHJlc3MuYw0KPiA+IGluZGV4IDhiZmRhNmEuLjIzYTU3OTMgMTAwNjQ0DQo+
ID4gLS0tIGEvZHJpdmVycy9vZi9hZGRyZXNzLmMNCj4gPiArKysgYi9kcml2ZXJzL29mL2FkZHJl
c3MuYw0KPiA+IEBAIC0yNTMsNiArMjUzLDcgQEAgc3RydWN0IG9mX3BjaV9yYW5nZQ0KPiAqb2Zf
cGNpX3JhbmdlX3BhcnNlcl9vbmUoc3RydWN0IG9mX3BjaV9yYW5nZV9wYXJzZXIgKnBhcnNlciwN
Cj4gPiAgCQkJCQkJc3RydWN0IG9mX3BjaV9yYW5nZSAqcmFuZ2UpDQo+ID4gIHsNCj4gPiAgCWNv
bnN0IGludCBuYSA9IDMsIG5zID0gMjsNCj4gPiArCWNvbnN0IGludCBwX25zID0gb2Zfbl9zaXpl
X2NlbGxzKHBhcnNlci0+bm9kZSk7DQo+ID4NCj4gPiAgCWlmICghcmFuZ2UpDQo+ID4gIAkJcmV0
dXJuIE5VTEw7DQo+ID4gQEAgLTI2NSw2ICsyNjYsNyBAQCBzdHJ1Y3Qgb2ZfcGNpX3JhbmdlDQo+
ICpvZl9wY2lfcmFuZ2VfcGFyc2VyX29uZShzdHJ1Y3Qgb2ZfcGNpX3JhbmdlX3BhcnNlciAqcGFy
c2VyLA0KPiA+ICAJcmFuZ2UtPnBjaV9hZGRyID0gb2ZfcmVhZF9udW1iZXIocGFyc2VyLT5yYW5n
ZSArIDEsIG5zKTsNCj4gPiAgCXJhbmdlLT5jcHVfYWRkciA9IG9mX3RyYW5zbGF0ZV9hZGRyZXNz
KHBhcnNlci0+bm9kZSwNCj4gPiAgCQkJCXBhcnNlci0+cmFuZ2UgKyBuYSk7DQo+ID4gKwlyYW5n
ZS0+YnVzX2FkZHIgPSBvZl9yZWFkX251bWJlcihwYXJzZXItPnJhbmdlICsgbmEsIHBfbnMpOw0K
PiA+ICAJcmFuZ2UtPnNpemUgPSBvZl9yZWFkX251bWJlcihwYXJzZXItPnJhbmdlICsgcGFyc2Vy
LT5wbmEgKyBuYSwNCj4gbnMpOw0KPiA+DQo+ID4gIAlwYXJzZXItPnJhbmdlICs9IHBhcnNlci0+
bnA7DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvb2Yvb2ZfcGNpLmMgYi9kcml2ZXJzL29mL29m
X3BjaS5jDQo+ID4gaW5kZXggNTc1MWRjNS4uYjE3MWQwMiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2
ZXJzL29mL29mX3BjaS5jDQo+ID4gKysrIGIvZHJpdmVycy9vZi9vZl9wY2kuYw0KPiA+IEBAIC0x
OTgsNiArMTk4LDcgQEAgaW50IG9mX3BjaV9nZXRfaG9zdF9icmlkZ2VfcmVzb3VyY2VzKHN0cnVj
dA0KPiBkZXZpY2Vfbm9kZSAqZGV2LA0KPiA+DQo+ID4gIAlwcl9kZWJ1ZygiUGFyc2luZyByYW5n
ZXMgcHJvcGVydHkuLi5cbiIpOw0KPiA+ICAJZm9yX2VhY2hfb2ZfcGNpX3JhbmdlKCZwYXJzZXIs
ICZyYW5nZSkgew0KPiA+ICsJCXN0cnVjdCByZXNvdXJjZV9lbnRyeSAqZW50cnk7DQo+ID4gIAkJ
LyogUmVhZCBuZXh0IHJhbmdlcyBlbGVtZW50ICovDQo+ID4gIAkJaWYgKChyYW5nZS5mbGFncyAm
IElPUkVTT1VSQ0VfVFlQRV9CSVRTKSA9PSBJT1JFU09VUkNFX0lPKQ0KPiA+ICAJCQlzbnByaW50
ZihyYW5nZV90eXBlLCA0LCAiIElPIik7DQo+ID4gQEAgLTI0MCw2ICsyNDEsOSBAQCBpbnQgb2Zf
cGNpX2dldF9ob3N0X2JyaWRnZV9yZXNvdXJjZXMoc3RydWN0DQo+IGRldmljZV9ub2RlICpkZXYs
DQo+ID4gIAkJfQ0KPiA+DQo+ID4gIAkJcGNpX2FkZF9yZXNvdXJjZV9vZmZzZXQocmVzb3VyY2Vz
LCByZXMsCXJlcy0+c3RhcnQgLQ0KPiByYW5nZS5wY2lfYWRkcik7DQo+ID4gKwkJZW50cnkgPSBs
aXN0X2xhc3RfZW50cnkocmVzb3VyY2VzLCBzdHJ1Y3QgcmVzb3VyY2VfZW50cnksDQo+IG5vZGUp
Ow0KPiA+ICsJCS8qd2UgYXJlIHVzaW5nIF9fcmVzIGZvciBzdG9yaW5nIHRoZSBQQ0kgY29udHJv
bGxlcg0KPiBhZGRyZXNzKi8NCj4gDQo+IE1pbm9yIG5pdCwgcGxlYXNlIGFkZCBzcGFjZXMgYXJv
dW5kIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiBjb21tZW50DQo+IG1hcmtlcnMuDQoNClN1cmUg
bm8gcHJvYnMuDQoNCj4gDQo+ID4gKwkJZW50cnktPl9fcmVzLnN0YXJ0ID0gcmFuZ2UuYnVzX2Fk
ZHI7DQo+ID4gIAl9DQo+ID4NCj4gPiAgCXJldHVybiAwOw0KPiA+IGRpZmYgLS1naXQgYS9pbmNs
dWRlL2xpbnV4L29mX2FkZHJlc3MuaCBiL2luY2x1ZGUvbGludXgvb2ZfYWRkcmVzcy5oDQo+ID4g
aW5kZXggZDg4ZTgxYi4uODY1Zjk2ZSAxMDA2NDQNCj4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4L29m
X2FkZHJlc3MuaA0KPiA+ICsrKyBiL2luY2x1ZGUvbGludXgvb2ZfYWRkcmVzcy5oDQo+ID4gQEAg
LTE2LDYgKzE2LDcgQEAgc3RydWN0IG9mX3BjaV9yYW5nZSB7DQo+ID4gIAl1MzIgcGNpX3NwYWNl
Ow0KPiA+ICAJdTY0IHBjaV9hZGRyOw0KPiA+ICAJdTY0IGNwdV9hZGRyOw0KPiA+ICsJdTY0IGJ1
c19hZGRyOw0KPiA+ICAJdTY0IHNpemU7DQo+ID4gIAl1MzIgZmxhZ3M7DQo+ID4gIH07DQo+ID4g
LS0NCj4gPiAxLjkuMQ0KPiA+DQo+IA0KPiBUaGlzIHRvdWNoZXMgY29kZSBJIGhhdmUgcHJldmlv
dXNseSBhZGRlZCwgc28gSSBndWVzcyB5b3UgbmVlZDoNCj4gDQo+IEFja2VkLWJ5OiBMaXZpdSBE
dWRhdSA8TGl2aXUuRHVkYXVAYXJtLmNvbT4NCg0KU3VyZSBJIHdpbGwgYWRkIGl0Lg0KDQo+IA0K
PiBCZXN0IHJlZ2FyZHMsDQo+IExpdml1DQo+IA0KPiAtLQ0KPiA9PT09PT09PT09PT09PT09PT09
PQ0KPiB8IEkgd291bGQgbGlrZSB0byB8DQo+IHwgZml4IHRoZSB3b3JsZCwgIHwNCj4gfCBidXQg
dGhleSdyZSBub3QgfA0KPiB8IGdpdmluZyBtZSB0aGUgICB8DQo+ICBcIHNvdXJjZSBjb2RlISAg
Lw0KPiAgIC0tLS0tLS0tLS0tLS0tLQ0KPiAgICAgwq9cXyjjg4QpXy/Crw0KPiANCj4gLS0NCj4g
VG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJl
IGxpbnV4LXBjaSIgaW4NCj4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2Vy
Lmtlcm5lbC5vcmcNCj4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVs
Lm9yZy9tYWpvcmRvbW8taW5mby5odG1sDQo=

  reply	other threads:[~2015-07-22 11:11 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-14 10:46 [PATCH v2] PCI: Store PCIe bus address in struct of_pci_range Gabriele Paoloni
2015-07-14 10:46 ` Gabriele Paoloni
2015-07-14 10:46 ` Gabriele Paoloni
2015-07-22  9:45 ` Gabriele Paoloni
2015-07-22  9:45   ` Gabriele Paoloni
2015-07-22  9:45   ` Gabriele Paoloni
2015-07-22 10:46 ` Liviu Dudau
2015-07-22 10:46   ` Liviu Dudau
2015-07-22 11:11   ` Gabriele Paoloni [this message]
2015-07-22 11:11     ` Gabriele Paoloni
2015-07-22 11:11     ` Gabriele Paoloni

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=EE11001F9E5DDD47B7634E2F8A612F2E01D66544@lhreml503-mbx \
    --to=gabriele.paoloni@huawei.com \
    --cc=James.Morse@arm.com \
    --cc=Liviu.Dudau@arm.com \
    --cc=Lorenzo.Pieralisi@arm.com \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=devicetree@vger.kernel.org \
    --cc=liguozhu@hisilicon.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=qiuzhenfa@hisilicon.com \
    --cc=robh+dt@kernel.org \
    --cc=wangzhou1@hisilicon.com \
    --cc=yuanzhichang@hisilicon.com \
    --cc=zhangjukuo@huawei.com \
    --cc=zhudacai@hisilicon.com \
    /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.