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 20AF7C2BB85 for ; Tue, 14 Apr 2020 21:03:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EB9942074D for ; Tue, 14 Apr 2020 21:03:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="gy0S0vKr" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2633586AbgDNVDu (ORCPT ); Tue, 14 Apr 2020 17:03:50 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:3408 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S2633575AbgDNVCJ (ORCPT ); Tue, 14 Apr 2020 17:02:09 -0400 X-UUID: 86a15d723cb649cdbd69d511e5bc469f-20200415 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=c50YIVxmbOajpC2CO4PdY4Sl7aeZnR2QVqENnNV97Pk=; b=gy0S0vKr7OwdDMXfmf8zMI40dnAyfIcIh11N72DK3BiSJLDTWedZZDBwEkpqr+recjARaAHR94PT7J6o2EEOyLWFwu6xTtF1X0QBvyCf+FNEZ3euEtYdzl5IR173Z2bc+/fOQlM+/Jc7iOPF+Wg4AayQsUdXK7qft8OUa52vIXo=; X-UUID: 86a15d723cb649cdbd69d511e5bc469f-20200415 Received: from mtkcas11.mediatek.inc [(172.21.101.40)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 886965582; Wed, 15 Apr 2020 05:01:59 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs06n2.mediatek.inc (172.21.101.130) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 15 Apr 2020 05:01:39 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 15 Apr 2020 05:01:38 +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 v2 17/18] mt76: mt7915: enable firmware module debug support Date: Wed, 15 Apr 2020 05:01:15 +0800 Message-ID: X-Mailer: git-send-email 2.18.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: 83A3483B71DF430FDEE7D25F64F9C5C9969CAF20B4A2E0BECBE012FBA926593D2000: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 VGhpcyBhbGxvd3MgaG9zdCBkcml2ZXIgdG8gZ2V0IHVzZWZ1bCBpbmZvcm1hdGlvbiBvZiBzb21l IGltcG9ydGFudCBtb2R1bGVzLg0KDQpTaWduZWQtb2ZmLWJ5OiBSeWRlciBMZWUgPHJ5ZGVyLmxl ZUBtZWRpYXRlay5jb20+DQpTaWduZWQtb2ZmLWJ5OiBDaGloLU1pbiBDaGVuIDxjaGloLW1pbi5j aGVuQG1lZGlhdGVrLmNvbT4NCi0tLQ0KIC4uLi93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzkx NS9kZWJ1Z2ZzLmMgICB8IDM2ICsrKysrKysrKysrKw0KIC4uLi9uZXQvd2lyZWxlc3MvbWVkaWF0 ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMgICB8IDU4ICsrKysrKysrKysrKysrKysrKysNCiAuLi4vbmV0 L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oICAgfCAgMyArDQogLi4uL3dpcmVs ZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oICAgIHwgIDIgKw0KIDQgZmlsZXMgY2hh bmdlZCwgOTkgaW5zZXJ0aW9ucygrKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv bWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jDQppbmRleCBjZjNiNjBkZWQ2ZWYuLmM2YzAw OWNkNzczZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYv bXQ3OTE1L2RlYnVnZnMuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3 Ni9tdDc5MTUvZGVidWdmcy5jDQpAQCAtNzQsNiArNzQsNDEgQEAgbXQ3OTE1X2RiZGNfZ2V0KHZv aWQgKmRhdGEsIHU2NCAqdmFsKQ0KIERFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2RiZGMs IG10NzkxNV9kYmRjX2dldCwNCiAJCQkgbXQ3OTE1X2RiZGNfc2V0LCAiJWxsZFxuIik7DQogDQor c3RhdGljIGludA0KK210NzkxNV9md19kZWJ1Z19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkNCit7 DQorCXN0cnVjdCBtdDc5MTVfZGV2ICpkZXYgPSBkYXRhOw0KKwllbnVtIHsNCisJCURFQlVHX1RY Q01EID0gNjIsDQorCQlERUJVR19DTURfUlBUX1RYLA0KKwkJREVCVUdfQ01EX1JQVF9UUklHLA0K KwkJREVCVUdfU1BMLA0KKwkJREVCVUdfUlBUX1JYLA0KKwl9IGRlYnVnOw0KKw0KKwlkZXYtPmZ3 X2RlYnVnID0gISF2YWw7DQorDQorCW10NzkxNV9tY3VfZndfbG9nXzJfaG9zdChkZXYsIGRldi0+ ZndfZGVidWcgPyAyIDogMCk7DQorDQorCWZvciAoZGVidWcgPSBERUJVR19UWENNRDsgZGVidWcg PD0gREVCVUdfUlBUX1JYOyBkZWJ1ZysrKQ0KKwkJbXQ3OTE1X21jdV9md19kYmdfY3RybChkZXYs IGRlYnVnLCBkZXYtPmZ3X2RlYnVnKTsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBp bnQNCittdDc5MTVfZndfZGVidWdfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQ0KK3sNCisJc3Ry dWN0IG10NzkxNV9kZXYgKmRldiA9IGRhdGE7DQorDQorCSp2YWwgPSBkZXYtPmZ3X2RlYnVnOw0K Kw0KKwlyZXR1cm4gMDsNCit9DQorDQorREVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndf ZGVidWcsIG10NzkxNV9md19kZWJ1Z19nZXQsDQorCQkJIG10NzkxNV9md19kZWJ1Z19zZXQsICIl bGxkXG4iKTsNCisNCiBzdGF0aWMgdm9pZA0KIG10NzkxNV9hbXBkdV9zdGF0X3JlYWRfcGh5KHN0 cnVjdCBtdDc5MTVfcGh5ICpwaHksDQogCQkJICAgc3RydWN0IHNlcV9maWxlICpmaWxlKQ0KQEAg LTI5MCw2ICszMjUsNyBAQCBpbnQgbXQ3OTE1X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTE1X2Rl diAqZGV2KQ0KIAkJCQkgICAgbXQ3OTE1X3F1ZXVlc19hY3EpOw0KIAlkZWJ1Z2ZzX2NyZWF0ZV9m aWxlKCJ0eF9zdGF0cyIsIDA0MDAsIGRpciwgZGV2LCAmZm9wc190eF9zdGF0cyk7DQogCWRlYnVn ZnNfY3JlYXRlX2ZpbGUoImRiZGMiLCAwNjAwLCBkaXIsIGRldiwgJmZvcHNfZGJkYyk7DQorCWRl YnVnZnNfY3JlYXRlX2ZpbGUoImZ3X2RlYnVnIiwgMDYwMCwgZGlyLCBkZXYsICZmb3BzX2Z3X2Rl YnVnKTsNCiAJZGVidWdmc19jcmVhdGVfdTMyKCJkZnNfaHdfcGF0dGVybiIsIDA0MDAsIGRpciwg JmRldi0+aHdfcGF0dGVybik7DQogCS8qIHRlc3Qga25vYnMgKi8NCiAJZGVidWdmc19jcmVhdGVf ZmlsZSgicmFkYXJfdHJpZ2dlciIsIDAyMDAsIGRpciwgZGV2LA0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMNCmluZGV4IDMyYmQ5ZTJjNzNlMy4u YTkzYzg0ZmY3MDliIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsv bXQ3Ni9tdDc5MTUvbWN1LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210 NzYvbXQ3OTE1L21jdS5jDQpAQCAtNTAyLDYgKzUwMiwyOCBAQCBtdDc5MTVfbWN1X3R4X3JhdGVf cmVwb3J0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpDQogCX0N CiB9DQogDQorc3RhdGljIHZvaWQNCittdDc5MTVfbWN1X3J4X2xvZ19tZXNzYWdlKHN0cnVjdCBt dDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpDQorew0KKwlzdHJ1Y3QgbXQ3OTE1 X21jdV9yeGQgKnJ4ZCA9IChzdHJ1Y3QgbXQ3OTE1X21jdV9yeGQgKilza2ItPmRhdGE7DQorCWNv bnN0IGNoYXIgKmRhdGEgPSAoY2hhciAqKSZyeGRbMV07DQorCWNvbnN0IGNoYXIgKnR5cGU7DQor DQorCXN3aXRjaCAocnhkLT5zMmRfaW5kZXgpIHsNCisJY2FzZSAwOg0KKwkJdHlwZSA9ICJXTSI7 DQorCQlicmVhazsNCisJY2FzZSAyOg0KKwkJdHlwZSA9ICJXQSI7DQorCQlicmVhazsNCisJZGVm YXVsdDoNCisJCXR5cGUgPSAidW5rbm93biI7DQorCQlicmVhazsNCisJfQ0KKw0KKwl3aXBoeV9p bmZvKG10NzZfaHcoZGV2KS0+d2lwaHksICIlczogJXMiLCB0eXBlLCBkYXRhKTsNCit9DQorDQog c3RhdGljIHZvaWQNCiBtdDc5MTVfbWN1X3J4X2V4dF9ldmVudChzdHJ1Y3QgbXQ3OTE1X2RldiAq ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIHsNCkBAIC01MTksNiArNTQxLDkgQEAgbXQ3OTE1 X21jdV9yeF9leHRfZXZlbnQoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYg KnNrYikNCiAJY2FzZSBNQ1VfRVhUX0VWRU5UX1JBVEVfUkVQT1JUOg0KIAkJbXQ3OTE1X21jdV90 eF9yYXRlX3JlcG9ydChkZXYsIHNrYik7DQogCQlicmVhazsNCisJY2FzZSBNQ1VfRVhUX0VWRU5U X0ZXX0xPR18yX0hPU1Q6DQorCQltdDc5MTVfbWN1X3J4X2xvZ19tZXNzYWdlKGRldiwgc2tiKTsN CisJCWJyZWFrOw0KIAlkZWZhdWx0Og0KIAkJYnJlYWs7DQogCX0NCkBAIC01NDQsNiArNTY5LDcg QEAgdm9pZCBtdDc5MTVfbWN1X3J4X2V2ZW50KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVj dCBza19idWZmICpza2IpDQogCXN0cnVjdCBtdDc5MTVfbWN1X3J4ZCAqcnhkID0gKHN0cnVjdCBt dDc5MTVfbWN1X3J4ZCAqKXNrYi0+ZGF0YTsNCiANCiAJaWYgKHJ4ZC0+ZXh0X2VpZCA9PSBNQ1Vf RVhUX0VWRU5UX1RIRVJNQUxfUFJPVEVDVCB8fA0KKwkgICAgcnhkLT5leHRfZWlkID09IE1DVV9F WFRfRVZFTlRfRldfTE9HXzJfSE9TVCB8fA0KIAkgICAgcnhkLT5leHRfZWlkID09IE1DVV9FWFRf RVZFTlRfQVNTRVJUX0RVTVAgfHwNCiAJICAgIHJ4ZC0+ZXh0X2VpZCA9PSBNQ1VfRVhUX0VWRU5U X1BTX1NZTkMgfHwNCiAJICAgIHJ4ZC0+ZXh0X2VpZCA9PSBNQ1VfRVhUX0VWRU5UX1JBVEVfUkVQ T1JUIHx8DQpAQCAtMjI3MSw2ICsyMjk3LDM3IEBAIHN0YXRpYyBpbnQgbXQ3OTE1X2xvYWRfZmly bXdhcmUoc3RydWN0IG10NzkxNV9kZXYgKmRldikNCiAJcmV0dXJuIDA7DQogfQ0KIA0KK2ludCBt dDc5MTVfbWN1X2Z3X2xvZ18yX2hvc3Qoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgdTggY3RybCkN Cit7DQorCXN0cnVjdCB7DQorCQl1OCBjdHJsX3ZhbDsNCisJCXU4IHBhZFszXTsNCisJfSBkYXRh ID0gew0KKwkJLmN0cmxfdmFsID0gY3RybA0KKwl9Ow0KKw0KKwlyZXR1cm4gX19tdDc2X21jdV9z ZW5kX21zZygmZGV2LT5tdDc2LCBNQ1VfRVhUX0NNRF9GV19MT0dfMl9IT1NULA0KKwkJCQkgICAm ZGF0YSwgc2l6ZW9mKGRhdGEpLCB0cnVlKTsNCit9DQorDQoraW50IG10NzkxNV9tY3VfZndfZGJn X2N0cmwoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgdTMyIG1vZHVsZSwgdTggbGV2ZWwpDQorew0K KwlzdHJ1Y3Qgew0KKwkJdTggdmVyOw0KKwkJdTggcGFkOw0KKwkJdTE2IGxlbjsNCisJCXU4IGxl dmVsOw0KKwkJdTggcnN2WzNdOw0KKwkJdTMyIG1vZHVsZV9pZHg7DQorCX0gZGF0YSA9IHsNCisJ CS5tb2R1bGVfaWR4ID0gY3B1X3RvX2xlMzIobW9kdWxlKSwNCisJCS5sZXZlbCA9IGxldmVsLA0K Kwl9Ow0KKw0KKwlyZXR1cm4gX19tdDc2X21jdV9zZW5kX21zZygmZGV2LT5tdDc2LCBNQ1VfRVhU X0NNRF9GV19EQkdfQ1RSTCwNCisJCQkJICAgJmRhdGEsIHNpemVvZihkYXRhKSwgZmFsc2UpOw0K K30NCisNCiBpbnQgbXQ3OTE1X21jdV9pbml0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpDQogew0K IAlzdGF0aWMgY29uc3Qgc3RydWN0IG10NzZfbWN1X29wcyBtdDc5MTVfbWN1X29wcyA9IHsNCkBA IC0yMjkyLDYgKzIzNDksNyBAQCBpbnQgbXQ3OTE1X21jdV9pbml0KHN0cnVjdCBtdDc5MTVfZGV2 ICpkZXYpDQogCQlyZXR1cm4gcmV0Ow0KIA0KIAlzZXRfYml0KE1UNzZfU1RBVEVfTUNVX1JVTk5J TkcsICZkZXYtPm1waHkuc3RhdGUpOw0KKwltdDc5MTVfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCAw KTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0 ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgNCmluZGV4IGI4ZDI4ZDk3MTk3NC4uZjY4ZDIwOTRhYzZmIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1 LmgNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5o DQpAQCAtMzgsNiArMzgsNyBAQCBlbnVtIHsNCiAvKiBleHQgZXZlbnQgdGFibGUgKi8NCiBlbnVt IHsNCiAJTUNVX0VYVF9FVkVOVF9QU19TWU5DID0gMHg1LA0KKwlNQ1VfRVhUX0VWRU5UX0ZXX0xP R18yX0hPU1QgPSAweDEzLA0KIAlNQ1VfRVhUX0VWRU5UX1RIRVJNQUxfUFJPVEVDVCA9IDB4MjIs DQogCU1DVV9FWFRfRVZFTlRfQVNTRVJUX0RVTVAgPSAweDIzLA0KIAlNQ1VfRVhUX0VWRU5UX1JE RF9SRVBPUlQgPSAweDNhLA0KQEAgLTE5Miw2ICsxOTMsNyBAQCBlbnVtIHsNCiAJTUNVX0VYVF9D TURfRUZVU0VfQUNDRVNTID0gMHgwMSwNCiAJTUNVX0VYVF9DTURfUE1fU1RBVEVfQ1RSTCA9IDB4 MDcsDQogCU1DVV9FWFRfQ01EX0NIQU5ORUxfU1dJVENIID0gMHgwOCwNCisJTUNVX0VYVF9DTURf RldfTE9HXzJfSE9TVCA9IDB4MTMsDQogCU1DVV9FWFRfQ01EX0VGVVNFX0JVRkZFUl9NT0RFID0g MHgyMSwNCiAJTUNVX0VYVF9DTURfU1RBX1JFQ19VUERBVEUgPSAweDI1LA0KIAlNQ1VfRVhUX0NN RF9CU1NfSU5GT19VUERBVEUgPSAweDI2LA0KQEAgLTIwNyw2ICsyMDksNyBAQCBlbnVtIHsNCiAJ TUNVX0VYVF9DTURfU0VUX1NFUl9UUklHR0VSID0gMHg4MSwNCiAJTUNVX0VYVF9DTURfU0NTX0NU UkwgPSAweDgyLA0KIAlNQ1VfRVhUX0NNRF9SQVRFX0NUUkwgPSAweDg3LA0KKwlNQ1VfRVhUX0NN RF9GV19EQkdfQ1RSTCA9IDB4OTUsDQogCU1DVV9FWFRfQ01EX1NFVF9SRERfVEggPSAweDlkLA0K IH07DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9t dDc5MTUvbXQ3OTE1LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzkx NS9tdDc5MTUuaA0KaW5kZXggZTU4MjFkMTQ0Yzg1Li40M2M5NTZiYzA5ZjUgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaA0KKysr IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgNCkBA IC0zMjQsNiArMzI0LDggQEAgaW50IG10NzkxNV9tY3VfZ2V0X3JhdGVfaW5mbyhzdHJ1Y3QgbXQ3 OTE1X2RldiAqZGV2LCB1MzIgY21kLCB1MTYgd2xhbl9pZHgpOw0KIGludCBtdDc5MTVfbWN1X2dl dF90ZW1wZXJhdHVyZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBpbnQgaW5kZXgpOw0KIGludCBt dDc5MTVfbWN1X3JkZF9jbWQoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgZW51bSBtdDc5MTVfcmRk X2NtZCBjbWQsDQogCQkgICAgICAgdTggaW5kZXgsIHU4IHJ4X3NlbCwgdTggdmFsKTsNCitpbnQg bXQ3OTE1X21jdV9md19sb2dfMl9ob3N0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHU4IGN0cmwp Ow0KK2ludCBtdDc5MTVfbWN1X2Z3X2RiZ19jdHJsKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHUz MiBtb2R1bGUsIHU4IGxldmVsKTsNCiB2b2lkIG10NzkxNV9tY3VfcnhfZXZlbnQoc3RydWN0IG10 NzkxNV9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYik7DQogdm9pZCBtdDc5MTVfbWN1X2V4 aXQoc3RydWN0IG10NzkxNV9kZXYgKmRldik7DQogDQotLSANCjIuMTguMA0K 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,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 EEE45C2BB1D for ; Tue, 14 Apr 2020 21:12:02 +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 BCD722076A for ; Tue, 14 Apr 2020 21:12:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="LQ60AZP8"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="pqqe5kFF" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BCD722076A 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=EYb1041VsvDGQrqe/NmO2bz7CKcd5gp9s5pP5FYXP4k=; b=LQ60AZP8rNvhsm j2bYjDF5Nq/GeIKXYIeEws/QkSdz4RhGmSmG4X57RPtFftbcLtza2KhVX5OVDz7wHQgpVbpQLo3wL 0jDHs+v6C0cV0VF8wStXYQAvI31Q90i4MPxk3dykmlbvugnKAqMQY93YyUAZQ2sFI1NN7+g1KUlp/ nMyqWYiJqWy/UrEJstLu30yuchTE1ZxVPqOJmv4+bKFgTwg657loZ8lsaFm155CHLoGC0RtloXGDB 1hOwg9S2794uoXJv7K25i0cdN9XdNU3psP9UA06MqXIUG39XqxOpwZueLAADvoV62QER+PZhMctJ5 ZjjcmvbKtkAzYTK29JaQ==; 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 1jOSqX-0005aA-Rx; Tue, 14 Apr 2020 21:11:53 +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 1jOSqP-0005GL-HD for linux-mediatek@lists.infradead.org; Tue, 14 Apr 2020 21:11:47 +0000 X-UUID: e01f5c9e12984ffb9982a45decf6a616-20200414 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=c50YIVxmbOajpC2CO4PdY4Sl7aeZnR2QVqENnNV97Pk=; b=pqqe5kFFkwxJA5ighgR4QJneHEIXrDiHfgtFe/uM3rmUNdNcAeFKXUaXxLzcRLhIAftEXXDeAxn/1dr8Kwv5VKpKxVrcl61JxwjMgBND1JluXq3g93gJodoIq2E8odMc6/Nyg0QXJ8l6LefkqBUorGsBAVPdRzcuP1wau/NABKU=; X-UUID: e01f5c9e12984ffb9982a45decf6a616-20200414 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 190897956; Tue, 14 Apr 2020 13:11:40 -0800 Received: from MTKMBS06N2.mediatek.inc (172.21.101.130) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 14 Apr 2020 14:01:56 -0700 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs06n2.mediatek.inc (172.21.101.130) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 15 Apr 2020 05:01:39 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 15 Apr 2020 05:01:38 +0800 From: Ryder Lee To: Felix Fietkau , Lorenzo Bianconi Subject: [PATCH v2 17/18] mt76: mt7915: enable firmware module debug support Date: Wed, 15 Apr 2020 05:01:15 +0800 Message-ID: X-Mailer: git-send-email 2.18.0 In-Reply-To: References: MIME-Version: 1.0 X-TM-SNTS-SMTP: 83A3483B71DF430FDEE7D25F64F9C5C9969CAF20B4A2E0BECBE012FBA926593D2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200414_141145_623656_FA94932E X-CRM114-Status: UNSURE ( 9.86 ) X-CRM114-Notice: Please train this message. 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 This allows host driver to get useful information of some important modules. Signed-off-by: Ryder Lee Signed-off-by: Chih-Min Chen --- .../wireless/mediatek/mt76/mt7915/debugfs.c | 36 ++++++++++++ .../net/wireless/mediatek/mt76/mt7915/mcu.c | 58 +++++++++++++++++++ .../net/wireless/mediatek/mt76/mt7915/mcu.h | 3 + .../wireless/mediatek/mt76/mt7915/mt7915.h | 2 + 4 files changed, 99 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c index cf3b60ded6ef..c6c009cd773e 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c @@ -74,6 +74,41 @@ mt7915_dbdc_get(void *data, u64 *val) DEFINE_DEBUGFS_ATTRIBUTE(fops_dbdc, mt7915_dbdc_get, mt7915_dbdc_set, "%lld\n"); +static int +mt7915_fw_debug_set(void *data, u64 val) +{ + struct mt7915_dev *dev = data; + enum { + DEBUG_TXCMD = 62, + DEBUG_CMD_RPT_TX, + DEBUG_CMD_RPT_TRIG, + DEBUG_SPL, + DEBUG_RPT_RX, + } debug; + + dev->fw_debug = !!val; + + mt7915_mcu_fw_log_2_host(dev, dev->fw_debug ? 2 : 0); + + for (debug = DEBUG_TXCMD; debug <= DEBUG_RPT_RX; debug++) + mt7915_mcu_fw_dbg_ctrl(dev, debug, dev->fw_debug); + + return 0; +} + +static int +mt7915_fw_debug_get(void *data, u64 *val) +{ + struct mt7915_dev *dev = data; + + *val = dev->fw_debug; + + return 0; +} + +DEFINE_DEBUGFS_ATTRIBUTE(fops_fw_debug, mt7915_fw_debug_get, + mt7915_fw_debug_set, "%lld\n"); + static void mt7915_ampdu_stat_read_phy(struct mt7915_phy *phy, struct seq_file *file) @@ -290,6 +325,7 @@ int mt7915_init_debugfs(struct mt7915_dev *dev) mt7915_queues_acq); debugfs_create_file("tx_stats", 0400, dir, dev, &fops_tx_stats); debugfs_create_file("dbdc", 0600, dir, dev, &fops_dbdc); + debugfs_create_file("fw_debug", 0600, dir, dev, &fops_fw_debug); debugfs_create_u32("dfs_hw_pattern", 0400, dir, &dev->hw_pattern); /* test knobs */ debugfs_create_file("radar_trigger", 0200, dir, dev, diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c index 32bd9e2c73e3..a93c84ff709b 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c @@ -502,6 +502,28 @@ mt7915_mcu_tx_rate_report(struct mt7915_dev *dev, struct sk_buff *skb) } } +static void +mt7915_mcu_rx_log_message(struct mt7915_dev *dev, struct sk_buff *skb) +{ + struct mt7915_mcu_rxd *rxd = (struct mt7915_mcu_rxd *)skb->data; + const char *data = (char *)&rxd[1]; + const char *type; + + switch (rxd->s2d_index) { + case 0: + type = "WM"; + break; + case 2: + type = "WA"; + break; + default: + type = "unknown"; + break; + } + + wiphy_info(mt76_hw(dev)->wiphy, "%s: %s", type, data); +} + static void mt7915_mcu_rx_ext_event(struct mt7915_dev *dev, struct sk_buff *skb) { @@ -519,6 +541,9 @@ mt7915_mcu_rx_ext_event(struct mt7915_dev *dev, struct sk_buff *skb) case MCU_EXT_EVENT_RATE_REPORT: mt7915_mcu_tx_rate_report(dev, skb); break; + case MCU_EXT_EVENT_FW_LOG_2_HOST: + mt7915_mcu_rx_log_message(dev, skb); + break; default: break; } @@ -544,6 +569,7 @@ void mt7915_mcu_rx_event(struct mt7915_dev *dev, struct sk_buff *skb) struct mt7915_mcu_rxd *rxd = (struct mt7915_mcu_rxd *)skb->data; if (rxd->ext_eid == MCU_EXT_EVENT_THERMAL_PROTECT || + rxd->ext_eid == MCU_EXT_EVENT_FW_LOG_2_HOST || rxd->ext_eid == MCU_EXT_EVENT_ASSERT_DUMP || rxd->ext_eid == MCU_EXT_EVENT_PS_SYNC || rxd->ext_eid == MCU_EXT_EVENT_RATE_REPORT || @@ -2271,6 +2297,37 @@ static int mt7915_load_firmware(struct mt7915_dev *dev) return 0; } +int mt7915_mcu_fw_log_2_host(struct mt7915_dev *dev, u8 ctrl) +{ + struct { + u8 ctrl_val; + u8 pad[3]; + } data = { + .ctrl_val = ctrl + }; + + return __mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_FW_LOG_2_HOST, + &data, sizeof(data), true); +} + +int mt7915_mcu_fw_dbg_ctrl(struct mt7915_dev *dev, u32 module, u8 level) +{ + struct { + u8 ver; + u8 pad; + u16 len; + u8 level; + u8 rsv[3]; + u32 module_idx; + } data = { + .module_idx = cpu_to_le32(module), + .level = level, + }; + + return __mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_FW_DBG_CTRL, + &data, sizeof(data), false); +} + int mt7915_mcu_init(struct mt7915_dev *dev) { static const struct mt76_mcu_ops mt7915_mcu_ops = { @@ -2292,6 +2349,7 @@ int mt7915_mcu_init(struct mt7915_dev *dev) return ret; set_bit(MT76_STATE_MCU_RUNNING, &dev->mphy.state); + mt7915_mcu_fw_log_2_host(dev, 0); return 0; } diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h index b8d28d971974..f68d2094ac6f 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h @@ -38,6 +38,7 @@ enum { /* ext event table */ enum { MCU_EXT_EVENT_PS_SYNC = 0x5, + MCU_EXT_EVENT_FW_LOG_2_HOST = 0x13, MCU_EXT_EVENT_THERMAL_PROTECT = 0x22, MCU_EXT_EVENT_ASSERT_DUMP = 0x23, MCU_EXT_EVENT_RDD_REPORT = 0x3a, @@ -192,6 +193,7 @@ enum { MCU_EXT_CMD_EFUSE_ACCESS = 0x01, MCU_EXT_CMD_PM_STATE_CTRL = 0x07, MCU_EXT_CMD_CHANNEL_SWITCH = 0x08, + MCU_EXT_CMD_FW_LOG_2_HOST = 0x13, MCU_EXT_CMD_EFUSE_BUFFER_MODE = 0x21, MCU_EXT_CMD_STA_REC_UPDATE = 0x25, MCU_EXT_CMD_BSS_INFO_UPDATE = 0x26, @@ -207,6 +209,7 @@ enum { MCU_EXT_CMD_SET_SER_TRIGGER = 0x81, MCU_EXT_CMD_SCS_CTRL = 0x82, MCU_EXT_CMD_RATE_CTRL = 0x87, + MCU_EXT_CMD_FW_DBG_CTRL = 0x95, MCU_EXT_CMD_SET_RDD_TH = 0x9d, }; diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h b/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h index e5821d144c85..43c956bc09f5 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h @@ -324,6 +324,8 @@ int mt7915_mcu_get_rate_info(struct mt7915_dev *dev, u32 cmd, u16 wlan_idx); int mt7915_mcu_get_temperature(struct mt7915_dev *dev, int index); int mt7915_mcu_rdd_cmd(struct mt7915_dev *dev, enum mt7915_rdd_cmd cmd, u8 index, u8 rx_sel, u8 val); +int mt7915_mcu_fw_log_2_host(struct mt7915_dev *dev, u8 ctrl); +int mt7915_mcu_fw_dbg_ctrl(struct mt7915_dev *dev, u32 module, u8 level); void mt7915_mcu_rx_event(struct mt7915_dev *dev, struct sk_buff *skb); void mt7915_mcu_exit(struct mt7915_dev *dev); -- 2.18.0 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek