Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp3714569pxu; Sun, 11 Oct 2020 21:40:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyOV1lBWqINWoemDoopNZtEu1Yl+ciooZSRP1TvptPsnuJCgHv831PYtJH+7hBDLb1CsHwf X-Received: by 2002:a17:906:4e86:: with SMTP id v6mr25696309eju.37.1602477646877; Sun, 11 Oct 2020 21:40:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602477646; cv=none; d=google.com; s=arc-20160816; b=oYho65/bZmjLg9+lL7Tn0Y0zh/wSrlstvs1uqAbd3W8tcMJ+q49AXTcH/K1gZ1icrB iOaXgbAwfVkSeWTfyNuMrX1ydztzEQII5qhxvZrHeUuDRcpUoWTOJvfXwKow8GvSsYT+ wLW6puBRKgrDIReUumO0941ahWq+7WBIO6cYuUXL+oBaxfvz94uy8RfjZPOVB3Li6EKW jLbuWFt00vJ/FCR4Uvy0kqbXSAFc2rs1rhySabvl+7zf8Gv6xeQRR36K5vtV/anN8Ao6 BWlKuIEw7ozQ3SVshVlTI+kKpg8OaQfXRn8jShVuloLbNgkYe78mrPHBcm4JoKLcfVAR sIBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=+kSHI/c1f4Yn4P9dXriMKzqWLeZ3ds4rix02dxVMGls=; b=n6nL2s6EcC9GkVlI8gTinzD2sU8W370RJEfIT4Pa3FX31PkS13FTOU5qOVcyQ8zRVd lwkwKL8j89YeqyqEqi7ElFWm/f2RuONV9yNqdqH6khBqFbrd1QI9lMWJ7pykionj0aAq vrQszWbzvEMDeaKrirFT5H1WCULrAViV48EdYBV7nbVw6A2obQDIUCFIXWK/MYmqEBLB rv7jUAMk0NEyMi2YMKhTd2a7XUJQNqgVJgfJUypL+PjFVCbGlVg9F5oJLyuVdZX8AMhr jRX+g9e1cEJ7Hexg3Io9oASP6yOoMc/FoQczq7mOsF87jWOKUI1CSxC0q8Uwe4++EPP4 VH7w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=UxrWEE7W; 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 n9si11475144edy.248.2020.10.11.21.40.22; Sun, 11 Oct 2020 21:40:46 -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=UxrWEE7W; 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 S1727225AbgJLD0j (ORCPT + 99 others); Sun, 11 Oct 2020 23:26:39 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:54570 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726371AbgJLD0i (ORCPT ); Sun, 11 Oct 2020 23:26:38 -0400 X-UUID: 6c9d6e362dae419fb5ea95606bdbe1fc-20201012 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=+kSHI/c1f4Yn4P9dXriMKzqWLeZ3ds4rix02dxVMGls=; b=UxrWEE7WRGwRhbYx6PloYA648UCcxIQ+xAzk5WXdyvdObvfxwM6+/VxCq0onSX1JbUwAdQNrDvb38yGWTEDIpsOt0nw1CMfsmChgVqs3uXHNvYMy/eBlBjv2U73fsX74o6tTp0AH/Ba37b8bJC5xKZePQETv1Fl3lq/Wz6hmTV4=; X-UUID: 6c9d6e362dae419fb5ea95606bdbe1fc-20201012 Received: from mtkcas11.mediatek.inc [(172.21.101.40)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1906039419; Mon, 12 Oct 2020 11:26:30 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs08n2.mediatek.inc (172.21.101.56) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 12 Oct 2020 11:26:27 +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; Mon, 12 Oct 2020 11:26:27 +0800 From: Shayne Chen To: Felix Fietkau CC: linux-wireless , Lorenzo Bianconi , Ryder Lee , Evelyn Tsai , linux-mediatek , Shayne Chen Subject: [PATCH v2 08/10] mt76: mt7915: implement testmode rx support Date: Mon, 12 Oct 2020 11:25:36 +0800 Message-ID: <20201012032538.21314-8-shayne.chen@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20201012032538.21314-1-shayne.chen@mediatek.com> References: <20201012032538.21314-1-shayne.chen@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: 0B9A1776F829A1BD1FA61BC61005EF802236AB04662818A1DF154075671CDBA02000:8 X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org U3VwcG9ydCB0ZXN0bW9kZSByeCBhbmQgZGlzcGxheSByeCBzdGF0aXN0aWMgYnkgcGFyc2luZyBS WFYgcGFja2V0DQp0eXBlLCB3aGljaCBpcyBjdXJyZW50bHkgb25seSBlbmFibGVkIGluIHRlc3Rt b2RlLg0KDQpSZXZpZXdlZC1ieTogUnlkZXIgTGVlIDxyeWRlci5sZWVAbWVkaWF0ZWsuY29tPg0K U2lnbmVkLW9mZi1ieTogU2hheW5lIENoZW4gPHNoYXluZS5jaGVuQG1lZGlhdGVrLmNvbT4NCi0t LQ0KdjI6IGNoYW5nZSBsYXN0X3NuciB0byB1OA0KDQogLi4uL25ldC93aXJlbGVzcy9tZWRpYXRl ay9tdDc2L210NzkxNS9kbWEuYyAgIHwgIDMgKw0KIC4uLi9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsv bXQ3Ni9tdDc5MTUvbWFjLmMgICB8IDM3ICsrKysrKysNCiAuLi4vbmV0L3dpcmVsZXNzL21lZGlh dGVrL210NzYvbXQ3OTE1L21hYy5oICAgfCAgNSArDQogLi4uL25ldC93aXJlbGVzcy9tZWRpYXRl ay9tdDc2L210NzkxNS9tY3UuaCAgIHwgIDEgKw0KIC4uLi93aXJlbGVzcy9tZWRpYXRlay9tdDc2 L210NzkxNS9tdDc5MTUuaCAgICB8ICA3ICsrDQogLi4uL3dpcmVsZXNzL21lZGlhdGVrL210NzYv bXQ3OTE1L3Rlc3Rtb2RlLmMgIHwgOTcgKysrKysrKysrKysrKysrKysrKw0KIC4uLi93aXJlbGVz cy9tZWRpYXRlay9tdDc2L210NzkxNS90ZXN0bW9kZS5oICB8IDMwICsrKysrKw0KIDcgZmlsZXMg Y2hhbmdlZCwgMTgwIGluc2VydGlvbnMoKykNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv bWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMNCmluZGV4IGNmYTEyYzQuLmUxNDgxNGQgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYw0K KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMNCkBA IC02MSw2ICs2MSw5IEBAIHZvaWQgbXQ3OTE1X3F1ZXVlX3J4X3NrYihzdHJ1Y3QgbXQ3Nl9kZXYg Km1kZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSwNCiAJY2FzZSBQS1RfVFlQRV9SWF9FVkVOVDoNCiAJ CW10NzkxNV9tY3VfcnhfZXZlbnQoZGV2LCBza2IpOw0KIAkJYnJlYWs7DQorCWNhc2UgUEtUX1RZ UEVfVFhSWFY6DQorCQltdDc5MTVfbWFjX2ZpbGxfcnhfdmVjdG9yKGRldiwgc2tiKTsNCisJCWJy ZWFrOw0KIAljYXNlIFBLVF9UWVBFX05PUk1BTDoNCiAJCWlmICghbXQ3OTE1X21hY19maWxsX3J4 KGRldiwgc2tiKSkgew0KIAkJCW10NzZfcngoJmRldi0+bXQ3NiwgcSwgc2tiKTsNCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jDQppbmRleCBlMDNl MTJmLi5lYzMwZGQyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsv bXQ3Ni9tdDc5MTUvbWFjLmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210 NzYvbXQ3OTE1L21hYy5jDQpAQCAtNTYyLDYgKzU2Miw0MyBAQCBpbnQgbXQ3OTE1X21hY19maWxs X3J4KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpDQogCXJldHVy biAwOw0KIH0NCiANCit2b2lkIG10NzkxNV9tYWNfZmlsbF9yeF92ZWN0b3Ioc3RydWN0IG10Nzkx NV9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikNCit7DQorI2lmZGVmIENPTkZJR19OTDgw MjExX1RFU1RNT0RFDQorCV9fbGUzMiAqcnhkID0gKF9fbGUzMiAqKXNrYi0+ZGF0YTsNCisJX19s ZTMyICpyeHYgPSByeGQgKyA0Ow0KKwl1MzIgcmNwaSwgaWJfcnNzaSwgd2JfcnNzaSwgdjIwLCB2 MjE7DQorCXMzMiBmb2UsIHNucjsNCisJaW50IGk7DQorDQorCXJjcGkgPSBsZTMyX3RvX2NwdShy eHZbNl0pOw0KKwlpYl9yc3NpID0gbGUzMl90b19jcHUocnh2WzddKTsNCisJd2JfcnNzaSA9IGxl MzJfdG9fY3B1KHJ4dls4XSkgPj4gNTsNCisNCisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKywgcmNw aSA+Pj0gOCwgaWJfcnNzaSA+Pj0gOCwgd2JfcnNzaSA+Pj0gOSkgew0KKwkJaWYgKGkgPT0gMykN CisJCQl3Yl9yc3NpID0gbGUzMl90b19jcHUocnh2WzldKTsNCisNCisJCWRldi0+dGVzdC5sYXN0 X3JjcGlbaV0gPSByY3BpICYgMHhmZjsNCisJCWRldi0+dGVzdC5sYXN0X2liX3Jzc2lbaV0gPSBp Yl9yc3NpICYgMHhmZjsNCisJCWRldi0+dGVzdC5sYXN0X3diX3Jzc2lbaV0gPSB3Yl9yc3NpICYg MHhmZjsNCisJfQ0KKw0KKwl2MjAgPSBsZTMyX3RvX2NwdShyeHZbMjBdKTsNCisJdjIxID0gbGUz Ml90b19jcHUocnh2WzIxXSk7DQorDQorCWZvZSA9IEZJRUxEX0dFVChNVF9DUlhWX0ZPRV9MTywg djIwKSB8DQorCSAgICAgIChGSUVMRF9HRVQoTVRfQ1JYVl9GT0VfSEksIHYyMSkgPDwgTVRfQ1JY Vl9GT0VfU0hJRlQpOw0KKw0KKwlzbnIgPSBGSUVMRF9HRVQoTVRfQ1JYVl9TTlIsIHYyMCkgLSAx NjsNCisNCisJZGV2LT50ZXN0Lmxhc3RfZnJlcV9vZmZzZXQgPSBmb2U7DQorCWRldi0+dGVzdC5s YXN0X3NuciA9IHNucjsNCisNCisJZGV2X2tmcmVlX3NrYihza2IpOw0KKyNlbmRpZg0KK30NCisN CiBzdGF0aWMgdTE2DQogbXQ3OTE1X21hY190eF9yYXRlX3ZhbChzdHJ1Y3QgbXQ3Nl9waHkgKm1w aHksIHU4IG1vZGUsIHU4IHJhdGVfaWR4LA0KIAkJICAgICAgIHU4IG5zcywgdTggc3RiYywgdTgg KmJ3KQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3 OTE1L21hYy5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFj LmgNCmluZGV4IDA5MjFiNmYuLmQ0MjAzOTIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJl bGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuaA0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmgNCkBAIC0xMjgsNiArMTI4LDExIEBAIGVudW0g cnhfcGt0X3R5cGUgew0KICNkZWZpbmUgTVRfQ1JYVl9IRV9CRUFNX0NITkcJCUJJVCgxMykNCiAj ZGVmaW5lIE1UX0NSWFZfSEVfRE9QUExFUgkJQklUKDE2KQ0KIA0KKyNkZWZpbmUgTVRfQ1JYVl9T TlIJCUdFTk1BU0soMTgsIDEzKQ0KKyNkZWZpbmUgTVRfQ1JYVl9GT0VfTE8JCUdFTk1BU0soMzEs IDE5KQ0KKyNkZWZpbmUgTVRfQ1JYVl9GT0VfSEkJCUdFTk1BU0soNiwgMCkNCisjZGVmaW5lIE1U X0NSWFZfRk9FX1NISUZUCTEzDQorDQogZW51bSB0eF9oZWFkZXJfZm9ybWF0IHsNCiAJTVRfSERS X0ZPUk1BVF84MDJfMywNCiAJTVRfSERSX0ZPUk1BVF9DTUQsDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmggYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaA0KaW5kZXggMGE3ZTlkMi4uODk0NTNh NiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1 L21jdS5oDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9t Y3UuaA0KQEAgLTQ4LDYgKzQ4LDcgQEAgZW51bSB7DQogDQogZW51bSB7DQogCU1DVV9BVEVfU0VU X1RSWCA9IDB4MSwNCisJTUNVX0FURV9TRVRfUlhfRklMVEVSID0gMHgzLA0KIH07DQogDQogc3Ry dWN0IG10NzkxNV9tY3VfcnhkIHsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9t ZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlh dGVrL210NzYvbXQ3OTE1L210NzkxNS5oDQppbmRleCA2NzM1OTE1Li5mZDdkZTc5IDEwMDY0NA0K LS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgN CisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5o DQpAQCAtMTY1LDYgKzE2NSwxMiBAQCBzdHJ1Y3QgbXQ3OTE1X2RldiB7DQogCXN0cnVjdCB7DQog CQl1MzIgKnJlZ19iYWNrdXA7DQogDQorCQlzMzIgbGFzdF9mcmVxX29mZnNldDsNCisJCXU4IGxh c3RfcmNwaVs0XTsNCisJCXM4IGxhc3RfaWJfcnNzaVs0XTsNCisJCXM4IGxhc3Rfd2JfcnNzaVs0 XTsNCisJCXU4IGxhc3Rfc25yOw0KKw0KIAkJdTggc3BlX2lkeDsNCiAJfSB0ZXN0Ow0KICNlbmRp Zg0KQEAgLTQzNiw2ICs0NDIsNyBAQCB2b2lkIG10NzkxNV9tYWNfd3JpdGVfdHh3aShzdHJ1Y3Qg bXQ3OTE1X2RldiAqZGV2LCBfX2xlMzIgKnR4d2ksDQogCQkJICAgc3RydWN0IGllZWU4MDIxMV9r ZXlfY29uZiAqa2V5LCBib29sIGJlYWNvbik7DQogdm9pZCBtdDc5MTVfbWFjX3NldF90aW1pbmco c3RydWN0IG10NzkxNV9waHkgKnBoeSk7DQogaW50IG10NzkxNV9tYWNfZmlsbF9yeChzdHJ1Y3Qg bXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsNCit2b2lkIG10NzkxNV9tYWNf ZmlsbF9yeF92ZWN0b3Ioc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNr Yik7DQogdm9pZCBtdDc5MTVfbWFjX3R4X2ZyZWUoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3Ry dWN0IHNrX2J1ZmYgKnNrYik7DQogaW50IG10NzkxNV9tYWNfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9k ZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQogCQkgICAgICAgc3RydWN0IGll ZWU4MDIxMV9zdGEgKnN0YSk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVk aWF0ZWsvbXQ3Ni9tdDc5MTUvdGVzdG1vZGUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlh dGVrL210NzYvbXQ3OTE1L3Rlc3Rtb2RlLmMNCmluZGV4IDUzZmM5NzcuLmNjNWFiOTggMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS90ZXN0bW9k ZS5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS90ZXN0 bW9kZS5jDQpAQCAtMTEzLDYgKzExMywzMSBAQCBtdDc5MTVfdG1fcmVnX2JhY2t1cF9yZXN0b3Jl KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpDQogCW10NzZf Y2xlYXIoZGV2LCBNVF9UTUFDX1RDUjAoMCksIE1UX1RNQUNfVENSMF9UQlRUX1NUT1BfQ1RSTCk7 DQogfQ0KIA0KK3N0YXRpYyBpbnQNCittdDc5MTVfdG1fY29uZmlnX3J4X2ZpbHRlcihzdHJ1Y3Qg bXQ3OTE1X2RldiAqZGV2LCBib29sIGVuKQ0KK3sNCisJc3RydWN0IG10NzkxNV90bV9jbWQgcmVx ID0gew0KKwkJLnRlc3Rtb2RlX2VuID0gMSwNCisJCS5wYXJhbV9pZHggPSBNQ1VfQVRFX1NFVF9S WF9GSUxURVIsDQorCQkucGFyYW0uZmlsdGVyLnJlcG9ydF9lbiA9IGVuLA0KKwkJLnBhcmFtLmZp bHRlci5iYW5kID0gMCwNCisJfTsNCisJX19sZTMyIG1hc2sgPSBSWF9GSUxURVJfTk9UX09XTl9C VElNIHwNCisJCSAgICAgIFJYX0ZJTFRFUl9OT1RfT1dOX1VDQVNUIHwNCisJCSAgICAgIFJYX0ZJ TFRFUl9SVFMgfCBSWF9GSUxURVJfQ1RTIHwNCisJCSAgICAgIFJYX0ZJTFRFUl9DVFJMX1JTViB8 DQorCQkgICAgICBSWF9GSUxURVJfQkNfTUNfQlNTSURfQTIgfA0KKwkJICAgICAgUlhfRklMVEVS X0JDX01DX0JTU0lEX0EzIHwNCisJCSAgICAgIFJYX0ZJTFRFUl9CQ19NQ19PTUFDX0EzIHwNCisJ CSAgICAgIFJYX0ZJTFRFUl9QUk9UT0NPTF9WRVJTSU9OIHwNCisJCSAgICAgIFJYX0ZJTFRFUl9G Q1NfRVJSOw0KKw0KKwlyZXEucGFyYW0uZmlsdGVyLm1hc2sgPSBjcHVfdG9fbGUzMihtYXNrKTsN CisNCisJcmV0dXJuIG10NzZfbWN1X3NlbmRfbXNnKCZkZXYtPm10NzYsIE1DVV9FWFRfQ01EX0FU RV9DVFJMLCAmcmVxLA0KKwkJCQkgc2l6ZW9mKHJlcSksIGZhbHNlKTsNCit9DQorDQogc3RhdGlj IHZvaWQNCiBtdDc5MTVfdG1faW5pdChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KQ0KIHsNCkBAIC0x MjQsNiArMTQ5LDcgQEAgbXQ3OTE1X3RtX2luaXQoc3RydWN0IG10NzkxNV9kZXYgKmRldikNCiAJ bXQ3OTE1X3RtX21vZGVfY3RybChkZXYsIGVuKTsNCiAJbXQ3OTE1X3RtX3JlZ19iYWNrdXBfcmVz dG9yZShkZXYsICZkZXYtPnBoeSk7DQogCW10NzkxNV90bV9zZXRfdHJ4KGRldiwgJmRldi0+cGh5 LCBUTV9NQUNfVFhSWCwgIWVuKTsNCisJbXQ3OTE1X3RtX2NvbmZpZ19yeF9maWx0ZXIoZGV2LCBl bik7DQogfQ0KIA0KIHN0YXRpYyB2b2lkDQpAQCAtMTU2LDYgKzE4MiwyMCBAQCBtdDc5MTVfdG1f c2V0X3R4X2ZyYW1lcyhzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBib29sIGVuKQ0KIAlpbmZvLT5j b250cm9sLnZpZiA9IGRldi0+cGh5Lm1vbml0b3JfdmlmOw0KIH0NCiANCitzdGF0aWMgdm9pZA0K K210NzkxNV90bV9zZXRfcnhfZnJhbWVzKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIGJvb2wgZW4p DQorew0KKwlpZiAoZW4pIHsNCisJCW11dGV4X3VubG9jaygmZGV2LT5tdDc2Lm11dGV4KTsNCisJ CW10NzkxNV9zZXRfY2hhbm5lbCgmZGV2LT5waHkpOw0KKwkJbXV0ZXhfbG9jaygmZGV2LT5tdDc2 Lm11dGV4KTsNCisNCisJCW10NzkxNV9tY3Vfc2V0X2NoYW5faW5mbygmZGV2LT5waHksIE1DVV9F WFRfQ01EX1NFVF9SWF9QQVRIKTsNCisJfQ0KKw0KKwltdDc5MTVfdG1fc2V0X3RyeChkZXYsICZk ZXYtPnBoeSwgVE1fTUFDX1JYX1JYViwgZW4pOw0KK30NCisNCiBzdGF0aWMgaW50DQogbXQ3OTE1 X3RtX3NldF9zdGF0ZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIGVudW0gbXQ3Nl90ZXN0bW9kZV9z dGF0ZSBzdGF0ZSkNCiB7DQpAQCAtMTY5LDEyICsyMDksNjkgQEAgbXQ3OTE1X3RtX3NldF9zdGF0 ZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIGVudW0gbXQ3Nl90ZXN0bW9kZV9zdGF0ZSBzdGF0ZSkN CiAJCW10NzkxNV90bV9zZXRfdHhfZnJhbWVzKGRldiwgZmFsc2UpOw0KIAllbHNlIGlmIChzdGF0 ZSA9PSBNVDc2X1RNX1NUQVRFX1RYX0ZSQU1FUykNCiAJCW10NzkxNV90bV9zZXRfdHhfZnJhbWVz KGRldiwgdHJ1ZSk7DQorCWVsc2UgaWYgKHByZXZfc3RhdGUgPT0gTVQ3Nl9UTV9TVEFURV9SWF9G UkFNRVMpDQorCQltdDc5MTVfdG1fc2V0X3J4X2ZyYW1lcyhkZXYsIGZhbHNlKTsNCisJZWxzZSBp ZiAoc3RhdGUgPT0gTVQ3Nl9UTV9TVEFURV9SWF9GUkFNRVMpDQorCQltdDc5MTVfdG1fc2V0X3J4 X2ZyYW1lcyhkZXYsIHRydWUpOw0KIAllbHNlIGlmIChwcmV2X3N0YXRlID09IE1UNzZfVE1fU1RB VEVfT0ZGIHx8IHN0YXRlID09IE1UNzZfVE1fU1RBVEVfT0ZGKQ0KIAkJbXQ3OTE1X3RtX2luaXQo ZGV2KTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KIA0KK3N0YXRpYyBpbnQNCittdDc5MTVfdG1fZHVt cF9zdGF0cyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICptc2cpDQorew0K KwlzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5 MTVfZGV2LCBtdDc2KTsNCisJdm9pZCAqcngsICpyc3NpOw0KKwlpbnQgaTsNCisNCisJcnggPSBu bGFfbmVzdF9zdGFydChtc2csIE1UNzZfVE1fU1RBVFNfQVRUUl9MQVNUX1JYKTsNCisJaWYgKCFy eCkNCisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwlpZiAobmxhX3B1dF9zMzIobXNnLCBNVDc2X1RN X1JYX0FUVFJfRlJFUV9PRkZTRVQsIGRldi0+dGVzdC5sYXN0X2ZyZXFfb2Zmc2V0KSkNCisJCXJl dHVybiAtRU5PTUVNOw0KKw0KKwlyc3NpID0gbmxhX25lc3Rfc3RhcnQobXNnLCBNVDc2X1RNX1JY X0FUVFJfUkNQSSk7DQorCWlmICghcnNzaSkNCisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwlmb3Ig KGkgPSAwOyBpIDwgQVJSQVlfU0laRShkZXYtPnRlc3QubGFzdF9yY3BpKTsgaSsrKQ0KKwkJaWYg KG5sYV9wdXRfdTgobXNnLCBpLCBkZXYtPnRlc3QubGFzdF9yY3BpW2ldKSkNCisJCQlyZXR1cm4g LUVOT01FTTsNCisNCisJbmxhX25lc3RfZW5kKG1zZywgcnNzaSk7DQorDQorCXJzc2kgPSBubGFf bmVzdF9zdGFydChtc2csIE1UNzZfVE1fUlhfQVRUUl9JQl9SU1NJKTsNCisJaWYgKCFyc3NpKQ0K KwkJcmV0dXJuIC1FTk9NRU07DQorDQorCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRldi0+ dGVzdC5sYXN0X2liX3Jzc2kpOyBpKyspDQorCQlpZiAobmxhX3B1dF9zOChtc2csIGksIGRldi0+ dGVzdC5sYXN0X2liX3Jzc2lbaV0pKQ0KKwkJCXJldHVybiAtRU5PTUVNOw0KKw0KKwlubGFfbmVz dF9lbmQobXNnLCByc3NpKTsNCisNCisJcnNzaSA9IG5sYV9uZXN0X3N0YXJ0KG1zZywgTVQ3Nl9U TV9SWF9BVFRSX1dCX1JTU0kpOw0KKwlpZiAoIXJzc2kpDQorCQlyZXR1cm4gLUVOT01FTTsNCisN CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZGV2LT50ZXN0Lmxhc3Rfd2JfcnNzaSk7IGkr KykNCisJCWlmIChubGFfcHV0X3M4KG1zZywgaSwgZGV2LT50ZXN0Lmxhc3Rfd2JfcnNzaVtpXSkp DQorCQkJcmV0dXJuIC1FTk9NRU07DQorDQorCW5sYV9uZXN0X2VuZChtc2csIHJzc2kpOw0KKw0K KwlpZiAobmxhX3B1dF9zMzIobXNnLCBNVDc2X1RNX1JYX0FUVFJfU05SLCBkZXYtPnRlc3QubGFz dF9zbnIpKQ0KKwkJcmV0dXJuIC1FTk9NRU07DQorDQorCW5sYV9uZXN0X2VuZChtc2csIHJ4KTsN CisNCisJcmV0dXJuIDA7DQorfQ0KKw0KIGNvbnN0IHN0cnVjdCBtdDc2X3Rlc3Rtb2RlX29wcyBt dDc5MTVfdGVzdG1vZGVfb3BzID0gew0KIAkuc2V0X3N0YXRlID0gbXQ3OTE1X3RtX3NldF9zdGF0 ZSwNCisJLmR1bXBfc3RhdHMgPSBtdDc5MTVfdG1fZHVtcF9zdGF0cywNCiB9Ow0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3Rlc3Rtb2RlLmgg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS90ZXN0bW9kZS5oDQpp bmRleCAwNGY0YTJjLi5iMzQ0YTY0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv bWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvdGVzdG1vZGUuaA0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvdGVzdG1vZGUuaA0KQEAgLTExLDYgKzExLDE1IEBAIHN0 cnVjdCBtdDc5MTVfdG1fdHJ4IHsNCiAJdTggcnN2Ow0KIH07DQogDQorc3RydWN0IG10NzkxNV90 bV9yeF9maWx0ZXIgew0KKwl1OCBwcm9taXNjdW91czsNCisJdTggcmVwb3J0X2VuOw0KKwl1OCBi YW5kOw0KKwl1OCBfcnN2Ow0KKwlfX2xlMzIgbWFzazsNCisJdTggX3JzdjFbNF07DQorfTsNCisN CiBzdHJ1Y3QgbXQ3OTE1X3RtX2NtZCB7DQogCXU4IHRlc3Rtb2RlX2VuOw0KIAl1OCBwYXJhbV9p ZHg7DQpAQCAtMTgsNiArMjcsNyBAQCBzdHJ1Y3QgbXQ3OTE1X3RtX2NtZCB7DQogCXVuaW9uIHsN CiAJCV9fbGUzMiBkYXRhOw0KIAkJc3RydWN0IG10NzkxNV90bV90cnggdHJ4Ow0KKwkJc3RydWN0 IG10NzkxNV90bV9yeF9maWx0ZXIgZmlsdGVyOw0KIAkJdTggdGVzdFs3Ml07DQogCX0gcGFyYW07 DQogfSBfX3BhY2tlZDsNCkBAIC0zMSw0ICs0MSwyNCBAQCBlbnVtIHsNCiAJVE1fTUFDX1JYX1JY ViwNCiB9Ow0KIA0KKyNkZWZpbmUgUlhfRklMVEVSX1NUQkNfQkNOX0JDX01DCUJJVCgwKQ0KKyNk ZWZpbmUgUlhfRklMVEVSX0ZDU19FUlIJCUJJVCgxKQ0KKyNkZWZpbmUgUlhfRklMVEVSX1BST1RP Q09MX1ZFUlNJT04JQklUKDIpDQorI2RlZmluZSBSWF9GSUxURVJfUFJPQl9SRVEJCUJJVCgzKQ0K KyNkZWZpbmUgUlhfRklMVEVSX01DQVNUCQkJQklUKDQpDQorI2RlZmluZSBSWF9GSUxURVJfQkNB U1QJCQlCSVQoNSkNCisjZGVmaW5lIFJYX0ZJTFRFUl9NQ0FTVF9UQUJMRQkJQklUKDYpDQorI2Rl ZmluZSBSWF9GSUxURVJfQkNfTUNfT01BQ19BMwkJQklUKDcpDQorI2RlZmluZSBSWF9GSUxURVJf QkNfTUNfQlNTSURfQTMJQklUKDgpDQorI2RlZmluZSBSWF9GSUxURVJfQkNfTUNfQlNTSURfQTIJ QklUKDkpDQorI2RlZmluZSBSWF9GSUxURVJfQkNOX0JTU0lECQlCSVQoMTApDQorI2RlZmluZSBS WF9GSUxURVJfQ1RSTF9SU1YJCUJJVCgxMSkNCisjZGVmaW5lIFJYX0ZJTFRFUl9DVFMJCQlCSVQo MTIpDQorI2RlZmluZSBSWF9GSUxURVJfUlRTCQkJQklUKDEzKQ0KKyNkZWZpbmUgUlhfRklMVEVS X0RVUExJQ0FURQkJQklUKDE0KQ0KKyNkZWZpbmUgUlhfRklMVEVSX05PVF9PV05fQlNTSUQJCUJJ VCgxNSkNCisjZGVmaW5lIFJYX0ZJTFRFUl9OT1RfT1dOX1VDQVNUCQlCSVQoMTYpDQorI2RlZmlu ZSBSWF9GSUxURVJfTk9UX09XTl9CVElNCQlCSVQoMTcpDQorI2RlZmluZSBSWF9GSUxURVJfTkRQ QQkJCUJJVCgxOCkNCisNCiAjZW5kaWYNCi0tIA0KMi4xNy4xDQo=