From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lisovskiy, Stanislav" Subject: Re: [PATCH v3] drm/i915: Restrict qgv points which don't have enough bandwidth. Date: Mon, 14 Oct 2019 11:13:31 +0000 Message-ID: References: <20190925121737.29670-1-stanislav.lisovskiy@intel.com> <20191011234953.GC19531@jausmus-gentoo-dev6.jf.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id AB0766E27A for ; Mon, 14 Oct 2019 11:13:34 +0000 (UTC) In-Reply-To: <20191011234953.GC19531@jausmus-gentoo-dev6.jf.intel.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Ausmus, James" Cc: "intel-gfx@lists.freedesktop.org" , "Syrjala, Ville" , "Peres, Martin" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE5LTEwLTExIGF0IDE2OjQ5IC0wNzAwLCBKYW1lcyBBdXNtdXMgd3JvdGU6DQo+ IE9uIFdlZCwgU2VwIDI1LCAyMDE5IGF0IDAzOjE3OjM3UE0gKzAzMDAsIFN0YW5pc2xhdiBMaXNv dnNraXkgd3JvdGU6DQo+ID4gQWNjb3JkaW5nIHRvIEJTcGVjIDUzOTk4LCB3ZSBzaG91bGQgdHJ5 IHRvDQo+ID4gcmVzdHJpY3QgcWd2IHBvaW50cywgd2hpY2ggY2FuJ3QgcHJvdmlkZQ0KPiA+IGVu b3VnaCBiYW5kd2lkdGggZm9yIGRlc2lyZWQgZGlzcGxheSBjb25maWd1cmF0aW9uLg0KPiA+IA0K PiA+IEN1cnJlbnRseSB3ZSBhcmUganVzdCBjb21wYXJpbmcgYWdhaW5zdCBhbGwgb2YNCj4gPiB0 aG9zZSBhbmQgdGFrZSBtaW5pbXVtKHdvcnN0IGNhc2UpLg0KPiA+IA0KPiA+IHYyOiBGaXhlZCB3 cm9uZyBQQ29kZSByZXBseSBtYXNrLCByZW1vdmVkIGhhcmRjb2RlZA0KPiA+ICAgICB2YWx1ZXMu DQo+ID4gDQo+ID4gdjM6IEZvcmJpZCBzaW11bHRhbmVvdXMgbGVnYWN5IFNBR1YgUENvZGUgcmVx dWVzdHMgYW5kDQo+ID4gICAgIHJlc3RyaWN0aW5nIHFndiBwb2ludHMuIFB1dCB0aGUgYWN0dWFs IHJlc3RyaWN0aW9uDQo+ID4gICAgIHRvIGNvbW1pdCBmdW5jdGlvbiwgYWRkZWQgc2VyaWFsaXph dGlvbih0aGFua3MgdG8gVmlsbGUpDQo+ID4gICAgIHRvIHByZXZlbnQgY29tbWl0IGJlaW5nIGFw cGxpZWQgb3V0IG9mIG9yZGVyIGluIGNhc2Ugb2YNCj4gPiAgICAgbm9uYmxvY2tpbmcgYW5kL29y IG5vbW9kZXNldCBjb21taXRzLg0KDQpIaSBKYW1lcywNCg0KVGhhbmsgeW91IGZvciBncmVhdCBy ZXZpZXchIA0KDQpXaGlsZSBtYW55IG9mIHlvdXIgY29tbWVudHMgYXJlIGRlZmluaXRlbHkNCmdv b2QgZmluZGluZ3MsIHN0aWxsIHdpbGwgbGVhdmUgcmVwbHkgdG8gYSBmZXcsDQpqdXN0IHRvIGtl ZXAgdGhpbmdzIGNsZWFyLg0KDQoNCj4gPiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBTdGFuaXNsYXYg TGlzb3Zza2l5IDxzdGFuaXNsYXYubGlzb3Zza2l5QGludGVsLmNvbT4NCj4gPiBDYzogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGludGVsLmNvbT4NCj4gPiBDYzogSmFtZXMgQXVzbXVz IDxqYW1lcy5hdXNtdXNAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5jICAgfCAxNiArKysrDQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmggICB8ICAzICsNCj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5jICAgICAgIHwgNzkgKysrKysrKysrKysrKw0K PiA+IC0tLS0tLQ0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3Lmgg ICAgICAgfCAgMiArDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheS5jICB8IDc4DQo+ID4gKysrKysrKysrKysrKysrKystDQo+ID4gIC4uLi9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCAgICB8ICAzICsNCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwgIDIgKw0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgICAgICAgfCAgMyArDQo+ID4gIDggZmlsZXMg Y2hhbmdlZCwgMTYwIGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQ0KDQo+IGlmIChtYXhf ZGF0YV9yYXRlID49IGRhdGFfcmF0ZSkNCj4gCWFsbG93ZWRfcG9pbnRzIHw9IDEgPDwgaTsNCj4g RFJNX0RFQlVHX0tNUy4uLg0KPiANCj4gPiArCQkJYWxsb3dlZF9wb2ludHMgfD0gMSA8PCBpOw0K PiA+ICsJCX0NCj4gDQo+IEFjY29yZGluZyB0byB0aGUgQlNwZWMgcGFnZSwgd2UgYWxzbyBuZWVk IHRvIHNhdmUgb2ZmIHRoZSBRR1YgcG9pbnQNCj4gdGhhdCBoYXMNCj4gdGhlIG1vc3QgYXZhaWxh YmxlIGJhbmR3aWR0aDoNCj4gDQo+ICJBdCBsZWFzdCBvbmUgR1YgcG9pbnQgbXVzdCBhbHdheXMg cmVtYWluIHVubWFza2VkLiBUaGUgcG9pbnQNCj4gcHJvdmlkaW5nIHRoZQ0KPiBoaWdoZXN0IGJh bmR3aWR0aCBmb3IgZGlzcGxheSBtdXN0IGFsd2F5cyByZW1haW4gdW5tYXNrZWQuIg0KPiANCj4g V2Ugc2hvdWxkIHN0YXNoIHRoYXQgcG9pbnQgc2VwYXJhdGVseSwgYW5kIGVuc3VyZSBpdCBhbHdh eXMgcmVtYWlucw0KPiB1bm1hc2tlZC4NCj4gDQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYgKGFs bG93ZWRfcG9pbnRzID09IDApIHsNCj4gPiArCQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3QgZmlu ZCBhbnkgc3VpdGFibGUgUUdWDQo+ID4gcG9pbnRzXG4iKTsNCj4gPiAgCQlyZXR1cm4gLUVJTlZB TDsNCj4gPiAgCX0NCg0KVGhpcyBhY3R1YWxseSBndWFyYW50ZWVzIHRoYXQsIEkgdGhpbmsgLSB3 ZSB3aWxsIG5ldmVyIGFsbG93IGEgDQpjb25maWcgd2hpY2ggd2lsbCByZXF1aXJlIHVzIHRvIG1h c2sgYWxsIG9mIHRoZSBwb2ludHMgdG8gd29yay4NCg0KPiA+ICANCj4gPiArCXN0YXRlLT5xZ3Zf cG9pbnRzX21hc2sgPSAofmFsbG93ZWRfcG9pbnRzKSAmICgoMSA8PA0KPiA+IHFpLm51bV9wb2lu dHMpIC0gMSk7DQo+ID4gKw0KPiA+ICsJLyoNCj4gPiArCSAqIElmIHRoZSBhY3R1YWwgbWFzayBo YWQgY2hhbmdlZCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0DQo+ID4gKwkgKiB0aGUgY29tbWl0 cyBhcmUgc2VyaWFsaXplZChpbiBjYXNlIHRoaXMgaXMgYSBub21vZGVzZXQsDQo+ID4gbm9uYmxv Y2tpbmcpDQo+ID4gKwkgKi8NCj4gPiArCWlmIChzdGF0ZS0+cWd2X3BvaW50c19tYXNrICE9IGRl dl9wcml2LT5xZ3ZfcG9pbnRzX21hc2spIHsNCj4gPiArCQlyZXQgPSBpbnRlbF9hdG9taWNfc2Vy aWFsaXplX2dsb2JhbF9zdGF0ZShzdGF0ZSk7DQo+ID4gKwkJaWYgKHJldCkgew0KPiA+ICsJCQlE Uk1fREVCVUdfS01TKCJDb3VsZCBub3Qgc2VyaWFsaXplIGdsb2JhbA0KPiA+IHN0YXRlXG4iKTsN Cj4gPiArCQkJcmV0dXJuIHJldDsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICAJcmV0 dXJuIDA7DQo+ID4gIH0NCj4gPiAgDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfYncuaA0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9idy5oDQo+ID4gaW5kZXggOWRiMTBhZjAxMmY0Li42NmJmOWJjMTBiNzMgMTAwNjQ0 DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5oDQo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5oDQo+ID4gQEAgLTI4 LDUgKzI4LDcgQEAgaW50IGludGVsX2J3X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUNCj4g PiAqZGV2X3ByaXYpOw0KPiA+ICBpbnQgaW50ZWxfYndfYXRvbWljX2NoZWNrKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlKTsNCj4gPiAgdm9pZCBpbnRlbF9id19jcnRjX3VwZGF0ZShz dHJ1Y3QgaW50ZWxfYndfc3RhdGUgKmJ3X3N0YXRlLA0KPiA+ICAJCQkgIGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsNCj4gPiAraW50IGljbF9wY29kZV9yZXN0cmlj dF9xZ3ZfcG9pbnRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlDQo+ID4gKmRldl9wcml2LA0KPiA+ ICsJCQkJICB1MzIgcG9pbnRzX21hc2spOw0KPiA+ICANCj4gPiAgI2VuZGlmIC8qIF9fSU5URUxf QldfSF9fICovDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheS5jDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXkuYw0KPiA+IGluZGV4IDVlY2Y1NDI3MDE4MS4uYzMxOTZkMGU0YmUzIDEwMDY0NA0K PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jDQo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMNCj4g PiBAQCAtMTM5NjAsNiArMTM5NjAsNjggQEAgc3RhdGljIHZvaWQNCj4gPiBpbnRlbF9hdG9taWNf Y2xlYW51cF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCj4gPiAgCWludGVsX2F0b21p Y19oZWxwZXJfZnJlZV9zdGF0ZShpOTE1KTsNCj4gPiAgfQ0KPiA+ICANCj4gPiArc3RhdGljIHZv aWQgaW50ZWxfcWd2X3BvaW50X3ByZV91cGRhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZQ0K PiA+ICpzdGF0ZSkNCj4gDQo+IEl0IHdvdWxkIGJlIG5pY2UgdG8gbmFtZSB0aGlzIGVpdGhlciAi bWFzayIgb3IgInVubWFzayIsIHNvIGl0J3MNCj4gZWFzaWVyDQo+IGF0IGZpcnN0IGdsYW5jZSB0 byBzZWUgd2hpY2ggZnVuY3Rpb24gaXMgdHVybmluZyBvbiBtYXNrZWQgYml0cyB2cw0KPiB0b2dn bGluZyB0aGVtIG9mZi4NCj4gDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBzdGF0ZS0+YmFzZS5kZXY7DQo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7DQo+ID4gKwlpbnQgaSwgcmV0Ow0KPiA+ICsNCj4gPiArCS8qDQo+ ID4gKwkgKiBSZXN0cmljdCByZXF1aXJlZCBxZ3YgcG9pbnRzIGJlZm9yZSB1cGRhdGluZyB0aGUN Cj4gPiBjb25maWd1cmF0aW9uLg0KPiA+ICsJICogQWNjb3JkaW5nIHRvIEJQc2VjIHdlIGNhbid0 IG1hc2sgYW5kIHVubWFzayBxZ3YgcG9pbnRzIGF0DQo+ID4gdGhlIHNhbWUNCj4gDQo+IHMvQlBz ZWMvQlNwZWMvDQo+IA0KPiA+ICsJICogdGltZS4gQWxzbyBtYXNraW5nIHNob3VsZCBiZSBkb25l IGJlZm9yZSB1cGRhdGluZyB0aGUNCj4gPiBjb25maWd1cmF0aW9uDQo+ID4gKwkgKiBhbmQgdW5t YXNraW5nIGFmdGVyd2FyZHMuDQo+ID4gKwkgKi8NCj4gPiArCXUzMiBuZXdfcWd2X3BvaW50c19t YXNrID0gZGV2X3ByaXYtPnFndl9wb2ludHNfbWFzazsNCj4gPiArCWludCBudW1fcG9pbnRzID0g ZGV2X3ByaXYtPm1heF9id1swXS5udW1fcWd2X3BvaW50czsNCj4gPiArDQo+ID4gKwlmb3IgKGkg PSBudW1fcG9pbnRzOyBpID4gMDsgaS0tKSB7DQo+ID4gKwkJaW50IG5ld19tYXNrX2JpdCA9IHN0 YXRlLT5xZ3ZfcG9pbnRzX21hc2sgJiAoMSA8PA0KPiA+IG51bV9wb2ludHMpOw0KPiA+ICsJCWlu dCBvbGRfbWFza19iaXQgPSBuZXdfcWd2X3BvaW50c19tYXNrICYgKDEgPDwNCj4gPiBudW1fcG9p bnRzKTsNCj4gDQo+IFRoZSBuYW1pbmcgaGVyZSBpcyBzcGlubmluZyBteSBoZWFkIGEgYml0LCBh cyB3ZSdyZSBnZXR0aW5nIHRoZQ0KPiAib2xkX21hc2tfYml0IiBmcm9tIHRoZSAibmV3X3Fndl9w b2ludHNfbWFzayIuDQo+IA0KPiA+ICsNCj4gPiArCQlpZiAob2xkX21hc2tfYml0ICE9IG5ld19t YXNrX2JpdCkNCj4gPiArCQkJaWYgKG5ld19tYXNrX2JpdCAhPSAwKQ0KPiANCj4gQ2FuJ3QgdGhp cyBqdXN0IGJlDQo+IA0KPiBpZiAobmV3X21hc2tfYml0KQ0KPiAgICAgICAgIG5ld19xZ3ZfcG9p bnRzX21hc2sgfD0gbmV3X21hc2tfYml0Ow0KPiANCj4gPw0KPiANCj4gU2luY2UgdGhlIG9ubHkg d2F5IHRoYXQgKG9sZF9tYXNrX2JpdCAhPSBuZXdfbWFza19iaXQpIGlzIHdoZW4gd2UncmUNCj4g Z29pbmcgZnJvbSBhIDAgdG8gYSAxLCBhbmQgaXQncyBvayB0byBnbyBmcm9tIGEgMSB0byBhIDEs IHNvIHRoZSBvbmx5DQo+IHRoaW5nIHRoYXQgbWF0dGVycyBoZXJlIGlzIG5ld19tYXNrX2JpdCwg cmlnaHQ/IElmIHRoYXQncyB0aGUgY2FzZSwNCj4gY2FuJ3QgeW91IGp1c3QgZHJvcCB0aGUgb2xk X21hc2tfYml0IHBhcnRzIGVudGlyZWx5PyBPciBhbSBJDQo+IGNvbmZ1c2luZw0KPiBteXNlbGYg d2l0aCB0aGUgbmFtaW5nPyA6KQ0KPiANCj4gDQo+IEFjdHVhbGx5LCB3b3VsZG4ndCB0aGUgd2hv bGUgZnVuY3Rpb24gYXQgdGhhdCBwb2ludCBqdXN0IGJlOg0KPiANCj4gcmV0ID0gaWNsX3Bjb2Rl X3Jlc3RyaWN0X3Fndl9wb2ludHMoZGV2X3ByaXYsIGRldl9wcml2LQ0KPiA+cWd2X3BvaW50c19t YXNrIHwgc3RhdGUtPnFndl9wb2ludHNfbWFzayk7DQoNClN1cmUgaXQgY291bGQgYmUsIGhvd2V2 ZXIgZm9yIHNvbWUgcmVhc29uIEkgdGhvdWdodCB0aGF0IHlvdSBjYW4gDQptYXNrL3VubWFzayBv bmx5IG9uZSBwb2ludCBwZXIgcmVxdWVzdC4gSG93ZXZlciBub3cgY2FuJ3QgZmluZCB0aGF0IGlu DQpCU3BlYyAtIGp1c3Qgc3RhdGVzIHRoYXQgeW91IGNhbiBvbmx5IG1hc2sgb3IgdW5tYXNrIHBv aW50cyh3YXMgaXQgbXkNCm1pc3Rha2Ugb3IgZGlkIHNvbWVib2R5IGVkaXQgaXQ/KSwgYnV0IG5v dCBib3RoLCBzbyBpZiBJIHdvbid0IGZpbmQgYW55DQpjb250cmFkaWN0aW9uIGhlcmUsIHRoYXQg aXMgZGVmaW5pdGVseSB3YXkgdG8gZ28gOikNCg0KPiANCj4gDQo+IFNpbmNlIHlvdSdyZSBqdXN0 IHdhbnRpbmcgdG8gInR1cm4gb24iIG1hc2tpbmcgcG9pbnRzIGluIHRoZSBfcHJlLA0KPiBhbmQN Cj4gbGVhdmUgdGhlICJ0dXJuIG9mZiIgb2YgbWFza2luZyBwb2ludHMgdG8gdGhlIF9wb3N0Pw0K PiANCj4gPiArCQkJCW5ld19xZ3ZfcG9pbnRzX21hc2sgfD0gbmV3X21hc2tfYml0Ow0KPiA+ICsJ fQ0KPiA+ICsNCj4gPiArCXJldCA9IGljbF9wY29kZV9yZXN0cmljdF9xZ3ZfcG9pbnRzKGRldl9w cml2LA0KPiA+IG5ld19xZ3ZfcG9pbnRzX21hc2spOw0KPiA+ICsJaWYgKHJldCA8IDApDQo+ID4g KwkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IHJlc3RyaWN0IHJlcXVpcmVkIGdxdg0KPiA+IHBv aW50cyglZClcbiIsIHJldCk7DQo+IA0KPiBzL2dxdi9xZ3YvDQo+IA0KPiANCj4gQWxzbywgaWYg d2UgZmFpbCBtYXNraW5nIG9mZiB0aGUgcWd2IHBvaW50cyB0aGF0IGNhbid0IHN1cHBvcnQgb3Vy IEJXDQo+IHJlcSwgc2hvdWxkbid0IHdlIGhhbmRsZSB0aGF0IGZhaWx1cmUgc29tZWhvdyAtIG1h eWJlIGp1c3QgZGlzYWJsZQ0KPiBTQUdWDQo+IGVudGlyZWx5PyAgQmV0dGVyIHdlIGxvc2UgcG93 ZXIgdGhhbiBoYXZlIGZsaWNrZXJpbmcgc2NyZWVucy4uLg0KDQpTb3VuZHMgcmVhc29uYWJsZSwg bmVlZCB0byBkaXNjdXNzIHRoYXQgd2l0aCBWaWxsZS4gSG93ZXZlciBJIHdvdWxkIA0KbWF5IGJl IHN0aWxsIHN0aWNrIHRvIHNpbXBseSByZWplY3RpbmcgdGhhdCBjb25maWcgYW5kIGFzc3VtZSB0 aGF0DQphdCBsZWFzdCBjdXJyZW50bHkgd2UgYXJlIG9rLCBvdGhlcndpc2UgaWYgd2UgY2FuJ3Qg ZXZlbiBzdWNjZWVkIHdpdGggDQpzZW5kaW5nIGEgUENvZGUgcmVxdWVzdCB0byByZXN0cmljdCBw b2ludHMsIG1lYW5zIHRoYXQgc29tZXRoaW5nIGlzIHNvIA0Kd2VpcmQgdGhhdCB3ZSBtaWdodCBu b3Qgc3VjY2VlZCB3aXRoIGRpc2FibGluZyBpdCBhcyB3ZWxsLg0KDQo+IA0KPiA+ICsJZWxzZQ0K PiA+ICsJCWRldl9wcml2LT5xZ3ZfcG9pbnRzX21hc2sgPSBuZXdfcWd2X3BvaW50c19tYXNrOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9xZ3ZfcG9pbnRfcG9zdF91cGRh dGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZQ0KPiA+ICpzdGF0ZSkNCj4gDQo+IFNhbWUgY29t bWVudCBvbiB0aGUgbmFtaW5nDQo+IA0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gc3RhdGUtPmJhc2UuZGV2Ow0KPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiA+ICsJaW50IGksIHJldDsNCj4gPiArDQo+ID4gKwkv Kg0KPiA+ICsJICogUmVzdHJpY3QgcmVxdWlyZWQgcWd2IHBvaW50cyBiZWZvcmUgdXBkYXRpbmcg dGhlDQo+ID4gY29uZmlndXJhdGlvbi4NCj4gPiArCSAqIEFjY29yZGluZyB0byBCUHNlYyB3ZSBj YW4ndCBtYXNrIGFuZCB1bm1hc2sgcWd2IHBvaW50cyBhdA0KPiA+IHRoZSBzYW1lDQo+IA0KPiBz L0JQc2VjL0JTcGVjLw0KPiANCj4gPiArCSAqIHRpbWUuIEFsc28gbWFza2luZyBzaG91bGQgYmUg ZG9uZSBiZWZvcmUgdXBkYXRpbmcgdGhlDQo+ID4gY29uZmlndXJhdGlvbg0KPiA+ICsJICogYW5k IHVubWFza2luZyBhZnRlcndhcmRzLg0KPiA+ICsJICovDQo+ID4gKwl1MzIgbmV3X3Fndl9wb2lu dHNfbWFzayA9IGRldl9wcml2LT5xZ3ZfcG9pbnRzX21hc2s7DQo+ID4gKwlpbnQgbnVtX3BvaW50 cyA9IGRldl9wcml2LT5tYXhfYndbMF0ubnVtX3Fndl9wb2ludHM7DQo+ID4gKw0KPiA+ICsJZm9y IChpID0gbnVtX3BvaW50czsgaSA+IDA7IGktLSkgew0KPiA+ICsJCWludCBuZXdfbWFza19iaXQg PSBzdGF0ZS0+cWd2X3BvaW50c19tYXNrICYgKDEgPDwNCj4gPiBudW1fcG9pbnRzKTsNCj4gPiAr CQlpbnQgb2xkX21hc2tfYml0ID0gbmV3X3Fndl9wb2ludHNfbWFzayAmICgxIDw8DQo+ID4gbnVt X3BvaW50cyk7DQo+ID4gKw0KPiA+ICsJCWlmIChvbGRfbWFza19iaXQgIT0gbmV3X21hc2tfYml0 KQ0KPiA+ICsJCQlpZiAobmV3X21hc2tfYml0ID09IDApDQo+ID4gKwkJCQluZXdfcWd2X3BvaW50 c19tYXNrICY9IH5vbGRfbWFza19iaXQ7DQo+ID4gKwl9DQo+IA0KPiBTYW1lIGNvbW1lbnQgaGVy ZSAtIGNhbid0IHRoaXMgcmVhbGx5IGJlIHNpbXBsaWZpZWQgdG86DQo+IA0KPiByZXQgPSBpY2xf cGNvZGVfcmVzdHJpY3RfcWd2X3BvaW50cyhkZXZfcHJpdiwgZGV2X3ByaXYtDQo+ID5xZ3ZfcG9p bnRzX21hc2sgJiBzdGF0ZS0+cWd2X3BvaW50c19tYXNrKTsNCj4gDQo+IFNpbmNlIGhlcmUgd2Un cmUganVzdCB3bmF0aW5nIHRvICJ0dXJuIG9mZiIgdGhlIG1hc2sgZm9yIHBvaW50cyB0aGF0DQo+ IHRoZQ0KPiBuZXcgc3RhdGUgYWxsb3dzLCBhbmQgd2Ugc2hvdWxkIGhhdmUgYWxyZWFkeSAidHVy bmVkIG9uIiBhbGwgdGhlDQo+IHBvaW50cw0KPiBpbiBfcHJlPw0KPiANCj4gPiArDQo+ID4gKwly ZXQgPSBpY2xfcGNvZGVfcmVzdHJpY3RfcWd2X3BvaW50cyhkZXZfcHJpdiwNCj4gPiBuZXdfcWd2 X3BvaW50c19tYXNrKTsNCj4gPiArCWlmIChyZXQgPCAwKQ0KPiA+ICsJCURSTV9ERUJVR19LTVMo IkNvdWxkIG5vdCByZXN0cmljdCByZXF1aXJlZCBncXYNCj4gPiBwb2ludHMoJWQpXG4iLCByZXQp Ow0KPiANCj4gTWF5YmUgY2hhbmdlIHRoZSBlcnJvciBtZXNzYWdlIHRvIHNvbWV0aGluZyBsaWtl ICJDb3VsZCBub3QgZW5hYmxlDQo+IHJlcXVpcmVkIHFndiBwb2ludHMiLCBzbyBpdCdzIG1vcmUg ZWFzaWx5IGRpZmZlcmVudGlhdGVkPw0KPiANCj4gU2FtZSBoZXJlIGFib3V0IGVycm9yIGhhbmRs aW5nIC0gaWYgd2UgZmFpbCB0byBlbmFibGUgcWd2IHBvaW50cyB0aGF0DQo+IG1heSBiZSByZXF1 aXJlZCwgd2UgbWlnaHQganVzdCB3YW50IHRvIGVudGlyZWx5IGRpc2FibGUgU0FHViwgYXMgd2UN Cj4gbWlnaHQgbm90IGhhdmUgYSBwb2ludCB0aGF0IHdvcmtzIGZvciBvdXIgQlcgcmVxcywgYW5k IGl0J3MgYmV0dGVyIHRvDQo+IGxvc2UgcG93ZXIgdGhhbiBmbGlja2VyLg0KDQpJbiBhZGRpdGlv biB0byB3aGF0IEkgc2FpZCBhYm92ZSBJIGFsc28ga25vdyByZW1lbWJlcmVkIGEgY29uY2Vybg0K cmVnYXJkaW5nIHRoYXQgd2UgcHJvYmFibHkgc2hvdWxkbid0IGNvbWJpbmUgaW50ZWxfZW5hYmxl L2Rpc2FibGVfc2Fndg0KYW5kIHRoaXMgbmV3IFBjb2RlIHJlcXVlc3QsIHNvIGZvciBzYWtlIG9m IHNpbXBsaWNpdHkgbWF5IGJlIGp1c3QNCnJlamVjdCB0aGF0IGNvbmZpZz8gV2UgcmVhbGx5IG5l ZWQgdG8gZGlzY3VzcyB0aGlzLg0KDQo+IA0KPiA+ICsJZWxzZQ0KPiA+ICsJCWRldl9wcml2LT5x Z3ZfcG9pbnRzX21hc2sgPSBuZXdfcWd2X3BvaW50c19tYXNrOw0KPiA+ICt9DQo+ID4gKw0KPiA+ ICBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZQ0KPiA+ICpzdGF0ZSkNCj4gPiAgew0KPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHN0YXRlLT5iYXNlLmRldjsNCj4gPiBAQCAtMTM5ODcsNiArMTQwNDksOSBAQCBzdGF0aWMg dm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0DQo+ID4gaW50ZWxfYXRvbWljX3N0 YXRlICpzdGF0ZSkNCj4gPiAgCQl9DQo+ID4gIAl9DQo+ID4gIA0KPiA+ICsJaWYgKChJTlRFTF9H RU4oZGV2X3ByaXYpID49IDExKSkNCj4gPiArCQlpbnRlbF9xZ3ZfcG9pbnRfcHJlX3VwZGF0ZShz dGF0ZSk7DQo+ID4gKw0KPiA+ICAJaW50ZWxfY29tbWl0X21vZGVzZXRfZGlzYWJsZXMoc3RhdGUp Ow0KPiA+ICANCj4gPiAgCS8qIEZJWE1FOiBFdmVudHVhbGx5IGdldCByaWQgb2Ygb3VyIGNydGMt PmNvbmZpZyBwb2ludGVyICovDQo+ID4gQEAgLTE0MDA1LDggKzE0MDcwLDkgQEAgc3RhdGljIHZv aWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdA0KPiA+IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUpDQo+ID4gIAkJICogU0tMIHdvcmthcm91bmQ6IGJzcGVjIHJlY29tbWVuZHMgd2Ug ZGlzYWJsZSB0aGUgU0FHVg0KPiA+IHdoZW4gd2UNCj4gPiAgCQkgKiBoYXZlIG1vcmUgdGhlbiBv bmUgcGlwZSBlbmFibGVkDQo+ID4gIAkJICovDQo+ID4gLQkJaWYgKCFpbnRlbF9jYW5fZW5hYmxl X3NhZ3Yoc3RhdGUpKQ0KPiA+IC0JCQlpbnRlbF9kaXNhYmxlX3NhZ3YoZGV2X3ByaXYpOw0KPiA+ ICsJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpDQo+ID4gKwkJCWlmICghaW50ZWxfY2Fu X2VuYWJsZV9zYWd2KHN0YXRlKSkNCj4gPiArCQkJCWludGVsX2Rpc2FibGVfc2FndihkZXZfcHJp dik7DQo+ID4gIA0KPiA+ICAJCWludGVsX21vZGVzZXRfdmVyaWZ5X2Rpc2FibGVkKGRldl9wcml2 LCBzdGF0ZSk7DQo+ID4gIAl9DQo+ID4gQEAgLTE0MDg0LDggKzE0MTUwLDEyIEBAIHN0YXRpYyB2 b2lkDQo+ID4gaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlKQ0KPiA+ICAJaWYgKHN0YXRlLT5tb2Rlc2V0KQ0KPiA+ICAJCWludGVsX3Zlcmlm eV9wbGFuZXMoc3RhdGUpOw0KPiA+ICANCj4gPiAtCWlmIChzdGF0ZS0+bW9kZXNldCAmJiBpbnRl bF9jYW5fZW5hYmxlX3NhZ3Yoc3RhdGUpKQ0KPiA+IC0JCWludGVsX2VuYWJsZV9zYWd2KGRldl9w cml2KTsNCj4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpDQo+ID4gKwkJaWYgKHN0 YXRlLT5tb2Rlc2V0ICYmIGludGVsX2Nhbl9lbmFibGVfc2FndihzdGF0ZSkpDQo+ID4gKwkJCWlu dGVsX2VuYWJsZV9zYWd2KGRldl9wcml2KTsNCj4gPiArDQo+ID4gKwlpZiAoKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gMTEpICYmDQo+ID4gaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0YXRlKSkNCj4g PiArCQlpbnRlbF9xZ3ZfcG9pbnRfcG9zdF91cGRhdGUoc3RhdGUpOw0KPiANCj4gSSBrZWVwIGdv aW5nIGJhY2sgYW5kIGZvcnRoIGluIG15IG1pbmQgYWJvdXQgdGhlIGFib3ZlIGJsb2NrIC0gd2hh dA0KPiBkbyB5b3UNCj4gdGhpbmsgb2YgZG9pbmcgaXQgdGhpcyB3YXk/DQo+IA0KPiBpZiAoaW50 ZWxfY2FuX2VuYWJsZV9zYWd2KHN0YXRlKSkgew0KPiAgICAgICAgIGlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDExKQ0KPiAgICAgICAgICAgICAgICAgaW50ZWxfcWd2X3BvaW50X3Bvc3RfdXBk YXRlKHN0YXRlKTsNCj4gICAgICAgICBlbHNlIGlmIChzdGF0ZS0+bW9kZXNldCkNCj4gICAgICAg ICAgICAgICAgIGludGVsX2VuYWJsZV9zYWd2KGRldl9wcml2KTsNCj4gfQ0KPiANCj4gDQo+IEZl ZWxzIGEgbGl0dGxlIGNsZWFuZXIsIEkgdGhpbmssIGFuZCBsZXRzIHVzIGtlZXAgb3VyIHN0YW5k YXJkIE5ldw0KPiBHZW4gLT4gT2xkDQo+IEdlbiBpZiBsYWRkZXIgc3R5bGUgLSBidXQgSSdtIG5v dCAxMDAlIHNvbGQgb24gaXQgbXlzZWxmIDopDQo+IA0KPiANCj4gVGhhbmtzIQ0KPiANCj4gLUph bWVzDQo+IA0KPiA+ICANCj4gPiAgCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKCZz dGF0ZS0+YmFzZSk7DQo+ID4gIA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaA0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgNCj4gPiBpbmRleCA2YjBhNjQ2ZjAxNzAu LjgyZjhkZjY1MzQ3ZSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oDQo+ID4gQEAgLTUxMiw2ICs1MTIsOSBAQCBz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlIHsNCj4gPiAgCXN0cnVjdCBpOTE1X3N3X2ZlbmNlIGNv bW1pdF9yZWFkeTsNCj4gPiAgDQo+ID4gIAlzdHJ1Y3QgbGxpc3Rfbm9kZSBmcmVlZDsNCj4gPiAr DQo+ID4gKwkvKiBHZW4xMSsgb25seSAqLw0KPiA+ICsJdTMyIHFndl9wb2ludHNfbWFzazsNCj4g PiAgfTsNCj4gPiAgDQo+ID4gIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7DQo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gPiBpbmRleCBmY2Y3NDIzMDc1ZWYuLjM4M2RlNzdhN2I3 MyAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+IEBAIC0xNjUyLDYgKzE2 NTIsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7DQo+ID4gIAkJdTggbnVtX3BsYW5lczsN Cj4gPiAgCX0gbWF4X2J3WzZdOw0KPiA+ICANCj4gPiArCXUzMiBxZ3ZfcG9pbnRzX21hc2s7DQo+ ID4gKw0KPiA+ICAJc3RydWN0IGRybV9wcml2YXRlX29iaiBid19vYmo7DQo+ID4gIA0KPiA+ICAJ c3RydWN0IGludGVsX3J1bnRpbWVfcG0gcnVudGltZV9wbTsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaA0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaA0KPiA+IGluZGV4IGU3NTJkZTk0NzBiZC4uYzc4ZWUxODBjMWFhIDEwMDY0NA0K PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgNCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oDQo+ID4gQEAgLTg4NTQsNiArODg1NCw3IEBAIGVu dW0gew0KPiA+ICAjZGVmaW5lICAgSUNMX1BDT0RFX01FTV9TVUJTWVNZU1RFTV9JTkZPCTB4ZA0K PiA+ICAjZGVmaW5lICAgICBJQ0xfUENPREVfTUVNX1NTX1JFQURfR0xPQkFMX0lORk8JKDB4MCA8 PCA4KQ0KPiA+ICAjZGVmaW5lICAgICBJQ0xfUENPREVfTUVNX1NTX1JFQURfUUdWX1BPSU5UX0lO Rk8ocG9pbnQpCSgoKHBvaW4NCj4gPiB0KSA8PCAxNikgfCAoMHgxIDw8IDgpKQ0KPiA+ICsjZGVm aW5lICAgSUNMX1BDT0RFX1NBR1ZfREVfTUVNX1NTX0NPTkZJRwkweGUNCj4gPiAgI2RlZmluZSAg IEdFTjZfUENPREVfUkVBRF9EX0NPTVAJCTB4MTANCj4gPiAgI2RlZmluZSAgIEdFTjZfUENPREVf V1JJVEVfRF9DT01QCQkweDExDQo+ID4gICNkZWZpbmUgICBIU1dfUENPREVfREVfV1JJVEVfRlJF UV9SRVEJCTB4MTcNCj4gPiBAQCAtODg2NSw2ICs4ODY2LDggQEAgZW51bSB7DQo+ID4gICNkZWZp bmUgICAgIEdFTjlfU0FHVl9ESVNBQkxFCQkJMHgwDQo+ID4gICNkZWZpbmUgICAgIEdFTjlfU0FH Vl9JU19ESVNBQkxFRAkJMHgxDQo+ID4gICNkZWZpbmUgICAgIEdFTjlfU0FHVl9FTkFCTEUJCQkw eDMNCj4gPiArI2RlZmluZSBHRU4xMV9QQ09ERV9QT0lOVFNfUkVTVFJJQ1RFRAkJMHgwDQo+ID4g KyNkZWZpbmUgR0VOMTFfUENPREVfUE9JTlRTX1JFU1RSSUNURURfTUFTSwkweDENCj4gPiAgI2Rl ZmluZSBHRU42X1BDT0RFX0RBVEEJCQkJX01NSU8oMHgxMzgxMjgpDQo+ID4gICNkZWZpbmUgICBH RU42X1BDT0RFX0ZSRVFfSUFfUkFUSU9fU0hJRlQJOA0KPiA+ICAjZGVmaW5lICAgR0VONl9QQ09E RV9GUkVRX1JJTkdfUkFUSU9fU0hJRlQJMTYNCj4gPiAtLSANCj4gPiAyLjE3LjENCj4gPiANCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==