Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp770459ybg; Wed, 10 Jun 2020 13:16:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzeZHHZxbUIpM/ZaogWV5vzUC4DnE7RRuYE3wgwiA5PyhqTzkOycPdwY1sgIgdihd2JJXYu X-Received: by 2002:a17:906:84a:: with SMTP id f10mr5336693ejd.102.1591820175854; Wed, 10 Jun 2020 13:16:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591820175; cv=none; d=google.com; s=arc-20160816; b=iXovZ9KbY8saM1ZQzwEtG9yKI21LewgZ+dV5rR7ttsOYpKbKrgyuUJUFHQb8qwP+3o pnQeiUypkLk/jI4ShkEPmFaehISGxiPwre41EpD2L+RIq8DGBzGsoaRe24ig0gVk6KdK M2IcrhxsWK5JVab1IXpvd/CQS38L2zfPgyXPXBkmunCVF8cqy1Pn7W/94DNHWgbmXuq5 iDAt9hFcRktFrpwqCGUfAWbreyqWAZRDtPsGmaTccfyxtXDLVB2spZb+xRWbqg7G/2kq yKRHOYEqkh5AJg9USaBHGMyhF15jxX5kLJ83qMVZ9DORVIBOboVpIUOt3GlUK8qrm6UY EX0Q== 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=47yyi6m4fUgnEDPphiLhl4rOwR2Ga/hhnAODjXGkp+A=; b=RqnoVWymwhba7/5JFfVyoIghpYS9iSd0vMFqVRo1gMmmYkczfxvi0SHzKPSXb3Qka1 HswiqwqJwkId6Kdw1x9p5HPVmop8UagTBu/rP/ynrS6xJL3/jemmdYI9hUuXULf9jJiu NpAC2IYz8OJKPJXP5Of/xQZbM9txCNOFMTbJJQKDtb+nr/NyvYsdWs4cW5z9hwXqryXT uOyblt4q0xq/QACfU9KXlvaqXqWm9uNGRK4TovfYSR+On5XChVeagqdaNEAYEwqNgOkV QzS7axyyyv/hRzw2GvESYWqeOKHbCtHgUqXrN5aAG6nYjd0UMcOG6YmrSGIGCvNbl4dk lEPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=Lf7N0VH+; 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 lj21si658571ejb.324.2020.06.10.13.15.32; Wed, 10 Jun 2020 13:16:15 -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=Lf7N0VH+; 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 S1727089AbgFJR4C (ORCPT + 99 others); Wed, 10 Jun 2020 13:56:02 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:29250 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726982AbgFJR4C (ORCPT ); Wed, 10 Jun 2020 13:56:02 -0400 X-UUID: 0dafa3fa5c054640b8815b576e533611-20200611 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=47yyi6m4fUgnEDPphiLhl4rOwR2Ga/hhnAODjXGkp+A=; b=Lf7N0VH++ZZOYH7iWue97OxKbZppsUqsUrfDVoYFFRx3TlpdU9fINztxYpA/iBGXBk4CxX3cFnnlqc4EjfUtTTQsIaTu8RWTrMmiTHq90O83E0x+KWb8oZQGl9lE7jlrGa3/30qKJtJEGMfeq2IAY8bJG+IsUF3jQ/uQ9HkZv1s=; X-UUID: 0dafa3fa5c054640b8815b576e533611-20200611 Received: from mtkexhb02.mediatek.inc [(172.21.101.103)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1603497390; Thu, 11 Jun 2020 01:55:56 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs08n1.mediatek.inc (172.21.101.55) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 11 Jun 2020 01:55:51 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Thu, 11 Jun 2020 01:55:51 +0800 From: Ryder Lee To: Felix Fietkau , Lorenzo Bianconi CC: Shayne Chen , Sean Wang , , , Ryder Lee Subject: [PATCH 2/2] mt76: mt7915: add MU-MIMO support Date: Thu, 11 Jun 2020 01:55:51 +0800 Message-ID: X-Mailer: git-send-email 2.18.0 In-Reply-To: <8464fdd2191d8d77e51441474e5c99e18b64185b.1591809100.git.ryder.lee@mediatek.com> References: <8464fdd2191d8d77e51441474e5c99e18b64185b.1591809100.git.ryder.lee@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain 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 RW5hYmxlIE1VLU1JTU8gYW5kIGFkZCByZWxhdGl2ZSBjb3VudGVycyBpbiBkZWJ1Z2ZzLg0KDQpD dXJyZW50bHkgTVUgbW9kdWxlcyByZWFkIFdUQkwgZmlyc3QgdG8gbm90aWZ5IEJBIGNoYW5nZXMg dG8NCm90aGVyIGNyb3NzIG1vZHVsZXMsIHNvIGFkanVzdCBtdDc5MTVfbWN1X3N0YV9iYSgpIGFj Y29yZGluZ2x5Lg0KDQpUZXN0ZWQtYnk6IEV2ZWx5biBUc2FpIDxldmVseW4udHNhaUBtZWRpYXRl ay5jb20+DQpTaWduZWQtb2ZmLWJ5OiBSeWRlciBMZWUgPHJ5ZGVyLmxlZUBtZWRpYXRlay5jb20+ DQotLS0NCiAuLi4vd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jICAgfCAx MSArKy0NCiAuLi4vbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jICAgfCA3 MiArKysrKysrKysrKysrKysrKystDQogLi4uL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210 NzkxNS9tY3UuaCAgIHwgIDUgKy0NCiAuLi4vbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3 OTE1L3JlZ3MuaCAgfCAgNSArKw0KIDQgZmlsZXMgY2hhbmdlZCwgODggaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlh dGVrL210NzYvbXQ3OTE1L2RlYnVnZnMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVr L210NzYvbXQ3OTE1L2RlYnVnZnMuYw0KaW5kZXggNTI3OGJlZTgxMmYxLi4zOGY0NzNkNTg3Yzkg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9k ZWJ1Z2ZzLmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1 L2RlYnVnZnMuYw0KQEAgLTE3OCw3ICsxNzgsMTQgQEAgbXQ3OTE1X3R4YmZfc3RhdF9yZWFkX3Bo eShzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5LCBzdHJ1Y3Qgc2VxX2ZpbGUgKnMpDQogCXNlcV9wcmlu dGYocywgIlR4IEJlYW1mb3JtZWUgZmVlZGJhY2sgdHJpZ2dlcmVkIGNvdW50czogJWxkXG4iLA0K IAkJICAgRklFTERfR0VUKE1UX0VUQkZfVFhfRkJfVFJJLCBjbnQpKTsNCiANCi0JLyogVHggU1Ug Y291bnRlcnMgKi8NCisJLyogVHggU1UgJiBNVSBjb3VudGVycyAqLw0KKwljbnQgPSBtdDc2X3Jy KGRldiwgTVRfTUlCX1NEUjM0KGV4dF9waHkpKTsNCisJc2VxX3ByaW50ZihzLCAiVHggbXVsdGkt dXNlciBCZWFtZm9ybWluZyBjb3VudHM6ICVsZFxuIiwNCisJCSAgIEZJRUxEX0dFVChNVF9NSUJf TVVfQkZfVFhfQ05ULCBjbnQpKTsNCisJY250ID0gbXQ3Nl9ycihkZXYsIE1UX01JQl9EUjgoZXh0 X3BoeSkpOw0KKwlzZXFfcHJpbnRmKHMsICJUeCBtdWx0aS11c2VyIE1QRFUgY291bnRzOiAlZFxu IiwgY250KTsNCisJY250ID0gbXQ3Nl9ycihkZXYsIE1UX01JQl9EUjkoZXh0X3BoeSkpOw0KKwlz ZXFfcHJpbnRmKHMsICJUeCBtdWx0aS11c2VyIHN1Y2Nlc3NmdWwgTVBEVSBjb3VudHM6ICVkXG4i LCBjbnQpOw0KIAljbnQgPSBtdDc2X3JyKGRldiwgTVRfTUlCX0RSMTEoZXh0X3BoeSkpOw0KIAlz ZXFfcHJpbnRmKHMsICJUeCBzaW5nbGUtdXNlciBzdWNjZXNzZnVsIE1QRFUgY291bnRzOiAlZFxu IiwgY250KTsNCiANCkBAIC0zODQsNiArMzkxLDcgQEAgaW50IG10NzkxNV9pbml0X2RlYnVnZnMo c3RydWN0IG10NzkxNV9kZXYgKmRldikNCiAJcmV0dXJuIDA7DQogfQ0KIA0KKyNpZmRlZiBDT05G SUdfTUFDODAyMTFfREVCVUdGUw0KIC8qKiBwZXItc3RhdGlvbiBkZWJ1Z2ZzICoqLw0KIA0KIC8q IHVzYWdlOiA8dHggbW9kZT4gPGxkcGM+IDxzdGJjPiA8Ync+IDxnaT4gPG5zcz4gPG1jcz4gKi8N CkBAIC00NjEsMyArNDY5LDQgQEAgdm9pZCBtdDc5MTVfc3RhX2FkZF9kZWJ1Z2ZzKHN0cnVjdCBp ZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KIAlkZWJ1Z2ZzX2Ny ZWF0ZV9maWxlKCJmaXhlZF9yYXRlIiwgMDYwMCwgZGlyLCBzdGEsICZmb3BzX2ZpeGVkX3JhdGUp Ow0KIAlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJzdGF0cyIsIDA0MDAsIGRpciwgc3RhLCAmZm9wc19z dGFfc3RhdHMpOw0KIH0NCisjZW5kaWYNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVz cy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlh dGVrL210NzYvbXQ3OTE1L21jdS5jDQppbmRleCA4NDYwY2Q0NTMyMTMuLjllMzQ5MGRmZGY4NiAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21j dS5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3Uu Yw0KQEAgLTExNjYsMTkgKzExNjYsMzEgQEAgbXQ3OTE1X21jdV9zdGFfYmEoc3RydWN0IG10Nzkx NV9kZXYgKmRldiwNCiAJc3RydWN0IHd0YmxfcmVxX2hkciAqd3RibF9oZHI7DQogCXN0cnVjdCB0 bHYgKnN0YV93dGJsOw0KIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KKwlpbnQgcmV0Ow0KIA0KIAlz a2IgPSBtdDc5MTVfbWN1X2FsbG9jX3N0YV9yZXEoZGV2LCBtdmlmLCBtc3RhLA0KIAkJCQkgICAg ICAgTVQ3OTE1X1NUQV9VUERBVEVfTUFYX1NJWkUpOw0KIAlpZiAoSVNfRVJSKHNrYikpDQogCQly ZXR1cm4gUFRSX0VSUihza2IpOw0KIA0KLQltdDc5MTVfbWN1X3N0YV9iYV90bHYoc2tiLCBwYXJh bXMsIGVuYWJsZSwgdHgpOw0KIAlzdGFfd3RibCA9IG10NzkxNV9tY3VfYWRkX3Rsdihza2IsIFNU QV9SRUNfV1RCTCwgc2l6ZW9mKHN0cnVjdCB0bHYpKTsNCiANCiAJd3RibF9oZHIgPSBtdDc5MTVf bWN1X2FsbG9jX3d0YmxfcmVxKGRldiwgbXN0YSwgV1RCTF9TRVQsIHN0YV93dGJsLA0KIAkJCQkJ ICAgICAmc2tiKTsNCiAJbXQ3OTE1X21jdV93dGJsX2JhX3Rsdihza2IsIHBhcmFtcywgZW5hYmxl LCB0eCwgc3RhX3d0YmwsIHd0YmxfaGRyKTsNCiANCisJcmV0ID0gX19tdDc2X21jdV9za2Jfc2Vu ZF9tc2coJmRldi0+bXQ3Niwgc2tiLA0KKwkJCQkgICAgICBNQ1VfRVhUX0NNRF9TVEFfUkVDX1VQ REFURSwgdHJ1ZSk7DQorCWlmIChyZXQpDQorCQlyZXR1cm4gcmV0Ow0KKw0KKwlza2IgPSBtdDc5 MTVfbWN1X2FsbG9jX3N0YV9yZXEoZGV2LCBtdmlmLCBtc3RhLA0KKwkJCQkgICAgICAgTVQ3OTE1 X1NUQV9VUERBVEVfTUFYX1NJWkUpOw0KKwlpZiAoSVNfRVJSKHNrYikpDQorCQlyZXR1cm4gUFRS X0VSUihza2IpOw0KKw0KKwltdDc5MTVfbWN1X3N0YV9iYV90bHYoc2tiLCBwYXJhbXMsIGVuYWJs ZSwgdHgpOw0KKw0KIAlyZXR1cm4gX19tdDc2X21jdV9za2Jfc2VuZF9tc2coJmRldi0+bXQ3Niwg c2tiLA0KIAkJCQkgICAgICAgTUNVX0VYVF9DTURfU1RBX1JFQ19VUERBVEUsIHRydWUpOw0KIH0N CkBAIC0xNDY2LDE2ICsxNDc4LDM4IEBAIG10NzkxNV9tY3Vfc3RhX211cnVfdGx2KHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpDQogCQlIRV9QSFkoQ0FQMl9V TF9NVV9QQVJUSUFMX01VX01JTU8sIGVsZW0tPnBoeV9jYXBfaW5mb1syXSk7DQogfQ0KIA0KK3N0 YXRpYyBpbnQNCittdDc5MTVfbWN1X2FkZF9tdShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1 Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KKwkJICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKQ0K K3sNCisJc3RydWN0IG10NzkxNV92aWYgKm12aWYgPSAoc3RydWN0IG10NzkxNV92aWYgKil2aWYt PmRydl9wcml2Ow0KKwlzdHJ1Y3QgbXQ3OTE1X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTE1X3N0 YSAqKXN0YS0+ZHJ2X3ByaXY7DQorCXN0cnVjdCBza19idWZmICpza2I7DQorCWludCBsZW4gPSBz aXplb2Yoc3RydWN0IHN0YV9yZXFfaGRyKSArIHNpemVvZihzdHJ1Y3Qgc3RhX3JlY19tdXJ1KTsN CisNCisJaWYgKCFzdGEtPnZodF9jYXAudmh0X3N1cHBvcnRlZCAmJiAhc3RhLT5oZV9jYXAuaGFz X2hlKQ0KKwkJcmV0dXJuIDA7DQorDQorCXNrYiA9IG10NzkxNV9tY3VfYWxsb2Nfc3RhX3JlcShk ZXYsIG12aWYsIG1zdGEsIGxlbik7DQorCWlmIChJU19FUlIoc2tiKSkNCisJCXJldHVybiBQVFJf RVJSKHNrYik7DQorDQorCW10NzkxNV9tY3Vfc3RhX211cnVfdGx2KHNrYiwgc3RhKTsNCisNCisJ cmV0dXJuIF9fbXQ3Nl9tY3Vfc2tiX3NlbmRfbXNnKCZkZXYtPm10NzYsIHNrYiwNCisJCQkJICAg ICAgIE1DVV9FWFRfQ01EX1NUQV9SRUNfVVBEQVRFLCB0cnVlKTsNCit9DQorDQogc3RhdGljIHZv aWQNCiBtdDc5MTVfbWN1X3N0YV90bHYoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3RydWN0IHNr X2J1ZmYgKnNrYiwNCiAJCSAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpDQogew0KIAlzdHJ1 Y3QgdGx2ICp0bHY7DQogDQorCS8qIHN0YXJlYyBodCAqLw0KIAlpZiAoc3RhLT5odF9jYXAuaHRf c3VwcG9ydGVkKSB7DQogCQlzdHJ1Y3Qgc3RhX3JlY19odCAqaHQ7DQogDQotCQkvKiBzdGFyZWMg aHQgKi8NCiAJCXRsdiA9IG10NzkxNV9tY3VfYWRkX3Rsdihza2IsIFNUQV9SRUNfSFQsIHNpemVv ZigqaHQpKTsNCiAJCWh0ID0gKHN0cnVjdCBzdGFfcmVjX2h0ICopdGx2Ow0KIAkJaHQtPmh0X2Nh cCA9IGNwdV90b19sZTE2KHN0YS0+aHRfY2FwLmNhcCk7DQpAQCAtMjA2Nyw2ICsyMTAxLDMyIEBA IGludCBtdDc5MTVfbWN1X2FkZF9yYXRlX2N0cmwoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3Ry dWN0IGllZWU4MDIxMV92aWYgKnZpZiwNCiAJCQkJICAgICAgIE1DVV9FWFRfQ01EX1NUQV9SRUNf VVBEQVRFLCB0cnVlKTsNCiB9DQogDQorc3RhdGljIGludA0KK210NzkxNV9tY3VfYWRkX2dyb3Vw KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQorCQkg ICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpDQorew0KKyNkZWZpbmUgTVRfU1RBX0JTU19H Uk9VUAkJMQ0KKwlzdHJ1Y3QgbXQ3OTE1X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTE1X3ZpZiAq KXZpZi0+ZHJ2X3ByaXY7DQorCXN0cnVjdCBtdDc5MTVfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5 MTVfc3RhICopc3RhLT5kcnZfcHJpdjsNCisJc3RydWN0IHsNCisJCV9fbGUzMiBhY3Rpb247DQor CQl1OCB3bGFuX2lkeF9sbzsNCisJCXU4IHN0YXR1czsNCisJCXU4IHdsYW5faWR4X2hpOw0KKwkJ dTggcnN2MFs1XTsNCisJCV9fbGUzMiB2YWw7DQorCQl1OCByc3YxWzhdOw0KKwl9IF9fcGFja2Vk IHJlcSA9IHsNCisJCS5hY3Rpb24gPSBjcHVfdG9fbGUzMihNVF9TVEFfQlNTX0dST1VQKSwNCisJ CS53bGFuX2lkeF9sbyA9IHRvX3djaWRfbG8obXN0YS0+d2NpZC5pZHgpLA0KKwkJLndsYW5faWR4 X2hpID0gdG9fd2NpZF9oaShtc3RhLT53Y2lkLmlkeCksDQorCQkudmFsID0gY3B1X3RvX2xlMzIo bXZpZi0+aWR4KSwNCisJfTsNCisNCisJcmV0dXJuIF9fbXQ3Nl9tY3Vfc2VuZF9tc2coJmRldi0+ bXQ3NiwgTUNVX0VYVF9DTURfU0VUX0RSUl9DVFJMLA0KKwkJCQkgICAmcmVxLCBzaXplb2YocmVx KSwgdHJ1ZSk7DQorfQ0KKw0KIGludCBtdDc5MTVfbWN1X2FkZF9zdGFfYWR2KHN0cnVjdCBtdDc5 MTVfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQogCQkJICAgc3RydWN0IGll ZWU4MDIxMV9zdGEgKnN0YSwgYm9vbCBlbmFibGUpDQogew0KQEAgLTIwNzYsMTAgKzIxMzYsMTgg QEAgaW50IG10NzkxNV9tY3VfYWRkX3N0YV9hZHYoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3Ry dWN0IGllZWU4MDIxMV92aWYgKnZpZiwNCiAJCXJldHVybiAwOw0KIA0KIAkvKiBtdXN0IGtlZXAg dGhlIG9yZGVyICovDQorCXJldCA9IG10NzkxNV9tY3VfYWRkX2dyb3VwKGRldiwgdmlmLCBzdGEp Ow0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJldDsNCisNCiAJcmV0ID0gbXQ3OTE1X21jdV9hZGRf dHhiZihkZXYsIHZpZiwgc3RhLCBlbmFibGUpOw0KIAlpZiAocmV0KQ0KIAkJcmV0dXJuIHJldDsN CiANCisJcmV0ID0gbXQ3OTE1X21jdV9hZGRfbXUoZGV2LCB2aWYsIHN0YSk7DQorCWlmIChyZXQp DQorCQlyZXR1cm4gcmV0Ow0KKw0KIAlpZiAoZW5hYmxlKQ0KIAkJcmV0dXJuIG10NzkxNV9tY3Vf YWRkX3JhdGVfY3RybChkZXYsIHZpZiwgc3RhKTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaCBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oDQppbmRleCBjMjQxZGQ3YzRjMzYuLjk4MWRk M2ZjZGI0MSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYv bXQ3OTE1L21jdS5oDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210 NzkxNS9tY3UuaA0KQEAgLTIwMSw2ICsyMDEsNyBAQCBlbnVtIHsNCiAJTUNVX0VYVF9DTURfRURD QV9VUERBVEUgPSAweDI3LA0KIAlNQ1VfRVhUX0NNRF9ERVZfSU5GT19VUERBVEUgPSAweDJBLA0K IAlNQ1VfRVhUX0NNRF9USEVSTUFMX0NUUkwgPSAweDJjLA0KKwlNQ1VfRVhUX0NNRF9TRVRfRFJS X0NUUkwgPSAweDM2LA0KIAlNQ1VfRVhUX0NNRF9TRVRfUkREX0NUUkwgPSAweDNhLA0KIAlNQ1Vf RVhUX0NNRF9QUk9URUNUX0NUUkwgPSAweDNlLA0KIAlNQ1VfRVhUX0NNRF9NQUNfSU5JVF9DVFJM ID0gMHg0NiwNCkBAIC02NTMsNyArNjU0LDcgQEAgc3RydWN0IHN0YV9yZWNfbXVydSB7DQogCQli b29sIG9mZG1hX3VsX2VuOw0KIAkJYm9vbCBtaW1vX2RsX2VuOw0KIAkJYm9vbCBtaW1vX3VsX2Vu Ow0KLQkJYm9vbCByc3ZbNF07DQorCQl1OCByc3ZbNF07DQogCX0gY2ZnOw0KIA0KIAlzdHJ1Y3Qg ew0KQEAgLTY2NCw3ICs2NjUsNyBAQCBzdHJ1Y3Qgc3RhX3JlY19tdXJ1IHsNCiAJCWJvb2wgbHQx Nl9zaWdiOw0KIAkJYm9vbCByeF9zdV9jb21wX3NpZ2I7DQogCQlib29sIHJ4X3N1X25vbl9jb21w X3NpZ2I7DQotCQlib29sIHJzdjsNCisJCXU4IHJzdjsNCiAJfSBvZmRtYV9kbDsNCiANCiAJc3Ry dWN0IHsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210 NzkxNS9yZWdzLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9y ZWdzLmgNCmluZGV4IGMxMjE3MTVmOGJmZi4uZTA5ODkxNDFkOWRhIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcmVncy5oDQorKysgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9yZWdzLmgNCkBAIC0xMTcsMTEg KzExNywxNiBAQA0KICNkZWZpbmUgTVRfTUlCX1NEUjE2KF9iYW5kKQkJTVRfV0ZfTUlCKF9iYW5k LCAweDA0OCkNCiAjZGVmaW5lIE1UX01JQl9TRFIxNl9CVVNZX01BU0sJCUdFTk1BU0soMjMsIDAp DQogDQorI2RlZmluZSBNVF9NSUJfU0RSMzQoX2JhbmQpCQlNVF9XRl9NSUIoX2JhbmQsIDB4MDkw KQ0KKyNkZWZpbmUgTVRfTUlCX01VX0JGX1RYX0NOVAkJR0VOTUFTSygxNSwgMCkNCisNCiAjZGVm aW5lIE1UX01JQl9TRFIzNihfYmFuZCkJCU1UX1dGX01JQihfYmFuZCwgMHgwOTgpDQogI2RlZmlu ZSBNVF9NSUJfU0RSMzZfVFhUSU1FX01BU0sJR0VOTUFTSygyMywgMCkNCiAjZGVmaW5lIE1UX01J Ql9TRFIzNyhfYmFuZCkJCU1UX1dGX01JQihfYmFuZCwgMHgwOWMpDQogI2RlZmluZSBNVF9NSUJf U0RSMzdfUlhUSU1FX01BU0sJR0VOTUFTSygyMywgMCkNCiANCisjZGVmaW5lIE1UX01JQl9EUjgo X2JhbmQpCQlNVF9XRl9NSUIoX2JhbmQsIDB4MGMwKQ0KKyNkZWZpbmUgTVRfTUlCX0RSOShfYmFu ZCkJCU1UX1dGX01JQihfYmFuZCwgMHgwYzQpDQogI2RlZmluZSBNVF9NSUJfRFIxMShfYmFuZCkJ CU1UX1dGX01JQihfYmFuZCwgMHgwY2MpDQogDQogI2RlZmluZSBNVF9NSUJfTUJfU0RSMChfYmFu ZCwgbikJTVRfV0ZfTUlCKF9iYW5kLCAweDEwMCArICgobikgPDwgNCkpDQotLSANCjIuMTguMA0K