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: <20190219104208.GA22999@redhat.com> Date: Tue, 19 Feb 2019 11:42:15 +0100 To: Felix Fietkau Cc: Stefan Wahren , Lorenzo Bianconi , Alan Stern , Doug Anderson , Minas Harutyunyan , USB list , linux-wireless List-ID: T24gTW9uLCBGZWIgMTgsIDIwMTkgYXQgMDc6NTI6MjdQTSArMDEwMCwgRmVsaXggRmlldGthdSB3 cm90ZToKPiBPbiAyMDE5LTAyLTE4IDE2OjAzLCBTdGFuaXNsYXcgR3J1c3prYSB3cm90ZToKPiA+ IE9uIE1vbiwgRmViIDE4LCAyMDE5IGF0IDAzOjQzOjI2UE0gKzAxMDAsIEZlbGl4IEZpZXRrYXUg d3JvdGU6Cj4gPj4gT24gMjAxOS0wMi0xOCAxNDo1MiwgU3RhbmlzbGF3IEdydXN6a2Egd3JvdGU6 Cj4gPj4gPiBPbiBTYXQsIEZlYiAxNiwgMjAxOSBhdCAwODoxNzowN1BNICswMTAwLCBTdGVmYW4g V2FocmVuIHdyb3RlOgo+ID4+ID4+IHRoaXMgaXMgYSBtaXN1bmRlcnN0YW5kaW5nLiBUaGUgd2Fy bmluZyBpcyBhYm91dCBtZW1vcnkgYWxpZ25tZW50IHRvIDMyIGJpdCBhZGRyZXNzZXMsIG5vdCBh Ym91dCBwYWdlIGFsaWdubWVudC4gVGhpcyBpcyBhIHR5cGljYWwgQVJNIHJlc3RyaWN0aW9uLiBN YXliZSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSBpbiBtdDc2IHRoYXQgdGhlIERNQSBidWZmZXIgbmVl ZHMgdG8gYmUgYWxpZ25lZC4gQnV0IGl0J3MgYWxzbyBwb3NzaWJsZSB0aGF0IHRoZSB3YXJuaW5n IGlzbid0IHRoZSByb290IGNhdXNlIG9mIG91ciBwcm9ibGVtLgo+ID4+ID4+IAo+ID4+ID4gCj4g Pj4gPiBJIHNlZSwgaXQgbmVlZHMgNCBieXRlcyBhbGlnbm1lbnQgLiBUaGVyZSBpcyBhbHJlYWR5 IGR3YzIgY29kZSBjaGVja3MKPiA+PiA+IHRoYXQgYW5kIGFsbG9jYXRlIG5ldyBidWZmZXIgaWYg dGhlIGFsaWdubWVudCBpcyBub3QgcmlnaHQ6Cj4gPj4gPiBkd2MyX2FsbG9jX2RtYV9hbGlnbmVk X2J1ZmZlcigpLCBidXQgaXQgZG9lcyBub3RoaW5nIGlmIHVyYi0+c2cKPiA+PiA+IGlzIG5vdCBO VUxMLiBJIHRob3VnaHQgbXQ3NnVzYiBhbHJlYWR5IHByb3ZpZGUgYWxpZ25lZCBidWZmZXJzLCBi dXQKPiA+PiA+IGxvb2tzIGl0IGRvZXMgbm90IGZvciBvbmUgVFggc3BlY2lhbCBjYXNlLCB3aGlj aCBhcmUgUFJPQkUgUkVRVUVTVAo+ID4+ID4gZnJhbWVzLiBPdGhlciBmcmFtZXMgYXJlIGFsaWdu ZWQgYnkgaW5zZXJ0aW5nIEwyIGhlYWRlciBwYWQuIE9uZQo+ID4+ID4gc29sdXRpb24gZm9yIHRo aXMgd291bGQgYmUganVzdCBzdWJtaXQgdXJiIHdpdGggIE5VTEwgc2cgKHNhbWUgYXMKPiA+PiA+ IExvcmVuem8ncyBwYXRjaGVzIGRvLCBidXQgc3RpbGwgYWxsb2NhdGluZyBidWZmZXJzIHZpYSBi dWYtPnNnKSwKPiA+PiA+IGJ1dCBJIHRoaW5rLCB5b3UgaGF2ZSByaWdodCwgd2Ugc2hvdWxkIHBy b3ZpZGUgNCBieXRlcyBhbGlnbmVkIGJ1ZmZlcnMKPiA+PiA+IGJ5IGRlZmF1bHQgYXMgb3RoZXIg RE1BIGhhcmR3YXJlIG1heSByZXF1aXJlIHRoYXQuIEknbSBhdHRhY2hpbmcgeWV0Cj4gPj4gPiBh bm90aGVyIHBhdGNoIHRvIHRlc3QsIHdoaWNoIGZpeCB1cCBhbGlnbm1lbnQgZm9yIFBST0JFIFJF UVVFU1QgZnJhbWVzLgo+ID4+IFRoaXMgYXBwcm9hY2ggbG9va3MgY29tcGxldGVseSB3cm9uZyB0 byBtZS4gTU1JTyBiYXNlZCBoYXJkd2FyZSBkb2VzIG5vdAo+ID4+IG5lZWQgNC1ieXRlIGFsaWdu ZWQgYnVmZmVycyBhdCBhbGwsIG90aGVyIFVTQiBjb250cm9sbGVycyBkbyBub3QgbmVlZAo+ID4+ IHRoaXMgZWl0aGVyLgo+ID4+IEFzIExvcmVuem8gYWxyZWFkeSBwb2ludGVkIG91dCwgcmUtYWxp Z25pbmcgdGhlIGJ1ZmZlciBpcyAqdmVyeSoKPiA+PiBleHBlbnNpdmUsIHNvIHdlIHNob3VsZCBu b3QgZG8gdGhpcyBpbiB0aGUgZHJpdmVyIGp1c3QgdG8gd29yayBhcm91bmQKPiA+PiBxdWlya3Mg aW4gYSBwYXJ0aWN1bGFyIFVTQiBob3N0IGRyaXZlci4KPiA+IAo+ID4gSSBkZWNpZGVkIHRvIHRo aXMgcGF0Y2ggYmVjYXVzZSBJIHRob3VnaHQgc29tZSBvdGhlciBVU0IgJiBNTUlPIERNQQo+ID4g cGxhdGZvcm1zIG1pZ2h0IGFsc28gcmVxdWlyZSB0aGlzIGFsaWdubWVudC4gQnV0IGl0IHdhcyBu ZXZlciB0cmlnZ2VyZWQKPiA+IGluIE1NSU8gYmVjYXVzZSBvbiB0aG9zZSBtdDc2IGlzIHVzZWQg aW4gQVAgbW9kZSwgaGVuY2Ugbm8gUFJPQkUKPiA+IFJFUVVFU1QgZnJhbWVzIChhbmQgc2NhbiBj YW4gYmUgcGFzc2l2ZSBvbiBTVEEgbW9kZSkuCj4gbXQ3NiBpcyByZWd1bGFybHkgdXNlZCBhbmQg dGVzdGVkIGluIFNUQSBhbmQgTWVzaCBtb2RlIGFzIHdlbGwuCj4gTm8gRE1BIGFsaWdubWVudCBy ZWxhdGVkIGlzc3VlcyB0aGVyZS4KClRoZSBxdWVzdGlvbiBpcyB3aHkgd2UgbmVlZCB0byBkbyAy IGJ5dGVzIGhlYWRlciBwYWQgPyBJcyB0aGlzIGJlY2F1c2UKaWVlZTgwMi4xMSBoZWFkZXIgbGVu Z3RoIGZvciBtdDc2IGhhcmR3YXJlIGhhcyB0byBiZSBtdWx0aXBsZSBvZiA0IG9yCml0IGhhcyB0 byBiZSBhbGlnbmVkIHRvIDQgYnl0ZXM/IEl0IHdvdWxkIGJlIHN0cmFuZ2UgaWYgbGVuZ3RoIGhh cwp0byBiZSBmaXhlZCB0byA0IGJ5dGVzIGFuZCBhbGlnbm1lbnQgbm90LiBIb3dldmVyIHRoaXMg Y291bGQgYmUKbmVlZGVkIG9uIHNvbWUgcGxhdGZvcm1zIGFuZCBub3Qgb24gb3RoZXJzLiAKIAo+ ID4+IFRoZSB3YXkgSSBzZWUgaXQsIHdlIGhhdmUgdHdvIGNob2ljZXMuCj4gPj4gMS4gRml4IGR3 YzIgdG8gZG8gaXRzIGFsaWdubWVudCBxdWlyayBmb3IgdGhlIHVyYi0+c2cgIT0gTlVMTCBjYXNl Cj4gPj4gMi4gUmVseSBvbiB1cmItPnRyYW5zZmVyX2J1ZmZlciBhbmQga2VlcCB1cmItPnNnIE5V TEwKPiA+IAo+ID4gSSBhZ3JlZSwgaWYgdGhpcyBpcyBvbmx5IG5lZWRlZCBmb3IgZHdjMi4gVGhv dWdoIEkgd291bGQgaW52ZXN0aWdhdGUKPiA+IGlmIHRoaXMgaXMgbm90IGEgYnVnIG9uIG90aGVy IHBsYXRmb3JtcyBhcyB3ZWxsLgo+ID5Gcm9tIHdoYXQgSSBjYW4gc2VlLCB1c2luZyBMb3Jlbnpv J3MgcGF0Y2hlcyBzZWVtcyB0byBiZSB0aGUgYmV0dGVyCj4gc29sdXRpb24sIHNpbmNlIHRoZXkg YXZvaWQgdGhlc2UgY29ybmVyIGNhc2VzIGluIGR3YzIgKGFuZCBtYXliZSBvdGhlcgo+IGRyaXZl cnMgYXMgd2VsbCkuIEkgd2lsbCBhcHBseSB0aGVtIGFuZCB0aGVuIHdlJ2xsIHNlZSBpZiB3ZSBu ZWVkIHRvIGRvCj4gYW55IGZ1cnRoZXIgaW1wcm92ZW1lbnRzIGxhdGVyIG9uLgoKVGhleSB3b3Jr IG9uIHJwaSBkd2MyLCBidXQgdGhleSBkbyBub3QgYWRkcmVzcyByb290IG9mIHRoZSBwcm9ibGVt LgpUaGVyZSBpcyBjbGVhcmx5IHNvbWV0aGluZyB3cm9uZyBob3cgbXQ3NnVzYiBoYW5kbGUgU0cs IHdoYXQgaXMgbm90CmZpeGVkLiBBbmQgYWRkaW5nIGRpc2FibGVfdXNiX3NnIG1vZHVsZSBwYXJh bWV0ZXIgZm9yIGhjZCdzIHN1cHBvcnRpbmcKU0cgc2hvdWxkIGJlIHJlZCBmbGFnLgoKU3Rhbmlz bGF3Cg== 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=-2.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,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 E40C2C43381 for ; Tue, 19 Feb 2019 10:43:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B4A2E21773 for ; Tue, 19 Feb 2019 10:43:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727822AbfBSKmW (ORCPT ); Tue, 19 Feb 2019 05:42:22 -0500 Received: from mx1.redhat.com ([209.132.183.28]:41264 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726969AbfBSKmW (ORCPT ); Tue, 19 Feb 2019 05:42:22 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 14F1DC051684; Tue, 19 Feb 2019 10:42:21 +0000 (UTC) Received: from localhost (unknown [10.43.2.44]) by smtp.corp.redhat.com (Postfix) with ESMTP id 04B0B61B6E; Tue, 19 Feb 2019 10:42:17 +0000 (UTC) Date: Tue, 19 Feb 2019 11:42:15 +0100 From: Stanislaw Gruszka To: Felix Fietkau Cc: Stefan Wahren , Lorenzo Bianconi , Alan Stern , Doug Anderson , Minas Harutyunyan , USB list , linux-wireless Subject: Re: [BUG] mt76x0u: Probing issues on Raspberry Pi 3 B+ Message-ID: <20190219104208.GA22999@redhat.com> References: <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> <20190218135247.GA9602@redhat.com> <0e29e99a-6ed4-40fe-1f38-30f1b5530a16@nbd.name> <20190218150303.GD9602@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Tue, 19 Feb 2019 10:42:21 +0000 (UTC) Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org On Mon, Feb 18, 2019 at 07:52:27PM +0100, Felix Fietkau wrote: > On 2019-02-18 16:03, Stanislaw Gruszka wrote: > > On Mon, Feb 18, 2019 at 03:43:26PM +0100, Felix Fietkau wrote: > >> On 2019-02-18 14:52, Stanislaw Gruszka wrote: > >> > 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. > >> This approach looks completely wrong to me. MMIO based hardware does not > >> need 4-byte aligned buffers at all, other USB controllers do not need > >> this either. > >> As Lorenzo already pointed out, re-aligning the buffer is *very* > >> expensive, so we should not do this in the driver just to work around > >> quirks in a particular USB host driver. > > > > I decided to this patch because I thought some other USB & MMIO DMA > > platforms might also require this alignment. But it was never triggered > > in MMIO because on those mt76 is used in AP mode, hence no PROBE > > REQUEST frames (and scan can be passive on STA mode). > mt76 is regularly used and tested in STA and Mesh mode as well. > No DMA alignment related issues there. The question is why we need to do 2 bytes header pad ? Is this because ieee802.11 header length for mt76 hardware has to be multiple of 4 or it has to be aligned to 4 bytes? It would be strange if length has to be fixed to 4 bytes and alignment not. However this could be needed on some platforms and not on others. > >> The way I see it, we have two choices. > >> 1. Fix dwc2 to do its alignment quirk for the urb->sg != NULL case > >> 2. Rely on urb->transfer_buffer and keep urb->sg NULL > > > > I agree, if this is only needed for dwc2. Though I would investigate > > if this is not a bug on other platforms as well. > >From what I can see, using Lorenzo's patches seems to be the better > solution, since they avoid these corner cases in dwc2 (and maybe other > drivers as well). I will apply them and then we'll see if we need to do > any further improvements later on. They work on rpi dwc2, but they do not address root of the problem. There is clearly something wrong how mt76usb handle SG, what is not fixed. And adding disable_usb_sg module parameter for hcd's supporting SG should be red flag. Stanislaw