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=-17.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,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 6F2B1C49EA6 for ; Thu, 24 Jun 2021 21:57:51 +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 27D51613BD for ; Thu, 24 Jun 2021 21:57:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 27D51613BD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+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.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=3AL3IYg0NlkMJJImJVvX+UC5cmuCamzdE/RFsiGy4Eo=; b=kO8Y1+Ft+HyWBD Gy+Xl4F79fGqn7YlZr0FOHbDV/0PN6a9C8EtngEQgbqF3g/ajuTs3UjSGTjM6BkVtpAXROwfV9L99 QwkmTeSDZM+8Q1wuuREtV4YTJuaTOXTFlUhEFZjpxYL1xWBFTLxOMAjtoWc3DF0/lYyO9IAWldT8Y 62FJwXlR1xkJdLbiYNeTffrILpCA11P+XWFd6EaAAD7bJpGBifFv0/IFebGzDVK1Hpub0zPsQrIm8 w9aXvXw2ElKJYTZJ0uQiDvaOsjaujuQvsVOaHAKdRX54JVi0/dDZtJj8jufYEOSzxfM4Pj822m2Ro rGSabs6vygybzxZk4S0w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lwXKh-00GSVy-SM; Thu, 24 Jun 2021 21:56:24 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lwXKU-00GSUE-Sh for linux-arm-kernel@lists.infradead.org; Thu, 24 Jun 2021 21:56:12 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 45A72613C3; Thu, 24 Jun 2021 21:56:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1624571770; bh=f7rGdZhLVrNc5kET8MKHCUshNp/bL7gBI1GctO6tCo0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QJgsx6LgqrK1Aat3oUPYa+Ghm+dtV38c8f/cwCm3INIpDRIB1XrvADzN7fJuhTn+O XJlnDqYgzy+6C7eGpWU+x5dc7RitbPv5+6sVj/4Bkg/NxdfeLH3S3INHIAHd80SCnF otDxyEY4cpnEqX187PkdAI6YOSr+ETBL3+CQriVPgvUf2tykUDhTTZ8shdK82AlwkK nc+uJ10yVY4S839vATbYUNO/Cv/k6zKDUi27HChnu2ib3rTRkQVgjWpasM6CgeilCZ 9zycVY2eZ+i2zqH/74arIZeOhJbeW0VweJkKvtAMjZO/MyqvzxiMx3CAurskhY0Tm8 c2t+4Xbm9V+jg== Received: by pali.im (Postfix) id 6B2C896D; Thu, 24 Jun 2021 23:56:08 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Lorenzo Pieralisi , Thomas Petazzoni , Bjorn Helgaas , Rob Herring , Gregory Clement Cc: =?UTF-8?q?Marek=20Beh=C3=BAn?= , "Remi Pommarel" , Xogium , "Tomasz Maciej Nowak" , "Marc Zyngier" , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 1/2] PCI: aardvark: Configure PCIe resources from 'ranges' DT property Date: Thu, 24 Jun 2021 23:55:45 +0200 Message-Id: <20210624215546.4015-2-pali@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210624215546.4015-1-pali@kernel.org> References: <20210624215546.4015-1-pali@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210624_145611_009994_416D2CBF X-CRM114-Status: GOOD ( 30.04 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SW4gY29tbWl0IDZkZjZiYTk3NGE1NSAoIlBDSTogYWFyZHZhcms6IFJlbW92ZSBQQ0llIG91dGJv dW5kIHdpbmRvdwpjb25maWd1cmF0aW9uIikgd2FzIHJlbW92ZWQgYWFyZHZhcmsgUENJZSBvdXRi b3VuZCB3aW5kb3cgY29uZmlndXJhdGlvbiBhbmQKY29tbWl0IGRlc2NyaXB0aW9uIHNhaWQgdGhh dCB3YXMgcmVjb21tZW5kZWQgc29sdXRpb24gYnkgSFcgZGVzaWduZXJzLgoKQnV0IHRoYXQgY29t bWl0IGNvbXBsZXRlbHkgcmVtb3ZlZCBzdXBwb3J0IGZvciBjb25maWd1cmluZyBQQ0llIElPCnJl c291cmNlcyB3aXRob3V0IHJlbW92aW5nIFBDSWUgSU8gJ3JhbmdlcycgZnJvbSBEVFMgZmlsZXMu IEFmdGVyIHRoYXQKY29tbWl0IFBDSWUgSU8gc3BhY2Ugc3RhcnRlZCB0byBiZSB0cmVhdGVkIGFz IFBDSWUgTUVNIHNwYWNlIGFuZCBhY2Nlc3NpbmcKaXQganVzdCBjYXVzZWQga2VybmVsIGNyYXNo LgoKTW9yZW92ZXIgaW1wbGVtZW50YXRpb24gb2YgUENJZSBvdXRib3VuZCB3aW5kb3dzIHByaW9y IHRoYXQgY29tbWl0IHdhcwppbmNvcnJlY3QuIEl0IGNvbXBsZXRlbHkgaWdub3JlZCBvZmZzZXQg YmV0d2VlbiBDUFUgYWRkcmVzcyBhbmQgUENJZSBidXMKYWRkcmVzcyBhbmQgZXhwZWN0ZWQgdGhh dCBpbiBEVFMgaXMgQ1BVIGFkZHJlc3MgYWx3YXlzIHNhbWUgYXMgUENJZSBidXMKYWRkcmVzcyB3 aXRob3V0IGRvaW5nIGFueSBjaGVja3MuIEFsc28gaXQgY29tcGxldGVseSBpZ25vcmVkIHNpemUg b2YgZXZlcnkKUENJZSByZXNvdXJjZSBzcGVjaWZpZWQgaW4gJ3JhbmdlcycgRFRTIHByb3BlcnR5 IGFuZCBleHBlY3RlZCB0aGF0IGV2ZXJ5ClBDSWUgcmVzb3VyY2UgaGFzIHNpemUgMTI4IE1CIChh bHNvIGZvciBQQ0llIElPIHJhbmdlKS4gQWdhaW4gd2l0aG91dCBhbnkKY2hlY2suIEFwcGFyZW50 bHkgbm9uZSBvZiBQQ0llIHJlc291cmNlIGhhcyBpbiBEVFMgc3BlY2lmaWVkIHNpemUgb2YgMTI4 Ck1CLiBTbyBpdCB3YXMgY29tcGxldGVseSBicm9rZW4gYW5kIHRoYW5rcyB0byBob3cgYWFyZHZh cmsgbWFzayB3b3JrcywKY29uZmlndXJhdGlvbiB3YXMgY29tcGxldGVseSBpZ25vcmVkLgoKVGhp cyBwYXRjaCByZXZlcnRzIGJhY2sgc3VwcG9ydCBmb3IgUENJZSBvdXRib3VuZCB3aW5kb3cgY29u ZmlndXJhdGlvbiBidXQKaW1wbGVtZW50YXRpb24gaXMgYSBuZXcgd2l0aG91dCBpc3N1ZXMgbWVu dGlvbmVkIGFib3ZlLiBQQ0llIG91dGJvdW5kCndpbmRvdyBpcyByZXF1aXJlZCB3aGVuIERUUyBz cGVjaWZ5IGluICdyYW5nZXMnIHByb3BlcnR5IG5vbi16ZXJvIG9mZnNldApiZXR3ZWVuIENQVSBh bmQgUENJZSBhZGRyZXNzIHNwYWNlLiBUbyBhZGRyZXNzIHJlY29tbWVuZGF0aW9uIGJ5IEhXCmRl c2lnbmVycyBhcyBzcGVjaWZpZWQgaW4gY29tbWl0IGRlc2NyaXB0aW9uIG9mIDZkZjZiYTk3NGE1 NSwgc2V0IGRlZmF1bHQKb3V0Ym91bmQgcGFyYW1ldGVycyBhcyBQQ0llIE1FTSBhY2Nlc3Mgd2l0 aG91dCB0cmFuc2xhdGlvbiBhbmQgdGhlcmVmb3JlCmZvciB0aGlzIFBDSWUgJ3JhbmdlcycgaXQg aXMgbm90IG5lZWRlZCB0byBjb25maWd1cmUgUENJZSBvdXRib3VuZCB3aW5kb3cuCkZvciBQQ0ll IElPIHNwYWNlIGlzIG5lZWRlZCB0byBjb25maWd1cmUgYWFyZHZhcmsgUENJZSBvdXRib3VuZCB3 aW5kb3cuCgpUaGlzIHBhdGNoIGZpeGVzIGtlcm5lbCBjcmFzaCB3aGVuIHRyeWluZyB0byBhY2Nl c3MgUENJZSBJTyBzcGFjZS4KClNpZ25lZC1vZmYtYnk6IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5l bC5vcmc+CkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnICMgNmRmNmJhOTc0YTU1ICgiUENJOiBh YXJkdmFyazogUmVtb3ZlIFBDSWUgb3V0Ym91bmQgd2luZG93IGNvbmZpZ3VyYXRpb24iKQotLS0K IGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMgfCAxOTUgKysrKysrKysrKysr KysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxOTQgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJr LmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jCmluZGV4IDNmM2M3Mjky N2FmYi4uYjRkYTQ5NjM2MGYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3Bj aS1hYXJkdmFyay5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMK QEAgLTExOSw2ICsxMTksNDYgQEAKICNkZWZpbmUgUENJRV9NU0lfTUFTS19SRUcJCQkoQ09OVFJP TF9CQVNFX0FERFIgKyAweDVDKQogI2RlZmluZSBQQ0lFX01TSV9QQVlMT0FEX1JFRwkJCShDT05U Uk9MX0JBU0VfQUREUiArIDB4OUMpCiAKKy8qIFBDSWUgd2luZG93IGNvbmZpZ3VyYXRpb24gKi8K KyNkZWZpbmUgT0JfV0lOX0JBU0VfQUREUgkJCTB4NGMwMAorI2RlZmluZSBPQl9XSU5fQkxPQ0tf U0laRQkJCTB4MjAKKyNkZWZpbmUgT0JfV0lOX0NPVU5UCQkJCTgKKyNkZWZpbmUgT0JfV0lOX1JF R19BRERSKHdpbiwgb2Zmc2V0KQkJKE9CX1dJTl9CQVNFX0FERFIgKyBcCisJCQkJCQkgT0JfV0lO X0JMT0NLX1NJWkUgKiAod2luKSArIFwKKwkJCQkJCSAob2Zmc2V0KSkKKyNkZWZpbmUgT0JfV0lO X01BVENIX0xTKHdpbikJCQlPQl9XSU5fUkVHX0FERFIod2luLCAweDAwKQorI2RlZmluZSAgICAg T0JfV0lOX0VOQUJMRQkJCUJJVCgwKQorI2RlZmluZSBPQl9XSU5fTUFUQ0hfTVMod2luKQkJCU9C X1dJTl9SRUdfQUREUih3aW4sIDB4MDQpCisjZGVmaW5lIE9CX1dJTl9SRU1BUF9MUyh3aW4pCQkJ T0JfV0lOX1JFR19BRERSKHdpbiwgMHgwOCkKKyNkZWZpbmUgT0JfV0lOX1JFTUFQX01TKHdpbikJ CQlPQl9XSU5fUkVHX0FERFIod2luLCAweDBjKQorI2RlZmluZSBPQl9XSU5fTUFTS19MUyh3aW4p CQkJT0JfV0lOX1JFR19BRERSKHdpbiwgMHgxMCkKKyNkZWZpbmUgT0JfV0lOX01BU0tfTVMod2lu KQkJCU9CX1dJTl9SRUdfQUREUih3aW4sIDB4MTQpCisjZGVmaW5lIE9CX1dJTl9BQ1RJT05TKHdp bikJCQlPQl9XSU5fUkVHX0FERFIod2luLCAweDE4KQorI2RlZmluZSBPQl9XSU5fREVGQVVMVF9B Q1RJT05TCQkJKE9CX1dJTl9BQ1RJT05TKE9CX1dJTl9DT1VOVC0xKSArIDB4NCkKKyNkZWZpbmUg ICAgIE9CX1dJTl9GVU5DX05VTV9NQVNLCQlHRU5NQVNLKDMxLCAyNCkKKyNkZWZpbmUgICAgIE9C X1dJTl9GVU5DX05VTV9TSElGVAkJMjQKKyNkZWZpbmUgICAgIE9CX1dJTl9GVU5DX05VTV9FTkFC TEUJCUJJVCgyMykKKyNkZWZpbmUgICAgIE9CX1dJTl9CVVNfTlVNX0JJVFNfTUFTSwkJR0VOTUFT SygyMiwgMjApCisjZGVmaW5lICAgICBPQl9XSU5fQlVTX05VTV9CSVRTX1NISUZUCQkyMAorI2Rl ZmluZSAgICAgT0JfV0lOX01TR19DT0RFX0VOQUJMRQkJQklUKDIyKQorI2RlZmluZSAgICAgT0Jf V0lOX01TR19DT0RFX01BU0sJCUdFTk1BU0soMjEsIDE0KQorI2RlZmluZSAgICAgT0JfV0lOX01T R19DT0RFX1NISUZUCQkxNAorI2RlZmluZSAgICAgT0JfV0lOX01TR19QQVlMT0FEX0xFTgkJQklU KDEyKQorI2RlZmluZSAgICAgT0JfV0lOX0FUVFJfRU5BQkxFCQkJQklUKDExKQorI2RlZmluZSAg ICAgT0JfV0lOX0FUVFJfVENfTUFTSwkJCUdFTk1BU0soMTAsIDgpCisjZGVmaW5lICAgICBPQl9X SU5fQVRUUl9UQ19TSElGVAkJOAorI2RlZmluZSAgICAgT0JfV0lOX0FUVFJfUkVMQVhFRAkJCUJJ VCg3KQorI2RlZmluZSAgICAgT0JfV0lOX0FUVFJfTk9TTk9PUAkJCUJJVCg2KQorI2RlZmluZSAg ICAgT0JfV0lOX0FUVFJfUE9JU09OCQkJQklUKDUpCisjZGVmaW5lICAgICBPQl9XSU5fQVRUUl9J RE8JCQlCSVQoNCkKKyNkZWZpbmUgICAgIE9CX1dJTl9UWVBFX01BU0sJCQlHRU5NQVNLKDMsIDAp CisjZGVmaW5lICAgICBPQl9XSU5fVFlQRV9TSElGVAkJCTAKKyNkZWZpbmUgICAgIE9CX1dJTl9U WVBFX01FTQkJCTB4MAorI2RlZmluZSAgICAgT0JfV0lOX1RZUEVfSU8JCQkweDQKKyNkZWZpbmUg ICAgIE9CX1dJTl9UWVBFX0NPTkZJR19UWVBFMAkJMHg4CisjZGVmaW5lICAgICBPQl9XSU5fVFlQ RV9DT05GSUdfVFlQRTEJCTB4OQorI2RlZmluZSAgICAgT0JfV0lOX1RZUEVfTVNHCQkJMHhjCisK IC8qIExNSSByZWdpc3RlcnMgYmFzZSBhZGRyZXNzIGFuZCByZWdpc3RlciBvZmZzZXRzICovCiAj ZGVmaW5lIExNSV9CQVNFX0FERFIJCQkJMHg2MDAwCiAjZGVmaW5lIENGR19SRUcJCQkJCShMTUlf QkFTRV9BRERSICsgMHgwKQpAQCAtMTgzLDYgKzIyMywxMyBAQAogc3RydWN0IGFkdmtfcGNpZSB7 CiAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKIAl2b2lkIF9faW9tZW0gKmJhc2U7CisJ c3RydWN0IHsKKwkJcGh5c19hZGRyX3QgbWF0Y2g7CisJCXBoeXNfYWRkcl90IHJlbWFwOworCQlw aHlzX2FkZHJfdCBtYXNrOworCQl1MzIgYWN0aW9uczsKKwl9IHdpbnNbT0JfV0lOX0NPVU5UXTsK Kwl1OCB3aW5zX2NvdW50OwogCXN0cnVjdCBpcnFfZG9tYWluICppcnFfZG9tYWluOwogCXN0cnVj dCBpcnFfY2hpcCBpcnFfY2hpcDsKIAlzdHJ1Y3QgaXJxX2RvbWFpbiAqbXNpX2RvbWFpbjsKQEAg LTM2OSw5ICs0MTYsMzkgQEAgc3RhdGljIHZvaWQgYWR2a19wY2llX3RyYWluX2xpbmsoc3RydWN0 IGFkdmtfcGNpZSAqcGNpZSkKIAlkZXZfZXJyKGRldiwgImxpbmsgbmV2ZXIgY2FtZSB1cFxuIik7 CiB9CiAKKy8qCisgKiBTZXQgUENJZSBhZGRyZXNzIHdpbmRvdyByZWdpc3RlciB3aGljaCBjb3Vs ZCBiZSB1c2VkIGZvciBtZW1vcnkKKyAqIG1hcHBpbmcuCisgKi8KK3N0YXRpYyB2b2lkIGFkdmtf cGNpZV9zZXRfb2Jfd2luKHN0cnVjdCBhZHZrX3BjaWUgKnBjaWUsIHU4IHdpbl9udW0sCisJCQkJ IHBoeXNfYWRkcl90IG1hdGNoLCBwaHlzX2FkZHJfdCByZW1hcCwKKwkJCQkgcGh5c19hZGRyX3Qg bWFzaywgdTMyIGFjdGlvbnMpCit7CisJYWR2a193cml0ZWwocGNpZSwgT0JfV0lOX0VOQUJMRSB8 CisJCQkgIGxvd2VyXzMyX2JpdHMobWF0Y2gpLCBPQl9XSU5fTUFUQ0hfTFMod2luX251bSkpOwor CWFkdmtfd3JpdGVsKHBjaWUsIHVwcGVyXzMyX2JpdHMobWF0Y2gpLCBPQl9XSU5fTUFUQ0hfTVMo d2luX251bSkpOworCWFkdmtfd3JpdGVsKHBjaWUsIGxvd2VyXzMyX2JpdHMocmVtYXApLCBPQl9X SU5fUkVNQVBfTFMod2luX251bSkpOworCWFkdmtfd3JpdGVsKHBjaWUsIHVwcGVyXzMyX2JpdHMo cmVtYXApLCBPQl9XSU5fUkVNQVBfTVMod2luX251bSkpOworCWFkdmtfd3JpdGVsKHBjaWUsIGxv d2VyXzMyX2JpdHMobWFzayksIE9CX1dJTl9NQVNLX0xTKHdpbl9udW0pKTsKKwlhZHZrX3dyaXRl bChwY2llLCB1cHBlcl8zMl9iaXRzKG1hc2spLCBPQl9XSU5fTUFTS19NUyh3aW5fbnVtKSk7CisJ YWR2a193cml0ZWwocGNpZSwgYWN0aW9ucywgT0JfV0lOX0FDVElPTlMod2luX251bSkpOworfQor CitzdGF0aWMgdm9pZCBhZHZrX3BjaWVfZGlzYWJsZV9vYl93aW4oc3RydWN0IGFkdmtfcGNpZSAq cGNpZSwgdTggd2luX251bSkKK3sKKwlhZHZrX3dyaXRlbChwY2llLCAwLCBPQl9XSU5fTUFUQ0hf TFMod2luX251bSkpOworCWFkdmtfd3JpdGVsKHBjaWUsIDAsIE9CX1dJTl9NQVRDSF9NUyh3aW5f bnVtKSk7CisJYWR2a193cml0ZWwocGNpZSwgMCwgT0JfV0lOX1JFTUFQX0xTKHdpbl9udW0pKTsK KwlhZHZrX3dyaXRlbChwY2llLCAwLCBPQl9XSU5fUkVNQVBfTVMod2luX251bSkpOworCWFkdmtf d3JpdGVsKHBjaWUsIDAsIE9CX1dJTl9NQVNLX0xTKHdpbl9udW0pKTsKKwlhZHZrX3dyaXRlbChw Y2llLCAwLCBPQl9XSU5fTUFTS19NUyh3aW5fbnVtKSk7CisJYWR2a193cml0ZWwocGNpZSwgMCwg T0JfV0lOX0FDVElPTlMod2luX251bSkpOworfQorCiBzdGF0aWMgdm9pZCBhZHZrX3BjaWVfc2V0 dXBfaHcoc3RydWN0IGFkdmtfcGNpZSAqcGNpZSkKIHsKIAl1MzIgcmVnOworCWludCBpOwogCiAJ LyogRW5hYmxlIFRYICovCiAJcmVnID0gYWR2a19yZWFkbChwY2llLCBQQ0lFX0NPUkVfUkVGX0NM S19SRUcpOwpAQCAtNDQwLDE1ICs1MTcsNTEgQEAgc3RhdGljIHZvaWQgYWR2a19wY2llX3NldHVw X2h3KHN0cnVjdCBhZHZrX3BjaWUgKnBjaWUpCiAJcmVnID0gUENJRV9JUlFfQUxMX01BU0sgJiAo flBDSUVfSVJRX0VOQUJMRV9JTlRTX01BU0spOwogCWFkdmtfd3JpdGVsKHBjaWUsIHJlZywgSE9T VF9DVFJMX0lOVF9NQVNLX1JFRyk7CiAKKwkvKgorCSAqIEVuYWJsZSBBWEkgYWRkcmVzcyB3aW5k b3cgbG9jYXRpb24gZ2VuZXJhdGlvbjoKKwkgKiBXaGVuIGl0IGlzIGVuYWJsZWQsIHRoZSBkZWZh dWx0IG91dGJvdW5kIHdpbmRvdworCSAqIGNvbmZpZ3VyYXRpb25zIChEZWZhdWx0IFVzZXIgRmll bGQ6IDB4RDAwNzRDRkMpCisJICogYXJlIHVzZWQgdG8gdHJhbnNwYXJlbnQgYWRkcmVzcyB0cmFu c2xhdGlvbiBmb3IKKwkgKiB0aGUgb3V0Ym91bmQgdHJhbnNhY3Rpb25zLiBUaHVzLCBQQ0llIGFk ZHJlc3MKKwkgKiB3aW5kb3dzIGFyZSBub3QgcmVxdWlyZWQgZm9yIHRyYW5zcGFyZW50IG1lbW9y eQorCSAqIGFjY2VzcyB3aGVuIGRlZmF1bHQgb3V0Ym91bmQgd2luZG93IGNvbmZpZ3VyYXRpb24K KwkgKiBpcyBzZXQgZm9yIG1lbW9yeSBhY2Nlc3MuCisJICovCiAJcmVnID0gYWR2a19yZWFkbChw Y2llLCBQQ0lFX0NPUkVfQ1RSTDJfUkVHKTsKIAlyZWcgfD0gUENJRV9DT1JFX0NUUkwyX09CX1dJ Tl9FTkFCTEU7CiAJYWR2a193cml0ZWwocGNpZSwgcmVnLCBQQ0lFX0NPUkVfQ1RSTDJfUkVHKTsK IAotCS8qIEJ5cGFzcyB0aGUgYWRkcmVzcyB3aW5kb3cgbWFwcGluZyBmb3IgUElPICovCisJLyoK KwkgKiBTZXQgbWVtb3J5IGFjY2VzcyBpbiBEZWZhdWx0IFVzZXIgRmllbGQgc28gaXQKKwkgKiBp cyBub3QgcmVxdWlyZWQgdG8gY29uZmlndXJlIFBDSWUgYWRkcmVzcyBmb3IKKwkgKiB0cmFuc3Bh cmVudCBtZW1vcnkgYWNjZXNzLgorCSAqLworCWFkdmtfd3JpdGVsKHBjaWUsIE9CX1dJTl9UWVBF X01FTSwgT0JfV0lOX0RFRkFVTFRfQUNUSU9OUyk7CisKKwkvKgorCSAqIEJ5cGFzcyB0aGUgYWRk cmVzcyB3aW5kb3cgbWFwcGluZyBmb3IgUElPOgorCSAqIFNpbmNlIFBJTyBhY2Nlc3MgYWxyZWFk eSBjb250YWlucyBhbGwgcmVxdWlyZWQKKwkgKiBpbmZvIG92ZXIgQVhJIGludGVyZmFjZSBieSBQ SU8gcmVnaXN0ZXJzLCB0aGUKKwkgKiBhZGRyZXNzIHdpbmRvdyBpcyBub3QgcmVxdWlyZWQuCisJ ICovCiAJcmVnID0gYWR2a19yZWFkbChwY2llLCBQSU9fQ1RSTCk7CiAJcmVnIHw9IFBJT19DVFJM X0FERFJfV0lOX0RJU0FCTEU7CiAJYWR2a193cml0ZWwocGNpZSwgcmVnLCBQSU9fQ1RSTCk7CiAK KwkvKgorCSAqIENvbmZpZ3VyZSBQQ0llIGFkZHJlc3Mgd2luZG93cyBmb3Igbm9uLW1lbW9yeSBv cgorCSAqIG5vbi10cmFuc3BhcmVudCBhY2Nlc3MgYXMgYnkgZGVmYXVsdCBQQ0llIHVzZXMKKwkg KiB0cmFuc3BhcmVudCBtZW1vcnkgYWNjZXNzLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCBwY2ll LT53aW5zX2NvdW50OyBpKyspCisJCWFkdmtfcGNpZV9zZXRfb2Jfd2luKHBjaWUsIGksCisJCQkJ ICAgICBwY2llLT53aW5zW2ldLm1hdGNoLCBwY2llLT53aW5zW2ldLnJlbWFwLAorCQkJCSAgICAg cGNpZS0+d2luc1tpXS5tYXNrLCBwY2llLT53aW5zW2ldLmFjdGlvbnMpOworCisJLyogRGlzYWJs ZSByZW1haW5pbmcgUENJZSBvdXRib3VuZCB3aW5kb3dzICovCisJZm9yIChpID0gcGNpZS0+d2lu c19jb3VudDsgaSA8IE9CX1dJTl9DT1VOVDsgaSsrKQorCQlhZHZrX3BjaWVfZGlzYWJsZV9vYl93 aW4ocGNpZSwgaSk7CisKIAlhZHZrX3BjaWVfdHJhaW5fbGluayhwY2llKTsKIAogCS8qCkBAIC0x MjE4LDYgKzEzMzEsNyBAQCBzdGF0aWMgaW50IGFkdmtfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CiAJc3Ry dWN0IGFkdmtfcGNpZSAqcGNpZTsKIAlzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlkZ2U7CisJ c3RydWN0IHJlc291cmNlX2VudHJ5ICplbnRyeTsKIAlpbnQgcmV0LCBpcnE7CiAKIAlicmlkZ2Ug PSBkZXZtX3BjaV9hbGxvY19ob3N0X2JyaWRnZShkZXYsIHNpemVvZihzdHJ1Y3QgYWR2a19wY2ll KSk7CkBAIC0xMjI4LDYgKzEzNDIsODAgQEAgc3RhdGljIGludCBhZHZrX3BjaWVfcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlwY2llLT5wZGV2ID0gcGRldjsKIAlwbGF0Zm9y bV9zZXRfZHJ2ZGF0YShwZGV2LCBwY2llKTsKIAorCXJlc291cmNlX2xpc3RfZm9yX2VhY2hfZW50 cnkoZW50cnksICZicmlkZ2UtPndpbmRvd3MpIHsKKwkJcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0ID0g ZW50cnktPnJlcy0+c3RhcnQ7CisJCXJlc291cmNlX3NpemVfdCBzaXplID0gcmVzb3VyY2Vfc2l6 ZShlbnRyeS0+cmVzKTsKKwkJdW5zaWduZWQgbG9uZyB0eXBlID0gcmVzb3VyY2VfdHlwZShlbnRy eS0+cmVzKTsKKwkJdTY0IHdpbl9zaXplOworCisJCS8qCisJCSAqIEFhcmR2YXJrIGhhcmR3YXJl IGFsbG93cyB0byBjb25maWd1cmUgYWxzbyBQQ0llIHdpbmRvdworCQkgKiBmb3IgY29uZmlnIHR5 cGUgMCBhbmQgdHlwZSAxIG1hcHBpbmcsIGJ1dCBkcml2ZXIgdXNlcworCQkgKiBvbmx5IFBJTyBm b3IgaXNzdWluZyBjb25maWd1cmF0aW9uIHRyYW5zZmVycyB3aGljaCBkb2VzCisJCSAqIG5vdCB1 c2UgUENJZSB3aW5kb3cgY29uZmlndXJhdGlvbi4KKwkJICovCisJCWlmICh0eXBlICE9IElPUkVT T1VSQ0VfTUVNICYmIHR5cGUgIT0gSU9SRVNPVVJDRV9NRU1fNjQgJiYKKwkJICAgIHR5cGUgIT0g SU9SRVNPVVJDRV9JTykKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIFNraXAgdHJhbnNwYXJl bnQgbWVtb3J5IHJlc291cmNlcy4gRGVmYXVsdCBvdXRib3VuZCBhY2Nlc3MKKwkJICogY29uZmln dXJhdGlvbiBpcyBzZXQgdG8gdHJhbnNwYXJlbnQgbWVtb3J5IGFjY2VzcyBzbyBpdAorCQkgKiBk b2VzIG5vdCBuZWVkIHdpbmRvdyBjb25maWd1cmF0aW9uLgorCQkgKi8KKwkJaWYgKCh0eXBlID09 IElPUkVTT1VSQ0VfTUVNIHx8IHR5cGUgPT0gSU9SRVNPVVJDRV9NRU1fNjQpICYmCisJCSAgICBl bnRyeS0+b2Zmc2V0ID09IDApCisJCQljb250aW51ZTsKKworCQkvKgorCQkgKiBUaGUgbi10aCBQ Q0llIHdpbmRvdyBpcyBjb25maWd1cmVkIGJ5IHR1cGxlIChtYXRjaCwgcmVtYXAsIG1hc2spCisJ CSAqIGFuZCBhbiBhY2Nlc3MgdG8gYWRkcmVzcyBBIHVzZXMgdGhpcyB3aW5kb3cgaWYgQSBtYXRj aGVzIHRoZQorCQkgKiBtYXRjaCB3aXRoIGdpdmVuIG1hc2suCisJCSAqIFNvIGV2ZXJ5IFBDSWUg d2luZG93IHNpemUgbXVzdCBiZSBhIHBvd2VyIG9mIHR3byBhbmQgZXZlcnkgc3RhcnQKKwkJICog YWRkcmVzcyBtdXN0IGJlIGFsaWduZWQgdG8gd2luZG93IHNpemUuIE1pbmltYWwgc2l6ZSBpcyA2 NCBLaUIKKwkJICogYmVjYXVzZSBsb3dlciAxNiBiaXRzIG9mIG1hc2sgbXVzdCBiZSB6ZXJvLiBS ZW1hcHBlZCBhZGRyZXNzCisJCSAqIG1heSBoYXZlIHNldCBvbmx5IGJpdHMgZnJvbSB0aGUgbWFz ay4KKwkJICovCisJCXdoaWxlIChwY2llLT53aW5zX2NvdW50IDwgT0JfV0lOX0NPVU5UICYmIHNp emUgPiAwKSB7CisJCQkvKiBDYWxjdWxhdGUgdGhlIGxhcmdlc3QgYWxpZ25lZCB3aW5kb3cgc2l6 ZSAqLworCQkJd2luX3NpemUgPSAoMVVMTCA8PCAoZmxzNjQoc2l6ZSktMSkpIHwKKwkJCQkgICAo c3RhcnQgPyAoMVVMTCA8PCBfX2ZmczY0KHN0YXJ0KSkgOiAwKTsKKwkJCXdpbl9zaXplID0gMVVM TCA8PCBfX2ZmczY0KHdpbl9zaXplKTsKKwkJCWlmICh3aW5fc2l6ZSA8IDB4MTAwMDApCisJCQkJ YnJlYWs7CisKKwkJCWRldl9kYmcoZGV2LAorCQkJCSJDb25maWd1cmluZyBQQ0llIHdpbmRvdyAl ZDogWzB4JWxseC0weCVsbHhdIGFzICVsdVxuIiwKKwkJCQlwY2llLT53aW5zX2NvdW50LCAodW5z aWduZWQgbG9uZyBsb25nKXN0YXJ0LAorCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpc3RhcnQgKyB3 aW5fc2l6ZSwgdHlwZSk7CisKKwkJCWlmICh0eXBlID09IElPUkVTT1VSQ0VfSU8pIHsKKwkJCQlw Y2llLT53aW5zW3BjaWUtPndpbnNfY291bnRdLmFjdGlvbnMgPSBPQl9XSU5fVFlQRV9JTzsKKwkJ CQlwY2llLT53aW5zW3BjaWUtPndpbnNfY291bnRdLm1hdGNoID0gcGNpX3Bpb190b19hZGRyZXNz KHN0YXJ0KTsKKwkJCX0gZWxzZSB7CisJCQkJcGNpZS0+d2luc1twY2llLT53aW5zX2NvdW50XS5h Y3Rpb25zID0gT0JfV0lOX1RZUEVfTUVNOworCQkJCXBjaWUtPndpbnNbcGNpZS0+d2luc19jb3Vu dF0ubWF0Y2ggPSBzdGFydDsKKwkJCX0KKwkJCXBjaWUtPndpbnNbcGNpZS0+d2luc19jb3VudF0u cmVtYXAgPSBzdGFydCAtIGVudHJ5LT5vZmZzZXQ7CisJCQlwY2llLT53aW5zW3BjaWUtPndpbnNf Y291bnRdLm1hc2sgPSB+KHdpbl9zaXplIC0gMSk7CisKKwkJCWlmIChwY2llLT53aW5zW3BjaWUt PndpbnNfY291bnRdLnJlbWFwICYgKHdpbl9zaXplIC0gMSkpCisJCQkJYnJlYWs7CisKKwkJCXN0 YXJ0ICs9IHdpbl9zaXplOworCQkJc2l6ZSAtPSB3aW5fc2l6ZTsKKwkJCXBjaWUtPndpbnNfY291 bnQrKzsKKwkJfQorCisJCWlmIChzaXplID4gMCkgeworCQkJZGV2X2VycigmcGNpZS0+cGRldi0+ ZGV2LAorCQkJCSJJbnZhbGlkIFBDSWUgcmVnaW9uIFsweCVsbHgtMHglbGx4XVxuIiwKKwkJCQko dW5zaWduZWQgbG9uZyBsb25nKWVudHJ5LT5yZXMtPnN0YXJ0LAorCQkJCSh1bnNpZ25lZCBsb25n IGxvbmcpZW50cnktPnJlcy0+ZW5kICsgMSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCX0K KwogCXBjaWUtPmJhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7 CiAJaWYgKElTX0VSUihwY2llLT5iYXNlKSkKIAkJcmV0dXJuIFBUUl9FUlIocGNpZS0+YmFzZSk7 CkBAIC0xMzA4LDYgKzE0OTYsNyBAQCBzdGF0aWMgaW50IGFkdmtfcGNpZV9yZW1vdmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgYWR2a19wY2llICpwY2llID0gcGxh dGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAJc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqYnJpZGdl ID0gcGNpX2hvc3RfYnJpZGdlX2Zyb21fcHJpdihwY2llKTsKKwlpbnQgaTsKIAogCXBjaV9sb2Nr X3Jlc2Nhbl9yZW1vdmUoKTsKIAlwY2lfc3RvcF9yb290X2J1cyhicmlkZ2UtPmJ1cyk7CkBAIC0x MzE3LDYgKzE1MDYsMTAgQEAgc3RhdGljIGludCBhZHZrX3BjaWVfcmVtb3ZlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiAJYWR2a19wY2llX3JlbW92ZV9tc2lfaXJxX2RvbWFpbihwY2ll KTsKIAlhZHZrX3BjaWVfcmVtb3ZlX2lycV9kb21haW4ocGNpZSk7CiAKKwkvKiBEaXNhYmxlIG91 dGJvdW5kIGFkZHJlc3Mgd2luZG93cyBtYXBwaW5nICovCisJZm9yIChpID0gMDsgaSA8IE9CX1dJ Tl9DT1VOVDsgaSsrKQorCQlhZHZrX3BjaWVfZGlzYWJsZV9vYl93aW4ocGNpZSwgaSk7CisKIAly ZXR1cm4gMDsKIH0KIAotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=