From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB66EC282CE for ; Fri, 12 Apr 2019 08:36:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 658432184B for ; Fri, 12 Apr 2019 08:36:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="eu53ifXi" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727760AbfDLIgQ (ORCPT ); Fri, 12 Apr 2019 04:36:16 -0400 Received: from mail-eopbgr80053.outbound.protection.outlook.com ([40.107.8.53]:4153 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726875AbfDLIgP (ORCPT ); Fri, 12 Apr 2019 04:36:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gp9YtnB4iUaVXUZLhRjAvu+m7Z2jChTox4X626rKerQ=; b=eu53ifXisaS6+MazwSJN6oKjl2KMN1dHoQmq1JVOmeTfuugFsjwkGr7bFQaDMiYhK3iIEbHWBsi2Y1kUpxET15n3CNH3GAHlaYwBuY4oAv373HMmDFJ7drrV2FJ/BRW63x+aDqMz4Aov1WZ30eJ54EGCEi3LsAMiJ8XijKmogf8= Received: from AM6PR04MB5781.eurprd04.prod.outlook.com (20.179.3.19) by AM6PR04MB5846.eurprd04.prod.outlook.com (20.179.3.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1792.18; Fri, 12 Apr 2019 08:36:06 +0000 Received: from AM6PR04MB5781.eurprd04.prod.outlook.com ([fe80::f9db:ed86:614e:460]) by AM6PR04MB5781.eurprd04.prod.outlook.com ([fe80::f9db:ed86:614e:460%4]) with mapi id 15.20.1792.009; Fri, 12 Apr 2019 08:36:06 +0000 From: "Z.q. Hou" To: "linux-pci@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "bhelgaas@google.com" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , "l.subrahmanya@mobiveil.co.in" , "shawnguo@kernel.org" , Leo Li , "lorenzo.pieralisi@arm.com" , "catalin.marinas@arm.com" , "will.deacon@arm.com" CC: Mingkai Hu , "M.h. Lian" , Xiaowei Bao , "Z.q. Hou" Subject: [PATCHv5 09/20] PCI: mobiveil: Correct inbound/outbound window setup routines Thread-Topic: [PATCHv5 09/20] PCI: mobiveil: Correct inbound/outbound window setup routines Thread-Index: AQHU8QrFfxj3itSLU0yAx2so+j68jQ== Date: Fri, 12 Apr 2019 08:36:06 +0000 Message-ID: <20190412083635.33626-10-Zhiqiang.Hou@nxp.com> References: <20190412083635.33626-1-Zhiqiang.Hou@nxp.com> In-Reply-To: <20190412083635.33626-1-Zhiqiang.Hou@nxp.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HK2PR06CA0011.apcprd06.prod.outlook.com (2603:1096:202:2e::23) To AM6PR04MB5781.eurprd04.prod.outlook.com (2603:10a6:20b:ad::19) authentication-results: spf=none (sender IP is ) smtp.mailfrom=zhiqiang.hou@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [119.31.174.73] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 92de0ac2-1796-437a-bbf9-08d6bf21e7bc x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600139)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:AM6PR04MB5846; x-ms-traffictypediagnostic: AM6PR04MB5846: x-microsoft-antispam-prvs: x-forefront-prvs: 0005B05917 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(366004)(376002)(396003)(346002)(136003)(189003)(199004)(54534003)(486006)(478600001)(2616005)(476003)(316002)(446003)(11346002)(305945005)(7736002)(81166006)(25786009)(81156014)(256004)(14454004)(8676002)(7416002)(4326008)(186003)(50226002)(26005)(8936002)(68736007)(2906002)(53936002)(102836004)(6512007)(66066001)(86362001)(99286004)(106356001)(6116002)(3846002)(6436002)(97736004)(1076003)(6506007)(386003)(52116002)(2201001)(105586002)(6486002)(36756003)(71200400001)(110136005)(54906003)(5660300002)(2501003)(71190400001)(76176011)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR04MB5846;H:AM6PR04MB5781.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: rDOr7VCltQ0PRoI4+XQuPlX/rrvxifIDa3HIDUR+hWb/U7it84KolGUpwZHRjWr0piHXOmDC+8E9kAgmKSsoswTBhS8bFAGHpfMHK/H1cB89+W8cBc1BFYJnszHhTqpOQPqw6Jn9gRZKQv/sUeOlQPv2z7DCFRtxgMe8Qx6KV7REwthq8IPG5/i4pMIoqQyNXDBf9aWX7V76RKG+vKTVkGDWpSJAxrFOMm9pz/LH/+GQcHRsqClVI0iz7M3gicDbCScrIAgqHMVyreki8TGvj8IiUvnmcWqD+PexbOMMuM43VT/suZ6bvEUkuxr73VNSyWzz43kASZsSz5pgmTfRYE0iQAlvhTLD/5y/w+5GrMOA5fCkgNBMPhaR8SKOoBypFAu+9MiSHLtX312nEq085T7rQDnZ2GXp0qBhbr8aDL8= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92de0ac2-1796-437a-bbf9-08d6bf21e7bc X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2019 08:36:06.6618 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5846 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RnJvbTogSG91IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhwLmNvbT4NCg0KT3V0Ym91bmQgd2lu ZG93IHJvdXRpbmU6DQogLSBSZW1vdmUgdW51c2VkIHZhciBkZWZpbml0aW9ucyBhbmQgcmVnaXN0 ZXIgcmVhZCBvcGVyYXRpb25zLg0KIC0gQWRkIHRoZSB1cHBlciAzMi1iaXQgY3B1IGFkZHJlc3Mg c2V0dXAgb2YgdGhlIHdpbmRvdy4NCiAtIEluc3RlYWQgb2YgYmxpbmRseSB3cml0ZSwgb25seSBj aGFuZ2UgdGhlIGZpZWxkcyBzcGVjaWZpZWQuDQogLSBNYXNrIHRoZSBsb3dlciBiaXRzIG9mIHdp bmRvdyBzaXplIGluIGNhc2Ugb3ZlcnJpZGUgdGhlDQogICBjb250cm9sIGJpdHMuDQogLSBDaGVj ayBpZiB0aGUgcGFzc2luZyB3aW5kb3cgbnVtYmVyIGlzIGF2YWlsYWJsZSwgaW5zdGVhZCBvZg0K ICAgdGhlIHRvdGFsIG51bWJlciBvZiB0aGUgaW5pdGlhbGl6ZWQgd2luZG93cy4NCg0KSW5ib3Vu ZCB3aW5kb3cgcm91dGluZToNCiAtIEFkZCBwYXJhbWV0ZXIgJ3U2NCBjcHVfYWRkcicgdG8gc3Bl Y2lmeSB0aGUgY3B1IGFkZHJlc3MNCiAgIG9mIHRoZSB3aW5kb3cgaW5zdGVhZCBvZiB1c2luZyAn cGNpX2FkZHInLg0KIC0gQ2hhbmdlICdpbnQgcGNpX2FkZHInIHRvICd1NjQgcGNpX2FkZHInLCBh bmQgYWRkIHNldHVwDQogICBvZiB0aGUgdXBwZXIgMzItYml0IFBDSSBhZGRyZXNzIG9mIHRoZSB3 aW5kb3cuDQogLSBNb3ZlIHRoZSBQQ0llIFBJTyBtYXN0ZXIgZW5hYmxlbWVudCB0byBtb2JpdmVp bF9ob3N0X2luaXQoKS4NCiAtIEluc3RlYWQgb2YgYmxpbmRseSB3cml0ZSwgb25seSBjaGFuZ2Ug dGhlIGZpZWxkcyBzcGVjaWZpZWQuDQogLSBNYXNrIHRoZSBsb3dlciBiaXRzIG9mIHdpbmRvdyBz aXplIGluIGNhc2Ugb3ZlcnJpZGUgdGhlDQogICBjb250cm9sIGJpdHMuDQogLSBDaGVjayBpZiB0 aGUgcGFzc2luZyB3aW5kb3cgbnVtYmVyIGlzIGF2YWlsYWJsZSwgaW5zdGVhZCBvZg0KICAgdGhl IHRvdGFsIG51bWJlciBvZiB0aGUgaW5pdGlhbGl6ZWQgd2luZG93cy4NCiAtIEFuZCBhZGQgdGhl IHN0YXRpc3RpYyBvZiBpbml0aWFsaXplZCBpbmJvdW5kIHdpbmRvd3MuDQoNCkZpeGVzOiA5YWY2 YmNiMTFlMTIgKCJQQ0k6IG1vYml2ZWlsOiBBZGQgTW9iaXZlaWwgUENJZSBIb3N0IEJyaWRnZSBJ UCBkcml2ZXIiKQ0KU2lnbmVkLW9mZi1ieTogSG91IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhw LmNvbT4NClJldmlld2VkLWJ5OiBNaW5naHVhbiBMaWFuIDxNaW5naHVhbi5MaWFuQG54cC5jb20+ DQpSZXZpZXdlZC1ieTogU3VicmFobWFueWEgTGluZ2FwcGEgPGwuc3VicmFobWFueWFAbW9iaXZl aWwuY28uaW4+DQotLS0NClY1Og0KIC0gQ29ycmVjdGVkIGFuZCByZXRvdWNoZWQgdGhlIHN1Ympl Y3QgYW5kIGNoYW5nZWxvZy4NCg0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tb2JpdmVp bC5jIHwgNzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0NCiAxIGZpbGUgY2hhbmdlZCwgNDIg aW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaWUtbW9iaXZlaWwuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNp ZS1tb2JpdmVpbC5jDQppbmRleCBlODhhZmM3OTJhNWMuLjRiYTQ1ODQ3NGU0MiAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tb2JpdmVpbC5jDQorKysgYi9kcml2ZXJz L3BjaS9jb250cm9sbGVyL3BjaWUtbW9iaXZlaWwuYw0KQEAgLTY1LDkgKzY1LDEzIEBADQogI2Rl ZmluZSBQQUJfQVhJX0FNQVBfQ1RSTCh3aW4pCQlQQUJfUkVHX0FERFIoMHgwYmEwLCB3aW4pDQog I2RlZmluZSAgV0lOX0VOQUJMRV9TSElGVAkJMA0KICNkZWZpbmUgIFdJTl9UWVBFX1NISUZUCQkJ MQ0KKyNkZWZpbmUgIFdJTl9UWVBFX01BU0sJCQkweDMNCisjZGVmaW5lICBXSU5fU0laRV9TSElG VAkJCTEwDQorI2RlZmluZSAgV0lOX1NJWkVfTUFTSwkJCTB4M2ZmZmZmDQogDQogI2RlZmluZSBQ QUJfRVhUX0FYSV9BTUFQX1NJWkUod2luKQlQQUJfRVhUX1JFR19BRERSKDB4YmFmMCwgd2luKQ0K IA0KKyNkZWZpbmUgUEFCX0VYVF9BWElfQU1BUF9BWElfV0lOKHdpbikJUEFCX0VYVF9SRUdfQURE UigweDgwYTAsIHdpbikNCiAjZGVmaW5lIFBBQl9BWElfQU1BUF9BWElfV0lOKHdpbikJUEFCX1JF R19BRERSKDB4MGJhNCwgd2luKQ0KICNkZWZpbmUgIEFYSV9XSU5ET1dfQUxJR05fTUFTSwkJMw0K IA0KQEAgLTgyLDggKzg2LDEwIEBADQogI2RlZmluZSBQQUJfUEVYX0FNQVBfQ1RSTCh3aW4pCQlQ QUJfUkVHX0FERFIoMHg0YmEwLCB3aW4pDQogI2RlZmluZSAgQU1BUF9DVFJMX0VOX1NISUZUCQkw DQogI2RlZmluZSAgQU1BUF9DVFJMX1RZUEVfU0hJRlQJCTENCisjZGVmaW5lICBBTUFQX0NUUkxf VFlQRV9NQVNLCQkzDQogDQogI2RlZmluZSBQQUJfRVhUX1BFWF9BTUFQX1NJWkVOKHdpbikJUEFC X0VYVF9SRUdfQUREUigweGJlZjAsIHdpbikNCisjZGVmaW5lIFBBQl9FWFRfUEVYX0FNQVBfQVhJ X1dJTih3aW4pCVBBQl9FWFRfUkVHX0FERFIoMHhiNGEwLCB3aW4pDQogI2RlZmluZSBQQUJfUEVY X0FNQVBfQVhJX1dJTih3aW4pCVBBQl9SRUdfQUREUigweDRiYTQsIHdpbikNCiAjZGVmaW5lIFBB Ql9QRVhfQU1BUF9QRVhfV0lOX0wod2luKQlQQUJfUkVHX0FERFIoMHg0YmE4LCB3aW4pDQogI2Rl ZmluZSBQQUJfUEVYX0FNQVBfUEVYX1dJTl9IKHdpbikJUEFCX1JFR19BRERSKDB4NGJhYywgd2lu KQ0KQEAgLTQ1NSw0OSArNDYxLDUxIEBAIHN0YXRpYyBpbnQgbW9iaXZlaWxfcGNpZV9wYXJzZV9k dChzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSkNCiB9DQogDQogc3RhdGljIHZvaWQgcHJvZ3Jh bV9pYl93aW5kb3dzKHN0cnVjdCBtb2JpdmVpbF9wY2llICpwY2llLCBpbnQgd2luX251bSwNCi0J CQkgICAgICAgaW50IHBjaV9hZGRyLCB1MzIgdHlwZSwgdTY0IHNpemUpDQorCQkJICAgICAgIHU2 NCBjcHVfYWRkciwgdTY0IHBjaV9hZGRyLCB1MzIgdHlwZSwgdTY0IHNpemUpDQogew0KLQlpbnQg cGlvX2N0cmxfdmFsOw0KLQlpbnQgYW1hcF9jdHJsX2R3Ow0KKwl1MzIgdmFsdWU7DQogCXU2NCBz aXplNjQgPSB+KHNpemUgLSAxKTsNCiANCi0JaWYgKChwY2llLT5pYl93aW5zX2NvbmZpZ3VyZWQg KyAxKSA+IHBjaWUtPnBwaW9fd2lucykgew0KKwlpZiAod2luX251bSA+PSBwY2llLT5wcGlvX3dp bnMpIHsNCiAJCWRldl9lcnIoJnBjaWUtPnBkZXYtPmRldiwNCiAJCQkiRVJST1I6IG1heCBpbmJv dW5kIHdpbmRvd3MgcmVhY2hlZCAhXG4iKTsNCiAJCXJldHVybjsNCiAJfQ0KIA0KLQlwaW9fY3Ry bF92YWwgPSBjc3JfcmVhZGwocGNpZSwgUEFCX1BFWF9QSU9fQ1RSTCk7DQotCXBpb19jdHJsX3Zh bCB8PSAxIDw8IFBJT19FTkFCTEVfU0hJRlQ7DQotCWNzcl93cml0ZWwocGNpZSwgcGlvX2N0cmxf dmFsLCBQQUJfUEVYX1BJT19DVFJMKTsNCi0NCi0JYW1hcF9jdHJsX2R3ID0gY3NyX3JlYWRsKHBj aWUsIFBBQl9QRVhfQU1BUF9DVFJMKHdpbl9udW0pKTsNCi0JYW1hcF9jdHJsX2R3IHw9ICh0eXBl IDw8IEFNQVBfQ1RSTF9UWVBFX1NISUZUKSB8DQotCQkJKDEgPDwgQU1BUF9DVFJMX0VOX1NISUZU KSB8DQotCQkJbG93ZXJfMzJfYml0cyhzaXplNjQpOw0KLQljc3Jfd3JpdGVsKHBjaWUsIGFtYXBf Y3RybF9kdywgUEFCX1BFWF9BTUFQX0NUUkwod2luX251bSkpOw0KKwl2YWx1ZSA9IGNzcl9yZWFk bChwY2llLCBQQUJfUEVYX0FNQVBfQ1RSTCh3aW5fbnVtKSk7DQorCXZhbHVlICY9IH4oQU1BUF9D VFJMX1RZUEVfTUFTSyA8PCBBTUFQX0NUUkxfVFlQRV9TSElGVCB8DQorCQkgV0lOX1NJWkVfTUFT SyA8PCBXSU5fU0laRV9TSElGVCk7DQorCXZhbHVlIHw9ICh0eXBlIDw8IEFNQVBfQ1RSTF9UWVBF X1NISUZUKSB8ICgxIDw8IEFNQVBfQ1RSTF9FTl9TSElGVCkgfA0KKwkJIChsb3dlcl8zMl9iaXRz KHNpemU2NCkgJiBXSU5fU0laRV9NQVNLIDw8IFdJTl9TSVpFX1NISUZUKTsNCisJY3NyX3dyaXRl bChwY2llLCB2YWx1ZSwgUEFCX1BFWF9BTUFQX0NUUkwod2luX251bSkpOw0KIA0KIAljc3Jfd3Jp dGVsKHBjaWUsIHVwcGVyXzMyX2JpdHMoc2l6ZTY0KSwNCiAJCSAgIFBBQl9FWFRfUEVYX0FNQVBf U0laRU4od2luX251bSkpOw0KIA0KLQljc3Jfd3JpdGVsKHBjaWUsIHBjaV9hZGRyLCBQQUJfUEVY X0FNQVBfQVhJX1dJTih3aW5fbnVtKSk7DQorCWNzcl93cml0ZWwocGNpZSwgbG93ZXJfMzJfYml0 cyhjcHVfYWRkciksDQorCQkgICBQQUJfUEVYX0FNQVBfQVhJX1dJTih3aW5fbnVtKSk7DQorCWNz cl93cml0ZWwocGNpZSwgdXBwZXJfMzJfYml0cyhjcHVfYWRkciksDQorCQkgICBQQUJfRVhUX1BF WF9BTUFQX0FYSV9XSU4od2luX251bSkpOw0KKw0KKwljc3Jfd3JpdGVsKHBjaWUsIGxvd2VyXzMy X2JpdHMocGNpX2FkZHIpLA0KKwkJICAgUEFCX1BFWF9BTUFQX1BFWF9XSU5fTCh3aW5fbnVtKSk7 DQorCWNzcl93cml0ZWwocGNpZSwgdXBwZXJfMzJfYml0cyhwY2lfYWRkciksDQorCQkgICBQQUJf UEVYX0FNQVBfUEVYX1dJTl9IKHdpbl9udW0pKTsNCiANCi0JY3NyX3dyaXRlbChwY2llLCBwY2lf YWRkciwgUEFCX1BFWF9BTUFQX1BFWF9XSU5fTCh3aW5fbnVtKSk7DQotCWNzcl93cml0ZWwocGNp ZSwgMCwgUEFCX1BFWF9BTUFQX1BFWF9XSU5fSCh3aW5fbnVtKSk7DQorCXBjaWUtPmliX3dpbnNf Y29uZmlndXJlZCsrOw0KIH0NCiANCiAvKg0KICAqIHJvdXRpbmUgdG8gcHJvZ3JhbSB0aGUgb3V0 Ym91bmQgd2luZG93cw0KICAqLw0KIHN0YXRpYyB2b2lkIHByb2dyYW1fb2Jfd2luZG93cyhzdHJ1 Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSwgaW50IHdpbl9udW0sDQotCQkJICAgICAgIHU2NCBjcHVf YWRkciwgdTY0IHBjaV9hZGRyLA0KLQkJCSAgICAgICB1MzIgY29uZmlnX2lvX2JpdCwgdTY0IHNp emUpDQorCQkJICAgICAgIHU2NCBjcHVfYWRkciwgdTY0IHBjaV9hZGRyLCB1MzIgdHlwZSwgdTY0 IHNpemUpDQogew0KIA0KLQl1MzIgdmFsdWUsIHR5cGU7DQorCXUzMiB2YWx1ZTsNCiAJdTY0IHNp emU2NCA9IH4oc2l6ZSAtIDEpOw0KIA0KLQlpZiAoKHBjaWUtPm9iX3dpbnNfY29uZmlndXJlZCAr IDEpID4gcGNpZS0+YXBpb193aW5zKSB7DQorCWlmICh3aW5fbnVtID49IHBjaWUtPmFwaW9fd2lu cykgew0KIAkJZGV2X2VycigmcGNpZS0+cGRldi0+ZGV2LA0KIAkJCSJFUlJPUjogbWF4IG91dGJv dW5kIHdpbmRvd3MgcmVhY2hlZCAhXG4iKTsNCiAJCXJldHVybjsNCkBAIC01MDcsMTAgKzUxNSwx MiBAQCBzdGF0aWMgdm9pZCBwcm9ncmFtX29iX3dpbmRvd3Moc3RydWN0IG1vYml2ZWlsX3BjaWUg KnBjaWUsIGludCB3aW5fbnVtLA0KIAkgKiBwcm9ncmFtIEVuYWJsZSBCaXQgdG8gMSwgVHlwZSBC aXQgdG8gKDAwKSBiYXNlIDIsIEFYSSBXaW5kb3cgU2l6ZSBCaXQNCiAJICogdG8gNCBLQiBpbiBQ QUJfQVhJX0FNQVBfQ1RSTCByZWdpc3Rlcg0KIAkgKi8NCi0JdHlwZSA9IGNvbmZpZ19pb19iaXQ7 DQogCXZhbHVlID0gY3NyX3JlYWRsKHBjaWUsIFBBQl9BWElfQU1BUF9DVFJMKHdpbl9udW0pKTsN Ci0JY3NyX3dyaXRlbChwY2llLCAxIDw8IFdJTl9FTkFCTEVfU0hJRlQgfCB0eXBlIDw8IFdJTl9U WVBFX1NISUZUIHwNCi0JCSAgIGxvd2VyXzMyX2JpdHMoc2l6ZTY0KSwgUEFCX0FYSV9BTUFQX0NU Ukwod2luX251bSkpOw0KKwl2YWx1ZSAmPSB+KFdJTl9UWVBFX01BU0sgPDwgV0lOX1RZUEVfU0hJ RlQgfA0KKwkJIFdJTl9TSVpFX01BU0sgPDwgV0lOX1NJWkVfU0hJRlQpOw0KKwl2YWx1ZSB8PSAx IDw8IFdJTl9FTkFCTEVfU0hJRlQgfCB0eXBlIDw8IFdJTl9UWVBFX1NISUZUIHwNCisJCSAobG93 ZXJfMzJfYml0cyhzaXplNjQpICYgV0lOX1NJWkVfTUFTSyA8PCBXSU5fU0laRV9TSElGVCk7DQor CWNzcl93cml0ZWwocGNpZSwgdmFsdWUsIFBBQl9BWElfQU1BUF9DVFJMKHdpbl9udW0pKTsNCiAN CiAJY3NyX3dyaXRlbChwY2llLCB1cHBlcl8zMl9iaXRzKHNpemU2NCksIFBBQl9FWFRfQVhJX0FN QVBfU0laRSh3aW5fbnVtKSk7DQogDQpAQCAtNTE4LDExICs1MjgsMTAgQEAgc3RhdGljIHZvaWQg cHJvZ3JhbV9vYl93aW5kb3dzKHN0cnVjdCBtb2JpdmVpbF9wY2llICpwY2llLCBpbnQgd2luX251 bSwNCiAJICogcHJvZ3JhbSBBWEkgd2luZG93IGJhc2Ugd2l0aCBhcHByb3ByaWF0ZSB2YWx1ZSBp bg0KIAkgKiBQQUJfQVhJX0FNQVBfQVhJX1dJTjAgcmVnaXN0ZXINCiAJICovDQotCXZhbHVlID0g Y3NyX3JlYWRsKHBjaWUsIFBBQl9BWElfQU1BUF9BWElfV0lOKHdpbl9udW0pKTsNCi0JY3NyX3dy aXRlbChwY2llLCBjcHVfYWRkciAmICh+QVhJX1dJTkRPV19BTElHTl9NQVNLKSwNCisJY3NyX3dy aXRlbChwY2llLCBsb3dlcl8zMl9iaXRzKGNwdV9hZGRyKSAmICh+QVhJX1dJTkRPV19BTElHTl9N QVNLKSwNCiAJCSAgIFBBQl9BWElfQU1BUF9BWElfV0lOKHdpbl9udW0pKTsNCi0NCi0JdmFsdWUg PSBjc3JfcmVhZGwocGNpZSwgUEFCX0FYSV9BTUFQX1BFWF9XSU5fSCh3aW5fbnVtKSk7DQorCWNz cl93cml0ZWwocGNpZSwgdXBwZXJfMzJfYml0cyhjcHVfYWRkciksDQorCQkgICBQQUJfRVhUX0FY SV9BTUFQX0FYSV9XSU4od2luX251bSkpOw0KIA0KIAljc3Jfd3JpdGVsKHBjaWUsIGxvd2VyXzMy X2JpdHMocGNpX2FkZHIpLA0KIAkJICAgUEFCX0FYSV9BTUFQX1BFWF9XSU5fTCh3aW5fbnVtKSk7 DQpAQCAtNjA0LDYgKzYxMywxMSBAQCBzdGF0aWMgaW50IG1vYml2ZWlsX2hvc3RfaW5pdChzdHJ1 Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSkNCiAJdmFsdWUgfD0gQVBJT19FTl9NQVNLOw0KIAljc3Jf d3JpdGVsKHBjaWUsIHZhbHVlLCBQQUJfQVhJX1BJT19DVFJMKTsNCiANCisJLyogRW5hYmxlIFBD SWUgUElPIG1hc3RlciAqLw0KKwl2YWx1ZSA9IGNzcl9yZWFkbChwY2llLCBQQUJfUEVYX1BJT19D VFJMKTsNCisJdmFsdWUgfD0gMSA8PCBQSU9fRU5BQkxFX1NISUZUOw0KKwljc3Jfd3JpdGVsKHBj aWUsIHZhbHVlLCBQQUJfUEVYX1BJT19DVFJMKTsNCisNCiAJLyoNCiAJICogd2UnbGwgcHJvZ3Jh bSBvbmUgb3V0Ym91bmQgd2luZG93IGZvciBjb25maWcgcmVhZHMgYW5kDQogCSAqIGFub3RoZXIg ZGVmYXVsdCBpbmJvdW5kIHdpbmRvdyBmb3IgYWxsIHRoZSB1cHN0cmVhbSB0cmFmZmljDQpAQCAt NjE2LDcgKzYzMCw3IEBAIHN0YXRpYyBpbnQgbW9iaXZlaWxfaG9zdF9pbml0KHN0cnVjdCBtb2Jp dmVpbF9wY2llICpwY2llKQ0KIAkJCSAgIENGR19XSU5ET1dfVFlQRSwgcmVzb3VyY2Vfc2l6ZShw Y2llLT5vYl9pb19yZXMpKTsNCiANCiAJLyogbWVtb3J5IGluYm91bmQgdHJhbnNsYXRpb24gd2lu ZG93ICovDQotCXByb2dyYW1faWJfd2luZG93cyhwY2llLCBXSU5fTlVNXzAsIDAsIE1FTV9XSU5E T1dfVFlQRSwgSUJfV0lOX1NJWkUpOw0KKwlwcm9ncmFtX2liX3dpbmRvd3MocGNpZSwgV0lOX05V TV8wLCAwLCAwLCBNRU1fV0lORE9XX1RZUEUsIElCX1dJTl9TSVpFKTsNCiANCiAJLyogR2V0IHRo ZSBJL08gYW5kIG1lbW9yeSByYW5nZXMgZnJvbSBEVCAqLw0KIAlyZXNvdXJjZV9saXN0X2Zvcl9l YWNoX2VudHJ5KHdpbiwgJnBjaWUtPnJlc291cmNlcykgew0KLS0gDQoyLjE3LjENCg0K From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Z.q. Hou" Subject: [PATCHv5 09/20] PCI: mobiveil: Correct inbound/outbound window setup routines Date: Fri, 12 Apr 2019 08:36:06 +0000 Message-ID: <20190412083635.33626-10-Zhiqiang.Hou@nxp.com> References: <20190412083635.33626-1-Zhiqiang.Hou@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190412083635.33626-1-Zhiqiang.Hou@nxp.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: "linux-pci@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "bhelgaas@google.com" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , "l.subrahmanya@mobiveil.co.in" , "shawnguo@kernel.org" , Leo Li , "lorenzo.pieralisi@arm.com" , "catalin.marinas@arm.com" , "will.deacon@arm.com" Cc: Mingkai Hu , "M.h. Lian" , Xiaowei Bao , "Z.q. Hou" List-Id: devicetree@vger.kernel.org RnJvbTogSG91IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhwLmNvbT4NCg0KT3V0Ym91bmQgd2lu ZG93IHJvdXRpbmU6DQogLSBSZW1vdmUgdW51c2VkIHZhciBkZWZpbml0aW9ucyBhbmQgcmVnaXN0 ZXIgcmVhZCBvcGVyYXRpb25zLg0KIC0gQWRkIHRoZSB1cHBlciAzMi1iaXQgY3B1IGFkZHJlc3Mg c2V0dXAgb2YgdGhlIHdpbmRvdy4NCiAtIEluc3RlYWQgb2YgYmxpbmRseSB3cml0ZSwgb25seSBj aGFuZ2UgdGhlIGZpZWxkcyBzcGVjaWZpZWQuDQogLSBNYXNrIHRoZSBsb3dlciBiaXRzIG9mIHdp bmRvdyBzaXplIGluIGNhc2Ugb3ZlcnJpZGUgdGhlDQogICBjb250cm9sIGJpdHMuDQogLSBDaGVj ayBpZiB0aGUgcGFzc2luZyB3aW5kb3cgbnVtYmVyIGlzIGF2YWlsYWJsZSwgaW5zdGVhZCBvZg0K ICAgdGhlIHRvdGFsIG51bWJlciBvZiB0aGUgaW5pdGlhbGl6ZWQgd2luZG93cy4NCg0KSW5ib3Vu ZCB3aW5kb3cgcm91dGluZToNCiAtIEFkZCBwYXJhbWV0ZXIgJ3U2NCBjcHVfYWRkcicgdG8gc3Bl Y2lmeSB0aGUgY3B1IGFkZHJlc3MNCiAgIG9mIHRoZSB3aW5kb3cgaW5zdGVhZCBvZiB1c2luZyAn cGNpX2FkZHInLg0KIC0gQ2hhbmdlICdpbnQgcGNpX2FkZHInIHRvICd1NjQgcGNpX2FkZHInLCBh bmQgYWRkIHNldHVwDQogICBvZiB0aGUgdXBwZXIgMzItYml0IFBDSSBhZGRyZXNzIG9mIHRoZSB3 aW5kb3cuDQogLSBNb3ZlIHRoZSBQQ0llIFBJTyBtYXN0ZXIgZW5hYmxlbWVudCB0byBtb2JpdmVp bF9ob3N0X2luaXQoKS4NCiAtIEluc3RlYWQgb2YgYmxpbmRseSB3cml0ZSwgb25seSBjaGFuZ2Ug dGhlIGZpZWxkcyBzcGVjaWZpZWQuDQogLSBNYXNrIHRoZSBsb3dlciBiaXRzIG9mIHdpbmRvdyBz aXplIGluIGNhc2Ugb3ZlcnJpZGUgdGhlDQogICBjb250cm9sIGJpdHMuDQogLSBDaGVjayBpZiB0 aGUgcGFzc2luZyB3aW5kb3cgbnVtYmVyIGlzIGF2YWlsYWJsZSwgaW5zdGVhZCBvZg0KICAgdGhl IHRvdGFsIG51bWJlciBvZiB0aGUgaW5pdGlhbGl6ZWQgd2luZG93cy4NCiAtIEFuZCBhZGQgdGhl IHN0YXRpc3RpYyBvZiBpbml0aWFsaXplZCBpbmJvdW5kIHdpbmRvd3MuDQoNCkZpeGVzOiA5YWY2 YmNiMTFlMTIgKCJQQ0k6IG1vYml2ZWlsOiBBZGQgTW9iaXZlaWwgUENJZSBIb3N0IEJyaWRnZSBJ UCBkcml2ZXIiKQ0KU2lnbmVkLW9mZi1ieTogSG91IFpoaXFpYW5nIDxaaGlxaWFuZy5Ib3VAbnhw LmNvbT4NClJldmlld2VkLWJ5OiBNaW5naHVhbiBMaWFuIDxNaW5naHVhbi5MaWFuQG54cC5jb20+ DQpSZXZpZXdlZC1ieTogU3VicmFobWFueWEgTGluZ2FwcGEgPGwuc3VicmFobWFueWFAbW9iaXZl aWwuY28uaW4+DQotLS0NClY1Og0KIC0gQ29ycmVjdGVkIGFuZCByZXRvdWNoZWQgdGhlIHN1Ympl Y3QgYW5kIGNoYW5nZWxvZy4NCg0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tb2JpdmVp bC5jIHwgNzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0NCiAxIGZpbGUgY2hhbmdlZCwgNDIg aW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaWUtbW9iaXZlaWwuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNp ZS1tb2JpdmVpbC5jDQppbmRleCBlODhhZmM3OTJhNWMuLjRiYTQ1ODQ3NGU0MiAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tb2JpdmVpbC5jDQorKysgYi9kcml2ZXJz L3BjaS9jb250cm9sbGVyL3BjaWUtbW9iaXZlaWwuYw0KQEAgLTY1LDkgKzY1LDEzIEBADQogI2Rl ZmluZSBQQUJfQVhJX0FNQVBfQ1RSTCh3aW4pCQlQQUJfUkVHX0FERFIoMHgwYmEwLCB3aW4pDQog I2RlZmluZSAgV0lOX0VOQUJMRV9TSElGVAkJMA0KICNkZWZpbmUgIFdJTl9UWVBFX1NISUZUCQkJ MQ0KKyNkZWZpbmUgIFdJTl9UWVBFX01BU0sJCQkweDMNCisjZGVmaW5lICBXSU5fU0laRV9TSElG VAkJCTEwDQorI2RlZmluZSAgV0lOX1NJWkVfTUFTSwkJCTB4M2ZmZmZmDQogDQogI2RlZmluZSBQ QUJfRVhUX0FYSV9BTUFQX1NJWkUod2luKQlQQUJfRVhUX1JFR19BRERSKDB4YmFmMCwgd2luKQ0K IA0KKyNkZWZpbmUgUEFCX0VYVF9BWElfQU1BUF9BWElfV0lOKHdpbikJUEFCX0VYVF9SRUdfQURE UigweDgwYTAsIHdpbikNCiAjZGVmaW5lIFBBQl9BWElfQU1BUF9BWElfV0lOKHdpbikJUEFCX1JF R19BRERSKDB4MGJhNCwgd2luKQ0KICNkZWZpbmUgIEFYSV9XSU5ET1dfQUxJR05fTUFTSwkJMw0K IA0KQEAgLTgyLDggKzg2LDEwIEBADQogI2RlZmluZSBQQUJfUEVYX0FNQVBfQ1RSTCh3aW4pCQlQ QUJfUkVHX0FERFIoMHg0YmEwLCB3aW4pDQogI2RlZmluZSAgQU1BUF9DVFJMX0VOX1NISUZUCQkw DQogI2RlZmluZSAgQU1BUF9DVFJMX1RZUEVfU0hJRlQJCTENCisjZGVmaW5lICBBTUFQX0NUUkxf VFlQRV9NQVNLCQkzDQogDQogI2RlZmluZSBQQUJfRVhUX1BFWF9BTUFQX1NJWkVOKHdpbikJUEFC X0VYVF9SRUdfQUREUigweGJlZjAsIHdpbikNCisjZGVmaW5lIFBBQl9FWFRfUEVYX0FNQVBfQVhJ X1dJTih3aW4pCVBBQl9FWFRfUkVHX0FERFIoMHhiNGEwLCB3aW4pDQogI2RlZmluZSBQQUJfUEVY X0FNQVBfQVhJX1dJTih3aW4pCVBBQl9SRUdfQUREUigweDRiYTQsIHdpbikNCiAjZGVmaW5lIFBB Ql9QRVhfQU1BUF9QRVhfV0lOX0wod2luKQlQQUJfUkVHX0FERFIoMHg0YmE4LCB3aW4pDQogI2Rl ZmluZSBQQUJfUEVYX0FNQVBfUEVYX1dJTl9IKHdpbikJUEFCX1JFR19BRERSKDB4NGJhYywgd2lu KQ0KQEAgLTQ1NSw0OSArNDYxLDUxIEBAIHN0YXRpYyBpbnQgbW9iaXZlaWxfcGNpZV9wYXJzZV9k dChzdHJ1Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSkNCiB9DQogDQogc3RhdGljIHZvaWQgcHJvZ3Jh bV9pYl93aW5kb3dzKHN0cnVjdCBtb2JpdmVpbF9wY2llICpwY2llLCBpbnQgd2luX251bSwNCi0J CQkgICAgICAgaW50IHBjaV9hZGRyLCB1MzIgdHlwZSwgdTY0IHNpemUpDQorCQkJICAgICAgIHU2 NCBjcHVfYWRkciwgdTY0IHBjaV9hZGRyLCB1MzIgdHlwZSwgdTY0IHNpemUpDQogew0KLQlpbnQg cGlvX2N0cmxfdmFsOw0KLQlpbnQgYW1hcF9jdHJsX2R3Ow0KKwl1MzIgdmFsdWU7DQogCXU2NCBz aXplNjQgPSB+KHNpemUgLSAxKTsNCiANCi0JaWYgKChwY2llLT5pYl93aW5zX2NvbmZpZ3VyZWQg KyAxKSA+IHBjaWUtPnBwaW9fd2lucykgew0KKwlpZiAod2luX251bSA+PSBwY2llLT5wcGlvX3dp bnMpIHsNCiAJCWRldl9lcnIoJnBjaWUtPnBkZXYtPmRldiwNCiAJCQkiRVJST1I6IG1heCBpbmJv dW5kIHdpbmRvd3MgcmVhY2hlZCAhXG4iKTsNCiAJCXJldHVybjsNCiAJfQ0KIA0KLQlwaW9fY3Ry bF92YWwgPSBjc3JfcmVhZGwocGNpZSwgUEFCX1BFWF9QSU9fQ1RSTCk7DQotCXBpb19jdHJsX3Zh bCB8PSAxIDw8IFBJT19FTkFCTEVfU0hJRlQ7DQotCWNzcl93cml0ZWwocGNpZSwgcGlvX2N0cmxf dmFsLCBQQUJfUEVYX1BJT19DVFJMKTsNCi0NCi0JYW1hcF9jdHJsX2R3ID0gY3NyX3JlYWRsKHBj aWUsIFBBQl9QRVhfQU1BUF9DVFJMKHdpbl9udW0pKTsNCi0JYW1hcF9jdHJsX2R3IHw9ICh0eXBl IDw8IEFNQVBfQ1RSTF9UWVBFX1NISUZUKSB8DQotCQkJKDEgPDwgQU1BUF9DVFJMX0VOX1NISUZU KSB8DQotCQkJbG93ZXJfMzJfYml0cyhzaXplNjQpOw0KLQljc3Jfd3JpdGVsKHBjaWUsIGFtYXBf Y3RybF9kdywgUEFCX1BFWF9BTUFQX0NUUkwod2luX251bSkpOw0KKwl2YWx1ZSA9IGNzcl9yZWFk bChwY2llLCBQQUJfUEVYX0FNQVBfQ1RSTCh3aW5fbnVtKSk7DQorCXZhbHVlICY9IH4oQU1BUF9D VFJMX1RZUEVfTUFTSyA8PCBBTUFQX0NUUkxfVFlQRV9TSElGVCB8DQorCQkgV0lOX1NJWkVfTUFT SyA8PCBXSU5fU0laRV9TSElGVCk7DQorCXZhbHVlIHw9ICh0eXBlIDw8IEFNQVBfQ1RSTF9UWVBF X1NISUZUKSB8ICgxIDw8IEFNQVBfQ1RSTF9FTl9TSElGVCkgfA0KKwkJIChsb3dlcl8zMl9iaXRz KHNpemU2NCkgJiBXSU5fU0laRV9NQVNLIDw8IFdJTl9TSVpFX1NISUZUKTsNCisJY3NyX3dyaXRl bChwY2llLCB2YWx1ZSwgUEFCX1BFWF9BTUFQX0NUUkwod2luX251bSkpOw0KIA0KIAljc3Jfd3Jp dGVsKHBjaWUsIHVwcGVyXzMyX2JpdHMoc2l6ZTY0KSwNCiAJCSAgIFBBQl9FWFRfUEVYX0FNQVBf U0laRU4od2luX251bSkpOw0KIA0KLQljc3Jfd3JpdGVsKHBjaWUsIHBjaV9hZGRyLCBQQUJfUEVY X0FNQVBfQVhJX1dJTih3aW5fbnVtKSk7DQorCWNzcl93cml0ZWwocGNpZSwgbG93ZXJfMzJfYml0 cyhjcHVfYWRkciksDQorCQkgICBQQUJfUEVYX0FNQVBfQVhJX1dJTih3aW5fbnVtKSk7DQorCWNz cl93cml0ZWwocGNpZSwgdXBwZXJfMzJfYml0cyhjcHVfYWRkciksDQorCQkgICBQQUJfRVhUX1BF WF9BTUFQX0FYSV9XSU4od2luX251bSkpOw0KKw0KKwljc3Jfd3JpdGVsKHBjaWUsIGxvd2VyXzMy X2JpdHMocGNpX2FkZHIpLA0KKwkJICAgUEFCX1BFWF9BTUFQX1BFWF9XSU5fTCh3aW5fbnVtKSk7 DQorCWNzcl93cml0ZWwocGNpZSwgdXBwZXJfMzJfYml0cyhwY2lfYWRkciksDQorCQkgICBQQUJf UEVYX0FNQVBfUEVYX1dJTl9IKHdpbl9udW0pKTsNCiANCi0JY3NyX3dyaXRlbChwY2llLCBwY2lf YWRkciwgUEFCX1BFWF9BTUFQX1BFWF9XSU5fTCh3aW5fbnVtKSk7DQotCWNzcl93cml0ZWwocGNp ZSwgMCwgUEFCX1BFWF9BTUFQX1BFWF9XSU5fSCh3aW5fbnVtKSk7DQorCXBjaWUtPmliX3dpbnNf Y29uZmlndXJlZCsrOw0KIH0NCiANCiAvKg0KICAqIHJvdXRpbmUgdG8gcHJvZ3JhbSB0aGUgb3V0 Ym91bmQgd2luZG93cw0KICAqLw0KIHN0YXRpYyB2b2lkIHByb2dyYW1fb2Jfd2luZG93cyhzdHJ1 Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSwgaW50IHdpbl9udW0sDQotCQkJICAgICAgIHU2NCBjcHVf YWRkciwgdTY0IHBjaV9hZGRyLA0KLQkJCSAgICAgICB1MzIgY29uZmlnX2lvX2JpdCwgdTY0IHNp emUpDQorCQkJICAgICAgIHU2NCBjcHVfYWRkciwgdTY0IHBjaV9hZGRyLCB1MzIgdHlwZSwgdTY0 IHNpemUpDQogew0KIA0KLQl1MzIgdmFsdWUsIHR5cGU7DQorCXUzMiB2YWx1ZTsNCiAJdTY0IHNp emU2NCA9IH4oc2l6ZSAtIDEpOw0KIA0KLQlpZiAoKHBjaWUtPm9iX3dpbnNfY29uZmlndXJlZCAr IDEpID4gcGNpZS0+YXBpb193aW5zKSB7DQorCWlmICh3aW5fbnVtID49IHBjaWUtPmFwaW9fd2lu cykgew0KIAkJZGV2X2VycigmcGNpZS0+cGRldi0+ZGV2LA0KIAkJCSJFUlJPUjogbWF4IG91dGJv dW5kIHdpbmRvd3MgcmVhY2hlZCAhXG4iKTsNCiAJCXJldHVybjsNCkBAIC01MDcsMTAgKzUxNSwx MiBAQCBzdGF0aWMgdm9pZCBwcm9ncmFtX29iX3dpbmRvd3Moc3RydWN0IG1vYml2ZWlsX3BjaWUg KnBjaWUsIGludCB3aW5fbnVtLA0KIAkgKiBwcm9ncmFtIEVuYWJsZSBCaXQgdG8gMSwgVHlwZSBC aXQgdG8gKDAwKSBiYXNlIDIsIEFYSSBXaW5kb3cgU2l6ZSBCaXQNCiAJICogdG8gNCBLQiBpbiBQ QUJfQVhJX0FNQVBfQ1RSTCByZWdpc3Rlcg0KIAkgKi8NCi0JdHlwZSA9IGNvbmZpZ19pb19iaXQ7 DQogCXZhbHVlID0gY3NyX3JlYWRsKHBjaWUsIFBBQl9BWElfQU1BUF9DVFJMKHdpbl9udW0pKTsN Ci0JY3NyX3dyaXRlbChwY2llLCAxIDw8IFdJTl9FTkFCTEVfU0hJRlQgfCB0eXBlIDw8IFdJTl9U WVBFX1NISUZUIHwNCi0JCSAgIGxvd2VyXzMyX2JpdHMoc2l6ZTY0KSwgUEFCX0FYSV9BTUFQX0NU Ukwod2luX251bSkpOw0KKwl2YWx1ZSAmPSB+KFdJTl9UWVBFX01BU0sgPDwgV0lOX1RZUEVfU0hJ RlQgfA0KKwkJIFdJTl9TSVpFX01BU0sgPDwgV0lOX1NJWkVfU0hJRlQpOw0KKwl2YWx1ZSB8PSAx IDw8IFdJTl9FTkFCTEVfU0hJRlQgfCB0eXBlIDw8IFdJTl9UWVBFX1NISUZUIHwNCisJCSAobG93 ZXJfMzJfYml0cyhzaXplNjQpICYgV0lOX1NJWkVfTUFTSyA8PCBXSU5fU0laRV9TSElGVCk7DQor CWNzcl93cml0ZWwocGNpZSwgdmFsdWUsIFBBQl9BWElfQU1BUF9DVFJMKHdpbl9udW0pKTsNCiAN CiAJY3NyX3dyaXRlbChwY2llLCB1cHBlcl8zMl9iaXRzKHNpemU2NCksIFBBQl9FWFRfQVhJX0FN QVBfU0laRSh3aW5fbnVtKSk7DQogDQpAQCAtNTE4LDExICs1MjgsMTAgQEAgc3RhdGljIHZvaWQg cHJvZ3JhbV9vYl93aW5kb3dzKHN0cnVjdCBtb2JpdmVpbF9wY2llICpwY2llLCBpbnQgd2luX251 bSwNCiAJICogcHJvZ3JhbSBBWEkgd2luZG93IGJhc2Ugd2l0aCBhcHByb3ByaWF0ZSB2YWx1ZSBp bg0KIAkgKiBQQUJfQVhJX0FNQVBfQVhJX1dJTjAgcmVnaXN0ZXINCiAJICovDQotCXZhbHVlID0g Y3NyX3JlYWRsKHBjaWUsIFBBQl9BWElfQU1BUF9BWElfV0lOKHdpbl9udW0pKTsNCi0JY3NyX3dy aXRlbChwY2llLCBjcHVfYWRkciAmICh+QVhJX1dJTkRPV19BTElHTl9NQVNLKSwNCisJY3NyX3dy aXRlbChwY2llLCBsb3dlcl8zMl9iaXRzKGNwdV9hZGRyKSAmICh+QVhJX1dJTkRPV19BTElHTl9N QVNLKSwNCiAJCSAgIFBBQl9BWElfQU1BUF9BWElfV0lOKHdpbl9udW0pKTsNCi0NCi0JdmFsdWUg PSBjc3JfcmVhZGwocGNpZSwgUEFCX0FYSV9BTUFQX1BFWF9XSU5fSCh3aW5fbnVtKSk7DQorCWNz cl93cml0ZWwocGNpZSwgdXBwZXJfMzJfYml0cyhjcHVfYWRkciksDQorCQkgICBQQUJfRVhUX0FY SV9BTUFQX0FYSV9XSU4od2luX251bSkpOw0KIA0KIAljc3Jfd3JpdGVsKHBjaWUsIGxvd2VyXzMy X2JpdHMocGNpX2FkZHIpLA0KIAkJICAgUEFCX0FYSV9BTUFQX1BFWF9XSU5fTCh3aW5fbnVtKSk7 DQpAQCAtNjA0LDYgKzYxMywxMSBAQCBzdGF0aWMgaW50IG1vYml2ZWlsX2hvc3RfaW5pdChzdHJ1 Y3QgbW9iaXZlaWxfcGNpZSAqcGNpZSkNCiAJdmFsdWUgfD0gQVBJT19FTl9NQVNLOw0KIAljc3Jf d3JpdGVsKHBjaWUsIHZhbHVlLCBQQUJfQVhJX1BJT19DVFJMKTsNCiANCisJLyogRW5hYmxlIFBD SWUgUElPIG1hc3RlciAqLw0KKwl2YWx1ZSA9IGNzcl9yZWFkbChwY2llLCBQQUJfUEVYX1BJT19D VFJMKTsNCisJdmFsdWUgfD0gMSA8PCBQSU9fRU5BQkxFX1NISUZUOw0KKwljc3Jfd3JpdGVsKHBj aWUsIHZhbHVlLCBQQUJfUEVYX1BJT19DVFJMKTsNCisNCiAJLyoNCiAJICogd2UnbGwgcHJvZ3Jh bSBvbmUgb3V0Ym91bmQgd2luZG93IGZvciBjb25maWcgcmVhZHMgYW5kDQogCSAqIGFub3RoZXIg ZGVmYXVsdCBpbmJvdW5kIHdpbmRvdyBmb3IgYWxsIHRoZSB1cHN0cmVhbSB0cmFmZmljDQpAQCAt NjE2LDcgKzYzMCw3IEBAIHN0YXRpYyBpbnQgbW9iaXZlaWxfaG9zdF9pbml0KHN0cnVjdCBtb2Jp dmVpbF9wY2llICpwY2llKQ0KIAkJCSAgIENGR19XSU5ET1dfVFlQRSwgcmVzb3VyY2Vfc2l6ZShw Y2llLT5vYl9pb19yZXMpKTsNCiANCiAJLyogbWVtb3J5IGluYm91bmQgdHJhbnNsYXRpb24gd2lu ZG93ICovDQotCXByb2dyYW1faWJfd2luZG93cyhwY2llLCBXSU5fTlVNXzAsIDAsIE1FTV9XSU5E T1dfVFlQRSwgSUJfV0lOX1NJWkUpOw0KKwlwcm9ncmFtX2liX3dpbmRvd3MocGNpZSwgV0lOX05V TV8wLCAwLCAwLCBNRU1fV0lORE9XX1RZUEUsIElCX1dJTl9TSVpFKTsNCiANCiAJLyogR2V0IHRo ZSBJL08gYW5kIG1lbW9yeSByYW5nZXMgZnJvbSBEVCAqLw0KIAlyZXNvdXJjZV9saXN0X2Zvcl9l YWNoX2VudHJ5KHdpbiwgJnBjaWUtPnJlc291cmNlcykgew0KLS0gDQoyLjE3LjENCg0K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 44DE8C10F0E for ; Fri, 12 Apr 2019 08:37:50 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0F9C62084D for ; Fri, 12 Apr 2019 08:37:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="itnuwujL"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="eu53ifXi" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0F9C62084D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=C1wWy6pcPCYFB1kIK/zCWROvBeet5Q5nY8zxGpRODoI=; b=itnuwujLMIjTyr gShnlnU4vYVhGusPhRlg2KrACqtumLVRtLW4MlDoUIzd7/Uj8x3TJMaMef6HqlwspOvT1kfzWiQ7G 3Y96/PvyLa3Q61n1A9IxjmG7QZwOcMUHSZUqfyv/hpDNbA/lGamk0BSVjyLoM2Ry/h2zTxtjL25bE xyr+Ty9NZRgDe4WHH1UAZwNR7Ti/01AkyElJBNM2a9WxxlPcuRZrLwqXJ3s+zcpYqeVHc9T4smQuT /kp/Wjr3Gj8utyvtIRKsf0r36mCv6e9YyoliOJV4UYNBLmyVRfYyWQkoDz5eal+RynZfThOqvh3nn NIxW2+6NCOeLnIMPCoLQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hErgt-0007Xf-Sc; Fri, 12 Apr 2019 08:37:43 +0000 Received: from mail-eopbgr80047.outbound.protection.outlook.com ([40.107.8.47] helo=EUR04-VI1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hErft-00062a-PZ for linux-arm-kernel@lists.infradead.org; Fri, 12 Apr 2019 08:36:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gp9YtnB4iUaVXUZLhRjAvu+m7Z2jChTox4X626rKerQ=; b=eu53ifXisaS6+MazwSJN6oKjl2KMN1dHoQmq1JVOmeTfuugFsjwkGr7bFQaDMiYhK3iIEbHWBsi2Y1kUpxET15n3CNH3GAHlaYwBuY4oAv373HMmDFJ7drrV2FJ/BRW63x+aDqMz4Aov1WZ30eJ54EGCEi3LsAMiJ8XijKmogf8= Received: from AM6PR04MB5781.eurprd04.prod.outlook.com (20.179.3.19) by AM6PR04MB5846.eurprd04.prod.outlook.com (20.179.3.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1792.18; Fri, 12 Apr 2019 08:36:06 +0000 Received: from AM6PR04MB5781.eurprd04.prod.outlook.com ([fe80::f9db:ed86:614e:460]) by AM6PR04MB5781.eurprd04.prod.outlook.com ([fe80::f9db:ed86:614e:460%4]) with mapi id 15.20.1792.009; Fri, 12 Apr 2019 08:36:06 +0000 From: "Z.q. Hou" To: "linux-pci@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "bhelgaas@google.com" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , "l.subrahmanya@mobiveil.co.in" , "shawnguo@kernel.org" , Leo Li , "lorenzo.pieralisi@arm.com" , "catalin.marinas@arm.com" , "will.deacon@arm.com" Subject: [PATCHv5 09/20] PCI: mobiveil: Correct inbound/outbound window setup routines Thread-Topic: [PATCHv5 09/20] PCI: mobiveil: Correct inbound/outbound window setup routines Thread-Index: AQHU8QrFfxj3itSLU0yAx2so+j68jQ== Date: Fri, 12 Apr 2019 08:36:06 +0000 Message-ID: <20190412083635.33626-10-Zhiqiang.Hou@nxp.com> References: <20190412083635.33626-1-Zhiqiang.Hou@nxp.com> In-Reply-To: <20190412083635.33626-1-Zhiqiang.Hou@nxp.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HK2PR06CA0011.apcprd06.prod.outlook.com (2603:1096:202:2e::23) To AM6PR04MB5781.eurprd04.prod.outlook.com (2603:10a6:20b:ad::19) authentication-results: spf=none (sender IP is ) smtp.mailfrom=zhiqiang.hou@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [119.31.174.73] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 92de0ac2-1796-437a-bbf9-08d6bf21e7bc x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600139)(711020)(4605104)(4618075)(2017052603328)(7193020); SRVR:AM6PR04MB5846; x-ms-traffictypediagnostic: AM6PR04MB5846: x-microsoft-antispam-prvs: x-forefront-prvs: 0005B05917 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(366004)(376002)(396003)(346002)(136003)(189003)(199004)(54534003)(486006)(478600001)(2616005)(476003)(316002)(446003)(11346002)(305945005)(7736002)(81166006)(25786009)(81156014)(256004)(14454004)(8676002)(7416002)(4326008)(186003)(50226002)(26005)(8936002)(68736007)(2906002)(53936002)(102836004)(6512007)(66066001)(86362001)(99286004)(106356001)(6116002)(3846002)(6436002)(97736004)(1076003)(6506007)(386003)(52116002)(2201001)(105586002)(6486002)(36756003)(71200400001)(110136005)(54906003)(5660300002)(2501003)(71190400001)(76176011)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR04MB5846; H:AM6PR04MB5781.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: rDOr7VCltQ0PRoI4+XQuPlX/rrvxifIDa3HIDUR+hWb/U7it84KolGUpwZHRjWr0piHXOmDC+8E9kAgmKSsoswTBhS8bFAGHpfMHK/H1cB89+W8cBc1BFYJnszHhTqpOQPqw6Jn9gRZKQv/sUeOlQPv2z7DCFRtxgMe8Qx6KV7REwthq8IPG5/i4pMIoqQyNXDBf9aWX7V76RKG+vKTVkGDWpSJAxrFOMm9pz/LH/+GQcHRsqClVI0iz7M3gicDbCScrIAgqHMVyreki8TGvj8IiUvnmcWqD+PexbOMMuM43VT/suZ6bvEUkuxr73VNSyWzz43kASZsSz5pgmTfRYE0iQAlvhTLD/5y/w+5GrMOA5fCkgNBMPhaR8SKOoBypFAu+9MiSHLtX312nEq085T7rQDnZ2GXp0qBhbr8aDL8= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92de0ac2-1796-437a-bbf9-08d6bf21e7bc X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2019 08:36:06.6618 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5846 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190412_013642_042459_EA2D7DB0 X-CRM114-Status: GOOD ( 16.56 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "M.h. Lian" , "Z.q. Hou" , Xiaowei Bao , Mingkai Hu Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Hou Zhiqiang Outbound window routine: - Remove unused var definitions and register read operations. - Add the upper 32-bit cpu address setup of the window. - Instead of blindly write, only change the fields specified. - Mask the lower bits of window size in case override the control bits. - Check if the passing window number is available, instead of the total number of the initialized windows. Inbound window routine: - Add parameter 'u64 cpu_addr' to specify the cpu address of the window instead of using 'pci_addr'. - Change 'int pci_addr' to 'u64 pci_addr', and add setup of the upper 32-bit PCI address of the window. - Move the PCIe PIO master enablement to mobiveil_host_init(). - Instead of blindly write, only change the fields specified. - Mask the lower bits of window size in case override the control bits. - Check if the passing window number is available, instead of the total number of the initialized windows. - And add the statistic of initialized inbound windows. Fixes: 9af6bcb11e12 ("PCI: mobiveil: Add Mobiveil PCIe Host Bridge IP driver") Signed-off-by: Hou Zhiqiang Reviewed-by: Minghuan Lian Reviewed-by: Subrahmanya Lingappa --- V5: - Corrected and retouched the subject and changelog. drivers/pci/controller/pcie-mobiveil.c | 70 +++++++++++++++----------- 1 file changed, 42 insertions(+), 28 deletions(-) diff --git a/drivers/pci/controller/pcie-mobiveil.c b/drivers/pci/controller/pcie-mobiveil.c index e88afc792a5c..4ba458474e42 100644 --- a/drivers/pci/controller/pcie-mobiveil.c +++ b/drivers/pci/controller/pcie-mobiveil.c @@ -65,9 +65,13 @@ #define PAB_AXI_AMAP_CTRL(win) PAB_REG_ADDR(0x0ba0, win) #define WIN_ENABLE_SHIFT 0 #define WIN_TYPE_SHIFT 1 +#define WIN_TYPE_MASK 0x3 +#define WIN_SIZE_SHIFT 10 +#define WIN_SIZE_MASK 0x3fffff #define PAB_EXT_AXI_AMAP_SIZE(win) PAB_EXT_REG_ADDR(0xbaf0, win) +#define PAB_EXT_AXI_AMAP_AXI_WIN(win) PAB_EXT_REG_ADDR(0x80a0, win) #define PAB_AXI_AMAP_AXI_WIN(win) PAB_REG_ADDR(0x0ba4, win) #define AXI_WINDOW_ALIGN_MASK 3 @@ -82,8 +86,10 @@ #define PAB_PEX_AMAP_CTRL(win) PAB_REG_ADDR(0x4ba0, win) #define AMAP_CTRL_EN_SHIFT 0 #define AMAP_CTRL_TYPE_SHIFT 1 +#define AMAP_CTRL_TYPE_MASK 3 #define PAB_EXT_PEX_AMAP_SIZEN(win) PAB_EXT_REG_ADDR(0xbef0, win) +#define PAB_EXT_PEX_AMAP_AXI_WIN(win) PAB_EXT_REG_ADDR(0xb4a0, win) #define PAB_PEX_AMAP_AXI_WIN(win) PAB_REG_ADDR(0x4ba4, win) #define PAB_PEX_AMAP_PEX_WIN_L(win) PAB_REG_ADDR(0x4ba8, win) #define PAB_PEX_AMAP_PEX_WIN_H(win) PAB_REG_ADDR(0x4bac, win) @@ -455,49 +461,51 @@ static int mobiveil_pcie_parse_dt(struct mobiveil_pcie *pcie) } static void program_ib_windows(struct mobiveil_pcie *pcie, int win_num, - int pci_addr, u32 type, u64 size) + u64 cpu_addr, u64 pci_addr, u32 type, u64 size) { - int pio_ctrl_val; - int amap_ctrl_dw; + u32 value; u64 size64 = ~(size - 1); - if ((pcie->ib_wins_configured + 1) > pcie->ppio_wins) { + if (win_num >= pcie->ppio_wins) { dev_err(&pcie->pdev->dev, "ERROR: max inbound windows reached !\n"); return; } - pio_ctrl_val = csr_readl(pcie, PAB_PEX_PIO_CTRL); - pio_ctrl_val |= 1 << PIO_ENABLE_SHIFT; - csr_writel(pcie, pio_ctrl_val, PAB_PEX_PIO_CTRL); - - amap_ctrl_dw = csr_readl(pcie, PAB_PEX_AMAP_CTRL(win_num)); - amap_ctrl_dw |= (type << AMAP_CTRL_TYPE_SHIFT) | - (1 << AMAP_CTRL_EN_SHIFT) | - lower_32_bits(size64); - csr_writel(pcie, amap_ctrl_dw, PAB_PEX_AMAP_CTRL(win_num)); + value = csr_readl(pcie, PAB_PEX_AMAP_CTRL(win_num)); + value &= ~(AMAP_CTRL_TYPE_MASK << AMAP_CTRL_TYPE_SHIFT | + WIN_SIZE_MASK << WIN_SIZE_SHIFT); + value |= (type << AMAP_CTRL_TYPE_SHIFT) | (1 << AMAP_CTRL_EN_SHIFT) | + (lower_32_bits(size64) & WIN_SIZE_MASK << WIN_SIZE_SHIFT); + csr_writel(pcie, value, PAB_PEX_AMAP_CTRL(win_num)); csr_writel(pcie, upper_32_bits(size64), PAB_EXT_PEX_AMAP_SIZEN(win_num)); - csr_writel(pcie, pci_addr, PAB_PEX_AMAP_AXI_WIN(win_num)); + csr_writel(pcie, lower_32_bits(cpu_addr), + PAB_PEX_AMAP_AXI_WIN(win_num)); + csr_writel(pcie, upper_32_bits(cpu_addr), + PAB_EXT_PEX_AMAP_AXI_WIN(win_num)); + + csr_writel(pcie, lower_32_bits(pci_addr), + PAB_PEX_AMAP_PEX_WIN_L(win_num)); + csr_writel(pcie, upper_32_bits(pci_addr), + PAB_PEX_AMAP_PEX_WIN_H(win_num)); - csr_writel(pcie, pci_addr, PAB_PEX_AMAP_PEX_WIN_L(win_num)); - csr_writel(pcie, 0, PAB_PEX_AMAP_PEX_WIN_H(win_num)); + pcie->ib_wins_configured++; } /* * routine to program the outbound windows */ static void program_ob_windows(struct mobiveil_pcie *pcie, int win_num, - u64 cpu_addr, u64 pci_addr, - u32 config_io_bit, u64 size) + u64 cpu_addr, u64 pci_addr, u32 type, u64 size) { - u32 value, type; + u32 value; u64 size64 = ~(size - 1); - if ((pcie->ob_wins_configured + 1) > pcie->apio_wins) { + if (win_num >= pcie->apio_wins) { dev_err(&pcie->pdev->dev, "ERROR: max outbound windows reached !\n"); return; @@ -507,10 +515,12 @@ static void program_ob_windows(struct mobiveil_pcie *pcie, int win_num, * program Enable Bit to 1, Type Bit to (00) base 2, AXI Window Size Bit * to 4 KB in PAB_AXI_AMAP_CTRL register */ - type = config_io_bit; value = csr_readl(pcie, PAB_AXI_AMAP_CTRL(win_num)); - csr_writel(pcie, 1 << WIN_ENABLE_SHIFT | type << WIN_TYPE_SHIFT | - lower_32_bits(size64), PAB_AXI_AMAP_CTRL(win_num)); + value &= ~(WIN_TYPE_MASK << WIN_TYPE_SHIFT | + WIN_SIZE_MASK << WIN_SIZE_SHIFT); + value |= 1 << WIN_ENABLE_SHIFT | type << WIN_TYPE_SHIFT | + (lower_32_bits(size64) & WIN_SIZE_MASK << WIN_SIZE_SHIFT); + csr_writel(pcie, value, PAB_AXI_AMAP_CTRL(win_num)); csr_writel(pcie, upper_32_bits(size64), PAB_EXT_AXI_AMAP_SIZE(win_num)); @@ -518,11 +528,10 @@ static void program_ob_windows(struct mobiveil_pcie *pcie, int win_num, * program AXI window base with appropriate value in * PAB_AXI_AMAP_AXI_WIN0 register */ - value = csr_readl(pcie, PAB_AXI_AMAP_AXI_WIN(win_num)); - csr_writel(pcie, cpu_addr & (~AXI_WINDOW_ALIGN_MASK), + csr_writel(pcie, lower_32_bits(cpu_addr) & (~AXI_WINDOW_ALIGN_MASK), PAB_AXI_AMAP_AXI_WIN(win_num)); - - value = csr_readl(pcie, PAB_AXI_AMAP_PEX_WIN_H(win_num)); + csr_writel(pcie, upper_32_bits(cpu_addr), + PAB_EXT_AXI_AMAP_AXI_WIN(win_num)); csr_writel(pcie, lower_32_bits(pci_addr), PAB_AXI_AMAP_PEX_WIN_L(win_num)); @@ -604,6 +613,11 @@ static int mobiveil_host_init(struct mobiveil_pcie *pcie) value |= APIO_EN_MASK; csr_writel(pcie, value, PAB_AXI_PIO_CTRL); + /* Enable PCIe PIO master */ + value = csr_readl(pcie, PAB_PEX_PIO_CTRL); + value |= 1 << PIO_ENABLE_SHIFT; + csr_writel(pcie, value, PAB_PEX_PIO_CTRL); + /* * we'll program one outbound window for config reads and * another default inbound window for all the upstream traffic @@ -616,7 +630,7 @@ static int mobiveil_host_init(struct mobiveil_pcie *pcie) CFG_WINDOW_TYPE, resource_size(pcie->ob_io_res)); /* memory inbound translation window */ - program_ib_windows(pcie, WIN_NUM_0, 0, MEM_WINDOW_TYPE, IB_WIN_SIZE); + program_ib_windows(pcie, WIN_NUM_0, 0, 0, MEM_WINDOW_TYPE, IB_WIN_SIZE); /* Get the I/O and memory ranges from DT */ resource_list_for_each_entry(win, &pcie->resources) { -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel