From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 30/42] drm/i915: Remove use of crtc->config in intel_hdmi.c Date: Tue, 12 May 2015 11:26:30 +0200 Message-ID: <20150512092630.GM15256@phenom.ffwll.local> References: <1431354318-11995-1-git-send-email-maarten.lankhorst@linux.intel.com> <1431354318-11995-31-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f54.google.com (mail-wg0-f54.google.com [74.125.82.54]) by gabe.freedesktop.org (Postfix) with ESMTP id 511A26E2D4 for ; Tue, 12 May 2015 02:24:10 -0700 (PDT) Received: by wgbhc8 with SMTP id hc8so1713352wgb.2 for ; Tue, 12 May 2015 02:24:09 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1431354318-11995-31-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: Ander Conselvan de Oliveira , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXkgMTEsIDIwMTUgYXQgMDQ6MjU6MDZQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFu a2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaGRtaS5jIHwgNTggKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4g IDEgZmlsZSBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gaW5kZXggNzY5OTRkYzAzM2EzLi45ZWZjM2RkNjJh MDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gQEAgLTM0NSwxNCArMzQ1LDE1 IEBAIHN0YXRpYyB2b2lkIGhzd193cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLAo+ICAJY29uc3QgdWludDMyX3QgKmRhdGEgPSBmcmFtZTsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+IC0JdTMyIGN0bF9yZWcgPSBI U1dfVFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2Rlcik7Cj4g KwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQo+ICsJCXRvX2ludGVsX2Ny dGNfc3RhdGUoZW5jb2Rlci0+Y3J0Yy0+c3RhdGUpOwo+ICsJdTMyIGN0bF9yZWcgPSBIU1dfVFZJ REVPX0RJUF9DVEwocGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyKTsKPiAgCXUzMiBkYXRhX3Jl ZzsKPiAgCWludCBpOwo+ICAJdTMyIHZhbCA9IEk5MTVfUkVBRChjdGxfcmVnKTsKPiAgCj4gIAlk YXRhX3JlZyA9IGhzd19pbmZvZnJhbWVfZGF0YV9yZWcodHlwZSwKPiAtCQkJCQkgIGludGVsX2Ny dGMtPmNvbmZpZy0+Y3B1X3RyYW5zY29kZXIsCj4gKwkJCQkJICBwaXBlX2NvbmZpZy0+Y3B1X3Ry YW5zY29kZXIsCj4gIAkJCQkJICBkZXZfcHJpdik7Cj4gIAlpZiAoZGF0YV9yZWcgPT0gMCkKPiAg CQlyZXR1cm47Cj4gQEAgLTM4MCw3ICszODEsOSBAQCBzdGF0aWMgYm9vbCBoc3dfaW5mb2ZyYW1l X2VuYWJsZWQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQoKaW5mb2ZyYW1lX2VuYWJsZWQg ZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBnZXRfY29uZmlnLCB3aGljaCBoYXMgYQpwYXNzZWQt aW4gcGlwZV9jb25maWcuIFlvdSBuZWVkIHRvIHBhc3MgdGhpcyBvbmUgZG93bi4KClRoYXQncyBh IGdvb2QgZXhhbXBsZSBmb3Igd2h5IEkgdGhpbmsgdGhlIGNvbW1pdCBtZXNzYWdlIHNob3VsZCBz dW1tYXJpemUKd2h5IGVhY2ggY2hhbmdlIHdhcyBvayBhbmQgaW4gd2hhdCBjYWxsaW5nIGNvbnRl eHQgaXQncyBkb25lIChzaW5jZSB0aGV5CmFsbCByZXF1aXJlIGRpZmZlcmVudCBjb252ZXJzaW9u cykuIEFuZCBwZXJoYXBzIGFsc28gc3BsaXQgdXAgcGF0Y2hlcyBub3QKYWxvbmcgc291cmNlLWZp bGVzIG9ubHkgYnV0IGFsc28gYWxvbmcgc3RhZ2VzIGFuZCBjYWxsaW5nIGNvbnRleHRzLgoKWWVw IGV2ZW4gbW9yZSBwYXRjaGVzIGJ1dCB0aGlzIHN0dWZmIGlzIHJlYWxseSB0cmlja3kgaW1vLgot RGFuaWVsCgo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0 Yyk7Cj4gLQl1MzIgY3RsX3JlZyA9IEhTV19UVklERU9fRElQX0NUTChpbnRlbF9jcnRjLT5jb25m aWctPmNwdV90cmFuc2NvZGVyKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZyA9Cj4gKwkJdG9faW50ZWxfY3J0Y19zdGF0ZShpbnRlbF9jcnRjLT5iYXNlLnN0YXRlKTsK PiArCXUzMiBjdGxfcmVnID0gSFNXX1RWSURFT19ESVBfQ1RMKHBpcGVfY29uZmlnLT5jcHVfdHJh bnNjb2Rlcik7Cj4gIAl1MzIgdmFsID0gSTkxNV9SRUFEKGN0bF9yZWcpOwo+ICAKPiAgCXJldHVy biB2YWwgJiAoVklERU9fRElQX0VOQUJMRV9BVklfSFNXIHwgVklERU9fRElQX0VOQUJMRV9TUERf SFNXIHwKPiBAQCAtNDMwLDcgKzQzMyw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfc2V0X2F2 aV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJCSBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiAgewo+ICAJc3RydWN0IGludGVsX2hk bWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaShlbmNvZGVyKTsKPiAtCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKPiAr CXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9Cj4gKwkJdG9faW50ZWxfY3J0 Y19zdGF0ZShlbmNvZGVyLT5jcnRjLT5zdGF0ZSk7Cj4gIAl1bmlvbiBoZG1pX2luZm9mcmFtZSBm cmFtZTsKPiAgCWludCByZXQ7Cj4gIAo+IEBAIC00NDUsNyArNDQ5LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfaGRtaV9zZXRfYXZpX2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIs Cj4gIAl9Cj4gIAo+ICAJaWYgKGludGVsX2hkbWktPnJnYl9xdWFudF9yYW5nZV9zZWxlY3RhYmxl KSB7Cj4gLQkJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSkKPiAr CQlpZiAocGlwZV9jb25maWctPmxpbWl0ZWRfY29sb3JfcmFuZ2UpCj4gIAkJCWZyYW1lLmF2aS5x dWFudGl6YXRpb25fcmFuZ2UgPQo+ICAJCQkJSERNSV9RVUFOVElaQVRJT05fUkFOR0VfTElNSVRF RDsKPiAgCQllbHNlCj4gQEAgLTY3OSw5ICs2ODMsMTAgQEAgc3RhdGljIHZvaWQgaHN3X3NldF9p bmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJICAgICAgIHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOwo+IC0Jc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMp Owo+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0KPiArCQl0b19pbnRl bF9jcnRjX3N0YXRlKGVuY29kZXItPmNydGMtPnN0YXRlKTsKPiAgCXN0cnVjdCBpbnRlbF9oZG1p ICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoZW5jb2Rlcik7Cj4gLQl1MzIgcmVnID0g SFNXX1RWSURFT19ESVBfQ1RMKGludGVsX2NydGMtPmNvbmZpZy0+Y3B1X3RyYW5zY29kZXIpOwo+ ICsJdTMyIHJlZyA9IEhTV19UVklERU9fRElQX0NUTChwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29k ZXIpOwo+ICAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ICAKPiAgCWFzc2VydF9oZG1pX3Bv cnRfZGlzYWJsZWQoaW50ZWxfaGRtaSk7Cj4gQEAgLTcwOSw3ICs3MTQsOSBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9oZG1pX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0 Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1p KCZlbmNvZGVyLT5iYXNlKTsKPiAtCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlID0gJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICsJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0KPiArCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMt PmJhc2Uuc3RhdGUpOwo+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiAgCXUzMiBoZG1pX3ZhbDsKPiAg Cj4gIAloZG1pX3ZhbCA9IFNEVk9fRU5DT0RJTkdfSERNSTsKPiBAQCAtNzIwLDEyICs3MjcsMTIg QEAgc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ICAJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19QSFNZ TkMpCj4gIAkJaGRtaV92YWwgfD0gU0RWT19IU1lOQ19BQ1RJVkVfSElHSDsKPiAgCj4gLQlpZiAo Y3J0Yy0+Y29uZmlnLT5waXBlX2JwcCA+IDI0KQo+ICsJaWYgKHBpcGVfY29uZmlnLT5waXBlX2Jw cCA+IDI0KQo+ICAJCWhkbWlfdmFsIHw9IEhETUlfQ09MT1JfRk9STUFUXzEyYnBjOwo+ICAJZWxz ZQo+ICAJCWhkbWlfdmFsIHw9IFNEVk9fQ09MT1JfRk9STUFUXzhicGM7Cj4gIAo+IC0JaWYgKGNy dGMtPmNvbmZpZy0+aGFzX2hkbWlfc2luaykKPiArCWlmIChwaXBlX2NvbmZpZy0+aGFzX2hkbWlf c2luaykKPiAgCQloZG1pX3ZhbCB8PSBIRE1JX01PREVfU0VMRUNUX0hETUk7Cj4gIAo+ICAJaWYg KEhBU19QQ0hfQ1BUKGRldikpCj4gQEAgLTgxOSwxMSArODI2LDEzIEBAIHN0YXRpYyB2b2lkIGlu dGVsX2VuYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwo+ICsJ c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0KPiArCQl0b19pbnRlbF9jcnRj X3N0YXRlKGludGVsX2NydGMtPmJhc2Uuc3RhdGUpOwo+ICAJc3RydWN0IGludGVsX2hkbWkgKmlu dGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7Cj4gIAl1MzIgdGVt cDsKPiAgCXUzMiBlbmFibGVfYml0cyA9IFNEVk9fRU5BQkxFOwo+ICAKPiAtCWlmIChpbnRlbF9j cnRjLT5jb25maWctPmhhc19hdWRpbykKPiArCWlmIChwaXBlX2NvbmZpZy0+aGFzX2F1ZGlvKQo+ ICAJCWVuYWJsZV9iaXRzIHw9IFNEVk9fQVVESU9fRU5BQkxFOwo+ICAKPiAgCXRlbXAgPSBJOTE1 X1JFQUQoaW50ZWxfaGRtaS0+aGRtaV9yZWcpOwo+IEBAIC04NTQsOCArODYzLDggQEAgc3RhdGlj IHZvaWQgaW50ZWxfZW5hYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g IAkJUE9TVElOR19SRUFEKGludGVsX2hkbWktPmhkbWlfcmVnKTsKPiAgCX0KPiAgCj4gLQlpZiAo aW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfYXVkaW8pIHsKPiAtCQlXQVJOX09OKCFpbnRlbF9jcnRj LT5jb25maWctPmhhc19oZG1pX3NpbmspOwo+ICsJaWYgKHBpcGVfY29uZmlnLT5oYXNfYXVkaW8p IHsKPiArCQlXQVJOX09OKCFwaXBlX2NvbmZpZy0+aGFzX2hkbWlfc2luayk7Cj4gIAkJRFJNX0RF QlVHX0RSSVZFUigiRW5hYmxpbmcgSERNSSBhdWRpbyBvbiBwaXBlICVjXG4iLAo+ICAJCQkJIHBp cGVfbmFtZShpbnRlbF9jcnRjLT5waXBlKSk7Cj4gIAkJaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxl KGVuY29kZXIpOwo+IEBAIC0xMjY3LDE0ICsxMjc2LDE1IEBAIGRvbmU6Cj4gIHN0YXRpYyB2b2lk IGludGVsX2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAg ewo+ICAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgm ZW5jb2Rlci0+YmFzZSk7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZyA9Cj4gKwkJdG9faW50ZWxfY3J0Y19zdGF0ZShlbmNvZGVyLT5iYXNlLmNy dGMtPnN0YXRlKTsKPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0K PiAtCQkmaW50ZWxfY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gKwkJJnBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gIAo+ICAJaW50ZWxfaGRtaV9wcmVwYXJlKGVu Y29kZXIpOwo+ICAKPiAgCWludGVsX2hkbWktPnNldF9pbmZvZnJhbWVzKCZlbmNvZGVyLT5iYXNl LAo+IC0JCQkJICAgaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfaGRtaV9zaW5rLAo+ICsJCQkJICAg cGlwZV9jb25maWctPmhhc19oZG1pX3NpbmssCj4gIAkJCQkgICBhZGp1c3RlZF9tb2RlKTsKPiAg fQo+ICAKPiBAQCAtMTI4Niw4ICsxMjk2LDEwIEBAIHN0YXRpYyB2b2lkIHZsdl9oZG1pX3ByZV9l bmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMgPQo+ICAJCXRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsK PiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9Cj4gKwkJdG9faW50ZWxf Y3J0Y19zdGF0ZShpbnRlbF9jcnRjLT5iYXNlLnN0YXRlKTsKPiAgCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICphZGp1c3RlZF9tb2RlID0KPiAtCQkmaW50ZWxfY3J0Yy0+Y29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGU7Cj4gKwkJJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gIAll bnVtIGRwaW9fY2hhbm5lbCBwb3J0ID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQpOwo+ICAJ aW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAJdTMyIHZhbDsKPiBAQCAtMTMxOSw3ICsx MzMxLDcgQEAgc3RhdGljIHZvaWQgdmx2X2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRwaW9fbG9jayk7Cj4g IAo+ICAJaW50ZWxfaGRtaS0+c2V0X2luZm9mcmFtZXMoJmVuY29kZXItPmJhc2UsCj4gLQkJCQkg ICBpbnRlbF9jcnRjLT5jb25maWctPmhhc19oZG1pX3NpbmssCj4gKwkJCQkgICBwaXBlX2NvbmZp Zy0+aGFzX2hkbWlfc2luaywKPiAgCQkJCSAgIGFkanVzdGVkX21vZGUpOwo+ICAKPiAgCWludGVs X2VuYWJsZV9oZG1pKGVuY29kZXIpOwo+IEBAIC0xNTMxLDEzICsxNTQzLDEzIEBAIHN0YXRpYyB2 b2lkIGNodl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g IAl9Cj4gIAo+ICAJLyogRGF0YSBsYW5lIHN0YWdnZXIgcHJvZ3JhbW1pbmcgKi8KPiAtCWlmIChp bnRlbF9jcnRjLT5jb25maWctPnBvcnRfY2xvY2sgPiAyNzAwMDApCj4gKwlpZiAocGlwZV9jb25m aWctPnBvcnRfY2xvY2sgPiAyNzAwMDApCj4gIAkJc3RhZ2dlciA9IDB4MTg7Cj4gLQllbHNlIGlm IChpbnRlbF9jcnRjLT5jb25maWctPnBvcnRfY2xvY2sgPiAxMzUwMDApCj4gKwllbHNlIGlmIChw aXBlX2NvbmZpZy0+cG9ydF9jbG9jayA+IDEzNTAwMCkKPiAgCQlzdGFnZ2VyID0gMHhkOwo+IC0J ZWxzZSBpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gNjc1MDApCj4gKwllbHNl IGlmIChwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA+IDY3NTAwKQo+ICAJCXN0YWdnZXIgPSAweDc7 Cj4gLQllbHNlIGlmIChpbnRlbF9jcnRjLT5jb25maWctPnBvcnRfY2xvY2sgPiAzMzc1MCkKPiAr CWVsc2UgaWYgKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID4gMzM3NTApCj4gIAkJc3RhZ2dlciA9 IDB4NDsKPiAgCWVsc2UKPiAgCQlzdGFnZ2VyID0gMHgyOwo+IC0tIAo+IDIuMS4wCj4gCj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZngg bWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApEYW5p ZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxv Zy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=