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 AD1F2C2BBC7 for ; Fri, 10 Apr 2020 08:55:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7D3EC20787 for ; Fri, 10 Apr 2020 08:55:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="E4tv8e/z" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726666AbgDJIzR (ORCPT ); Fri, 10 Apr 2020 04:55:17 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:38438 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725914AbgDJIzP (ORCPT ); Fri, 10 Apr 2020 04:55:15 -0400 X-UUID: 2ff0f16dae874862843205e72038330a-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=wAVt/81gWaHIbeEuspL3jMUs5niosskYbukxmEFZMmc=; b=E4tv8e/zUKik1b9KVuXyfkoHXK3vI88FgbSTffEawJzRcyemXWuvnW8TLAH4iIkD//tYi7c2Z06uMey2sCywTX1rtPNAP3n4yYz2rjuyO+24sDFkSihOH/Rsf4AazbvZ2APucidnal1BWbPEaObc9gryeDIF21q+X0uk1anzW+0=; X-UUID: 2ff0f16dae874862843205e72038330a-20200410 Received: from mtkcas07.mediatek.inc [(172.21.101.84)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 433397289; Fri, 10 Apr 2020 16:55:08 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 10 Apr 2020 16:55:04 +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:05 +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 15/16] mt76: mt7915: set peer Tx fixed rate through debugfs Date: Fri, 10 Apr 2020 16:54:52 +0800 Message-ID: <704677800dd2aa4334b1a4d17bc9af11320a7504.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-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 RHJpdmVyIGNhbiBtYW51YWxseSBzZXQgZml4ZWQgcmF0ZSBmb3IgZWFjaCBwZWVyIHRocm91Z2gg ZGVidWdmcy4NCg0KTWF5IHVzZSAuc2V0X2JpdHJhdGVfbWFzayBjYWxsYmFjayBhbmQgaXRlcmF0 ZSBzdGF0aW9ucyB1bmRlciB0aGUNCmN1cnJlbnQgdmlmIHRvIGFjaGlldmUgdGhlIGFpbSBvbmNl IGl0IHN1cHBvcnRzIEhFIHJhdGUuDQoNClNpZ25lZC1vZmYtYnk6IFJ5ZGVyIExlZSA8cnlkZXIu bGVlQG1lZGlhdGVrLmNvbT4NClNpZ25lZC1vZmYtYnk6IFNoYXluZSBDaGVuIDxzaGF5bmUuY2hl bkBtZWRpYXRlay5jb20+DQotLS0NCiAuLi4vd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUv ZGVidWdmcy5jICAgfCAxMyArKysrKysNCiAuLi4vbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYv bXQ3OTE1L21jdS5jICAgfCA0NiArKysrKysrKysrKysrKysrKysrDQogLi4uL25ldC93aXJlbGVz cy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaCAgIHwgMjggKysrKysrKysrKysNCiAuLi4vd2ly ZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmggICAgfCAgMiArDQogNCBmaWxlcyBj aGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJl bGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9tZWRpYXRlay9tdDc2L210NzkxNS9kZWJ1Z2ZzLmMNCmluZGV4IDI3ZjUyM2Q2OTYxOC4uMTgx ZjQyZmNkZWRhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3 Ni9tdDc5MTUvZGVidWdmcy5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9t dDc2L210NzkxNS9kZWJ1Z2ZzLmMNCkBAIC0zMDIsNiArMzAyLDE4IEBAIGludCBtdDc5MTVfaW5p dF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpDQogDQogLyoqIHBlci1zdGF0aW9uIGRl YnVnZnMgKiovDQogDQorLyogdXNhZ2U6IDx0eCBtb2RlPiA8bGRwYz4gPHN0YmM+IDxidz4gPGdp PiA8bnNzPiA8bWNzPiAqLw0KK3N0YXRpYyBpbnQgbXQ3OTE1X3N0YV9maXhlZF9yYXRlX3NldCh2 b2lkICpkYXRhLCB1NjQgcmF0ZSkNCit7DQorCXN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEgPSBk YXRhOw0KKwlzdHJ1Y3QgbXQ3OTE1X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTE1X3N0YSAqKXN0 YS0+ZHJ2X3ByaXY7DQorDQorCXJldHVybiBtdDc5MTVfbWN1X3NldF9maXhlZF9yYXRlKG1zdGEt PnZpZi0+ZGV2LCBzdGEsIHJhdGUpOw0KK30NCisNCitERUZJTkVfREVCVUdGU19BVFRSSUJVVEUo Zm9wc19maXhlZF9yYXRlLCBOVUxMLA0KKwkJCSBtdDc5MTVfc3RhX2ZpeGVkX3JhdGVfc2V0LCAi JWxseFxuIik7DQorDQogc3RhdGljIGludA0KIG10NzkxNV9zdGFfc3RhdHNfcmVhZChzdHJ1Y3Qg c2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpDQogew0KQEAgLTM2Miw1ICszNzQsNiBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzX3N0YV9zdGF0cyA9IHsNCiB2b2lkIG10 NzkxNV9zdGFfYWRkX2RlYnVnZnMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVl ODAyMTFfdmlmICp2aWYsDQogCQkJICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHN0cnVj dCBkZW50cnkgKmRpcikNCiB7DQorCWRlYnVnZnNfY3JlYXRlX2ZpbGUoImZpeGVkX3JhdGUiLCAw NjAwLCBkaXIsIHN0YSwgJmZvcHNfZml4ZWRfcmF0ZSk7DQogCWRlYnVnZnNfY3JlYXRlX2ZpbGUo InN0YXRzIiwgMDQwMCwgZGlyLCBzdGEsICZmb3BzX3N0YV9zdGF0cyk7DQogfQ0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jIGIvZHJp dmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMNCmluZGV4IDc0Y2E2 OWVjMzAzNC4uYjgwY2M1ZTI0NDhmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv bWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21l ZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jDQpAQCAtMTc3NCw2ICsxNzc0LDUyIEBAIGludCBtdDc5 MTVfbWN1X2FkZF9zdGEoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92 aWYgKnZpZiwNCiAJcmV0dXJuIDA7DQogfQ0KIA0KK2ludCBtdDc5MTVfbWN1X3NldF9maXhlZF9y YXRlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsDQorCQkJICAgICAgc3RydWN0IGllZWU4MDIxMV9z dGEgKnN0YSwgdTMyIHJhdGUpDQorew0KKwlzdHJ1Y3QgbXQ3OTE1X3N0YSAqbXN0YSA9IChzdHJ1 Y3QgbXQ3OTE1X3N0YSAqKXN0YS0+ZHJ2X3ByaXY7DQorCXN0cnVjdCBtdDc5MTVfdmlmICptdmlm ID0gbXN0YS0+dmlmOw0KKwlzdHJ1Y3Qgc3RhX3JlY19yYV9maXhlZCAqcmE7DQorCXN0cnVjdCBz a19idWZmICpza2I7DQorCXN0cnVjdCB0bHYgKnRsdjsNCisNCisJc2tiID0gbXQ3OTE1X21jdV9h bGxvY19zdGFfcmVxKGRldiwgbXZpZiwgbXN0YSwNCisJCQkJICAgICAgIE1UNzkxNV9TVEFfVVBE QVRFX01BWF9TSVpFKTsNCisJaWYgKElTX0VSUihza2IpKQ0KKwkJcmV0dXJuIFBUUl9FUlIoc2ti KTsNCisNCisJdGx2ID0gbXQ3OTE1X21jdV9hZGRfdGx2KHNrYiwgU1RBX1JFQ19SQV9VUERBVEUs IHNpemVvZigqcmEpKTsNCisJcmEgPSAoc3RydWN0IHN0YV9yZWNfcmFfZml4ZWQgKil0bHY7DQor DQorCWlmICghcmF0ZSkgew0KKwkJcmEtPmZpZWxkID0gY3B1X3RvX2xlMzIoUkFURV9QQVJBTV9B VVRPKTsNCisJCWdvdG8gb3V0Ow0KKwl9IGVsc2Ugew0KKwkJcmEtPmZpZWxkID0gY3B1X3RvX2xl MzIoUkFURV9QQVJBTV9GSVhFRCk7DQorCX0NCisNCisJcmEtPnBoeS50eXBlID0gRklFTERfR0VU KFJBVEVfQ0ZHX1BIWV9UWVBFLCByYXRlKTsNCisJcmEtPnBoeS5idyA9IEZJRUxEX0dFVChSQVRF X0NGR19CVywgcmF0ZSk7DQorCXJhLT5waHkubnNzID0gRklFTERfR0VUKFJBVEVfQ0ZHX05TUywg cmF0ZSk7DQorCXJhLT5waHkubWNzID0gRklFTERfR0VUKFJBVEVfQ0ZHX01DUywgcmF0ZSk7DQor CXJhLT5waHkuc3RiYyA9IEZJRUxEX0dFVChSQVRFX0NGR19TVEJDLCByYXRlKTsNCisNCisJaWYg KHJhLT5waHkuYncpDQorCQlyYS0+cGh5LmxkcGMgPSA3Ow0KKwllbHNlDQorCQlyYS0+cGh5Lmxk cGMgPSBGSUVMRF9HRVQoUkFURV9DRkdfTERQQywgcmF0ZSkgKiA3Ow0KKw0KKwkvKiBIVC9WSFQg LSBTR0k6IDEsIExHSTogMDsgSEUgLSBTR0k6IDAsIE1HSTogMSwgTEdJOiAyICovDQorCWlmIChy YS0+cGh5LnR5cGUgPiBNVF9QSFlfVFlQRV9WSFQpDQorCQlyYS0+cGh5LnNnaSA9IHJhLT5waHku bWNzICogODU7DQorCWVsc2UNCisJCXJhLT5waHkuc2dpID0gcmEtPnBoeS5tY3MgKiAxNTsNCisN CitvdXQ6DQorCXJldHVybiBfX210NzZfbWN1X3NrYl9zZW5kX21zZygmZGV2LT5tdDc2LCBza2Is DQorCQkJCSAgICAgICBNQ1VfRVhUX0NNRF9TVEFfUkVDX1VQREFURSwgdHJ1ZSk7DQorfQ0KKw0K IGludCBtdDc5MTVfbWN1X2FkZF9kZXZfaW5mbyhzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LA0KIAkJ CSAgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBib29sIGVuYWJsZSkNCiB7DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmggYi9k cml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaA0KaW5kZXggNTJi NDIwMjEwOTA4Li4yYjI3MDg4MjhjMWEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVz cy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaA0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv bWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgNCkBAIC04MjMsNiArODIzLDM0IEBAIHN0cnVjdCBz dGFfcmVjX3JhIHsNCiAJc3RydWN0IHJhX3BoeSBwaHk7DQogfSBfX3BhY2tlZDsNCiANCitzdHJ1 Y3Qgc3RhX3JlY19yYV9maXhlZCB7DQorCV9fbGUxNiB0YWc7DQorCV9fbGUxNiBsZW47DQorDQor CV9fbGUzMiBmaWVsZDsNCisJdTggb3BfbW9kZTsNCisJdTggb3Bfdmh0X2NoYW5fd2lkdGg7DQor CXU4IG9wX3ZodF9yeF9uc3M7DQorCXU4IG9wX3ZodF9yeF9uc3NfdHlwZTsNCisNCisJc3RydWN0 IHJhX3BoeSBwaHk7DQorDQorCXU4IHNwZV9lbjsNCisJdTggc2hvcnRfcHJlYW1ibGU7DQorCXU4 IGlzXzVnOw0KKwl1OCBtbXBzX21vZGU7DQorfSBfX3BhY2tlZDsNCisNCisjZGVmaW5lIFJBVEVf UEFSQU1fRklYRUQJCTMNCisjZGVmaW5lIFJBVEVfUEFSQU1fQVVUTwkJCTIwDQorI2RlZmluZSBS QVRFX0NGR19NQ1MJCQlHRU5NQVNLKDMsIDApDQorI2RlZmluZSBSQVRFX0NGR19OU1MJCQlHRU5N QVNLKDcsIDQpDQorI2RlZmluZSBSQVRFX0NGR19HSQkJCUdFTk1BU0soMTEsIDgpDQorI2RlZmlu ZSBSQVRFX0NGR19CVwkJCUdFTk1BU0soMTUsIDEyKQ0KKyNkZWZpbmUgUkFURV9DRkdfU1RCQwkJ CUdFTk1BU0soMTksIDE2KQ0KKyNkZWZpbmUgUkFURV9DRkdfTERQQwkJCUdFTk1BU0soMjMsIDIw KQ0KKyNkZWZpbmUgUkFURV9DRkdfUEhZX1RZUEUJCUdFTk1BU0soMjcsIDI0KQ0KKw0KIGVudW0g ew0KIAlTVEFfUkVDX0JBU0lDLA0KIAlTVEFfUkVDX1JBLA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgNCmluZGV4IGFlMzg2NmQwYTQ3 YS4uYzkwMTVmYTI1MTU2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0 ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlh dGVrL210NzYvbXQ3OTE1L210NzkxNS5oDQpAQCAtMzAyLDYgKzMwMiw4IEBAIGludCBtdDc5MTVf bWN1X2FkZF9zbXBzKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlm ICp2aWYsDQogCQkJc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSk7DQogaW50IG10NzkxNV9tY3Vf c2V0X2NoYW5faW5mbyhzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5LCBpbnQgY21kKTsNCiBpbnQgbXQ3 OTE1X21jdV9zZXRfdHgoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92 aWYgKnZpZik7DQoraW50IG10NzkxNV9tY3Vfc2V0X2ZpeGVkX3JhdGUoc3RydWN0IG10NzkxNV9k ZXYgKmRldiwNCisJCQkgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCB1MzIgcmF0ZSk7 DQogaW50IG10NzkxNV9tY3Vfc2V0X2VlcHJvbShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTsNCiBp bnQgbXQ3OTE1X21jdV9nZXRfZWVwcm9tKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHUzMiBvZmZz ZXQpOw0KIGludCBtdDc5MTVfbWN1X3NldF9tYWMoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgaW50 IGJhbmQsIGJvb2wgZW5hYmxlLA0KLS0gDQoyLjE4LjANCg== 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=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,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 0F99AC2BB85 for ; Fri, 10 Apr 2020 09:05:26 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D3057207FF for ; Fri, 10 Apr 2020 09:05:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="CWXilX1L"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="pAGha4hS" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D3057207FF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=WN1JFhaWnDWMQYmtC2OESR/FPI3gh7LHKOTWCoJZuts=; b=CWXilX1LAeYZXT gYvqHqMfOhASZ3Io/TI3J3+1w75uShx44zm3vbDq/uLH1eiqnMDjYsxdOR8z1v7FaOjEKbRgkexK0 jz/9Oa05CBQZ1mnAcfj3We98x5qizPqJdlZmZ0YXsgPhzBXoEFRmW6d2sTJ1N8p/Gz6ZYKxfijOs1 yyyL1/CMPK+kzSgoQ+eCgL3Bn7SuesJwkelfKJ9/12E0owhA1LuXep2za49+qtD3GXUk3TgS4rRQu i4MkOgl5tu2h5vB2a9sjYzmBBJbQCKIYJbkaQdnwkljAbSR1fhUyQVxGmznflICeZfdGdyfqBxYbx y16p/JbsmWvXO0oHDQAg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jMpbE-00087F-7r; Fri, 10 Apr 2020 09:05:20 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jMpbA-000808-3R for linux-mediatek@lists.infradead.org; Fri, 10 Apr 2020 09:05:18 +0000 X-UUID: 1206d8933fb1444a9cb0b41d27ce2d36-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=wAVt/81gWaHIbeEuspL3jMUs5niosskYbukxmEFZMmc=; b=pAGha4hSPiB7xvt26NLf/2rQOLdEkEi36gbqRb2W4S/krx1YcAHzFP5yN6LwPV0mFbD/qo2vFcZMkix+fXLHJUVHA0IK+PaTO2dz5byJdlIN6ReQebzXH8bdaKIWs89yKE87vE/66sxc6rn1KI4Bh8cTfx7CUxLwKpQudE9B+64=; X-UUID: 1206d8933fb1444a9cb0b41d27ce2d36-20200410 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 438051784; Fri, 10 Apr 2020 01:05:06 -0800 Received: from MTKMBS02N1.mediatek.inc (172.21.101.77) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 10 Apr 2020 01:55:06 -0700 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 10 Apr 2020 16:55:04 +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:05 +0800 From: Ryder Lee To: Felix Fietkau , Lorenzo Bianconi Subject: [PATCH 15/16] mt76: mt7915: set peer Tx fixed rate through debugfs Date: Fri, 10 Apr 2020 16:54:52 +0800 Message-ID: <704677800dd2aa4334b1a4d17bc9af11320a7504.1586507878.git.ryder.lee@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: References: MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200410_020516_171543_0FC755BB X-CRM114-Status: GOOD ( 10.11 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: YF Luo , Evelyn Tsai , linux-wireless@vger.kernel.org, Sean Wang , Chih-Min Chen , Ryder Lee , Yiwei Chung , linux-mediatek@lists.infradead.org, Shayne Chen Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Driver can manually set fixed rate for each peer through debugfs. May use .set_bitrate_mask callback and iterate stations under the current vif to achieve the aim once it supports HE rate. Signed-off-by: Ryder Lee Signed-off-by: Shayne Chen --- .../wireless/mediatek/mt76/mt7915/debugfs.c | 13 ++++++ .../net/wireless/mediatek/mt76/mt7915/mcu.c | 46 +++++++++++++++++++ .../net/wireless/mediatek/mt76/mt7915/mcu.h | 28 +++++++++++ .../wireless/mediatek/mt76/mt7915/mt7915.h | 2 + 4 files changed, 89 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c index 27f523d69618..181f42fcdeda 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c @@ -302,6 +302,18 @@ int mt7915_init_debugfs(struct mt7915_dev *dev) /** per-station debugfs **/ +/* usage: */ +static int mt7915_sta_fixed_rate_set(void *data, u64 rate) +{ + struct ieee80211_sta *sta = data; + struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv; + + return mt7915_mcu_set_fixed_rate(msta->vif->dev, sta, rate); +} + +DEFINE_DEBUGFS_ATTRIBUTE(fops_fixed_rate, NULL, + mt7915_sta_fixed_rate_set, "%llx\n"); + static int mt7915_sta_stats_read(struct seq_file *s, void *data) { @@ -362,5 +374,6 @@ static const struct file_operations fops_sta_stats = { void mt7915_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, struct dentry *dir) { + debugfs_create_file("fixed_rate", 0600, dir, sta, &fops_fixed_rate); debugfs_create_file("stats", 0400, dir, sta, &fops_sta_stats); } diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c index 74ca69ec3034..b80cc5e2448f 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c @@ -1774,6 +1774,52 @@ int mt7915_mcu_add_sta(struct mt7915_dev *dev, struct ieee80211_vif *vif, return 0; } +int mt7915_mcu_set_fixed_rate(struct mt7915_dev *dev, + struct ieee80211_sta *sta, u32 rate) +{ + struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv; + struct mt7915_vif *mvif = msta->vif; + struct sta_rec_ra_fixed *ra; + struct sk_buff *skb; + struct tlv *tlv; + + skb = mt7915_mcu_alloc_sta_req(dev, mvif, msta, + MT7915_STA_UPDATE_MAX_SIZE); + if (IS_ERR(skb)) + return PTR_ERR(skb); + + tlv = mt7915_mcu_add_tlv(skb, STA_REC_RA_UPDATE, sizeof(*ra)); + ra = (struct sta_rec_ra_fixed *)tlv; + + if (!rate) { + ra->field = cpu_to_le32(RATE_PARAM_AUTO); + goto out; + } else { + ra->field = cpu_to_le32(RATE_PARAM_FIXED); + } + + ra->phy.type = FIELD_GET(RATE_CFG_PHY_TYPE, rate); + ra->phy.bw = FIELD_GET(RATE_CFG_BW, rate); + ra->phy.nss = FIELD_GET(RATE_CFG_NSS, rate); + ra->phy.mcs = FIELD_GET(RATE_CFG_MCS, rate); + ra->phy.stbc = FIELD_GET(RATE_CFG_STBC, rate); + + if (ra->phy.bw) + ra->phy.ldpc = 7; + else + ra->phy.ldpc = FIELD_GET(RATE_CFG_LDPC, rate) * 7; + + /* HT/VHT - SGI: 1, LGI: 0; HE - SGI: 0, MGI: 1, LGI: 2 */ + if (ra->phy.type > MT_PHY_TYPE_VHT) + ra->phy.sgi = ra->phy.mcs * 85; + else + ra->phy.sgi = ra->phy.mcs * 15; + +out: + return __mt76_mcu_skb_send_msg(&dev->mt76, skb, + MCU_EXT_CMD_STA_REC_UPDATE, true); +} + int mt7915_mcu_add_dev_info(struct mt7915_dev *dev, struct ieee80211_vif *vif, bool enable) { diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h index 52b420210908..2b2708828c1a 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h @@ -823,6 +823,34 @@ struct sta_rec_ra { struct ra_phy phy; } __packed; +struct sta_rec_ra_fixed { + __le16 tag; + __le16 len; + + __le32 field; + u8 op_mode; + u8 op_vht_chan_width; + u8 op_vht_rx_nss; + u8 op_vht_rx_nss_type; + + struct ra_phy phy; + + u8 spe_en; + u8 short_preamble; + u8 is_5g; + u8 mmps_mode; +} __packed; + +#define RATE_PARAM_FIXED 3 +#define RATE_PARAM_AUTO 20 +#define RATE_CFG_MCS GENMASK(3, 0) +#define RATE_CFG_NSS GENMASK(7, 4) +#define RATE_CFG_GI GENMASK(11, 8) +#define RATE_CFG_BW GENMASK(15, 12) +#define RATE_CFG_STBC GENMASK(19, 16) +#define RATE_CFG_LDPC GENMASK(23, 20) +#define RATE_CFG_PHY_TYPE GENMASK(27, 24) + enum { STA_REC_BASIC, STA_REC_RA, diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h b/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h index ae3866d0a47a..c9015fa25156 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h @@ -302,6 +302,8 @@ int mt7915_mcu_add_smps(struct mt7915_dev *dev, struct ieee80211_vif *vif, struct ieee80211_sta *sta); int mt7915_mcu_set_chan_info(struct mt7915_phy *phy, int cmd); int mt7915_mcu_set_tx(struct mt7915_dev *dev, struct ieee80211_vif *vif); +int mt7915_mcu_set_fixed_rate(struct mt7915_dev *dev, + struct ieee80211_sta *sta, u32 rate); int mt7915_mcu_set_eeprom(struct mt7915_dev *dev); int mt7915_mcu_get_eeprom(struct mt7915_dev *dev, u32 offset); int mt7915_mcu_set_mac(struct mt7915_dev *dev, int band, bool enable, -- 2.18.0 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek