From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [BUG] mt76x0u: Probing issues on Raspberry Pi 3 B+ From: Stanislaw Gruszka Message-Id: <20190218135247.GA9602@redhat.com> Date: Mon, 18 Feb 2019 14:52:47 +0100 To: Stefan Wahren Cc: Lorenzo Bianconi , Alan Stern , Felix Fietkau , Doug Anderson , Minas Harutyunyan , USB list , linux-wireless List-ID: T24gU2F0LCBGZWIgMTYsIDIwMTkgYXQgMDg6MTc6MDdQTSArMDEwMCwgU3RlZmFuIFdhaHJlbiB3 cm90ZToKPiB0aGlzIGlzIGEgbWlzdW5kZXJzdGFuZGluZy4gVGhlIHdhcm5pbmcgaXMgYWJvdXQg bWVtb3J5IGFsaWdubWVudCB0byAzMiBiaXQgYWRkcmVzc2VzLCBub3QgYWJvdXQgcGFnZSBhbGln bm1lbnQuIFRoaXMgaXMgYSB0eXBpY2FsIEFSTSByZXN0cmljdGlvbi4gTWF5YmUgd2UgbmVlZCB0 byBtYWtlIHN1cmUgaW4gbXQ3NiB0aGF0IHRoZSBETUEgYnVmZmVyIG5lZWRzIHRvIGJlIGFsaWdu ZWQuIEJ1dCBpdCdzIGFsc28gcG9zc2libGUgdGhhdCB0aGUgd2FybmluZyBpc24ndCB0aGUgcm9v dCBjYXVzZSBvZiBvdXIgcHJvYmxlbS4KPiAKCkkgc2VlLCBpdCBuZWVkcyA0IGJ5dGVzIGFsaWdu bWVudCAuIFRoZXJlIGlzIGFscmVhZHkgZHdjMiBjb2RlIGNoZWNrcwp0aGF0IGFuZCBhbGxvY2F0 ZSBuZXcgYnVmZmVyIGlmIHRoZSBhbGlnbm1lbnQgaXMgbm90IHJpZ2h0Ogpkd2MyX2FsbG9jX2Rt YV9hbGlnbmVkX2J1ZmZlcigpLCBidXQgaXQgZG9lcyBub3RoaW5nIGlmIHVyYi0+c2cKaXMgbm90 IE5VTEwuIEkgdGhvdWdodCBtdDc2dXNiIGFscmVhZHkgcHJvdmlkZSBhbGlnbmVkIGJ1ZmZlcnMs IGJ1dApsb29rcyBpdCBkb2VzIG5vdCBmb3Igb25lIFRYIHNwZWNpYWwgY2FzZSwgd2hpY2ggYXJl IFBST0JFIFJFUVVFU1QKZnJhbWVzLiBPdGhlciBmcmFtZXMgYXJlIGFsaWduZWQgYnkgaW5zZXJ0 aW5nIEwyIGhlYWRlciBwYWQuIE9uZQpzb2x1dGlvbiBmb3IgdGhpcyB3b3VsZCBiZSBqdXN0IHN1 Ym1pdCB1cmIgd2l0aCAgTlVMTCBzZyAoc2FtZSBhcwpMb3JlbnpvJ3MgcGF0Y2hlcyBkbywgYnV0 IHN0aWxsIGFsbG9jYXRpbmcgYnVmZmVycyB2aWEgYnVmLT5zZyksCmJ1dCBJIHRoaW5rLCB5b3Ug aGF2ZSByaWdodCwgd2Ugc2hvdWxkIHByb3ZpZGUgNCBieXRlcyBhbGlnbmVkIGJ1ZmZlcnMKYnkg ZGVmYXVsdCBhcyBvdGhlciBETUEgaGFyZHdhcmUgbWF5IHJlcXVpcmUgdGhhdC4gSSdtIGF0dGFj aGluZyB5ZXQKYW5vdGhlciBwYXRjaCB0byB0ZXN0LCB3aGljaCBmaXggdXAgYWxpZ25tZW50IGZv ciBQUk9CRSBSRVFVRVNUIGZyYW1lcy4KCj4gPiBBdHRhY2hlZCBwYXRjaCBzaG91bGQgZml4IHRo aXMsIHBsZXNlIHRlc3QsIHRoYW5rcyBpbiBhZHZhbmNlLgo+IAo+IEFueXdheSBpIHRlc3RlZCB0 aGUgZm9sbG93aW5nIHBhdGNoIGNvbWJpbmF0aW9ucyBhZ2FpbnN0IG5leHQgd2l0aCB0aGUgc2Ft ZSByZXN1bHRzIGFzIDEsMiwzIChubyB3aWZpLCBhbGlnbm1lbnQgd2FybmluZyk6Cj4gMSwzCj4g MSwyLDMsNAoKSSBub3RpY2VkIG9uIG15IHNldHVwIHRoYXQgcGF0Y2ggNCBjYW4gY2F1c2UgdHJv dWJsZXMsIGJ1dCBzdGlsbApkZXZpY2UgaXMgd29ya2FibGUgaGVyZSBvbiBteSBQQyBtYWNoaW5l cy4KCj4gPiA+IEJ0dyBpIGNhbiBjb25maXJtIGEgcmVncmVzc2lvbiB3YXMgaW50cm9kdWNlZCBh ZnRlciA0LjE5LCBiZWNhdXNlIGluIDQuMTkgdGhlcmUgd2FzIG5vIGZpcm13YXJlIHRpbWVvdXQg YnV0IGV2ZW4gbm8gd29ya2luZyB3aWZpOgo+ID4gCj4gPiBZb3UgbWVudCAnbm8gd29ya2luZyB3 aWZpJyBvciAnd29ya2luZyB3aWZpJz8KPiAKPiBXaWZpIGlzIGJyb2tlbiBpbiA0LjE5LCA0LjIw LCA1LjAgYW5kIG5leHQuIEl0IG9ubHkgd29ya2VkIHdpdGggTG9yZW56bydzIFNHIGF2b2lkIHBh dGNoZXMgc28gZmFyLiBCdHcgdGhlIHJlZ3Jlc3Npb24gKGZpcm13YXJlIHRpbWVvdXQpIHN0YXJ0 ZWQgaW4gNC4yMC4gSSBhbHNvIHRlc3RlZCBpdCB0b2RheS4KClRoYXQgc29tZXdoYXQgc3RyYW5n ZSBiZWNhdXNlIDQuMTkgbXQ3NngwdSBkb2VzIG5vdCB1c2UgU0cuCk9uIDQuMTkgdGhlcmUgaXMg cGh5IGNhbGlicmF0aW9uIGJ1ZyBmaXhlZCBpbiA0LjE5LjU6Cgpjb21taXQgMGQ5ODEzMzE5YjQw Mzk5YTBkOGZkNzYxZDJmY2ZlZGVlNTcwMTQ4NwpBdXRob3I6IExvcmVuem8gQmlhbmNvbmkgPGxv cmVuem8uYmlhbmNvbmlAcmVkaGF0LmNvbT4KRGF0ZTogICBGcmkgU2VwIDcgMjM6MTM6MTIgMjAx OCArMDIwMAoKICAgIG10NzZ4MDogcnVuIHZjbyBjYWxpYnJhdGlvbiBmb3IgZWFjaCBjaGFubmVs IGNvbmZpZ3VyYXRpb24KCkl0J3MgcG9zc2libGUgdGhhdCB3aXRob3V0IHRoaXMgdmNvIGNhbGli cmF0aW9uIGZpeCwgTVQ3NjEwVSBkZXZpY2UKZG9lcyBub3Qgc2VlIEFQIGlmIGl0J3Mgc2lnbmFs IGlzIHdlYWsuCgpTdGFuaXNsYXcKRnJvbSBkNDIwOTYxYWZkMWFlMmNhODU5MGVlMmM3OWRlZmMw YTQ4ZmE4ZTczIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGFuaXNsYXcgR3J1c3pr YSA8c2dydXN6a2FAcmVkaGF0LmNvbT4KRGF0ZTogTW9uLCAxOCBGZWIgMjAxOSAxNDozOTozOCAr MDEwMApTdWJqZWN0OiBbUEFUQ0hdIG10NzZ4MDI6IG1ha2Ugc3VyZSBwcm9iZSByZXF1ZXN0IHNr YidzIGFyZSA0IGJ5dGVzIGFsaWduZWQKCldlIGFkZCAyIGJ5dGVzIGhlYWRlciBwYWQgaWYgaGVh ZGVyIGxlbmd0aCBpcyBub3QgbXVsdGlwbGUgb2YgNCBieXRlcywKdGhpcyBhc3N1cmUgbW9zdCB0 eCBza2IgYnVmZmVycyBhcmUgNCBieXRlcyBhbGlnbmVkLiBCdXQgdGhpcyBpcyBub3QKdHJ1ZSBm b3IgcHJvYmUgcmVxdWVzdCBmcmFtZXMgd2hpY2ggaGF2ZSBuKjQgYnl0ZXMgaGVhZGVyIGxlbmd0 aCBhbmQKYXJlIG5vdCBhbGlnbmVkLgoKSSB0aGluayBpcyBvayB0byBhc3N1bWUgdGhhdCBmcmFt ZXMgaGF2ZSB0byBiZSA0IGJ5dGVzIGFsaWduZWQKZm9yIERNQSBwdXJwb3NlLCBzbyBtdDc2IGRy aXZlciBzaG91bGQgdGFrZSBjYXJlIG9mIHRoYXQuCgpTaWduZWQtb2ZmLWJ5OiBTdGFuaXNsYXcg R3J1c3prYSA8c2dydXN6a2FAcmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL25ldC93aXJlbGVzcy9t ZWRpYXRlay9tdDc2L210NzZ4MDIuaCAgICAgICB8ICAyICstCiBkcml2ZXJzL25ldC93aXJlbGVz cy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdHhyeC5jICB8ICA1ICstLS0KIC4uLi9uZXQvd2lyZWxl c3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9jb3JlLmMgIHwgIDIgKy0KIGRyaXZlcnMvbmV0 L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMgIHwgMzIgKysrKysrKysrKysr KysrLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210 NzZ4MDIuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMi5oCmlu ZGV4IDZkOTY3NjZhNmVkMy4uYWQzMjlkYjdkZTRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaAorKysgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgbXQ3Nngw Ml9zZXRfdHhfYWNrdG8oc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpOwogdm9pZCBtdDc2eDAyX3Nl dF9jb3ZlcmFnZV9jbGFzcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywKIAkJCQlzMTYgY292ZXJh Z2VfY2xhc3MpOwogaW50IG10NzZ4MDJfc2V0X3J0c190aHJlc2hvbGQoc3RydWN0IGllZWU4MDIx MV9odyAqaHcsIHUzMiB2YWwpOwotaW50IG10NzZ4MDJfaW5zZXJ0X2hkcl9wYWQoc3RydWN0IHNr X2J1ZmYgKnNrYik7Cit2b2lkIG10NzZ4MDJfYWxpZ25fc2tiKHN0cnVjdCBza19idWZmICpza2Ip Owogdm9pZCBtdDc2eDAyX3JlbW92ZV9oZHJfcGFkKHN0cnVjdCBza19idWZmICpza2IsIGludCBs ZW4pOwogYm9vbCBtdDc2eDAyX3R4X3N0YXR1c19kYXRhKHN0cnVjdCBtdDc2X2RldiAqbWRldiwg dTggKnVwZGF0ZSk7CiB2b2lkIG10NzZ4MDJfcXVldWVfcnhfc2tiKHN0cnVjdCBtdDc2X2RldiAq bWRldiwgZW51bSBtdDc2X3J4cV9pZCBxLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3R4cnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21l ZGlhdGVrL210NzYvbXQ3NngwMl90eHJ4LmMKaW5kZXggYTU0MTNhMzA5YTBhLi42M2M1NTIwYTY1 Y2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nngw Ml90eHJ4LmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAy X3R4cnguYwpAQCAtMTYzLDcgKzE2Myw2IEBAIGludCBtdDc2eDAyX3R4X3ByZXBhcmVfc2tiKHN0 cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqdHh3aV9wdHIsCiAJc3RydWN0IG10NzZ4MDJfdHh3 aSAqdHh3aSA9IHR4d2lfcHRyOwogCWludCBxc2VsID0gTVRfUVNFTF9FRENBOwogCWludCBwaWQ7 Ci0JaW50IHJldDsKIAogCWlmIChxID09ICZkZXYtPm10NzYucV90eFtNVF9UWFFfUFNEXSAmJiB3 Y2lkICYmIHdjaWQtPmlkeCA8IDEyOCkKIAkJbXQ3NngwMl9tYWNfd2NpZF9zZXRfZHJvcChkZXYs IHdjaWQtPmlkeCwgZmFsc2UpOwpAQCAtMTczLDkgKzE3Miw3IEBAIGludCBtdDc2eDAyX3R4X3By ZXBhcmVfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqdHh3aV9wdHIsCiAJcGlkID0g bXQ3Nl90eF9zdGF0dXNfc2tiX2FkZChtZGV2LCB3Y2lkLCBza2IpOwogCXR4d2ktPnBrdGlkID0g cGlkOwogCi0JcmV0ID0gbXQ3NngwMl9pbnNlcnRfaGRyX3BhZChza2IpOwotCWlmIChyZXQgPCAw KQotCQlyZXR1cm4gcmV0OworCW10NzZ4MDJfYWxpZ25fc2tiKHNrYik7CiAKIAlpZiAocGlkID49 IE1UX1BBQ0tFVF9JRF9GSVJTVCkKIAkJcXNlbCA9IE1UX1FTRUxfTUdNVDsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfY29yZS5jIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3VzYl9jb3JlLmMKaW5k ZXggMDk4ZDA1ZTEwOWU3Li5iZDU4MzhjMjZmNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91c2JfY29yZS5jCkBAIC03OSw3ICs3OSw3 IEBAIGludCBtdDc2eDAydV90eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZv aWQgKmRhdGEsCiAJdTMyIGZsYWdzOwogCWludCBwaWQ7CiAKLQltdDc2eDAyX2luc2VydF9oZHJf cGFkKHNrYik7CisJbXQ3NngwMl9hbGlnbl9za2Ioc2tiKTsKIAogCXR4d2kgPSBza2JfcHVzaChz a2IsIHNpemVvZihzdHJ1Y3QgbXQ3NngwMl90eHdpKSk7CiAJbXQ3NngwMl9tYWNfd3JpdGVfdHh3 aShkZXYsIHR4d2ksIHNrYiwgd2NpZCwgc3RhLCBsZW4pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMKaW5kZXggMDYyNjE0YWQwZDUxLi4w ODQyNWIxZDJjMzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210 NzYvbXQ3NngwMl91dGlsLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3 Ni9tdDc2eDAyX3V0aWwuYwpAQCAtNTUwLDIxICs1NTAsMzMgQEAgdm9pZCBtdDc2eDAyX3N0YV9y YXRlX3RibF91cGRhdGUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCiB9CiBFWFBPUlRfU1lNQk9M X0dQTChtdDc2eDAyX3N0YV9yYXRlX3RibF91cGRhdGUpOwogCi1pbnQgbXQ3NngwMl9pbnNlcnRf aGRyX3BhZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQordm9pZCBtdDc2eDAyX2FsaWduX3NrYihzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogewotCWludCBsZW4gPSBpZWVlODAyMTFfZ2V0X2hkcmxlbl9mcm9t X3NrYihza2IpOworCWludCBhbGlnbiA9ICgodW5zaWduZWQgbG9uZykgc2tiLT5kYXRhKSAmIDM7 CisJaW50IGhkcmxlbiwgc2tibGVuOwogCi0JaWYgKGxlbiAlIDQgPT0gMCkKLQkJcmV0dXJuIDA7 CisJaGRybGVuID0gaWVlZTgwMjExX2dldF9oZHJsZW5fZnJvbV9za2Ioc2tiKTsKKwlXQVJOX09O X09OQ0UoYWxpZ24gPT0gMCAmJiAoaGRybGVuICYgMykpOworCisJaWYgKGFsaWduID09IDApCisJ CXJldHVybjsKIAotCXNrYl9wdXNoKHNrYiwgMik7Ci0JbWVtbW92ZShza2ItPmRhdGEsIHNrYi0+ ZGF0YSArIDIsIGxlbik7CisJaWYgKGhkcmxlbiAmIDMpIHsKKwkJLyogQWxpZ24gZnJhbWUgYW5k IGFkZCAyIGJ5dGVzIHBhZCBhZnRlciBoZWFkZXIuICovCisJCXNrYl9wdXNoKHNrYiwgMik7CisJ CW1lbW1vdmUoc2tiLT5kYXRhLCBza2ItPmRhdGEgKyAyLCBoZHJsZW4pOwogCi0Jc2tiLT5kYXRh W2xlbl0gPSAwOwotCXNrYi0+ZGF0YVtsZW4gKyAxXSA9IDA7Ci0JcmV0dXJuIDI7CisJCXNrYi0+ ZGF0YVtoZHJsZW5dID0gMDsKKwkJc2tiLT5kYXRhW2hkcmxlbiArIDFdID0gMDsKKwl9IGVsc2Ug eworCQkvKiBPbmx5IGZvciBwcm9iZSByZXF1ZXN0IGZyYW1lcy4gKi8KKwkJc2tibGVuID0gc2ti LT5sZW47CisJCXNrYl9wdXNoKHNrYiwgMik7CisJCW1lbW1vdmUoc2tiLT5kYXRhLCBza2ItPmRh dGEgKyAyLCBza2JsZW4pOworCQlza2JfdHJpbShza2IsIHNrYmxlbik7CisJfQogfQotRVhQT1JU X1NZTUJPTF9HUEwobXQ3NngwMl9pbnNlcnRfaGRyX3BhZCk7CitFWFBPUlRfU1lNQk9MX0dQTCht dDc2eDAyX2FsaWduX3NrYik7CiAKIHZvaWQgbXQ3NngwMl9yZW1vdmVfaGRyX3BhZChzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBpbnQgbGVuKQogewo= 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=-8.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,USER_AGENT_MUTT 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 CF2B3C43381 for ; Mon, 18 Feb 2019 13:52:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9D2B821904 for ; Mon, 18 Feb 2019 13:52:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732816AbfBRNwv (ORCPT ); Mon, 18 Feb 2019 08:52:51 -0500 Received: from mx1.redhat.com ([209.132.183.28]:59794 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731591AbfBRNwu (ORCPT ); Mon, 18 Feb 2019 08:52:50 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 643411219AB; Mon, 18 Feb 2019 13:52:49 +0000 (UTC) Received: from localhost (unknown [10.40.205.59]) by smtp.corp.redhat.com (Postfix) with ESMTP id B42C86012C; Mon, 18 Feb 2019 13:52:48 +0000 (UTC) Date: Mon, 18 Feb 2019 14:52:47 +0100 From: Stanislaw Gruszka To: Stefan Wahren Cc: Lorenzo Bianconi , Alan Stern , Felix Fietkau , Doug Anderson , Minas Harutyunyan , USB list , linux-wireless Subject: Re: [BUG] mt76x0u: Probing issues on Raspberry Pi 3 B+ Message-ID: <20190218135247.GA9602@redhat.com> References: <20190212093035.GB12906@redhat.com> <404607590.373282.1550126997144@email.ionos.de> <20190214092530.GA17273@redhat.com> <878a7160-2e91-d057-6d27-c6b9d85f700e@i2se.com> <20190215071226.GA2372@redhat.com> <1411983628.668277.1550315118443@email.ionos.de> <20190216140739.GA2236@redhat.com> <2009016263.528260.1550344627996@email.ionos.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="zYM0uCDKw75PZbzx" Content-Disposition: inline In-Reply-To: <2009016263.528260.1550344627996@email.ionos.de> User-Agent: Mutt/1.8.3 (2017-05-23) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 18 Feb 2019 13:52:49 +0000 (UTC) Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org --zYM0uCDKw75PZbzx Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sat, Feb 16, 2019 at 08:17:07PM +0100, Stefan Wahren wrote: > this is a misunderstanding. The warning is about memory alignment to 32 bit addresses, not about page alignment. This is a typical ARM restriction. Maybe we need to make sure in mt76 that the DMA buffer needs to be aligned. But it's also possible that the warning isn't the root cause of our problem. > I see, it needs 4 bytes alignment . There is already dwc2 code checks that and allocate new buffer if the alignment is not right: dwc2_alloc_dma_aligned_buffer(), but it does nothing if urb->sg is not NULL. I thought mt76usb already provide aligned buffers, but looks it does not for one TX special case, which are PROBE REQUEST frames. Other frames are aligned by inserting L2 header pad. One solution for this would be just submit urb with NULL sg (same as Lorenzo's patches do, but still allocating buffers via buf->sg), but I think, you have right, we should provide 4 bytes aligned buffers by default as other DMA hardware may require that. I'm attaching yet another patch to test, which fix up alignment for PROBE REQUEST frames. > > Attached patch should fix this, plese test, thanks in advance. > > Anyway i tested the following patch combinations against next with the same results as 1,2,3 (no wifi, alignment warning): > 1,3 > 1,2,3,4 I noticed on my setup that patch 4 can cause troubles, but still device is workable here on my PC machines. > > > Btw i can confirm a regression was introduced after 4.19, because in 4.19 there was no firmware timeout but even no working wifi: > > > > You ment 'no working wifi' or 'working wifi'? > > Wifi is broken in 4.19, 4.20, 5.0 and next. It only worked with Lorenzo's SG avoid patches so far. Btw the regression (firmware timeout) started in 4.20. I also tested it today. That somewhat strange because 4.19 mt76x0u does not use SG. On 4.19 there is phy calibration bug fixed in 4.19.5: commit 0d9813319b40399a0d8fd761d2fcfedee5701487 Author: Lorenzo Bianconi Date: Fri Sep 7 23:13:12 2018 +0200 mt76x0: run vco calibration for each channel configuration It's possible that without this vco calibration fix, MT7610U device does not see AP if it's signal is weak. Stanislaw --zYM0uCDKw75PZbzx Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0005-mt76x02-make-sure-probe-request-skb-s-are-4-bytes-al.patch" >From d420961afd1ae2ca8590ee2c79defc0a48fa8e73 Mon Sep 17 00:00:00 2001 From: Stanislaw Gruszka Date: Mon, 18 Feb 2019 14:39:38 +0100 Subject: [PATCH] mt76x02: make sure probe request skb's are 4 bytes aligned We add 2 bytes header pad if header length is not multiple of 4 bytes, this assure most tx skb buffers are 4 bytes aligned. But this is not true for probe request frames which have n*4 bytes header length and are not aligned. I think is ok to assume that frames have to be 4 bytes aligned for DMA purpose, so mt76 driver should take care of that. Signed-off-by: Stanislaw Gruszka --- drivers/net/wireless/mediatek/mt76/mt76x02.h | 2 +- drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c | 5 +--- .../net/wireless/mediatek/mt76/mt76x02_usb_core.c | 2 +- drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 32 +++++++++++++++------- 4 files changed, 25 insertions(+), 16 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02.h b/drivers/net/wireless/mediatek/mt76/mt76x02.h index 6d96766a6ed3..ad329db7de4e 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x02.h +++ b/drivers/net/wireless/mediatek/mt76/mt76x02.h @@ -155,7 +155,7 @@ void mt76x02_set_tx_ackto(struct mt76x02_dev *dev); void mt76x02_set_coverage_class(struct ieee80211_hw *hw, s16 coverage_class); int mt76x02_set_rts_threshold(struct ieee80211_hw *hw, u32 val); -int mt76x02_insert_hdr_pad(struct sk_buff *skb); +void mt76x02_align_skb(struct sk_buff *skb); void mt76x02_remove_hdr_pad(struct sk_buff *skb, int len); bool mt76x02_tx_status_data(struct mt76_dev *mdev, u8 *update); void mt76x02_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q, diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c b/drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c index a5413a309a0a..63c5520a65ca 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c @@ -163,7 +163,6 @@ int mt76x02_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr, struct mt76x02_txwi *txwi = txwi_ptr; int qsel = MT_QSEL_EDCA; int pid; - int ret; if (q == &dev->mt76.q_tx[MT_TXQ_PSD] && wcid && wcid->idx < 128) mt76x02_mac_wcid_set_drop(dev, wcid->idx, false); @@ -173,9 +172,7 @@ int mt76x02_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr, pid = mt76_tx_status_skb_add(mdev, wcid, skb); txwi->pktid = pid; - ret = mt76x02_insert_hdr_pad(skb); - if (ret < 0) - return ret; + mt76x02_align_skb(skb); if (pid >= MT_PACKET_ID_FIRST) qsel = MT_QSEL_MGMT; diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c b/drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c index 098d05e109e7..bd5838c26f43 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c @@ -79,7 +79,7 @@ int mt76x02u_tx_prepare_skb(struct mt76_dev *mdev, void *data, u32 flags; int pid; - mt76x02_insert_hdr_pad(skb); + mt76x02_align_skb(skb); txwi = skb_push(skb, sizeof(struct mt76x02_txwi)); mt76x02_mac_write_txwi(dev, txwi, skb, wcid, sta, len); diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c index 062614ad0d51..08425b1d2c30 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c @@ -550,21 +550,33 @@ void mt76x02_sta_rate_tbl_update(struct ieee80211_hw *hw, } EXPORT_SYMBOL_GPL(mt76x02_sta_rate_tbl_update); -int mt76x02_insert_hdr_pad(struct sk_buff *skb) +void mt76x02_align_skb(struct sk_buff *skb) { - int len = ieee80211_get_hdrlen_from_skb(skb); + int align = ((unsigned long) skb->data) & 3; + int hdrlen, skblen; - if (len % 4 == 0) - return 0; + hdrlen = ieee80211_get_hdrlen_from_skb(skb); + WARN_ON_ONCE(align == 0 && (hdrlen & 3)); + + if (align == 0) + return; - skb_push(skb, 2); - memmove(skb->data, skb->data + 2, len); + if (hdrlen & 3) { + /* Align frame and add 2 bytes pad after header. */ + skb_push(skb, 2); + memmove(skb->data, skb->data + 2, hdrlen); - skb->data[len] = 0; - skb->data[len + 1] = 0; - return 2; + skb->data[hdrlen] = 0; + skb->data[hdrlen + 1] = 0; + } else { + /* Only for probe request frames. */ + skblen = skb->len; + skb_push(skb, 2); + memmove(skb->data, skb->data + 2, skblen); + skb_trim(skb, skblen); + } } -EXPORT_SYMBOL_GPL(mt76x02_insert_hdr_pad); +EXPORT_SYMBOL_GPL(mt76x02_align_skb); void mt76x02_remove_hdr_pad(struct sk_buff *skb, int len) { -- 2.7.5 --zYM0uCDKw75PZbzx--