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: usb: dwc3: core: Add quirk for enabling AutoRetry feature in the controller From: Felipe Balbi Message-Id: <877eli1c72.fsf@linux.intel.com> Date: Thu, 26 Jul 2018 14:14:09 +0300 To: Anurag Kumar Vulisha , Rob Herring Cc: "gregkh@linuxfoundation.org" , "mark.rutland@arm.com" , "v.anuragkumar@gmail.com" , "linux-usb@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" List-ID: aGksCgpBbnVyYWcgS3VtYXIgVnVsaXNoYSA8YW51cmFna3VAeGlsaW54LmNvbT4gd3JpdGVzOgo+ IEhpIFJvYiwKPgo+IFRoYW5rcyBmb3IgeW91ciBjb21tZW50cywgcGxlYXNlIHNlZSBteSBjb21t ZW50cyBpbmxpbmUKPgo+Pi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+RnJvbTogUm9iIEhl cnJpbmcgW21haWx0bzpyb2JoQGtlcm5lbC5vcmddCj4+U2VudDogVGh1cnNkYXksIEp1bHkgMjYs IDIwMTggMTozMyBBTQo+PlRvOiBBbnVyYWcgS3VtYXIgVnVsaXNoYSA8YW51cmFna3VAeGlsaW54 LmNvbT4KPj5DYzogZ3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc7IG1hcmsucnV0bGFuZEBhcm0u Y29tOyBiYWxiaUBrZXJuZWwub3JnOwo+PnYuYW51cmFna3VtYXJAZ21haWwuY29tOyBsaW51eC11 c2JAdmdlci5rZXJuZWwub3JnOyBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZzsKPj5saW51eC1r ZXJuZWxAdmdlci5rZXJuZWwub3JnCj4+U3ViamVjdDogUmU6IFtQQVRDSF0gdXNiOiBkd2MzOiBj b3JlOiBBZGQgcXVpcmsgZm9yIGVuYWJsaW5nIEF1dG9SZXRyeSBmZWF0dXJlIGluIHRoZQo+PmNv bnRyb2xsZXIKPj4KPj5PbiBTYXQsIEp1bCAyMSwgMjAxOCBhdCAwMzo1ODo0MFBNICswNTMwLCBB bnVyYWcgS3VtYXIgVnVsaXNoYSB3cm90ZToKPj4+IEJ5IGRlZmF1bHQgd2hlbiBjb3JlIHNlZXMg YW55IHRyYW5zYWN0aW9uIGVycm9yKENSQyBvciBvdmVyZmxvdykKPj4+IGl0IHJlcGxpZXMgd2l0 aCB0ZXJtaW5hdGluZyByZXRyeSBBQ0sgKFJldHJ5PTEgYW5kIE51bXAgPT0gMCkuCj4+PiBFbmFi bGluZyB0aGlzIEF1dG8gUmV0cnkgZmVhdHVyZSBpbiBjb250cm9sbGVyLCBvbiBzZWVpbmcgYW55 Cj4+PiB0cmFuc2FjdGlvbiBlcnJvcnMgbWFrZXMgdGhlIGNvcmUgdG8gc2VuZCBhbiBub24tdGVy bWluYXRpbmcgQUNLCj4+PiB0cmFuc2FjdGlvbiBwYWNrZXQgKHRoYXQgaXMsIEFDSyBUUCB3aXRo IFJldHJ5PTEgYW5kIE51bXAgIT0gMCkuCj4+PiBEb2luZyBzbyB3aWxsIGdpdmUgY29udHJvbGxl ciBhIGNoYW5jZSB0byByZWNvdmVyIGZyb20gdGhlIGVycm9yCj4+PiBjb25kaXRpb24uCj4+Pgo+ Pj4gU2lnbmVkLW9mZi1ieTogQW51cmFnIEt1bWFyIFZ1bGlzaGEgPGFudXJhZy5rdW1hci52dWxp c2hhQHhpbGlueC5jb20+Cj4+PiAtLS0KPj4+ICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu ZGluZ3MvdXNiL2R3YzMudHh0IHwgIDUgKysrKysKPj4+ICBkcml2ZXJzL3VzYi9kd2MzL2NvcmUu YyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKysrKysrKysrKwo+Pj4gIGRyaXZl cnMvdXNiL2R3YzMvY29yZS5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKysrKysKPj4+ ICAzIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKykKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEv RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3VzYi9kd2MzLnR4dAo+PmIvRG9jdW1l bnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3VzYi9kd2MzLnR4dAo+Pj4gaW5kZXggN2YxM2Vi ZS4uMmJhMmJjMiAxMDA2NDQKPj4+IC0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy91c2IvZHdjMy50eHQKPj4+ICsrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy91c2IvZHdjMy50eHQKPj4+IEBAIC05NCw2ICs5NCwxMSBAQCBPcHRpb25hbCBwcm9wZXJ0 aWVzOgo+Pj4gIAkJCXRoaXMgYW5kIHR4LXRoci1udW0tcGt0LXByZCB0byBhIHZhbGlkLCBub24t emVybyB2YWx1ZQo+Pj4gIAkJCTEtMTYgKERXQ191c2IzMSBwcm9ncmFtbWluZyBndWlkZSBzZWN0 aW9uIDEuMi4zKSB0bwo+Pj4gIAkJCWVuYWJsZSBwZXJpb2RpYyBFU1MgVFggdGhyZXNob2xkLgo+ Pj4gKyAtIHNucHMsZW5hYmxlX2F1dG9fcmV0cnk6IFNldCB0byBlbmFibGUgQXV0byByZXRyeSBG ZWF0dXJlIHRvIG1ha2UgdGhlCj4+Cj4+cy9fLy0vCj4gU29ycnksIEkgYW0gbm90IGFibGUgdG8g dW5kZXJzdGFuZCB3aGF0IG5lZWRzIHRvIGZpeGVkIGhlcmUuIFBsZWFzZSBoZWxwIG1lIGluCj4g dW5kZXJzdGFuZGluZywgc28gdGhhdCBJIGNhbiBmaXggaXQgaW4gdjIuCgpyZXBsYWNlIF8gd2l0 aCAtCgo+Pj4gKwkJCWNvbnRyb2xsZXIgb3BlcmF0aW5nIGluIEhvc3QgbW9kZSBvbiBzZWVpbmcg dHJhbnNhY3Rpb24KPj4+ICsJCQllcnJvcnMoQ1JDIGVycm9ycyBvciBpbnRlcm5hbCBvdmVycnVu IHNjZW5lcmlvcykgb24gSU4KPj4+ICsJCQl0cmFuc2ZlcnMgdG8gcmVwbHkgdG8gdGhlIGRldmlj ZSB3aXRoIGEgbm9uLXRlcm1pbmF0aW5nCj4+PiArCQkJcmV0cnkgQUNLIChpLmUsIGFuIEFDSyBU UCB3aXRoIFJldHJ5PTEgJiBOdW1wICE9IDApCj4+Cj4+U2VlbXMgbGlrZSB0aGUgcHJvcGVydHkg aXMgdW5uZWNlc3NhcnkuIFdoZW4gd291bGQgeW91IG5vdCB3YW50IHRoaXMKPj5yZXRyeSBiZWhh dmlvcj8gV2h5IG5vdCBqdXN0IGVuYWJsZSB1bmNvbmRpdGlvbmFsbHkgaW4gdGhlIGRyaXZlcj8K Pj4KPiBUaGVyZSBpcyBubyBoYXJtIGluIGFkZGluZyB0aGlzIGZpeCBhbHdheXMgYnV0IEkgdGhp bmsgdGhpcyBSZXRyeQo+IGZlYXR1cmUgc2hvdWxkIGJlIGFkZGVkIGRlcGVuZGluZyBvbiB0aGUg dXNlciBhbmQgdHlwZSBvZiB0aGUKPiBhcHBsaWNhdGlvbi4gRm9yIGV4YW1wbGUsIGFwcGx5aW5n IHRoaXMgZmVhdHVyZSBpbiBhIHN0cmVhbWluZwo+IGFwcGxpY2F0aW9uIHdoZXJlIGlzb2Nocm9u b3VzIHRyYW5zZmVycyBhcmUgdXNlZCBtaWdodCBlbmQgdXAgaW4KCnJlYWQgdGhlIGRvY3MuIEF1 dG8gUmV0cnkgaW4gb25seSBmb3Igbm9uLWlzb2Nocm9ub3VzIElOIGVuZHBvaW50cy4gWW91CmRv bid0IG5lZWQgYW55IHF1aXJrIGZvciB0aGlzLiBKdXN0IGVuYWJsZSBpdCB1bmNvbmRpdGlvbmFs bHkuIEFjdHVhbGx5LAp5b3Ugd2FubmEgbWFrZSBzdXJlIHRoZSBjb3JlIGNhbiBydW4gaW4gSG9z dCBtb2RlIGJlZm9yZSBzZXR0aW5nIHRoaXMsCmJ1dCB0aGF0J3MgaXQuIE5vIG5lZWQgZm9yIGEg cXVpcmsuCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felipe Balbi Subject: RE: [PATCH] usb: dwc3: core: Add quirk for enabling AutoRetry feature in the controller Date: Thu, 26 Jul 2018 14:14:09 +0300 Message-ID: <877eli1c72.fsf@linux.intel.com> References: <1532168920-3269-1-git-send-email-anurag.kumar.vulisha@xilinx.com> <20180725200325.GA21007@rob-hp-laptop> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Anurag Kumar Vulisha , Rob Herring Cc: "gregkh@linuxfoundation.org" , "mark.rutland@arm.com" , "v.anuragkumar@gmail.com" , "linux-usb@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" List-Id: devicetree@vger.kernel.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable hi, Anurag Kumar Vulisha writes: > Hi Rob, > > Thanks for your comments, please see my comments inline > >>-----Original Message----- >>From: Rob Herring [mailto:robh@kernel.org] >>Sent: Thursday, July 26, 2018 1:33 AM >>To: Anurag Kumar Vulisha >>Cc: gregkh@linuxfoundation.org; mark.rutland@arm.com; balbi@kernel.org; >>v.anuragkumar@gmail.com; linux-usb@vger.kernel.org; devicetree@vger.kerne= l.org; >>linux-kernel@vger.kernel.org >>Subject: Re: [PATCH] usb: dwc3: core: Add quirk for enabling AutoRetry fe= ature in the >>controller >> >>On Sat, Jul 21, 2018 at 03:58:40PM +0530, Anurag Kumar Vulisha wrote: >>> By default when core sees any transaction error(CRC or overflow) >>> it replies with terminating retry ACK (Retry=3D1 and Nump =3D=3D 0). >>> Enabling this Auto Retry feature in controller, on seeing any >>> transaction errors makes the core to send an non-terminating ACK >>> transaction packet (that is, ACK TP with Retry=3D1 and Nump !=3D 0). >>> Doing so will give controller a chance to recover from the error >>> condition. >>> >>> Signed-off-by: Anurag Kumar Vulisha >>> --- >>> Documentation/devicetree/bindings/usb/dwc3.txt | 5 +++++ >>> drivers/usb/dwc3/core.c | 16 ++++++++++++++++ >>> drivers/usb/dwc3/core.h | 6 ++++++ >>> 3 files changed, 27 insertions(+) >>> >>> diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt >>b/Documentation/devicetree/bindings/usb/dwc3.txt >>> index 7f13ebe..2ba2bc2 100644 >>> --- a/Documentation/devicetree/bindings/usb/dwc3.txt >>> +++ b/Documentation/devicetree/bindings/usb/dwc3.txt >>> @@ -94,6 +94,11 @@ Optional properties: >>> this and tx-thr-num-pkt-prd to a valid, non-zero value >>> 1-16 (DWC_usb31 programming guide section 1.2.3) to >>> enable periodic ESS TX threshold. >>> + - snps,enable_auto_retry: Set to enable Auto retry Feature to make the >> >>s/_/-/ > Sorry, I am not able to understand what needs to fixed here. Please help = me in > understanding, so that I can fix it in v2. replace _ with - >>> + controller operating in Host mode on seeing transaction >>> + errors(CRC errors or internal overrun scenerios) on IN >>> + transfers to reply to the device with a non-terminating >>> + retry ACK (i.e, an ACK TP with Retry=3D1 & Nump !=3D 0) >> >>Seems like the property is unnecessary. When would you not want this >>retry behavior? Why not just enable unconditionally in the driver? >> > There is no harm in adding this fix always but I think this Retry > feature should be added depending on the user and type of the > application. For example, applying this feature in a streaming > application where isochronous transfers are used might end up in read the docs. Auto Retry in only for non-isochronous IN endpoints. You don't need any quirk for this. Just enable it unconditionally. Actually, you wanna make sure the core can run in Host mode before setting this, but that's it. No need for a quirk. =2D-=20 balbi --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEElLzh7wn96CXwjh2IzL64meEamQYFAltZrQEACgkQzL64meEa mQZwtw/9HYBSUy/EQHw0y2JadXUWbjKRD4DwbHHteudftN7ytcGWlKbb9ymhKMSX KhUk3NkEkXxlB13G4KCBKUaaowKkgWRDjZwK4viXGKiI6mp1gl5vI8vh6xtEtUHD YdZv8kU0qJ78bRCKbcP8t0xdr9zjCN5YbzkIPolIYhjDDvVeWhm2bTY7IzcfDxwJ Xtkc/Vox72M62Zk2fHiaRPRai/xDE5NDuzwFJYCIwKMX2PmhB7s+Hd7eNOJLtMga x7DdITFdHoR9eRa4FlMpWpzVSK/oSmNIYAMX30moqiS5TQJ3pD1SE0hFbHYH7MKk D7OqIS6ATrE2Jbt+aj58OupLp1rWOGAtMev47luzz4EEn2YNOGwkvch8yBaLGNL7 f4xQsigwZZdeBUW2waxMQwYNYsJykZFYPi/ndGE6+Kckrl6OMdNXhGM6AO/Sydkd I398o1nAZIZMWTal7qq/KNOCR41Kr6X+zyBCKBy7vywQ9PY6zhu2ds5jc1pLGXOz TkZ1dRpolI0lGVfET1Kp+5SLDzR/2v06VaUVdmRdx2YNMmsQsH/RsCVbgIbPLpFx wMqbZgX5kVT15QmsEm6KpDkTqlCCj3D3kClCfJG5XJakTNUMbyyIPtglEpi59pO2 uekMGftXUMZ/CLblBTOsVt3IR41e5vEFOtNykyo7Puos/ywUMm0= =T4BK -----END PGP SIGNATURE----- --=-=-=-- 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=-1.0 required=3.0 tests=MAILING_LIST_MULTI,SPF_PASS, URIBL_BLOCKED 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 5DD09C6778F for ; Thu, 26 Jul 2018 11:17:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1F90C20883 for ; Thu, 26 Jul 2018 11:17:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1F90C20883 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729496AbeGZMdw (ORCPT ); Thu, 26 Jul 2018 08:33:52 -0400 Received: from mga18.intel.com ([134.134.136.126]:32987 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729097AbeGZMdw (ORCPT ); Thu, 26 Jul 2018 08:33:52 -0400 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Jul 2018 04:17:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,404,1526367600"; d="asc'?scan'208";a="57318803" Received: from pipin.fi.intel.com (HELO localhost) ([10.237.68.37]) by fmsmga007.fm.intel.com with ESMTP; 26 Jul 2018 04:17:26 -0700 From: Felipe Balbi To: Anurag Kumar Vulisha , Rob Herring Cc: "gregkh\@linuxfoundation.org" , "mark.rutland\@arm.com" , "v.anuragkumar\@gmail.com" , "linux-usb\@vger.kernel.org" , "devicetree\@vger.kernel.org" , "linux-kernel\@vger.kernel.org" Subject: RE: [PATCH] usb: dwc3: core: Add quirk for enabling AutoRetry feature in the controller In-Reply-To: References: <1532168920-3269-1-git-send-email-anurag.kumar.vulisha@xilinx.com> <20180725200325.GA21007@rob-hp-laptop> Date: Thu, 26 Jul 2018 14:14:09 +0300 Message-ID: <877eli1c72.fsf@linux.intel.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable hi, Anurag Kumar Vulisha writes: > Hi Rob, > > Thanks for your comments, please see my comments inline > >>-----Original Message----- >>From: Rob Herring [mailto:robh@kernel.org] >>Sent: Thursday, July 26, 2018 1:33 AM >>To: Anurag Kumar Vulisha >>Cc: gregkh@linuxfoundation.org; mark.rutland@arm.com; balbi@kernel.org; >>v.anuragkumar@gmail.com; linux-usb@vger.kernel.org; devicetree@vger.kerne= l.org; >>linux-kernel@vger.kernel.org >>Subject: Re: [PATCH] usb: dwc3: core: Add quirk for enabling AutoRetry fe= ature in the >>controller >> >>On Sat, Jul 21, 2018 at 03:58:40PM +0530, Anurag Kumar Vulisha wrote: >>> By default when core sees any transaction error(CRC or overflow) >>> it replies with terminating retry ACK (Retry=3D1 and Nump =3D=3D 0). >>> Enabling this Auto Retry feature in controller, on seeing any >>> transaction errors makes the core to send an non-terminating ACK >>> transaction packet (that is, ACK TP with Retry=3D1 and Nump !=3D 0). >>> Doing so will give controller a chance to recover from the error >>> condition. >>> >>> Signed-off-by: Anurag Kumar Vulisha >>> --- >>> Documentation/devicetree/bindings/usb/dwc3.txt | 5 +++++ >>> drivers/usb/dwc3/core.c | 16 ++++++++++++++++ >>> drivers/usb/dwc3/core.h | 6 ++++++ >>> 3 files changed, 27 insertions(+) >>> >>> diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt >>b/Documentation/devicetree/bindings/usb/dwc3.txt >>> index 7f13ebe..2ba2bc2 100644 >>> --- a/Documentation/devicetree/bindings/usb/dwc3.txt >>> +++ b/Documentation/devicetree/bindings/usb/dwc3.txt >>> @@ -94,6 +94,11 @@ Optional properties: >>> this and tx-thr-num-pkt-prd to a valid, non-zero value >>> 1-16 (DWC_usb31 programming guide section 1.2.3) to >>> enable periodic ESS TX threshold. >>> + - snps,enable_auto_retry: Set to enable Auto retry Feature to make the >> >>s/_/-/ > Sorry, I am not able to understand what needs to fixed here. Please help = me in > understanding, so that I can fix it in v2. replace _ with - >>> + controller operating in Host mode on seeing transaction >>> + errors(CRC errors or internal overrun scenerios) on IN >>> + transfers to reply to the device with a non-terminating >>> + retry ACK (i.e, an ACK TP with Retry=3D1 & Nump !=3D 0) >> >>Seems like the property is unnecessary. When would you not want this >>retry behavior? Why not just enable unconditionally in the driver? >> > There is no harm in adding this fix always but I think this Retry > feature should be added depending on the user and type of the > application. For example, applying this feature in a streaming > application where isochronous transfers are used might end up in read the docs. Auto Retry in only for non-isochronous IN endpoints. You don't need any quirk for this. Just enable it unconditionally. Actually, you wanna make sure the core can run in Host mode before setting this, but that's it. No need for a quirk. =2D-=20 balbi --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEElLzh7wn96CXwjh2IzL64meEamQYFAltZrQEACgkQzL64meEa mQZwtw/9HYBSUy/EQHw0y2JadXUWbjKRD4DwbHHteudftN7ytcGWlKbb9ymhKMSX KhUk3NkEkXxlB13G4KCBKUaaowKkgWRDjZwK4viXGKiI6mp1gl5vI8vh6xtEtUHD YdZv8kU0qJ78bRCKbcP8t0xdr9zjCN5YbzkIPolIYhjDDvVeWhm2bTY7IzcfDxwJ Xtkc/Vox72M62Zk2fHiaRPRai/xDE5NDuzwFJYCIwKMX2PmhB7s+Hd7eNOJLtMga x7DdITFdHoR9eRa4FlMpWpzVSK/oSmNIYAMX30moqiS5TQJ3pD1SE0hFbHYH7MKk D7OqIS6ATrE2Jbt+aj58OupLp1rWOGAtMev47luzz4EEn2YNOGwkvch8yBaLGNL7 f4xQsigwZZdeBUW2waxMQwYNYsJykZFYPi/ndGE6+Kckrl6OMdNXhGM6AO/Sydkd I398o1nAZIZMWTal7qq/KNOCR41Kr6X+zyBCKBy7vywQ9PY6zhu2ds5jc1pLGXOz TkZ1dRpolI0lGVfET1Kp+5SLDzR/2v06VaUVdmRdx2YNMmsQsH/RsCVbgIbPLpFx wMqbZgX5kVT15QmsEm6KpDkTqlCCj3D3kClCfJG5XJakTNUMbyyIPtglEpi59pO2 uekMGftXUMZ/CLblBTOsVt3IR41e5vEFOtNykyo7Puos/ywUMm0= =T4BK -----END PGP SIGNATURE----- --=-=-=--