From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 4.1/5] drm/i915: calculate the port clock rate along with other PLL params Date: Tue, 30 Jun 2015 11:56:16 +0200 Message-ID: <20150630095616.GL30960@phenom.ffwll.local> References: <1434637557-4856-4-git-send-email-imre.deak@intel.com> <1435005352-27604-2-git-send-email-imre.deak@intel.com> <20150624125323.GY5176@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by gabe.freedesktop.org (Postfix) with ESMTPS id 76CB66E24C for ; Tue, 30 Jun 2015 02:53:59 -0700 (PDT) Received: by wibdq8 with SMTP id dq8so11281055wib.1 for ; Tue, 30 Jun 2015 02:53:57 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150624125323.GY5176@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdW4gMjQsIDIwMTUgYXQgMDM6NTM6MjNQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIE1vbiwgSnVuIDIyLCAyMDE1IGF0IDExOjM1OjUxUE0gKzAzMDAsIEltcmUg RGVhayB3cm90ZToKPiA+IERlcGVuZGluZyBvbiB0aGUgcGxhdGZvcm0gdGhlIHBvcnQgY2xvY2sg ZmVkIHRvIHRoZSBwaXBlIGNhbiBiZSB0aGUgUExMJ3MKPiA+IHBvc3QtZGl2aWRlZCBmYXN0IGNs b2NrIHJhdGUgb3IgYSAvNSBkaXZpZGVkIHZlcnNpb24gb2YgaXQuIFRvIG1ha2UgdGhpcwo+ID4g bW9yZSBvYnZpb3VzIGFjcm9zcyB0aGUgcGxhdGZvcm1zIGNhbGN1bGF0ZSB0aGlzIHBvcnQgY2xv Y2sgYWxvbmcgd2l0aAo+ID4gdGhlIHJlc3Qgb2YgdGhlIFBMTCBwYXJhbWV0ZXJzLgo+ID4gCj4g PiBUaGlzIGlzIGFsc28gbmVlZGVkIGJ5IHRoZSBuZXh0IHBhdGNoIHdoZXJlIHdlIGNhbiByZXVz ZSB0aGUgQ0hWIGhlbHBlcgo+ID4gZm9yIHRoZSBCWFQgUExMIEhXIHJlYWRvdXQgY29kZTsgc28g ZXhwb3J0IHRoZSBjb3JyZXNwb25kaW5nIGhlbHBlci4KPiA+IAo+ID4gV2hpbGUgYXQgaXQgYWxz byBhZGQgYSBtb3JlIGRlc2NyaXB0aXZlIG5hbWUgdG8gdGhlIGhlbHBlcnMgYW5kIGEKPiA+IGNv bW1lbnQgZXhwbGFpbmluZyB3aGF0J3MgYmVpbmcgY2FsY3VsYXRlZC4KPiA+IAo+ID4gTm8gZnVu Y3Rpb25hbCBjaGFuZ2UuCj4gPiAKPiA+IFN1Z2dlc3RlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVh ayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPiAKPiBJJ20gbm90IHN1cmUgSSBlbnRpcmVseSBsaWtl IHRoZSBuZXcgbmFtZSwgYnV0IHRoZSBvbGQgbmFtZSB3YXNuJ3QKPiBnb29kIGVpdGhlciwgYW5k IEkgY2FuJ3QgdGhpbmsgb2YgYW55dGhpbmcgYmV0dGVyLgo+IAo+IFJldmlld2VkLWJ5OiBWaWxs ZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoKQWxsIG1lcmdlZCB0 byBkaW5xLCB0aGFua3MuCi1EYW5pZWwKCj4gCj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA2MSArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMiArKwo+ ID4gIDIgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCj4g PiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IGluZGV4IGZiN2ZkNWYu LmExMWNlN2ZhIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ IEBAIC01NTMsMTUgKzU1MywyNSBAQCBpbnRlbF9saW1pdChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwgaW50IHJlZmNsaykKPiA+ICAJcmV0dXJuIGxpbWl0Owo+ID4gIH0KPiA+ ICAKPiA+ICsvKgo+ID4gKyAqIFBsYXRmb3JtIHNwZWNpZmljIGhlbHBlcnMgdG8gY2FsY3VsYXRl IHRoZSBwb3J0IFBMTCBsb29wYmFjay0gKGNsb2NrLm0pLAo+ID4gKyAqIGFuZCBwb3N0LWRpdmlk ZXIgKGNsb2NrLnApIHZhbHVlcywgcHJlLSAoY2xvY2sudmNvKSBhbmQgcG9zdC1kaXZpZGVkIGZh c3QKPiA+ICsgKiAoY2xvY2suZG90KSBjbG9jayByYXRlcy4gVGhpcyBmYXN0IGRvdCBjbG9jayBp cyBmZWQgdG8gdGhlIHBvcnQncyBJTyBsb2dpYy4KPiA+ICsgKiBUaGUgaGVscGVycycgcmV0dXJu IHZhbHVlIGlzIHRoZSByYXRlIG9mIHRoZSBjbG9jayB0aGF0IGlzIGZlZCB0byB0aGUKPiA+ICsg KiBkaXNwbGF5IGVuZ2luZSdzIHBpcGUgd2hpY2ggY2FuIGJlIHRoZSBhYm92ZSBmYXN0IGRvdCBj bG9jayByYXRlIG9yIGEKPiA+ICsgKiBkaXZpZGVkLWRvd24gdmVyc2lvbiBvZiBpdC4KPiA+ICsg Ki8KPiA+ICAvKiBtMSBpcyByZXNlcnZlZCBhcyAwIGluIFBpbmV2aWV3LCBuIGlzIGEgcmluZyBj b3VudGVyICovCj4gPiAtc3RhdGljIHZvaWQgcGluZXZpZXdfY2xvY2soaW50IHJlZmNsaywgaW50 ZWxfY2xvY2tfdCAqY2xvY2spCj4gPiArc3RhdGljIGludCBwbnZfY2FsY19kcGxsX3BhcmFtcyhp bnQgcmVmY2xrLCBpbnRlbF9jbG9ja190ICpjbG9jaykKPiA+ICB7Cj4gPiAgCWNsb2NrLT5tID0g Y2xvY2stPm0yICsgMjsKPiA+ICAJY2xvY2stPnAgPSBjbG9jay0+cDEgKiBjbG9jay0+cDI7Cj4g PiAgCWlmIChXQVJOX09OKGNsb2NrLT5uID09IDAgfHwgY2xvY2stPnAgPT0gMCkpCj4gPiAtCQly ZXR1cm47Cj4gPiArCQlyZXR1cm4gMDsKPiA+ICAJY2xvY2stPnZjbyA9IERJVl9ST1VORF9DTE9T RVNUKHJlZmNsayAqIGNsb2NrLT5tLCBjbG9jay0+bik7Cj4gPiAgCWNsb2NrLT5kb3QgPSBESVZf Uk9VTkRfQ0xPU0VTVChjbG9jay0+dmNvLCBjbG9jay0+cCk7Cj4gPiArCj4gPiArCXJldHVybiBj bG9jay0+ZG90Owo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgdWludDMyX3QgaTl4eF9kcGxsX2Nv bXB1dGVfbShzdHJ1Y3QgZHBsbCAqZHBsbCkKPiA+IEBAIC01NjksMzUgKzU3OSw0MSBAQCBzdGF0 aWMgdWludDMyX3QgaTl4eF9kcGxsX2NvbXB1dGVfbShzdHJ1Y3QgZHBsbCAqZHBsbCkKPiA+ICAJ cmV0dXJuIDUgKiAoZHBsbC0+bTEgKyAyKSArIChkcGxsLT5tMiArIDIpOwo+ID4gIH0KPiA+ICAK PiA+IC1zdGF0aWMgdm9pZCBpOXh4X2Nsb2NrKGludCByZWZjbGssIGludGVsX2Nsb2NrX3QgKmNs b2NrKQo+ID4gK3N0YXRpYyBpbnQgaTl4eF9jYWxjX2RwbGxfcGFyYW1zKGludCByZWZjbGssIGlu dGVsX2Nsb2NrX3QgKmNsb2NrKQo+ID4gIHsKPiA+ICAJY2xvY2stPm0gPSBpOXh4X2RwbGxfY29t cHV0ZV9tKGNsb2NrKTsKPiA+ICAJY2xvY2stPnAgPSBjbG9jay0+cDEgKiBjbG9jay0+cDI7Cj4g PiAgCWlmIChXQVJOX09OKGNsb2NrLT5uICsgMiA9PSAwIHx8IGNsb2NrLT5wID09IDApKQo+ID4g LQkJcmV0dXJuOwo+ID4gKwkJcmV0dXJuIDA7Cj4gPiAgCWNsb2NrLT52Y28gPSBESVZfUk9VTkRf Q0xPU0VTVChyZWZjbGsgKiBjbG9jay0+bSwgY2xvY2stPm4gKyAyKTsKPiA+ICAJY2xvY2stPmRv dCA9IERJVl9ST1VORF9DTE9TRVNUKGNsb2NrLT52Y28sIGNsb2NrLT5wKTsKPiA+ICsKPiA+ICsJ cmV0dXJuIGNsb2NrLT5kb3Q7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyB2b2lkIHZsdl9jbG9j ayhpbnQgcmVmY2xrLCBpbnRlbF9jbG9ja190ICpjbG9jaykKPiA+ICtzdGF0aWMgaW50IHZsdl9j YWxjX2RwbGxfcGFyYW1zKGludCByZWZjbGssIGludGVsX2Nsb2NrX3QgKmNsb2NrKQo+ID4gIHsK PiA+ICAJY2xvY2stPm0gPSBjbG9jay0+bTEgKiBjbG9jay0+bTI7Cj4gPiAgCWNsb2NrLT5wID0g Y2xvY2stPnAxICogY2xvY2stPnAyOwo+ID4gIAlpZiAoV0FSTl9PTihjbG9jay0+biA9PSAwIHx8 IGNsb2NrLT5wID09IDApKQo+ID4gLQkJcmV0dXJuOwo+ID4gKwkJcmV0dXJuIDA7Cj4gPiAgCWNs b2NrLT52Y28gPSBESVZfUk9VTkRfQ0xPU0VTVChyZWZjbGsgKiBjbG9jay0+bSwgY2xvY2stPm4p Owo+ID4gIAljbG9jay0+ZG90ID0gRElWX1JPVU5EX0NMT1NFU1QoY2xvY2stPnZjbywgY2xvY2st PnApOwo+ID4gKwo+ID4gKwlyZXR1cm4gY2xvY2stPmRvdCAvIDU7Cj4gPiAgfQo+ID4gIAo+ID4g LXN0YXRpYyB2b2lkIGNodl9jbG9jayhpbnQgcmVmY2xrLCBpbnRlbF9jbG9ja190ICpjbG9jaykK PiA+ICtpbnQgY2h2X2NhbGNfZHBsbF9wYXJhbXMoaW50IHJlZmNsaywgaW50ZWxfY2xvY2tfdCAq Y2xvY2spCj4gPiAgewo+ID4gIAljbG9jay0+bSA9IGNsb2NrLT5tMSAqIGNsb2NrLT5tMjsKPiA+ ICAJY2xvY2stPnAgPSBjbG9jay0+cDEgKiBjbG9jay0+cDI7Cj4gPiAgCWlmIChXQVJOX09OKGNs b2NrLT5uID09IDAgfHwgY2xvY2stPnAgPT0gMCkpCj4gPiAtCQlyZXR1cm47Cj4gPiArCQlyZXR1 cm4gMDsKPiA+ICAJY2xvY2stPnZjbyA9IERJVl9ST1VORF9DTE9TRVNUX1VMTCgodWludDY0X3Qp cmVmY2xrICogY2xvY2stPm0sCj4gPiAgCQkJY2xvY2stPm4gPDwgMjIpOwo+ID4gIAljbG9jay0+ ZG90ID0gRElWX1JPVU5EX0NMT1NFU1QoY2xvY2stPnZjbywgY2xvY2stPnApOwo+ID4gKwo+ID4g KwlyZXR1cm4gY2xvY2stPmRvdCAvIDU7Cj4gPiAgfQo+ID4gIAo+ID4gICNkZWZpbmUgSU5URUxQ bGxJbnZhbGlkKHMpICAgZG8geyAvKiBEUk1fREVCVUcocyk7ICovIHJldHVybiBmYWxzZTsgfSB3 aGlsZSAoMCkKPiA+IEBAIC02OTIsNyArNzA4LDcgQEAgaTl4eF9maW5kX2Jlc3RfZHBsbChjb25z dCBpbnRlbF9saW1pdF90ICpsaW1pdCwKPiA+ICAJCQkJCWNsb2NrLnAxIDw9IGxpbWl0LT5wMS5t YXg7IGNsb2NrLnAxKyspIHsKPiA+ICAJCQkJCWludCB0aGlzX2VycjsKPiA+ICAKPiA+IC0JCQkJ CWk5eHhfY2xvY2socmVmY2xrLCAmY2xvY2spOwo+ID4gKwkJCQkJaTl4eF9jYWxjX2RwbGxfcGFy YW1zKHJlZmNsaywgJmNsb2NrKTsKPiA+ICAJCQkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKGRl diwgbGltaXQsCj4gPiAgCQkJCQkJCQkmY2xvY2spKQo+ID4gIAkJCQkJCWNvbnRpbnVlOwo+ID4g QEAgLTczNyw3ICs3NTMsNyBAQCBwbnZfZmluZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRf dCAqbGltaXQsCj4gPiAgCQkJCQljbG9jay5wMSA8PSBsaW1pdC0+cDEubWF4OyBjbG9jay5wMSsr KSB7Cj4gPiAgCQkJCQlpbnQgdGhpc19lcnI7Cj4gPiAgCj4gPiAtCQkJCQlwaW5ldmlld19jbG9j ayhyZWZjbGssICZjbG9jayk7Cj4gPiArCQkJCQlwbnZfY2FsY19kcGxsX3BhcmFtcyhyZWZjbGss ICZjbG9jayk7Cj4gPiAgCQkJCQlpZiAoIWludGVsX1BMTF9pc192YWxpZChkZXYsIGxpbWl0LAo+ ID4gIAkJCQkJCQkJJmNsb2NrKSkKPiA+ICAJCQkJCQljb250aW51ZTsKPiA+IEBAIC03ODcsNyAr ODAzLDcgQEAgZzR4X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LAo+ ID4gIAkJCQkgICAgIGNsb2NrLnAxID49IGxpbWl0LT5wMS5taW47IGNsb2NrLnAxLS0pIHsKPiA+ ICAJCQkJCWludCB0aGlzX2VycjsKPiA+ICAKPiA+IC0JCQkJCWk5eHhfY2xvY2socmVmY2xrLCAm Y2xvY2spOwo+ID4gKwkJCQkJaTl4eF9jYWxjX2RwbGxfcGFyYW1zKHJlZmNsaywgJmNsb2NrKTsK PiA+ICAJCQkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKGRldiwgbGltaXQsCj4gPiAgCQkJCQkJ CQkmY2xvY2spKQo+ID4gIAkJCQkJCWNvbnRpbnVlOwo+ID4gQEAgLTg3Nyw3ICs4OTMsNyBAQCB2 bHZfZmluZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQsCj4gPiAgCQkJCQlj bG9jay5tMiA9IERJVl9ST1VORF9DTE9TRVNUKHRhcmdldCAqIGNsb2NrLnAgKiBjbG9jay5uLAo+ ID4gIAkJCQkJCQkJICAgICByZWZjbGsgKiBjbG9jay5tMSk7Cj4gPiAgCj4gPiAtCQkJCQl2bHZf Y2xvY2socmVmY2xrLCAmY2xvY2spOwo+ID4gKwkJCQkJdmx2X2NhbGNfZHBsbF9wYXJhbXMocmVm Y2xrLCAmY2xvY2spOwo+ID4gIAo+ID4gIAkJCQkJaWYgKCFpbnRlbF9QTExfaXNfdmFsaWQoZGV2 LCBsaW1pdCwKPiA+ICAJCQkJCQkJCSZjbG9jaykpCj4gPiBAQCAtOTQwLDcgKzk1Niw3IEBAIGNo dl9maW5kX2Jlc3RfZHBsbChjb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdCwKPiA+ICAKPiA+ICAJ CQljbG9jay5tMiA9IG0yOwo+ID4gIAo+ID4gLQkJCWNodl9jbG9jayhyZWZjbGssICZjbG9jayk7 Cj4gPiArCQkJY2h2X2NhbGNfZHBsbF9wYXJhbXMocmVmY2xrLCAmY2xvY2spOwo+ID4gIAo+ID4g IAkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKGRldiwgbGltaXQsICZjbG9jaykpCj4gPiAgCQkJ CWNvbnRpbnVlOwo+ID4gQEAgLTc5MjYsMTAgKzc5NDIsNyBAQCBzdGF0aWMgdm9pZCB2bHZfY3J0 Y19jbG9ja19nZXQoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gPiAgCWNsb2NrLnAxID0gKG1k aXYgPj4gRFBJT19QMV9TSElGVCkgJiA3Owo+ID4gIAljbG9jay5wMiA9IChtZGl2ID4+IERQSU9f UDJfU0hJRlQpICYgMHgxZjsKPiA+ICAKPiA+IC0Jdmx2X2Nsb2NrKHJlZmNsaywgJmNsb2NrKTsK PiA+IC0KPiA+IC0JLyogY2xvY2suZG90IGlzIHRoZSBmYXN0IGNsb2NrICovCj4gPiAtCXBpcGVf Y29uZmlnLT5wb3J0X2Nsb2NrID0gY2xvY2suZG90IC8gNTsKPiA+ICsJcGlwZV9jb25maWctPnBv cnRfY2xvY2sgPSB2bHZfY2FsY19kcGxsX3BhcmFtcyhyZWZjbGssICZjbG9jayk7Cj4gPiAgfQo+ ID4gIAo+ID4gIHN0YXRpYyB2b2lkCj4gPiBAQCAtODAyNSwxMCArODAzOCw3IEBAIHN0YXRpYyB2 b2lkIGNodl9jcnRjX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ICAJY2xv Y2sucDEgPSAoY21uX2R3MTMgPj4gRFBJT19DSFZfUDFfRElWX1NISUZUKSAmIDB4NzsKPiA+ICAJ Y2xvY2sucDIgPSAoY21uX2R3MTMgPj4gRFBJT19DSFZfUDJfRElWX1NISUZUKSAmIDB4MWY7Cj4g PiAgCj4gPiAtCWNodl9jbG9jayhyZWZjbGssICZjbG9jayk7Cj4gPiAtCj4gPiAtCS8qIGNsb2Nr LmRvdCBpcyB0aGUgZmFzdCBjbG9jayAqLwo+ID4gLQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9 IGNsb2NrLmRvdCAvIDU7Cj4gPiArCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gY2h2X2NhbGNf ZHBsbF9wYXJhbXMocmVmY2xrLCAmY2xvY2spOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgYm9v bCBpOXh4X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+IEBAIC0x MDQ4MSw2ICsxMDQ5MSw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19jbG9ja19nZXQoc3RydWN0 IGludGVsX2NydGMgKmNydGMsCj4gPiAgCXUzMiBkcGxsID0gcGlwZV9jb25maWctPmRwbGxfaHdf c3RhdGUuZHBsbDsKPiA+ICAJdTMyIGZwOwo+ID4gIAlpbnRlbF9jbG9ja190IGNsb2NrOwo+ID4g KwlpbnQgcG9ydF9jbG9jazsKPiA+ICAJaW50IHJlZmNsayA9IGk5eHhfcGxsX3JlZmNsayhkZXYs IHBpcGVfY29uZmlnKTsKPiA+ICAKPiA+ICAJaWYgKChkcGxsICYgRElTUExBWV9SQVRFX1NFTEVD VF9GUEExKSA9PSAwKQo+ID4gQEAgLTEwNTIxLDkgKzEwNTMyLDkgQEAgc3RhdGljIHZvaWQgaTl4 eF9jcnRjX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ICAJCX0KPiA+ICAK PiA+ICAJCWlmIChJU19QSU5FVklFVyhkZXYpKQo+ID4gLQkJCXBpbmV2aWV3X2Nsb2NrKHJlZmNs aywgJmNsb2NrKTsKPiA+ICsJCQlwb3J0X2Nsb2NrID0gcG52X2NhbGNfZHBsbF9wYXJhbXMocmVm Y2xrLCAmY2xvY2spOwo+ID4gIAkJZWxzZQo+ID4gLQkJCWk5eHhfY2xvY2socmVmY2xrLCAmY2xv Y2spOwo+ID4gKwkJCXBvcnRfY2xvY2sgPSBpOXh4X2NhbGNfZHBsbF9wYXJhbXMocmVmY2xrLCAm Y2xvY2spOwo+ID4gIAl9IGVsc2Ugewo+ID4gIAkJdTMyIGx2ZHMgPSBJU19JODMwKGRldikgPyAw IDogSTkxNV9SRUFEKExWRFMpOwo+ID4gIAkJYm9vbCBpc19sdmRzID0gKHBpcGUgPT0gMSkgJiYg KGx2ZHMgJiBMVkRTX1BPUlRfRU4pOwo+ID4gQEAgLTEwNTQ5LDcgKzEwNTYwLDcgQEAgc3RhdGlj IHZvaWQgaTl4eF9jcnRjX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ICAJ CQkJY2xvY2sucDIgPSAyOwo+ID4gIAkJfQo+ID4gIAo+ID4gLQkJaTl4eF9jbG9jayhyZWZjbGss ICZjbG9jayk7Cj4gPiArCQlwb3J0X2Nsb2NrID0gaTl4eF9jYWxjX2RwbGxfcGFyYW1zKHJlZmNs aywgJmNsb2NrKTsKPiA+ICAJfQo+ID4gIAo+ID4gIAkvKgo+ID4gQEAgLTEwNTU3LDcgKzEwNTY4 LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKPiA+ICAJICogcG9ydF9jbG9jayB0byBjb21wdXRlIGFkanVzdGVkX21vZGUuY3J0Y19j bG9jayBpbiB0aGUKPiA+ICAJICogZW5jb2RlcidzIGdldF9jb25maWcoKSBmdW5jdGlvbi4KPiA+ ICAJICovCj4gPiAtCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gY2xvY2suZG90Owo+ID4gKwlw aXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IHBvcnRfY2xvY2s7Cj4gPiAgfQo+ID4gIAo+ID4gIGlu dCBpbnRlbF9kb3RjbG9ja19jYWxjdWxhdGUoaW50IGxpbmtfZnJlcSwKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gPiBpbmRleCBlMjE3NGZkLi43YTViM2JjIDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtMTEzOCw2ICsxMTM4LDggQEAgaXJvbmxha2VfY2hl Y2tfZW5jb2Rlcl9kb3RjbG9jayhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcsCj4gPiAgCQkJCWludCBkb3RjbG9jayk7Cj4gPiAgYm9vbCBieHRfZmluZF9iZXN0X2Rw bGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIGludCB0YXJnZXRfY2xvY2ss Cj4gPiAgCQkJaW50ZWxfY2xvY2tfdCAqYmVzdF9jbG9jayk7Cj4gPiAraW50IGNodl9jYWxjX2Rw bGxfcGFyYW1zKGludCByZWZjbGssIGludGVsX2Nsb2NrX3QgKnBsbF9jbG9jayk7Cj4gPiArCj4g PiAgYm9vbCBpbnRlbF9jcnRjX2FjdGl2ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ID4gIHZv aWQgaHN3X2VuYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ID4gIHZvaWQgaHN3 X2Rpc2FibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiA+IC0tIAo+ID4gMi4xLjQK PiAKPiAtLSAKPiBWaWxsZSBTeXJqw6Rsw6QKPiBJbnRlbCBPVEMKPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QK PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29m dHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==