From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-wm0-f48.google.com ([74.125.82.48]:35701 "EHLO mail-wm0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966501AbcKOJ5Z (ORCPT ); Tue, 15 Nov 2016 04:57:25 -0500 Received: by mail-wm0-f48.google.com with SMTP id a197so155618934wmd.0 for ; Tue, 15 Nov 2016 01:57:24 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <1479141222-8493-3-git-send-email-erik.stromdahl@gmail.com> References: <1479141222-8493-1-git-send-email-erik.stromdahl@gmail.com> <1479141222-8493-3-git-send-email-erik.stromdahl@gmail.com> From: Michal Kazior Date: Tue, 15 Nov 2016 10:57:23 +0100 Message-ID: (sfid-20161115_105734_634075_CF51A0EC) Subject: Re: [RFC 02/12] ath10k: htc: rx trailer lookahead support To: Erik Stromdahl Cc: Kalle Valo , linux-wireless , "ath10k@lists.infradead.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-wireless-owner@vger.kernel.org List-ID: On 14 November 2016 at 17:33, Erik Stromdahl wro= te: > The RX trailer parsing is now capable of parsing lookahead reports. > This is needed by SDIO/mbox. It'd be useful to know what exactly lookahead will be used for. What payload does it carry. > Signed-off-by: Erik Stromdahl > --- > drivers/net/wireless/ath/ath10k/htc.c | 91 +++++++++++++++++++++++++++= +++++- > drivers/net/wireless/ath/ath10k/htc.h | 30 +++++++++-- > 2 files changed, 116 insertions(+), 5 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless= /ath/ath10k/htc.c > index 26b1e15..e3f7bf4 100644 > --- a/drivers/net/wireless/ath/ath10k/htc.c > +++ b/drivers/net/wireless/ath/ath10k/htc.c > @@ -228,10 +228,74 @@ void ath10k_htc_tx_completion_handler(struct ath10k= *ar, struct sk_buff *skb) > spin_unlock_bh(&htc->tx_lock); > } > > +static int > +ath10k_htc_process_lookahead(struct ath10k_htc *htc, > + const struct ath10k_htc_lookahead_report *re= port, > + int len, > + enum ath10k_htc_ep_id eid, > + u32 *next_lk_ahds, next_lk_ahds should be u8 or void. From what I understand by glancing through the code it is an agnostic buffer that carries payload which is later interpreted either as eid or htc header, right? void is probably most suitable in this case for passing around and u8 for inline-based storage. I'd also avoid silly abbreviations. Probably "lookahead" alone is enough. > + int *next_lk_ahds_len) > +{ > + struct ath10k *ar =3D htc->ar; > + > + if (report->pre_valid !=3D ((~report->post_valid) & 0xFF)) > + /* Invalid lookahead flags are actually transmitted by > + * the target in the HTC control message. > + * Since this will happen at every boot we silently ignor= e > + * the lookahead in this case > + */ I'd put this comment before the if(). > + return 0; > + > + if (next_lk_ahds && next_lk_ahds_len) { > + ath10k_dbg(ar, ATH10K_DBG_HTC, > + "htc rx lk_ahd found pre_valid 0x%x post_valid= 0x%x\n", > + report->pre_valid, report->post_valid); > + > + /* look ahead bytes are valid, copy them over */ > + memcpy((u8 *)&next_lk_ahds[0], report->lk_ahd, 4); > + > + *next_lk_ahds_len =3D 1; > + } > + > + return 0; > +} > + > +static int > +ath10k_htc_process_lookahead_bundle(struct ath10k_htc *htc, > + const struct ath10k_htc_lookahead_rep= ort_bundle *report, > + int len, > + enum ath10k_htc_ep_id eid, > + u32 *next_lk_ahds, Ditto. void. > + int *next_lk_ahds_len) > +{ > + int bundle_cnt =3D len / sizeof(*report); > + > + if (!bundle_cnt || (bundle_cnt > HTC_HOST_MAX_MSG_PER_BUNDLE)) { > + WARN_ON(1); This should be ath10k_warn() instead. This isn't internal driver flow assertion. It is possible firmware bug or revision misalignment instead. > + return -EINVAL; > + } > + > + if (next_lk_ahds && next_lk_ahds_len) { > + int i; > + > + for (i =3D 0; i < bundle_cnt; i++) { > + memcpy((u8 *)&next_lk_ahds[i], report->lk_ahd, > + sizeof(u32)); You'll need to re-adjust the &x[i] to maintain proper offset with void poin= ter. Micha=C5=82 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-wm0-x22b.google.com ([2a00:1450:400c:c09::22b]) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1c6aUt-0007zP-Nl for ath10k@lists.infradead.org; Tue, 15 Nov 2016 09:57:49 +0000 Received: by mail-wm0-x22b.google.com with SMTP id t79so156961047wmt.0 for ; Tue, 15 Nov 2016 01:57:25 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <1479141222-8493-3-git-send-email-erik.stromdahl@gmail.com> References: <1479141222-8493-1-git-send-email-erik.stromdahl@gmail.com> <1479141222-8493-3-git-send-email-erik.stromdahl@gmail.com> From: Michal Kazior Date: Tue, 15 Nov 2016 10:57:23 +0100 Message-ID: Subject: Re: [RFC 02/12] ath10k: htc: rx trailer lookahead support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "ath10k" Errors-To: ath10k-bounces+kvalo=adurom.com@lists.infradead.org To: Erik Stromdahl Cc: Kalle Valo , linux-wireless , "ath10k@lists.infradead.org" T24gMTQgTm92ZW1iZXIgMjAxNiBhdCAxNzozMywgRXJpayBTdHJvbWRhaGwgPGVyaWsuc3Ryb21k YWhsQGdtYWlsLmNvbT4gd3JvdGU6Cj4gVGhlIFJYIHRyYWlsZXIgcGFyc2luZyBpcyBub3cgY2Fw YWJsZSBvZiBwYXJzaW5nIGxvb2thaGVhZCByZXBvcnRzLgo+IFRoaXMgaXMgbmVlZGVkIGJ5IFNE SU8vbWJveC4KCkl0J2QgYmUgdXNlZnVsIHRvIGtub3cgd2hhdCBleGFjdGx5IGxvb2thaGVhZCB3 aWxsIGJlIHVzZWQgZm9yLiBXaGF0CnBheWxvYWQgZG9lcyBpdCBjYXJyeS4KCgo+IFNpZ25lZC1v ZmYtYnk6IEVyaWsgU3Ryb21kYWhsIDxlcmlrLnN0cm9tZGFobEBnbWFpbC5jb20+Cj4gLS0tCj4g IGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHRjLmMgfCAgIDkxICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQo+ICBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBr L2h0Yy5oIHwgICAzMCArKysrKysrKystLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDExNiBpbnNlcnRp b25zKCspLCA1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvaHRjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h0 Yy5jCj4gaW5kZXggMjZiMWUxNS4uZTNmN2JmNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL2h0Yy5jCj4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDEway9odGMuYwo+IEBAIC0yMjgsMTAgKzIyOCw3NCBAQCB2b2lkIGF0aDEwa19odGNfdHhf Y29tcGxldGlvbl9oYW5kbGVyKHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQo+ICAgICAgICAgc3Bpbl91bmxvY2tfYmgoJmh0Yy0+dHhfbG9jayk7Cj4gIH0KPgo+ICtzdGF0 aWMgaW50Cj4gK2F0aDEwa19odGNfcHJvY2Vzc19sb29rYWhlYWQoc3RydWN0IGF0aDEwa19odGMg Kmh0YywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdGgxMGtf aHRjX2xvb2thaGVhZF9yZXBvcnQgKnJlcG9ydCwKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBsZW4sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGF0aDEwa19o dGNfZXBfaWQgZWlkLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyICpuZXh0X2xr X2FoZHMsCgpuZXh0X2xrX2FoZHMgc2hvdWxkIGJlIHU4IG9yIHZvaWQuIEZyb20gd2hhdCBJIHVu ZGVyc3RhbmQgYnkgZ2xhbmNpbmcKdGhyb3VnaCB0aGUgY29kZSBpdCBpcyBhbiBhZ25vc3RpYyBi dWZmZXIgdGhhdCBjYXJyaWVzIHBheWxvYWQgd2hpY2gKaXMgbGF0ZXIgaW50ZXJwcmV0ZWQgZWl0 aGVyIGFzIGVpZCBvciBodGMgaGVhZGVyLCByaWdodD8gdm9pZCBpcwpwcm9iYWJseSBtb3N0IHN1 aXRhYmxlIGluIHRoaXMgY2FzZSBmb3IgcGFzc2luZyBhcm91bmQgYW5kIHU4IGZvcgppbmxpbmUt YmFzZWQgc3RvcmFnZS4KCkknZCBhbHNvIGF2b2lkIHNpbGx5IGFiYnJldmlhdGlvbnMuIFByb2Jh Ymx5ICJsb29rYWhlYWQiIGFsb25lIGlzIGVub3VnaC4KCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgKm5leHRfbGtfYWhkc19sZW4pCj4gK3sKPiArICAgICAgIHN0cnVjdCBhdGgx MGsgKmFyID0gaHRjLT5hcjsKPiArCj4gKyAgICAgICBpZiAocmVwb3J0LT5wcmVfdmFsaWQgIT0g KCh+cmVwb3J0LT5wb3N0X3ZhbGlkKSAmIDB4RkYpKQo+ICsgICAgICAgICAgICAgICAvKiBJbnZh bGlkIGxvb2thaGVhZCBmbGFncyBhcmUgYWN0dWFsbHkgdHJhbnNtaXR0ZWQgYnkKPiArICAgICAg ICAgICAgICAgICogdGhlIHRhcmdldCBpbiB0aGUgSFRDIGNvbnRyb2wgbWVzc2FnZS4KPiArICAg ICAgICAgICAgICAgICogU2luY2UgdGhpcyB3aWxsIGhhcHBlbiBhdCBldmVyeSBib290IHdlIHNp bGVudGx5IGlnbm9yZQo+ICsgICAgICAgICAgICAgICAgKiB0aGUgbG9va2FoZWFkIGluIHRoaXMg Y2FzZQo+ICsgICAgICAgICAgICAgICAgKi8KCkknZCBwdXQgdGhpcyBjb21tZW50IGJlZm9yZSB0 aGUgaWYoKS4KCgo+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPiArCj4gKyAgICAgICBpZiAo bmV4dF9sa19haGRzICYmIG5leHRfbGtfYWhkc19sZW4pIHsKPiArICAgICAgICAgICAgICAgYXRo MTBrX2RiZyhhciwgQVRIMTBLX0RCR19IVEMsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg Imh0YyByeCBsa19haGQgZm91bmQgcHJlX3ZhbGlkIDB4JXggcG9zdF92YWxpZCAweCV4XG4iLAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydC0+cHJlX3ZhbGlkLCByZXBvcnQtPnBv c3RfdmFsaWQpOwo+ICsKPiArICAgICAgICAgICAgICAgLyogbG9vayBhaGVhZCBieXRlcyBhcmUg dmFsaWQsIGNvcHkgdGhlbSBvdmVyICovCj4gKyAgICAgICAgICAgICAgIG1lbWNweSgodTggKikm bmV4dF9sa19haGRzWzBdLCByZXBvcnQtPmxrX2FoZCwgNCk7Cj4gKwo+ICsgICAgICAgICAgICAg ICAqbmV4dF9sa19haGRzX2xlbiA9IDE7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgcmV0dXJu IDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQKPiArYXRoMTBrX2h0Y19wcm9jZXNzX2xvb2thaGVh ZF9idW5kbGUoc3RydWN0IGF0aDEwa19odGMgKmh0YywKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYXRoMTBrX2h0Y19sb29rYWhlYWRfcmVwb3J0X2J1 bmRsZSAqcmVwb3J0LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBs ZW4sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBhdGgxMGtfaHRj X2VwX2lkIGVpZCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgKm5l eHRfbGtfYWhkcywKCkRpdHRvLiB2b2lkLgoKCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50ICpuZXh0X2xrX2FoZHNfbGVuKQo+ICt7Cj4gKyAgICAgICBpbnQgYnVuZGxl X2NudCA9IGxlbiAvIHNpemVvZigqcmVwb3J0KTsKPiArCj4gKyAgICAgICBpZiAoIWJ1bmRsZV9j bnQgfHwgKGJ1bmRsZV9jbnQgPiBIVENfSE9TVF9NQVhfTVNHX1BFUl9CVU5ETEUpKSB7Cj4gKyAg ICAgICAgICAgICAgIFdBUk5fT04oMSk7CgpUaGlzIHNob3VsZCBiZSBhdGgxMGtfd2FybigpIGlu c3RlYWQuIFRoaXMgaXNuJ3QgaW50ZXJuYWwgZHJpdmVyIGZsb3cKYXNzZXJ0aW9uLiBJdCBpcyBw b3NzaWJsZSBmaXJtd2FyZSBidWcgb3IgcmV2aXNpb24gbWlzYWxpZ25tZW50Cmluc3RlYWQuCgoK PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAg ICAgaWYgKG5leHRfbGtfYWhkcyAmJiBuZXh0X2xrX2FoZHNfbGVuKSB7Cj4gKyAgICAgICAgICAg ICAgIGludCBpOwo+ICsKPiArICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ1bmRsZV9j bnQ7IGkrKykgewo+ICsgICAgICAgICAgICAgICAgICAgICAgIG1lbWNweSgodTggKikmbmV4dF9s a19haGRzW2ldLCByZXBvcnQtPmxrX2FoZCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mKHUzMikpOwoKWW91J2xsIG5lZWQgdG8gcmUtYWRqdXN0IHRoZSAmeFtpXSB0byBt YWludGFpbiBwcm9wZXIgb2Zmc2V0IHdpdGggdm9pZCBwb2ludGVyLgoKCk1pY2hhxYIKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmF0aDEwayBtYWlsaW5n IGxpc3QKYXRoMTBrQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9hdGgxMGsK