From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jiang, Sonny" Subject: Re: [PATCH v2] drm/amdgpu: update documentation for amdgpu_drv.c Date: Wed, 4 Jul 2018 16:12:05 +0000 Message-ID: References: <1530648395-17495-1-git-send-email-sonny.jiang@amd.com>, <5B3C539D.9020208@amd.com>, , Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1056686414==" Return-path: In-Reply-To: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Deucher, Alexander" , "Qu, Jim" , "Zhang, Jerry" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" --===============1056686414== Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_CY4PR12MB15115A371542EB485B6BADA7FD410CY4PR12MB1511namp_" --_000_CY4PR12MB15115A371542EB485B6BADA7FD410CY4PR12MB1511namp_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgQWxleCwNCg0KDQpJUCBibG9ja3MgaW5kZXhlcyBhcmUgbm90IGZpeGVkLiBXaGF0J3MgeW91 ciBpZGVhIHRvIGxpc3QgdGhlbT8gQnkgYXNpYyBmYW1pbHk/DQoNCg0KZW51bSBhbWRfaXBfYmxv Y2tfdHlwZSB7DQogICAgICAgIEFNRF9JUF9CTE9DS19UWVBFX0NPTU1PTiwNCiAgICAgICAgQU1E X0lQX0JMT0NLX1RZUEVfR01DLA0KICAgICAgICBBTURfSVBfQkxPQ0tfVFlQRV9JSCwNCiAgICAg ICAgQU1EX0lQX0JMT0NLX1RZUEVfU01DLA0KICAgICAgICBBTURfSVBfQkxPQ0tfVFlQRV9QU1As DQogICAgICAgIEFNRF9JUF9CTE9DS19UWVBFX0RDRSwNCiAgICAgICAgQU1EX0lQX0JMT0NLX1RZ UEVfR0ZYLA0KICAgICAgICBBTURfSVBfQkxPQ0tfVFlQRV9TRE1BLA0KICAgICAgICBBTURfSVBf QkxPQ0tfVFlQRV9VVkQsDQogICAgICAgIEFNRF9JUF9CTE9DS19UWVBFX1ZDRSwNCiAgICAgICAg QU1EX0lQX0JMT0NLX1RZUEVfQUNQLA0KICAgICAgICBBTURfSVBfQkxPQ0tfVFlQRV9WQ04NCn07 DQoNClRoYW5rcywNCg0KU29ubnkNCg0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xw0KRnJvbTogRGV1Y2hlciwgQWxleGFuZGVyDQpTZW50OiBXZWRuZXNkYXksIEp1bHkgNCwgMjAx OCAyOjQ5OjE3IEFNDQpUbzogUXUsIEppbTsgWmhhbmcsIEplcnJ5OyBKaWFuZywgU29ubnk7IGFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQpTdWJqZWN0OiBSZTogW1BBVENIIHYyXSBkcm0v YW1kZ3B1OiB1cGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IgYW1kZ3B1X2Rydi5jDQoNCg0KeWVhaCwg dGhhdCdzIGEgZ29vZCBpZGVhLg0KDQpBbGV4DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KRnJvbTogYW1kLWdmeCA8YW1kLWdmeC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9y Zz4gb24gYmVoYWxmIG9mIFF1LCBKaW0gPEppbS5RdUBhbWQuY29tPg0KU2VudDogV2VkbmVzZGF5 LCBKdWx5IDQsIDIwMTggMToxNCBBTQ0KVG86IFpoYW5nLCBKZXJyeTsgSmlhbmcsIFNvbm55OyBh bWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KU3ViamVjdDogtPC4tDogW1BBVENIIHYyXSBk cm0vYW1kZ3B1OiB1cGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IgYW1kZ3B1X2Rydi5jDQoNCkkgYWx3 YXlzIGNvbmZ1c2UgYW55IGJpdHMgZGVmaW5pYXRpb24gYWJvdXQgc29tZSBmZWF0dXJlIG1hc2su IHN1Y2ggYXMgaXBfYmxvY2tfbWFzaywgcGdfbWFzaywgY2dfbWFzaywgcHBfZmVhdHVyZV9tYXNr LiBJIHRoaW5rIG90aGVyIHBlb3BsZSB3aG8gaXMgbm90IGZhbWlsaWFyIHdpdGggYW1kZ3B1IGRy aXZlciBtYXkgaGF2ZSB0aGUgc2FtZSBwcm9ibGVtLg0KDQpTbywgaXMgaXQgcG9zc2libGUgdG8g ZGV0YWlsIGV2ZXJ5IGJpdCBtYXNrIG9mIGZlYXR1cmVzPw0KDQpUaGFua3MNCkppbVF1DQoNCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCreivP7IyzogYW1kLWdmeCA8 YW1kLWdmeC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4gtPqx7SBaaGFuZywgSmVycnkg KEp1bndlaSkgPEplcnJ5LlpoYW5nQGFtZC5jb20+DQq3osvNyrG85DogMjAxOMTqN9TCNMjVIDEy OjU3OjAxDQrK1bz+yMs6IEppYW5nLCBTb25ueTsgYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcNCtb3zOI6IFJlOiBbUEFUQ0ggdjJdIGRybS9hbWRncHU6IHVwZGF0ZSBkb2N1bWVudGF0aW9u IGZvciBhbWRncHVfZHJ2LmMNCg0KT24gMDcvMDQvMjAxOCAwNDowNiBBTSwgU29ubnkgSmlhbmcg d3JvdGU6DQo+IFNpZ25lZC1vZmYtYnk6IFNvbm55IEppYW5nIDxzb25ueS5qaWFuZ0BhbWQuY29t Pg0KQWNrZWQtYnk6IEp1bndlaSBaaGFuZyA8SmVycnkuWmhhbmdAYW1kLmNvbT4NCg0KPiAtLS0N Cj4gICBEb2N1bWVudGF0aW9uL2dwdS9hbWRncHUucnN0ICAgICAgICAgICAgfCAgIDcgKw0KPiAg IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyB8IDIyMiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQ0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgMjIyIGluc2VydGlv bnMoKyksIDcgZGVsZXRpb25zKC0pDQo+DQo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dw dS9hbWRncHUucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvYW1kZ3B1LnJzdA0KPiBpbmRleCA3NjVj MmEzLi5hNzQwZTQ5IDEwMDY0NA0KPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9hbWRncHUucnN0 DQo+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2FtZGdwdS5yc3QNCj4gQEAgLTUsNiArNSwxMyBA QA0KPiAgIFRoZSBkcm0vYW1kZ3B1IGRyaXZlciBzdXBwb3J0cyBhbGwgQU1EIFJhZGVvbiBHUFVz IGJhc2VkIG9uIHRoZSBHcmFwaGljcyBDb3JlDQo+ICAgTmV4dCAoR0NOKSBhcmNoaXRlY3R1cmUu DQo+DQo+ICtNb2R1bGUgUGFyYW1ldGVycw0KPiArPT09PT09PT09PT09PT09PT0NCj4gKw0KPiAr VGhlIGFtZGdwdSBkcml2ZXIgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBtb2R1bGUgcGFyYW1ldGVy czoNCj4gKw0KPiArLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kcnYuYw0KPiArDQo+ICAgQ29yZSBEcml2ZXIgSW5mcmFzdHJ1Y3R1cmUNCj4gICA9PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2Rydi5jDQo+IGluZGV4IDk2MzU3OGMuLmNhZjgxY2UgMTAwNjQ0DQo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMNCj4gQEAgLTEsMTAgKzEsMyBAQA0KPiAtLyoqDQo+ IC0gKiBcZmlsZSBhbWRncHVfZHJ2LmMNCj4gLSAqIEFNRCBBbWRncHUgZHJpdmVyDQo+IC0gKg0K PiAtICogXGF1dGhvciBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+DQo+IC0gKi8N Cj4gLQ0KPiAgIC8qDQo+ICAgICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5j LiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLg0KPiAgICAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQo+ IEBAIC0xMzYsMTAyICsxMjksMjM1IEBAIGludCBhbWRncHVfZ3B1X3JlY292ZXJ5ID0gLTE7IC8q IGF1dG8gKi8NCj4gICBpbnQgYW1kZ3B1X2VtdV9tb2RlID0gMDsNCj4gICB1aW50IGFtZGdwdV9z bXVfbWVtb3J5X3Bvb2xfc2l6ZSA9IDA7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogdnJhbWxpbWl0 IChpbnQpDQo+ICsgKiBSZXN0cmljdCB0aGUgdG90YWwgYW1vdW50IG9mIFZSQU0gaW4gTWlCIGZv ciB0ZXN0aW5nLiAgVGhlIGRlZmF1bHQgaXMgMCAoVXNlIGZ1bGwgVlJBTSkuDQo+ICsgKi8NCj4g ICBNT0RVTEVfUEFSTV9ERVNDKHZyYW1saW1pdCwgIlJlc3RyaWN0IFZSQU0gZm9yIHRlc3Rpbmcs IGluIG1lZ2FieXRlcyIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZCh2cmFtbGltaXQsIGFtZGdw dV92cmFtX2xpbWl0LCBpbnQsIDA2MDApOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHZpc192cmFt bGltaXQgKGludCkNCj4gKyAqIFJlc3RyaWN0IHRoZSBhbW91bnQgb2YgQ1BVIHZpc2libGUgVlJB TSBpbiBNaUIgZm9yIHRlc3RpbmcuICBUaGUgZGVmYXVsdCBpcyAwIChVc2UgZnVsbCBDUFUgdmlz aWJsZSBWUkFNKS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0ModmlzX3ZyYW1saW1pdCwg IlJlc3RyaWN0IHZpc2libGUgVlJBTSBmb3IgdGVzdGluZywgaW4gbWVnYWJ5dGVzIik7DQo+ICAg bW9kdWxlX3BhcmFtX25hbWVkKHZpc192cmFtbGltaXQsIGFtZGdwdV92aXNfdnJhbV9saW1pdCwg aW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBnYXJ0c2l6ZSAodWludCkNCj4gKyAq IFJlc3RyaWN0IHRoZSBzaXplIG9mIEdBUlQgaW4gTWliICgzMiwgNjQsIGV0Yy4pIGZvciB0ZXN0 aW5nLiBUaGUgZGVmYXVsdCBpcyAtMSAoVGhlIHNpemUgZGVwZW5kcyBvbiBhc2ljKS4NCj4gKyAq Lw0KPiAgIE1PRFVMRV9QQVJNX0RFU0MoZ2FydHNpemUsICJTaXplIG9mIEdBUlQgdG8gc2V0dXAg aW4gbWVnYWJ5dGVzICgzMiwgNjQsIGV0Yy4sIC0xPWF1dG8pIik7DQo+ICAgbW9kdWxlX3BhcmFt X25hbWVkKGdhcnRzaXplLCBhbWRncHVfZ2FydF9zaXplLCB1aW50LCAwNjAwKTsNCj4NCj4gKy8q Kg0KPiArICogRE9DOiBndHRzaXplIChpbnQpDQo+ICsgKiBSZXN0cmljdCB0aGUgc2l6ZSBvZiBH VFQgZG9tYWluIGluIE1pQiBmb3IgdGVzdGluZy4gVGhlIGRlZmF1bHQgaXMgLTEgKEl0J3MgVlJB TSBzaXplIGlmIDNHQiA8IFZSQU0gPCAzLzQgUkFNLA0KPiArICogb3RoZXJ3aXNlIDMvNCBSQU0g c2l6ZSkuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKGd0dHNpemUsICJTaXplIG9mIHRo ZSBHVFQgZG9tYWluIGluIG1lZ2FieXRlcyAoLTEgPSBhdXRvKSIpOw0KPiAgIG1vZHVsZV9wYXJh bV9uYW1lZChndHRzaXplLCBhbWRncHVfZ3R0X3NpemUsIGludCwgMDYwMCk7DQo+DQo+ICsvKioN Cj4gKyAqIERPQzogbW92ZXJhdGUgKGludCkNCj4gKyAqIFNldCBtYXhpbXVtIGJ1ZmZlciBtaWdy YXRpb24gcmF0ZSBpbiBNQi9zLiBUaGUgZGVmYXVsdCBpcyAtMSAoOCBNQi9zKS4NCj4gKyAqLw0K PiAgIE1PRFVMRV9QQVJNX0RFU0MobW92ZXJhdGUsICJNYXhpbXVtIGJ1ZmZlciBtaWdyYXRpb24g cmF0ZSBpbiBNQi9zLiAoMzIsIDY0LCBldGMuLCAtMT1hdXRvLCAwPTE9ZGlzYWJsZWQpIik7DQo+ ICAgbW9kdWxlX3BhcmFtX25hbWVkKG1vdmVyYXRlLCBhbWRncHVfbW92ZXJhdGUsIGludCwgMDYw MCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogYmVuY2htYXJrIChpbnQpDQo+ICsgKiBSdW4gYmVu Y2htYXJrcy4gVGhlIGRlZmF1bHQgaXMgMCAoU2tpcCBiZW5jaG1hcmtzKS4NCj4gKyAqLw0KPiAg IE1PRFVMRV9QQVJNX0RFU0MoYmVuY2htYXJrLCAiUnVuIGJlbmNobWFyayIpOw0KPiAgIG1vZHVs ZV9wYXJhbV9uYW1lZChiZW5jaG1hcmssIGFtZGdwdV9iZW5jaG1hcmtpbmcsIGludCwgMDQ0NCk7 DQo+DQo+ICsvKioNCj4gKyAqIERPQzogdGVzdCAoaW50KQ0KPiArICogVGVzdCBCTyBHVFQtPlZS QU0gYW5kIFZSQU0tPkdUVCBHUFUgY29waWVzLiBUaGUgZGVmYXVsdCBpcyAwIChTa2lwIHRlc3Qs IG9ubHkgc2V0IDEgdG8gcnVuIHRlc3QpLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyh0 ZXN0LCAiUnVuIHRlc3RzIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKHRlc3QsIGFtZGdwdV90 ZXN0aW5nLCBpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IGF1ZGlvIChpbnQpDQo+ ICsgKiBTZXQgQXVkaW8uIFRoZSBkZWZhdWx0IGlzIC0xIChFbmFibGVkKSwgc2V0IDAgdG8gZGlz YWJsZWQgaXQuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKGF1ZGlvLCAiQXVkaW8gZW5h YmxlICgtMSA9IGF1dG8sIDAgPSBkaXNhYmxlLCAxID0gZW5hYmxlKSIpOw0KPiAgIG1vZHVsZV9w YXJhbV9uYW1lZChhdWRpbywgYW1kZ3B1X2F1ZGlvLCBpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ ICsgKiBET0M6IGRpc3BfcHJpb3JpdHkgKGludCkNCj4gKyAqIFNldCBkaXNwbGF5IFByaW9yaXR5 ICgwID0gYXV0bywgMSA9IG5vcm1hbCwgMiA9IGhpZ2gpLiBUaGUgZGVmYXVsdCBpcyAwLg0KPiAr ICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhkaXNwX3ByaW9yaXR5LCAiRGlzcGxheSBQcmlvcml0 eSAoMCA9IGF1dG8sIDEgPSBub3JtYWwsIDIgPSBoaWdoKSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9u YW1lZChkaXNwX3ByaW9yaXR5LCBhbWRncHVfZGlzcF9wcmlvcml0eSwgaW50LCAwNDQ0KTsNCj4N Cj4gKy8qKg0KPiArICogRE9DOiBod19pMmMgKGludCkNCj4gKyAqIFRvIGVuYWJsZSBodyBpMmMg ZW5naW5lLiBUaGUgZGVmYXVsdCBpcyAwIChEaXNhYmxlZCkuDQo+ICsgKi8NCj4gICBNT0RVTEVf UEFSTV9ERVNDKGh3X2kyYywgImh3IGkyYyBlbmdpbmUgZW5hYmxlICgwID0gZGlzYWJsZSkiKTsN Cj4gICBtb2R1bGVfcGFyYW1fbmFtZWQoaHdfaTJjLCBhbWRncHVfaHdfaTJjLCBpbnQsIDA0NDQp Ow0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHBjaWVfZ2VuMiAoaW50KQ0KPiArICogVG8gZGlzYWJs ZSBQQ0lFIEdlbjIgbW9kZSAoMCA9IGRpc2FibGUsIDEgPSBlbmFibGUpLiBUaGUgZGVmYXVsdCBp cyAtMSAoYXV0bywgZW5hYmxlZCkuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKHBjaWVf Z2VuMiwgIlBDSUUgR2VuMiBtb2RlICgtMSA9IGF1dG8sIDAgPSBkaXNhYmxlLCAxID0gZW5hYmxl KSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChwY2llX2dlbjIsIGFtZGdwdV9wY2llX2dlbjIs IGludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogbXNpIChpbnQpDQo+ICsgKiBUbyBk aXNhYmxlIE1TSSBmdW5jdGlvbmFsaXR5ICgxID0gZW5hYmxlLCAwID0gZGlzYWJsZSkuIFRoZSBk ZWZhdWx0IGlzIC0xIChhdXRvLCBlbmFibGVkKS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RF U0MobXNpLCAiTVNJIHN1cHBvcnQgKDEgPSBlbmFibGUsIDAgPSBkaXNhYmxlLCAtMSA9IGF1dG8p Iik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKG1zaSwgYW1kZ3B1X21zaSwgaW50LCAwNDQ0KTsN Cj4NCj4gKy8qKg0KPiArICogRE9DOiBsb2NrdXBfdGltZW91dCAoaW50KQ0KPiArICogU2V0IEdQ VSBzY2hlZHVsZXIgdGltZW91dCB2YWx1ZSBpbiBtcy4gSXQgbXVzdCBiZSA+IDAuICBUaGUgZGVm YXVsdCBpcyAxMDAwMC4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0MobG9ja3VwX3RpbWVv dXQsICJHUFUgbG9ja3VwIHRpbWVvdXQgaW4gbXMgPiAwIChkZWZhdWx0IDEwMDAwKSIpOw0KPiAg IG1vZHVsZV9wYXJhbV9uYW1lZChsb2NrdXBfdGltZW91dCwgYW1kZ3B1X2xvY2t1cF90aW1lb3V0 LCBpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IGRwbSAoaW50KQ0KPiArICogT3Zl cnJpZGUgZm9yIGR5bmFtaWMgcG93ZXIgbWFuYWdlbWVudCBzZXR0aW5nICgxID0gZW5hYmxlLCAw ID0gZGlzYWJsZSkuIFRoZSBkZWZhdWx0IGlzIC0xIChhdXRvKS4NCj4gKyAqLw0KPiAgIE1PRFVM RV9QQVJNX0RFU0MoZHBtLCAiRFBNIHN1cHBvcnQgKDEgPSBlbmFibGUsIDAgPSBkaXNhYmxlLCAt MSA9IGF1dG8pIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKGRwbSwgYW1kZ3B1X2RwbSwgaW50 LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBmd19sb2FkX3R5cGUgKGludCkNCj4gKyAq IFNldCBkaWZmZXJlbnQgZmlybXdhcmUgbG9hZGluZyB0eXBlIGZvciBkZWJ1Z2dpbmcgKDAgPSBk aXJlY3QsIDEgPSBTTVUsIDIgPSBQU1ApLiBUaGUgZGVmYXVsdCBpcyAtMSAoYXV0bykuDQo+ICsg Ki8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKGZ3X2xvYWRfdHlwZSwgImZpcm13YXJlIGxvYWRpbmcg dHlwZSAoMCA9IGRpcmVjdCwgMSA9IFNNVSwgMiA9IFBTUCwgLTEgPSBhdXRvKSIpOw0KPiAgIG1v ZHVsZV9wYXJhbV9uYW1lZChmd19sb2FkX3R5cGUsIGFtZGdwdV9md19sb2FkX3R5cGUsIGludCwg MDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogYXNwbSAoaW50KQ0KPiArICogVG8gZGlzYWJs ZSBBU1BNICgxID0gZW5hYmxlLCAwID0gZGlzYWJsZSkuIFRoZSBkZWZhdWx0IGlzIC0xIChhdXRv LCBlbmFibGVkKS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0MoYXNwbSwgIkFTUE0gc3Vw cG9ydCAoMSA9IGVuYWJsZSwgMCA9IGRpc2FibGUsIC0xID0gYXV0bykiKTsNCj4gICBtb2R1bGVf cGFyYW1fbmFtZWQoYXNwbSwgYW1kZ3B1X2FzcG0sIGludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4g KyAqIERPQzogcnVucG0gKGludCkNCj4gKyAqIE92ZXJyaWRlIGZvciBydW50aW1lIHBvd2VyIG1h bmFnZW1lbnQgY29udHJvbCBmb3IgZEdQVXMgaW4gUFgvSEcgbGFwdG9wcy4gVGhlIGFtZGdwdSBk cml2ZXIgY2FuIGR5bmFtaWNhbGx5IHBvd2VyIGRvd24NCj4gKyAqIHRoZSBkR1BVIG9uIFBYL0hH IGxhcHRvcHMgd2hlbiBpdCBpcyBpZGxlLiBUaGUgZGVmYXVsdCBpcyAtMSAoYXV0byBlbmFibGUp LiBTZXR0aW5nIHRoZSB2YWx1ZSB0byAwIGRpc2FibGVzIHRoaXMgZnVuY3Rpb25hbGl0eS4NCj4g KyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0MocnVucG0sICJQWCBydW50aW1lIHBtICgxID0gZm9y Y2UgZW5hYmxlLCAwID0gZGlzYWJsZSwgLTEgPSBQWCBvbmx5IGRlZmF1bHQpIik7DQo+ICAgbW9k dWxlX3BhcmFtX25hbWVkKHJ1bnBtLCBhbWRncHVfcnVudGltZV9wbSwgaW50LCAwNDQ0KTsNCj4N Cj4gKy8qKg0KPiArICogRE9DOiBpcF9ibG9ja19tYXNrICh1aW50KQ0KPiArICogT3ZlcnJpZGUg d2hhdCBJUCBibG9ja3MgYXJlIGVuYWJsZWQgb24gdGhlIEdQVS4gIEVhY2ggR1BVIGlzIGEgY29s bGVjdGlvbiBvZiBJUCBibG9ja3MgKGdmeCwgZGlzcGxheSwgdmlkZW8sIGV0Yy4pLg0KPiArICog VXNlIHRoaXMgcGFyYW1ldGVyIHRvIGRpc2FibGUgc3BlY2lmaWMgYmxvY2tzLiBOb3RlIHRoYXQg dGhlIElQIGJsb2NrcyBkbyBub3QgaGF2ZSBhIGZpeGVkIGluZGV4IChlLmcuLCB5b3UgbWlnaHQg aGF2ZSBhIGRldmljZQ0KPiArICogd2l0aCBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgYW4gSVAgYmxv Y2spIHNvIHRoZSBtYXNrIGlzIGJvYXJkIHNwZWNpZmljLiBUaGUgZGVmYXVsdCBpcyAweGZmZmZm ZmZmIChlbmFibGUgYWxsIGJsb2NrcyBvbiBhIGRldmljZSkuDQo+ICsgKi8NCj4gICBNT0RVTEVf UEFSTV9ERVNDKGlwX2Jsb2NrX21hc2ssICJJUCBCbG9jayBNYXNrIChhbGwgYmxvY2tzIGVuYWJs ZWQgKGRlZmF1bHQpKSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChpcF9ibG9ja19tYXNrLCBh bWRncHVfaXBfYmxvY2tfbWFzaywgdWludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzog YmFwbSAoaW50KQ0KPiArICogVG8gZGlzYWJsZSBCQVBNICgwID0gZGlzYWJsZSkuIFRoZSBkZWZh dWx0IC0xIChhdXRvLCBlbmFibGVkKQ0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhiYXBt LCAiQkFQTSBzdXBwb3J0ICgxID0gZW5hYmxlLCAwID0gZGlzYWJsZSwgLTEgPSBhdXRvKSIpOw0K PiAgIG1vZHVsZV9wYXJhbV9uYW1lZChiYXBtLCBhbWRncHVfYmFwbSwgaW50LCAwNDQ0KTsNCj4N Cj4gKy8qKg0KPiArICogRE9DOiBkZWVwX2NvbG9yIChpbnQpDQo+ICsgKiBTZXQgMSB0byBlbmFi bGUgRGVlcCBDb2xvciBzdXBwb3J0LiBUaGUgZGVmYXVsdCBpcyAwIChkaXNhYmxlZCkuDQo+ICsg Ki8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKGRlZXBfY29sb3IsICJEZWVwIENvbG9yIHN1cHBvcnQg KDEgPSBlbmFibGUsIDAgPSBkaXNhYmxlIChkZWZhdWx0KSkiKTsNCj4gICBtb2R1bGVfcGFyYW1f bmFtZWQoZGVlcF9jb2xvciwgYW1kZ3B1X2RlZXBfY29sb3IsIGludCwgMDQ0NCk7DQo+DQo+ICsv KioNCj4gKyAqIERPQzogdm1fc2l6ZSAoaW50KQ0KPiArICogT3ZlcnJpZGUgdGhlIHNpemUgb2Yg dGhlIEdQVSdzIHBlciBjbGllbnQgdmlydHVhbCBhZGRyZXNzIHNwYWNlIGluIEdpQi4gIFRoZSBk ZWZhdWx0IGlzIC0xIChhdXRvbWF0aWMgZm9yIGVhY2ggYXNpYykuDQo+ICsgKi8NCj4gICBNT0RV TEVfUEFSTV9ERVNDKHZtX3NpemUsICJWTSBhZGRyZXNzIHNwYWNlIHNpemUgaW4gZ2lnYWJ5dGVz IChkZWZhdWx0IDY0R0IpIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKHZtX3NpemUsIGFtZGdw dV92bV9zaXplLCBpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHZtX2ZyYWdtZW50 X3NpemUgKGludCkNCj4gKyAqIE92ZXJyaWRlIFZNIGZyYWdtZW50IHNpemUgaW4gYml0cyAoNCwg NSwgZXRjLiA0ID0gNjRLLCA5ID0gMk0pLiBUaGUgZGVmYXVsdCBpcyAtMSAoYXV0b21hdGljIGZv ciBlYWNoIGFzaWMpLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyh2bV9mcmFnbWVudF9z aXplLCAiVk0gZnJhZ21lbnQgc2l6ZSBpbiBiaXRzICg0LCA1LCBldGMuIDQgPSA2NEsgKGRlZmF1 bHQpLCBNYXggOSA9IDJNKSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZCh2bV9mcmFnbWVudF9z aXplLCBhbWRncHVfdm1fZnJhZ21lbnRfc2l6ZSwgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiAr ICogRE9DOiB2bV9ibG9ja19zaXplIChpbnQpDQo+ICsgKiBPdmVycmlkZSBWTSBwYWdlIHRhYmxl IHNpemUgaW4gYml0cyAoZGVmYXVsdCBkZXBlbmRpbmcgb24gdm1fc2l6ZSBhbmQgaHcgc2V0dXAp LiBUaGUgZGVmYXVsdCBpcyAtMSAoYXV0b21hdGljIGZvciBlYWNoIGFzaWMpLg0KPiArICovDQo+ ICAgTU9EVUxFX1BBUk1fREVTQyh2bV9ibG9ja19zaXplLCAiVk0gcGFnZSB0YWJsZSBzaXplIGlu IGJpdHMgKGRlZmF1bHQgZGVwZW5kaW5nIG9uIHZtX3NpemUpIik7DQo+ICAgbW9kdWxlX3BhcmFt X25hbWVkKHZtX2Jsb2NrX3NpemUsIGFtZGdwdV92bV9ibG9ja19zaXplLCBpbnQsIDA0NDQpOw0K Pg0KPiArLyoqDQo+ICsgKiBET0M6IHZtX2ZhdWx0X3N0b3AgKGludCkNCj4gKyAqIFN0b3Agb24g Vk0gZmF1bHQgZm9yIGRlYnVnZ2luZyAoMCA9IG5ldmVyLCAxID0gcHJpbnQgZmlyc3QsIDIgPSBh bHdheXMpLiBUaGUgZGVmYXVsdCBpcyAwIChObyBzdG9wKS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9Q QVJNX0RFU0Modm1fZmF1bHRfc3RvcCwgIlN0b3Agb24gVk0gZmF1bHQgKDAgPSBuZXZlciAoZGVm YXVsdCksIDEgPSBwcmludCBmaXJzdCwgMiA9IGFsd2F5cykiKTsNCj4gICBtb2R1bGVfcGFyYW1f bmFtZWQodm1fZmF1bHRfc3RvcCwgYW1kZ3B1X3ZtX2ZhdWx0X3N0b3AsIGludCwgMDQ0NCk7DQo+ DQo+ICsvKioNCj4gKyAqIERPQzogdm1fZGVidWcgKGludCkNCj4gKyAqIERlYnVnIFZNIGhhbmRs aW5nICgwID0gZGlzYWJsZWQsIDEgPSBlbmFibGVkKS4gVGhlIGRlZmF1bHQgaXMgMCAoRGlzYWJs ZWQpLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyh2bV9kZWJ1ZywgIkRlYnVnIFZNIGhh bmRsaW5nICgwID0gZGlzYWJsZWQgKGRlZmF1bHQpLCAxID0gZW5hYmxlZCkiKTsNCj4gICBtb2R1 bGVfcGFyYW1fbmFtZWQodm1fZGVidWcsIGFtZGdwdV92bV9kZWJ1ZywgaW50LCAwNjQ0KTsNCj4N Cj4gKy8qKg0KPiArICogRE9DOiB2bV91cGRhdGVfbW9kZSAoaW50KQ0KPiArICogT3ZlcnJpZGUg Vk0gdXBkYXRlIG1vZGUuIFZNIHVwZGF0ZWQgYnkgdXNpbmcgQ1BVICgwID0gbmV2ZXIsIDEgPSBH cmFwaGljcyBvbmx5LCAyID0gQ29tcHV0ZSBvbmx5LCAzID0gQm90aCkuIFRoZSBkZWZhdWx0DQo+ ICsgKiBpcyAtMSAoT25seSBpbiBsYXJnZSBCQVIoTEIpIHN5c3RlbXMgQ29tcHV0ZSBWTSB0YWJs ZXMgd2lsbCBiZSB1cGRhdGVkIGJ5IENQVSwgb3RoZXJ3aXNlIDAsIG5ldmVyKS4NCj4gKyAqLw0K PiAgIE1PRFVMRV9QQVJNX0RFU0Modm1fdXBkYXRlX21vZGUsICJWTSB1cGRhdGUgdXNpbmcgQ1BV ICgwID0gbmV2ZXIgKGRlZmF1bHQgZXhjZXB0IGZvciBsYXJnZSBCQVIoTEIpKSwgMSA9IEdyYXBo aWNzIG9ubHksIDIgPSBDb21wdXRlIG9ubHkgKGRlZmF1bHQgZm9yIExCKSwgMyA9IEJvdGgiKTsN Cj4gICBtb2R1bGVfcGFyYW1fbmFtZWQodm1fdXBkYXRlX21vZGUsIGFtZGdwdV92bV91cGRhdGVf bW9kZSwgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiB2cmFtX3BhZ2Vfc3BsaXQg KGludCkNCj4gKyAqIE92ZXJyaWRlIHRoZSBudW1iZXIgb2YgcGFnZXMgYWZ0ZXIgd2Ugc3BsaXQg VlJBTSBhbGxvY2F0aW9ucyAoZGVmYXVsdCA1MTIsIC0xID0gZGlzYWJsZSkuIFRoZSBkZWZhdWx0 IGlzIDUxMi4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0ModnJhbV9wYWdlX3NwbGl0LCAi TnVtYmVyIG9mIHBhZ2VzIGFmdGVyIHdlIHNwbGl0IFZSQU0gYWxsb2NhdGlvbnMgKGRlZmF1bHQg NTEyLCAtMSA9IGRpc2FibGUpIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKHZyYW1fcGFnZV9z cGxpdCwgYW1kZ3B1X3ZyYW1fcGFnZV9zcGxpdCwgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiAr ICogRE9DOiBleHBfaHdfc3VwcG9ydCAoaW50KQ0KPiArICogRW5hYmxlIGV4cGVyaW1lbnRhbCBo dyBzdXBwb3J0ICgxID0gZW5hYmxlKS4gVGhlIGRlZmF1bHQgaXMgMCAoZGlzYWJsZWQpLg0KPiAr ICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhleHBfaHdfc3VwcG9ydCwgImV4cGVyaW1lbnRhbCBo dyBzdXBwb3J0ICgxID0gZW5hYmxlLCAwID0gZGlzYWJsZSAoZGVmYXVsdCkpIik7DQo+ICAgbW9k dWxlX3BhcmFtX25hbWVkKGV4cF9od19zdXBwb3J0LCBhbWRncHVfZXhwX2h3X3N1cHBvcnQsIGlu dCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogZGMgKGludCkNCj4gKyAqIERpc2FibGUv RW5hYmxlIERpc3BsYXkgQ29yZSBkcml2ZXIgZm9yIGRlYnVnZ2luZyAoMSA9IGVuYWJsZSwgMCA9 IGRpc2FibGUpLiBUaGUgZGVmYXVsdCBpcyAtMSAoYXV0b21hdGljIGZvciBlYWNoIGFzaWMpLg0K PiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhkYywgIkRpc3BsYXkgQ29yZSBkcml2ZXIgKDEg PSBlbmFibGUsIDAgPSBkaXNhYmxlLCAtMSA9IGF1dG8gKGRlZmF1bHQpKSIpOw0KPiAgIG1vZHVs ZV9wYXJhbV9uYW1lZChkYywgYW1kZ3B1X2RjLCBpbnQsIDA0NDQpOw0KPg0KPiAgIE1PRFVMRV9Q QVJNX0RFU0MoZGNfbG9nLCAiRGlzcGxheSBDb3JlIExvZyBMZXZlbCAoMCA9IG1pbmltYWwgKGRl ZmF1bHQpLCAxID0gY2hhdHR5Iik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKGRjX2xvZywgYW1k Z3B1X2RjX2xvZywgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBzY2hlZF9qb2Jz IChpbnQpDQo+ICsgKiBPdmVycmlkZSB0aGUgbWF4IG51bWJlciBvZiBqb2JzIHN1cHBvcnRlZCBp biB0aGUgc3cgcXVldWUuIFRoZSBkZWZhdWx0IGlzIDMyLg0KPiArICovDQo+ICAgTU9EVUxFX1BB Uk1fREVTQyhzY2hlZF9qb2JzLCAidGhlIG1heCBudW1iZXIgb2Ygam9icyBzdXBwb3J0ZWQgaW4g dGhlIHN3IHF1ZXVlIChkZWZhdWx0IDMyKSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChzY2hl ZF9qb2JzLCBhbWRncHVfc2NoZWRfam9icywgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICog RE9DOiBzY2hlZF9od19zdWJtaXNzaW9uIChpbnQpDQo+ICsgKiBPdmVycmlkZSB0aGUgbWF4IG51 bWJlciBvZiBIVyBzdWJtaXNzaW9ucy4gVGhlIGRlZmF1bHQgaXMgMi4NCj4gKyAqLw0KPiAgIE1P RFVMRV9QQVJNX0RFU0Moc2NoZWRfaHdfc3VibWlzc2lvbiwgInRoZSBtYXggbnVtYmVyIG9mIEhX IHN1Ym1pc3Npb25zIChkZWZhdWx0IDIpIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKHNjaGVk X2h3X3N1Ym1pc3Npb24sIGFtZGdwdV9zY2hlZF9od19zdWJtaXNzaW9uLCBpbnQsIDA0NDQpOw0K Pg0KPiArLyoqDQo+ICsgKiBET0M6IHBwZmVhdHVyZW1hc2sgKHVpbnQpDQo+ICsgKiBPdmVycmlk ZSB3aGF0IHBvd2VyIGZlYXR1cmVzIGFyZSBlbmFibGVkLiBUaGUgZGVmYXVsdCBpcyAweGZmZmYz ZmZmIChnZnhvZmYoYml0IDE1KSwgb3ZlcmRyaXZlcihiaXQgMTQpIGRpc2FibGVkKS4NCj4gKyAq Lw0KPiAgIE1PRFVMRV9QQVJNX0RFU0MocHBmZWF0dXJlbWFzaywgImFsbCBwb3dlciBmZWF0dXJl cyBlbmFibGVkIChkZWZhdWx0KSkiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQocHBmZWF0dXJl bWFzaywgYW1kZ3B1X3BwX2ZlYXR1cmVfbWFzaywgdWludCwgMDQ0NCk7DQo+DQo+IEBAIC0yNDEs NTggKzM2NywxMjkgQEAgbW9kdWxlX3BhcmFtX25hbWVkKG5vX2V2aWN0LCBhbWRncHVfbm9fZXZp Y3QsIGludCwgMDQ0NCk7DQo+ICAgTU9EVUxFX1BBUk1fREVTQyhkaXJlY3RfZ21hX3NpemUsICJE aXJlY3QgR01BIHNpemUgaW4gbWVnYWJ5dGVzIChtYXggOTZNQikiKTsNCj4gICBtb2R1bGVfcGFy YW1fbmFtZWQoZGlyZWN0X2dtYV9zaXplLCBhbWRncHVfZGlyZWN0X2dtYV9zaXplLCBpbnQsIDA0 NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHBjaWVfZ2VuX2NhcCAodWludCkNCj4gKyAqIE92 ZXJyaWRlIFBDSUUgZ2VuIHNwZWVkIGNhcGFiaWxpdGllcy4gVGhlIGRlZmF1bHQgaXMgMCAoYXV0 b21hdGljIGZvciBlYWNoIGFzaWMpLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhwY2ll X2dlbl9jYXAsICJQQ0lFIEdlbiBDYXBzICgwOiBhdXRvZGV0ZWN0IChkZWZhdWx0KSkiKTsNCj4g ICBtb2R1bGVfcGFyYW1fbmFtZWQocGNpZV9nZW5fY2FwLCBhbWRncHVfcGNpZV9nZW5fY2FwLCB1 aW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBwY2llX2xhbmVfY2FwICh1aW50KQ0K PiArICogT3ZlcnJpZGUgUENJRSBsYW5lcyBjYXBhYmlsaXRpZXMuIFRoZSBkZWZhdWx0IGlzIDAg KGF1dG9tYXRpYyBmb3IgZWFjaCBhc2ljKS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0Mo cGNpZV9sYW5lX2NhcCwgIlBDSUUgTGFuZSBDYXBzICgwOiBhdXRvZGV0ZWN0IChkZWZhdWx0KSki KTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQocGNpZV9sYW5lX2NhcCwgYW1kZ3B1X3BjaWVfbGFu ZV9jYXAsIHVpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IGNnX21hc2sgKHVpbnQp DQo+ICsgKiBPdmVycmlkZSB3aGF0IENsb2NrZ2F0aW5nIGZlYXR1cmVzIGFyZSBlbmFibGVkIG9u IEdQVSAoMCA9IGRpc2FibGUgY2xvY2sgZ2F0aW5nKS4gVGhlIGRlZmF1bHQgaXMgMHhmZmZmZmZm ZiAoYWxsIGVuYWJsZWQpLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhjZ19tYXNrLCAi Q2xvY2tnYXRpbmcgZmxhZ3MgbWFzayAoMCA9IGRpc2FibGUgY2xvY2sgZ2F0aW5nKSIpOw0KPiAg IG1vZHVsZV9wYXJhbV9uYW1lZChjZ19tYXNrLCBhbWRncHVfY2dfbWFzaywgdWludCwgMDQ0NCk7 DQo+DQo+ICsvKioNCj4gKyAqIERPQzogcGdfbWFzayAodWludCkNCj4gKyAqIE92ZXJyaWRlIHdo YXQgUG93ZXJnYXRpbmcgZmVhdHVyZXMgYXJlIGVuYWJsZWQgb24gR1BVICgwID0gZGlzYWJsZSBw b3dlciBnYXRpbmcpLiBUaGUgZGVmYXVsdCBpcyAweGZmZmZmZmZmIChhbGwgZW5hYmxlZCkuDQo+ ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKHBnX21hc2ssICJQb3dlcmdhdGluZyBmbGFncyBt YXNrICgwID0gZGlzYWJsZSBwb3dlciBnYXRpbmcpIik7DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVk KHBnX21hc2ssIGFtZGdwdV9wZ19tYXNrLCB1aW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICog RE9DOiBzZG1hX3BoYXNlX3F1YW50dW0gKHVpbnQpDQo+ICsgKiBPdmVycmlkZSBTRE1BIGNvbnRl eHQgc3dpdGNoIHBoYXNlIHF1YW50dW0gKHggMUsgR1BVIGNsb2NrIGN5Y2xlcywgMCA9IG5vIGNo YW5nZSkuIFRoZSBkZWZhdWx0IGlzIDMyLg0KPiArICovDQo+ICAgTU9EVUxFX1BBUk1fREVTQyhz ZG1hX3BoYXNlX3F1YW50dW0sICJTRE1BIGNvbnRleHQgc3dpdGNoIHBoYXNlIHF1YW50dW0gKHgg MUsgR1BVIGNsb2NrIGN5Y2xlcywgMCA9IG5vIGNoYW5nZSAoZGVmYXVsdCAzMikpIik7DQo+ICAg bW9kdWxlX3BhcmFtX25hbWVkKHNkbWFfcGhhc2VfcXVhbnR1bSwgYW1kZ3B1X3NkbWFfcGhhc2Vf cXVhbnR1bSwgdWludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogZGlzYWJsZV9jdSAo Y2hhcnApDQo+ICsgKiBTZXQgdG8gZGlzYWJsZSBDVXMgKEl0J3Mgc2V0IGxpa2Ugc2Uuc2guY3Us Li4uKS4gVGhlIGRlZmF1bHQgaXMgTlVMTC4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0Mo ZGlzYWJsZV9jdSwgIkRpc2FibGUgQ1VzIChzZS5zaC5jdSwuLi4pIik7DQo+ICAgbW9kdWxlX3Bh cmFtX25hbWVkKGRpc2FibGVfY3UsIGFtZGdwdV9kaXNhYmxlX2N1LCBjaGFycCwgMDQ0NCk7DQo+ DQo+ICsvKioNCj4gKyAqIERPQzogdmlydHVhbF9kaXNwbGF5IChjaGFycCkNCj4gKyAqIFNldCB0 byBlbmFibGUgdmlydHVhbCBkaXNwbGF5IGZlYXR1cmUuIFRoaXMgZmVhdHVyZSBwcm92aWRlcyBh IHZpcnR1YWwgZGlzcGxheSBoYXJkd2FyZSBvbiBoZWFkbGVzcyBib2FyZHMNCj4gKyAqIG9yIGlu IHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gSXQgd2lsbCBiZSBzZXQgbGlrZSB4eHh4Onh4Onh4 LngseDt4eHh4Onh4Onh4LngseC4gVGhlIGRlZmF1bHQgaXMgTlVMTC4NCj4gKyAqLw0KPiAgIE1P RFVMRV9QQVJNX0RFU0ModmlydHVhbF9kaXNwbGF5LA0KPiAgICAgICAgICAgICAgICAiRW5hYmxl IHZpcnR1YWwgZGlzcGxheSBmZWF0dXJlICh0aGUgdmlydHVhbF9kaXNwbGF5IHdpbGwgYmUgc2V0 IGxpa2UgeHh4eDp4eDp4eC54LHg7eHh4eDp4eDp4eC54LHgpIik7DQo+ICAgbW9kdWxlX3BhcmFt X25hbWVkKHZpcnR1YWxfZGlzcGxheSwgYW1kZ3B1X3ZpcnR1YWxfZGlzcGxheSwgY2hhcnAsIDA0 NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IG5nZyAoaW50KQ0KPiArICogU2V0IHRvIGVuYWJs ZSBOZXh0IEdlbmVyYXRpb24gR3JhcGhpY3MgKDEgPSBlbmFibGUpLiBUaGUgZGVmYXVsdCBpcyAw IChkaXNhYmxlZCkuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKG5nZywgIk5leHQgR2Vu ZXJhdGlvbiBHcmFwaGljcyAoMSA9IGVuYWJsZSwgMCA9IGRpc2FibGUoZGVmYXVsdCBkZXBlbmRp bmcgb24gZ2Z4KSkiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQobmdnLCBhbWRncHVfbmdnLCBp bnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHByaW1fYnVmX3Blcl9zZSAoaW50KQ0K PiArICogT3ZlcnJpZGUgdGhlIHNpemUgb2YgUHJpbWl0aXZlIEJ1ZmZlciBwZXIgU2hhZGVyIEVu Z2luZSBpbiBCeXRlLiBUaGUgZGVmYXVsdCBpcyAwIChkZXBlbmRpbmcgb24gZ2Z4KS4NCj4gKyAq Lw0KPiAgIE1PRFVMRV9QQVJNX0RFU0MocHJpbV9idWZfcGVyX3NlLCAidGhlIHNpemUgb2YgUHJp bWl0aXZlIEJ1ZmZlciBwZXIgU2hhZGVyIEVuZ2luZSAoZGVmYXVsdCBkZXBlbmRpbmcgb24gZ2Z4 KSIpOw0KPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChwcmltX2J1Zl9wZXJfc2UsIGFtZGdwdV9wcmlt X2J1Zl9wZXJfc2UsIGludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogcG9zX2J1Zl9w ZXJfc2UgKGludCkNCj4gKyAqIE92ZXJyaWRlIHRoZSBzaXplIG9mIFBvc2l0aW9uIEJ1ZmZlciBw ZXIgU2hhZGVyIEVuZ2luZSBpbiBCeXRlLiBUaGUgZGVmYXVsdCBpcyAwIChkZXBlbmRpbmcgb24g Z2Z4KS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0MocG9zX2J1Zl9wZXJfc2UsICJ0aGUg c2l6ZSBvZiBQb3NpdGlvbiBCdWZmZXIgcGVyIFNoYWRlciBFbmdpbmUgKGRlZmF1bHQgZGVwZW5k aW5nIG9uIGdmeCkiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQocG9zX2J1Zl9wZXJfc2UsIGFt ZGdwdV9wb3NfYnVmX3Blcl9zZSwgaW50LCAwNDQ0KTsNCj4NCj4gKy8qKg0KPiArICogRE9DOiBj bnRsX3NiX2J1Zl9wZXJfc2UgKGludCkNCj4gKyAqIE92ZXJyaWRlIHRoZSBzaXplIG9mIENvbnRy b2wgU2lkZWJhbmQgcGVyIFNoYWRlciBFbmdpbmUgaW4gQnl0ZS4gVGhlIGRlZmF1bHQgaXMgMCAo ZGVwZW5kaW5nIG9uIGdmeCkuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKGNudGxfc2Jf YnVmX3Blcl9zZSwgInRoZSBzaXplIG9mIENvbnRyb2wgU2lkZWJhbmQgcGVyIFNoYWRlciBFbmdp bmUgKGRlZmF1bHQgZGVwZW5kaW5nIG9uIGdmeCkiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQo Y250bF9zYl9idWZfcGVyX3NlLCBhbWRncHVfY250bF9zYl9idWZfcGVyX3NlLCBpbnQsIDA0NDQp Ow0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHBhcmFtX2J1Zl9wZXJfc2UgKGludCkNCj4gKyAqIE92 ZXJyaWRlIHRoZSBzaXplIG9mIE9mZi1DaGlwIFByYW1hdGVyIENhY2hlIHBlciBTaGFkZXIgRW5n aW5lIGluIEJ5dGUuIFRoZSBkZWZhdWx0IGlzIDAgKGRlcGVuZGluZyBvbiBnZngpLg0KPiArICov DQo+ICAgTU9EVUxFX1BBUk1fREVTQyhwYXJhbV9idWZfcGVyX3NlLCAidGhlIHNpemUgb2YgT2Zm LUNoaXAgUHJhbWF0ZXIgQ2FjaGUgcGVyIFNoYWRlciBFbmdpbmUgKGRlZmF1bHQgZGVwZW5kaW5n IG9uIGdmeCkiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQocGFyYW1fYnVmX3Blcl9zZSwgYW1k Z3B1X3BhcmFtX2J1Zl9wZXJfc2UsIGludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzog am9iX2hhbmdfbGltaXQgKGludCkNCj4gKyAqIFNldCBob3cgbXVjaCB0aW1lIGFsbG93IGEgam9i IGhhbmcgYW5kIG5vdCBkcm9wIGl0LiBUaGUgZGVmYXVsdCBpcyAwLg0KPiArICovDQo+ICAgTU9E VUxFX1BBUk1fREVTQyhqb2JfaGFuZ19saW1pdCwgImhvdyBtdWNoIHRpbWUgYWxsb3cgYSBqb2Ig aGFuZyBhbmQgbm90IGRyb3AgaXQgKGRlZmF1bHQgMCkiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFt ZWQoam9iX2hhbmdfbGltaXQsIGFtZGdwdV9qb2JfaGFuZ19saW1pdCwgaW50ICwwNDQ0KTsNCj4N Cj4gKy8qKg0KPiArICogRE9DOiBsYnB3IChpbnQpDQo+ICsgKiBPdmVycmlkZSBMb2FkIEJhbGFu Y2luZyBQZXIgV2F0dCAoTEJQVykgc3VwcG9ydCAoMSA9IGVuYWJsZSwgMCA9IGRpc2FibGUpLiBU aGUgZGVmYXVsdCBpcyAtMSAoYXV0bywgZW5hYmxlZCkuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFS TV9ERVNDKGxicHcsICJMb2FkIEJhbGFuY2luZyBQZXIgV2F0dCAoTEJQVykgc3VwcG9ydCAoMSA9 IGVuYWJsZSwgMCA9IGRpc2FibGUsIC0xID0gYXV0bykiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFt ZWQobGJwdywgYW1kZ3B1X2xicHcsIGludCwgMDQ0NCk7DQo+DQo+ICAgTU9EVUxFX1BBUk1fREVT Qyhjb21wdXRlX211bHRpcGlwZSwgIkZvcmNlIGNvbXB1dGUgcXVldWVzIHRvIGJlIHNwcmVhZCBh Y3Jvc3MgcGlwZXMgKDEgPSBlbmFibGUsIDAgPSBkaXNhYmxlLCAtMSA9IGF1dG8pIik7DQo+ICAg bW9kdWxlX3BhcmFtX25hbWVkKGNvbXB1dGVfbXVsdGlwaXBlLCBhbWRncHVfY29tcHV0ZV9tdWx0 aXBpcGUsIGludCwgMDQ0NCk7DQo+DQo+ICsvKioNCj4gKyAqIERPQzogZ3B1X3JlY292ZXJ5IChp bnQpDQo+ICsgKiBTZXQgdG8gZW5hYmxlIEdQVSByZWNvdmVyeSBtZWNoYW5pc20gKDEgPSBlbmFi bGUsIDAgPSBkaXNhYmxlKS4gVGhlIGRlZmF1bHQgaXMgLTEgKGF1dG8sIGRpc2FibGVkIGV4Y2Vw dCBTUklPVikuDQo+ICsgKi8NCj4gICBNT0RVTEVfUEFSTV9ERVNDKGdwdV9yZWNvdmVyeSwgIkVu YWJsZSBHUFUgcmVjb3ZlcnkgbWVjaGFuaXNtLCAoMSA9IGVuYWJsZSwgMCA9IGRpc2FibGUsIC0x ID0gYXV0bykiKTsNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQoZ3B1X3JlY292ZXJ5LCBhbWRncHVf Z3B1X3JlY292ZXJ5LCBpbnQsIDA0NDQpOw0KPg0KPiArLyoqDQo+ICsgKiBET0M6IGVtdV9tb2Rl IChpbnQpDQo+ICsgKiBTZXQgdmFsdWUgMSB0byBlbmFibGUgZW11bGF0aW9uIG1vZGUuIFRoZSBk ZWZhdWx0IGlzIDAgKGRpc2FibGVkKS4NCj4gKyAqLw0KPiAgIE1PRFVMRV9QQVJNX0RFU0MoZW11 X21vZGUsICJFbXVsYXRpb24gbW9kZSwgKDEgPSBlbmFibGUsIDAgPSBkaXNhYmxlKSIpOw0KPiAg IG1vZHVsZV9wYXJhbV9uYW1lZChlbXVfbW9kZSwgYW1kZ3B1X2VtdV9tb2RlLCBpbnQsIDA0NDQp Ow0KPg0KPiArLyoqDQo+ICsgKiBET0M6IHNpX3N1cHBvcnQgKGludCkNCj4gKyAqIFNldCBTSSBz dXBwb3J0IGRyaXZlci4gVGhpcyBwYXJhbWV0ZXIgd29ya3MgYWZ0ZXIgc2V0IGNvbmZpZyBDT05G SUdfRFJNX0FNREdQVV9TSS4gRm9yIFNJIGFzaWMsIHdoZW4gcmFkZW9uIGRyaXZlciBpcyBlbmFi bGVkLA0KPiArICogc2V0IHZhbHVlIDAgdG8gdXNlIHJhZGVvbiBkcml2ZXIsIHdoaWxlIHNldCB2 YWx1ZSAxIHRvIHVzZSBhbWRncHUgZHJpdmVyLiBUaGUgZGVmYXVsdCBpcyB1c2luZyByYWRlb24g ZHJpdmVyIHdoZW4gaXQgYXZhaWxhYmxlLA0KPiArICogb3RoZXJ3aXNlIHVzaW5nIGFtZGdwdSBk cml2ZXIuDQo+ICsgKi8NCj4gICAjaWZkZWYgQ09ORklHX0RSTV9BTURHUFVfU0kNCj4NCj4gICAj aWYgZGVmaW5lZChDT05GSUdfRFJNX1JBREVPTikgfHwgZGVmaW5lZChDT05GSUdfRFJNX1JBREVP Tl9NT0RVTEUpDQo+IEBAIC0zMDYsNiArNTAzLDEyIEBAIE1PRFVMRV9QQVJNX0RFU0Moc2lfc3Vw cG9ydCwgIlNJIHN1cHBvcnQgKDEgPSBlbmFibGVkIChkZWZhdWx0KSwgMCA9IGRpc2FibGVkKSIp DQo+ICAgbW9kdWxlX3BhcmFtX25hbWVkKHNpX3N1cHBvcnQsIGFtZGdwdV9zaV9zdXBwb3J0LCBp bnQsIDA0NDQpOw0KPiAgICNlbmRpZg0KPg0KPiArLyoqDQo+ICsgKiBET0M6IGNpa19zdXBwb3J0 IChpbnQpDQo+ICsgKiBTZXQgQ0lLIHN1cHBvcnQgZHJpdmVyLiBUaGlzIHBhcmFtZXRlciB3b3Jr cyBhZnRlciBzZXQgY29uZmlnIENPTkZJR19EUk1fQU1ER1BVX0NJSy4gRm9yIENJSyBhc2ljLCB3 aGVuIHJhZGVvbiBkcml2ZXIgaXMgZW5hYmxlZCwNCj4gKyAqIHNldCB2YWx1ZSAwIHRvIHVzZSBy YWRlb24gZHJpdmVyLCB3aGlsZSBzZXQgdmFsdWUgMSB0byB1c2UgYW1kZ3B1IGRyaXZlci4gVGhl IGRlZmF1bHQgaXMgdXNpbmcgcmFkZW9uIGRyaXZlciB3aGVuIGl0IGF2YWlsYWJsZSwNCj4gKyAq IG90aGVyd2lzZSB1c2luZyBhbWRncHUgZHJpdmVyLg0KPiArICovDQo+ICAgI2lmZGVmIENPTkZJ R19EUk1fQU1ER1BVX0NJSw0KPg0KPiAgICNpZiBkZWZpbmVkKENPTkZJR19EUk1fUkFERU9OKSB8 fCBkZWZpbmVkKENPTkZJR19EUk1fUkFERU9OX01PRFVMRSkNCj4gQEAgLTMxOSw2ICs1MjIsMTEg QEAgTU9EVUxFX1BBUk1fREVTQyhjaWtfc3VwcG9ydCwgIkNJSyBzdXBwb3J0ICgxID0gZW5hYmxl ZCAoZGVmYXVsdCksIDAgPSBkaXNhYmxlZCkNCj4gICBtb2R1bGVfcGFyYW1fbmFtZWQoY2lrX3N1 cHBvcnQsIGFtZGdwdV9jaWtfc3VwcG9ydCwgaW50LCAwNDQ0KTsNCj4gICAjZW5kaWYNCj4NCj4g Ky8qKg0KPiArICogRE9DOiBzbXVfbWVtb3J5X3Bvb2xfc2l6ZSAodWludCkNCj4gKyAqIEl0IGlz IHVzZWQgdG8gcmVzZXJ2ZSBndHQgZm9yIHNtdSBkZWJ1ZyB1c2FnZSwgc2V0dGluZyB2YWx1ZSAw IHRvIGRpc2FibGUgaXQuIFRoZSBhY3R1YWwgc2l6ZSBpcyB2YWx1ZSAqIDI1Nk1pQi4NCj4gKyAq IEUuZy4gMHgxID0gMjU2TWJ5dGUsIDB4MiA9IDUxMk1ieXRlLCAweDQgPSAxIEdieXRlLCAweDgg PSAyR0J5dGUuIFRoZSBkZWZhdWx0IGlzIDAgKGRpc2FibGVkKS4NCj4gKyAqLw0KPiAgIE1PRFVM RV9QQVJNX0RFU0Moc211X21lbW9yeV9wb29sX3NpemUsDQo+ICAgICAgICJyZXNlcnZlIGd0dCBm b3Igc211IGRlYnVnIHVzYWdlLCAwID0gZGlzYWJsZSwiDQo+ICAgICAgICAgICAgICAgIjB4MSA9 IDI1Nk1ieXRlLCAweDIgPSA1MTJNYnl0ZSwgMHg0ID0gMSBHYnl0ZSwgMHg4ID0gMkdCeXRlIik7 DQo+DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KYW1k LWdmeCBtYWlsaW5nIGxpc3QNCmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngNCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQphbWQtZ2Z4IG1haWxpbmcg bGlzdA0KYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeA0K --_000_CY4PR12MB15115A371542EB485B6BADA7FD410CY4PR12MB1511namp_ Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable

Hi Alex,


IP blocks indexes are not fixed. = What's your idea to list them? By asic family?


enum amd_ip_block_type {
        AMD_IP_BLOCK_TYPE_COMMON,
        AMD_IP_BLOCK_TYPE_GMC,
        AMD_IP_BLOCK_TYPE_IH,
        AMD_IP_BLOCK_TYPE_SMC,
        AMD_IP_BLOCK_TYPE_PSP,
        AMD_IP_BLOCK_TYPE_DCE,
        AMD_IP_BLOCK_TYPE_GFX,
        AMD_IP_BLOCK_TYPE_SDMA,
        AMD_IP_BLOCK_TYPE_UVD,
        AMD_IP_BLOCK_TYPE_VCE,
        AMD_IP_BLOCK_TYPE_ACP,
        AMD_IP_BLOCK_TYPE_VCN
};

Thanks,

Sonny



From: Deucher, Alexander Sent: Wednesday, July 4, 2018 2:49:17 AM
To: Qu, Jim; Zhang, Jerry; Jiang, Sonny; amd-gfx-PD4FTy7X32lNgt0PjOBp93rCq3LdnpKM@public.gmane.org= rg
Subject: Re: [PATCH v2] drm/amdgpu: update documentation for amdgpu_= drv.c
 

yeah, that's a good idea.


Alex

From: amd-gfx <amd-gfx= -bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org> on behalf of Qu, Jim <Jim.Qu-5C7GfCeVMHo@public.gmane.org&= gt;
Sent: Wednesday, July 4, 2018 1:14 AM
To: Zhang, Jerry; Jiang, Sonny; amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: =B4=F0=B8=B4: [PATCH v2] drm/amdgpu: update documentation f= or amdgpu_drv.c
 
I always confuse any bits definiation about some= feature mask. such as ip_block_mask, pg_mask, cg_mask, pp_feature_mask. I = think other people who is not familiar with amdgpu driver may have the same= problem.

So, is it possible to detail every bit mask of features?

Thanks
JimQu

________________________________________
=B7=A2=BC=FE=C8=CB: amd-gfx <amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org> = =B4=FA=B1=ED Zhang, Jerry (Junwei) <Jerry.Zhang-5C7GfCeVMHo@public.gmane.org>
=B7=A2=CB=CD=CA=B1=BC=E4: 2018=C4=EA7=D4=C24=C8=D5 12:57:01
=CA=D5=BC=FE=C8=CB: Jiang, Sonny; amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
=D6=F7=CC=E2: Re: [PATCH v2] drm/amdgpu: update documentation for amdgpu_dr= v.c

On 07/04/2018 04:06 AM, Sonny Jiang wrote:
> Signed-off-by: Sonny Jiang <sonny.jiang-5C7GfCeVMHo@public.gmane.org>
Acked-by: Junwei Zhang <Jerry.Zhang-5C7GfCeVMHo@public.gmane.org>

> ---
>   Documentation/gpu/amdgpu.rst     =        |   7 +
>   drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 222 ++&#= 43;++++++++++++++&#= 43;+++++++++++++-
>   2 files changed, 222 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/gpu/amdgpu.rst b/Documentation/gpu/amdgpu.r= st
> index 765c2a3..a740e49 100644
> --- a/Documentation/gpu/amdgpu.rst
> +++ b/Documentation/gpu/amdgpu.rst
> @@ -5,6 +5,13 @@
>   The drm/amdgpu driver supports all AMD Radeon GPUs based o= n the Graphics Core
>   Next (GCN) architecture.
>
> +Module Parameters
> +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> +
> +The amdgpu driver supports the following module parameters:
> +
> +.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> +
>   Core Driver Infrastructure
>   =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm= /amd/amdgpu/amdgpu_drv.c
> index 963578c..caf81ce 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> @@ -1,10 +1,3 @@
> -/**
> - * \file amdgpu_drv.c
> - * AMD Amdgpu driver
> - *
> - * \author Gareth Hughes <gareth-jCdQPDEk3idBDgjK7y7TUQ@public.gmane.org>
> - */
> -
>   /*
>    * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, = California.
>    * All Rights Reserved.
> @@ -136,102 +129,235 @@ int amdgpu_gpu_recovery =3D -1; /* auto */=
>   int amdgpu_emu_mode =3D 0;
>   uint amdgpu_smu_memory_pool_size =3D 0;
>
> +/**
> + * DOC: vramlimit (int)
> + * Restrict the total amount of VRAM in MiB for testing.  Th= e default is 0 (Use full VRAM).
> + */
>   MODULE_PARM_DESC(vramlimit, "Restrict VRAM for testin= g, in megabytes");
>   module_param_named(vramlimit, amdgpu_vram_limit, int, 0600= );
>
> +/**
> + * DOC: vis_vramlimit (int)
> + * Restrict the amount of CPU visible VRAM in MiB for testing.&nb= sp; The default is 0 (Use full CPU visible VRAM).
> + */
>   MODULE_PARM_DESC(vis_vramlimit, "Restrict visible VRA= M for testing, in megabytes");
>   module_param_named(vis_vramlimit, amdgpu_vis_vram_limit, i= nt, 0444);
>
> +/**
> + * DOC: gartsize (uint)
> + * Restrict the size of GART in Mib (32, 64, etc.) for testing. T= he default is -1 (The size depends on asic).
> + */
>   MODULE_PARM_DESC(gartsize, "Size of GART to setup in = megabytes (32, 64, etc., -1=3Dauto)");
>   module_param_named(gartsize, amdgpu_gart_size, uint, 0600)= ;
>
> +/**
> + * DOC: gttsize (int)
> + * Restrict the size of GTT domain in MiB for testing. The defaul= t is -1 (It's VRAM size if 3GB < VRAM < 3/4 RAM,
> + * otherwise 3/4 RAM size).
> + */
>   MODULE_PARM_DESC(gttsize, "Size of the GTT domain in = megabytes (-1 =3D auto)");
>   module_param_named(gttsize, amdgpu_gtt_size, int, 0600); >
> +/**
> + * DOC: moverate (int)
> + * Set maximum buffer migration rate in MB/s. The default is -1 (= 8 MB/s).
> + */
>   MODULE_PARM_DESC(moverate, "Maximum buffer migration = rate in MB/s. (32, 64, etc., -1=3Dauto, 0=3D1=3Ddisabled)");
>   module_param_named(moverate, amdgpu_moverate, int, 0600);<= br> >
> +/**
> + * DOC: benchmark (int)
> + * Run benchmarks. The default is 0 (Skip benchmarks).
> + */
>   MODULE_PARM_DESC(benchmark, "Run benchmark"); >   module_param_named(benchmark, amdgpu_benchmarking, int, 04= 44);
>
> +/**
> + * DOC: test (int)
> + * Test BO GTT->VRAM and VRAM->GTT GPU copies. The default = is 0 (Skip test, only set 1 to run test).
> + */
>   MODULE_PARM_DESC(test, "Run tests");
>   module_param_named(test, amdgpu_testing, int, 0444);
>
> +/**
> + * DOC: audio (int)
> + * Set Audio. The default is -1 (Enabled), set 0 to disabled it.<= br> > + */
>   MODULE_PARM_DESC(audio, "Audio enable (-1 =3D auto, 0= =3D disable, 1 =3D enable)");
>   module_param_named(audio, amdgpu_audio, int, 0444);
>
> +/**
> + * DOC: disp_priority (int)
> + * Set display Priority (0 =3D auto, 1 =3D normal, 2 =3D high). T= he default is 0.
> + */
>   MODULE_PARM_DESC(disp_priority, "Display Priority (0 = =3D auto, 1 =3D normal, 2 =3D high)");
>   module_param_named(disp_priority, amdgpu_disp_priority, in= t, 0444);
>
> +/**
> + * DOC: hw_i2c (int)
> + * To enable hw i2c engine. The default is 0 (Disabled).
> + */
>   MODULE_PARM_DESC(hw_i2c, "hw i2c engine enable (0 =3D= disable)");
>   module_param_named(hw_i2c, amdgpu_hw_i2c, int, 0444);
>
> +/**
> + * DOC: pcie_gen2 (int)
> + * To disable PCIE Gen2 mode (0 =3D disable, 1 =3D enable). The d= efault is -1 (auto, enabled).
> + */
>   MODULE_PARM_DESC(pcie_gen2, "PCIE Gen2 mode (-1 =3D a= uto, 0 =3D disable, 1 =3D enable)");
>   module_param_named(pcie_gen2, amdgpu_pcie_gen2, int, 0444)= ;
>
> +/**
> + * DOC: msi (int)
> + * To disable MSI functionality (1 =3D enable, 0 =3D disable). Th= e default is -1 (auto, enabled).
> + */
>   MODULE_PARM_DESC(msi, "MSI support (1 =3D enable, 0 = =3D disable, -1 =3D auto)");
>   module_param_named(msi, amdgpu_msi, int, 0444);
>
> +/**
> + * DOC: lockup_timeout (int)
> + * Set GPU scheduler timeout value in ms. It must be > 0. = ; The default is 10000.
> + */
>   MODULE_PARM_DESC(lockup_timeout, "GPU lockup timeout = in ms > 0 (default 10000)");
>   module_param_named(lockup_timeout, amdgpu_lockup_timeout, = int, 0444);
>
> +/**
> + * DOC: dpm (int)
> + * Override for dynamic power management setting (1 =3D enable, 0= =3D disable). The default is -1 (auto).
> + */
>   MODULE_PARM_DESC(dpm, "DPM support (1 =3D enable, 0 = =3D disable, -1 =3D auto)");
>   module_param_named(dpm, amdgpu_dpm, int, 0444);
>
> +/**
> + * DOC: fw_load_type (int)
> + * Set different firmware loading type for debugging (0 =3D direc= t, 1 =3D SMU, 2 =3D PSP). The default is -1 (auto).
> + */
>   MODULE_PARM_DESC(fw_load_type, "firmware loading type= (0 =3D direct, 1 =3D SMU, 2 =3D PSP, -1 =3D auto)");
>   module_param_named(fw_load_type, amdgpu_fw_load_type, int,= 0444);
>
> +/**
> + * DOC: aspm (int)
> + * To disable ASPM (1 =3D enable, 0 =3D disable). The default is = -1 (auto, enabled).
> + */
>   MODULE_PARM_DESC(aspm, "ASPM support (1 =3D enable, 0= =3D disable, -1 =3D auto)");
>   module_param_named(aspm, amdgpu_aspm, int, 0444);
>
> +/**
> + * DOC: runpm (int)
> + * Override for runtime power management control for dGPUs in PX/= HG laptops. The amdgpu driver can dynamically power down
> + * the dGPU on PX/HG laptops when it is idle. The default is -1 (= auto enable). Setting the value to 0 disables this functionality.
> + */
>   MODULE_PARM_DESC(runpm, "PX runtime pm (1 =3D force e= nable, 0 =3D disable, -1 =3D PX only default)");
>   module_param_named(runpm, amdgpu_runtime_pm, int, 0444); >
> +/**
> + * DOC: ip_block_mask (uint)
> + * Override what IP blocks are enabled on the GPU.  Each GPU= is a collection of IP blocks (gfx, display, video, etc.).
> + * Use this parameter to disable specific blocks. Note that the I= P blocks do not have a fixed index (e.g., you might have a device
> + * with multiple instances of an IP block) so the mask is board s= pecific. The default is 0xffffffff (enable all blocks on a device).
> + */
>   MODULE_PARM_DESC(ip_block_mask, "IP Block Mask (all b= locks enabled (default))");
>   module_param_named(ip_block_mask, amdgpu_ip_block_mask, ui= nt, 0444);
>
> +/**
> + * DOC: bapm (int)
> + * To disable BAPM (0 =3D disable). The default -1 (auto, enabled= )
> + */
>   MODULE_PARM_DESC(bapm, "BAPM support (1 =3D enable, 0= =3D disable, -1 =3D auto)");
>   module_param_named(bapm, amdgpu_bapm, int, 0444);
>
> +/**
> + * DOC: deep_color (int)
> + * Set 1 to enable Deep Color support. The default is 0 (disabled= ).
> + */
>   MODULE_PARM_DESC(deep_color, "Deep Color support (1 = =3D enable, 0 =3D disable (default))");
>   module_param_named(deep_color, amdgpu_deep_color, int, 044= 4);
>
> +/**
> + * DOC: vm_size (int)
> + * Override the size of the GPU's per client virtual address spac= e in GiB.  The default is -1 (automatic for each asic).
> + */
>   MODULE_PARM_DESC(vm_size, "VM address space size in g= igabytes (default 64GB)");
>   module_param_named(vm_size, amdgpu_vm_size, int, 0444); >
> +/**
> + * DOC: vm_fragment_size (int)
> + * Override VM fragment size in bits (4, 5, etc. 4 =3D 64K, 9 =3D= 2M). The default is -1 (automatic for each asic).
> + */
>   MODULE_PARM_DESC(vm_fragment_size, "VM fragment size = in bits (4, 5, etc. 4 =3D 64K (default), Max 9 =3D 2M)");
>   module_param_named(vm_fragment_size, amdgpu_vm_fragment_si= ze, int, 0444);
>
> +/**
> + * DOC: vm_block_size (int)
> + * Override VM page table size in bits (default depending on vm_s= ize and hw setup). The default is -1 (automatic for each asic).
> + */
>   MODULE_PARM_DESC(vm_block_size, "VM page table size i= n bits (default depending on vm_size)");
>   module_param_named(vm_block_size, amdgpu_vm_block_size, in= t, 0444);
>
> +/**
> + * DOC: vm_fault_stop (int)
> + * Stop on VM fault for debugging (0 =3D never, 1 =3D print first= , 2 =3D always). The default is 0 (No stop).
> + */
>   MODULE_PARM_DESC(vm_fault_stop, "Stop on VM fault (0 = =3D never (default), 1 =3D print first, 2 =3D always)");
>   module_param_named(vm_fault_stop, amdgpu_vm_fault_stop, in= t, 0444);
>
> +/**
> + * DOC: vm_debug (int)
> + * Debug VM handling (0 =3D disabled, 1 =3D enabled). The default= is 0 (Disabled).
> + */
>   MODULE_PARM_DESC(vm_debug, "Debug VM handling (0 =3D = disabled (default), 1 =3D enabled)");
>   module_param_named(vm_debug, amdgpu_vm_debug, int, 0644);<= br> >
> +/**
> + * DOC: vm_update_mode (int)
> + * Override VM update mode. VM updated by using CPU (0 =3D never,= 1 =3D Graphics only, 2 =3D Compute only, 3 =3D Both). The default
> + * is -1 (Only in large BAR(LB) systems Compute VM tables will be= updated by CPU, otherwise 0, never).
> + */
>   MODULE_PARM_DESC(vm_update_mode, "VM update using CPU= (0 =3D never (default except for large BAR(LB)), 1 =3D Graphics only, 2 = =3D Compute only (default for LB), 3 =3D Both");
>   module_param_named(vm_update_mode, amdgpu_vm_update_mode, = int, 0444);
>
> +/**
> + * DOC: vram_page_split (int)
> + * Override the number of pages after we split VRAM allocations (= default 512, -1 =3D disable). The default is 512.
> + */
>   MODULE_PARM_DESC(vram_page_split, "Number of pages af= ter we split VRAM allocations (default 512, -1 =3D disable)");
>   module_param_named(vram_page_split, amdgpu_vram_page_split= , int, 0444);
>
> +/**
> + * DOC: exp_hw_support (int)
> + * Enable experimental hw support (1 =3D enable). The default is = 0 (disabled).
> + */
>   MODULE_PARM_DESC(exp_hw_support, "experimental hw sup= port (1 =3D enable, 0 =3D disable (default))");
>   module_param_named(exp_hw_support, amdgpu_exp_hw_support, = int, 0444);
>
> +/**
> + * DOC: dc (int)
> + * Disable/Enable Display Core driver for debugging (1 =3D enable= , 0 =3D disable). The default is -1 (automatic for each asic).
> + */
>   MODULE_PARM_DESC(dc, "Display Core driver (1 =3D enab= le, 0 =3D disable, -1 =3D auto (default))");
>   module_param_named(dc, amdgpu_dc, int, 0444);
>
>   MODULE_PARM_DESC(dc_log, "Display Core Log Level (0 = =3D minimal (default), 1 =3D chatty");
>   module_param_named(dc_log, amdgpu_dc_log, int, 0444);
>
> +/**
> + * DOC: sched_jobs (int)
> + * Override the max number of jobs supported in the sw queue. The= default is 32.
> + */
>   MODULE_PARM_DESC(sched_jobs, "the max number of jobs = supported in the sw queue (default 32)");
>   module_param_named(sched_jobs, amdgpu_sched_jobs, int, 044= 4);
>
> +/**
> + * DOC: sched_hw_submission (int)
> + * Override the max number of HW submissions. The default is 2. > + */
>   MODULE_PARM_DESC(sched_hw_submission, "the max number= of HW submissions (default 2)");
>   module_param_named(sched_hw_submission, amdgpu_sched_hw_su= bmission, int, 0444);
>
> +/**
> + * DOC: ppfeaturemask (uint)
> + * Override what power features are enabled. The default is 0xfff= f3fff (gfxoff(bit 15), overdriver(bit 14) disabled).
> + */
>   MODULE_PARM_DESC(ppfeaturemask, "all power features e= nabled (default))");
>   module_param_named(ppfeaturemask, amdgpu_pp_feature_mask, = uint, 0444);
>
> @@ -241,58 +367,129 @@ module_param_named(no_evict, amdgpu_no_evic= t, int, 0444);
>   MODULE_PARM_DESC(direct_gma_size, "Direct GMA size in= megabytes (max 96MB)");
>   module_param_named(direct_gma_size, amdgpu_direct_gma_size= , int, 0444);
>
> +/**
> + * DOC: pcie_gen_cap (uint)
> + * Override PCIE gen speed capabilities. The default is 0 (automa= tic for each asic).
> + */
>   MODULE_PARM_DESC(pcie_gen_cap, "PCIE Gen Caps (0: aut= odetect (default))");
>   module_param_named(pcie_gen_cap, amdgpu_pcie_gen_cap, uint= , 0444);
>
> +/**
> + * DOC: pcie_lane_cap (uint)
> + * Override PCIE lanes capabilities. The default is 0 (automatic = for each asic).
> + */
>   MODULE_PARM_DESC(pcie_lane_cap, "PCIE Lane Caps (0: a= utodetect (default))");
>   module_param_named(pcie_lane_cap, amdgpu_pcie_lane_cap, ui= nt, 0444);
>
> +/**
> + * DOC: cg_mask (uint)
> + * Override what Clockgating features are enabled on GPU (0 =3D d= isable clock gating). The default is 0xffffffff (all enabled).
> + */
>   MODULE_PARM_DESC(cg_mask, "Clockgating flags mask (0 = =3D disable clock gating)");
>   module_param_named(cg_mask, amdgpu_cg_mask, uint, 0444); >
> +/**
> + * DOC: pg_mask (uint)
> + * Override what Powergating features are enabled on GPU (0 =3D d= isable power gating). The default is 0xffffffff (all enabled).
> + */
>   MODULE_PARM_DESC(pg_mask, "Powergating flags mask (0 = =3D disable power gating)");
>   module_param_named(pg_mask, amdgpu_pg_mask, uint, 0444); >
> +/**
> + * DOC: sdma_phase_quantum (uint)
> + * Override SDMA context switch phase quantum (x 1K GPU clock cyc= les, 0 =3D no change). The default is 32.
> + */
>   MODULE_PARM_DESC(sdma_phase_quantum, "SDMA context sw= itch phase quantum (x 1K GPU clock cycles, 0 =3D no change (default 32))&qu= ot;);
>   module_param_named(sdma_phase_quantum, amdgpu_sdma_phase_q= uantum, uint, 0444);
>
> +/**
> + * DOC: disable_cu (charp)
> + * Set to disable CUs (It's set like se.sh.cu,...). The default i= s NULL.
> + */
>   MODULE_PARM_DESC(disable_cu, "Disable CUs (se.sh.cu,.= ..)");
>   module_param_named(disable_cu, amdgpu_disable_cu, charp, 0= 444);
>
> +/**
> + * DOC: virtual_display (charp)
> + * Set to enable virtual display feature. This feature provides a= virtual display hardware on headless boards
> + * or in virtualized environments. It will be set like xxxx:xx:xx= .x,x;xxxx:xx:xx.x,x. The default is NULL.
> + */
>   MODULE_PARM_DESC(virtual_display,
>            = ;    "Enable virtual display feature (the virtual_displ= ay will be set like xxxx:xx:xx.x,x;xxxx:xx:xx.x,x)");
>   module_param_named(virtual_display, amdgpu_virtual_display= , charp, 0444);
>
> +/**
> + * DOC: ngg (int)
> + * Set to enable Next Generation Graphics (1 =3D enable). The def= ault is 0 (disabled).
> + */
>   MODULE_PARM_DESC(ngg, "Next Generation Graphics (1 = =3D enable, 0 =3D disable(default depending on gfx))");
>   module_param_named(ngg, amdgpu_ngg, int, 0444);
>
> +/**
> + * DOC: prim_buf_per_se (int)
> + * Override the size of Primitive Buffer per Shader Engine in Byt= e. The default is 0 (depending on gfx).
> + */
>   MODULE_PARM_DESC(prim_buf_per_se, "the size of Primit= ive Buffer per Shader Engine (default depending on gfx)");
>   module_param_named(prim_buf_per_se, amdgpu_prim_buf_per_se= , int, 0444);
>
> +/**
> + * DOC: pos_buf_per_se (int)
> + * Override the size of Position Buffer per Shader Engine in Byte= . The default is 0 (depending on gfx).
> + */
>   MODULE_PARM_DESC(pos_buf_per_se, "the size of Positio= n Buffer per Shader Engine (default depending on gfx)");
>   module_param_named(pos_buf_per_se, amdgpu_pos_buf_per_se, = int, 0444);
>
> +/**
> + * DOC: cntl_sb_buf_per_se (int)
> + * Override the size of Control Sideband per Shader Engine in Byt= e. The default is 0 (depending on gfx).
> + */
>   MODULE_PARM_DESC(cntl_sb_buf_per_se, "the size of Con= trol Sideband per Shader Engine (default depending on gfx)");
>   module_param_named(cntl_sb_buf_per_se, amdgpu_cntl_sb_buf_= per_se, int, 0444);
>
> +/**
> + * DOC: param_buf_per_se (int)
> + * Override the size of Off-Chip Pramater Cache per Shader Engine= in Byte. The default is 0 (depending on gfx).
> + */
>   MODULE_PARM_DESC(param_buf_per_se, "the size of Off-C= hip Pramater Cache per Shader Engine (default depending on gfx)");
>   module_param_named(param_buf_per_se, amdgpu_param_buf_per_= se, int, 0444);
>
> +/**
> + * DOC: job_hang_limit (int)
> + * Set how much time allow a job hang and not drop it. The defaul= t is 0.
> + */
>   MODULE_PARM_DESC(job_hang_limit, "how much time allow= a job hang and not drop it (default 0)");
>   module_param_named(job_hang_limit, amdgpu_job_hang_limit, = int ,0444);
>
> +/**
> + * DOC: lbpw (int)
> + * Override Load Balancing Per Watt (LBPW) support (1 =3D enable,= 0 =3D disable). The default is -1 (auto, enabled).
> + */
>   MODULE_PARM_DESC(lbpw, "Load Balancing Per Watt (LBPW= ) support (1 =3D enable, 0 =3D disable, -1 =3D auto)");
>   module_param_named(lbpw, amdgpu_lbpw, int, 0444);
>
>   MODULE_PARM_DESC(compute_multipipe, "Force compute qu= eues to be spread across pipes (1 =3D enable, 0 =3D disable, -1 =3D auto)&q= uot;);
>   module_param_named(compute_multipipe, amdgpu_compute_multi= pipe, int, 0444);
>
> +/**
> + * DOC: gpu_recovery (int)
> + * Set to enable GPU recovery mechanism (1 =3D enable, 0 =3D disa= ble). The default is -1 (auto, disabled except SRIOV).
> + */
>   MODULE_PARM_DESC(gpu_recovery, "Enable GPU recovery m= echanism, (1 =3D enable, 0 =3D disable, -1 =3D auto)");
>   module_param_named(gpu_recovery, amdgpu_gpu_recovery, int,= 0444);
>
> +/**
> + * DOC: emu_mode (int)
> + * Set value 1 to enable emulation mode. The default is 0 (disabl= ed).
> + */
>   MODULE_PARM_DESC(emu_mode, "Emulation mode, (1 =3D en= able, 0 =3D disable)");
>   module_param_named(emu_mode, amdgpu_emu_mode, int, 0444);<= br> >
> +/**
> + * DOC: si_support (int)
> + * Set SI support driver. This parameter works after set config C= ONFIG_DRM_AMDGPU_SI. For SI asic, when radeon driver is enabled,
> + * set value 0 to use radeon driver, while set value 1 to use amd= gpu driver. The default is using radeon driver when it available,
> + * otherwise using amdgpu driver.
> + */
>   #ifdef CONFIG_DRM_AMDGPU_SI
>
>   #if defined(CONFIG_DRM_RADEON) || defined(CONFIG_DRM_RADEO= N_MODULE)
> @@ -306,6 +503,12 @@ MODULE_PARM_DESC(si_support, "SI support= (1 =3D enabled (default), 0 =3D disabled)")
>   module_param_named(si_support, amdgpu_si_support, int, 044= 4);
>   #endif
>
> +/**
> + * DOC: cik_support (int)
> + * Set CIK support driver. This parameter works after set config = CONFIG_DRM_AMDGPU_CIK. For CIK asic, when radeon driver is enabled,
> + * set value 0 to use radeon driver, while set value 1 to use amd= gpu driver. The default is using radeon driver when it available,
> + * otherwise using amdgpu driver.
> + */
>   #ifdef CONFIG_DRM_AMDGPU_CIK
>
>   #if defined(CONFIG_DRM_RADEON) || defined(CONFIG_DRM_RADEO= N_MODULE)
> @@ -319,6 +522,11 @@ MODULE_PARM_DESC(cik_support, "CIK suppo= rt (1 =3D enabled (default), 0 =3D disabled)
>   module_param_named(cik_support, amdgpu_cik_support, int, 0= 444);
>   #endif
>
> +/**
> + * DOC: smu_memory_pool_size (uint)
> + * It is used to reserve gtt for smu debug usage, setting value 0= to disable it. The actual size is value * 256MiB.
> + * E.g. 0x1 =3D 256Mbyte, 0x2 =3D 512Mbyte, 0x4 =3D 1 Gbyte, 0x8 = =3D 2GByte. The default is 0 (disabled).
> + */
>   MODULE_PARM_DESC(smu_memory_pool_size,
>       "reserve gtt for smu debug us= age, 0 =3D disable,"
>            = ;   "0x1 =3D 256Mbyte, 0x2 =3D 512Mbyte, 0x4 =3D 1 Gbyte, 0x= 8 =3D 2GByte");
>
_______________________________________________
amd-gfx mailing list
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
https://lists.freedesktop.org/mailman/li= stinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
https://lists.freedesktop.org/mailman/li= stinfo/amd-gfx
--_000_CY4PR12MB15115A371542EB485B6BADA7FD410CY4PR12MB1511namp_-- --===============1056686414== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBt YWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg== --===============1056686414==--