Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp1138510ybg; Tue, 2 Jun 2020 02:18:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxG8iaH2OVnY17VxvHBrpisp7/ZLF7D1reCxY+TI0isBXpRepwkSI5JjkbwYBaEwZmxs/Cw X-Received: by 2002:a17:906:77c4:: with SMTP id m4mr13714208ejn.246.1591089482590; Tue, 02 Jun 2020 02:18:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591089482; cv=none; d=google.com; s=arc-20160816; b=EXRRXknqx+Bq4Mp0VX/YOtLXcd3y/VV4l/nyL0y4ESj+sry9DIlZSEaeiBrtjK/j7+ qaWnXmI+BbwmtK/cdmW7hpOueXCKUJGY5Wu78FqV8PbbNCwp+MNm2UzsUi5u1ewGIWfc aVXzCRadc4a3gfgkFJrnA4WzvvXTkI9EJDoPZGqolrnAejSJtkKSzLEK4dIrsq/RXeEM FSvWW68cWGaMajngu2xIaE+xFq6p7Mc/H3882drWgBAt+gy3HcbrcxoVeWtb+pjiuXAi 87QJIQvh65y1kLnRZC4lB6L+33XPH2P7oWKUZp1doD8drkEVuBH7gijK6LuML6jqSGME CPEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:authenticated-by; bh=AiP5astx9ZxSrqmuzO0Uk9JqsL9v3b4tdg11ozxIX20=; b=Xbxw3VdHac5Hzyjl1SFO6PQq72SoTvi5dDNQ1mMaVD/vEagHp6J5NJq69jAL6ojvPK ZxLLfRcKsaYYx58rZG8eV553CkzEbxLARyoWdhcjIWSK5DOUBC56PRzLPj2ZrTP3g8gP LC4mq0qIwwvxmP7jH1QBpNKU+FMI2Y4zG0Vz8TmmOq4FC+ZyAPZfK8v/N2Rnw7mmhIVz N2qV42dGVdPnE5kvObZGtabPArfUp3j/boeMGjihoyq9B0uNdMoI5OVdlMjsrCw4mXhI EzT08KNyCrsGzf+nzzZggf3IxsCtjXzvSjbOEGeY44UYgJolrgk66LNeFV8mlxZXvW0o XMSQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id du12si1323021ejc.398.2020.06.02.02.17.38; Tue, 02 Jun 2020 02:18:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726594AbgFBJPp (ORCPT + 99 others); Tue, 2 Jun 2020 05:15:45 -0400 Received: from rtits2.realtek.com ([211.75.126.72]:48462 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726373AbgFBJPo (ORCPT ); Tue, 2 Jun 2020 05:15:44 -0400 Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.69 with qID 0529F8Zt8003935, This message is accepted by code: ctloc85258 Received: from RS-CAS02.realsil.com.cn (rsn1.realsil.com.cn[172.29.17.3]) by rtits2.realtek.com.tw (8.15.2/2.66/5.86) with ESMTPS id 0529F8Zt8003935 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 2 Jun 2020 17:15:09 +0800 Received: from RS-MBS01.realsil.com.cn ([::1]) by RS-CAS02.realsil.com.cn ([::1]) with mapi id 14.03.0439.000; Tue, 2 Jun 2020 17:15:08 +0800 From: =?utf-8?B?5Yav6ZSQ?= To: Ulf Hansson CC: Arnd Bergmann , Christoph Hellwig , "gregkh@linuxfoundation.org" , "linux-kernel@vger.kernel.org" , "linux-pci@vger.kernel.org" , linux-mmc Subject: =?utf-8?B?562U5aSNOiBbUEFUQ0hdIG1tYzogcnRzeDogQWRkIFNEIEV4cHJlc3MgbW9k?= =?utf-8?Q?e_support_for_RTS5261?= Thread-Topic: [PATCH] mmc: rtsx: Add SD Express mode support for RTS5261 Thread-Index: AQHWG2mdb2Wi+0TUh0G7QGay1iuqfqiL+UQAgAC/B7D//5LPAIABmysAgAtv7gCAFdruEIAJECCAgAtQDdD//64RAIABg5vg///x1YAAEZK0wA== Date: Tue, 2 Jun 2020 09:15:08 +0000 Message-ID: <2A308283684ECD4B896628E09AF5361E59AD14B5@RS-MBS01.realsil.com.cn> References: <1587864346-3144-1-git-send-email-rui_feng@realsil.com.cn> <20200427061426.GA11270@infradead.org> <2A308283684ECD4B896628E09AF5361E028BCA26@RS-MBS01.realsil.com.cn> <2A308283684ECD4B896628E09AF5361E028BCB4B@RS-MBS01.realsil.com.cn> <2A308283684ECD4B896628E09AF5361E59ACDB91@RS-MBS01.realsil.com.cn> <2A308283684ECD4B896628E09AF5361E59AD1194@RS-MBS01.realsil.com.cn> <2A308283684ECD4B896628E09AF5361E59AD13F0@RS-MBS01.realsil.com.cn> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.29.40.150] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiANCj4gT24gVHVlLCAyIEp1biAyMDIwIGF0IDA0OjQxLCDlhq/plJAgPHJ1aV9mZW5nQHJlYWxz aWwuY29tLmNuPiB3cm90ZToNCj4gPg0KPiA+ID4NCj4gPiA+ICtsaW51eC1tbWMNCj4gPiA+DQo+ ID4gPiBPbiBNb24sIDEgSnVuIDIwMjAgYXQgMDk6MzQsIOWGr+mUkCA8cnVpX2ZlbmdAcmVhbHNp bC5jb20uY24+IHdyb3RlOg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT24gVHVlLCAx OSBNYXkgMjAyMCBhdCAxMToxOCwg5Yav6ZSQIDxydWlfZmVuZ0ByZWFsc2lsLmNvbS5jbj4gd3Jv dGU6DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBPbiBUdWUsIDI4IEFwciAyMDIwIGF0IDA1 OjQ0LCDlhq/plJAgPHJ1aV9mZW5nQHJlYWxzaWwuY29tLmNuPg0KPiB3cm90ZToNCj4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IE9uIE1vbiwgQXBy IDI3LCAyMDIwIGF0IDExOjQxIEFNIOWGr+mUkA0KPiA+ID4gPiA+ID4gPiA+ID4gPHJ1aV9mZW5n QHJlYWxzaWwuY29tLmNuPg0KPiA+ID4gPiA+ID4gPiB3cm90ZToNCj4gPiA+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBPbiBTdW4sIEFw ciAyNiwgMjAyMCBhdCAwOToyNTo0NkFNICswODAwLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHJ1 aV9mZW5nQHJlYWxzaWwuY29tLmNuDQo+ID4gPiA+ID4gPiA+ID4gPiB3cm90ZToNCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IEZyb206IFJ1aSBGZW5nIDxydWlfZmVuZ0ByZWFsc2lsLmNvbS5jbj4N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBSVFM1MjYx IHN1cHBvcnQgbGVnYWN5IFNEIG1vZGUgYW5kIFNEIEV4cHJlc3MgbW9kZS4NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IEluIFNENy54LCBTRCBhc3NvY2lhdGlvbiBpbnRyb2R1Y2UgU0QgRXhwcmVz cyBhcyBhIG5ldw0KPiBtb2RlLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gU0QgRXhwcmVzcyBt b2RlIGlzIGRpc3Rpbmd1aXNoZWQgYnkgQ01EOC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFRo ZXJlZm9yZSwgQ01EOCBoYXMgbmV3IGJpdCBmb3IgU0QgRXhwcmVzcy4NCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IFNEIEV4cHJlc3MgaXMgYmFzZWQgb24gUENJZS9OVk1lLg0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gUlRTNTI2MSB1c2VzIENNRDggdG8gc3dpdGNoIHRvIFNEIEV4cHJlc3MgbW9k ZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFNvIGhvdyBk b2VzIHRoaXMgYml0IHdvcms/ICBUaGV5IHdheSBJIGltYWdpbmVkIFNEDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gRXhwcmVzcyB0byB3b3JrIGlzIHRoYXQgdGhlIGFjdHVhbCBTRCBDYXJkIGp1c3QN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBzaG93cyB1cCBhcyBhIHJlYWwgUENJZSBkZXZpY2UsIHNp bWlsYXIgdG8gc2F5IFRodW5kZXJib2x0Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiBOZXcgU0QgRXhwcmVzcyBjYXJkIGhhcyBkdWFsIG1vZGUuIE9uZSBpcyBTRCBt b2RlIGFuZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBhbm90aGVyIGlzIFBDSWUNCj4gPiA+ID4gPiA+ ID4gPiA+IG1vZGUuDQo+ID4gPiA+ID4gPiA+ID4gPiA+IEluIFBDSWUgbW9kZSwgaXQgYWN0IGFz IGEgUENJZSBkZXZpY2UgYW5kIHVzZSBQQ0llDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHByb3RvY29s IG5vdCBUaHVuZGVyYm9sdA0KPiA+ID4gPiA+ID4gPiA+ID4gcHJvdG9jb2wuDQo+ID4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gSSB0aGluayB3aGF0IENocmlzdG9waCB3YXMgYXNr aW5nIGFib3V0IGlzIHdoeSB5b3UgbmVlZA0KPiA+ID4gPiA+ID4gPiA+ID4gdG8gaXNzdWUgYW55 IGNvbW1hbmRzIGF0IGFsbCBpbiBTRCBtb2RlIHdoZW4geW91IHdhbnQgdG8NCj4gPiA+ID4gPiA+ ID4gPiA+IHVzZSBQQ0llIG1vZGUNCj4gPiA+ID4gPiBpbnN0ZWFkLg0KPiA+ID4gPiA+ID4gPiA+ ID4gV2hhdCBoYXBwZW5zIGlmIHlvdSBsb2FkIHRoZSBOVk1lIGR0aHJpdmVyIGJlZm9yZQ0KPiA+ ID4gPiA+ID4gPiA+ID4gbG9hZGluZyB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+IHJ0czUyNjENCj4g PiA+ID4gPiA+ID4gZHJpdmVyPw0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ ICAgICAgICBBcm5kDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gLS0tLS0t UGxlYXNlIGNvbnNpZGVyIHRoZSBlbnZpcm9ubWVudCBiZWZvcmUgcHJpbnRpbmcgdGhpcyBlLW1h aWwuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBSVFM1MjYxIHN1cHBvcnQgU0Qg bW9kZSBhbmQgUENJZS9OVk1lIG1vZGUuIFRoZSB3b3JrZmxvdw0KPiA+ID4gPiA+ID4gPiA+IGlz IGFzDQo+ID4gPiA+ID4gZm9sbG93cy4NCj4gPiA+ID4gPiA+ID4gPiAxLlJUUzUyNjEgd29yayBp biBTRCBtb2RlLg0KPiA+ID4gPiA+ID4gPiA+IDIuSWYgY2FyZCBpcyBwbHVnZ2VkIGluLCBIb3N0 IHNlbmQgQ01EOCB0byBhc2sgY2FyZCdzIFBDSWUNCj4gYXZhaWxhYmlsaXR5Lg0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGlzIHNvdW5kcyBsaWtlIHRoZSBjYXJkIGluc2VydC9yZW1v dmFsIG5lZWRzIHRvIGJlIG1hbmFnZWQNCj4gPiA+ID4gPiA+ID4gYnkgdGhlIHJ0c3hfcGNpX3Nk bW1jIGRyaXZlciAobW1jKS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAzLklmIHRo ZSBjYXJkIGhhcyBQQ0llIGF2YWlsYWJpbGl0eSwgUlRTNTI2MSBzd2l0Y2ggdG8NCj4gPiA+ID4g PiA+ID4gPiBQQ0llL05WTWUNCj4gPiA+IG1vZGUuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+IFRoaXMgc3dpdGNoIGlzIGRvbmUgYnkgdGhlIG1tYyBkcml2ZXIsIGJ1dCBob3cgZG9lcyB0 aGUNCj4gPiA+ID4gPiA+ID4gUENJZS9OVk1lIGRyaXZlciBrbm93IHdoZW4gdG8gdGFrZSBvdmVy PyBJc24ndCB0aGVyZSBhDQo+ID4gPiBzeW5jaHJvbml6YXRpb24gcG9pbnQgbmVlZGVkPw0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IDQuTW1jIGRyaXZlciBleGl0IGFuZCBOVk1lIGRy aXZlciBzdGFydCB3b3JraW5nLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBIYXZpbmcg dGhlIG1tYyBkcml2ZXIgdG8gZXhpdCBzZWVtcyB3cm9uZyB0byBtZS4gRWxzZSBob3cNCj4gPiA+ ID4gPiA+ID4gd291bGQgeW91IGhhbmRsZSBhIGNhcmQgYmVpbmcgcmVtb3ZlZCBhbmQgaW5zZXJ0 ZWQgYWdhaW4/DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEluIHByaW5jaXBsZSB5b3Ug d2FudCB0aGUgbW1jIGNvcmUgdG8gZmFpbCB0byBkZXRlY3QgdGhlDQo+ID4gPiA+ID4gPiA+IGNh cmQgYW5kIHRoZW4gZG8gYSBoYW5kb3Zlciwgc29tZWhvdy4gTm8/DQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+IEFsdGhvdWdoLCB0byBtYWtlIHRoaXMgd29yayB0aGVyZSBhcmUgYSBjb3Vw bGUgb2YgcHJvYmxlbXMNCj4gPiA+ID4gPiA+ID4geW91IG5lZWQgdG8gZGVhbCB3aXRoLg0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAxLiBJZiB0aGUgbW1jIGNvcmUgZG9lc24ndCBzdWNj ZXNzZnVsbHkgZGV0ZWN0IGEgY2FyZCwgaXQNCj4gPiA+ID4gPiA+ID4gd2lsbCByZXF1ZXN0IHRo ZSBtbWMgaG9zdCB0byBwb3dlciBvZmYgdGhlIGNhcmQuIEluIHRoaXMNCj4gPiA+ID4gPiA+ID4g c2l0dWF0aW9uLCB5b3Ugd2FudCB0byBrZWVwIHRoZSBwb3dlciB0byB0aGUgY2FyZCwgYnV0IGxl YXZlDQo+ID4gPiA+ID4gPiA+IGl0IHRvIGJlIG1hbmFnZWQgYnkgdGhlDQo+ID4gPiA+ID4gUENJ ZS9OVk1lIGRyaXZlciBpbiBzb21lIHdheS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g Mi4gRHVyaW5nIHN5c3RlbSByZXN1bWUsIHRoZSBtbWMgY29yZSBtYXkgdHJ5IHRvIHJlc3RvcmUN Cj4gPiA+ID4gPiA+ID4gcG93ZXIgZm9yIGEgY2FyZCwgZXNwZWNpYWxseSBpZiBpdCdzIGEgcmVt b3ZhYmxlIHNsb3QsIGFzIHRvDQo+ID4gPiA+ID4gPiA+IG1ha2Ugc3VyZSBpdCBnZXRzIGRldGVj dGVkIGlmIHNvbWVvbmUgaW5zZXJ0ZWQgYSBjYXJkIHdoaWxlDQo+ID4gPiA+ID4gPiA+IHRoZSBz eXN0ZW0gd2FzDQo+ID4gPiBzdXNwZW5kZWQuDQo+ID4gPiA+ID4gPiA+IE5vdCBzdXJlIGlmIHRo aXMgcGxheXMgd2VsbCB3aXRoIHRoZSBQQ0llL05WTWUgZHJpdmVyJ3MgYmVoYXZpb3VyLg0KPiA+ ID4gPiA+ID4gPiBBZ2FpbiwgSSB0aGluayBzb21lIGtpbmQgb2Ygc3luY2hyb25pemF0aW9uIGlz IG5lZWRlZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA1LklmIGNhcmQgaXMgdW5w bHVnZ2VkLCBSVFM1MjYxIHdpbGwgc3dpdGNoIHRvIFNEIG1vZGUuDQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+IEFscmlnaHQsIGNsZWFybHkgdGhlIG1tYyBkcml2ZXIgaXMgbmVlZGVkIHRv IG1hbmFnZSBjYXJkDQo+ID4gPiBpbnNlcnQvcmVtb3ZhbC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gPiBXZSBzaG91bGQgc2VuZCBDTUQ4IGluIFNEIG1vZGUgdG8gYXNrIGNhcmQncyBQ Q0llDQo+ID4gPiA+ID4gPiA+ID4gYXZhaWxhYmlsaXR5LCBhbmQgdGhlDQo+ID4gPiA+ID4gPiA+ IG9yZGVyIG9mIE5WTWUgZHJpdmVyIGFuZCBydHM1MjYxIGRyaXZlciBkb2Vzbid0IG1hdHRlci4N Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhhdCBhc3N1bWVzIHRoZXJlJ3MgYW5vdGhl ciBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtLg0KPiA+ID4gPiA+ID4gPiBNYXliZSB0aGVyZSBp cywgYnV0IEkgZG9uJ3QgdW5kZXJzdGFuZCBob3cuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiBJZiBubyBjYXJkIGluIFJUUzUyNjEsIFJUUzUyNjEgd29ya3MgaW4gU0QgbW9kZS4gSWYgeW91 IHJ1bg0KPiA+ID4gPiA+ID4gY29tbWFuZCBsc3BjaSwNCj4gPiA+ID4gPiB5b3UgY2FuIHNlZSB0 aGUgUlRTNTI2MSBkZXZpY2UuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBSaWdodC4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IFRoZSBydHN4X3BjaV9kcml2ZXIgKGRyaXZlcnMvbWlzYy9jYXJkcmVhZGVy L3J0c3hfcGNyLmMpIGhhcw0KPiA+ID4gPiA+IHJlZ2lzdGVyZWQgaXRzZWxmIGFzIGEgcGNpIGRy aXZlciBhbmQgYmVlbiBwcm9iZWQgc3VjY2Vzc2Z1bGx5LA0KPiA+ID4gPiA+IEkgYXNzdW1lLiBU aGVuIGR1cmluZw0KPiA+ID4gPiA+IHJ0c3hfcGNpX3Byb2JlKCkgYW4gbWZkIGRldmljZSBpcyBh ZGRlZCB2aWEgbWZkX2FkZF9kZXZpY2VzKCksDQo+ID4gPiA+ID4gd2hpY2ggY29ycmVzcG9uZHMg dG8gdGhlIHJ0c3hfcGNpX3NkbW1jDQo+ID4gPiA+ID4gKGRyaXZlcnMvbW1jL2hvc3QvcnRzeF9w Y2lfc2RtbWMuYykgcGxhdGZvcm0gZHJpdmVyLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBXaGVu IGluc2VydCBhIFNEIEV4cHJlc3MgY2FyZCwgTW1jIGRyaXZlciB3aWxsIHNlbmQgQ01EOCB0bw0K PiA+ID4gPiA+ID4gYXNrIHRoZSBjYXJkJ3MgUENJZSBhdmFpbGFiaWxpdHksIGJlY2F1c2UgaXQn cyBhIFNEIEVYUFJFU1MNCj4gPiA+ID4gPiA+IGNhcmQsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBP a2F5LCBzbyB0aGlzIHdpbGwgdGhlbiBiZSBhIHBhcnQgb2YgdGhlIHJ0c3hfcGNpX3NkbW1jIGRy aXZlcidzDQo+ID4gPiA+ID4gcHJvYmUNCj4gPiA+IHNlcXVlbmNlLg0KPiA+ID4gPiA+IE9yIG1v cmUgZXhhY3RseSwgd2hlbiBydHN4X3BjaV9zZG1tY19kcnZfcHJvYmUoKSBjb21wbGV0ZXMNCj4g PiA+ID4gPiBzdWNjZXNzZnVsbHksIGEgbW1jIHJlc2NhbiB3b3JrIGJlY29tZXMgc2NoZWR1bGVk IHRvIHRyeSB0bw0KPiA+ID4gPiA+IGRldGVjdCBhbiBTRC9NTUMgY2FyZC4gVGhlbiB0aGUgQ01E OCBjb21tYW5kIGlzIHNlbnQuLi4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gUlRTNTI2MSB3aWxs IHN3aXRjaCB0byBOVk1lIG1vZGUsIGFmdGVyIHN3aXRjaCBpZiB5b3UgcnVuDQo+ID4gPiA+ID4g PiBsc3BjaSwgeW91IGNhbiBzZWUNCj4gPiA+ID4gPiBSVFM1MjYxIGRpc2FwcGVhcmVkIGFuZCBh IE5WTWUgZGV2aWNlIHJlcGxhY2VzIFJUUzUyNjEuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBDYW4g eW91IGVsYWJvcmF0ZSBtb3JlIGV4YWN0bHkgaG93IHRoaXMgbWFuYWdlZD8NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IEl0IGtpbmQgb2Ygc291bmRzIGxpa2UgdGhlIG9yaWdpbmFsIFBDSSBkZXZpY2Ug aXMgYmVpbmcgZGVsZXRlZD8NCj4gPiA+ID4gPiBIb3cgaXMgdGhpcyBtYW5hZ2VkPw0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gSW4gYW55IGNhc2UsIHRoZSBydHN4X3BjaV9kcml2ZXIncyAtPnJlbW92 ZSgpIGNhbGxiYWNrLA0KPiA+ID4gPiA+IHJ0c3hfcGNpX3JlbW92ZSgpLCBzaG91bGQgYmUgaW52 b2tlZCwgSSBhc3N1bWU/DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBUaGF0IHdvdWxkIHRoZW4gbGVh ZCB0byB0aGF0IG1mZF9yZW1vdmVfZGV2aWNlcygpIGdldHMgY2FsbGVkLA0KPiA+ID4gPiA+IHdo aWNoIG1ha2VzIHRoZSAtPnJlbW92ZSgpIGNhbGxiYWNrIG9mIHRoZSBydHN4X3BjaV9zZG1tYw0K PiA+ID4gPiA+IGRyaXZlciwgcnRzeF9wY2lfc2RtbWNfZHJ2X3JlbW92ZSgpLCB0byBiZSBpbnZv a2VkLiBDb3JyZWN0Pw0KPiA+ID4gPiA+DQo+ID4gPiA+IFllcywgYWZ0ZXIgUlRTNTI2MSBzd2l0 Y2ggdG8gTlZNZSBtb2RlLCBydHN4X3BjaV9yZW1vdmUoKSBhbmQNCj4gPiA+IHJ0c3hfcGNpX3Nk bW1jX2Rydl9yZW1vdmUoKSB3aWxsIGJlIGludm9rZWQuDQo+ID4gPg0KPiA+ID4gU28sIHRoZSAt PnJlbW92ZSgpIGNhbGxiYWNrcyBhcmUgaW52b2tlZCBiZWNhdXNlIHRoZSBQQ0kgZGV2aWNlIHRo YXQNCj4gPiA+IGNvcnJlc3BvbmRzIHRvIHRoZSBydHN4X3BjaV9kcml2ZXIgaXMgYmVpbmcgZGVs ZXRlZC4gQ2FuIHlvdSBleHBsYWluDQo+ID4gPiB3aG8gZGVsZXRlcyB0aGUgUENJIGRldmljZSBh bmQgd2h5Pw0KPiA+ID4NCj4gPiA+IEkgYW0gbm90IGEgUENJIGV4cGVydCwgc28gYXBvbG9naXpl IGZvciBteSBpZ25vcmFuY2UgLSBidXQgSSByZWFsbHkNCj4gPiA+IHdhbnQgdG8gdW5kZXJzdGFu ZCBob3cgdGhpcyBpcyBzdXBwb3NlZCB0byB3b3JrLg0KPiA+ID4NCj4gPiBSdHN4IGhvc3QgZHJp dmVyIHNldHMgUlRTNTI2MSAweEZGNTQgYml0MD0xIGFuZCAweEZGNTUgYml0ND0wLCB0aGVuIFJU UzUyNjENCj4gd2lsbCBzd2l0Y2ggTUNVIGFuZCBlbnRlciBTRCBFWFBSRVNTIG1vZGUuDQo+ID4g QmVjYXVzZSBoYXJkd2FyZSBkZXNpZ24gaXMgaW52b2x2ZWQsIHNvcnJ5IEkgY2FuJ3QgZXhwbGFp biBtdWNoIG1vcmUgZGV0YWlscw0KPiBhYm91dCB0aGF0Lg0KPiANCj4gT2theSwgc28gc29tZWhv dyB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgUENJIGJ1cyB0byByZW1vdmUgdGhlIGNvcnJlc3BvbmRp bmcNCj4gUENJIGRldmljZSwgSSBndWVzcy4NCj4gDQo+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ IEluIE5WTWUgbW9kZSwgUlRTNTI2MSBvbmx5IHByb3ZpZGUgYSBicmlkZ2UgYmV0d2VlbiBTRCBF eHByZXNzDQo+ID4gPiA+ID4gPiBjYXJkIGFuZA0KPiA+ID4gPiA+IFBDSWUuIEZvciBOVk1lIGRy aXZlciwganVzdCBsaWtlIGEgbmV3IE5WTWUgZGV2aWNlIGlzIGluc2VydGVkLg0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gSSBkb24ndCB1bmRlcnN0YW5kIHdoYXQgdGhhdCBtZWFucywgYnV0IEkgYW0g YWxzbyBub3QgYW4gZXhwZXJ0DQo+ID4gPiA+ID4gb24NCj4gPiA+IFBDSS9OVk1lLg0KPiA+ID4g PiA+IENhcmUgdG8gZXhwbGFpbiBtb3JlPw0KPiA+ID4gPiA+DQo+ID4gPiA+IEluIE5WTWUgbW9k ZSwgU0QgRXhwcmVzcyBjYXJkIGNvbm5lY3QgdGhlIGNvbXB1dGVyIHZpYSBQQ0llLg0KPiA+ID4g PiBJTiBTRCBtb2RlLCBjYXJkIGNvbm5lY3QgY29tcHV0ZXIgdmlhIHJlYWRlci4NCj4gPiA+DQo+ ID4gPiBUaGF0IGRpZG4ndCBtYWtlIGJldHRlciBzZW5zZSB0byBtZSwgc29ycnkuIEkgZG8ga25v dyBhYm91dCB0aGUgU0QNCj4gPiA+IHNwZWMgYW5kIHRoZSBTRC1leHByZXNzIGNhcmQgcHJvdG9j b2wgcGFydHMuIEFueXdheSwgbGV0J3MgbGVhdmUgdGhpcyBmb3INCj4gbm93Lg0KPiA+ID4NCj4g PiA+ID4NCj4gPiA+ID4gPiA+IE1tYyBjb3JlIGRvZXNuJ3Qgc3VjY2Vzc2Z1bGx5IGRldGVjdCB0 aGUgY2FyZCBhbmQgaGFuZG92ZXIgdG8NCj4gPiA+ID4gPiA+IE5WTWUgZHJpdmVyLiBCZWNhdXNl IG9mIGRldGVjdCB0aGUgY2FyZCBmYWlsZWQsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBIb3cgZG8g eW91IG1ha2Ugc3VyZSB0aGF0IHRoZSBydHN4X3BjaV9zZG1tYyBkcml2ZXIgaXMgbGVhdmluZw0K PiA+ID4gPiA+IHRoZSBjYXJkIGluIHRoZSBjb3JyZWN0IHN0YXRlIGZvciBOVk1lPw0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gRm9yIGV4YW1wbGUsIHRoZSBtbWMgY29yZSBoYXMgYSBsb29wIHJlLXRy eWluZyB3aXRoIGEgbG93ZXINCj4gPiA+ID4gPiBpbml0aWFsaXphdGlvbiBmcmVxdWVuY3kgZm9y IHRoZSBjYXJkICg0MDBLSHosIDMwMEtIeiwgMjAwS0h6LA0KPiA+ID4gPiA+IDEwMEtIeikuIFRo aXMgd2lsbCBjYXVzZSBhZGRpdGlvbmFsIHJlcXVlc3RzIHRvIHRoZSBydHN4X3BjaV9zZG1tYw0K PiBkcml2ZXIuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IE1tYyBkcml2ZXIgd2lsbCByZXF1ZXN0 IHRoZSBSVFM1MjYxIHRvIHBvd2VyIG9mZiB0aGUgY2FyZCwgYnV0DQo+ID4gPiA+ID4gPiBhdCB0 aGF0IHRpbWUNCj4gPiA+ID4gPiBwb3dlciBvZmYgdGhlIGNhcmQgd2lsbCBub3Qgc3VjY2VlZC4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IFllcywgYXNzdW1pbmcgbm8gY2FyZCB3YXMgZm91bmQsIHRo ZSBtbWMgY29yZSBjYWxscyBtbWNfcG93ZXJfb2ZmKCkuDQo+ID4gPiA+ID4gVGhzIGxlYWRzIHRv IHRoZSBydHN4X3BjaV9zZG1tYyBkcml2ZXIncyAtPnNldF9pb3MoKSBjYWxsYmFjaw0KPiA+ID4g PiA+IGJlaW5nIGludm9rZWQsIHJlcXVlc3RpbmcgdGhlIGNhcmQgdG8gYmUgcG93ZXJlZCBvZmYu IEkgZG9uJ3QNCj4gPiA+ID4gPiBzZWUgaG93IHlvdSBhcmUgbWFuYWdpbmcgdGhpcywgd2hhdCBh bSBJIG1pc3Npbmc/DQo+ID4gPiA+ID4NCj4gPiA+ID4gQmVmb3JlIHBvd2VyIG9mZiBjYXJkIGFu ZCByZS10cnlpbmcgaW5pdGlhbGl6YXRpb24sIHJ0c3ggZHJpdmVyDQo+ID4gPiA+IHNldHMgUlRT NTI2MQ0KPiA+ID4gMHhGRjU1IGJpdDQ9MC4NCj4gPiA+ID4gQWZ0ZXIgc2V0IDB4RkY1NSBiaXQ0 PTAsIFJUUzUyNjEgY2FuJ3QgcmVjZWl2ZSBhbnkgQ01EIGZyb20gUENJZQ0KPiA+ID4gPiBhbmQN Cj4gPiA+IHByZXBhcmUgZm9yIGRldmljZSBkaXNhcHBlYXIuDQo+ID4gPiA+IFRoZXJlZm9yZSwg TU1DIGRyaXZlciBjYW4ndCBjaGFuZ2UgY2FyZCBzdGF0dXMuDQo+ID4gPg0KPiA+ID4gT2theSwg c28gYmV5b25kIHRoYXQgcG9pbnQgLSBhbnkgY2FsbHMgdG8gdGhlIGludGVyZmFjZSB0aGF0IGlz DQo+ID4gPiBwcm92aWRlZCBmcm9tIGRyaXZlcnMvbWlzYy9jYXJkcmVhZGVyL3J0c3hfcGNyIHdp bGwgZmFpbCwgd2hlbg0KPiA+ID4gaW52b2tlZCBieSB0aGUgcnRzeF9wY2lfc2RtbWMgZHJpdmVy Pw0KPiA+ID4NCj4gPiBZZXMuDQo+ID4NCj4gPiA+IFRvIG1lLCB0aGF0IHNvdW5kcyBhIGJpdCBm cmFnaWxlIGFuZCBpdCdzIGFsc28gcmVseWluZyBvbiBhIHNwZWNpZmljDQo+ID4gPiBiZWhhdmlv dXIgb2YgdGhlIFJUUzUyNjEgY2FyZCByZWFkZXIgaW50ZXJmYWNlLiBJIHdvbmRlciBpZiB0aGlz DQo+ID4gPiBjb3VsZCBiZSBjb25zaWRlcmVkIGFzIGEgY29tbW9uIGJlaGF2aW91ci4uLj8/DQo+ ID4gPg0KPiA+IEl0J3MgYSBmZWF0dXJlIHByb3Bvc2FsIGJ5IHJlYWx0ZWsgbm90IGNvbW1vbi4N Cj4gDQo+IFllcywgb2YgY291cnNlLg0KPiANCj4gPg0KPiA+ID4gUGVyaGFwcyBpdCdzIGJldHRl ciB0byB0ZWFjaCB0aGUgbW1jIGNvcmUgKm1vcmUqIGFib3V0IFNEIGV4cHJlc3MgY2FyZHMuDQo+ ID4gPiBNYXliZSBhZGQgYSBuZXcgaG9zdCBvcHMgZm9yIGRlYWxpbmcgd2l0aCB0aGUgc3BlY2lm aWMgQ01EOCBjb21tYW5kDQo+ID4gPiBhbmQgbWFrZSB0aGUgbW1jIGNvcmUgdG8gImJhaWwgb3V0 IiwgcmF0aGVyIHRoYW4ga2VlcCByZXRyeWluZyB0aGUNCj4gPiA+IGluaXRpYWxpemF0aW9uLiBJ biBwcmluY2lwbGUgSSB0aGluayB0aGUgY29yZSBzaG91bGQgYWNjZXB0IHRoYXQgaXQNCj4gPiA+ IG1heSBoYXZlIGZvdW5kIGFuIFNEIGV4cHJlc3MgY2FyZCwgdGhlbiBhYm9ydCBmdXJ0aGVyIGNv bW11bmljYXRpb24NCj4gPiA+IHdpdGggaXQuIEF0IGxlYXN0IHVudGlsIHRoZSBtbWMgaG9zdCBp bmRpY2F0ZXMgdGhhdCBhDQo+ID4gPiByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgY2FyZCBjYW4g YmUgZG9uZSwgd2hpY2ggY291bGQgYmUgdGhyb3VnaCBhDQo+IHJlbW92ZS9yZS1wcm9iZSwgZm9y IGV4YW1wbGUuDQo+ID4gPg0KPiA+IEluIFNENy54IHNwZWMgaG9zdCBzaG91bGQgc2VuZCBDTUQ4 IHdpdGggYml0MjA9MSBhbmQgYml0MjE9MSB0byBhc2sgY2FyZCdzDQo+IFBDSWUgYXZhaWxhYmls aXR5Lg0KPiA+IFNvIHRoZSBDTUQ4IGlzIG5vdCBzcGVjaWZpYyBmb3IgUlRTNTI2MSwgaXQncyBq dXN0IG5ld2x5IGRlZmluZWQgaW4gU0Q3Lnggc3BlYy4NCj4gDQo+IFllcywgb2YgY291cnNlLg0K PiANCj4gU28sIHRoZXJlIGFyZSB0d28gUENJZSBtb2Rlcy4gMS44ViBJL08gKG1hbmRhdG9yeSBh bmQgY29ycmVzcG9uZHMgdG8NCj4gYml0MjApIGFuZCAxLjJWIEkvTyAob3B0aW9uYWwgYW5kIGNv cnJlc3BvbmRzIHRvIGJpdDIxKS4gSXQncyBpbXBvcnRhbnQgdGhhdCB0aGUNCj4gbW1jIGhvc3Qg aW5mb3JtcyB0aGUgbW1jIGNvcmUgYWJvdXQgaXQncyBjYXBhYmlsaXRpZXMsIHNvIHdlIGNhbiBz ZXQgdGhlDQo+IGNvcnJlY3QgYml0cyB3aGVuIHNlbmRpbmcgQ01EOC4NCj4gDQo+IFdoYXQgZG8g eW91ciBob3N0IHN1cHBvcnQ/DQo+IA0KUlRTNTI2MSBzdXBwb3J0IFZERDIoMS44VikgYW5kIFZE RDMoMS4yViksIGluIHJ0c3ggaG9zdCBkcml2ZXIgb25seSBiaXQyMCBpcyBjaGVja2VkLA0KaWYg Yml0MjAgaXMgc2V0IGluIGNhcmQncyByZXNwb25zZSBob3N0IGRyaXZlciB3aWxsIG1ha2UgUlRT NTI2MSBzd2l0Y2ggdG8gU0QgRXhwcmVzcyBtb2RlDQphbmQgYml0MjEgaXMgY2hlY2tlZCBieSBo YXJkd2FyZS4NCg0KPiA+IFRoZSBtbWMgY29yZSB3aWxsIHJlcXVlc3QgaG9zdCB0byBwb3dlciBv ZmYgY2FyZCBhbmQgaGFzIGEgbG9vcA0KPiA+IHJlLXRyeWluZyB3aXRoIGRpZmZlcmVudCBpbml0 aWFsaXphdGlvbiBmcmVxdWVuY3kgZm9yIHRoZSBjYXJkICg0MDBLSHosIDMwMEtIeiwNCj4gMjAw S0h6LCAxMDBLSHopLCBpZiBJIGRvbid0IG1vZGlmeSBtbWMgY29yZSwgSSBjYW4ndCBzdG9wIHRo ZSBwb3dlciBvZmYgYW5kDQo+IHJlLXRyeWluZywgaWYgSSBtb2RpZnkgbW1jIGNvcmUsIFJUUzUy NjEgd2lsbCBiZWNvbWUgYSBzcGVjaWFsIGNhc2UgZm9yIG1tYw0KPiBjb3JlLg0KPiA+IFNvIG1h a2UgdGhlIG9wZXJhdGlvbiBmYWlsIGlzIHRoZSBtaW5pbXVtIG1vZGlmaWNhdGlvbiBpbiBtbWMg Y29yZSBmb3IgbWUuDQo+IERvIHlvdSBoYXZlIGFueSBvdGhlciBzdWdnZXN0aW9uPw0KPiANCj4g QWxvbmcgdGhlIGxpbmVzIG9mIHdoYXQgSSBzdWdnZXN0ZWQgYWJvdmUuIEkgdGhpbmsgdGhlIG1t YyBjb3JlIHNob3VsZCBzdG9wDQo+IHNlbmRpbmcgY29tbWFuZHMgYmV5b25kIHRoZSBDTUQ4LCBp ZiB0aGUgY2FyZCByZXNwb25kcyB0byBzdXBwb3J0IFBDSWUuDQo+IA0KPiA+DQo+ID4gPiA+DQo+ ID4gPiA+ID4gQXMgc3RhdGVkIGFib3ZlLCBJIGFzc3VtZSB5b3UgdGhlIGNvcnJlc3BvbmRpbmcg cGxhdGZvcm0gZGV2aWNlDQo+ID4gPiA+ID4gZm9yIHJ0c3hfcGNpX3NkbW1jIGJlaW5nIGRlbGV0 ZWQgYW5kIHRodXMgdHJpZ2dlcmluZyB0aGUNCj4gPiA+ID4gPiBydHN4X3BjaV9zZG1tY19kcnZf cmVtb3ZlKCkgYmVpbmcgY2FsbGVkLiBDb3JyZWN0PyBJZiBub3QsIGhvdw0KPiA+ID4gPiA+IGRv ZXMgdGhlIGRyaXZlciBtYW5hZ2UgdGhpcz8NCj4gPiA+ID4gPg0KPiA+ID4gPiBZZXMuDQo+ID4g PiA+DQo+ID4gPiA+ID4gPiBXaGVuIHRoZSBjYXJkIGlzIHVucGx1Z2dlZCwgUlRTNTI2MSB3aWxs IHN3aXRjaCB0byBTRCBtb2RlIGJ5DQo+ID4gPiA+ID4gPiBpdHNlbGYgYW5kIGRvbid0IG5lZWQg bW1jIGRyaXZlciB0byBkbyBhbnl0aGluZywNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9rYXkuDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBTbyB0aGF0IG1lYW5zIHRoZSBydHN4X3BjaV9zZG1tYyBkcml2 ZXIgaXMgYmVpbmcgcHJvYmVkIGFnYWluPw0KPiA+ID4gPiA+DQo+ID4gPiA+IFllcy4NCj4gPiA+ ID4NCj4gPiA+ID4gPiA+IElmIHlvdSBydW4gbHNwY2ksIHlvdSBjYW4gc2VlIE5WTWUgZGV2aWNl IGRpc2FwcGVhcmVkIGFuZA0KPiA+ID4gPiA+ID4gUlRTNTI2MSBhcHBlYXJlZA0KPiA+ID4gPiA+ IGFnYWluLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSSBzZWUuDQo+ID4gPiA+ID4NCj4gPiA+DQo+ ID4gPiBJZiB5b3UgbmVlZCBzb21lIGhlbHAgb24gdGhlIG1tYyBjb3JlIHBhcnRzLCBJIGFtIHdp bGxpbmcgdG8gaGVscCBvdXQuDQo+ID4gPiBIb3dldmVyLCBmaXJzdCwgSSB3b3VsZCBsaWtlIHRv IGdldCBzb21lIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHdobw0KPiA+ID4gYW5kIHdoeSB0aGUg UENJIGRldmljZSBpcyBkZWxldGVkLg0KPiA+ID4NCj4gPiBDYW4gSSBzdG9wIHRoZSByZS10cnlp bmcgaW4gaG9zdCBkcml2ZXIgb3RoZXIgdGhhbiBtb2RpZnkgbW1jIGNvcmU/DQo+IA0KPiBXZSBu ZWVkIHRvIG1vZGlmeSB0aGUgY29yZSwgYnV0IGxldCBtZSB0cnkgdG8gaGVscCBpbiByZWdhcmRz IHRvIHRoYXQuDQo+IEkgd2lsbCBwb3N0IHNvbWUgcGF0Y2hlcyB3aXRoaW4gYSBjb3VwbGUgb2Yg ZGF5cyBhbmQga2VlcCB5b3UgcG9zdGVkLg0KPiANCj4gTGV0J3Mgc2VlIGhvdyB0aGlzIGdvZXMu DQo+IA0KVGhhbmtzIGZvciB5b3VyIGhlbHAgYW5kIGxvb2tpbmcgZm9yd2FyZCB0byB5b3VyIHBh dGNoZXMuDQoNCj4gPiBBcyBhYm92ZSwgSSdtIHNvcnJ5IEkgY2FuJ3QgZXhwbGFpbiBtdWNoIG1v cmUgZGV0YWlscyBhYm91dCBoYXJkd2FyZSBkZXNpZ24uDQo+IA0KPiBTdXJlLCBpdCdzIG9rYXku DQo+IA0KDQpLaW5kIHJlZ2FyZHMNCg==