From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gabriele Paoloni Subject: RE: [PATCH v2] PCI: Store PCIe bus address in struct of_pci_range Date: Wed, 22 Jul 2015 11:11:19 +0000 Message-ID: References: <1436870799-207766-1-git-send-email-gabriele.paoloni@huawei.com> <20150722104619.GE14923@e106497-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150722104619.GE14923@e106497-lin.cambridge.arm.com> Content-Language: en-US Sender: linux-pci-owner@vger.kernel.org To: Liviu Dudau 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)" List-Id: devicetree@vger.kernel.org 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= From mboxrd@z Thu Jan 1 00:00:00 1970 From: gabriele.paoloni@huawei.com (Gabriele Paoloni) Date: Wed, 22 Jul 2015 11:11:19 +0000 Subject: [PATCH v2] PCI: Store PCIe bus address in struct of_pci_range In-Reply-To: <20150722104619.GE14923@e106497-lin.cambridge.arm.com> References: <1436870799-207766-1-git-send-email-gabriele.paoloni@huawei.com> <20150722104619.GE14923@e106497-lin.cambridge.arm.com> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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 > > > > 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 > > --- > > 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 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lhrrgout.huawei.com ([194.213.3.17]:23530 "EHLO lhrrgout.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933841AbbGVLLn (ORCPT ); Wed, 22 Jul 2015 07:11:43 -0400 From: Gabriele Paoloni To: Liviu Dudau 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 Date: Wed, 22 Jul 2015 11:11:19 +0000 Message-ID: References: <1436870799-207766-1-git-send-email-gabriele.paoloni@huawei.com> <20150722104619.GE14923@e106497-lin.cambridge.arm.com> In-Reply-To: <20150722104619.GE14923@e106497-lin.cambridge.arm.com> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-pci-owner@vger.kernel.org List-ID: 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=