Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1130810ybt; Sun, 14 Jun 2020 11:27:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyLewg7/xeOKeOZ2Pm4e3tJ6sIJSX2lK/EHBA+ypmDmYiSjEtaxeOSK8XUUKtvQsi+uGK8G X-Received: by 2002:a17:906:4b50:: with SMTP id j16mr23624158ejv.415.1592159234272; Sun, 14 Jun 2020 11:27:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592159234; cv=none; d=google.com; s=arc-20160816; b=rH6hkDzbLPGXPPg5pm+wfEqV4W9Bq6qsWK9k7T2CS8VugHR6xevDYuzlHJk1rcBCP3 T9Nlu7QQ02pDXl+sn4+veNaKLabkkdaPdS2QpVjIt9azHVNQ/J3zGdfMjHwmZcX6dI9B Wefd5zGt2D/HDomcy0UWixvHc4UZTmFiGZiKtgt93GNycpdSMKRKnehUI5w8KTyEHMg1 wOqhcKiAHRUQRXBlsIhGH0mkt0uRyhi9y4BFCiSGM+wj/dkUVbcVITH9Yefv/BxPm3/V hagYq6q3w1XchV/efSQzEH0InLa+ZcIC7FjxkcaKsbUckRadyU45SjPrUdsULpOB5c4L 3zAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=bc9dvwm76ks6d4PBZ09zKJUFFqsXaT4UJS/52CQ3J+I=; b=cBLmEsQGLzfMPn2F4xd5tnkYI3KKCtz2Y/EMyAR+6DyNXzTDMQaUdjQ5/kvvObudnB Czd1FYvXPX+YeoT3fvQzgUD5nvJ8NIC2VS+ILjn0Ks90HTVc+FA6GJQfJmkn4QUC4tx4 TX4x1ekgQP3ZAOL4BwdDd9QlbuaClIUhkDINZ2V1QdFrnTRWfELoYi/zNDINQCMsu2sP K0huGVOFMaYWq1j/Jgd1VK5lAc42tb3FxkJX7qSxeSmgj0Ctzw08zLwqIT2fnbXrJjUn J0gtDKfR7Jsh8V2ZF5pq1gRuG3iFksr0GUJgZpJdmyZuNbiJNpS0D2WCbV2O8WXZ+VZx XtmA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=HD53O49V; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a9si6878638edt.344.2020.06.14.11.26.50; Sun, 14 Jun 2020 11:27:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=HD53O49V; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727082AbgFNSXu (ORCPT + 99 others); Sun, 14 Jun 2020 14:23:50 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:24262 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726938AbgFNSXt (ORCPT ); Sun, 14 Jun 2020 14:23:49 -0400 X-UUID: 88fa712b7b964849b0c12b8c1951cf47-20200615 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=bc9dvwm76ks6d4PBZ09zKJUFFqsXaT4UJS/52CQ3J+I=; b=HD53O49VIEgtuwOviQsNT2eLmxcw04gWxYXMGEeXr5UV4k0Da2NFhglSEstRuTHEmZ9K+hXPrByeTjl1iLhuHE6EFxwgz+nWSB9bc5XxVvy4lDixBNC5PedFCfLcnJQ5Kdzdf6Z1KYbxFSLkPjLInSHUW19aztn4J1htgQqgvXo=; X-UUID: 88fa712b7b964849b0c12b8c1951cf47-20200615 Received: from mtkexhb01.mediatek.inc [(172.21.101.102)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1198713086; Mon, 15 Jun 2020 02:23:41 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs06n2.mediatek.inc (172.21.101.130) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 15 Jun 2020 02:23:39 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 15 Jun 2020 02:23:36 +0800 From: Ryder Lee To: Felix Fietkau , Lorenzo Bianconi CC: Shayne Chen , Sean Wang , , , Ryder Lee Subject: [PATCH v3 3/4] mt76: mt7915: add MU-MIMO support Date: Mon, 15 Jun 2020 02:23:35 +0800 Message-ID: X-Mailer: git-send-email 2.18.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: 0456ACA5F47BF74778358014A3644638A6DC11518AEC53919AB3423E2D1EF6BD2000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org RW5hYmxlIE1VLU1JTU8gREwvVUwgYW5kIGFkZCByZWxhdGl2ZSBjb3VudGVycyBpbiBkZWJ1Z2Zz Lg0KDQpDdXJyZW50bHkgTVUgbW9kdWxlcyByZWFkIFdUQkwgZmlyc3QgdG8gbm90aWZ5IEJBIGNo YW5nZXMgdG8NCm90aGVyIGNyb3NzIG1vZHVsZXMsIHNvIGFkanVzdCBtdDc5MTVfbWN1X3N0YV9i YSgpIGFjY29yZGluZ2x5Lg0KDQpUZXN0ZWQtYnk6IEV2ZWx5biBUc2FpIDxldmVseW4udHNhaUBt ZWRpYXRlay5jb20+DQpTaWduZWQtb2ZmLWJ5OiBSeWRlciBMZWUgPHJ5ZGVyLmxlZUBtZWRpYXRl ay5jb20+DQotLS0NCiAuLi4vd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5j ICAgfCAgOSArKy0NCiAuLi4vbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5j ICAgfCA3NyArKysrKysrKysrKysrKysrKy0tDQogLi4uL25ldC93aXJlbGVzcy9tZWRpYXRlay9t dDc2L210NzkxNS9tY3UuaCAgIHwgIDYgKy0NCiAuLi4vbmV0L3dpcmVsZXNzL21lZGlhdGVrL210 NzYvbXQ3OTE1L3JlZ3MuaCAgfCAgNSArKw0KIDQgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9u cygrKSwgMTAgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVz cy9tZWRpYXRlay9tdDc2L210NzkxNS9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9t ZWRpYXRlay9tdDc2L210NzkxNS9kZWJ1Z2ZzLmMNCmluZGV4IDdlNDhmNTZiNWIwOC4uMzhmNDcz ZDU4N2M5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9t dDc5MTUvZGVidWdmcy5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2 L210NzkxNS9kZWJ1Z2ZzLmMNCkBAIC0xNzgsNyArMTc4LDE0IEBAIG10NzkxNV90eGJmX3N0YXRf cmVhZF9waHkoc3RydWN0IG10NzkxNV9waHkgKnBoeSwgc3RydWN0IHNlcV9maWxlICpzKQ0KIAlz ZXFfcHJpbnRmKHMsICJUeCBCZWFtZm9ybWVlIGZlZWRiYWNrIHRyaWdnZXJlZCBjb3VudHM6ICVs ZFxuIiwNCiAJCSAgIEZJRUxEX0dFVChNVF9FVEJGX1RYX0ZCX1RSSSwgY250KSk7DQogDQotCS8q IFR4IFNVIGNvdW50ZXJzICovDQorCS8qIFR4IFNVICYgTVUgY291bnRlcnMgKi8NCisJY250ID0g bXQ3Nl9ycihkZXYsIE1UX01JQl9TRFIzNChleHRfcGh5KSk7DQorCXNlcV9wcmludGYocywgIlR4 IG11bHRpLXVzZXIgQmVhbWZvcm1pbmcgY291bnRzOiAlbGRcbiIsDQorCQkgICBGSUVMRF9HRVQo TVRfTUlCX01VX0JGX1RYX0NOVCwgY250KSk7DQorCWNudCA9IG10NzZfcnIoZGV2LCBNVF9NSUJf RFI4KGV4dF9waHkpKTsNCisJc2VxX3ByaW50ZihzLCAiVHggbXVsdGktdXNlciBNUERVIGNvdW50 czogJWRcbiIsIGNudCk7DQorCWNudCA9IG10NzZfcnIoZGV2LCBNVF9NSUJfRFI5KGV4dF9waHkp KTsNCisJc2VxX3ByaW50ZihzLCAiVHggbXVsdGktdXNlciBzdWNjZXNzZnVsIE1QRFUgY291bnRz OiAlZFxuIiwgY250KTsNCiAJY250ID0gbXQ3Nl9ycihkZXYsIE1UX01JQl9EUjExKGV4dF9waHkp KTsNCiAJc2VxX3ByaW50ZihzLCAiVHggc2luZ2xlLXVzZXIgc3VjY2Vzc2Z1bCBNUERVIGNvdW50 czogJWRcbiIsIGNudCk7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVk aWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9t dDc2L210NzkxNS9tY3UuYw0KaW5kZXggYzhjMTJjNzQwYzFhLi5jYTNlNzAwNDI1YjYgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYw0K KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMNCkBA IC0xMTY2LDE5ICsxMTY2LDMxIEBAIG10NzkxNV9tY3Vfc3RhX2JhKHN0cnVjdCBtdDc5MTVfZGV2 ICpkZXYsDQogCXN0cnVjdCB3dGJsX3JlcV9oZHIgKnd0YmxfaGRyOw0KIAlzdHJ1Y3QgdGx2ICpz dGFfd3RibDsNCiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsNCisJaW50IHJldDsNCiANCiAJc2tiID0g bXQ3OTE1X21jdV9hbGxvY19zdGFfcmVxKGRldiwgbXZpZiwgbXN0YSwNCiAJCQkJICAgICAgIE1U NzkxNV9TVEFfVVBEQVRFX01BWF9TSVpFKTsNCiAJaWYgKElTX0VSUihza2IpKQ0KIAkJcmV0dXJu IFBUUl9FUlIoc2tiKTsNCiANCi0JbXQ3OTE1X21jdV9zdGFfYmFfdGx2KHNrYiwgcGFyYW1zLCBl bmFibGUsIHR4KTsNCiAJc3RhX3d0YmwgPSBtdDc5MTVfbWN1X2FkZF90bHYoc2tiLCBTVEFfUkVD X1dUQkwsIHNpemVvZihzdHJ1Y3QgdGx2KSk7DQogDQogCXd0YmxfaGRyID0gbXQ3OTE1X21jdV9h bGxvY193dGJsX3JlcShkZXYsIG1zdGEsIFdUQkxfU0VULCBzdGFfd3RibCwNCiAJCQkJCSAgICAg JnNrYik7DQogCW10NzkxNV9tY3Vfd3RibF9iYV90bHYoc2tiLCBwYXJhbXMsIGVuYWJsZSwgdHgs IHN0YV93dGJsLCB3dGJsX2hkcik7DQogDQorCXJldCA9IF9fbXQ3Nl9tY3Vfc2tiX3NlbmRfbXNn KCZkZXYtPm10NzYsIHNrYiwNCisJCQkJICAgICAgTUNVX0VYVF9DTURfU1RBX1JFQ19VUERBVEUs IHRydWUpOw0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJldDsNCisNCisJc2tiID0gbXQ3OTE1X21j dV9hbGxvY19zdGFfcmVxKGRldiwgbXZpZiwgbXN0YSwNCisJCQkJICAgICAgIE1UNzkxNV9TVEFf VVBEQVRFX01BWF9TSVpFKTsNCisJaWYgKElTX0VSUihza2IpKQ0KKwkJcmV0dXJuIFBUUl9FUlIo c2tiKTsNCisNCisJbXQ3OTE1X21jdV9zdGFfYmFfdGx2KHNrYiwgcGFyYW1zLCBlbmFibGUsIHR4 KTsNCisNCiAJcmV0dXJuIF9fbXQ3Nl9tY3Vfc2tiX3NlbmRfbXNnKCZkZXYtPm10NzYsIHNrYiwN CiAJCQkJICAgICAgIE1DVV9FWFRfQ01EX1NUQV9SRUNfVVBEQVRFLCB0cnVlKTsNCiB9DQpAQCAt MTQ2NiwxNiArMTQ3OCwzOSBAQCBtdDc5MTVfbWN1X3N0YV9tdXJ1X3RsdihzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKQ0KIAkJSEVfUEhZKENBUDJfVUxfTVVf UEFSVElBTF9NVV9NSU1PLCBlbGVtLT5waHlfY2FwX2luZm9bMl0pOw0KIH0NCiANCitzdGF0aWMg aW50DQorbXQ3OTE1X21jdV9hZGRfbXUoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3RydWN0IGll ZWU4MDIxMV92aWYgKnZpZiwNCisJCSAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSkNCit7DQor CXN0cnVjdCBtdDc5MTVfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MTVfdmlmICopdmlmLT5kcnZf cHJpdjsNCisJc3RydWN0IG10NzkxNV9zdGEgKm1zdGEgPSAoc3RydWN0IG10NzkxNV9zdGEgKilz dGEtPmRydl9wcml2Ow0KKwlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KKwlpbnQgbGVuID0gc2l6ZW9m KHN0cnVjdCBzdGFfcmVxX2hkcikgKyBzaXplb2Yoc3RydWN0IHN0YV9yZWNfbXVydSk7DQorDQor CWlmICghc3RhLT52aHRfY2FwLnZodF9zdXBwb3J0ZWQgJiYgIXN0YS0+aGVfY2FwLmhhc19oZSkN CisJCXJldHVybiAwOw0KKw0KKwlza2IgPSBtdDc5MTVfbWN1X2FsbG9jX3N0YV9yZXEoZGV2LCBt dmlmLCBtc3RhLCBsZW4pOw0KKwlpZiAoSVNfRVJSKHNrYikpDQorCQlyZXR1cm4gUFRSX0VSUihz a2IpOw0KKw0KKwkvKiBzdGFyZWMgbXVydSAqLw0KKwltdDc5MTVfbWN1X3N0YV9tdXJ1X3Rsdihz a2IsIHN0YSk7DQorDQorCXJldHVybiBfX210NzZfbWN1X3NrYl9zZW5kX21zZygmZGV2LT5tdDc2 LCBza2IsDQorCQkJCSAgICAgICBNQ1VfRVhUX0NNRF9TVEFfUkVDX1VQREFURSwgdHJ1ZSk7DQor fQ0KKw0KIHN0YXRpYyB2b2lkDQogbXQ3OTE1X21jdV9zdGFfdGx2KHN0cnVjdCBtdDc5MTVfZGV2 ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsDQogCQkgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAq c3RhKQ0KIHsNCiAJc3RydWN0IHRsdiAqdGx2Ow0KIA0KKwkvKiBzdGFyZWMgaHQgKi8NCiAJaWYg KHN0YS0+aHRfY2FwLmh0X3N1cHBvcnRlZCkgew0KIAkJc3RydWN0IHN0YV9yZWNfaHQgKmh0Ow0K IA0KLQkJLyogc3RhcmVjIGh0ICovDQogCQl0bHYgPSBtdDc5MTVfbWN1X2FkZF90bHYoc2tiLCBT VEFfUkVDX0hULCBzaXplb2YoKmh0KSk7DQogCQlodCA9IChzdHJ1Y3Qgc3RhX3JlY19odCAqKXRs djsNCiAJCWh0LT5odF9jYXAgPSBjcHVfdG9fbGUxNihzdGEtPmh0X2NhcC5jYXApOw0KQEAgLTE0 OTUsMTAgKzE1MzAsNiBAQCBtdDc5MTVfbWN1X3N0YV90bHYoc3RydWN0IG10NzkxNV9kZXYgKmRl diwgc3RydWN0IHNrX2J1ZmYgKnNrYiwNCiAJLyogc3RhcmVjIGhlICovDQogCWlmIChzdGEtPmhl X2NhcC5oYXNfaGUpDQogCQltdDc5MTVfbWN1X3N0YV9oZV90bHYoc2tiLCBzdGEpOw0KLQ0KLQkv KiBzdGFyZWMgbXVydSAqLw0KLQlpZiAoc3RhLT5oZV9jYXAuaGFzX2hlIHx8IHN0YS0+dmh0X2Nh cC52aHRfc3VwcG9ydGVkKQ0KLQkJbXQ3OTE1X21jdV9zdGFfbXVydV90bHYoc2tiLCBzdGEpOw0K IH0NCiANCiBzdGF0aWMgdm9pZA0KQEAgLTIwNjQsNiArMjA5NSwzMiBAQCBpbnQgbXQ3OTE1X21j dV9hZGRfcmF0ZV9jdHJsKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFf dmlmICp2aWYsDQogCQkJCSAgICAgICBNQ1VfRVhUX0NNRF9TVEFfUkVDX1VQREFURSwgdHJ1ZSk7 DQogfQ0KIA0KK3N0YXRpYyBpbnQNCittdDc5MTVfbWN1X2FkZF9ncm91cChzdHJ1Y3QgbXQ3OTE1 X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KKwkJICAgICBzdHJ1Y3QgaWVl ZTgwMjExX3N0YSAqc3RhKQ0KK3sNCisjZGVmaW5lIE1UX1NUQV9CU1NfR1JPVVAJCTENCisJc3Ry dWN0IG10NzkxNV92aWYgKm12aWYgPSAoc3RydWN0IG10NzkxNV92aWYgKil2aWYtPmRydl9wcml2 Ow0KKwlzdHJ1Y3QgbXQ3OTE1X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTE1X3N0YSAqKXN0YS0+ ZHJ2X3ByaXY7DQorCXN0cnVjdCB7DQorCQlfX2xlMzIgYWN0aW9uOw0KKwkJdTggd2xhbl9pZHhf bG87DQorCQl1OCBzdGF0dXM7DQorCQl1OCB3bGFuX2lkeF9oaTsNCisJCXU4IHJzdjBbNV07DQor CQlfX2xlMzIgdmFsOw0KKwkJdTggcnN2MVs4XTsNCisJfSBfX3BhY2tlZCByZXEgPSB7DQorCQku YWN0aW9uID0gY3B1X3RvX2xlMzIoTVRfU1RBX0JTU19HUk9VUCksDQorCQkud2xhbl9pZHhfbG8g PSB0b193Y2lkX2xvKG1zdGEtPndjaWQuaWR4KSwNCisJCS53bGFuX2lkeF9oaSA9IHRvX3djaWRf aGkobXN0YS0+d2NpZC5pZHgpLA0KKwkJLnZhbCA9IGNwdV90b19sZTMyKG12aWYtPmlkeCksDQor CX07DQorDQorCXJldHVybiBfX210NzZfbWN1X3NlbmRfbXNnKCZkZXYtPm10NzYsIE1DVV9FWFRf Q01EX1NFVF9EUlJfQ1RSTCwNCisJCQkJICAgJnJlcSwgc2l6ZW9mKHJlcSksIHRydWUpOw0KK30N CisNCiBpbnQgbXQ3OTE1X21jdV9hZGRfc3RhX2FkdihzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBz dHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KIAkJCSAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpz dGEsIGJvb2wgZW5hYmxlKQ0KIHsNCkBAIC0yMDczLDEwICsyMTMwLDE4IEBAIGludCBtdDc5MTVf bWN1X2FkZF9zdGFfYWR2KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFf dmlmICp2aWYsDQogCQlyZXR1cm4gMDsNCiANCiAJLyogbXVzdCBrZWVwIHRoZSBvcmRlciAqLw0K KwlyZXQgPSBtdDc5MTVfbWN1X2FkZF9ncm91cChkZXYsIHZpZiwgc3RhKTsNCisJaWYgKHJldCkN CisJCXJldHVybiByZXQ7DQorDQogCXJldCA9IG10NzkxNV9tY3VfYWRkX3R4YmYoZGV2LCB2aWYs IHN0YSwgZW5hYmxlKTsNCiAJaWYgKHJldCkNCiAJCXJldHVybiByZXQ7DQogDQorCXJldCA9IG10 NzkxNV9tY3VfYWRkX211KGRldiwgdmlmLCBzdGEpOw0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJl dDsNCisNCiAJaWYgKGVuYWJsZSkNCiAJCXJldHVybiBtdDc5MTVfbWN1X2FkZF9yYXRlX2N0cmwo ZGV2LCB2aWYsIHN0YSk7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVk aWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9t dDc2L210NzkxNS9tY3UuaA0KaW5kZXggYzI0MWRkN2M0YzM2Li5jYjM1ZTcxODQwOWEgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaA0K KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgNCkBA IC0yMDEsNiArMjAxLDcgQEAgZW51bSB7DQogCU1DVV9FWFRfQ01EX0VEQ0FfVVBEQVRFID0gMHgy NywNCiAJTUNVX0VYVF9DTURfREVWX0lORk9fVVBEQVRFID0gMHgyQSwNCiAJTUNVX0VYVF9DTURf VEhFUk1BTF9DVFJMID0gMHgyYywNCisJTUNVX0VYVF9DTURfU0VUX0RSUl9DVFJMID0gMHgzNiwN CiAJTUNVX0VYVF9DTURfU0VUX1JERF9DVFJMID0gMHgzYSwNCiAJTUNVX0VYVF9DTURfUFJPVEVD VF9DVFJMID0gMHgzZSwNCiAJTUNVX0VYVF9DTURfTUFDX0lOSVRfQ1RSTCA9IDB4NDYsDQpAQCAt NjUzLDcgKzY1NCw3IEBAIHN0cnVjdCBzdGFfcmVjX211cnUgew0KIAkJYm9vbCBvZmRtYV91bF9l bjsNCiAJCWJvb2wgbWltb19kbF9lbjsNCiAJCWJvb2wgbWltb191bF9lbjsNCi0JCWJvb2wgcnN2 WzRdOw0KKwkJdTggcnN2WzRdOw0KIAl9IGNmZzsNCiANCiAJc3RydWN0IHsNCkBAIC02NjQsNyAr NjY1LDcgQEAgc3RydWN0IHN0YV9yZWNfbXVydSB7DQogCQlib29sIGx0MTZfc2lnYjsNCiAJCWJv b2wgcnhfc3VfY29tcF9zaWdiOw0KIAkJYm9vbCByeF9zdV9ub25fY29tcF9zaWdiOw0KLQkJYm9v bCByc3Y7DQorCQl1OCByc3Y7DQogCX0gb2ZkbWFfZGw7DQogDQogCXN0cnVjdCB7DQpAQCAtOTUx LDcgKzk1Miw2IEBAIGVudW0gew0KIAkJCQkJIHNpemVvZihzdHJ1Y3Qgc3RhX3JlY19iYSkgKwlc DQogCQkJCQkgc2l6ZW9mKHN0cnVjdCBzdGFfcmVjX3ZodCkgKwlcDQogCQkJCQkgc2l6ZW9mKHN0 cnVjdCB0bHYpICsJCVwNCi0JCQkJCSBzaXplb2Yoc3RydWN0IHN0YV9yZWNfbXVydSkgKwlcDQog CQkJCQkgTVQ3OTE1X1dUQkxfVVBEQVRFX01BWF9TSVpFKQ0KIA0KICNkZWZpbmUgTVQ3OTE1X1dU QkxfVVBEQVRFX0JBX1NJWkUJKHNpemVvZihzdHJ1Y3Qgd3RibF9yZXFfaGRyKSArCVwNCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9yZWdzLmgg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9yZWdzLmgNCmluZGV4 IGMxMjE3MTVmOGJmZi4uZTA5ODkxNDFkOWRhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcmVncy5oDQorKysgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9yZWdzLmgNCkBAIC0xMTcsMTEgKzExNywxNiBAQA0K ICNkZWZpbmUgTVRfTUlCX1NEUjE2KF9iYW5kKQkJTVRfV0ZfTUlCKF9iYW5kLCAweDA0OCkNCiAj ZGVmaW5lIE1UX01JQl9TRFIxNl9CVVNZX01BU0sJCUdFTk1BU0soMjMsIDApDQogDQorI2RlZmlu ZSBNVF9NSUJfU0RSMzQoX2JhbmQpCQlNVF9XRl9NSUIoX2JhbmQsIDB4MDkwKQ0KKyNkZWZpbmUg TVRfTUlCX01VX0JGX1RYX0NOVAkJR0VOTUFTSygxNSwgMCkNCisNCiAjZGVmaW5lIE1UX01JQl9T RFIzNihfYmFuZCkJCU1UX1dGX01JQihfYmFuZCwgMHgwOTgpDQogI2RlZmluZSBNVF9NSUJfU0RS MzZfVFhUSU1FX01BU0sJR0VOTUFTSygyMywgMCkNCiAjZGVmaW5lIE1UX01JQl9TRFIzNyhfYmFu ZCkJCU1UX1dGX01JQihfYmFuZCwgMHgwOWMpDQogI2RlZmluZSBNVF9NSUJfU0RSMzdfUlhUSU1F X01BU0sJR0VOTUFTSygyMywgMCkNCiANCisjZGVmaW5lIE1UX01JQl9EUjgoX2JhbmQpCQlNVF9X Rl9NSUIoX2JhbmQsIDB4MGMwKQ0KKyNkZWZpbmUgTVRfTUlCX0RSOShfYmFuZCkJCU1UX1dGX01J QihfYmFuZCwgMHgwYzQpDQogI2RlZmluZSBNVF9NSUJfRFIxMShfYmFuZCkJCU1UX1dGX01JQihf YmFuZCwgMHgwY2MpDQogDQogI2RlZmluZSBNVF9NSUJfTUJfU0RSMChfYmFuZCwgbikJTVRfV0Zf TUlCKF9iYW5kLCAweDEwMCArICgobikgPDwgNCkpDQotLSANCjIuMTguMA0K