From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gavin Shan Subject: [PATCH v7 09/50] powerpc/powernv: Fix initial IO and M32 segmap Date: Thu, 5 Nov 2015 00:12:09 +1100 Message-ID: <1446642770-4681-10-git-send-email-gwshan@linux.vnet.ibm.com> References: <1446642770-4681-1-git-send-email-gwshan@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1446642770-4681-1-git-send-email-gwshan@linux.vnet.ibm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" To: linuxppc-dev@lists.ozlabs.org Cc: devicetree@vger.kernel.org, aik@ozlabs.ru, linux-pci@vger.kernel.org, panto@antoniou-consulting.com, Gavin Shan , grant.likely@linaro.org, robherring2@gmail.com, bhelgaas@google.com, frowand.list@gmail.com List-Id: devicetree@vger.kernel.org VGhlcmUgYXJlIHR3byBhcnJheXMgZm9yIElPIGFuZCBNMzIgc2VnbWVudCBtYXBzIG9uIGV2ZXJ5 IFBIQi4KVGhlIGluZGV4IG9mIHRoZSBhcnJheXMgYXJlIHNlZ21lbnQgbnVtYmVyIGFuZCB0aGUg dmFsdWUgc3RvcmVkCmluIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaXMgUEUgbnVtYmVyLCBp bmRpY2F0aW5nIHRoZSBzZWdtZW50CmlzIGFzc2lnbmVkIHRvIHRoZSBQRS4gSW5pdGlhbGx5LCBh bGwgZWxlbWVudHMgaW4gdGhvc2UgdHdvIGFycmF5cwphcmUgemVyb2VzLCBtZWFuaW5nIGFsbCBz ZWdtZW50cyBhcmUgYXNzaWduZWQgdG8gUEUjMC4gSXQncyB3cm9uZy4KClRoaXMgZml4ZXMgdGhl IGluaXRpYWwgdmFsdWVzIGluIHRoZSBlbGVtZW50cyBvZiB0aG9zZSB0d28gYXJyYXlzCnRvIElP REFfSU5WQUxJRF9QRSwgbWVhbmluZyBhbGwgc2VnbWVudHMgYXJlbid0IGFzc2lnbmVkIHRvIGFu eQpQRS4gSW4gb3JkZXIgdG8gdXNlIElPREFfSU5WQUxJRF9QRSAoLTEpIHRvIHJlcHJlc2VudCBp bnZhbGlkIFBFCm51bWJlciwgdGhlIHR5cGVzIG9mIHRob3NlIHR3byBhcnJheXMgYXJlIGNoYW5n ZWQgZnJvbSAidW5zaWduZWQgaW50Igp0byAiaW50Ii4KClNpZ25lZC1vZmYtYnk6IEdhdmluIFNo YW4gPGd3c2hhbkBsaW51eC52bmV0LmlibS5jb20+Ci0tLQogYXJjaC9wb3dlcnBjL3BsYXRmb3Jt cy9wb3dlcm52L3BjaS1pb2RhLmMgfCA5ICsrKysrKystLQogYXJjaC9wb3dlcnBjL3BsYXRmb3Jt cy9wb3dlcm52L3BjaS5oICAgICAgfCA0ICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRp b25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9y bXMvcG93ZXJudi9wY2ktaW9kYS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3Bj aS1pb2RhLmMKaW5kZXggYjQ5MzJjMy4uN2VlN2NmZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBj L3BsYXRmb3Jtcy9wb3dlcm52L3BjaS1pb2RhLmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jt cy9wb3dlcm52L3BjaS1pb2RhLmMKQEAgLTMwMDgsNyArMzAwOCw3IEBAIHN0YXRpYyB2b2lkIF9f aW5pdCBwbnZfcGNpX2luaXRfaW9kYV9waGIoc3RydWN0IGRldmljZV9ub2RlICpucCwKIAl1bnNp Z25lZCBsb25nIHNpemUsIG0zMm1hcF9vZmYsIHBlbWFwX29mZiwgaW9tYXBfb2ZmID0gMDsKIAlj b25zdCBfX2JlNjQgKnByb3A2NDsKIAljb25zdCBfX2JlMzIgKnByb3AzMjsKLQlpbnQgbGVuOwor CWludCBpLCBsZW47CiAJdTY0IHBoYl9pZDsKIAl2b2lkICphdXg7CiAJbG9uZyByYzsKQEAgLTMx MDEsOCArMzEwMSwxMyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcG52X3BjaV9pbml0X2lvZGFfcGhi KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJYXV4ID0gbWVtYmxvY2tfdmlydF9hbGxvYyhzaXpl LCAwKTsKIAlwaGItPmlvZGEucGVfYWxsb2MgPSBhdXg7CiAJcGhiLT5pb2RhLm0zMl9zZWdtYXAg PSBhdXggKyBtMzJtYXBfb2ZmOwotCWlmIChwaGItPnR5cGUgPT0gUE5WX1BIQl9JT0RBMSkKKwlm b3IgKGkgPSAwOyBpIDwgcGhiLT5pb2RhLnRvdGFsX3BlX251bTsgaSsrKQorCQlwaGItPmlvZGEu bTMyX3NlZ21hcFtpXSA9IElPREFfSU5WQUxJRF9QRTsKKwlpZiAocGhiLT50eXBlID09IFBOVl9Q SEJfSU9EQTEpIHsKIAkJcGhiLT5pb2RhLmlvX3NlZ21hcCA9IGF1eCArIGlvbWFwX29mZjsKKwkJ Zm9yIChpID0gMDsgaSA8IHBoYi0+aW9kYS50b3RhbF9wZV9udW07IGkrKykKKwkJCXBoYi0+aW9k YS5pb19zZWdtYXBbaV0gPSBJT0RBX0lOVkFMSURfUEU7CisJfQogCXBoYi0+aW9kYS5wZV9hcnJh eSA9IGF1eCArIHBlbWFwX29mZjsKIAlzZXRfYml0KHBoYi0+aW9kYS5yZXNlcnZlZF9wZV9pZHgs IHBoYi0+aW9kYS5wZV9hbGxvYyk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9y bXMvcG93ZXJudi9wY2kuaCBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wY2kuaApp bmRleCBkMTFmMGE1Li4yZTAxZWRkIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1z L3Bvd2VybnYvcGNpLmgKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3BjaS5o CkBAIC0xNDgsOCArMTQ4LDggQEAgc3RydWN0IHBudl9waGIgewogCQkJc3RydWN0IHBudl9pb2Rh X3BlCSpwZV9hcnJheTsKIAogCQkJLyogTTMyICYgSU8gc2VnbWVudCBtYXBzICovCi0JCQl1bnNp Z25lZCBpbnQJCSptMzJfc2VnbWFwOwotCQkJdW5zaWduZWQgaW50CQkqaW9fc2VnbWFwOworCQkJ aW50CQkJKm0zMl9zZWdtYXA7CisJCQlpbnQJCQkqaW9fc2VnbWFwOwogCiAJCQkvKiBJUlEgY2hp cCAqLwogCQkJaW50CQkJaXJxX2NoaXBfaW5pdDsKLS0gCjIuMS4wCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eHBwYy1kZXYgbWFpbGluZyBsaXN0 CkxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnCmh0dHBzOi8vbGlzdHMub3psYWJzLm9yZy9s aXN0aW5mby9saW51eHBwYy1kZXY= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from e28smtp05.in.ibm.com ([122.248.162.5]:58272 "EHLO e28smtp05.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965444AbbKDOYh (ORCPT ); Wed, 4 Nov 2015 09:24:37 -0500 Received: from /spool/local by e28smtp05.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 4 Nov 2015 19:54:34 +0530 From: Gavin Shan To: linuxppc-dev@lists.ozlabs.org Cc: linux-pci@vger.kernel.org, devicetree@vger.kernel.org, benh@kernel.crashing.org, mpe@ellerman.id.au, aik@ozlabs.ru, bhelgaas@google.com, grant.likely@linaro.org, robherring2@gmail.com, panto@antoniou-consulting.com, frowand.list@gmail.com, Gavin Shan Subject: [PATCH v7 09/50] powerpc/powernv: Fix initial IO and M32 segmap Date: Thu, 5 Nov 2015 00:12:09 +1100 Message-Id: <1446642770-4681-10-git-send-email-gwshan@linux.vnet.ibm.com> In-Reply-To: <1446642770-4681-1-git-send-email-gwshan@linux.vnet.ibm.com> References: <1446642770-4681-1-git-send-email-gwshan@linux.vnet.ibm.com> Sender: linux-pci-owner@vger.kernel.org List-ID: There are two arrays for IO and M32 segment maps on every PHB. The index of the arrays are segment number and the value stored in the corresponding element is PE number, indicating the segment is assigned to the PE. Initially, all elements in those two arrays are zeroes, meaning all segments are assigned to PE#0. It's wrong. This fixes the initial values in the elements of those two arrays to IODA_INVALID_PE, meaning all segments aren't assigned to any PE. In order to use IODA_INVALID_PE (-1) to represent invalid PE number, the types of those two arrays are changed from "unsigned int" to "int". Signed-off-by: Gavin Shan --- arch/powerpc/platforms/powernv/pci-ioda.c | 9 +++++++-- arch/powerpc/platforms/powernv/pci.h | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c index b4932c3..7ee7cfe 100644 --- a/arch/powerpc/platforms/powernv/pci-ioda.c +++ b/arch/powerpc/platforms/powernv/pci-ioda.c @@ -3008,7 +3008,7 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, unsigned long size, m32map_off, pemap_off, iomap_off = 0; const __be64 *prop64; const __be32 *prop32; - int len; + int i, len; u64 phb_id; void *aux; long rc; @@ -3101,8 +3101,13 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, aux = memblock_virt_alloc(size, 0); phb->ioda.pe_alloc = aux; phb->ioda.m32_segmap = aux + m32map_off; - if (phb->type == PNV_PHB_IODA1) + for (i = 0; i < phb->ioda.total_pe_num; i++) + phb->ioda.m32_segmap[i] = IODA_INVALID_PE; + if (phb->type == PNV_PHB_IODA1) { phb->ioda.io_segmap = aux + iomap_off; + for (i = 0; i < phb->ioda.total_pe_num; i++) + phb->ioda.io_segmap[i] = IODA_INVALID_PE; + } phb->ioda.pe_array = aux + pemap_off; set_bit(phb->ioda.reserved_pe_idx, phb->ioda.pe_alloc); diff --git a/arch/powerpc/platforms/powernv/pci.h b/arch/powerpc/platforms/powernv/pci.h index d11f0a5..2e01edd 100644 --- a/arch/powerpc/platforms/powernv/pci.h +++ b/arch/powerpc/platforms/powernv/pci.h @@ -148,8 +148,8 @@ struct pnv_phb { struct pnv_ioda_pe *pe_array; /* M32 & IO segment maps */ - unsigned int *m32_segmap; - unsigned int *io_segmap; + int *m32_segmap; + int *io_segmap; /* IRQ chip */ int irq_chip_init; -- 2.1.0