Received: by 2002:a25:86ce:0:0:0:0:0 with SMTP id y14csp1617938ybm; Thu, 23 May 2019 04:12:43 -0700 (PDT) X-Google-Smtp-Source: APXvYqyJTKjj66EZSMavxYYn7jZCdyMJcFKsU+SOD5cvdaqoyE4mprG4SeUkrtc515zI8DN5IM/2 X-Received: by 2002:a62:d044:: with SMTP id p65mr81713860pfg.37.1558609963612; Thu, 23 May 2019 04:12:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558609963; cv=none; d=google.com; s=arc-20160816; b=C4gqKZqSYmfSizqWShW2a9dDx9jK32L8NeVuhdJX1sdCbIVkQFQ1M1EHjIV4e95hQC F9ERvsbBEYr8Bo+552S1HLSrmmocF9iIatFkLR1mFsvWOZ8dPB6m0Hxh/puBCvZgYGqX fJnBIVNu6bs+/MgnG1wXeNzYbYve6/SISK/Lb39cC9lV7mmJc4LlFhh3umVFHCsG0MH6 hKvJKfH1hSK1ltaasYyI+zjUyhjhpv1yE2nXW7SlqflTKUtT1XK1PEErqzPKJXw0OOd1 cJguXvndj380qaA8qAZV1bvKf4pnbOpcr1B7V8DZp5/++4/XghIKBla8/uDbfB4R3G8d l2EQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :nodisclaimer:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature; bh=ebOmUqK0aRwFA7sFtCM3Jtl2lYCafYNp0diMsQhizHk=; b=FQJnXQHxTvDqQ27tXBGWDjJO4YL5Yl6tBHiIJB67lEYt15l0OF9IkMz75ERkZ37oPf xpKUasEITul4Sbd5eHcQ94btKzgRLEFAxGxGMtjBn7VAugaAWSKh/GCY0gkgBIGpCG35 CtI1p/IJUFHAaraJ/XdX+Qn75YfCSmj7gsbZcFqsIA0eBYuCS7RamCtgmGcjAkHXmZW7 eauFthCnedE5s5OU+HxSshgJncXv4IB8rrNePW1SMMD0Ed4OsEAh2guyMeRM3WMrAs2c cbBOpMZp7U1h7e0k1zmD7lRyUGiUmMtXb1fKzQaS2kwqy1GyL3z4lFLk865klvfi9g7E 1pKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=UIbUlL5f; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q138si30264031pfq.149.2019.05.23.04.12.28; Thu, 23 May 2019 04:12:43 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=UIbUlL5f; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730595AbfEWLK2 (ORCPT + 99 others); Thu, 23 May 2019 07:10:28 -0400 Received: from mail-eopbgr140051.outbound.protection.outlook.com ([40.107.14.51]:41088 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728109AbfEWLK1 (ORCPT ); Thu, 23 May 2019 07:10:27 -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=ebOmUqK0aRwFA7sFtCM3Jtl2lYCafYNp0diMsQhizHk=; b=UIbUlL5f5F8X42d/hfdGbDqXwiYW1JpGna6JZUKIKpKv7LRpBLWdI2GYclHD2ot2iJpF753BCDHhn+bSMImvYRFm2tnPMEkS5N2hveWTn5R5oaDwESuinUNXesiTMR1FKAo9l5e1dUiLzmzX9W8C6ZfR0cTS0GJSOozIQ99TYUo= Received: from VE1PR08MB5006.eurprd08.prod.outlook.com (10.255.159.31) by AM0SPR01MB0043.eurprd08.prod.outlook.com (20.178.16.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1900.18; Thu, 23 May 2019 11:10:21 +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.1922.017; Thu, 23 May 2019 11:10:21 +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 v2 5/6] drm/komeda: Add engine clock requirement check for the downscaling Thread-Topic: [PATCH v2 5/6] drm/komeda: Add engine clock requirement check for the downscaling Thread-Index: AQHVEVgc3LhPVt3+S0au78lt+4OmxQ== Date: Thu, 23 May 2019 11:10:21 +0000 Message-ID: <20190523110933.10742-6-james.qian.wang@arm.com> References: <20190523110933.10742-1-james.qian.wang@arm.com> In-Reply-To: <20190523110933.10742-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: HK2PR02CA0191.apcprd02.prod.outlook.com (2603:1096:201:21::27) 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: 212cd214-2421-4bdd-32f7-08d6df6f3ede x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:AM0SPR01MB0043; x-ms-traffictypediagnostic: AM0SPR01MB0043: nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-forefront-prvs: 00462943DE x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(346002)(39860400002)(136003)(376002)(396003)(189003)(199004)(36756003)(1076003)(8936002)(103116003)(2616005)(446003)(54906003)(110136005)(4326008)(11346002)(53936002)(25786009)(6486002)(50226002)(256004)(81156014)(66066001)(68736007)(81166006)(486006)(2501003)(14444005)(5024004)(99286004)(7736002)(386003)(5660300002)(66946007)(71200400001)(186003)(476003)(305945005)(6506007)(2201001)(2906002)(76176011)(55236004)(86362001)(102836004)(3846002)(26005)(6116002)(30864003)(478600001)(316002)(66476007)(66556008)(73956011)(14454004)(6436002)(66446008)(6512007)(64756008)(52116002)(8676002)(71190400001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM0SPR01MB0043;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: iNqXPiIE7DTGaBAO6Qp7FKT3PpiOBkx956aovi8tsAzbFTy9uQWfyoSO0ZK3JrYIHZk1KKn3/bR+x7uvd0j++bJOxgsXNzIOYK1mazWux/RtZff0T03Nx+UFgMwIZwiHbZdO5qvVSXPCByuyWRSbVR4y37/iS6rDqJnOQMnIekNwAfC/g34eAbHpEPqDRX1A2EvWYV2H69eYCzSp7RvR5gZB1MgxbdzmpM0NAa/WrH82CB0Ldd48vurF9aIuMw036fc8HnTj8JcULvco2PBjWoKWCsDjbpyDku5EdpQ026a4+orNBbGwFIji4y0CzMDGkbRhuYdlVbPF2LILRd2pCKt36Je0eQm6rPJXTxtNKrSEANMtDU74WQjE27sbI/uzLFgbCC8JrW6tvMwhzWGc962sjvWbyhevFCICc18k8y8= 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: 212cd214-2421-4bdd-32f7-08d6df6f3ede X-MS-Exchange-CrossTenant-originalarrivaltime: 23 May 2019 11:10:21.4203 (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-Transport-CrossTenantHeadersStamped: AM0SPR01MB0043 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Rm9yIGRvd25zY2FsaW5nIHRoZXJlIGlzIGEgcmVzdHJpY3Rpb24sIHRoZSBkb3duc2NhbGluZyBu ZWVkZWQgZW5naW5lDQpjbG9jayBjYW4gbm90IGFjY2VlZCB0aGUgcmVhbCBlbmdpbmUgY2xvY2ss IGFuZCB0aGUgY2xvY2sgcmVxdWlyZW1lbnQNCm1vc3RseSBkZXBlbmQgb24gdGhlIHNwZWNpZmlj IEhXLCB0byBzb2x2ZSB0aGlzIHByb2JsZW06DQoxLiBBZGQgYSBwaXBlbGluZSBmdW5jIC0gZG93 bnNjYWxpbmdfY2xrX2NoZWNrIGZvciBDT1JFIHRvIHF1ZXJ5IHRoZSByZWFsDQogICBIVyBpZiBk b3duc2NhbGluZyBjYW4gYmUgc3VwcG9ydGVkLg0KMi4gQWRkIG5ldyBwcm9wZXJ0eSBjbG9jayBy YXRpbyB3aGljaCBpcyB0aGUgcmF0aW8gb2Y6DQogICAgIChtY2xrIDw8IDMyKSAvIHB4bGNsaw0K ICAgdGhlbiBVc2VyIGRyaXZlciBjYW4gdXNlIHRoaXMgcmF0aW8gdG8gZG8gdGhlIGNsb2NrIGNo ZWNrIHRvIGF2b2lkIHBvc3QNCiAgIGFuIGludmFsaWQgZG93bnNjYWxpbmcgdG8ga2VybmVsLg0K DQp2MjogUmViYXNlIGFuZCBEZWxldGUgZGVidWcgcHJpbnQNCg0KU2lnbmVkLW9mZi1ieTogSmFt ZXMgUWlhbiBXYW5nIChBcm0gVGVjaG5vbG9neSBDaGluYSkgPGphbWVzLnFpYW4ud2FuZ0Bhcm0u Y29tPg0KLS0tDQogLi4uL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcxX2NvbXBvbmVudC5jICAg IHwgNDUgKysrKysrKysrKysrKw0KIC4uLi9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEv ZDcxX2Rldi5jICB8ICAyICstDQogLi4uL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9k NzFfZGV2LmggIHwgIDIgKw0KIC4uLi9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFf Y3J0Yy5jICB8IDY2ICsrKysrKysrKysrKysrKysrKy0NCiAuLi4vZ3B1L2RybS9hcm0vZGlzcGxh eS9rb21lZGEva29tZWRhX2ttcy5oICAgfCAgOCArKysNCiAuLi4vZHJtL2FybS9kaXNwbGF5L2tv bWVkYS9rb21lZGFfcGlwZWxpbmUuaCAgfCAgOCArKy0NCiAuLi4vZGlzcGxheS9rb21lZGEva29t ZWRhX3BpcGVsaW5lX3N0YXRlLmMgICAgfCAxNyArKysrLQ0KIDcgZmlsZXMgY2hhbmdlZCwgMTQy IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfY29tcG9uZW50LmMgYi9kcml2ZXJzL2dw dS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfY29tcG9uZW50LmMNCmluZGV4IDBiZjVj N2JhZWRiNS4uMmVhMjgyYzZhMTU2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9k aXNwbGF5L2tvbWVkYS9kNzEvZDcxX2NvbXBvbmVudC5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0v YXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfY29tcG9uZW50LmMNCkBAIC02NzcsNiArNjc3LDQ3 IEBAIHN0YXRpYyBpbnQgZDcxX3NjYWxlcl9pbml0KHN0cnVjdCBkNzFfZGV2ICpkNzEsDQogCXJl dHVybiAwOw0KIH0NCiANCitzdGF0aWMgaW50IGQ3MV9kb3duc2NhbGluZ19jbGtfY2hlY2soc3Ry dWN0IGtvbWVkYV9waXBlbGluZSAqcGlwZSwNCisJCQkJICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSwNCisJCQkJICAgICB1bnNpZ25lZCBsb25nIG1jbGtfcmF0ZSwNCisJCQkJICAg ICBzdHJ1Y3Qga29tZWRhX2RhdGFfZmxvd19jZmcgKmRmbG93KQ0KK3sNCisJdTMyIGhfaW4gPSBk Zmxvdy0+aW5fdzsNCisJdTMyIHZfaW4gPSBkZmxvdy0+aW5faDsNCisJdTMyIHZfb3V0ID0gZGZs b3ctPm91dF9oOw0KKwl1NjQgZnJhY3Rpb24sIGRlbm9taW5hdG9yOw0KKw0KKwkvKiBENzEgZG93 bnNjYWxpbmcgbXVzdCBzYXRpc2Z5IHRoZSBmb2xsb3dpbmcgZXF1YXRpb24NCisJICoNCisJICog ICBNQ0xLICAgICAgICAgICAgICAgICAgIGhfaW4gKiB2X2luDQorCSAqIC0tLS0tLS0gPj0gLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorCSAqICBQWExDTEsg ICAgIChoX3RvdGFsIC0gKDEgKyAyICogdl9pbiAvIHZfb3V0KSkgKiB2X291dA0KKwkgKg0KKwkg KiBJbiBvbmx5IGhvcml6b250YWwgZG93bnNjYWxpbmcgc2l0dWF0aW9uLCB0aGUgcmlnaHQgc2lk ZSBzaG91bGQgYmUNCisJICogbXVsdGlwbGllZCBieSAoaF90b3RhbCAtIDMpIC8gKGhfYWN0aXZl IC0gMyksIHRoZW4gZXF1YXRpb24gYmVjb21lcw0KKwkgKg0KKwkgKiAgIE1DTEsgICAgICAgICAg aF9pbg0KKwkgKiAtLS0tLS0tID49IC0tLS0tLS0tLS0tLS0tLS0NCisJICogIFBYTENMSyAgICAg KGhfYWN0aXZlIC0gMykNCisJICoNCisJICogVG8gYXZvaWQgcHJlY2lzaW9uIGxvc3QgdGhlIGVx dWF0aW9uIDEgd2lsbCBiZSBjb252ZXJ0IHRvOg0KKwkgKg0KKwkgKiAgIE1DTEsgICAgICAgICAg ICAgaF9pbiAqIHZfaW4NCisJICogLS0tLS0tLSA+PSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KKwkgKiAgUFhMQ0xLICAgICAoaF90b3RhbCAtMSApICogdl9vdXQgLSAgMiAq IHZfaW4NCisJICovDQorCWlmICh2X2luID09IHZfb3V0KSB7DQorCQlmcmFjdGlvbiA9IGhfaW47 DQorCQlkZW5vbWluYXRvciA9IG1vZGUtPmhkaXNwbGF5IC0gMzsNCisJfSBlbHNlIHsNCisJCWZy YWN0aW9uID0gaF9pbiAqIHZfaW47DQorCQlkZW5vbWluYXRvciA9IChtb2RlLT5odG90YWwgLSAx KSAqIHZfb3V0IC0gIDIgKiB2X2luOw0KKwl9DQorDQorCXJldHVybiBtY2xrX3JhdGUgKiBkZW5v bWluYXRvciA+PSBtb2RlLT5jbG9jayAqIDEwMDAgKiBmcmFjdGlvbiA/DQorCSAgICAgICAwIDog LUVJTlZBTDsNCit9DQorDQogc3RhdGljIHZvaWQgZDcxX2ltcHJvY191cGRhdGUoc3RydWN0IGtv bWVkYV9jb21wb25lbnQgKmMsDQogCQkJICAgICAgc3RydWN0IGtvbWVkYV9jb21wb25lbnRfc3Rh dGUgKnN0YXRlKQ0KIHsNCkBAIC05MzksMyArOTgwLDcgQEAgaW50IGQ3MV9wcm9iZV9ibG9jayhz dHJ1Y3QgZDcxX2RldiAqZDcxLA0KIA0KIAlyZXR1cm4gZXJyOw0KIH0NCisNCitjb25zdCBzdHJ1 Y3Qga29tZWRhX3BpcGVsaW5lX2Z1bmNzIGQ3MV9waXBlbGluZV9mdW5jcyA9IHsNCisJLmRvd25z Y2FsaW5nX2Nsa19jaGVjayA9IGQ3MV9kb3duc2NhbGluZ19jbGtfY2hlY2ssDQorfTsNCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfZGV2LmMg Yi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfZGV2LmMNCmluZGV4 IDNhNzI0OGQ0MjM3Ni4uMWM5MTRmOGNhMDE2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FybS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcxX2Rldi5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0v YXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfZGV2LmMNCkBAIC0zOTAsNyArMzkwLDcgQEAgc3Rh dGljIGludCBkNzFfZW51bV9yZXNvdXJjZXMoc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYpDQogDQog CWZvciAoaSA9IDA7IGkgPCBkNzEtPm51bV9waXBlbGluZXM7IGkrKykgew0KIAkJcGlwZSA9IGtv bWVkYV9waXBlbGluZV9hZGQobWRldiwgc2l6ZW9mKHN0cnVjdCBkNzFfcGlwZWxpbmUpLA0KLQkJ CQkJICAgTlVMTCk7DQorCQkJCQkgICAmZDcxX3BpcGVsaW5lX2Z1bmNzKTsNCiAJCWlmIChJU19F UlIocGlwZSkpIHsNCiAJCQllcnIgPSBQVFJfRVJSKHBpcGUpOw0KIAkJCWdvdG8gZXJyX2NsZWFu dXA7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEv ZDcxX2Rldi5oIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcxX2Rl di5oDQppbmRleCA3NDY1YzU3ZDk3NzQuLjg0ZjE4NzhiNjQ3ZCAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEvZDcxL2Q3MV9kZXYuaA0KKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcxX2Rldi5oDQpAQCAtNDMsNiArNDMs OCBAQCBzdHJ1Y3QgZDcxX2RldiB7DQogDQogI2RlZmluZSB0b19kNzFfcGlwZWxpbmUoeCkJY29u dGFpbmVyX29mKHgsIHN0cnVjdCBkNzFfcGlwZWxpbmUsIGJhc2UpDQogDQorZXh0ZXJuIGNvbnN0 IHN0cnVjdCBrb21lZGFfcGlwZWxpbmVfZnVuY3MgZDcxX3BpcGVsaW5lX2Z1bmNzOw0KKw0KIGlu dCBkNzFfcHJvYmVfYmxvY2soc3RydWN0IGQ3MV9kZXYgKmQ3MSwNCiAJCSAgICBzdHJ1Y3QgYmxv Y2tfaGVhZGVyICpibGssIHUzMiBfX2lvbWVtICpyZWcpOw0KIHZvaWQgZDcxX3JlYWRfYmxvY2tf aGVhZGVyKHUzMiBfX2lvbWVtICpyZWcsIHN0cnVjdCBibG9ja19oZWFkZXIgKmJsayk7DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfY3J0Yy5j IGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfY3J0Yy5jDQppbmRl eCA2NzEyNjAzYjhjN2EuLjI0YTk2MTM1NmNiMyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2NydGMuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJt L2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfY3J0Yy5jDQpAQCAtMTgsNiArMTgsMjIgQEANCiAj aW5jbHVkZSAia29tZWRhX2Rldi5oIg0KICNpbmNsdWRlICJrb21lZGFfa21zLmgiDQogDQorc3Rh dGljIHZvaWQga29tZWRhX2NydGNfdXBkYXRlX2Nsb2NrX3JhdGlvKHN0cnVjdCBrb21lZGFfY3J0 Y19zdGF0ZSAqa2NydGNfc3QpDQorew0KKwl1NjQgcHhsY2xrLCBtY2xrOw0KKw0KKwlpZiAoIWtj cnRjX3N0LT5iYXNlLmFjdGl2ZSkgew0KKwkJa2NydGNfc3QtPmNsb2NrX3JhdGlvID0gMDsNCisJ CXJldHVybjsNCisJfQ0KKw0KKwlweGxjbGsgPSBrY3J0Y19zdC0+YmFzZS5hZGp1c3RlZF9tb2Rl LmNsb2NrICogMTAwMDsNCisJbWNsayA9IGtvbWVkYV9jYWxjX21jbGsoa2NydGNfc3QpIDw8IDMy Ow0KKw0KKwlkb19kaXYobWNsaywgcHhsY2xrKTsNCisJa2NydGNfc3QtPmNsb2NrX3JhdGlvID0g bWNsazsNCit9DQorDQogLyoqDQogICoga29tZWRhX2NydGNfYXRvbWljX2NoZWNrIC0gYnVpbGQg ZGlzcGxheSBvdXRwdXQgZGF0YSBmbG93DQogICogQGNydGM6IERSTSBjcnRjDQpAQCAtMzgsNiAr NTQsOSBAQCBrb21lZGFfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLA0K IAlzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgKmtjcnRjX3N0ID0gdG9fa2NydGNfc3Qoc3RhdGUp Ow0KIAlpbnQgZXJyOw0KIA0KKwlpZiAoZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoc3Rh dGUpKQ0KKwkJa29tZWRhX2NydGNfdXBkYXRlX2Nsb2NrX3JhdGlvKGtjcnRjX3N0KTsNCisNCiAJ aWYgKHN0YXRlLT5hY3RpdmUpIHsNCiAJCWVyciA9IGtvbWVkYV9idWlsZF9kaXNwbGF5X2RhdGFf ZmxvdyhrY3J0Yywga2NydGNfc3QpOw0KIAkJaWYgKGVycikNCkBAIC01MiwxMSArNzEsMTIgQEAg a29tZWRhX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCiAJcmV0dXJu IDA7DQogfQ0KIA0KLXN0YXRpYyB1MzIga29tZWRhX2NhbGNfbWNsayhzdHJ1Y3Qga29tZWRhX2Ny dGNfc3RhdGUgKmtjcnRjX3N0KQ0KK3Vuc2lnbmVkIGxvbmcga29tZWRhX2NhbGNfbWNsayhzdHJ1 Y3Qga29tZWRhX2NydGNfc3RhdGUgKmtjcnRjX3N0KQ0KIHsNCi0JdW5zaWduZWQgbG9uZyBtY2xr ID0ga2NydGNfc3QtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jbG9jayAqIDEwMDA7DQorCXN0cnVjdCBr b21lZGFfZGV2ICptZGV2ID0ga2NydGNfc3QtPmJhc2UuY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsN CisJdW5zaWduZWQgbG9uZyBweGxjbGsgPSBrY3J0Y19zdC0+YmFzZS5hZGp1c3RlZF9tb2RlLmNs b2NrOw0KIA0KLQlyZXR1cm4gbWNsazsNCisJcmV0dXJuIGNsa19yb3VuZF9yYXRlKG1kZXYtPm1j bGssIHB4bGNsayAqIDEwMDApOw0KIH0NCiANCiAvKiBGb3IgYWN0aXZlIGEgY3J0YywgbWFpbmx5 IG5lZWQgdHdvIHBhcnRzIG9mIHByZXBhcmF0aW9uDQpAQCAtNDA0LDYgKzQyNCw3IEBAIGtvbWVk YV9jcnRjX2F0b21pY19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQ0KIAlf X2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0YXRlKGNydGMsICZuZXctPmJhc2Up Ow0KIA0KIAluZXctPmFmZmVjdGVkX3BpcGVzID0gb2xkLT5hY3RpdmVfcGlwZXM7DQorCW5ldy0+ Y2xvY2tfcmF0aW8gPSBvbGQtPmNsb2NrX3JhdGlvOw0KIA0KIAlyZXR1cm4gJm5ldy0+YmFzZTsN CiB9DQpAQCAtNDMyLDYgKzQ1MywyNCBAQCBzdGF0aWMgdm9pZCBrb21lZGFfY3J0Y192Ymxhbmtf ZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQogCW1kZXYtPmZ1bmNzLT5vbl9vZmZfdmJs YW5rKG1kZXYsIGtjcnRjLT5tYXN0ZXItPmlkLCBmYWxzZSk7DQogfQ0KIA0KK3N0YXRpYyBpbnQN Citrb21lZGFfY3J0Y19hdG9taWNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywN CisJCQkJY29uc3Qgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSwNCisJCQkJc3RydWN0IGRy bV9wcm9wZXJ0eSAqcHJvcGVydHksIHVpbnQ2NF90ICp2YWwpDQorew0KKwlzdHJ1Y3Qga29tZWRh X2NydGMgKmtjcnRjID0gdG9fa2NydGMoY3J0Yyk7DQorCXN0cnVjdCBrb21lZGFfY3J0Y19zdGF0 ZSAqa2NydGNfc3QgPSB0b19rY3J0Y19zdChzdGF0ZSk7DQorDQorCWlmIChwcm9wZXJ0eSA9PSBr Y3J0Yy0+Y2xvY2tfcmF0aW9fcHJvcGVydHkpIHsNCisJCSp2YWwgPSBrY3J0Y19zdC0+Y2xvY2tf cmF0aW87DQorCX0gZWxzZSB7DQorCQlEUk1fREVCVUdfRFJJVkVSKCJVbmtub3duIHByb3BlcnR5 ICVzXG4iLCBwcm9wZXJ0eS0+bmFtZSk7DQorCQlyZXR1cm4gLUVJTlZBTDsNCisJfQ0KKw0KKwly ZXR1cm4gMDsNCit9DQorDQogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyBrb21l ZGFfY3J0Y19mdW5jcyA9IHsNCiAJLmdhbW1hX3NldAkJPSBkcm1fYXRvbWljX2hlbHBlcl9sZWdh Y3lfZ2FtbWFfc2V0LA0KIAkuZGVzdHJveQkJPSBkcm1fY3J0Y19jbGVhbnVwLA0KQEAgLTQ0Miw2 ICs0ODEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIGtvbWVkYV9jcnRj X2Z1bmNzID0gew0KIAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUJPSBrb21lZGFfY3J0Y19hdG9taWNf ZGVzdHJveV9zdGF0ZSwNCiAJLmVuYWJsZV92YmxhbmsJCT0ga29tZWRhX2NydGNfdmJsYW5rX2Vu YWJsZSwNCiAJLmRpc2FibGVfdmJsYW5rCQk9IGtvbWVkYV9jcnRjX3ZibGFua19kaXNhYmxlLA0K KwkuYXRvbWljX2dldF9wcm9wZXJ0eQk9IGtvbWVkYV9jcnRjX2F0b21pY19nZXRfcHJvcGVydHks DQogfTsNCiANCiBpbnQga29tZWRhX2ttc19zZXR1cF9jcnRjcyhzdHJ1Y3Qga29tZWRhX2ttc19k ZXYgKmttcywNCkBAIC00NzcsNiArNTE3LDIyIEBAIGludCBrb21lZGFfa21zX3NldHVwX2NydGNz KHN0cnVjdCBrb21lZGFfa21zX2RldiAqa21zLA0KIAlyZXR1cm4gMDsNCiB9DQogDQorc3RhdGlj IGludCBrb21lZGFfY3J0Y19jcmVhdGVfY2xvY2tfcmF0aW9fcHJvcGVydHkoc3RydWN0IGtvbWVk YV9jcnRjICprY3J0YykNCit7DQorCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZrY3J0Yy0+YmFz ZTsNCisJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsNCisNCisJcHJvcCA9IGRybV9wcm9wZXJ0 eV9jcmVhdGVfcmFuZ2UoY3J0Yy0+ZGV2LCBEUk1fTU9ERV9QUk9QX0FUT01JQywNCisJCQkJCSAi Q0xPQ0tfUkFUSU8iLCAwLCBVNjRfTUFYKTsNCisJaWYgKCFwcm9wKQ0KKwkJcmV0dXJuIC1FTk9N RU07DQorDQorCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjcnRjLT5iYXNlLCBwcm9wLCAw KTsNCisJa2NydGMtPmNsb2NrX3JhdGlvX3Byb3BlcnR5ID0gcHJvcDsNCisNCisJcmV0dXJuIDA7 DQorfQ0KKw0KIHN0YXRpYyBzdHJ1Y3QgZHJtX3BsYW5lICoNCiBnZXRfY3J0Y19wcmltYXJ5KHN0 cnVjdCBrb21lZGFfa21zX2RldiAqa21zLCBzdHJ1Y3Qga29tZWRhX2NydGMgKmNydGMpDQogew0K QEAgLTUxMyw2ICs1NjksMTAgQEAgc3RhdGljIGludCBrb21lZGFfY3J0Y19hZGQoc3RydWN0IGtv bWVkYV9rbXNfZGV2ICprbXMsDQogDQogCWNydGMtPnBvcnQgPSBrY3J0Yy0+bWFzdGVyLT5vZl9v dXRwdXRfcG9ydDsNCiANCisJZXJyID0ga29tZWRhX2NydGNfY3JlYXRlX2Nsb2NrX3JhdGlvX3By b3BlcnR5KGtjcnRjKTsNCisJaWYgKGVycikNCisJCXJldHVybiBlcnI7DQorDQogCXJldHVybiAw Ow0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRh L2tvbWVkYV9rbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRh X2ttcy5oDQppbmRleCBmMTZlOWU1Nzc1OTMuLmRiNTlhOTA0MmJlYiAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5oDQorKysgYi9kcml2 ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuaA0KQEAgLTc5LDYgKzc5 LDkgQEAgc3RydWN0IGtvbWVkYV9jcnRjIHsNCiANCiAJLyoqIEBkaXNhYmxlX2RvbmU6IHRoaXMg ZmxpcF9kb25lIGlzIGZvciB0cmFjaW5nIHRoZSBkaXNhYmxlICovDQogCXN0cnVjdCBjb21wbGV0 aW9uICpkaXNhYmxlX2RvbmU7DQorDQorCS8qKiBAY2xvY2tfcmF0aW9fcHJvcGVydHk6IHByb3Bl cnR5IGZvciByYXRpbyBvZiAobWNsayA8PCAzMikvcHhsY2xrICovDQorCXN0cnVjdCBkcm1fcHJv cGVydHkgKmNsb2NrX3JhdGlvX3Byb3BlcnR5Ow0KIH07DQogDQogLyoqDQpAQCAtMTAxLDYgKzEw NCw5IEBAIHN0cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSB7DQogCSAqIHRoZSBhY3RpdmUgcGlwZWxp bmVzIGluIG9uY2UgZGlzcGxheSBpbnN0YW5jZQ0KIAkgKi8NCiAJdTMyIGFjdGl2ZV9waXBlczsN CisNCisJLyoqIEBjbG9ja19yYXRpbzogcmF0aW8gb2YgKG1jbGsgPDwgMzIpL3B4bGNsayAqLw0K Kwl1NjQgY2xvY2tfcmF0aW87DQogfTsNCiANCiAvKiogc3RydWN0IGtvbWVkYV9rbXNfZGV2IC0g Zm9yIGdhdGhlciBLTVMgcmVsYXRlZCB0aGluZ3MgKi8NCkBAIC0xNDIsNiArMTQ4LDggQEAgaXNf b25seV9jaGFuZ2VkX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0LCBzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubikNCiAJcmV0dXJuIEJJVChkcm1fY29ubmVjdG9yX2luZGV4KGNv bm4pKSA9PSBjaGFuZ2VkX2Nvbm5lY3RvcnM7DQogfQ0KIA0KK3Vuc2lnbmVkIGxvbmcga29tZWRh X2NhbGNfbWNsayhzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgKmtjcnRjX3N0KTsNCisNCiBpbnQg a29tZWRhX2ttc19zZXR1cF9jcnRjcyhzdHJ1Y3Qga29tZWRhX2ttc19kZXYgKmttcywgc3RydWN0 IGtvbWVkYV9kZXYgKm1kZXYpOw0KIA0KIGludCBrb21lZGFfa21zX2FkZF9jcnRjcyhzdHJ1Y3Qg a29tZWRhX2ttc19kZXYgKmttcywgc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYpOw0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgg Yi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5oDQpp bmRleCA5ZmZlMTFjOWYzODYuLmQwYmY3ZDViMzlhNyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgNCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgNCkBAIC0zMTYsOCAr MzE2LDE0IEBAIHN0cnVjdCBrb21lZGFfZGF0YV9mbG93X2NmZyB7DQogCXU4IGVuX3NjYWxpbmcg OiAxOw0KIH07DQogDQotLyoqIHN0cnVjdCBrb21lZGFfcGlwZWxpbmVfZnVuY3MgKi8NCiBzdHJ1 Y3Qga29tZWRhX3BpcGVsaW5lX2Z1bmNzIHsNCisJLyogY2hlY2sgaWYgdGhlIG1jbGsgKG1haW4g ZW5naW5lIGNsb2NrKSBjYW4gc2F0aXNmeSB0aGUgY2xvY2sNCisJICogcmVxdWlyZW1lbnRzIG9m IHRoZSBkb3duc2NhbGluZyB0aGF0IHNwZWNpZmllZCBieSBkZmxvdw0KKwkgKi8NCisJaW50ICgq ZG93bnNjYWxpbmdfY2xrX2NoZWNrKShzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpwaXBlLA0KKwkJ CQkgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLA0KKwkJCQkgICAgIHVuc2lnbmVk IGxvbmcgbWNsa19yYXRlLA0KKwkJCQkgICAgIHN0cnVjdCBrb21lZGFfZGF0YV9mbG93X2NmZyAq ZGZsb3cpOw0KIAkvKiBkdW1wX3JlZ2lzdGVyOiBPcHRpb25hbCwgZHVtcCByZWdpc3RlcnMgdG8g c2VxX2ZpbGUgKi8NCiAJdm9pZCAoKmR1bXBfcmVnaXN0ZXIpKHN0cnVjdCBrb21lZGFfcGlwZWxp bmUgKnBpcGUsDQogCQkJICAgICAgc3RydWN0IHNlcV9maWxlICpzZik7DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmVfc3RhdGUu YyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lX3N0 YXRlLmMNCmluZGV4IDlmMDdlZjY1MDA4Zi4uMDE1NDRjMjc0ODQ4IDEwMDY0NA0KLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmVfc3RhdGUuYw0K KysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmVf c3RhdGUuYw0KQEAgLTM4Nyw2ICszODcsNyBAQCBzdGF0aWMgYm9vbCBzY2FsaW5nX3JhdGlvX3Zh bGlkKHUzMiBzaXplX2luLCB1MzIgc2l6ZV9vdXQsDQogDQogc3RhdGljIGludA0KIGtvbWVkYV9z Y2FsZXJfY2hlY2tfY2ZnKHN0cnVjdCBrb21lZGFfc2NhbGVyICpzY2FsZXIsDQorCQkJc3RydWN0 IGtvbWVkYV9jcnRjX3N0YXRlICprY3J0Y19zdCwNCiAJCQlzdHJ1Y3Qga29tZWRhX2RhdGFfZmxv d19jZmcgKmRmbG93KQ0KIHsNCiAJdTMyIGhzaXplX2luLCB2c2l6ZV9pbiwgaHNpemVfb3V0LCB2 c2l6ZV9vdXQ7DQpAQCAtNDI4LDYgKzQyOSwyMCBAQCBrb21lZGFfc2NhbGVyX2NoZWNrX2NmZyhz dHJ1Y3Qga29tZWRhX3NjYWxlciAqc2NhbGVyLA0KIAkJRFJNX0RFQlVHX0FUT01JQygiSW52YWxp ZCB2ZXJ0aWNhbCBzY2FsaW5nIHJhdGlvIik7DQogCQlyZXR1cm4gLUVJTlZBTDsNCiAJfQ0KKw0K KwlpZiAoaHNpemVfaW4gPiBoc2l6ZV9vdXQgfHwgdnNpemVfaW4gPiB2c2l6ZV9vdXQpIHsNCisJ CXN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKnBpcGUgPSBzY2FsZXItPmJhc2UucGlwZWxpbmU7DQor CQlpbnQgZXJyOw0KKw0KKwkJZXJyID0gcGlwZS0+ZnVuY3MtPmRvd25zY2FsaW5nX2Nsa19jaGVj ayhwaXBlLA0KKwkJCQkJJmtjcnRjX3N0LT5iYXNlLmFkanVzdGVkX21vZGUsDQorCQkJCQlrb21l ZGFfY2FsY19tY2xrKGtjcnRjX3N0KSwgZGZsb3cpOw0KKwkJaWYgKGVycikgew0KKwkJCURSTV9E RUJVR19BVE9NSUMoIm1jbGsgY2FuJ3Qgc2F0aXNmeSB0aGUgY2xvY2sgcmVxdWlyZW1lbnQgb2Yg dGhlIGRvd25zY2FsaW5nXG4iKTsNCisJCQlyZXR1cm4gZXJyOw0KKwkJfQ0KKwl9DQorDQogCXJl dHVybiAwOw0KIH0NCiANCkBAIC00NTIsNyArNDY3LDcgQEAga29tZWRhX3NjYWxlcl92YWxpZGF0 ZSh2b2lkICp1c2VyLA0KIAkJcmV0dXJuIC1FSU5WQUw7DQogCX0NCiANCi0JZXJyID0ga29tZWRh X3NjYWxlcl9jaGVja19jZmcoc2NhbGVyLCBkZmxvdyk7DQorCWVyciA9IGtvbWVkYV9zY2FsZXJf Y2hlY2tfY2ZnKHNjYWxlciwga2NydGNfc3QsIGRmbG93KTsNCiAJaWYgKGVycikNCiAJCXJldHVy biBlcnI7DQogDQotLSANCjIuMTcuMQ0KDQo=