All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <EE11001F9E5DDD47B7634E2F8A612F2E01D664BC@lhreml503-mbx>

diff --git a/a/1.txt b/N1/1.txt
index be39508..f3dcb5b 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -9,11 +9,11 @@ Gab
 > -----Original Message-----
 > From: Gabriele Paoloni
 > Sent: Tuesday, July 14, 2015 11:47 AM
-> To: Gabriele Paoloni; arnd@arndb.de; lorenzo.pieralisi@arm.com;
-> Wangzhou (B); bhelgaas@google.com; robh+dt@kernel.org;
-> james.morse@arm.com; Liviu.Dudau@arm.com
-> Cc: linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
-> devicetree@vger.kernel.org; Yuanzhichang; Zhudacai; zhangjukuo;
+> To: Gabriele Paoloni; arnd at arndb.de; lorenzo.pieralisi at arm.com;
+> Wangzhou (B); bhelgaas at google.com; robh+dt at kernel.org;
+> james.morse at arm.com; Liviu.Dudau at arm.com
+> Cc: 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: [PATCH v2] PCI: Store PCIe bus address in struct of_pci_range
 > 
diff --git a/a/content_digest b/N1/content_digest
index 3859558..ad2c41d 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -2,33 +2,16 @@
   "ref\0001436870799-207766-1-git-send-email-gabriele.paoloni\@huawei.com\0"
 ]
 [
-  "From\0Gabriele Paoloni <gabriele.paoloni\@huawei.com>\0"
+  "From\0gabriele.paoloni\@huawei.com (Gabriele Paoloni)\0"
 ]
 [
-  "Subject\0RE: [PATCH v2]   PCI: Store PCIe bus address in struct of_pci_range\0"
+  "Subject\0[PATCH v2]   PCI: Store PCIe bus address in struct of_pci_range\0"
 ]
 [
   "Date\0Wed, 22 Jul 2015 09:45:22 +0000\0"
 ]
 [
-  "To\0Gabriele Paoloni <gabriele.paoloni\@huawei.com>",
-  " arnd\@arndb.de <arnd\@arndb.de>",
-  " lorenzo.pieralisi\@arm.com <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\@arm.com <james.morse\@arm.com>",
-  " Liviu.Dudau\@arm.com <Liviu.Dudau\@arm.com>\0"
-]
-[
-  "Cc\0linux-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>\0"
+  "To\0linux-arm-kernel\@lists.infradead.org\0"
 ]
 [
   "\0000:1\0"
@@ -48,11 +31,11 @@
   "> -----Original Message-----\n",
   "> From: Gabriele Paoloni\n",
   "> Sent: Tuesday, July 14, 2015 11:47 AM\n",
-  "> To: Gabriele Paoloni; arnd\@arndb.de; lorenzo.pieralisi\@arm.com;\n",
-  "> Wangzhou (B); bhelgaas\@google.com; robh+dt\@kernel.org;\n",
-  "> james.morse\@arm.com; Liviu.Dudau\@arm.com\n",
-  "> Cc: linux-pci\@vger.kernel.org; linux-arm-kernel\@lists.infradead.org;\n",
-  "> devicetree\@vger.kernel.org; Yuanzhichang; Zhudacai; zhangjukuo;\n",
+  "> To: Gabriele Paoloni; arnd at arndb.de; lorenzo.pieralisi at arm.com;\n",
+  "> Wangzhou (B); bhelgaas at google.com; robh+dt at kernel.org;\n",
+  "> james.morse at arm.com; Liviu.Dudau at arm.com\n",
+  "> Cc: linux-pci at vger.kernel.org; linux-arm-kernel at lists.infradead.org;\n",
+  "> devicetree at vger.kernel.org; Yuanzhichang; Zhudacai; zhangjukuo;\n",
   "> qiuzhenfa; Liguozhu (Kenneth)\n",
   "> Subject: [PATCH v2] PCI: Store PCIe bus address in struct of_pci_range\n",
   "> \n",
@@ -168,4 +151,4 @@
   "> 1.9.1"
 ]
 
-26dbd478b95fe4740d9f1950d4e8df4f0ae3a4e831cff5c8dff2893e912f7409
+1bc90dd31b385037a61d333e64f1466abdf20e199a0205a6584c99788597c7d7

diff --git a/a/1.txt b/N2/1.txt
index be39508..63a22fe 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -1,129 +1,80 @@
-Any comment on this patch?
-
-This is needed by "[PATCH v4 2/5] PCI: designware: Add ARM64 support"
-
-Thanks
-
-Gab
-
-> -----Original Message-----
-> From: Gabriele Paoloni
-> Sent: Tuesday, July 14, 2015 11:47 AM
-> To: Gabriele Paoloni; arnd@arndb.de; lorenzo.pieralisi@arm.com;
-> Wangzhou (B); bhelgaas@google.com; robh+dt@kernel.org;
-> james.morse@arm.com; Liviu.Dudau@arm.com
-> Cc: linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
-> devicetree@vger.kernel.org; Yuanzhichang; Zhudacai; zhangjukuo;
-> qiuzhenfa; Liguozhu (Kenneth)
-> Subject: [PATCH v2] PCI: Store PCIe bus address in struct of_pci_range
-> 
-> 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*/
-> +		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
+QW55IGNvbW1lbnQgb24gdGhpcyBwYXRjaD8NCg0KVGhpcyBpcyBuZWVkZWQgYnkgIltQQVRDSCB2
+NCAyLzVdIFBDSTogZGVzaWdud2FyZTogQWRkIEFSTTY0IHN1cHBvcnQiDQoNClRoYW5rcw0KDQpH
+YWINCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBHYWJyaWVsZSBQYW9s
+b25pDQo+IFNlbnQ6IFR1ZXNkYXksIEp1bHkgMTQsIDIwMTUgMTE6NDcgQU0NCj4gVG86IEdhYnJp
+ZWxlIFBhb2xvbmk7IGFybmRAYXJuZGIuZGU7IGxvcmVuem8ucGllcmFsaXNpQGFybS5jb207DQo+
+IFdhbmd6aG91IChCKTsgYmhlbGdhYXNAZ29vZ2xlLmNvbTsgcm9iaCtkdEBrZXJuZWwub3JnOw0K
+PiBqYW1lcy5tb3JzZUBhcm0uY29tOyBMaXZpdS5EdWRhdUBhcm0uY29tDQo+IENjOiBsaW51eC1w
+Y2lAdmdlci5rZXJuZWwub3JnOyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7
+DQo+IGRldmljZXRyZWVAdmdlci5rZXJuZWwub3JnOyBZdWFuemhpY2hhbmc7IFpodWRhY2FpOyB6
+aGFuZ2p1a3VvOw0KPiBxaXV6aGVuZmE7IExpZ3Vvemh1IChLZW5uZXRoKQ0KPiBTdWJqZWN0OiBb
+UEFUQ0ggdjJdIFBDSTogU3RvcmUgUENJZSBidXMgYWRkcmVzcyBpbiBzdHJ1Y3Qgb2ZfcGNpX3Jh
+bmdlDQo+IA0KPiBGcm9tOiBnYWJyaWVsZSBwYW9sb25pIDxnYWJyaWVsZS5wYW9sb25pQGh1YXdl
+aS5jb20+DQo+IA0KPiAgICAgVGhpcyBwYXRjaCBpcyBuZWVkZWQgcG9ydCBQQ0llIGRlc2lnbndh
+cmUgdG8gbmV3IERUIHBhcnNpbmcgQVBJDQo+ICAgICBBcyBkaXNjdXNzZWQgaW4NCj4gICAgIGh0
+dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL3BpcGVybWFpbC9saW51eC1hcm0ta2VybmVsLzIwMTUt
+DQo+IEphbnVhcnkvMzE3NzQzLmh0bWwNCj4gICAgIGluIGRlc2lnbndhcmUgd2UgaGF2ZSBhIHBy
+b2JsZW0gYXMgdGhlIFBDSSBhZGRyZXNzZXMgaW4gdGhlIFBDSWUNCj4gY29udHJvbGxlcg0KPiAg
+ICAgYWRkcmVzcyBzcGFjZSBhcmUgcmVxdWlyZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSBjb3JyZWN0
+IEhXIG9wZXJhdGlvbi4NCj4gDQo+ICAgICBJbiBvcmRlciB0byBzb2x2ZSB0aGlzIHByb2JsZW0g
+Y29tbWl0DQo+ICAgICBmNGM1NWM1YTMgIlBDSTogZGVzaWdud2FyZTogUHJvZ3JhbSBBVFUgd2l0
+aCB1bnRyYW5zbGF0ZWQgYWRkcmVzcyINCj4gICAgIGFkZGVkIGNvZGUgdG8gcmVhZCB0aGUgUENJ
+ZSBjb250cm9sbGVyIHN0YXJ0IGFkZHJlc3MgZGlyZWN0bHkgZnJvbQ0KPiB0aGUNCj4gICAgIERU
+IHJhbmdlcy4NCj4gDQo+ICAgICBJbiB0aGUgbmV3IERUIHBhcnNpbmcgQVBJIG9mX3BjaV9nZXRf
+aG9zdF9icmlkZ2VfcmVzb3VyY2VzKCkgaGlkZXMNCj4gdGhlDQo+ICAgICBEVCBwYXJzZXIgZnJv
+bSB0aGUgaG9zdCBjb250cm9sbGVyIGRyaXZlcnMsIHNvIGl0IGlzIG5vdCBwb3NzaWJsZQ0KPiAg
+ICAgZm9yIGRyaXZlcnMgdG8gcGFyc2UgdmFsdWVzIGRpcmVjdGx5IGZyb20gdGhlIERULg0KPiAN
+Cj4gICAgIEluIGh0dHA6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvbGludXgtcGNpL21zZzQyNTQw
+Lmh0bWwgd2UgYWxyZWFkeQ0KPiB0cmllZA0KPiAgICAgdG8gdXNlIHRoZSBuZXcgRFQgcGFyc2lu
+ZyBBUEkgYnV0IHRoZXJlIGlzIGEgYnVnIChvYnZpb3VzbHkpIGluDQo+IHNldHRpbmcNCj4gICAg
+IHRoZSA8Kj5fbW9kX2Jhc2UgYWRkcmVzc2VzDQo+ICAgICBBcHBseWluZyB0aGlzIHBhdGNoIHdl
+IGNhbiBlYXNpbHkgc2V0ICI8Kj5fbW9kX2Jhc2UgPSB3aW4tDQo+ID5fX3Jlcy5zdGFydCINCj4g
+DQo+ICAgICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgZmllbGQgaW4gInN0cnVjdCBvZl9wY2lfcmFu
+Z2UiIHRvIHN0b3JlIHRoZQ0KPiAgICAgcGNpIGJ1cyBzdGFydCBhZGRyZXNzOyBpdCBmaWxscyB0
+aGUgZmllbGQgaW4NCj4gb2ZfcGNpX3JhbmdlX3BhcnNlcl9vbmUoKTsNCj4gICAgIGluIG9mX3Bj
+aV9nZXRfaG9zdF9icmlkZ2VfcmVzb3VyY2VzKCkgaXQgcmV0cmlldmVzIHRoZSByZXNvdXJjZQ0K
+PiBlbnRyeQ0KPiAgICAgYWZ0ZXIgaXQgaXMgY3JlYXRlZCBhbmQgYWRkZWQgdG8gdGhlIHJlc291
+cmNlIGxpc3QgYW5kIHVzZXMNCj4gICAgIGVudHJ5LT5fX3Jlcy5zdGFydCB0byBzdG9yZSB0aGUg
+cGNpIGNvbnRyb2xsZXIgYWRkcmVzcw0KPiANCj4gICAgIHRoZSBwYXRjaCBpcyBiYXNlZCBvbiA0
+LjItcmMxDQo+IA0KPiAgICAgU2lnbmVkLW9mZi1ieTogR2FicmllbGUgUGFvbG9uaSA8Z2Ficmll
+bGUucGFvbG9uaUBodWF3ZWkuY29tPg0KPiAtLS0NCj4gIGRyaXZlcnMvb2YvYWRkcmVzcy5jICAg
+ICAgIHwgMiArKw0KPiAgZHJpdmVycy9vZi9vZl9wY2kuYyAgICAgICAgfCA0ICsrKysNCj4gIGlu
+Y2x1ZGUvbGludXgvb2ZfYWRkcmVzcy5oIHwgMSArDQo+ICAzIGZpbGVzIGNoYW5nZWQsIDcgaW5z
+ZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvb2YvYWRkcmVzcy5jIGIvZHJp
+dmVycy9vZi9hZGRyZXNzLmMNCj4gaW5kZXggOGJmZGE2YS4uMjNhNTc5MyAxMDA2NDQNCj4gLS0t
+IGEvZHJpdmVycy9vZi9hZGRyZXNzLmMNCj4gKysrIGIvZHJpdmVycy9vZi9hZGRyZXNzLmMNCj4g
+QEAgLTI1Myw2ICsyNTMsNyBAQCBzdHJ1Y3Qgb2ZfcGNpX3JhbmdlICpvZl9wY2lfcmFuZ2VfcGFy
+c2VyX29uZShzdHJ1Y3QNCj4gb2ZfcGNpX3JhbmdlX3BhcnNlciAqcGFyc2VyLA0KPiAgCQkJCQkJ
+c3RydWN0IG9mX3BjaV9yYW5nZSAqcmFuZ2UpDQo+ICB7DQo+ICAJY29uc3QgaW50IG5hID0gMywg
+bnMgPSAyOw0KPiArCWNvbnN0IGludCBwX25zID0gb2Zfbl9zaXplX2NlbGxzKHBhcnNlci0+bm9k
+ZSk7DQo+IA0KPiAgCWlmICghcmFuZ2UpDQo+ICAJCXJldHVybiBOVUxMOw0KPiBAQCAtMjY1LDYg
+KzI2Niw3IEBAIHN0cnVjdCBvZl9wY2lfcmFuZ2UgKm9mX3BjaV9yYW5nZV9wYXJzZXJfb25lKHN0
+cnVjdA0KPiBvZl9wY2lfcmFuZ2VfcGFyc2VyICpwYXJzZXIsDQo+ICAJcmFuZ2UtPnBjaV9hZGRy
+ID0gb2ZfcmVhZF9udW1iZXIocGFyc2VyLT5yYW5nZSArIDEsIG5zKTsNCj4gIAlyYW5nZS0+Y3B1
+X2FkZHIgPSBvZl90cmFuc2xhdGVfYWRkcmVzcyhwYXJzZXItPm5vZGUsDQo+ICAJCQkJcGFyc2Vy
+LT5yYW5nZSArIG5hKTsNCj4gKwlyYW5nZS0+YnVzX2FkZHIgPSBvZl9yZWFkX251bWJlcihwYXJz
+ZXItPnJhbmdlICsgbmEsIHBfbnMpOw0KPiAgCXJhbmdlLT5zaXplID0gb2ZfcmVhZF9udW1iZXIo
+cGFyc2VyLT5yYW5nZSArIHBhcnNlci0+cG5hICsgbmEsDQo+IG5zKTsNCj4gDQo+ICAJcGFyc2Vy
+LT5yYW5nZSArPSBwYXJzZXItPm5wOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9vZi9vZl9wY2ku
+YyBiL2RyaXZlcnMvb2Yvb2ZfcGNpLmMNCj4gaW5kZXggNTc1MWRjNS4uYjE3MWQwMiAxMDA2NDQN
+Cj4gLS0tIGEvZHJpdmVycy9vZi9vZl9wY2kuYw0KPiArKysgYi9kcml2ZXJzL29mL29mX3BjaS5j
+DQo+IEBAIC0xOTgsNiArMTk4LDcgQEAgaW50IG9mX3BjaV9nZXRfaG9zdF9icmlkZ2VfcmVzb3Vy
+Y2VzKHN0cnVjdA0KPiBkZXZpY2Vfbm9kZSAqZGV2LA0KPiANCj4gIAlwcl9kZWJ1ZygiUGFyc2lu
+ZyByYW5nZXMgcHJvcGVydHkuLi5cbiIpOw0KPiAgCWZvcl9lYWNoX29mX3BjaV9yYW5nZSgmcGFy
+c2VyLCAmcmFuZ2UpIHsNCj4gKwkJc3RydWN0IHJlc291cmNlX2VudHJ5ICplbnRyeTsNCj4gIAkJ
+LyogUmVhZCBuZXh0IHJhbmdlcyBlbGVtZW50ICovDQo+ICAJCWlmICgocmFuZ2UuZmxhZ3MgJiBJ
+T1JFU09VUkNFX1RZUEVfQklUUykgPT0gSU9SRVNPVVJDRV9JTykNCj4gIAkJCXNucHJpbnRmKHJh
+bmdlX3R5cGUsIDQsICIgSU8iKTsNCj4gQEAgLTI0MCw2ICsyNDEsOSBAQCBpbnQgb2ZfcGNpX2dl
+dF9ob3N0X2JyaWRnZV9yZXNvdXJjZXMoc3RydWN0DQo+IGRldmljZV9ub2RlICpkZXYsDQo+ICAJ
+CX0NCj4gDQo+ICAJCXBjaV9hZGRfcmVzb3VyY2Vfb2Zmc2V0KHJlc291cmNlcywgcmVzLAlyZXMt
+PnN0YXJ0IC0NCj4gcmFuZ2UucGNpX2FkZHIpOw0KPiArCQllbnRyeSA9IGxpc3RfbGFzdF9lbnRy
+eShyZXNvdXJjZXMsIHN0cnVjdCByZXNvdXJjZV9lbnRyeSwNCj4gbm9kZSk7DQo+ICsJCS8qd2Ug
+YXJlIHVzaW5nIF9fcmVzIGZvciBzdG9yaW5nIHRoZSBQQ0kgY29udHJvbGxlcg0KPiBhZGRyZXNz
+Ki8NCj4gKwkJZW50cnktPl9fcmVzLnN0YXJ0ID0gcmFuZ2UuYnVzX2FkZHI7DQo+ICAJfQ0KPiAN
+Cj4gIAlyZXR1cm4gMDsNCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvb2ZfYWRkcmVzcy5o
+IGIvaW5jbHVkZS9saW51eC9vZl9hZGRyZXNzLmgNCj4gaW5kZXggZDg4ZTgxYi4uODY1Zjk2ZSAx
+MDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9saW51eC9vZl9hZGRyZXNzLmgNCj4gKysrIGIvaW5jbHVk
+ZS9saW51eC9vZl9hZGRyZXNzLmgNCj4gQEAgLTE2LDYgKzE2LDcgQEAgc3RydWN0IG9mX3BjaV9y
+YW5nZSB7DQo+ICAJdTMyIHBjaV9zcGFjZTsNCj4gIAl1NjQgcGNpX2FkZHI7DQo+ICAJdTY0IGNw
+dV9hZGRyOw0KPiArCXU2NCBidXNfYWRkcjsNCj4gIAl1NjQgc2l6ZTsNCj4gIAl1MzIgZmxhZ3M7
+DQo+ICB9Ow0KPiAtLQ0KPiAxLjkuMQ0KDQo=
diff --git a/a/content_digest b/N2/content_digest
index 3859558..2be9839 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -37,135 +37,86 @@
   "b\0"
 ]
 [
-  "Any comment on this patch?\n",
-  "\n",
-  "This is needed by \"[PATCH v4 2/5] PCI: designware: Add ARM64 support\"\n",
-  "\n",
-  "Thanks\n",
-  "\n",
-  "Gab\n",
-  "\n",
-  "> -----Original Message-----\n",
-  "> From: Gabriele Paoloni\n",
-  "> Sent: Tuesday, July 14, 2015 11:47 AM\n",
-  "> To: Gabriele Paoloni; arnd\@arndb.de; lorenzo.pieralisi\@arm.com;\n",
-  "> Wangzhou (B); bhelgaas\@google.com; robh+dt\@kernel.org;\n",
-  "> james.morse\@arm.com; Liviu.Dudau\@arm.com\n",
-  "> Cc: linux-pci\@vger.kernel.org; linux-arm-kernel\@lists.infradead.org;\n",
-  "> devicetree\@vger.kernel.org; Yuanzhichang; Zhudacai; zhangjukuo;\n",
-  "> qiuzhenfa; Liguozhu (Kenneth)\n",
-  "> Subject: [PATCH v2] PCI: Store PCIe bus address in struct of_pci_range\n",
-  "> \n",
-  "> From: gabriele paoloni <gabriele.paoloni\@huawei.com>\n",
-  "> \n",
-  ">     This patch is needed port PCIe designware to new DT parsing API\n",
-  ">     As discussed in\n",
-  ">     http://lists.infradead.org/pipermail/linux-arm-kernel/2015-\n",
-  "> January/317743.html\n",
-  ">     in designware we have a problem as the PCI addresses in the PCIe\n",
-  "> controller\n",
-  ">     address space are required in order to perform correct HW operation.\n",
-  "> \n",
-  ">     In order to solve this problem commit\n",
-  ">     f4c55c5a3 \"PCI: designware: Program ATU with untranslated address\"\n",
-  ">     added code to read the PCIe controller start address directly from\n",
-  "> the\n",
-  ">     DT ranges.\n",
-  "> \n",
-  ">     In the new DT parsing API of_pci_get_host_bridge_resources() hides\n",
-  "> the\n",
-  ">     DT parser from the host controller drivers, so it is not possible\n",
-  ">     for drivers to parse values directly from the DT.\n",
-  "> \n",
-  ">     In http://www.spinics.net/lists/linux-pci/msg42540.html we already\n",
-  "> tried\n",
-  ">     to use the new DT parsing API but there is a bug (obviously) in\n",
-  "> setting\n",
-  ">     the <*>_mod_base addresses\n",
-  ">     Applying this patch we can easily set \"<*>_mod_base = win-\n",
-  "> >__res.start\"\n",
-  "> \n",
-  ">     This patch adds a new field in \"struct of_pci_range\" to store the\n",
-  ">     pci bus start address; it fills the field in\n",
-  "> of_pci_range_parser_one();\n",
-  ">     in of_pci_get_host_bridge_resources() it retrieves the resource\n",
-  "> entry\n",
-  ">     after it is created and added to the resource list and uses\n",
-  ">     entry->__res.start to store the pci controller address\n",
-  "> \n",
-  ">     the patch is based on 4.2-rc1\n",
-  "> \n",
-  ">     Signed-off-by: Gabriele Paoloni <gabriele.paoloni\@huawei.com>\n",
-  "> ---\n",
-  ">  drivers/of/address.c       | 2 ++\n",
-  ">  drivers/of/of_pci.c        | 4 ++++\n",
-  ">  include/linux/of_address.h | 1 +\n",
-  ">  3 files changed, 7 insertions(+)\n",
-  "> \n",
-  "> diff --git a/drivers/of/address.c b/drivers/of/address.c\n",
-  "> index 8bfda6a..23a5793 100644\n",
-  "> --- a/drivers/of/address.c\n",
-  "> +++ b/drivers/of/address.c\n",
-  "> \@\@ -253,6 +253,7 \@\@ struct of_pci_range *of_pci_range_parser_one(struct\n",
-  "> of_pci_range_parser *parser,\n",
-  ">  \t\t\t\t\t\tstruct of_pci_range *range)\n",
-  ">  {\n",
-  ">  \tconst int na = 3, ns = 2;\n",
-  "> +\tconst int p_ns = of_n_size_cells(parser->node);\n",
-  "> \n",
-  ">  \tif (!range)\n",
-  ">  \t\treturn NULL;\n",
-  "> \@\@ -265,6 +266,7 \@\@ struct of_pci_range *of_pci_range_parser_one(struct\n",
-  "> of_pci_range_parser *parser,\n",
-  ">  \trange->pci_addr = of_read_number(parser->range + 1, ns);\n",
-  ">  \trange->cpu_addr = of_translate_address(parser->node,\n",
-  ">  \t\t\t\tparser->range + na);\n",
-  "> +\trange->bus_addr = of_read_number(parser->range + na, p_ns);\n",
-  ">  \trange->size = of_read_number(parser->range + parser->pna + na,\n",
-  "> ns);\n",
-  "> \n",
-  ">  \tparser->range += parser->np;\n",
-  "> diff --git a/drivers/of/of_pci.c b/drivers/of/of_pci.c\n",
-  "> index 5751dc5..b171d02 100644\n",
-  "> --- a/drivers/of/of_pci.c\n",
-  "> +++ b/drivers/of/of_pci.c\n",
-  "> \@\@ -198,6 +198,7 \@\@ int of_pci_get_host_bridge_resources(struct\n",
-  "> device_node *dev,\n",
-  "> \n",
-  ">  \tpr_debug(\"Parsing ranges property...\\n\");\n",
-  ">  \tfor_each_of_pci_range(&parser, &range) {\n",
-  "> +\t\tstruct resource_entry *entry;\n",
-  ">  \t\t/* Read next ranges element */\n",
-  ">  \t\tif ((range.flags & IORESOURCE_TYPE_BITS) == IORESOURCE_IO)\n",
-  ">  \t\t\tsnprintf(range_type, 4, \" IO\");\n",
-  "> \@\@ -240,6 +241,9 \@\@ int of_pci_get_host_bridge_resources(struct\n",
-  "> device_node *dev,\n",
-  ">  \t\t}\n",
-  "> \n",
-  ">  \t\tpci_add_resource_offset(resources, res,\tres->start -\n",
-  "> range.pci_addr);\n",
-  "> +\t\tentry = list_last_entry(resources, struct resource_entry,\n",
-  "> node);\n",
-  "> +\t\t/*we are using __res for storing the PCI controller\n",
-  "> address*/\n",
-  "> +\t\tentry->__res.start = range.bus_addr;\n",
-  ">  \t}\n",
-  "> \n",
-  ">  \treturn 0;\n",
-  "> diff --git a/include/linux/of_address.h b/include/linux/of_address.h\n",
-  "> index d88e81b..865f96e 100644\n",
-  "> --- a/include/linux/of_address.h\n",
-  "> +++ b/include/linux/of_address.h\n",
-  "> \@\@ -16,6 +16,7 \@\@ struct of_pci_range {\n",
-  ">  \tu32 pci_space;\n",
-  ">  \tu64 pci_addr;\n",
-  ">  \tu64 cpu_addr;\n",
-  "> +\tu64 bus_addr;\n",
-  ">  \tu64 size;\n",
-  ">  \tu32 flags;\n",
-  ">  };\n",
-  "> --\n",
-  "> 1.9.1"
+  "QW55IGNvbW1lbnQgb24gdGhpcyBwYXRjaD8NCg0KVGhpcyBpcyBuZWVkZWQgYnkgIltQQVRDSCB2\n",
+  "NCAyLzVdIFBDSTogZGVzaWdud2FyZTogQWRkIEFSTTY0IHN1cHBvcnQiDQoNClRoYW5rcw0KDQpH\n",
+  "YWINCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBHYWJyaWVsZSBQYW9s\n",
+  "b25pDQo+IFNlbnQ6IFR1ZXNkYXksIEp1bHkgMTQsIDIwMTUgMTE6NDcgQU0NCj4gVG86IEdhYnJp\n",
+  "ZWxlIFBhb2xvbmk7IGFybmRAYXJuZGIuZGU7IGxvcmVuem8ucGllcmFsaXNpQGFybS5jb207DQo+\n",
+  "IFdhbmd6aG91IChCKTsgYmhlbGdhYXNAZ29vZ2xlLmNvbTsgcm9iaCtkdEBrZXJuZWwub3JnOw0K\n",
+  "PiBqYW1lcy5tb3JzZUBhcm0uY29tOyBMaXZpdS5EdWRhdUBhcm0uY29tDQo+IENjOiBsaW51eC1w\n",
+  "Y2lAdmdlci5rZXJuZWwub3JnOyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7\n",
+  "DQo+IGRldmljZXRyZWVAdmdlci5rZXJuZWwub3JnOyBZdWFuemhpY2hhbmc7IFpodWRhY2FpOyB6\n",
+  "aGFuZ2p1a3VvOw0KPiBxaXV6aGVuZmE7IExpZ3Vvemh1IChLZW5uZXRoKQ0KPiBTdWJqZWN0OiBb\n",
+  "UEFUQ0ggdjJdIFBDSTogU3RvcmUgUENJZSBidXMgYWRkcmVzcyBpbiBzdHJ1Y3Qgb2ZfcGNpX3Jh\n",
+  "bmdlDQo+IA0KPiBGcm9tOiBnYWJyaWVsZSBwYW9sb25pIDxnYWJyaWVsZS5wYW9sb25pQGh1YXdl\n",
+  "aS5jb20+DQo+IA0KPiAgICAgVGhpcyBwYXRjaCBpcyBuZWVkZWQgcG9ydCBQQ0llIGRlc2lnbndh\n",
+  "cmUgdG8gbmV3IERUIHBhcnNpbmcgQVBJDQo+ICAgICBBcyBkaXNjdXNzZWQgaW4NCj4gICAgIGh0\n",
+  "dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL3BpcGVybWFpbC9saW51eC1hcm0ta2VybmVsLzIwMTUt\n",
+  "DQo+IEphbnVhcnkvMzE3NzQzLmh0bWwNCj4gICAgIGluIGRlc2lnbndhcmUgd2UgaGF2ZSBhIHBy\n",
+  "b2JsZW0gYXMgdGhlIFBDSSBhZGRyZXNzZXMgaW4gdGhlIFBDSWUNCj4gY29udHJvbGxlcg0KPiAg\n",
+  "ICAgYWRkcmVzcyBzcGFjZSBhcmUgcmVxdWlyZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSBjb3JyZWN0\n",
+  "IEhXIG9wZXJhdGlvbi4NCj4gDQo+ICAgICBJbiBvcmRlciB0byBzb2x2ZSB0aGlzIHByb2JsZW0g\n",
+  "Y29tbWl0DQo+ICAgICBmNGM1NWM1YTMgIlBDSTogZGVzaWdud2FyZTogUHJvZ3JhbSBBVFUgd2l0\n",
+  "aCB1bnRyYW5zbGF0ZWQgYWRkcmVzcyINCj4gICAgIGFkZGVkIGNvZGUgdG8gcmVhZCB0aGUgUENJ\n",
+  "ZSBjb250cm9sbGVyIHN0YXJ0IGFkZHJlc3MgZGlyZWN0bHkgZnJvbQ0KPiB0aGUNCj4gICAgIERU\n",
+  "IHJhbmdlcy4NCj4gDQo+ICAgICBJbiB0aGUgbmV3IERUIHBhcnNpbmcgQVBJIG9mX3BjaV9nZXRf\n",
+  "aG9zdF9icmlkZ2VfcmVzb3VyY2VzKCkgaGlkZXMNCj4gdGhlDQo+ICAgICBEVCBwYXJzZXIgZnJv\n",
+  "bSB0aGUgaG9zdCBjb250cm9sbGVyIGRyaXZlcnMsIHNvIGl0IGlzIG5vdCBwb3NzaWJsZQ0KPiAg\n",
+  "ICAgZm9yIGRyaXZlcnMgdG8gcGFyc2UgdmFsdWVzIGRpcmVjdGx5IGZyb20gdGhlIERULg0KPiAN\n",
+  "Cj4gICAgIEluIGh0dHA6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvbGludXgtcGNpL21zZzQyNTQw\n",
+  "Lmh0bWwgd2UgYWxyZWFkeQ0KPiB0cmllZA0KPiAgICAgdG8gdXNlIHRoZSBuZXcgRFQgcGFyc2lu\n",
+  "ZyBBUEkgYnV0IHRoZXJlIGlzIGEgYnVnIChvYnZpb3VzbHkpIGluDQo+IHNldHRpbmcNCj4gICAg\n",
+  "IHRoZSA8Kj5fbW9kX2Jhc2UgYWRkcmVzc2VzDQo+ICAgICBBcHBseWluZyB0aGlzIHBhdGNoIHdl\n",
+  "IGNhbiBlYXNpbHkgc2V0ICI8Kj5fbW9kX2Jhc2UgPSB3aW4tDQo+ID5fX3Jlcy5zdGFydCINCj4g\n",
+  "DQo+ICAgICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgZmllbGQgaW4gInN0cnVjdCBvZl9wY2lfcmFu\n",
+  "Z2UiIHRvIHN0b3JlIHRoZQ0KPiAgICAgcGNpIGJ1cyBzdGFydCBhZGRyZXNzOyBpdCBmaWxscyB0\n",
+  "aGUgZmllbGQgaW4NCj4gb2ZfcGNpX3JhbmdlX3BhcnNlcl9vbmUoKTsNCj4gICAgIGluIG9mX3Bj\n",
+  "aV9nZXRfaG9zdF9icmlkZ2VfcmVzb3VyY2VzKCkgaXQgcmV0cmlldmVzIHRoZSByZXNvdXJjZQ0K\n",
+  "PiBlbnRyeQ0KPiAgICAgYWZ0ZXIgaXQgaXMgY3JlYXRlZCBhbmQgYWRkZWQgdG8gdGhlIHJlc291\n",
+  "cmNlIGxpc3QgYW5kIHVzZXMNCj4gICAgIGVudHJ5LT5fX3Jlcy5zdGFydCB0byBzdG9yZSB0aGUg\n",
+  "cGNpIGNvbnRyb2xsZXIgYWRkcmVzcw0KPiANCj4gICAgIHRoZSBwYXRjaCBpcyBiYXNlZCBvbiA0\n",
+  "LjItcmMxDQo+IA0KPiAgICAgU2lnbmVkLW9mZi1ieTogR2FicmllbGUgUGFvbG9uaSA8Z2Ficmll\n",
+  "bGUucGFvbG9uaUBodWF3ZWkuY29tPg0KPiAtLS0NCj4gIGRyaXZlcnMvb2YvYWRkcmVzcy5jICAg\n",
+  "ICAgIHwgMiArKw0KPiAgZHJpdmVycy9vZi9vZl9wY2kuYyAgICAgICAgfCA0ICsrKysNCj4gIGlu\n",
+  "Y2x1ZGUvbGludXgvb2ZfYWRkcmVzcy5oIHwgMSArDQo+ICAzIGZpbGVzIGNoYW5nZWQsIDcgaW5z\n",
+  "ZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvb2YvYWRkcmVzcy5jIGIvZHJp\n",
+  "dmVycy9vZi9hZGRyZXNzLmMNCj4gaW5kZXggOGJmZGE2YS4uMjNhNTc5MyAxMDA2NDQNCj4gLS0t\n",
+  "IGEvZHJpdmVycy9vZi9hZGRyZXNzLmMNCj4gKysrIGIvZHJpdmVycy9vZi9hZGRyZXNzLmMNCj4g\n",
+  "QEAgLTI1Myw2ICsyNTMsNyBAQCBzdHJ1Y3Qgb2ZfcGNpX3JhbmdlICpvZl9wY2lfcmFuZ2VfcGFy\n",
+  "c2VyX29uZShzdHJ1Y3QNCj4gb2ZfcGNpX3JhbmdlX3BhcnNlciAqcGFyc2VyLA0KPiAgCQkJCQkJ\n",
+  "c3RydWN0IG9mX3BjaV9yYW5nZSAqcmFuZ2UpDQo+ICB7DQo+ICAJY29uc3QgaW50IG5hID0gMywg\n",
+  "bnMgPSAyOw0KPiArCWNvbnN0IGludCBwX25zID0gb2Zfbl9zaXplX2NlbGxzKHBhcnNlci0+bm9k\n",
+  "ZSk7DQo+IA0KPiAgCWlmICghcmFuZ2UpDQo+ICAJCXJldHVybiBOVUxMOw0KPiBAQCAtMjY1LDYg\n",
+  "KzI2Niw3IEBAIHN0cnVjdCBvZl9wY2lfcmFuZ2UgKm9mX3BjaV9yYW5nZV9wYXJzZXJfb25lKHN0\n",
+  "cnVjdA0KPiBvZl9wY2lfcmFuZ2VfcGFyc2VyICpwYXJzZXIsDQo+ICAJcmFuZ2UtPnBjaV9hZGRy\n",
+  "ID0gb2ZfcmVhZF9udW1iZXIocGFyc2VyLT5yYW5nZSArIDEsIG5zKTsNCj4gIAlyYW5nZS0+Y3B1\n",
+  "X2FkZHIgPSBvZl90cmFuc2xhdGVfYWRkcmVzcyhwYXJzZXItPm5vZGUsDQo+ICAJCQkJcGFyc2Vy\n",
+  "LT5yYW5nZSArIG5hKTsNCj4gKwlyYW5nZS0+YnVzX2FkZHIgPSBvZl9yZWFkX251bWJlcihwYXJz\n",
+  "ZXItPnJhbmdlICsgbmEsIHBfbnMpOw0KPiAgCXJhbmdlLT5zaXplID0gb2ZfcmVhZF9udW1iZXIo\n",
+  "cGFyc2VyLT5yYW5nZSArIHBhcnNlci0+cG5hICsgbmEsDQo+IG5zKTsNCj4gDQo+ICAJcGFyc2Vy\n",
+  "LT5yYW5nZSArPSBwYXJzZXItPm5wOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9vZi9vZl9wY2ku\n",
+  "YyBiL2RyaXZlcnMvb2Yvb2ZfcGNpLmMNCj4gaW5kZXggNTc1MWRjNS4uYjE3MWQwMiAxMDA2NDQN\n",
+  "Cj4gLS0tIGEvZHJpdmVycy9vZi9vZl9wY2kuYw0KPiArKysgYi9kcml2ZXJzL29mL29mX3BjaS5j\n",
+  "DQo+IEBAIC0xOTgsNiArMTk4LDcgQEAgaW50IG9mX3BjaV9nZXRfaG9zdF9icmlkZ2VfcmVzb3Vy\n",
+  "Y2VzKHN0cnVjdA0KPiBkZXZpY2Vfbm9kZSAqZGV2LA0KPiANCj4gIAlwcl9kZWJ1ZygiUGFyc2lu\n",
+  "ZyByYW5nZXMgcHJvcGVydHkuLi5cbiIpOw0KPiAgCWZvcl9lYWNoX29mX3BjaV9yYW5nZSgmcGFy\n",
+  "c2VyLCAmcmFuZ2UpIHsNCj4gKwkJc3RydWN0IHJlc291cmNlX2VudHJ5ICplbnRyeTsNCj4gIAkJ\n",
+  "LyogUmVhZCBuZXh0IHJhbmdlcyBlbGVtZW50ICovDQo+ICAJCWlmICgocmFuZ2UuZmxhZ3MgJiBJ\n",
+  "T1JFU09VUkNFX1RZUEVfQklUUykgPT0gSU9SRVNPVVJDRV9JTykNCj4gIAkJCXNucHJpbnRmKHJh\n",
+  "bmdlX3R5cGUsIDQsICIgSU8iKTsNCj4gQEAgLTI0MCw2ICsyNDEsOSBAQCBpbnQgb2ZfcGNpX2dl\n",
+  "dF9ob3N0X2JyaWRnZV9yZXNvdXJjZXMoc3RydWN0DQo+IGRldmljZV9ub2RlICpkZXYsDQo+ICAJ\n",
+  "CX0NCj4gDQo+ICAJCXBjaV9hZGRfcmVzb3VyY2Vfb2Zmc2V0KHJlc291cmNlcywgcmVzLAlyZXMt\n",
+  "PnN0YXJ0IC0NCj4gcmFuZ2UucGNpX2FkZHIpOw0KPiArCQllbnRyeSA9IGxpc3RfbGFzdF9lbnRy\n",
+  "eShyZXNvdXJjZXMsIHN0cnVjdCByZXNvdXJjZV9lbnRyeSwNCj4gbm9kZSk7DQo+ICsJCS8qd2Ug\n",
+  "YXJlIHVzaW5nIF9fcmVzIGZvciBzdG9yaW5nIHRoZSBQQ0kgY29udHJvbGxlcg0KPiBhZGRyZXNz\n",
+  "Ki8NCj4gKwkJZW50cnktPl9fcmVzLnN0YXJ0ID0gcmFuZ2UuYnVzX2FkZHI7DQo+ICAJfQ0KPiAN\n",
+  "Cj4gIAlyZXR1cm4gMDsNCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvb2ZfYWRkcmVzcy5o\n",
+  "IGIvaW5jbHVkZS9saW51eC9vZl9hZGRyZXNzLmgNCj4gaW5kZXggZDg4ZTgxYi4uODY1Zjk2ZSAx\n",
+  "MDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9saW51eC9vZl9hZGRyZXNzLmgNCj4gKysrIGIvaW5jbHVk\n",
+  "ZS9saW51eC9vZl9hZGRyZXNzLmgNCj4gQEAgLTE2LDYgKzE2LDcgQEAgc3RydWN0IG9mX3BjaV9y\n",
+  "YW5nZSB7DQo+ICAJdTMyIHBjaV9zcGFjZTsNCj4gIAl1NjQgcGNpX2FkZHI7DQo+ICAJdTY0IGNw\n",
+  "dV9hZGRyOw0KPiArCXU2NCBidXNfYWRkcjsNCj4gIAl1NjQgc2l6ZTsNCj4gIAl1MzIgZmxhZ3M7\n",
+  "DQo+ICB9Ow0KPiAtLQ0KPiAxLjkuMQ0KDQo="
 ]
 
-26dbd478b95fe4740d9f1950d4e8df4f0ae3a4e831cff5c8dff2893e912f7409
+1b738993f87cf8a8aeb674f6fe10ad0047a073cb5b35b673d54d93fc38d0a586

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.