From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 31/67] drm/i915/cnl: Allow dynamic cdclk changes on CNL Date: Tue, 6 Jun 2017 11:09:25 -0700 Message-ID: References: <1491506163-14587-1-git-send-email-rodrigo.vivi@intel.com> <1491506163-14587-31-git-send-email-rodrigo.vivi@intel.com> <20170605152206.GC28137@ideak-desk.fi.intel.com> <1496680879.20038.7.camel@rdvivi-vienna> <20170605165512.GX12629@intel.com> <1496683431.9821.1.camel@dk-H97M-D3H> <1496771917.9821.17.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pg0-x244.google.com (mail-pg0-x244.google.com [IPv6:2607:f8b0:400e:c05::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 352816E154 for ; Tue, 6 Jun 2017 18:09:26 +0000 (UTC) Received: by mail-pg0-x244.google.com with SMTP id v18so10390104pgb.3 for ; Tue, 06 Jun 2017 11:09:26 -0700 (PDT) In-Reply-To: <1496771917.9821.17.camel@dk-H97M-D3H> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" Cc: "Nikula, Jani" , "intel-gfx@lists.freedesktop.org" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdW4gNiwgMjAxNyBhdCAxMDozOSBBTSwgUGFuZGl5YW4sIERoaW5ha2FyYW4KPGRo aW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPiB3cm90ZToKPiBPbiBUdWUsIDIwMTctMDYtMDYg YXQgMDg6MjQgLTA3MDAsIFJvZHJpZ28gVml2aSB3cm90ZToKPj4gT24gTW9uLCBKdW4gNSwgMjAx NyBhdCAxMDowNCBBTSwgUGFuZGl5YW4sIERoaW5ha2FyYW4KPj4gPGRoaW5ha2FyYW4ucGFuZGl5 YW5AaW50ZWwuY29tPiB3cm90ZToKPj4gPiBPbiBNb24sIDIwMTctMDYtMDUgYXQgMTk6NTUgKzAz MDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPj4gPj4gT24gTW9uLCBKdW4gMDUsIDIwMTcgYXQg MDQ6NDE6MDdQTSArMDAwMCwgVml2aSwgUm9kcmlnbyB3cm90ZToKPj4gPj4gPiBPbiBNb24sIDIw MTctMDYtMDUgYXQgMTg6MjIgKzAzMDAsIEltcmUgRGVhayB3cm90ZToKPj4gPj4gPiA+IE9uIFRo dSwgQXByIDA2LCAyMDE3IGF0IDEyOjE1OjI3UE0gLTA3MDAsIFJvZHJpZ28gVml2aSB3cm90ZToK Pj4gPj4gPiA+ID4gQWxsIHRoZSBsb3cgbGV2ZWwgY2RjbGsgYml0cyBhcmUgcHJlc2VudCwgc28g bGV0J3MgYWRkIHRoZSByZXF1aXJlZAo+PiA+PiA+ID4gPiBob29rcyB0byByZWNvbmZpZ3VyZSBj ZGNsayBvbiB0aGUgZmx5Lgo+PiA+PiA+ID4gPgo+PiA+PiA+ID4gPiB2MjogUmViYXNlIGR1ZSB0 byBjbmxfc2FuaXRpemVfY2RjbGsoKQo+PiA+PiA+ID4gPiB2MzogUmViYXNlZCBieSBSb2RyaWdv IG9uIHRvcCBvZiBWaWxsZSdzIGNkY2xrIHJld29yay4KPj4gPj4gPiA+ID4gdjQ6IFJlYmFzZSBt b3ZpbmcgY25sX2NhbGNfY2RjbGsgdXAgdG8gZm9sbG93IHNhbWUgb3JkZXIKPj4gPj4gPiA+ID4g ICAgIGFzIHByZXZpb3VzIHBsYXRmb3Jtcy4KPj4gPj4gPiA+ID4KPj4gPj4gPiA+ID4gU2lnbmVk LW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K Pj4gPj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50 ZWwuY29tPgo+PiA+PiA+ID4gPiAtLS0KPj4gPj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2NkY2xrLmMgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LQo+PiA+PiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCj4+ID4+ID4gPiA+Cj4+ID4+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jZGNsay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsu Ywo+PiA+PiA+ID4gPiBpbmRleCBmOWJhMWU3Li5hOGMyNTRiIDEwMDY0NAo+PiA+PiA+ID4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jCj4+ID4+ID4gPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKPj4gPj4gPiA+ID4gQEAgLTE0MDAs NiArMTQwMCwxNiBAQCB2b2lkIGJ4dF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+PiA+PiA+ID4gPiAgICAgICAgIGJ4dF9zZXRfY2RjbGsoZGV2X3ByaXYs ICZjZGNsa19zdGF0ZSk7Cj4+ID4+ID4gPiA+ICB9Cj4+ID4+ID4gPiA+Cj4+ID4+ID4gPiA+ICtz dGF0aWMgaW50IGNubF9jYWxjX2NkY2xrKGludCBtYXhfcGl4Y2xrKQo+PiA+PiA+ID4gPiArewo+ PiA+PiA+ID4gPiArICAgICAgIGlmIChtYXhfcGl4Y2xrID4gMzM2MDAwKQo+PiA+PiA+ID4gPiAr ICAgICAgICAgICAgICAgcmV0dXJuIDUyODAwMDsKPj4gPj4gPiA+ID4gKyAgICAgICBlbHNlIGlm IChtYXhfcGl4Y2xrID4gMTY4MDAwKQo+PiA+PiA+ID4gPiArICAgICAgICAgICAgICAgcmV0dXJu IDMzNjAwMDsKPj4gPj4gPiA+ID4gKyAgICAgICBlbHNlCj4+ID4+ID4gPiA+ICsgICAgICAgICAg ICAgICByZXR1cm4gMTY4MDAwOwo+PiA+PiA+ID4gPiArfQo+PiA+PiA+ID4gPiArCj4+ID4+ID4g PiA+ICBzdGF0aWMgdm9pZCBjbmxfY2RjbGtfcGxsX3VwZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4+ID4+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCj4+ID4+ID4gPiA+ICB7 Cj4+ID4+ID4gPiA+IEBAIC0xNjQwLDcgKzE2NTAsNyBAQCB2b2lkIGNubF9pbml0X2NkY2xrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gPj4gPiA+ID4KPj4gPj4gPiA+ID4g ICAgICAgICBjZGNsa19zdGF0ZSA9IGRldl9wcml2LT5jZGNsay5odzsKPj4gPj4gPiA+ID4KPj4g Pj4gPiA+ID4gLSAgICAgICBjZGNsa19zdGF0ZS5jZGNsayA9IDE2ODAwMDsKPj4gPj4gPiA+ID4g KyAgICAgICBjZGNsa19zdGF0ZS5jZGNsayA9IGNubF9jYWxjX2NkY2xrKDApOwo+PiA+PiA+ID4g PiAgICAgICAgIGNkY2xrX3N0YXRlLnZjbyA9IGNubF9jZGNsa19wbGxfdmNvKGRldl9wcml2LCBj ZGNsa19zdGF0ZS5jZGNsayk7Cj4+ID4+ID4gPiA+Cj4+ID4+ID4gPiA+ICAgICAgICAgY25sX3Nl dF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlKTsKPj4gPj4gPiA+ID4gQEAgLTE5MjgsNiAr MTkzOCw0MCBAQCBzdGF0aWMgaW50IGJ4dF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlKQo+PiA+PiA+ID4gPiAgICAgICAgIHJldHVybiAwOwo+PiA+PiA+ ID4gPiAgfQo+PiA+PiA+ID4gPgo+PiA+PiA+ID4gPiArc3RhdGljIGludCBjbmxfbW9kZXNldF9j YWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPj4gPj4gPiA+ID4gK3sK Pj4gPj4gPiA+ID4gKyAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KHN0YXRlLT5kZXYpOwo+PiA+PiA+ID4gPiArICAgICAgIHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKmludGVsX3N0YXRlID0KPj4gPj4gPiA+ID4gKyAgICAgICAgICAgICAgIHRvX2lu dGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4+ID4+ID4gPiA+ICsgICAgICAgaW50IG1heF9waXhj bGsgPSBpbnRlbF9tYXhfcGl4ZWxfcmF0ZShzdGF0ZSk7Cj4+ID4+ID4gPiA+ICsgICAgICAgaW50 IGNkY2xrLCB2Y287Cj4+ID4+ID4gPiA+ICsKPj4gPj4gPiA+ID4gKyAgICAgICBjZGNsayA9IGNu bF9jYWxjX2NkY2xrKG1heF9waXhjbGspOwo+PiA+PiA+ID4gPiArICAgICAgIHZjbyA9IGNubF9j ZGNsa19wbGxfdmNvKGRldl9wcml2LCBjZGNsayk7Cj4+ID4+ID4gPgo+PiA+PiA+ID4gVGhlIHNw ZWMgc2F5cyBub3QgdG8gc2V0IENEQ0xLIHRvIDE2OE1IeiBpZiBhdWRpbyBpcyB1c2VkIHdpdGgg OTZNSHoKPj4gPj4gPiA+IEJDTEssIHdoYXQncyB0aGUgcGxhbiB0byBhZGQgdGhhdCBjb25zdHJh aW50PyBBdCBsZWFzdCB0aGVyZSBjb3VsZCBiZSBhCj4+ID4+ID4gPiBUT0RPOiBoZXJlLgo+PiA+ PiA+Cj4+ID4+ID4gVGhhdCdzIGEgZ29vZCBxdWVzdGlvbi4KPj4gPj4gPiBEbyB3ZSBoYXZlIHdh eXMgdG8ga25vdyB0aGUgYXVkaW8gZnJlcT8KPj4gPj4gPiBPciB3ZSBuZWVkIHRvIGFkZCBmZXcg ZXh0cmEgaG9va3M/Cj4+ID4+ID4gQW5kIGFncmVlLCBhdCBsZWFzdCBhIFRPRE8gb3IgRklYTUUg aGVyZSBpcyBuZWVkZWQgd2hpbGUgd2UgZG9udCBoYXZlIGEKPj4gPj4gPiBjbGVhciBwYXRoLgo+ PiA+Pgo+PiA+PiBiZHdfYWRqdXN0X21pbl9waXBlX3BpeGVsX3JhdGUoKSBqdXN0IGFzc3VtZXMg OTZNSHouIFRoZXJlIHdhcyBzb21lCj4+ID4+IGRpc2N1c3Npb24gb24gdGhlIHRvcGljLCBhbmQg SSBmb3VuZCBzb21lIHJlZ2lzdGVyIHRoYXQgcG9zc2libHkgY291bGQKPj4gPj4gdGVsbCB1cyBz b21ldGhpbmcuIEJ1dCB0aGUgYmVzdCBzb2x1dGlvbiB3b3VsZCBwcm9iYWJseSBpbnZvbHZlIHF1 ZXJ5aW5nCj4+ID4+IGl0IGZyb20gdGhlIGF1ZGlvIGRyaXZlci4KPj4gPj4KPj4gPgo+PiA+IFRo ZSBsYXN0IHRpbWUgSSBjaGVja2VkIHdpdGggdGhlIGF1ZGlvIGZvbGtzLCB0aGUgZHJpdmVyIGRv ZXMgbm90IGNoYW5nZQo+PiA+IHRoZSBCQ0xLIGZyZXEuIGFuZCB0aGUgZGVmYXVsdCBpcyA5NiBN SHouCj4+Cj4+IFNvLCB3aGF0IHNob3VsZCB3ZSBkbyBmb3Igbm93PyBCbG9jayAxNjg/IFJlbW92 ZSAxNjg/Cj4KPiBBcyBWaWxsZSB3cm90ZSwgYmR3X2FkanVzdF9taW5fcGlwZV9waXhlbF9yYXRl KCkgYWxyZWFkeSBkb2VzIHRoYXQuIFlvdQo+IGp1c3QgaGF2ZSB0byBtb2RpZnkgaW50ZWxfbWF4 X3BpeGVsX3JhdGUoKSB0byBpbmNsdWRlIENOTCB0b28uCgphaCEgY29vbCwgdGhhbmtzIQoKPgo+ IC1ESwo+Cj4+Cj4+ID4KPj4gPgo+PiA+PiA+Cj4+ID4+ID4gPgo+PiA+PiA+ID4gPiArCj4+ID4+ ID4gPiA+ICsgICAgICAgaWYgKGNkY2xrID4gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKSB7Cj4+ ID4+ID4gPiA+ICsgICAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJyZXF1ZXN0ZWQgY2RjbGsg KCVkIGtIeikgZXhjZWVkcyBtYXggKCVkIGtIeilcbiIsCj4+ID4+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNkY2xrLCBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpOwo+PiA+ PiA+ID4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ID4+ID4gPiA+ICsgICAg ICAgfQo+PiA+PiA+ID4gPiArCj4+ID4+ID4gPiA+ICsgICAgICAgaW50ZWxfc3RhdGUtPmNkY2xr LmxvZ2ljYWwudmNvID0gdmNvOwo+PiA+PiA+ID4gPiArICAgICAgIGludGVsX3N0YXRlLT5jZGNs ay5sb2dpY2FsLmNkY2xrID0gY2RjbGs7Cj4+ID4+ID4gPiA+ICsKPj4gPj4gPiA+ID4gKyAgICAg ICBpZiAoIWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpIHsKPj4gPj4gPiA+ID4gKyAgICAgICAg ICAgICAgIGNkY2xrID0gY25sX2NhbGNfY2RjbGsoMCk7Cj4+ID4+ID4gPiA+ICsgICAgICAgICAg ICAgICB2Y28gPSBjbmxfY2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwo+PiA+PiA+ID4g PiArCj4+ID4+ID4gPiA+ICsgICAgICAgICAgICAgICBpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFs LnZjbyA9IHZjbzsKPj4gPj4gPiA+ID4gKyAgICAgICAgICAgICAgIGludGVsX3N0YXRlLT5jZGNs ay5hY3R1YWwuY2RjbGsgPSBjZGNsazsKPj4gPj4gPiA+ID4gKyAgICAgICB9IGVsc2Ugewo+PiA+ PiA+ID4gPiArICAgICAgICAgICAgICAgaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbCA9Cj4+ID4+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGludGVsX3N0YXRlLT5jZGNsay5sb2dpY2Fs Owo+PiA+PiA+ID4gPiArICAgICAgIH0KPj4gPj4gPiA+ID4gKwo+PiA+PiA+ID4gPiArICAgICAg IHJldHVybiAwOwo+PiA+PiA+ID4gPiArfQo+PiA+PiA+ID4gPiArCj4+ID4+ID4gPiA+ICBzdGF0 aWMgaW50IGludGVsX2NvbXB1dGVfbWF4X2RvdGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4+ID4+ID4gPiA+ICB7Cj4+ID4+ID4gPiA+ICAgICAgICAgaW50IG1heF9jZGNs a19mcmVxID0gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxOwo+PiA+PiA+ID4gPiBAQCAtMTk1OSw3 ICsyMDAzLDkgQEAgc3RhdGljIGludCBpbnRlbF9jb21wdXRlX21heF9kb3RjbGsoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiA+PiA+ID4gPiAgICovCj4+ID4+ID4gPiA+ICB2 b2lkIGludGVsX3VwZGF0ZV9tYXhfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+PiA+PiA+ID4gPiAgewo+PiA+PiA+ID4gPiAtICAgICAgIGlmIChJU19HRU45X0JDKGRl dl9wcml2KSkgewo+PiA+PiA+ID4gPiArICAgICAgIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2 KSkgewo+PiA+PiA+ID4gPiArICAgICAgICAgICAgICAgZGV2X3ByaXYtPm1heF9jZGNsa19mcmVx ID0gNTI4MDAwOwo+PiA+PiA+ID4gPiArICAgICAgIH0gZWxzZSBpZiAoSVNfR0VOOV9CQyhkZXZf cHJpdikpIHsKPj4gPj4gPiA+ID4gICAgICAgICAgICAgICAgIHUzMiBsaW1pdCA9IEk5MTVfUkVB RChTS0xfREZTTSkgJiBTS0xfREZTTV9DRENMS19MSU1JVF9NQVNLOwo+PiA+PiA+ID4gPiAgICAg ICAgICAgICAgICAgaW50IG1heF9jZGNsaywgdmNvOwo+PiA+PiA+ID4gPgo+PiA+PiA+ID4gPiBA QCAtMjE1OCw2ICsyMjA0LDEwIEBAIHZvaWQgaW50ZWxfaW5pdF9jZGNsa19ob29rcyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ID4+ID4gPiA+ICAgICAgICAgICAgICAgICBk ZXZfcHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsgPSBza2xfc2V0X2NkY2xrOwo+PiA+PiA+ID4gPiAg ICAgICAgICAgICAgICAgZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0KPj4g Pj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgc2tsX21vZGVzZXRfY2FsY19jZGNsazsK Pj4gPj4gPiA+ID4gKyAgICAgICB9IGVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7 Cj4+ID4+ID4gPiA+ICsgICAgICAgICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsg PSBjbmxfc2V0X2NkY2xrOwo+PiA+PiA+ID4gPiArICAgICAgICAgICAgICAgZGV2X3ByaXYtPmRp c3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0KPj4gPj4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgY25sX21vZGVzZXRfY2FsY19jZGNsazsKPj4gPj4gPiA+ID4gICAgICAgICB9Cj4+ID4+ ID4gPiA+Cj4+ID4+ID4gPiA+ICAgICAgICAgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKQo+ PiA+PiA+ID4gPiAtLQo+PiA+PiA+ID4gPiAxLjkuMQo+PiA+PiA+ID4gPgo+PiA+PiA+ID4gPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiA+PiA+ID4g PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+ID4+ID4gPiA+IEludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPj4gPj4gPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngKPj4gPj4gPgo+PiA+Pgo+PiA+Cj4+ID4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gPiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiA+IGh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4+Cj4+ Cj4+Cj4KCgoKLS0gClJvZHJpZ28gVml2aQpCbG9nOiBodHRwOi8vYmxvZy52aXZpLmVuZy5icgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK