From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 4/8] drm/i915: Move i9xx_crtc_clock_get() and ironlake_crtc_clock_get() earlier Date: Wed, 04 Sep 2013 16:22:44 +0300 Message-ID: <87bo48iuvv.fsf@intel.com> References: <1378293292-30682-1-git-send-email-ville.syrjala@linux.intel.com> <1378293292-30682-5-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 1C08AE5D55 for ; Wed, 4 Sep 2013 06:21:11 -0700 (PDT) In-Reply-To: <1378293292-30682-5-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAwNCBTZXAgMjAxMywgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3JvdGU6 Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K Pgo+IE1vdmUgaTl4eF9jcnRjX2Nsb2NrX2dldCgpIGFuZCBpcm9ubGFrZV9jcnRjX2Nsb2NrX2dl dCgpIGFyb3VuZCB0byBhdm9pZAo+IGZvcndhcmQgZGVjbGFyYXRpb25zLCBhcyB3ZSB3aWxsIHNv b24gY2FsbCB0aGVzZSBkaXJlY3RseSBmcm9tCj4gaTl4eF9nZXRfcGlwZV9jb25maWcoKSBhbmQg aXJvbmxha2VfZ2V0X3BpcGVfY29uZmlnKCkgcmVzcGVjdGl2ZWx5LAo+Cj4gTm8gZnVuY3Rpb25h bCBjaGFuZ2VzLgoKUmV2aWV3ZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5j b20+Cgo+Cj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgMjYyICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBj aGFuZ2VkLCAxMzEgaW5zZXJ0aW9ucygrKSwgMTMxIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGI5OTFhY2QuLjc0YWZmYjEgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTQ5ODUsNiArNDk4NSw5MiBAQCBz dGF0aWMgdm9pZCBpOXh4X2dldF9wZml0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK PiAgCQkJSTkxNV9SRUFEKExWRFMpICYgTFZEU19CT1JERVJfRU5BQkxFOwo+ICB9Cj4gIAo+ICsv KiBSZXR1cm5zIHRoZSBjbG9jayBvZiB0aGUgY3VycmVudGx5IHByb2dyYW1tZWQgbW9kZSBvZiB0 aGUgZ2l2ZW4gcGlwZS4gKi8KPiArc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Nsb2NrX2dldChzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiArCQkJCXN0cnVjdCBpbnRlbF9jcnRjX2NvbmZpZyAqcGlw ZV9jb25maWcpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRl djsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gKwlpbnQgcGlwZSA9IHBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKPiArCXUzMiBk cGxsID0gSTkxNV9SRUFEKERQTEwocGlwZSkpOwo+ICsJdTMyIGZwOwo+ICsJaW50ZWxfY2xvY2tf dCBjbG9jazsKPiArCj4gKwlpZiAoKGRwbGwgJiBESVNQTEFZX1JBVEVfU0VMRUNUX0ZQQTEpID09 IDApCj4gKwkJZnAgPSBJOTE1X1JFQUQoRlAwKHBpcGUpKTsKPiArCWVsc2UKPiArCQlmcCA9IEk5 MTVfUkVBRChGUDEocGlwZSkpOwo+ICsKPiArCWNsb2NrLm0xID0gKGZwICYgRlBfTTFfRElWX01B U0spID4+IEZQX00xX0RJVl9TSElGVDsKPiArCWlmIChJU19QSU5FVklFVyhkZXYpKSB7Cj4gKwkJ Y2xvY2subiA9IGZmcygoZnAgJiBGUF9OX1BJTkVWSUVXX0RJVl9NQVNLKSA+PiBGUF9OX0RJVl9T SElGVCkgLSAxOwo+ICsJCWNsb2NrLm0yID0gKGZwICYgRlBfTTJfUElORVZJRVdfRElWX01BU0sp ID4+IEZQX00yX0RJVl9TSElGVDsKPiArCX0gZWxzZSB7Cj4gKwkJY2xvY2subiA9IChmcCAmIEZQ X05fRElWX01BU0spID4+IEZQX05fRElWX1NISUZUOwo+ICsJCWNsb2NrLm0yID0gKGZwICYgRlBf TTJfRElWX01BU0spID4+IEZQX00yX0RJVl9TSElGVDsKPiArCX0KPiArCj4gKwlpZiAoIUlTX0dF TjIoZGV2KSkgewo+ICsJCWlmIChJU19QSU5FVklFVyhkZXYpKQo+ICsJCQljbG9jay5wMSA9IGZm cygoZHBsbCAmIERQTExfRlBBMDFfUDFfUE9TVF9ESVZfTUFTS19QSU5FVklFVykgPj4KPiArCQkJ CURQTExfRlBBMDFfUDFfUE9TVF9ESVZfU0hJRlRfUElORVZJRVcpOwo+ICsJCWVsc2UKPiArCQkJ Y2xvY2sucDEgPSBmZnMoKGRwbGwgJiBEUExMX0ZQQTAxX1AxX1BPU1RfRElWX01BU0spID4+Cj4g KwkJCSAgICAgICBEUExMX0ZQQTAxX1AxX1BPU1RfRElWX1NISUZUKTsKPiArCj4gKwkJc3dpdGNo IChkcGxsICYgRFBMTF9NT0RFX01BU0spIHsKPiArCQljYXNlIERQTExCX01PREVfREFDX1NFUklB TDoKPiArCQkJY2xvY2sucDIgPSBkcGxsICYgRFBMTF9EQUNfU0VSSUFMX1AyX0NMT0NLX0RJVl81 ID8KPiArCQkJCTUgOiAxMDsKPiArCQkJYnJlYWs7Cj4gKwkJY2FzZSBEUExMQl9NT0RFX0xWRFM6 Cj4gKwkJCWNsb2NrLnAyID0gZHBsbCAmIERQTExCX0xWRFNfUDJfQ0xPQ0tfRElWXzcgPwo+ICsJ CQkJNyA6IDE0Owo+ICsJCQlicmVhazsKPiArCQlkZWZhdWx0Ogo+ICsJCQlEUk1fREVCVUdfS01T KCJVbmtub3duIERQTEwgbW9kZSAlMDh4IGluIHByb2dyYW1tZWQgIgo+ICsJCQkJICAibW9kZVxu IiwgKGludCkoZHBsbCAmIERQTExfTU9ERV9NQVNLKSk7Cj4gKwkJCXBpcGVfY29uZmlnLT5hZGp1 c3RlZF9tb2RlLmNsb2NrID0gMDsKPiArCQkJcmV0dXJuOwo+ICsJCX0KPiArCj4gKwkJaWYgKElT X1BJTkVWSUVXKGRldikpCj4gKwkJCXBpbmV2aWV3X2Nsb2NrKDk2MDAwLCAmY2xvY2spOwo+ICsJ CWVsc2UKPiArCQkJaTl4eF9jbG9jayg5NjAwMCwgJmNsb2NrKTsKPiArCX0gZWxzZSB7Cj4gKwkJ Ym9vbCBpc19sdmRzID0gKHBpcGUgPT0gMSkgJiYgKEk5MTVfUkVBRChMVkRTKSAmIExWRFNfUE9S VF9FTik7Cj4gKwo+ICsJCWlmIChpc19sdmRzKSB7Cj4gKwkJCWNsb2NrLnAxID0gZmZzKChkcGxs ICYgRFBMTF9GUEEwMV9QMV9QT1NUX0RJVl9NQVNLX0k4MzBfTFZEUykgPj4KPiArCQkJCSAgICAg ICBEUExMX0ZQQTAxX1AxX1BPU1RfRElWX1NISUZUKTsKPiArCQkJY2xvY2sucDIgPSAxNDsKPiAr Cj4gKwkJCWlmICgoZHBsbCAmIFBMTF9SRUZfSU5QVVRfTUFTSykgPT0KPiArCQkJICAgIFBMTEJf UkVGX0lOUFVUX1NQUkVBRFNQRUNUUlVNSU4pIHsKPiArCQkJCS8qIFhYWDogbWlnaHQgbm90IGJl IDY2TUh6ICovCj4gKwkJCQlpOXh4X2Nsb2NrKDY2MDAwLCAmY2xvY2spOwo+ICsJCQl9IGVsc2UK PiArCQkJCWk5eHhfY2xvY2soNDgwMDAsICZjbG9jayk7Cj4gKwkJfSBlbHNlIHsKPiArCQkJaWYg KGRwbGwgJiBQTExfUDFfRElWSURFX0JZX1RXTykKPiArCQkJCWNsb2NrLnAxID0gMjsKPiArCQkJ ZWxzZSB7Cj4gKwkJCQljbG9jay5wMSA9ICgoZHBsbCAmIERQTExfRlBBMDFfUDFfUE9TVF9ESVZf TUFTS19JODMwKSA+Pgo+ICsJCQkJCSAgICBEUExMX0ZQQTAxX1AxX1BPU1RfRElWX1NISUZUKSAr IDI7Cj4gKwkJCX0KPiArCQkJaWYgKGRwbGwgJiBQTExfUDJfRElWSURFX0JZXzQpCj4gKwkJCQlj bG9jay5wMiA9IDQ7Cj4gKwkJCWVsc2UKPiArCQkJCWNsb2NrLnAyID0gMjsKPiArCj4gKwkJCWk5 eHhfY2xvY2soNDgwMDAsICZjbG9jayk7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCXBpcGVfY29uZmln LT5hZGp1c3RlZF9tb2RlLmNsb2NrID0gY2xvY2suZG90Owo+ICt9Cj4gKwo+ICBzdGF0aWMgYm9v bCBpOXh4X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkJCSBz dHJ1Y3QgaW50ZWxfY3J0Y19jb25maWcgKnBpcGVfY29uZmlnKQo+ICB7Cj4gQEAgLTU5MDEsNiAr NTk4Nyw1MSBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9nZXRfcGZpdF9jb25maWcoc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCj4gIAl9Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIGlyb25sYWtlX2Ny dGNfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICsJCQkJICAgIHN0cnVjdCBp bnRlbF9jcnRjX2NvbmZpZyAqcGlwZV9jb25maWcpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29k ZXIgPSBwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXI7Cj4gKwlpbnQgbGlua19mcmVxOwo+ICsJ dTY0IGNsb2NrOwo+ICsJdTMyIGxpbmtfbSwgbGlua19uOwo+ICsKPiArCS8qCj4gKwkgKiBUaGUg Y2FsY3VsYXRpb24gZm9yIHRoZSBkYXRhIGNsb2NrIGlzOgo+ICsJICogcGl4ZWxfY2xvY2sgPSAo KG0vbikqKGxpbmtfY2xvY2sgKiBucl9sYW5lcykpL2JwcAo+ICsJICogQnV0IHdlIHdhbnQgdG8g YXZvaWQgbG9zaW5nIHByZWNpc29uIGlmIHBvc3NpYmxlLCBzbzoKPiArCSAqIHBpeGVsX2Nsb2Nr ID0gKChtICogbGlua19jbG9jayAqIG5yX2xhbmVzKS8obipicHApKQo+ICsJICoKPiArCSAqIGFu ZCB0aGUgbGluayBjbG9jayBpcyBzaW1wbGVyOgo+ICsJICogbGlua19jbG9jayA9IChtICogbGlu a19jbG9jaykgLyBuCj4gKwkgKi8KPiArCj4gKwkvKgo+ICsJICogV2UgbmVlZCB0byBnZXQgdGhl IEZESSBvciBEUCBsaW5rIGNsb2NrIGhlcmUgdG8gZGVyaXZlCj4gKwkgKiB0aGUgTS9OIGRpdmlk ZXJzLgo+ICsJICoKPiArCSAqIEZvciBGREksIHdlIHJlYWQgaXQgZnJvbSB0aGUgQklPUyBvciB1 c2UgYSBmaXhlZCAyLjdHSHouCj4gKwkgKiBGb3IgRFAsIGl0J3MgZWl0aGVyIDEuNjJHSHogb3Ig Mi43R0h6Lgo+ICsJICogV2UgZG8gb3VyIGNhbGN1bGF0aW9ucyBpbiAxMCpNSHogc2luY2Ugd2Ug ZG9uJ3QgbmVlZCBtdWNoIHByZWNpc29uLgo+ICsJICovCj4gKwlpZiAocGlwZV9jb25maWctPmhh c19wY2hfZW5jb2RlcikKPiArCQlsaW5rX2ZyZXEgPSBpbnRlbF9mZGlfbGlua19mcmVxKGRldikg KiAxMDAwMDsKPiArCWVsc2UKPiArCQlsaW5rX2ZyZXEgPSBwaXBlX2NvbmZpZy0+cG9ydF9jbG9j azsKPiArCj4gKwlsaW5rX20gPSBJOTE1X1JFQUQoUElQRV9MSU5LX00xKGNwdV90cmFuc2NvZGVy KSk7Cj4gKwlsaW5rX24gPSBJOTE1X1JFQUQoUElQRV9MSU5LX04xKGNwdV90cmFuc2NvZGVyKSk7 Cj4gKwo+ICsJaWYgKCFsaW5rX20gfHwgIWxpbmtfbikKPiArCQlyZXR1cm47Cj4gKwo+ICsJY2xv Y2sgPSAoKHU2NClsaW5rX20gKiAodTY0KWxpbmtfZnJlcSk7Cj4gKwlkb19kaXYoY2xvY2ssIGxp bmtfbik7Cj4gKwo+ICsJcGlwZV9jb25maWctPmFkanVzdGVkX21vZGUuY2xvY2sgPSBjbG9jazsK PiArfQo+ICsKPiAgc3RhdGljIGJvb2wgaXJvbmxha2VfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLAo+ICAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19jb25maWcgKnBp cGVfY29uZmlnKQo+ICB7Cj4gQEAgLTcyODAsMTM3ICs3NDExLDYgQEAgdm9pZCBpbnRlbF9yZWxl YXNlX2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAg CW11dGV4X3VubG9jaygmY3J0Yy0+bXV0ZXgpOwo+ICB9Cj4gIAo+IC0vKiBSZXR1cm5zIHRoZSBj bG9jayBvZiB0aGUgY3VycmVudGx5IHByb2dyYW1tZWQgbW9kZSBvZiB0aGUgZ2l2ZW4gcGlwZS4g Ki8KPiAtc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKPiAtCQkJCXN0cnVjdCBpbnRlbF9jcnRjX2NvbmZpZyAqcGlwZV9jb25maWcpCj4gLXsK PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlpbnQgcGlw ZSA9IHBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKPiAtCXUzMiBkcGxsID0gSTkxNV9SRUFE KERQTEwocGlwZSkpOwo+IC0JdTMyIGZwOwo+IC0JaW50ZWxfY2xvY2tfdCBjbG9jazsKPiAtCj4g LQlpZiAoKGRwbGwgJiBESVNQTEFZX1JBVEVfU0VMRUNUX0ZQQTEpID09IDApCj4gLQkJZnAgPSBJ OTE1X1JFQUQoRlAwKHBpcGUpKTsKPiAtCWVsc2UKPiAtCQlmcCA9IEk5MTVfUkVBRChGUDEocGlw ZSkpOwo+IC0KPiAtCWNsb2NrLm0xID0gKGZwICYgRlBfTTFfRElWX01BU0spID4+IEZQX00xX0RJ Vl9TSElGVDsKPiAtCWlmIChJU19QSU5FVklFVyhkZXYpKSB7Cj4gLQkJY2xvY2subiA9IGZmcygo ZnAgJiBGUF9OX1BJTkVWSUVXX0RJVl9NQVNLKSA+PiBGUF9OX0RJVl9TSElGVCkgLSAxOwo+IC0J CWNsb2NrLm0yID0gKGZwICYgRlBfTTJfUElORVZJRVdfRElWX01BU0spID4+IEZQX00yX0RJVl9T SElGVDsKPiAtCX0gZWxzZSB7Cj4gLQkJY2xvY2subiA9IChmcCAmIEZQX05fRElWX01BU0spID4+ IEZQX05fRElWX1NISUZUOwo+IC0JCWNsb2NrLm0yID0gKGZwICYgRlBfTTJfRElWX01BU0spID4+ IEZQX00yX0RJVl9TSElGVDsKPiAtCX0KPiAtCj4gLQlpZiAoIUlTX0dFTjIoZGV2KSkgewo+IC0J CWlmIChJU19QSU5FVklFVyhkZXYpKQo+IC0JCQljbG9jay5wMSA9IGZmcygoZHBsbCAmIERQTExf RlBBMDFfUDFfUE9TVF9ESVZfTUFTS19QSU5FVklFVykgPj4KPiAtCQkJCURQTExfRlBBMDFfUDFf UE9TVF9ESVZfU0hJRlRfUElORVZJRVcpOwo+IC0JCWVsc2UKPiAtCQkJY2xvY2sucDEgPSBmZnMo KGRwbGwgJiBEUExMX0ZQQTAxX1AxX1BPU1RfRElWX01BU0spID4+Cj4gLQkJCSAgICAgICBEUExM X0ZQQTAxX1AxX1BPU1RfRElWX1NISUZUKTsKPiAtCj4gLQkJc3dpdGNoIChkcGxsICYgRFBMTF9N T0RFX01BU0spIHsKPiAtCQljYXNlIERQTExCX01PREVfREFDX1NFUklBTDoKPiAtCQkJY2xvY2su cDIgPSBkcGxsICYgRFBMTF9EQUNfU0VSSUFMX1AyX0NMT0NLX0RJVl81ID8KPiAtCQkJCTUgOiAx MDsKPiAtCQkJYnJlYWs7Cj4gLQkJY2FzZSBEUExMQl9NT0RFX0xWRFM6Cj4gLQkJCWNsb2NrLnAy ID0gZHBsbCAmIERQTExCX0xWRFNfUDJfQ0xPQ0tfRElWXzcgPwo+IC0JCQkJNyA6IDE0Owo+IC0J CQlicmVhazsKPiAtCQlkZWZhdWx0Ogo+IC0JCQlEUk1fREVCVUdfS01TKCJVbmtub3duIERQTEwg bW9kZSAlMDh4IGluIHByb2dyYW1tZWQgIgo+IC0JCQkJICAibW9kZVxuIiwgKGludCkoZHBsbCAm IERQTExfTU9ERV9NQVNLKSk7Cj4gLQkJCXBpcGVfY29uZmlnLT5hZGp1c3RlZF9tb2RlLmNsb2Nr ID0gMDsKPiAtCQkJcmV0dXJuOwo+IC0JCX0KPiAtCj4gLQkJaWYgKElTX1BJTkVWSUVXKGRldikp Cj4gLQkJCXBpbmV2aWV3X2Nsb2NrKDk2MDAwLCAmY2xvY2spOwo+IC0JCWVsc2UKPiAtCQkJaTl4 eF9jbG9jayg5NjAwMCwgJmNsb2NrKTsKPiAtCX0gZWxzZSB7Cj4gLQkJYm9vbCBpc19sdmRzID0g KHBpcGUgPT0gMSkgJiYgKEk5MTVfUkVBRChMVkRTKSAmIExWRFNfUE9SVF9FTik7Cj4gLQo+IC0J CWlmIChpc19sdmRzKSB7Cj4gLQkJCWNsb2NrLnAxID0gZmZzKChkcGxsICYgRFBMTF9GUEEwMV9Q MV9QT1NUX0RJVl9NQVNLX0k4MzBfTFZEUykgPj4KPiAtCQkJCSAgICAgICBEUExMX0ZQQTAxX1Ax X1BPU1RfRElWX1NISUZUKTsKPiAtCQkJY2xvY2sucDIgPSAxNDsKPiAtCj4gLQkJCWlmICgoZHBs bCAmIFBMTF9SRUZfSU5QVVRfTUFTSykgPT0KPiAtCQkJICAgIFBMTEJfUkVGX0lOUFVUX1NQUkVB RFNQRUNUUlVNSU4pIHsKPiAtCQkJCS8qIFhYWDogbWlnaHQgbm90IGJlIDY2TUh6ICovCj4gLQkJ CQlpOXh4X2Nsb2NrKDY2MDAwLCAmY2xvY2spOwo+IC0JCQl9IGVsc2UKPiAtCQkJCWk5eHhfY2xv Y2soNDgwMDAsICZjbG9jayk7Cj4gLQkJfSBlbHNlIHsKPiAtCQkJaWYgKGRwbGwgJiBQTExfUDFf RElWSURFX0JZX1RXTykKPiAtCQkJCWNsb2NrLnAxID0gMjsKPiAtCQkJZWxzZSB7Cj4gLQkJCQlj bG9jay5wMSA9ICgoZHBsbCAmIERQTExfRlBBMDFfUDFfUE9TVF9ESVZfTUFTS19JODMwKSA+Pgo+ IC0JCQkJCSAgICBEUExMX0ZQQTAxX1AxX1BPU1RfRElWX1NISUZUKSArIDI7Cj4gLQkJCX0KPiAt CQkJaWYgKGRwbGwgJiBQTExfUDJfRElWSURFX0JZXzQpCj4gLQkJCQljbG9jay5wMiA9IDQ7Cj4g LQkJCWVsc2UKPiAtCQkJCWNsb2NrLnAyID0gMjsKPiAtCj4gLQkJCWk5eHhfY2xvY2soNDgwMDAs ICZjbG9jayk7Cj4gLQkJfQo+IC0JfQo+IC0KPiAtCXBpcGVfY29uZmlnLT5hZGp1c3RlZF9tb2Rl LmNsb2NrID0gY2xvY2suZG90Owo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRj X2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAtCQkJCSAgICBzdHJ1Y3QgaW50 ZWxfY3J0Y19jb25maWcgKnBpcGVfY29uZmlnKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0JZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVy ID0gcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyOwo+IC0JaW50IGxpbmtfZnJlcTsKPiAtCXU2 NCBjbG9jazsKPiAtCXUzMiBsaW5rX20sIGxpbmtfbjsKPiAtCj4gLQkvKgo+IC0JICogVGhlIGNh bGN1bGF0aW9uIGZvciB0aGUgZGF0YSBjbG9jayBpczoKPiAtCSAqIHBpeGVsX2Nsb2NrID0gKCht L24pKihsaW5rX2Nsb2NrICogbnJfbGFuZXMpKS9icHAKPiAtCSAqIEJ1dCB3ZSB3YW50IHRvIGF2 b2lkIGxvc2luZyBwcmVjaXNvbiBpZiBwb3NzaWJsZSwgc286Cj4gLQkgKiBwaXhlbF9jbG9jayA9 ICgobSAqIGxpbmtfY2xvY2sgKiBucl9sYW5lcykvKG4qYnBwKSkKPiAtCSAqCj4gLQkgKiBhbmQg dGhlIGxpbmsgY2xvY2sgaXMgc2ltcGxlcjoKPiAtCSAqIGxpbmtfY2xvY2sgPSAobSAqIGxpbmtf Y2xvY2spIC8gbgo+IC0JICovCj4gLQo+IC0JLyoKPiAtCSAqIFdlIG5lZWQgdG8gZ2V0IHRoZSBG REkgb3IgRFAgbGluayBjbG9jayBoZXJlIHRvIGRlcml2ZQo+IC0JICogdGhlIE0vTiBkaXZpZGVy cy4KPiAtCSAqCj4gLQkgKiBGb3IgRkRJLCB3ZSByZWFkIGl0IGZyb20gdGhlIEJJT1Mgb3IgdXNl IGEgZml4ZWQgMi43R0h6Lgo+IC0JICogRm9yIERQLCBpdCdzIGVpdGhlciAxLjYyR0h6IG9yIDIu N0dIei4KPiAtCSAqIFdlIGRvIG91ciBjYWxjdWxhdGlvbnMgaW4gMTAqTUh6IHNpbmNlIHdlIGRv bid0IG5lZWQgbXVjaCBwcmVjaXNvbi4KPiAtCSAqLwo+IC0JaWYgKHBpcGVfY29uZmlnLT5oYXNf cGNoX2VuY29kZXIpCj4gLQkJbGlua19mcmVxID0gaW50ZWxfZmRpX2xpbmtfZnJlcShkZXYpICog MTAwMDA7Cj4gLQllbHNlCj4gLQkJbGlua19mcmVxID0gcGlwZV9jb25maWctPnBvcnRfY2xvY2s7 Cj4gLQo+IC0JbGlua19tID0gSTkxNV9SRUFEKFBJUEVfTElOS19NMShjcHVfdHJhbnNjb2Rlcikp Owo+IC0JbGlua19uID0gSTkxNV9SRUFEKFBJUEVfTElOS19OMShjcHVfdHJhbnNjb2RlcikpOwo+ IC0KPiAtCWlmICghbGlua19tIHx8ICFsaW5rX24pCj4gLQkJcmV0dXJuOwo+IC0KPiAtCWNsb2Nr ID0gKCh1NjQpbGlua19tICogKHU2NClsaW5rX2ZyZXEpOwo+IC0JZG9fZGl2KGNsb2NrLCBsaW5r X24pOwo+IC0KPiAtCXBpcGVfY29uZmlnLT5hZGp1c3RlZF9tb2RlLmNsb2NrID0gY2xvY2s7Cj4g LX0KPiAtCj4gIC8qKiBSZXR1cm5zIHRoZSBjdXJyZW50bHkgcHJvZ3JhbW1lZCBtb2RlIG9mIHRo ZSBnaXZlbiBwaXBlLiAqLwo+ICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqaW50ZWxfY3J0Y19t b2RlX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJCSAgICAgc3RydWN0IGRybV9j cnRjICpjcnRjKQo+IC0tIAo+IDEuOC4xLjUKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291 cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==