Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp382238ybb; Fri, 10 Apr 2020 01:57:31 -0700 (PDT) X-Google-Smtp-Source: APiQypJj0JTrSMFq8+ErXAnPE88A9JUbKq7DhwPToAGazGaD73j6ZKL6v7Gtwc38JBzU1iL06rgQ X-Received: by 2002:ac8:5384:: with SMTP id x4mr3355703qtp.135.1586509051757; Fri, 10 Apr 2020 01:57:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586509051; cv=none; d=google.com; s=arc-20160816; b=lOBmY2OYrGLARa9wgAf873INyhhigIT/XtLpOMxSiozAMwuGVD61QBvCOWndqMKInH ruPfXTcbgMK7uCXPHAr2ElvUP57OaNZRwCqwB4SjwHVDSYUH/4h8mO1SXhfs3XKLoYoE Xp96poWjlRQRLmYuExEGX4d+j6zp4lFyqFJllP5ese3i/eLHVC5X2q7oTxpcbIjsYCcq 685yNbDGPQ6KLxWCBPLjAPFA0L5XBGSQfPZHIx7DPxdZvR7b3/ARRGCD6EIv3kSGazG0 DUEJO2sVbQqVsGDKzWwi0u0gx4k+g/ALgQIC7FFRAS8JQyh8ZFPd2dBP1zjJfzDrwIk+ G+1Q== 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=4uXn+os1/IcW03uHBuxYiBPsoa/Ch+N0VfEfejS8090=; b=mmAPCtTOo4ztoGLurSsKZRiKRAjK5pHs5ScEiUUcfTYuY5zcRiQd8SVy09xge0MgfH n26qsUIghxI/+rFKvhjtD/ZmYGWX/M8aS2Dj63gztlsQjwhs7KHRdAExDukgYK5pmZV0 PG6WH8keDyoDmoCKjywJN8PEq7JREDU+oA/URuRGnHLzm8p3Z9DoWQgvYig8ugjyqc/Q 5VUbSd43+7KaVk12oGUEAVUqmzakHGD+Mcq1t/HdOtb+JN4c0Jg6o6LAA4sY96VbLAcH 3iz7PpwMgJsJJ0/UQ83zPe4/ZTwCPFzo1ulLrnkhEyi/as/CIiyvkGwkX8m5pVuGzoKo LbEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=DCjKCMEd; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id f1si500344qke.312.2020.04.10.01.57.17; Fri, 10 Apr 2020 01:57:31 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-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=@mediatek.com header.s=dk header.b=DCjKCMEd; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 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 S1726659AbgDJIzP (ORCPT + 99 others); Fri, 10 Apr 2020 04:55:15 -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 S1725926AbgDJIzP (ORCPT ); Fri, 10 Apr 2020 04:55:15 -0400 X-UUID: 668c31f686604c15a79dadee421e453d-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=4uXn+os1/IcW03uHBuxYiBPsoa/Ch+N0VfEfejS8090=; b=DCjKCMEdbGS5JIVS7HicT3+ECkXBKryT1PTMvLzzru2AokhBFhh1+/iWkDgdr4WtW+G0w2ikJuLzCBiVTy+khkac6N1WqW4yRK6Enb7n0tEslF/u6D5mqRXDpa2WMW0F/5JBk1vSTQoy1HYEFtQ7nNlhyTdU9VOL+KAS1hMmJH8=; X-UUID: 668c31f686604c15a79dadee421e453d-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 891930197; Fri, 10 Apr 2020 16:55:05 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs06n2.mediatek.inc (172.21.101.130) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 10 Apr 2020 16:55:03 +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:55:01 +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 11/16] mt76: mt7915: add HE capabilities support for peers Date: Fri, 10 Apr 2020 16:54:48 +0800 Message-ID: <6406514bcda2d5b892b0f60b7c9a5364167a4cca.1586507878.git.ryder.lee@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: 2C357B4ACA4AF42FC0BC0DD59C1E43BA17A869FF4AB368983E3E51F40BADF0612000: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 U2V0IHBlZXIncyBic2ljIEhFIGNhcGFiaWxpdGllcyB0aHJvdWdoIHN0YXJlYy4NCg0KU2lnbmVk LW9mZi1ieTogUnlkZXIgTGVlIDxyeWRlci5sZWVAbWVkaWF0ZWsuY29tPg0KVGVzdGVkLWJ5OiBT aGF5bmUgQ2hlbiA8c2hheW5lLmNoZW5AbWVkaWF0ZWsuY29tPg0KVGVzdGVkLWJ5OiBDaGloLU1p biBDaGVuIDxjaGloLW1pbi5jaGVuQG1lZGlhdGVrLmNvbT4NClRlc3RlZC1ieTogRXZlbHluIFRz YWkgPGV2ZWx5bi50c2FpQG1lZGlhdGVrLmNvbT4NCkFja2VkLWJ5OiBZaXdlaSBDaHVuZyA8eWl3 ZWkuY2h1bmdAbWVkaWF0ZWsuY29tPg0KQWNrZWQtYnk6IFlGIEx1byA8eWYubHVvQG1lZGlhdGVr LmNvbT4NCi0tLQ0KIC4uLi9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMg ICB8IDE5NiArKysrKysrKysrKysrKysrKysNCiAuLi4vbmV0L3dpcmVsZXNzL21lZGlhdGVrL210 NzYvbXQ3OTE1L21jdS5oICAgfCAxMDAgKysrKysrKysrDQogMiBmaWxlcyBjaGFuZ2VkLCAyOTYg aW5zZXJ0aW9ucygrKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0 ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2 L210NzkxNS9tY3UuYw0KaW5kZXggNTQ5ZTE0NjBiMTg0Li43NGNhNjllYzMwMzQgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYw0KKysr IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMNCkBAIC04 NSw2ICs4NSw4IEBAIHN0cnVjdCBtdDc5MTVfZndfcmVnaW9uIHsNCiAjZGVmaW5lIHRvX3djaWRf bG8oaWQpCQkJRklFTERfR0VUKEdFTk1BU0soNywgMCksICh1MTYpaWQpDQogI2RlZmluZSB0b193 Y2lkX2hpKGlkKQkJCUZJRUxEX0dFVChHRU5NQVNLKDksIDgpLCAodTE2KWlkKQ0KIA0KKyNkZWZp bmUgSEVfUEhZKHAsIGMpCQkJdThfZ2V0X2JpdHMoYywgSUVFRTgwMjExX0hFX1BIWV8jI3ApDQor I2RlZmluZSBIRV9NQUMobSwgYykJCQl1OF9nZXRfYml0cyhjLCBJRUVFODAyMTFfSEVfTUFDXyMj bSkNCiAjZGVmaW5lIEhXX1RYX0FNU0RVX01BWF9OVU0JCTgNCiANCiBzdGF0aWMgZW51bSBtdDc5 MTVfY2lwaGVyX3R5cGUNCkBAIC0xMjUwLDYgKzEyNTIsMTg3IEBAIG10NzkxNV9tY3Vfc3RhX2Jh c2ljX3RsdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0K IAliYXNpYy0+cW9zID0gc3RhLT53bWU7DQogfQ0KIA0KK3N0YXRpYyB2b2lkDQorbXQ3OTE1X21j dV9zdGFfaGVfdGx2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpz dGEpDQorew0KKwlzdHJ1Y3QgaWVlZTgwMjExX3N0YV9oZV9jYXAgKmhlX2NhcCA9ICZzdGEtPmhl X2NhcDsNCisJc3RydWN0IGllZWU4MDIxMV9oZV9jYXBfZWxlbSAqZWxlbSA9ICZoZV9jYXAtPmhl X2NhcF9lbGVtOw0KKwlzdHJ1Y3Qgc3RhX3JlY19oZSAqaGU7DQorCXN0cnVjdCB0bHYgKnRsdjsN CisJdTMyIGNhcCA9IDA7DQorDQorCXRsdiA9IG10NzkxNV9tY3VfYWRkX3Rsdihza2IsIFNUQV9S RUNfSEUsIHNpemVvZigqaGUpKTsNCisNCisJaGUgPSAoc3RydWN0IHN0YV9yZWNfaGUgKil0bHY7 DQorDQorCWlmIChlbGVtLT5tYWNfY2FwX2luZm9bMF0gJiBJRUVFODAyMTFfSEVfTUFDX0NBUDBf SFRDX0hFKQ0KKwkJY2FwIHw9IFNUQV9SRUNfSEVfQ0FQX0hUQzsNCisNCisJaWYgKGVsZW0tPm1h Y19jYXBfaW5mb1syXSAmIElFRUU4MDIxMV9IRV9NQUNfQ0FQMl9CU1IpDQorCQljYXAgfD0gU1RB X1JFQ19IRV9DQVBfQlNSOw0KKw0KKwlpZiAoZWxlbS0+bWFjX2NhcF9pbmZvWzNdICYgSUVFRTgw MjExX0hFX01BQ19DQVAzX09NSV9DT05UUk9MKQ0KKwkJY2FwIHw9IFNUQV9SRUNfSEVfQ0FQX09N Ow0KKw0KKwlpZiAoZWxlbS0+bWFjX2NhcF9pbmZvWzRdICYgSUVFRTgwMjExX0hFX01BQ19DQVA0 X0FNRFNVX0lOX0FNUERVKQ0KKwkJY2FwIHw9IFNUQV9SRUNfSEVfQ0FQX0FNU0RVX0lOX0FNUERV Ow0KKw0KKwlpZiAoZWxlbS0+bWFjX2NhcF9pbmZvWzRdICYgSUVFRTgwMjExX0hFX01BQ19DQVA0 X0JRUikNCisJCWNhcCB8PSBTVEFfUkVDX0hFX0NBUF9CUVI7DQorDQorCWlmIChlbGVtLT5waHlf Y2FwX2luZm9bMF0gJg0KKwkgICAgKElFRUU4MDIxMV9IRV9QSFlfQ0FQMF9DSEFOTkVMX1dJRFRI X1NFVF9SVV9NQVBQSU5HX0lOXzJHIHwNCisJICAgICBJRUVFODAyMTFfSEVfUEhZX0NBUDBfQ0hB Tk5FTF9XSURUSF9TRVRfUlVfTUFQUElOR19JTl81RykpDQorCQljYXAgfD0gU1RBX1JFQ19IRV9D QVBfQlcyMF9SVTI0Ml9TVVBQT1JUOw0KKw0KKwlpZiAoZWxlbS0+cGh5X2NhcF9pbmZvWzFdICYN CisJICAgIElFRUU4MDIxMV9IRV9QSFlfQ0FQMV9MRFBDX0NPRElOR19JTl9QQVlMT0FEKQ0KKwkJ Y2FwIHw9IFNUQV9SRUNfSEVfQ0FQX0xEUEM7DQorDQorCWlmIChlbGVtLT5waHlfY2FwX2luZm9b MV0gJg0KKwkgICAgSUVFRTgwMjExX0hFX1BIWV9DQVAxX0hFX0xURl9BTkRfR0lfRk9SX0hFX1BQ RFVTXzBfOFVTKQ0KKwkJY2FwIHw9IFNUQV9SRUNfSEVfQ0FQX1NVX1BQRFVfMUxURl84VVNfR0k7 DQorDQorCWlmIChlbGVtLT5waHlfY2FwX2luZm9bMl0gJg0KKwkgICAgSUVFRTgwMjExX0hFX1BI WV9DQVAyX05EUF80eF9MVEZfQU5EXzNfMlVTKQ0KKwkJY2FwIHw9IFNUQV9SRUNfSEVfQ0FQX05E UF80TFRGXzNET1QyTVNfR0k7DQorDQorCWlmIChlbGVtLT5waHlfY2FwX2luZm9bMl0gJg0KKwkg ICAgSUVFRTgwMjExX0hFX1BIWV9DQVAyX1NUQkNfVFhfVU5ERVJfODBNSFopDQorCQljYXAgfD0g U1RBX1JFQ19IRV9DQVBfTEVfRVFfODBNX1RYX1NUQkM7DQorDQorCWlmIChlbGVtLT5waHlfY2Fw X2luZm9bMl0gJg0KKwkgICAgSUVFRTgwMjExX0hFX1BIWV9DQVAyX1NUQkNfUlhfVU5ERVJfODBN SFopDQorCQljYXAgfD0gU1RBX1JFQ19IRV9DQVBfTEVfRVFfODBNX1JYX1NUQkM7DQorDQorCWlm IChlbGVtLT5waHlfY2FwX2luZm9bNl0gJg0KKwkgICAgSUVFRTgwMjExX0hFX1BIWV9DQVA2X1BB UlRJQUxfQldfRVhUX1JBTkdFKQ0KKwkJY2FwIHw9IFNUQV9SRUNfSEVfQ0FQX1BBUlRJQUxfQldf RVhUX1JBTkdFOw0KKw0KKwlpZiAoZWxlbS0+cGh5X2NhcF9pbmZvWzddICYNCisJICAgIElFRUU4 MDIxMV9IRV9QSFlfQ0FQN19IRV9TVV9NVV9QUERVXzRYTFRGX0FORF8wOF9VU19HSSkNCisJCWNh cCB8PSBTVEFfUkVDX0hFX0NBUF9TVV9NVV9QUERVXzRMVEZfOFVTX0dJOw0KKw0KKwlpZiAoZWxl bS0+cGh5X2NhcF9pbmZvWzddICYNCisJICAgIElFRUU4MDIxMV9IRV9QSFlfQ0FQN19TVEJDX1RY X0FCT1ZFXzgwTUhaKQ0KKwkJY2FwIHw9IFNUQV9SRUNfSEVfQ0FQX0dUXzgwTV9UWF9TVEJDOw0K Kw0KKwlpZiAoZWxlbS0+cGh5X2NhcF9pbmZvWzddICYNCisJICAgIElFRUU4MDIxMV9IRV9QSFlf Q0FQN19TVEJDX1JYX0FCT1ZFXzgwTUhaKQ0KKwkJY2FwIHw9IFNUQV9SRUNfSEVfQ0FQX0dUXzgw TV9SWF9TVEJDOw0KKw0KKwlpZiAoZWxlbS0+cGh5X2NhcF9pbmZvWzhdICYNCisJICAgIElFRUU4 MDIxMV9IRV9QSFlfQ0FQOF9IRV9FUl9TVV9QUERVXzRYTFRGX0FORF8wOF9VU19HSSkNCisJCWNh cCB8PSBTVEFfUkVDX0hFX0NBUF9FUl9TVV9QUERVXzRMVEZfOFVTX0dJOw0KKw0KKwlpZiAoZWxl bS0+cGh5X2NhcF9pbmZvWzhdICYNCisJICAgIElFRUU4MDIxMV9IRV9QSFlfQ0FQOF9IRV9FUl9T VV8xWExURl9BTkRfMDhfVVNfR0kpDQorCQljYXAgfD0gU1RBX1JFQ19IRV9DQVBfRVJfU1VfUFBE VV8xTFRGXzhVU19HSTsNCisNCisJaWYgKGVsZW0tPnBoeV9jYXBfaW5mb1s5XSAmDQorCSAgICBJ RUVFODAyMTFfSEVfUEhZX0NBUDlfTk9OX1RSSUdHRVJFRF9DUUlfRkVFREJBQ0spDQorCQljYXAg fD0gU1RBX1JFQ19IRV9DQVBfVFJJR19DUUlfRks7DQorDQorCWlmIChlbGVtLT5waHlfY2FwX2lu Zm9bOV0gJg0KKwkgICAgSUVFRTgwMjExX0hFX1BIWV9DQVA5X1RYXzEwMjRfUUFNX0xFU1NfVEhB Tl8yNDJfVE9ORV9SVSkNCisJCWNhcCB8PSBTVEFfUkVDX0hFX0NBUF9UWF8xMDI0UUFNX1VOREVS X1JVMjQyOw0KKw0KKwlpZiAoZWxlbS0+cGh5X2NhcF9pbmZvWzldICYNCisJICAgIElFRUU4MDIx MV9IRV9QSFlfQ0FQOV9SWF8xMDI0X1FBTV9MRVNTX1RIQU5fMjQyX1RPTkVfUlUpDQorCQljYXAg fD0gU1RBX1JFQ19IRV9DQVBfUlhfMTAyNFFBTV9VTkRFUl9SVTI0MjsNCisNCisJaGUtPmhlX2Nh cCA9IGNwdV90b19sZTMyKGNhcCk7DQorDQorCXN3aXRjaCAoc3RhLT5iYW5kd2lkdGgpIHsNCisJ Y2FzZSBJRUVFODAyMTFfU1RBX1JYX0JXXzE2MDoNCisJCWlmIChlbGVtLT5waHlfY2FwX2luZm9b MF0gJg0KKwkJICAgIElFRUU4MDIxMV9IRV9QSFlfQ0FQMF9DSEFOTkVMX1dJRFRIX1NFVF84MFBM VVM4MF9NSFpfSU5fNUcpDQorCQkJaGUtPm1heF9uc3NfbWNzW0NNRF9IRV9NQ1NfQlc4MDgwXSA9 DQorCQkJCWhlX2NhcC0+aGVfbWNzX25zc19zdXBwLnJ4X21jc184MHA4MDsNCisNCisJCWhlLT5t YXhfbnNzX21jc1tDTURfSEVfTUNTX0JXMTYwXSA9DQorCQkJCWhlX2NhcC0+aGVfbWNzX25zc19z dXBwLnJ4X21jc18xNjA7DQorCQkvKiBmYWxsIHRocm91Z2ggKi8NCisJZGVmYXVsdDoNCisJCWhl LT5tYXhfbnNzX21jc1tDTURfSEVfTUNTX0JXODBdID0NCisJCQkJaGVfY2FwLT5oZV9tY3NfbnNz X3N1cHAucnhfbWNzXzgwOw0KKwkJYnJlYWs7DQorCX0NCisNCisJaGUtPnRfZnJhbWVfZHVyID0N CisJCUhFX01BQyhDQVAxX1RGX01BQ19QQURfRFVSX01BU0ssIGVsZW0tPm1hY19jYXBfaW5mb1sx XSk7DQorCWhlLT5tYXhfYW1wZHVfZXhwID0NCisJCUhFX01BQyhDQVAzX01BWF9BTVBEVV9MRU5f RVhQX01BU0ssIGVsZW0tPm1hY19jYXBfaW5mb1szXSk7DQorDQorCWhlLT5id19zZXQgPQ0KKwkJ SEVfUEhZKENBUDBfQ0hBTk5FTF9XSURUSF9TRVRfTUFTSywgZWxlbS0+cGh5X2NhcF9pbmZvWzBd KTsNCisJaGUtPmRldmljZV9jbGFzcyA9DQorCQlIRV9QSFkoQ0FQMV9ERVZJQ0VfQ0xBU1NfQSwg ZWxlbS0+cGh5X2NhcF9pbmZvWzFdKTsNCisJaGUtPnB1bmNfcHJlYW1fcnggPQ0KKwkJSEVfUEhZ KENBUDFfUFJFQU1CTEVfUFVOQ19SWF9NQVNLLCBlbGVtLT5waHlfY2FwX2luZm9bMV0pOw0KKw0K KwloZS0+ZGNtX3R4X21vZGUgPQ0KKwkJSEVfUEhZKENBUDNfRENNX01BWF9DT05TVF9UWF9NQVNL LCBlbGVtLT5waHlfY2FwX2luZm9bM10pOw0KKwloZS0+ZGNtX3R4X21heF9uc3MgPQ0KKwkJSEVf UEhZKENBUDNfRENNX01BWF9UWF9OU1NfMiwgZWxlbS0+cGh5X2NhcF9pbmZvWzNdKTsNCisJaGUt PmRjbV9yeF9tb2RlID0NCisJCUhFX1BIWShDQVAzX0RDTV9NQVhfQ09OU1RfUlhfTUFTSywgZWxl bS0+cGh5X2NhcF9pbmZvWzNdKTsNCisJaGUtPmRjbV9yeF9tYXhfbnNzID0NCisJCUhFX1BIWShD QVAzX0RDTV9NQVhfUlhfTlNTXzIsIGVsZW0tPnBoeV9jYXBfaW5mb1szXSk7DQorCWhlLT5kY21f cnhfbWF4X25zcyA9DQorCQlIRV9QSFkoQ0FQOF9EQ01fTUFYX1JVX01BU0ssIGVsZW0tPnBoeV9j YXBfaW5mb1s4XSk7DQorDQorCWhlLT5wa3RfZXh0ID0gMjsNCit9DQorDQorc3RhdGljIHZvaWQN CittdDc5MTVfbWN1X3N0YV9tdXJ1X3RsdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaWVl ZTgwMjExX3N0YSAqc3RhKQ0KK3sNCisJc3RydWN0IGllZWU4MDIxMV9zdGFfaGVfY2FwICpoZV9j YXAgPSAmc3RhLT5oZV9jYXA7DQorCXN0cnVjdCBpZWVlODAyMTFfaGVfY2FwX2VsZW0gKmVsZW0g PSAmaGVfY2FwLT5oZV9jYXBfZWxlbTsNCisJc3RydWN0IHN0YV9yZWNfbXVydSAqbXVydTsNCisJ c3RydWN0IHRsdiAqdGx2Ow0KKw0KKwl0bHYgPSBtdDc5MTVfbWN1X2FkZF90bHYoc2tiLCBTVEFf UkVDX01VUlUsIHNpemVvZigqbXVydSkpOw0KKw0KKwltdXJ1ID0gKHN0cnVjdCBzdGFfcmVjX211 cnUgKil0bHY7DQorCW11cnUtPmNmZy5vZmRtYV9kbF9lbiA9IHRydWU7DQorCW11cnUtPmNmZy5v ZmRtYV91bF9lbiA9IHRydWU7DQorCW11cnUtPmNmZy5taW1vX2RsX2VuID0gdHJ1ZTsNCisJbXVy dS0+Y2ZnLm1pbW9fdWxfZW4gPSB0cnVlOw0KKw0KKwltdXJ1LT5vZmRtYV9kbC5wdW5jX3ByZWFt X3J4ID0NCisJCUhFX1BIWShDQVAxX1BSRUFNQkxFX1BVTkNfUlhfTUFTSywgZWxlbS0+cGh5X2Nh cF9pbmZvWzFdKTsNCisJbXVydS0+b2ZkbWFfZGwuaGVfMjBtX2luXzQwbV8yZyA9DQorCQlIRV9Q SFkoQ0FQOF8yME1IWl9JTl80ME1IWl9IRV9QUERVX0lOXzJHLCBlbGVtLT5waHlfY2FwX2luZm9b OF0pOw0KKwltdXJ1LT5vZmRtYV9kbC5oZV8yMG1faW5fMTYwbSA9DQorCQlIRV9QSFkoQ0FQOF8y ME1IWl9JTl8xNjBNSFpfSEVfUFBEVSwgZWxlbS0+cGh5X2NhcF9pbmZvWzhdKTsNCisJbXVydS0+ b2ZkbWFfZGwuaGVfODBtX2luXzE2MG0gPQ0KKwkJSEVfUEhZKENBUDhfODBNSFpfSU5fMTYwTUha X0hFX1BQRFUsIGVsZW0tPnBoeV9jYXBfaW5mb1s4XSk7DQorCW11cnUtPm9mZG1hX2RsLmx0MTZf c2lnYiA9IDA7DQorCW11cnUtPm9mZG1hX2RsLnJ4X3N1X2NvbXBfc2lnYiA9IDA7DQorCW11cnUt Pm9mZG1hX2RsLnJ4X3N1X25vbl9jb21wX3NpZ2IgPSAwOw0KKw0KKwltdXJ1LT5vZmRtYV91bC50 X2ZyYW1lX2R1ciA9DQorCQlIRV9NQUMoQ0FQMV9URl9NQUNfUEFEX0RVUl9NQVNLLCBlbGVtLT5t YWNfY2FwX2luZm9bMV0pOw0KKwltdXJ1LT5vZmRtYV91bC5tdV9jYXNjYWRpbmcgPQ0KKwkJSEVf TUFDKENBUDJfTVVfQ0FTQ0FESU5HLCBlbGVtLT5tYWNfY2FwX2luZm9bMl0pOw0KKwltdXJ1LT5v ZmRtYV91bC51b19yYSA9DQorCQlIRV9NQUMoQ0FQM19PRkRNQV9SQSwgZWxlbS0+bWFjX2NhcF9p bmZvWzNdKTsNCisJbXVydS0+b2ZkbWFfdWwuaGVfMng5OTZfdG9uZSA9IDA7DQorCW11cnUtPm9m ZG1hX3VsLnJ4X3RfZnJhbWVfMTFhYyA9IDA7DQorDQorCW11cnUtPm1pbW9fZGwudmh0X211X2Jm ZWUgPQ0KKwkJISEoc3RhLT52aHRfY2FwLmNhcCAmIElFRUU4MDIxMV9WSFRfQ0FQX01VX0JFQU1G T1JNRUVfQ0FQQUJMRSk7DQorCW11cnUtPm1pbW9fZGwucGFydGlhbF9id19kbF9taW1vID0NCisJ CUhFX1BIWShDQVA2X1BBUlRJQUxfQkFORFdJRFRIX0RMX01VTUlNTywgZWxlbS0+cGh5X2NhcF9p bmZvWzZdKTsNCisNCisJbXVydS0+bWltb191bC5mdWxsX3VsX21pbW8gPQ0KKwkJSEVfUEhZKENB UDJfVUxfTVVfRlVMTF9NVV9NSU1PLCBlbGVtLT5waHlfY2FwX2luZm9bMl0pOw0KKwltdXJ1LT5t aW1vX3VsLnBhcnRpYWxfdWxfbWltbyA9DQorCQlIRV9QSFkoQ0FQMl9VTF9NVV9QQVJUSUFMX01V X01JTU8sIGVsZW0tPnBoeV9jYXBfaW5mb1syXSk7DQorfQ0KKw0KIHN0YXRpYyB2b2lkDQogbXQ3 OTE1X21jdV9zdGFfdGx2KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpz a2IsDQogCQkgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKQ0KQEAgLTEyOTMsNiArMTQ3Niwx NCBAQCBtdDc5MTVfbWN1X3N0YV90bHYoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3RydWN0IHNr X2J1ZmYgKnNrYiwNCiAJCXZodC0+dmh0X3J4X21jc19tYXAgPSBzdGEtPnZodF9jYXAudmh0X21j cy5yeF9tY3NfbWFwOw0KIAkJdmh0LT52aHRfdHhfbWNzX21hcCA9IHN0YS0+dmh0X2NhcC52aHRf bWNzLnR4X21jc19tYXA7DQogCX0NCisNCisJLyogc3RhcmVjIGhlICovDQorCWlmIChzdGEtPmhl X2NhcC5oYXNfaGUpDQorCQltdDc5MTVfbWN1X3N0YV9oZV90bHYoc2tiLCBzdGEpOw0KKw0KKwkv KiBzdGFyZWMgbXVydSAqLw0KKwlpZiAoc3RhLT5oZV9jYXAuaGFzX2hlIHx8IHN0YS0+dmh0X2Nh cC52aHRfc3VwcG9ydGVkKQ0KKwkJbXQ3OTE1X21jdV9zdGFfbXVydV90bHYoc2tiLCBzdGEpOw0K IH0NCiANCiBzdGF0aWMgdm9pZA0KQEAgLTE0OTQsNiArMTY4NSwxMSBAQCBtdDc5MTVfbWN1X3N0 YV9yYXRlX2N0cmxfdGx2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtdDc5MTVfZGV2ICpk ZXYsDQogCQl9DQogCX0NCiANCisJaWYgKHN0YS0+aGVfY2FwLmhhc19oZSkgew0KKwkJcmEtPnN1 cHBfbW9kZSB8PSBNT0RFX0hFOw0KKwkJY2FwIHw9IFNUQV9DQVBfSEU7DQorCX0NCisNCiAJcmEt PnN0YV9zdGF0dXMgPSBjcHVfdG9fbGUzMihjYXApOw0KIA0KIAlzd2l0Y2ggKEJJVChmbHMocmEt PnN1cHBfbW9kZSkgLSAxKSkgew0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21l ZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsv bXQ3Ni9tdDc5MTUvbWN1LmgNCmluZGV4IGIyZjM3Yjg3MTE3Yy4uNTJiNDIwMjEwOTA4IDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgN CisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oDQpA QCAtNjY5LDYgKzY2OSw3NSBAQCBzdHJ1Y3Qgc3RhX3JlY192aHQgew0KIAl1OCByc3ZbM107DQog fSBfX3BhY2tlZDsNCiANCitzdHJ1Y3Qgc3RhX3JlY19tdXJ1IHsNCisJX19sZTE2IHRhZzsNCisJ X19sZTE2IGxlbjsNCisNCisJc3RydWN0IHsNCisJCWJvb2wgb2ZkbWFfZGxfZW47DQorCQlib29s IG9mZG1hX3VsX2VuOw0KKwkJYm9vbCBtaW1vX2RsX2VuOw0KKwkJYm9vbCBtaW1vX3VsX2VuOw0K KwkJYm9vbCByc3ZbNF07DQorCX0gY2ZnOw0KKw0KKwlzdHJ1Y3Qgew0KKwkJdTggcHVuY19wcmVh bV9yeDsNCisJCWJvb2wgaGVfMjBtX2luXzQwbV8yZzsNCisJCWJvb2wgaGVfMjBtX2luXzE2MG07 DQorCQlib29sIGhlXzgwbV9pbl8xNjBtOw0KKwkJYm9vbCBsdDE2X3NpZ2I7DQorCQlib29sIHJ4 X3N1X2NvbXBfc2lnYjsNCisJCWJvb2wgcnhfc3Vfbm9uX2NvbXBfc2lnYjsNCisJCWJvb2wgcnN2 Ow0KKwl9IG9mZG1hX2RsOw0KKw0KKwlzdHJ1Y3Qgew0KKwkJdTggdF9mcmFtZV9kdXI7DQorCQl1 OCBtdV9jYXNjYWRpbmc7DQorCQl1OCB1b19yYTsNCisJCXU4IGhlXzJ4OTk2X3RvbmU7DQorCQl1 OCByeF90X2ZyYW1lXzExYWM7DQorCQl1OCByc3ZbM107DQorCX0gb2ZkbWFfdWw7DQorDQorCXN0 cnVjdCB7DQorCQlib29sIHZodF9tdV9iZmVlOw0KKwkJYm9vbCBwYXJ0aWFsX2J3X2RsX21pbW87 DQorCQl1OCByc3ZbMl07DQorCX0gbWltb19kbDsNCisNCisJc3RydWN0IHsNCisJCWJvb2wgZnVs bF91bF9taW1vOw0KKwkJYm9vbCBwYXJ0aWFsX3VsX21pbW87DQorCQl1OCByc3ZbMl07DQorCX0g bWltb191bDsNCit9IF9fcGFja2VkOw0KKw0KK3N0cnVjdCBzdGFfcmVjX2hlIHsNCisJX19sZTE2 IHRhZzsNCisJX19sZTE2IGxlbjsNCisNCisJX19sZTMyIGhlX2NhcDsNCisNCisJdTggdF9mcmFt ZV9kdXI7DQorCXU4IG1heF9hbXBkdV9leHA7DQorCXU4IGJ3X3NldDsNCisJdTggZGV2aWNlX2Ns YXNzOw0KKwl1OCBkY21fdHhfbW9kZTsNCisJdTggZGNtX3R4X21heF9uc3M7DQorCXU4IGRjbV9y eF9tb2RlOw0KKwl1OCBkY21fcnhfbWF4X25zczsNCisJdTggZGNtX21heF9ydTsNCisJdTggcHVu Y19wcmVhbV9yeDsNCisJdTggcGt0X2V4dDsNCisJdTggcnN2MTsNCisNCisJX19sZTE2IG1heF9u c3NfbWNzW0NNRF9IRV9NQ1NfQldfTlVNXTsNCisNCisJdTggcnN2MlsyXTsNCit9IF9fcGFja2Vk Ow0KKw0KIHN0cnVjdCBzdGFfcmVjX2JhIHsNCiAJX19sZTE2IHRhZzsNCiAJX19sZTE2IGxlbjsN CkBAIC04MjMsMTAgKzg5MiwxMiBAQCBlbnVtIHsNCiAjZGVmaW5lIE1UNzkxNV9TVEFfVVBEQVRF X01BWF9TSVpFCShzaXplb2Yoc3RydWN0IHN0YV9yZXFfaGRyKSArCVwNCiAJCQkJCSBzaXplb2Yo c3RydWN0IHN0YV9yZWNfYmFzaWMpICsJXA0KIAkJCQkJIHNpemVvZihzdHJ1Y3Qgc3RhX3JlY19o dCkgKwlcDQorCQkJCQkgc2l6ZW9mKHN0cnVjdCBzdGFfcmVjX2hlKSArCVwNCiAJCQkJCSBzaXpl b2Yoc3RydWN0IHN0YV9yZWNfYmEpICsJXA0KIAkJCQkJIHNpemVvZihzdHJ1Y3Qgc3RhX3JlY192 aHQpICsJXA0KIAkJCQkJIHNpemVvZihzdHJ1Y3QgdGx2KSArCQlcDQogCQkJCQkgc2l6ZW9mKHN0 cnVjdCBzdGFfcmVjX2Ftc2R1KSArCVwNCisJCQkJCSBzaXplb2Yoc3RydWN0IHN0YV9yZWNfbXVy dSkgKwlcDQogCQkJCQkgc2l6ZW9mKHN0cnVjdCBzdGFfcmVjX3NlYykgKwlcDQogCQkJCQkgc2l6 ZW9mKHN0cnVjdCBzdGFfcmVjX3JhKSArCVwNCiAJCQkJCSBNVDc5MTVfV1RCTF9VUERBVEVfTUFY X1NJWkUpDQpAQCAtODU0LDYgKzkyNSw3IEBAIGVudW0gew0KICNkZWZpbmUgTU9ERV9PRkRNCQkJ QklUKDEpDQogI2RlZmluZSBNT0RFX0hUCQkJCUJJVCgyKQ0KICNkZWZpbmUgTU9ERV9WSFQJCQlC SVQoMykNCisjZGVmaW5lIE1PREVfSEUJCQkJQklUKDQpDQogDQogI2RlZmluZSBTVEFfQ0FQX1dN TQkJCUJJVCgwKQ0KICNkZWZpbmUgU1RBX0NBUF9TR0lfMjAJCQlCSVQoNCkNCkBAIC04NjgsNSAr OTQwLDMzIEBAIGVudW0gew0KICNkZWZpbmUgU1RBX0NBUF9MRFBDCQkJQklUKDI0KQ0KICNkZWZp bmUgU1RBX0NBUF9IVAkJCUJJVCgyNikNCiAjZGVmaW5lIFNUQV9DQVBfVkhUCQkJQklUKDI3KQ0K KyNkZWZpbmUgU1RBX0NBUF9IRQkJCUJJVCgyOCkNCisNCisvKiBIRSBNQUMgKi8NCisjZGVmaW5l IFNUQV9SRUNfSEVfQ0FQX0hUQwkJCUJJVCgwKQ0KKyNkZWZpbmUgU1RBX1JFQ19IRV9DQVBfQlFS CQkJQklUKDEpDQorI2RlZmluZSBTVEFfUkVDX0hFX0NBUF9CU1IJCQlCSVQoMikNCisjZGVmaW5l IFNUQV9SRUNfSEVfQ0FQX09NCQkJQklUKDMpDQorI2RlZmluZSBTVEFfUkVDX0hFX0NBUF9BTVNE VV9JTl9BTVBEVQkJQklUKDQpDQorLyogSEUgUEhZICovDQorI2RlZmluZSBTVEFfUkVDX0hFX0NB UF9EVUFMX0JBTkQJCUJJVCg1KQ0KKyNkZWZpbmUgU1RBX1JFQ19IRV9DQVBfTERQQwkJCUJJVCg2 KQ0KKyNkZWZpbmUgU1RBX1JFQ19IRV9DQVBfVFJJR19DUUlfRksJCUJJVCg3KQ0KKyNkZWZpbmUg U1RBX1JFQ19IRV9DQVBfUEFSVElBTF9CV19FWFRfUkFOR0UJQklUKDgpDQorLyogU1RCQyAqLw0K KyNkZWZpbmUgU1RBX1JFQ19IRV9DQVBfTEVfRVFfODBNX1RYX1NUQkMJQklUKDkpDQorI2RlZmlu ZSBTVEFfUkVDX0hFX0NBUF9MRV9FUV84ME1fUlhfU1RCQwlCSVQoMTApDQorI2RlZmluZSBTVEFf UkVDX0hFX0NBUF9HVF84ME1fVFhfU1RCQwkJQklUKDExKQ0KKyNkZWZpbmUgU1RBX1JFQ19IRV9D QVBfR1RfODBNX1JYX1NUQkMJCUJJVCgxMikNCisvKiBHSSAqLw0KKyNkZWZpbmUgU1RBX1JFQ19I RV9DQVBfU1VfUFBEVV8xTFRGXzhVU19HSQlCSVQoMTMpDQorI2RlZmluZSBTVEFfUkVDX0hFX0NB UF9TVV9NVV9QUERVXzRMVEZfOFVTX0dJCUJJVCgxNCkNCisjZGVmaW5lIFNUQV9SRUNfSEVfQ0FQ X0VSX1NVX1BQRFVfMUxURl84VVNfR0kJQklUKDE1KQ0KKyNkZWZpbmUgU1RBX1JFQ19IRV9DQVBf RVJfU1VfUFBEVV80TFRGXzhVU19HSQlCSVQoMTYpDQorI2RlZmluZSBTVEFfUkVDX0hFX0NBUF9O RFBfNExURl8zRE9UMk1TX0dJCUJJVCgxNykNCisvKiAyNDIgVE9ORSAqLw0KKyNkZWZpbmUgU1RB X1JFQ19IRV9DQVBfQlcyMF9SVTI0Ml9TVVBQT1JUCUJJVCgxOCkNCisjZGVmaW5lIFNUQV9SRUNf SEVfQ0FQX1RYXzEwMjRRQU1fVU5ERVJfUlUyNDIJQklUKDE5KQ0KKyNkZWZpbmUgU1RBX1JFQ19I RV9DQVBfUlhfMTAyNFFBTV9VTkRFUl9SVTI0MglCSVQoMjApDQogDQogI2VuZGlmDQotLSANCjIu MTguMA0K