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=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, 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 5DFE1C2BB85 for ; Fri, 10 Apr 2020 08:55:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 246FF20787 for ; Fri, 10 Apr 2020 08:55:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="rPJGVeAu" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726646AbgDJIzM (ORCPT ); Fri, 10 Apr 2020 04:55:12 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:15206 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725955AbgDJIzM (ORCPT ); Fri, 10 Apr 2020 04:55:12 -0400 X-UUID: 1d368921b0874139906a07c02d10ccfd-20200410 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=1DSTp/bpP9UbyDQzSr5aF0twBj7E1KmUQ0TlVlgQbFs=; b=rPJGVeAuvRZSebtTruyZ4vj+UVTNiCF/J6zmFAKU4lV8Ju+A414fPIONDjUmZV2d7S5aM2HtEKAuciRERipudg/8P6aiacszv3diuh1RcQZcKuAF4axwCkWHPgbJrZvkmNeNnOkM2xKjPhnCf8jDBOvYA9wVhpvj+e6vie14QbA=; X-UUID: 1d368921b0874139906a07c02d10ccfd-20200410 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 204179446; Fri, 10 Apr 2020 16:55:03 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs06n1.mediatek.inc (172.21.101.129) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 10 Apr 2020 16:54:59 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 10 Apr 2020 16:54:59 +0800 From: Ryder Lee To: Felix Fietkau , Lorenzo Bianconi CC: Shayne Chen , YF Luo , Yiwei Chung , Chih-Min Chen , Evelyn Tsai , Sean Wang , , , Ryder Lee Subject: [PATCH 09/16] mt76: mt7915: register HE capabilities for each interface Date: Fri, 10 Apr 2020 16:54:46 +0800 Message-ID: X-Mailer: git-send-email 2.18.0 In-Reply-To: References: 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 VGhlIGNhcGFiaWxpdGllcyBmb3IgdGhlIEhFIGludGVyZmFjZXMgYXJlIGdlbmVyYXRlZCBmcm9t IHRoZSBjYXBhYmlsaXRpZXMNCnJlcG9ydGVkIGJ5IHRoZSBmaXJtd2FyZS4NCg0KVGhpcyBzaG91 bGQgbW92ZSB0byBjb21tb24gZmlsZSBvbmNlIHdlIGhhdmUgb3RoZXIgSEUgZGV2aWNlcyBzdXBw b3J0Lg0KDQpTaWduZWQtb2ZmLWJ5OiBSeWRlciBMZWUgPHJ5ZGVyLmxlZUBtZWRpYXRlay5jb20+ DQotLS0NCiAuLi4vbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYyAgfCAx OTQgKysrKysrKysrKysrKysrKysrDQogLi4uL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210 NzkxNS9tYWluLmMgIHwgICAxICsNCiAuLi4vbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3 OTE1L21jdS5jICAgfCAgIDkgKw0KIC4uLi9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5 MTUvbWN1LmggICB8ICAgMyArDQogLi4uL3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210 NzkxNS5oICAgIHwgICAyICsNCiAuLi4vbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1 L3BjaS5jICAgfCAgMTMgKysNCiA2IGZpbGVzIGNoYW5nZWQsIDIyMiBpbnNlcnRpb25zKCspDQoN CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9p bml0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMN CmluZGV4IDU5YjNmZmFlNzkxNy4uMTRiZjI0M2Y1MmNlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jDQorKysgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMNCkBAIC0yNDIsNiArMjQyLDE5 OCBAQCBtdDc5MTVfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykNCiAJCWh3LT5t YXhfdHhfZnJhZ21lbnRzID0gNDsNCiB9DQogDQorc3RhdGljIHZvaWQNCittdDc5MTVfZ2VuX3Bw ZV90aHJlc2goc3RydWN0IG10NzkxNV9kZXYgKmRldiwgdTggKmhlX3BwZXQpDQorew0KKwlpbnQg cnUsIG5zcywgbWF4X25zcyA9IDEsIG1heF9ydSA9IDM7DQorCXU4IGJpdCA9IDcsIHJ1X2JpdF9t YXNrID0gMHg3Ow0KKwl1OCBwcGV0MTZfcHBldDhfcnUzX3J1MFtdID0gezB4MWMsIDB4YzcsIDB4 NzF9Ow0KKw0KKwloZV9wcGV0WzBdID0gbWF4X25zcyAmIElFRUU4MDIxMV9QUEVfVEhSRVNfTlNT X01BU0s7DQorCWhlX3BwZXRbMF0gfD0gKHJ1X2JpdF9tYXNrIDw8DQorCQkgICAgICAgSUVFRTgw MjExX1BQRV9USFJFU19SVV9JTkRFWF9CSVRNQVNLX1BPUykgJg0KKwkJCUlFRUU4MDIxMV9QUEVf VEhSRVNfUlVfSU5ERVhfQklUTUFTS19NQVNLOw0KKw0KKwlmb3IgKG5zcyA9IDA7IG5zcyA8PSBt YXhfbnNzOyBuc3MrKykgew0KKwkJZm9yIChydSA9IDA7IHJ1IDwgbWF4X3J1OyBydSsrKSB7DQor CQkJdTggdmFsOw0KKwkJCWludCBpOw0KKw0KKwkJCWlmICghKHJ1X2JpdF9tYXNrICYgQklUKHJ1 KSkpDQorCQkJCWNvbnRpbnVlOw0KKw0KKwkJCXZhbCA9IChwcGV0MTZfcHBldDhfcnUzX3J1MFtu c3NdID4+IChydSAqIDYpKSAmDQorCQkJICAgICAgIDB4M2Y7DQorCQkJdmFsID0gKCh2YWwgPj4g MykgJiAweDcpIHwgKCh2YWwgJiAweDcpIDw8IDMpOw0KKwkJCWZvciAoaSA9IDU7IGkgPj0gMDsg aS0tKSB7DQorCQkJCWhlX3BwZXRbYml0IC8gOF0gfD0NCisJCQkJCSgodmFsID4+IGkpICYgMHgx KSA8PCAoKGJpdCAlIDgpKTsNCisJCQkJYml0Kys7DQorCQkJfQ0KKwkJfQ0KKwl9DQorfQ0KKw0K K3N0YXRpYyBpbnQNCittdDc5MTVfaW5pdF9oZV9jYXBzKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYs IGVudW0gbmw4MDIxMV9iYW5kIGJhbmQsDQorCQkgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9p ZnR5cGVfZGF0YSAqZGF0YSkNCit7DQorCWludCBpLCBpZHggPSAwOw0KKwlpbnQgbnNzID0gaHdl aWdodDgoZGV2LT5waHkuY2hhaW5tYXNrKTsNCisJdTE2IG1jc19tYXAgPSAwOw0KKw0KKwlmb3Ig KGkgPSAwOyBpIDwgODsgaSsrKSB7DQorCQlpZiAoaSA8IG5zcykNCisJCQltY3NfbWFwIHw9IChJ RUVFODAyMTFfSEVfTUNTX1NVUFBPUlRfMF8xMSA8PCAoaSAqIDIpKTsNCisJCWVsc2UNCisJCQlt Y3NfbWFwIHw9IChJRUVFODAyMTFfSEVfTUNTX05PVF9TVVBQT1JURUQgPDwgKGkgKiAyKSk7DQor CX0NCisNCisJZm9yIChpID0gMDsgaSA8IE5VTV9OTDgwMjExX0lGVFlQRVM7IGkrKykgew0KKwkJ c3RydWN0IGllZWU4MDIxMV9zdGFfaGVfY2FwICpoZV9jYXAgPSAmZGF0YVtpZHhdLmhlX2NhcDsN CisJCXN0cnVjdCBpZWVlODAyMTFfaGVfY2FwX2VsZW0gKmhlX2NhcF9lbGVtID0NCisJCQkJJmhl X2NhcC0+aGVfY2FwX2VsZW07DQorCQlzdHJ1Y3QgaWVlZTgwMjExX2hlX21jc19uc3Nfc3VwcCAq aGVfbWNzID0NCisJCQkJJmhlX2NhcC0+aGVfbWNzX25zc19zdXBwOw0KKw0KKwkJc3dpdGNoIChp KSB7DQorCQljYXNlIE5MODAyMTFfSUZUWVBFX1NUQVRJT046DQorCQljYXNlIE5MODAyMTFfSUZU WVBFX0FQOg0KKyNpZmRlZiBDT05GSUdfTUFDODAyMTFfTUVTSA0KKwkJY2FzZSBOTDgwMjExX0lG VFlQRV9NRVNIX1BPSU5UOg0KKyNlbmRpZg0KKwkJCWJyZWFrOw0KKwkJZGVmYXVsdDoNCisJCQlj b250aW51ZTsNCisJCX0NCisNCisJCWRhdGFbaWR4XS50eXBlc19tYXNrID0gQklUKGkpOw0KKwkJ aGVfY2FwLT5oYXNfaGUgPSB0cnVlOw0KKw0KKwkJaGVfY2FwX2VsZW0tPm1hY19jYXBfaW5mb1sw XSA9DQorCQkJSUVFRTgwMjExX0hFX01BQ19DQVAwX0hUQ19IRTsNCisJCWhlX2NhcF9lbGVtLT5t YWNfY2FwX2luZm9bMV0gPQ0KKwkJCUlFRUU4MDIxMV9IRV9NQUNfQ0FQMV9URl9NQUNfUEFEX0RV Ul8wVVMgfA0KKwkJCUlFRUU4MDIxMV9IRV9NQUNfQ0FQMV9NVUxUSV9USURfQUdHX1JYX1FPU18x Ow0KKwkJaGVfY2FwX2VsZW0tPm1hY19jYXBfaW5mb1syXSA9DQorCQkJSUVFRTgwMjExX0hFX01B Q19DQVAyX0JTUjsNCisJCWhlX2NhcF9lbGVtLT5tYWNfY2FwX2luZm9bM10gPQ0KKwkJCUlFRUU4 MDIxMV9IRV9NQUNfQ0FQM19PTUlfQ09OVFJPTCB8DQorCQkJSUVFRTgwMjExX0hFX01BQ19DQVAz X01BWF9BTVBEVV9MRU5fRVhQX1JFU0VSVkVEOw0KKwkJaGVfY2FwX2VsZW0tPm1hY19jYXBfaW5m b1s0XSA9DQorCQkJSUVFRTgwMjExX0hFX01BQ19DQVA0X0FNRFNVX0lOX0FNUERVOw0KKw0KKwkJ aWYgKGJhbmQgPT0gTkw4MDIxMV9CQU5EXzJHSFopDQorCQkJaGVfY2FwX2VsZW0tPnBoeV9jYXBf aW5mb1swXSA9DQorCQkJCUlFRUU4MDIxMV9IRV9QSFlfQ0FQMF9DSEFOTkVMX1dJRFRIX1NFVF80 ME1IWl9JTl8yRzsNCisJCWVsc2UgaWYgKGJhbmQgPT0gTkw4MDIxMV9CQU5EXzVHSFopDQorCQkJ aGVfY2FwX2VsZW0tPnBoeV9jYXBfaW5mb1swXSA9DQorCQkJCUlFRUU4MDIxMV9IRV9QSFlfQ0FQ MF9DSEFOTkVMX1dJRFRIX1NFVF80ME1IWl84ME1IWl9JTl81RyB8DQorCQkJCUlFRUU4MDIxMV9I RV9QSFlfQ0FQMF9DSEFOTkVMX1dJRFRIX1NFVF8xNjBNSFpfSU5fNUcgfA0KKwkJCQlJRUVFODAy MTFfSEVfUEhZX0NBUDBfQ0hBTk5FTF9XSURUSF9TRVRfODBQTFVTODBfTUhaX0lOXzVHOw0KKw0K KwkJaGVfY2FwX2VsZW0tPnBoeV9jYXBfaW5mb1sxXSA9DQorCQkJSUVFRTgwMjExX0hFX1BIWV9D QVAxX0xEUENfQ09ESU5HX0lOX1BBWUxPQUQ7DQorCQloZV9jYXBfZWxlbS0+cGh5X2NhcF9pbmZv WzJdID0NCisJCQlJRUVFODAyMTFfSEVfUEhZX0NBUDJfTkRQXzR4X0xURl9BTkRfM18yVVMgfA0K KwkJCUlFRUU4MDIxMV9IRV9QSFlfQ0FQMl9TVEJDX1RYX1VOREVSXzgwTUhaIHwNCisJCQlJRUVF ODAyMTFfSEVfUEhZX0NBUDJfU1RCQ19SWF9VTkRFUl84ME1IWjsNCisNCisJCS8qIFRPRE86IFR4 QkYgJiBNVSAmIE1FU0ggKi8NCisNCisJCXN3aXRjaCAoaSkgew0KKwkJY2FzZSBOTDgwMjExX0lG VFlQRV9BUDoNCisJCQloZV9jYXBfZWxlbS0+bWFjX2NhcF9pbmZvWzBdIHw9DQorCQkJCUlFRUU4 MDIxMV9IRV9NQUNfQ0FQMF9UV1RfUkVTOw0KKwkJCWhlX2NhcF9lbGVtLT5tYWNfY2FwX2luZm9b NF0gfD0NCisJCQkJSUVFRTgwMjExX0hFX01BQ19DQVA0X0JRUjsNCisJCQloZV9jYXBfZWxlbS0+ cGh5X2NhcF9pbmZvWzNdIHw9DQorCQkJCUlFRUU4MDIxMV9IRV9QSFlfQ0FQM19EQ01fTUFYX0NP TlNUX1RYX1FQU0sgfA0KKwkJCQlJRUVFODAyMTFfSEVfUEhZX0NBUDNfRENNX01BWF9DT05TVF9S WF9RUFNLOw0KKwkJCWhlX2NhcF9lbGVtLT5waHlfY2FwX2luZm9bNl0gfD0NCisJCQkJSUVFRTgw MjExX0hFX1BIWV9DQVA2X1BQRV9USFJFU0hPTERfUFJFU0VOVDsNCisJCQloZV9jYXBfZWxlbS0+ cGh5X2NhcF9pbmZvWzldIHw9DQorCQkJCUlFRUU4MDIxMV9IRV9QSFlfQ0FQOV9SWF8xMDI0X1FB TV9MRVNTX1RIQU5fMjQyX1RPTkVfUlU7DQorCQkJYnJlYWs7DQorCQljYXNlIE5MODAyMTFfSUZU WVBFX1NUQVRJT046DQorCQkJaGVfY2FwX2VsZW0tPm1hY19jYXBfaW5mb1swXSB8PQ0KKwkJCQlJ RUVFODAyMTFfSEVfTUFDX0NBUDBfVFdUX1JFUTsNCisJCQloZV9jYXBfZWxlbS0+bWFjX2NhcF9p bmZvWzNdIHw9DQorCQkJCUlFRUU4MDIxMV9IRV9NQUNfQ0FQM19GTEVYX1RXVF9TQ0hFRDsNCisN CisJCQlpZiAoYmFuZCA9PSBOTDgwMjExX0JBTkRfMkdIWikNCisJCQkJaGVfY2FwX2VsZW0tPnBo eV9jYXBfaW5mb1swXSB8PQ0KKwkJCQkJSUVFRTgwMjExX0hFX1BIWV9DQVAwX0NIQU5ORUxfV0lE VEhfU0VUX1JVX01BUFBJTkdfSU5fMkc7DQorCQkJZWxzZSBpZiAoYmFuZCA9PSBOTDgwMjExX0JB TkRfNUdIWikNCisJCQkJaGVfY2FwX2VsZW0tPnBoeV9jYXBfaW5mb1swXSB8PQ0KKwkJCQkJSUVF RTgwMjExX0hFX1BIWV9DQVAwX0NIQU5ORUxfV0lEVEhfU0VUX1JVX01BUFBJTkdfSU5fNUc7DQor DQorCQkJaGVfY2FwX2VsZW0tPnBoeV9jYXBfaW5mb1sxXSB8PQ0KKwkJCQlJRUVFODAyMTFfSEVf UEhZX0NBUDFfREVWSUNFX0NMQVNTX0E7DQorCQkJaGVfY2FwX2VsZW0tPnBoeV9jYXBfaW5mb1s4 XSB8PQ0KKwkJCQlJRUVFODAyMTFfSEVfUEhZX0NBUDhfMjBNSFpfSU5fNDBNSFpfSEVfUFBEVV9J Tl8yRyB8DQorCQkJCUlFRUU4MDIxMV9IRV9QSFlfQ0FQOF8yME1IWl9JTl8xNjBNSFpfSEVfUFBE VSB8DQorCQkJCUlFRUU4MDIxMV9IRV9QSFlfQ0FQOF84ME1IWl9JTl8xNjBNSFpfSEVfUFBEVTsN CisJCQloZV9jYXBfZWxlbS0+cGh5X2NhcF9pbmZvWzldIHw9DQorCQkJCUlFRUU4MDIxMV9IRV9Q SFlfQ0FQOV9UWF8xMDI0X1FBTV9MRVNTX1RIQU5fMjQyX1RPTkVfUlU7DQorCQkJYnJlYWs7DQor I2lmZGVmIENPTkZJR19NQUM4MDIxMV9NRVNIDQorCQljYXNlIE5MODAyMTFfSUZUWVBFX01FU0hf UE9JTlQ6DQorCQkJYnJlYWs7DQorI2VuZGlmDQorCQl9DQorDQorCQloZV9tY3MtPnJ4X21jc184 MCA9IGNwdV90b19sZTE2KG1jc19tYXApOw0KKwkJaGVfbWNzLT50eF9tY3NfODAgPSBjcHVfdG9f bGUxNihtY3NfbWFwKTsNCisNCisJCS8qIERCREMgbW9kZSAqLw0KKwkJaWYgKGRldi0+Y2hhaW5t YXNrICE9IGRldi0+cGh5LmNoYWlubWFzaykNCisJCQltY3NfbWFwID0gR0VOTUFTSygxNSwgMCk7 DQorDQorCQloZV9tY3MtPnJ4X21jc18xNjAgPSBjcHVfdG9fbGUxNihtY3NfbWFwKTsNCisJCWhl X21jcy0+dHhfbWNzXzE2MCA9IGNwdV90b19sZTE2KG1jc19tYXApOw0KKwkJaGVfbWNzLT5yeF9t Y3NfODBwODAgPSBjcHVfdG9fbGUxNihtY3NfbWFwKTsNCisJCWhlX21jcy0+dHhfbWNzXzgwcDgw ID0gY3B1X3RvX2xlMTYobWNzX21hcCk7DQorDQorCQlpZiAoaGVfY2FwX2VsZW0tPnBoeV9jYXBf aW5mb1s2XSAmDQorCQkgICAgSUVFRTgwMjExX0hFX1BIWV9DQVA2X1BQRV9USFJFU0hPTERfUFJF U0VOVCkgew0KKwkJCW10NzkxNV9nZW5fcHBlX3RocmVzaChkZXYsIGhlX2NhcC0+cHBlX3RocmVz KTsNCisJCX0gZWxzZSB7DQorCQkJaGVfY2FwX2VsZW0tPnBoeV9jYXBfaW5mb1s5XSB8PQ0KKwkJ CQlJRUVFODAyMTFfSEVfUEhZX0NBUDlfTk9NSU1BTF9QS1RfUEFERElOR18xNlVTOw0KKwkJfQ0K KwkJaWR4Kys7DQorCX0NCisNCisJcmV0dXJuIGlkeDsNCit9DQorDQordm9pZCBtdDc5MTVfc2V0 X3N0cmVhbV9oZV9jYXBzKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpDQorew0KKwlzdHJ1Y3QgaWVl ZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhICpkYXRhOw0KKwlzdHJ1Y3QgaWVlZTgwMjExX3N1cHBv cnRlZF9iYW5kICpiYW5kOw0KKwlzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSAmZGV2LT5tdDc2Ow0K KwlpbnQgbjsNCisNCisJaWYgKG1kZXYtPmNhcC5oYXNfMmdoeikgew0KKwkJZGF0YSA9IGRldi0+ aWZ0eXBlW05MODAyMTFfQkFORF8yR0haXTsNCisJCW4gPSBtdDc5MTVfaW5pdF9oZV9jYXBzKGRl diwgTkw4MDIxMV9CQU5EXzJHSFosIGRhdGEpOw0KKw0KKwkJYmFuZCA9ICZtZGV2LT5waHkuc2Jh bmRfMmcuc2JhbmQ7DQorCQliYW5kLT5pZnR5cGVfZGF0YSA9IGRhdGE7DQorCQliYW5kLT5uX2lm dHlwZV9kYXRhID0gbjsNCisJfQ0KKw0KKwlpZiAobWRldi0+Y2FwLmhhc181Z2h6KSB7DQorCQlk YXRhID0gZGV2LT5pZnR5cGVbTkw4MDIxMV9CQU5EXzVHSFpdOw0KKwkJbiA9IG10NzkxNV9pbml0 X2hlX2NhcHMoZGV2LCBOTDgwMjExX0JBTkRfNUdIWiwgZGF0YSk7DQorDQorCQliYW5kID0gJm1k ZXYtPnBoeS5zYmFuZF81Zy5zYmFuZDsNCisJCWJhbmQtPmlmdHlwZV9kYXRhID0gZGF0YTsNCisJ CWJhbmQtPm5faWZ0eXBlX2RhdGEgPSBuOw0KKwl9DQorfQ0KKw0KIHN0YXRpYyB2b2lkDQogbXQ3 OTE1X2NhcF9kYmRjX2VuYWJsZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KQ0KIHsNCkBAIC0yNTks NiArNDUxLDcgQEAgbXQ3OTE1X2NhcF9kYmRjX2VuYWJsZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2 KQ0KIAlkZXYtPm1waHkuaHctPndpcGh5LT5hdmFpbGFibGVfYW50ZW5uYXNfdHggPSBkZXYtPnBo eS5jaGFpbm1hc2s7DQogDQogCW10NzZfc2V0X3N0cmVhbV9jYXBzKCZkZXYtPm10NzYsIHRydWUp Ow0KKwltdDc5MTVfc2V0X3N0cmVhbV9oZV9jYXBzKGRldik7DQogfQ0KIA0KIHN0YXRpYyB2b2lk DQpAQCAtMjc0LDYgKzQ2Nyw3IEBAIG10NzkxNV9jYXBfZGJkY19kaXNhYmxlKHN0cnVjdCBtdDc5 MTVfZGV2ICpkZXYpDQogCWRldi0+bXBoeS5ody0+d2lwaHktPmF2YWlsYWJsZV9hbnRlbm5hc190 eCA9IGRldi0+Y2hhaW5tYXNrOw0KIA0KIAltdDc2X3NldF9zdHJlYW1fY2FwcygmZGV2LT5tdDc2 LCB0cnVlKTsNCisJbXQ3OTE1X3NldF9zdHJlYW1faGVfY2FwcyhkZXYpOw0KIH0NCiANCiBpbnQg bXQ3OTE1X3JlZ2lzdGVyX2V4dF9waHkoc3RydWN0IG10NzkxNV9kZXYgKmRldikNCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMgYi9k cml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMNCmluZGV4IDdi Zjk5ZTE0OGQwMi4uNzhlNzkyYWQ3ODJlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMNCkBAIC02OTMsNiArNjkzLDcgQEAgbXQ3OTE1 X3NldF9hbnRlbm5hKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB1MzIgdHhfYW50LCB1MzIgcnhf YW50KQ0KIAlwaHktPmNoYWlubWFzayA9IHR4X2FudDsNCiANCiAJbXQ3Nl9zZXRfc3RyZWFtX2Nh cHMoJmRldi0+bXQ3NiwgdHJ1ZSk7DQorCW10NzkxNV9zZXRfc3RyZWFtX2hlX2NhcHMoZGV2KTsN CiANCiAJbXV0ZXhfdW5sb2NrKCZkZXYtPm10NzYubXV0ZXgpOw0KIA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jIGIvZHJpdmVycy9u ZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMNCmluZGV4IDVlNzBmN2YyNGZi Ny4uM2NjN2I5MjM0ZTlkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0 ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVr L210NzYvbXQ3OTE1L21jdS5jDQpAQCAtMTM5LDExICsxMzksMTMgQEAgbXQ3OTE1X2dldF9waHlf bW9kZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0K IHsNCiAJc3RydWN0IGllZWU4MDIxMV9zdGFfaHRfY2FwICpodF9jYXA7DQogCXN0cnVjdCBpZWVl ODAyMTFfc3RhX3ZodF9jYXAgKnZodF9jYXA7DQorCWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfc3Rh X2hlX2NhcCAqaGVfY2FwOw0KIAl1OCBtb2RlID0gMDsNCiANCiAJaWYgKHN0YSkgew0KIAkJaHRf Y2FwID0gJnN0YS0+aHRfY2FwOw0KIAkJdmh0X2NhcCA9ICZzdGEtPnZodF9jYXA7DQorCQloZV9j YXAgPSAmc3RhLT5oZV9jYXA7DQogCX0gZWxzZSB7DQogCQlzdHJ1Y3QgaWVlZTgwMjExX3N1cHBv cnRlZF9iYW5kICpzYmFuZDsNCiANCkBAIC0xNTQsNiArMTU2LDcgQEAgbXQ3OTE1X2dldF9waHlf bW9kZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0K IA0KIAkJaHRfY2FwID0gJnNiYW5kLT5odF9jYXA7DQogCQl2aHRfY2FwID0gJnNiYW5kLT52aHRf Y2FwOw0KKwkJaGVfY2FwID0gaWVlZTgwMjExX2dldF9oZV9pZnR5cGVfY2FwKHNiYW5kLCB2aWYt PnR5cGUpOw0KIAl9DQogDQogCWlmIChiYW5kID09IE5MODAyMTFfQkFORF8yR0haKSB7DQpAQCAt MTYxLDYgKzE2NCw5IEBAIG10NzkxNV9nZXRfcGh5X21vZGUoc3RydWN0IG10NzkxNV9kZXYgKmRl diwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwNCiANCiAJCWlmIChodF9jYXAtPmh0X3N1cHBv cnRlZCkNCiAJCQltb2RlIHw9IFBIWV9NT0RFX0dOOw0KKw0KKwkJaWYgKGhlX2NhcC0+aGFzX2hl KQ0KKwkJCW1vZGUgfD0gUEhZX01PREVfQVhfMjRHOw0KIAl9IGVsc2UgaWYgKGJhbmQgPT0gTkw4 MDIxMV9CQU5EXzVHSFopIHsNCiAJCW1vZGUgfD0gUEhZX01PREVfQTsNCiANCkBAIC0xNjksNiAr MTc1LDkgQEAgbXQ3OTE1X2dldF9waHlfbW9kZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1 Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KIA0KIAkJaWYgKHZodF9jYXAtPnZodF9zdXBwb3J0ZWQp DQogCQkJbW9kZSB8PSBQSFlfTU9ERV9BQzsNCisNCisJCWlmIChoZV9jYXAtPmhhc19oZSkNCisJ CQltb2RlIHw9IFBIWV9NT0RFX0FYXzVHOw0KIAl9DQogDQogCXJldHVybiBtb2RlOw0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgNCmluZGV4IDg2 N2NhYjdjZjE0NS4uMDU2M2U5MzIxMTc1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNz L21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oDQpAQCAtODM1LDYgKzgzNSw5IEBAIGVudW0gew0K ICNkZWZpbmUgUEhZX01PREVfR04JCQlCSVQoMykNCiAjZGVmaW5lIFBIWV9NT0RFX0FOCQkJQklU KDQpDQogI2RlZmluZSBQSFlfTU9ERV9BQwkJCUJJVCg1KQ0KKyNkZWZpbmUgUEhZX01PREVfQVhf MjRHCQkJQklUKDYpDQorI2RlZmluZSBQSFlfTU9ERV9BWF81RwkJCUJJVCg3KQ0KKyNkZWZpbmUg UEhZX01PREVfQVhfNkcJCQlCSVQoOCkNCiANCiAjZGVmaW5lIE1PREVfQ0NLCQkJQklUKDApDQog I2RlZmluZSBNT0RFX09GRE0JCQlCSVQoMSkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJl bGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNz L21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oDQppbmRleCA3ZjU2OWE3YTBjOWIuLjY5NDUx OTgzNjAxNCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYv bXQ3OTE1L210NzkxNS5oDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2 L210NzkxNS9tdDc5MTUuaA0KQEAgLTE2Myw2ICsxNjMsNyBAQCBzdHJ1Y3QgbXQ3OTE1X2RldiB7 DQogCXNwaW5sb2NrX3QgdG9rZW5fbG9jazsNCiAJc3RydWN0IGlkciB0b2tlbjsNCiANCisJc3Ry dWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqKmlmdHlwZTsNCiAJczggKipyYXRlX3Bv d2VyOyAvKiBUT0RPOiB1c2UgbXQ3Nl9yYXRlX3Bvd2VyICovDQogDQogCXU4IG1hY193b3JrX2Nv dW50Ow0KQEAgLTQ0Myw2ICs0NDQsNyBAQCB2b2lkIG10NzkxNV90eHBfc2tiX3VubWFwKHN0cnVj dCBtdDc2X2RldiAqZGV2LA0KIAkJCSAgc3RydWN0IG10NzZfdHh3aV9jYWNoZSAqdHh3aSk7DQog aW50IG10NzZfZGZzX3N0YXJ0X3JkZChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBib29sIGZvcmNl KTsNCiBpbnQgbXQ3OTE1X2Rmc19pbml0X3JhZGFyX2RldGVjdG9yKHN0cnVjdCBtdDc5MTVfcGh5 ICpwaHkpOw0KK3ZvaWQgbXQ3OTE1X3NldF9zdHJlYW1faGVfY2FwcyhzdHJ1Y3QgbXQ3OTE1X2Rl diAqZGV2KTsNCiB2b2lkIG10NzkxNV91cGRhdGVfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9kZXYgKm1k ZXYpOw0KIGludCBtdDc5MTVfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpOw0K IA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1 L3BjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMN CmluZGV4IDc1ZjcyYWUxMDRkYi4uMTA5ZTY3YjVlMjY1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMNCisrKyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jDQpAQCAtODIsNiArODIsNyBAQCBz dGF0aWMgaW50DQogbXQ3OTE1X2FsbG9jX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3Ry dWN0IG10NzkxNV9kZXYgKmRldikNCiB7DQogI2RlZmluZSBOVU1fQkFORFMJMg0KKwlzdHJ1Y3Qg aWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhICoqaWZ0eXBlOw0KIAlpbnQgaTsNCiAJczggKipz a3U7DQogDQpAQCAtOTcsNiArOTgsMTggQEAgbXQ3OTE1X2FsbG9jX2RldmljZShzdHJ1Y3QgcGNp X2RldiAqcGRldiwgc3RydWN0IG10NzkxNV9kZXYgKmRldikNCiAJfQ0KIAlkZXYtPnJhdGVfcG93 ZXIgPSBza3U7DQogDQorCWlmdHlwZSA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBOVU1fQkFO RFMgKiBzaXplb2YoKmlmdHlwZSksDQorCQkJICAgICAgR0ZQX0tFUk5FTCk7DQorCWlmICghaWZ0 eXBlKQ0KKwkJcmV0dXJuIC1FTk9NRU07DQorDQorCWZvciAoaSA9IDA7IGkgPCBOVU1fQkFORFM7 IGkrKykgew0KKwkJaWZ0eXBlW2ldID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIE5VTV9OTDgw MjExX0lGVFlQRVMgKg0KKwkJCQkJIHNpemVvZigqKmlmdHlwZSksIEdGUF9LRVJORUwpOw0KKwkJ aWYgKCFpZnR5cGVbaV0pDQorCQkJcmV0dXJuIC1FTk9NRU07DQorCX0NCisJZGV2LT5pZnR5cGUg PSBpZnR5cGU7DQogDQogCXJldHVybiAwOw0KIH0NCi0tIA0KMi4xOC4wDQo=