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=-8.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 8AE63C31E51 for ; Tue, 18 Jun 2019 08:10:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4E6EF2080C for ; Tue, 18 Jun 2019 08:10:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=armh.onmicrosoft.com header.i=@armh.onmicrosoft.com header.b="lImXDqc4" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728958AbfFRIK4 (ORCPT ); Tue, 18 Jun 2019 04:10:56 -0400 Received: from mail-eopbgr10064.outbound.protection.outlook.com ([40.107.1.64]:50755 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725963AbfFRIKz (ORCPT ); Tue, 18 Jun 2019 04:10:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QIxABGkskOZBBsVp5w9GH+5JHWtwkPkPVHwu10whFtU=; b=lImXDqc4eJL/7LtCKVdLUHVba/v1pyRLqWwu6GBxeFh7VsIv2y7ZVFZR+yT5zsa9Mjkf+wChsrqcqkeD7EQ6k+rYjGCNaoeOL99tpdPsee0vnC3+Je9Kpy9d/zFpcALJalx7rxyJpgObXVJLrOM+Dq55wt6UIQKcwWU0TLSarh0= Received: from VE1PR08MB5006.eurprd08.prod.outlook.com (10.255.159.31) by VE1PR08MB5088.eurprd08.prod.outlook.com (20.179.29.210) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.12; Tue, 18 Jun 2019 08:10:49 +0000 Received: from VE1PR08MB5006.eurprd08.prod.outlook.com ([fe80::206b:5cf6:97e:1358]) by VE1PR08MB5006.eurprd08.prod.outlook.com ([fe80::206b:5cf6:97e:1358%7]) with mapi id 15.20.1987.014; Tue, 18 Jun 2019 08:10:49 +0000 From: "james qian wang (Arm Technology China)" To: Liviu Dudau , "airlied@linux.ie" , Brian Starkey , "maarten.lankhorst@linux.intel.com" , "sean@poorly.run" CC: "Jonathan Chai (Arm Technology China)" , "Julien Yin (Arm Technology China)" , "thomas Sun (Arm Technology China)" , "Lowry Li (Arm Technology China)" , Ayan Halder , "Tiannan Zhu (Arm Technology China)" , "Yiqi Kang (Arm Technology China)" , nd , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , Ben Davis , "Oscar Zhang (Arm Technology China)" , "Channing Chen (Arm Technology China)" , "james qian wang (Arm Technology China)" Subject: [PATCH 2/2] drm/komeda: Enable dual-link support Thread-Topic: [PATCH 2/2] drm/komeda: Enable dual-link support Thread-Index: AQHVJa1WgyizyL/vMUuSqGggejN3TA== Date: Tue, 18 Jun 2019 08:10:49 +0000 Message-ID: <20190618081013.13638-3-james.qian.wang@arm.com> References: <20190618081013.13638-1-james.qian.wang@arm.com> In-Reply-To: <20190618081013.13638-1-james.qian.wang@arm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [113.29.88.7] x-clientproxiedby: HK2PR0401CA0002.apcprd04.prod.outlook.com (2603:1096:202:2::12) To VE1PR08MB5006.eurprd08.prod.outlook.com (2603:10a6:803:113::31) authentication-results: spf=none (sender IP is ) smtp.mailfrom=james.qian.wang@arm.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1dc37956-60f8-4718-2547-08d6f3c478d4 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020);SRVR:VE1PR08MB5088; x-ms-traffictypediagnostic: VE1PR08MB5088: nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:126; x-forefront-prvs: 007271867D x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(346002)(396003)(39860400002)(376002)(136003)(366004)(189003)(199004)(36756003)(14454004)(81156014)(54906003)(8936002)(102836004)(81166006)(256004)(55236004)(14444005)(26005)(110136005)(64756008)(6506007)(52116002)(386003)(53936002)(6486002)(76176011)(103116003)(25786009)(66446008)(66556008)(5660300002)(4326008)(186003)(316002)(7736002)(86362001)(50226002)(66066001)(11346002)(478600001)(73956011)(6512007)(71200400001)(8676002)(2906002)(66476007)(71190400001)(6436002)(66946007)(30864003)(486006)(476003)(3846002)(2616005)(2501003)(446003)(6116002)(2201001)(1076003)(305945005)(68736007)(99286004);DIR:OUT;SFP:1101;SCL:1;SRVR:VE1PR08MB5088;H:VE1PR08MB5006.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: eaDeW+lmLvCXcsnWInGm1kAV/cf1YJtaqcSEasoJ/VRfQRvkniqZzkxpQfteFS0Fn8WduP0XQaqfvJO8/i05/mITbFLtu0AgBxI2M9bIOng0nPy4zr+3RBVoYwC8LW7mcmfNtoGpuiqvM+8XTZrwkj1fBZsFauX+bxWvXKRrkEauGIglE1/wviUbNHikU+4XTKiBV1rSKZHJMm1DDFT3lryiHArgECz1b31rX6Vmwy5OR5J0oa+Qt/kldDT9EzLlpyiDwq3C3k8clKTmuML5pciH6F6T94+dwtilv+m81u1Kg8QPkkE9mmEXBtarTUy96tliuVtvha075MwoiJcaCC9X/1AFUSCDlIfAqNGOzHFY7u+eeI1+9bmYSTZE9FOZczoIr4R4p2Bn3K2e4v13e8vAxtdXfxQeyg+Sx8ExkQw= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1dc37956-60f8-4718-2547-08d6f3c478d4 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jun 2019 08:10:49.2228 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: james.qian.wang@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5088 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org S29tZWRhIEhXIGNhbiBzdXBwb3J0IGR1YWwtbGluayB3aGljaCBzcGxpdHMgZGlzcGxheSBmcmFt ZSB0byB0d28gaGFsdmVzDQoobGVmdC9saW5rMCwgcmlnaHQvbGluazEpIGFuZCBvdXRwdXQgdGhl bSBieSB0d28gb3V0cHV0IGxpbmtzLg0KRHVlIHRvIHRoZSBoYWx2ZWQgcGl4ZWwgcmF0ZSBvZiBl YWNoIGxpbmssIHRoZSBweGxjbGsgb2YgZHVhbC1saW5rIGNhbiBiZQ0KcmVkdWNlZCB0d28gdGlt ZXMgY29tcGFyZSB3aXRoIHNpbmdsZS1saW5rLg0KDQpGb3IgZW5hYmxpbmcgZHVhbC1saW5rOg0K LSBUaGUgRFQgbmVlZCB0byBjb25maWd1cmUgdHdvIG91dHB1dC1saW5rcyBmb3IgdGhlIHBpcGVs aW5lIG5vZGUuDQotIEtvbWVkYSBlbmFibGUgZHVhbC1saW5rIHdoZW4gYm90aCBsaW5rMCBhbmQg bGluazEgaGF2ZSBiZWVuIGNvbm5lY3RlZC4NCg0KRXhhbXBsZSBvZiBob3cgdGhlIHBpcGVsaW5l IG5vZGUgd2lsbCBsb29rIGxpa2UgZm9yIGR1YWwtbGluayBzZXR1cA0KDQpwaXBlMDogcGlwZWxp bmVAMCB7DQoJY2xvY2tzID0gPCZmcGdhb3NjMj47DQoJY2xvY2stbmFtZXMgPSAicHhjbGsiOw0K CXJlZyA9IDwwPjsNCg0KCSNhZGRyZXNzLWNlbGxzID0gPDE+Ow0KCSNzaXplLWNlbGxzID0gPDA+ Ow0KDQoJcG9ydEAwIHsNCgkJcmVnID0gPDA+Ow0KDQoJCSNhZGRyZXNzLWNlbGxzID0gPDE+Ow0K CQkjc2l6ZS1jZWxscyA9IDwwPjsNCgkJZHAwX3BpcGUwX2xpbmswOiBlbmRwb2ludEAwIHsNCgkJ CXJlZyA9IDwwPjsNCgkJCXJlbW90ZS1lbmRwb2ludCA9IDwmZGxpbmtfY29ubmVjdG9yX2luMD47 DQoNCgkJfTsNCgkJZHAwX3BpcGUwX2xpbmsxOiBlbmRwb2ludEAxIHsNCgkJCXJlZyA9IDwxPjsN CgkJCXJlbW90ZS1lbmRwb2ludCA9IDwmZGxpbmtfY29ubmVjdG9yX2luMT47DQoJCX07DQoJfTsN Cn07DQoNClNpZ25lZC1vZmYtYnk6IEphbWVzIFFpYW4gV2FuZyAoQXJtIFRlY2hub2xvZ3kgQ2hp bmEpIDxqYW1lcy5xaWFuLndhbmdAYXJtLmNvbT4NCi0tLQ0KIC4uLi9hcm0vZGlzcGxheS9rb21l ZGEvZDcxL2Q3MV9jb21wb25lbnQuYyAgICB8ICA2ICstDQogLi4uL2dwdS9kcm0vYXJtL2Rpc3Bs YXkva29tZWRhL2tvbWVkYV9jcnRjLmMgIHwgNzMgKysrKysrKysrKysrKy0tLS0tLQ0KIC4uLi9n cHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZGV2LmMgICB8ICA1ICstDQogLi4uL2dw dS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kcnYuYyAgIHwgIDggKy0NCiAuLi4vZ3B1 L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5oICAgfCAgMiArLQ0KIC4uLi9kcm0v YXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5jICB8IDE5ICsrKystDQogLi4uL2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmggIHwgIDYgKy0NCiAuLi4vZGlz cGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lX3N0YXRlLmMgICAgfCAgMiArLQ0KIDggZmlsZXMg Y2hhbmdlZCwgODUgaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfY29tcG9uZW50LmMg Yi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfY29tcG9uZW50LmMN CmluZGV4IDA0OWU4YmZhYzI3Yi4uOGU5ZDQ0ZDAxZTkxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcxX2NvbXBvbmVudC5jDQorKysgYi9kcml2 ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfY29tcG9uZW50LmMNCkBAIC00 LDggKzQsNiBAQA0KICAqIEF1dGhvcjogSmFtZXMuUWlhbi5XYW5nIDxqYW1lcy5xaWFuLndhbmdA YXJtLmNvbT4NCiAgKg0KICAqLw0KLQ0KLSNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+DQogI2lu Y2x1ZGUgImQ3MV9kZXYuaCINCiAjaW5jbHVkZSAia29tZWRhX2ttcy5oIg0KICNpbmNsdWRlICJt YWxpZHBfaW8uaCINCkBAIC0xMDg4LDYgKzEwODYsMTAgQEAgc3RhdGljIHZvaWQgZDcxX3RpbWlu Z19jdHJscl91cGRhdGUoc3RydWN0IGtvbWVkYV9jb21wb25lbnQgKmMsDQoNCiAJLyogY29uZmln dXJlIGJzIGNvbnRyb2wgcmVnaXN0ZXIgKi8NCiAJdmFsdWUgPSBCU19DVFJMX0VOIHwgQlNfQ1RS TF9WTTsNCisJaWYgKGMtPnBpcGVsaW5lLT5kdWFsX2xpbmspIHsNCisJCW1hbGlkcF93cml0ZTMy KHJlZywgQlNfRFJJRlRfVE8sIGhmcm9udF9wb3JjaCArIDE2KTsNCisJCXZhbHVlIHw9IEJTX0NU UkxfREw7DQorCX0NCg0KIAltYWxpZHBfd3JpdGUzMihyZWcsIEJMS19DT05UUk9MLCB2YWx1ZSk7 DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29t ZWRhX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Ny dGMuYw0KaW5kZXggOThlMzZlMWZiMmFkLi5lYzQzMDMyZjNjMmMgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9jcnRjLmMNCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2NydGMuYw0KQEAgLTI4LDcgKzI4 LDcgQEAgc3RhdGljIHZvaWQga29tZWRhX2NydGNfdXBkYXRlX2Nsb2NrX3JhdGlvKHN0cnVjdCBr b21lZGFfY3J0Y19zdGF0ZSAqa2NydGNfc3QpDQogCX0NCg0KIAlweGxjbGsgPSBrY3J0Y19zdC0+ YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgKiAxMDAwOw0KLQlhY2xrID0ga29tZWRhX2Nh bGNfYWNsayhrY3J0Y19zdCkgPDwgMzI7DQorCWFjbGsgPSBrb21lZGFfY3J0Y19nZXRfYWNsayhr Y3J0Y19zdCkgPDwgMzI7DQoNCiAJZG9fZGl2KGFjbGssIHB4bGNsayk7DQogCWtjcnRjX3N0LT5j bG9ja19yYXRpbyA9IGFjbGs7DQpAQCAtNzUsMTQgKzc1LDYgQEAga29tZWRhX2NydGNfYXRvbWlj X2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCiAJcmV0dXJuIDA7DQogfQ0KDQotdW5zaWdu ZWQgbG9uZyBrb21lZGFfY2FsY19hY2xrKHN0cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSAqa2NydGNf c3QpDQotew0KLQlzdHJ1Y3Qga29tZWRhX2RldiAqbWRldiA9IGtjcnRjX3N0LT5iYXNlLmNydGMt PmRldi0+ZGV2X3ByaXZhdGU7DQotCXVuc2lnbmVkIGxvbmcgYWNsayA9IGtjcnRjX3N0LT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsNCi0NCi0JcmV0dXJuIGNsa19yb3VuZF9yYXRlKG1k ZXYtPmFjbGssIGFjbGsgKiAxMDAwKTsNCi19DQotDQogLyogRm9yIGFjdGl2ZSBhIGNydGMsIG1h aW5seSBuZWVkIHR3byBwYXJ0cyBvZiBwcmVwYXJhdGlvbg0KICAqIDEuIGFkanVzdCBkaXNwbGF5 IG9wZXJhdGlvbiBtb2RlLg0KICAqIDIuIGVuYWJsZSBuZWVkZWQgY2xrDQpAQCAtMTE5LDcgKzEx MSw3IEBAIGtvbWVkYV9jcnRjX3ByZXBhcmUoc3RydWN0IGtvbWVkYV9jcnRjICprY3J0YykNCiAJ ICogdG8gZW5hYmxlIGl0IGFnYWluLg0KIAkgKi8NCiAJaWYgKG5ld19tb2RlICE9IEtPTUVEQV9N T0RFX0RVQUxfRElTUCkgew0KLQkJZXJyID0gY2xrX3NldF9yYXRlKG1kZXYtPmFjbGssIGtvbWVk YV9jYWxjX2FjbGsoa2NydGNfc3QpKTsNCisJCWVyciA9IGNsa19zZXRfcmF0ZShtZGV2LT5hY2xr LCBrb21lZGFfY3J0Y19nZXRfYWNsayhrY3J0Y19zdCkpOw0KIAkJaWYgKGVycikNCiAJCQlEUk1f RVJST1IoImZhaWxlZCB0byBzZXQgYWNsay5cbiIpOw0KIAkJZXJyID0gY2xrX3ByZXBhcmVfZW5h YmxlKG1kZXYtPmFjbGspOw0KQEAgLTM0NSwyOSArMzM3LDU4IEBAIGtvbWVkYV9jcnRjX2F0b21p Y19mbHVzaChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsDQogCWtvbWVkYV9jcnRjX2RvX2ZsdXNoKGNy dGMsIG9sZCk7DQogfQ0KDQorLyogUmV0dXJucyB0aGUgbWluaW11bSBmcmVxdWVuY3kgb2YgdGhl IGFjbGsgcmF0ZSAobWFpbiBlbmdpbmUgY2xvY2spIGluIEh6ICovDQorc3RhdGljIHVuc2lnbmVk IGxvbmcNCitrb21lZGFfY2FsY19taW5fYWNsa19yYXRlKHN0cnVjdCBrb21lZGFfY3J0YyAqa2Ny dGMsDQorCQkJICB1bnNpZ25lZCBsb25nIHB4bGNsaykNCit7DQorCS8qIE9uY2UgZHVhbC1saW5r IG9uZSBkaXNwbGF5IHBpcGVsaW5lIGRyaXZlcyB0d28gZGlzcGxheSBvdXRwdXRzLA0KKwkgKiB0 aGUgYWNsayBuZWVkcyBydW4gb24gdGhlIGRvdWJsZSByYXRlIG9mIHB4bGNsaw0KKwkgKi8NCisJ aWYgKGtjcnRjLT5tYXN0ZXItPmR1YWxfbGluaykNCisJCXJldHVybiBweGxjbGsgKiAyOw0KKwll bHNlDQorCQlyZXR1cm4gcHhsY2xrOw0KK30NCisNCisvKiBHZXQgY3VycmVudCBhY2xrIHJhdGUg dGhhdCBzcGVjaWZpZWQgYnkgc3RhdGUgKi8NCit1bnNpZ25lZCBsb25nIGtvbWVkYV9jcnRjX2dl dF9hY2xrKHN0cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSAqa2NydGNfc3QpDQorew0KKwlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSBrY3J0Y19zdC0+YmFzZS5jcnRjOw0KKwlzdHJ1Y3Qga29tZWRhX2Rl diAqbWRldiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7DQorCXVuc2lnbmVkIGxvbmcgcHhsY2xr ID0ga2NydGNfc3QtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrICogMTAwMDsNCisJdW5z aWduZWQgbG9uZyBtaW5fYWNsazsNCisNCisJbWluX2FjbGsgPSBrb21lZGFfY2FsY19taW5fYWNs a19yYXRlKHRvX2tjcnRjKGNydGMpLCBweGxjbGspOw0KKw0KKwlyZXR1cm4gY2xrX3JvdW5kX3Jh dGUobWRldi0+YWNsaywgbWluX2FjbGspOw0KK30NCisNCiBzdGF0aWMgZW51bSBkcm1fbW9kZV9z dGF0dXMNCiBrb21lZGFfY3J0Y19tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0pDQogew0KIAlzdHJ1Y3Qga29tZWRhX2RldiAq bWRldiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7DQogCXN0cnVjdCBrb21lZGFfY3J0YyAqa2Ny dGMgPSB0b19rY3J0YyhjcnRjKTsNCiAJc3RydWN0IGtvbWVkYV9waXBlbGluZSAqbWFzdGVyID0g a2NydGMtPm1hc3RlcjsNCi0JbG9uZyBtb2RlX2NsaywgcHhsY2xrOw0KKwl1bnNpZ25lZCBsb25n IG1pbl9weGxjbGssIG1pbl9hY2xrOw0KDQogCWlmIChtLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdf SU5URVJMQUNFKQ0KIAkJcmV0dXJuIE1PREVfTk9fSU5URVJMQUNFOw0KDQotCW1vZGVfY2xrID0g bS0+Y2xvY2sgKiAxMDAwOw0KLQlweGxjbGsgPSBjbGtfcm91bmRfcmF0ZShtYXN0ZXItPnB4bGNs aywgbW9kZV9jbGspOw0KLQlpZiAocHhsY2xrICE9IG1vZGVfY2xrKSB7DQotCQlEUk1fREVCVUdf QVRPTUlDKCJweGxjbGsgZG9lc24ndCBzdXBwb3J0ICVsZCBIelxuIiwgbW9kZV9jbGspOw0KKwlt aW5fcHhsY2xrID0gbS0+Y2xvY2sgKiAxMDAwOw0KKwlpZiAobWFzdGVyLT5kdWFsX2xpbmspDQor CQltaW5fcHhsY2xrIC89IDI7DQorDQorCWlmIChtaW5fcHhsY2xrICE9IGNsa19yb3VuZF9yYXRl KG1hc3Rlci0+cHhsY2xrLCBtaW5fcHhsY2xrKSkgew0KKwkJRFJNX0RFQlVHX0FUT01JQygicHhs Y2xrIGRvZXNuJ3Qgc3VwcG9ydCAlbHUgSHpcbiIsIG1pbl9weGxjbGspOw0KDQogCQlyZXR1cm4g TU9ERV9OT0NMT0NLOw0KIAl9DQoNCi0JLyogbWFpbiBlbmdpbmUgY2xvY2sgbXVzdCBiZSBmYXN0 ZXIgdGhhbiBweGxjbGsqLw0KLQlpZiAoY2xrX3JvdW5kX3JhdGUobWRldi0+YWNsaywgbW9kZV9j bGspIDwgcHhsY2xrKSB7DQotCQlEUk1fREVCVUdfQVRPTUlDKCJlbmdpbmUgY2xrIGNhbid0IHNh dGlzZnkgdGhlIHJlcXVpcmVtZW50IG9mICVzLWNsazogJWxkLlxuIiwNCi0JCQkJIG0tPm5hbWUs IHB4bGNsayk7DQorCW1pbl9hY2xrID0ga29tZWRhX2NhbGNfbWluX2FjbGtfcmF0ZSh0b19rY3J0 YyhjcnRjKSwgbWluX3B4bGNsayk7DQorCWlmIChjbGtfcm91bmRfcmF0ZShtZGV2LT5hY2xrLCBt aW5fYWNsaykgPCBtaW5fYWNsaykgew0KKwkJRFJNX0RFQlVHX0FUT01JQygiZW5naW5lIGNsayBj YW4ndCBzYXRpc2Z5IHRoZSByZXF1aXJlbWVudCBvZiAlcy1jbGs6ICVsdS5cbiIsDQorCQkJCSBt LT5uYW1lLCBtaW5fcHhsY2xrKTsNCg0KIAkJcmV0dXJuIE1PREVfQ0xPQ0tfSElHSDsNCiAJfQ0K QEAgLTM4Myw2ICs0MDQsMTQgQEAgc3RhdGljIGJvb2wga29tZWRhX2NydGNfbW9kZV9maXh1cChz dHJ1Y3QgZHJtX2NydGMgKmNydGMsDQogCXVuc2lnbmVkIGxvbmcgY2xrX3JhdGU7DQoNCiAJZHJt X21vZGVfc2V0X2NydGNpbmZvKGFkanVzdGVkX21vZGUsIDApOw0KKwkvKiBJbiBkdWFsIGxpbmsg aGFsZiB0aGUgaG9yaXpvbnRhbCBzZXR0aW5ncyAqLw0KKwlpZiAoa2NydGMtPm1hc3Rlci0+ZHVh bF9saW5rKSB7DQorCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrIC89IDI7DQorCQlhZGp1c3Rl ZF9tb2RlLT5jcnRjX2hkaXNwbGF5IC89IDI7DQorCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hzeW5j X3N0YXJ0IC89IDI7DQorCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hzeW5jX2VuZCAvPSAyOw0KKwkJ YWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWwgLz0gMjsNCisJfQ0KDQogCWNsa19yYXRlID0gYWRq dXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayAqIDEwMDA7DQogCS8qIGNydGNfY2xvY2sgd2lsbCBiZSB1 c2VkIGFzIHRoZSBrb21lZGEgb3V0cHV0IHBpeGVsIGNsb2NrICovDQpAQCAtNTE0LDEwICs1NDMs OCBAQCBpbnQga29tZWRhX2ttc19zZXR1cF9jcnRjcyhzdHJ1Y3Qga29tZWRhX2ttc19kZXYgKmtt cywNCiAJCWVsc2UNCiAJCQlzcHJpbnRmKHN0ciwgIk5vbmUiKTsNCg0KLQkJRFJNX0lORk8oImNy dGMlZDogbWFzdGVyKHBpcGUtJWQpIHNsYXZlKCVzKSBvdXRwdXQ6ICVzLlxuIiwNCi0JCQkga21z LT5uX2NydGNzLCBtYXN0ZXItPmlkLCBzdHIsDQotCQkJIG1hc3Rlci0+b2Zfb3V0cHV0X2RldiA/ DQotCQkJIG1hc3Rlci0+b2Zfb3V0cHV0X2Rldi0+ZnVsbF9uYW1lIDogIk5vbmUiKTsNCisJCURS TV9JTkZPKCJDUlRDLSVkOiBtYXN0ZXIocGlwZS0lZCkgc2xhdmUoJXMpLlxuIiwNCisJCQkga21z LT5uX2NydGNzLCBtYXN0ZXItPmlkLCBzdHIpOw0KDQogCQlrbXMtPm5fY3J0Y3MrKzsNCiAJfQ0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Rl di5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZGV2LmMNCmlu ZGV4IGVkZDA5NDM1ZjM1ZC4uNTkxZGExZWY3ODk0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZGV2LmMNCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Rldi5jDQpAQCAtMTIzLDExICsxMjMsMTQgQEAg c3RhdGljIGludCBrb21lZGFfcGFyc2VfcGlwZV9kdChzdHJ1Y3Qga29tZWRhX2RldiAqbWRldiwg c3RydWN0IGRldmljZV9ub2RlICpucCkNCiAJcGlwZS0+cHhsY2xrID0gY2xrOw0KDQogCS8qIGVu dW0gcG9ydHMgKi8NCi0JcGlwZS0+b2Zfb3V0cHV0X2RldiA9DQorCXBpcGUtPm9mX291dHB1dF9s aW5rc1swXSA9DQogCQlvZl9ncmFwaF9nZXRfcmVtb3RlX25vZGUobnAsIEtPTUVEQV9PRl9QT1JU X09VVFBVVCwgMCk7DQorCXBpcGUtPm9mX291dHB1dF9saW5rc1sxXSA9DQorCQlvZl9ncmFwaF9n ZXRfcmVtb3RlX25vZGUobnAsIEtPTUVEQV9PRl9QT1JUX09VVFBVVCwgMSk7DQogCXBpcGUtPm9m X291dHB1dF9wb3J0ID0NCiAJCW9mX2dyYXBoX2dldF9wb3J0X2J5X2lkKG5wLCBLT01FREFfT0Zf UE9SVF9PVVRQVVQpOw0KDQorCXBpcGUtPmR1YWxfbGluayA9IHBpcGUtPm9mX291dHB1dF9saW5r c1swXSAmJiBwaXBlLT5vZl9vdXRwdXRfbGlua3NbMV07DQogCXBpcGUtPm9mX25vZGUgPSBucDsN Cg0KIAlyZXR1cm4gMDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkv a29tZWRhL2tvbWVkYV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEv a29tZWRhX2Rydi5jDQppbmRleCBhYTRjZWYxZmU4NGUuLjY2ZTRjZThhYmQ2NyAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Rydi5jDQorKysg Yi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kcnYuYw0KQEAgLTg5 LDExICs4OSwxMiBAQCBzdGF0aWMgaW50IGNvbXBhcmVfb2Yoc3RydWN0IGRldmljZSAqZGV2LCB2 b2lkICpkYXRhKQ0KDQogc3RhdGljIHZvaWQga29tZWRhX2FkZF9zbGF2ZShzdHJ1Y3QgZGV2aWNl ICptYXN0ZXIsDQogCQkJICAgICBzdHJ1Y3QgY29tcG9uZW50X21hdGNoICoqbWF0Y2gsDQotCQkJ ICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBpbnQgcG9ydCkNCisJCQkgICAgIHN0cnVjdCBk ZXZpY2Vfbm9kZSAqbnAsDQorCQkJICAgICB1MzIgcG9ydCwgdTMyIGVuZHBvaW50KQ0KIHsNCiAJ c3RydWN0IGRldmljZV9ub2RlICpyZW1vdGU7DQoNCi0JcmVtb3RlID0gb2ZfZ3JhcGhfZ2V0X3Jl bW90ZV9ub2RlKG5wLCBwb3J0LCAwKTsNCisJcmVtb3RlID0gb2ZfZ3JhcGhfZ2V0X3JlbW90ZV9u b2RlKG5wLCBwb3J0LCBlbmRwb2ludCk7DQogCWlmIChyZW1vdGUpIHsNCiAJCWRybV9vZl9jb21w b25lbnRfbWF0Y2hfYWRkKG1hc3RlciwgbWF0Y2gsIGNvbXBhcmVfb2YsIHJlbW90ZSk7DQogCQlv Zl9ub2RlX3B1dChyZW1vdGUpOw0KQEAgLTExNCw3ICsxMTUsOCBAQCBzdGF0aWMgaW50IGtvbWVk YV9wbGF0Zm9ybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KIAkJCWNvbnRp bnVlOw0KDQogCQkvKiBhZGQgY29ubmVjdG9yICovDQotCQlrb21lZGFfYWRkX3NsYXZlKGRldiwg Jm1hdGNoLCBjaGlsZCwgS09NRURBX09GX1BPUlRfT1VUUFVUKTsNCisJCWtvbWVkYV9hZGRfc2xh dmUoZGV2LCAmbWF0Y2gsIGNoaWxkLCBLT01FREFfT0ZfUE9SVF9PVVRQVVQsIDApOw0KKwkJa29t ZWRhX2FkZF9zbGF2ZShkZXYsICZtYXRjaCwgY2hpbGQsIEtPTUVEQV9PRl9QT1JUX09VVFBVVCwg MSk7DQogCX0NCg0KIAlyZXR1cm4gY29tcG9uZW50X21hc3Rlcl9hZGRfd2l0aF9tYXRjaChkZXYs ICZrb21lZGFfbWFzdGVyX29wcywgbWF0Y2gpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FybS9k aXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmgNCmluZGV4IGFmNmFmMWQ1NTY0My4uY2YyMTIyYmUy NzQwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21l ZGFfa21zLmgNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRh X2ttcy5oDQpAQCAtMTgwLDcgKzE4MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNfZmxpcF9o KHUzMiByb3QpDQogCQlyZXR1cm4gISEocm90YXRpb24gJiBEUk1fTU9ERV9SRUZMRUNUX1gpOw0K IH0NCg0KLXVuc2lnbmVkIGxvbmcga29tZWRhX2NhbGNfYWNsayhzdHJ1Y3Qga29tZWRhX2NydGNf c3RhdGUgKmtjcnRjX3N0KTsNCit1bnNpZ25lZCBsb25nIGtvbWVkYV9jcnRjX2dldF9hY2xrKHN0 cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSAqa2NydGNfc3QpOw0KDQogaW50IGtvbWVkYV9rbXNfc2V0 dXBfY3J0Y3Moc3RydWN0IGtvbWVkYV9rbXNfZGV2ICprbXMsIHN0cnVjdCBrb21lZGFfZGV2ICpt ZGV2KTsNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEv a29tZWRhX3BpcGVsaW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tv bWVkYV9waXBlbGluZS5jDQppbmRleCA3OGU0NGQ5ZTE1MjAuLjQ1MmU1MDVhMWZkMyAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5l LmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVs aW5lLmMNCkBAIC01NCw3ICs1NCw4IEBAIHZvaWQga29tZWRhX3BpcGVsaW5lX2Rlc3Ryb3koc3Ry dWN0IGtvbWVkYV9kZXYgKm1kZXYsDQoNCiAJY2xrX3B1dChwaXBlLT5weGxjbGspOw0KDQotCW9m X25vZGVfcHV0KHBpcGUtPm9mX291dHB1dF9kZXYpOw0KKwlvZl9ub2RlX3B1dChwaXBlLT5vZl9v dXRwdXRfbGlua3NbMF0pOw0KKwlvZl9ub2RlX3B1dChwaXBlLT5vZl9vdXRwdXRfbGlua3NbMV0p Ow0KIAlvZl9ub2RlX3B1dChwaXBlLT5vZl9vdXRwdXRfcG9ydCk7DQogCW9mX25vZGVfcHV0KHBp cGUtPm9mX25vZGUpOw0KDQpAQCAtMjQ2LDkgKzI0NywxNSBAQCBzdGF0aWMgdm9pZCBrb21lZGFf cGlwZWxpbmVfZHVtcChzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpwaXBlKQ0KIAlzdHJ1Y3Qga29t ZWRhX2NvbXBvbmVudCAqYzsNCiAJaW50IGlkOw0KDQotCURSTV9JTkZPKCJQaXBlbGluZS0lZDog bl9sYXllcnM6ICVkLCBuX3NjYWxlcnM6ICVkLCBvdXRwdXQ6ICVzXG4iLA0KKwlEUk1fSU5GTygi UGlwZWxpbmUtJWQ6IG5fbGF5ZXJzOiAlZCwgbl9zY2FsZXJzOiAlZCwgb3V0cHV0OiAlcy5cbiIs DQogCQkgcGlwZS0+aWQsIHBpcGUtPm5fbGF5ZXJzLCBwaXBlLT5uX3NjYWxlcnMsDQotCQkgcGlw ZS0+b2Zfb3V0cHV0X2RldiA/IHBpcGUtPm9mX291dHB1dF9kZXYtPmZ1bGxfbmFtZSA6ICJub25l Iik7DQorCQkgcGlwZS0+ZHVhbF9saW5rID8gImR1YWwtbGluayIgOiAic2luZ2xlLWxpbmsiKTsN CisJRFJNX0lORk8oIglvdXRwdXRfbGlua1swXTogJXMuXG4iLA0KKwkJIHBpcGUtPm9mX291dHB1 dF9saW5rc1swXSA/DQorCQkgcGlwZS0+b2Zfb3V0cHV0X2xpbmtzWzBdLT5mdWxsX25hbWUgOiAi bm9uZSIpOw0KKwlEUk1fSU5GTygiCW91dHB1dF9saW5rWzFdOiAlcy5cbiIsDQorCQkgcGlwZS0+ b2Zfb3V0cHV0X2xpbmtzWzFdID8NCisJCSBwaXBlLT5vZl9vdXRwdXRfbGlua3NbMV0tPmZ1bGxf bmFtZSA6ICJub25lIik7DQoNCiAJZHBfZm9yX2VhY2hfc2V0X2JpdChpZCwgcGlwZS0+YXZhaWxf Y29tcHMpIHsNCiAJCWMgPSBrb21lZGFfcGlwZWxpbmVfZ2V0X2NvbXBvbmVudChwaXBlLCBpZCk7 DQpAQCAtMzA1LDYgKzMxMiwxMiBAQCBzdGF0aWMgdm9pZCBrb21lZGFfcGlwZWxpbmVfYXNzZW1i bGUoc3RydWN0IGtvbWVkYV9waXBlbGluZSAqcGlwZSkNCg0KIAkJbGF5ZXItPnJpZ2h0ID0ga29t ZWRhX2dldF9sYXllcl9zcGxpdF9yaWdodF9sYXllcihwaXBlLCBsYXllcik7DQogCX0NCisNCisJ aWYgKHBpcGUtPmR1YWxfbGluayAmJiAhcGlwZS0+Y3RybHItPnN1cHBvcnRzX2R1YWxfbGluaykg ew0KKwkJcGlwZS0+ZHVhbF9saW5rID0gZmFsc2U7DQorCQlEUk1fV0FSTigiUElQRS0lZCBkb2Vz bid0IHN1cHBvcnQgZHVhbC1saW5rLCBpZ25vcmUgRFQgZHVhbC1saW5rIGNvbmZpZ3VyYXRpb24u XG4iLA0KKwkJCSBwaXBlLT5pZCk7DQorCX0NCiB9DQoNCiAvKiBpZiBwaXBlbGluZV9BIGFjY2Vw dCBhbm90aGVyIHBpcGVsaW5lX0IncyBjb21wb25lbnQgYXMgaW5wdXQsIHRyZWF0DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUu aCBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgN CmluZGV4IDdhZjNlMjY2YmRmZi4uMDU5ZDc2ZmM0MDVkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUuaA0KKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUuaA0KQEAgLTQxOSw4 ICs0MTksMTAgQEAgc3RydWN0IGtvbWVkYV9waXBlbGluZSB7DQogCXN0cnVjdCBkZXZpY2Vfbm9k ZSAqb2Zfbm9kZTsNCiAJLyoqIEBvZl9vdXRwdXRfcG9ydDogcGlwZWxpbmUgb3V0cHV0IHBvcnQg Ki8NCiAJc3RydWN0IGRldmljZV9ub2RlICpvZl9vdXRwdXRfcG9ydDsNCi0JLyoqIEBvZl9vdXRw dXRfZGV2OiBvdXRwdXQgY29ubmVjdG9yIGRldmljZSBub2RlICovDQotCXN0cnVjdCBkZXZpY2Vf bm9kZSAqb2Zfb3V0cHV0X2RldjsNCisJLyoqIEBvZl9vdXRwdXRfbGlua3M6IG91dHB1dCBjb25u ZWN0b3IgZGV2aWNlIG5vZGVzICovDQorCXN0cnVjdCBkZXZpY2Vfbm9kZSAqb2Zfb3V0cHV0X2xp bmtzWzJdOw0KKwkvKiogQGR1YWxfbGluazogdHJ1ZSBpZiBvZl9vdXRwdXRfbGlua3NbMF0gYW5k IFsxXSBhcmUgYm90aCB2YWxpZCAqLw0KKwlib29sIGR1YWxfbGluazsNCiB9Ow0KDQogLyoqDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlw ZWxpbmVfc3RhdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRh X3BpcGVsaW5lX3N0YXRlLmMNCmluZGV4IDI1N2YwYWVkZDExZC4uNzk2Y2FlNjFmZmIzIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxp bmVfc3RhdGUuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21l ZGFfcGlwZWxpbmVfc3RhdGUuYw0KQEAgLTQ3Myw3ICs0NzMsNyBAQCBrb21lZGFfc2NhbGVyX2No ZWNrX2NmZyhzdHJ1Y3Qga29tZWRhX3NjYWxlciAqc2NhbGVyLA0KDQogCQllcnIgPSBwaXBlLT5m dW5jcy0+ZG93bnNjYWxpbmdfY2xrX2NoZWNrKHBpcGUsDQogCQkJCQkma2NydGNfc3QtPmJhc2Uu YWRqdXN0ZWRfbW9kZSwNCi0JCQkJCWtvbWVkYV9jYWxjX2FjbGsoa2NydGNfc3QpLCBkZmxvdyk7 DQorCQkJCQlrb21lZGFfY3J0Y19nZXRfYWNsayhrY3J0Y19zdCksIGRmbG93KTsNCiAJCWlmIChl cnIpIHsNCiAJCQlEUk1fREVCVUdfQVRPTUlDKCJhY2xrIGNhbid0IHNhdGlzZnkgdGhlIGNsb2Nr IHJlcXVpcmVtZW50IG9mIHRoZSBkb3duc2NhbGluZ1xuIik7DQogCQkJcmV0dXJuIGVycjsNCi0t DQoyLjE3LjENCg==