From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH v2 11/24] drm/i915/icl: Get DDI clock for ICL based on PLLs. Date: Thu, 24 May 2018 16:12:02 +0300 Message-ID: <1527167522.27355.6.camel@intel.com> References: <20180522002558.29262-12-paulo.r.zanoni@intel.com> <20180523224444.19017-1-paulo.r.zanoni@intel.com> Reply-To: mika.kahola@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id CD1616E644 for ; Thu, 24 May 2018 13:12:05 +0000 (UTC) In-Reply-To: <20180523224444.19017-1-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni , intel-gfx@lists.freedesktop.org Cc: Lucas De Marchi , Dhinakaran Pandiyan , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org UGF0Y2ggbG9vayBvayB0byBtZS4KClJldmlld2VkLWJ5OiBNaWthIEthaG9sYSA8bWlrYS5rYWhv bGFAaW50ZWwuY29tPgoKT24gV2VkLCAyMDE4LTA1LTIzIGF0IDE1OjQ0IC0wNzAwLCBQYXVsbyBa YW5vbmkgd3JvdGU6Cj4gRnJvbTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVs LmNvbT4KPiAKPiBQTExzIGFyZSB0aGUgc291cmNlIGNsb2NrcyBmb3IgdGhlIERESXMgc28gaW4g b3JkZXIKPiB0byBkZXRlcm1pbmUgdGhlIGRkaSBjbG9jayB3ZSBuZWVkIHRvIGNoZWNrIHRoZSBQ TEwKPiBjb25maWd1cmF0aW9uLgo+IAo+IFRoaXMgZ2V0cyBhIGxpdHRsZSB0cmlja3kgZm9yIElD TCBzaW5jZSB0aGVyZSBpcwo+IG5vIHJlZ2lzdGVyIGJpdCB0aGF0IG1hcHMgZGlyZWN0bHkgdG8g dGhlIGxpbmsgY2xvY2suCj4gU28gdGhpcyBwYXRjaCBjcmVhdGVzIGEgc2VwYXJhdGUgZnVuY3Rp b24gaW4gaW50ZWxfZHBsbF9tZ3IuYwo+IHRvIG9idGFpbiB0aGUgd3JpdGUgYXJyYXkgUExMIFBh cmFtcyBhbmQgY29tcGFyZXMgdGhlIHNldAo+IHBsbF9wYXJhbXMgd2l0aCB0aGUgdGFibGUgdG8g Z2V0IHRoZSBjb3JyZXNwb25kaW5nIGxpbmsKPiBjbG9jay4KPiAKPiB2MjoKPiDCoCAtIEZpeCB0 aGUgZW5jb2RlciB0eXBlIGNoZWNrIChESykuCj4gwqAgLSBJbXByb3ZlIG91ciBlcnJvciBjaGVj a2luZywgcmV0dXJuIGEgc2FuZSB2YWx1ZSAoTWlrYSwgUGF1bG8pLgo+IMKgIC0gRml4IHRhYmxl IGVudHJpZXMgKFBhdWxvKS4KPiAKPiBDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50 ZWwuY29tPgo+IENjOiBNaWthIEthaG9sYSA8bWlrYS5rYWhvbGFAaW50ZWwuY29tPgo+IENjOiBQ YXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KPiBDYzogRGhpbmFrYXJhbiBQ YW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTog TWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KPiBbUGF1bG86IGlt cGxlbWVudCB2Ml0KPiBTaWduZWQtb2ZmLWJ5OiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25p QGludGVsLmNvbT4KPiAtLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmjCoMKg wqDCoMKgwqDCoHzCoMKgMyArKwo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmPC oMKgwqDCoMKgwqB8IDI2ICsrKysrKysrKysrKysKPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwbGxfbWdyLmMgfCA3MAo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oIHzCoMKgMiArCj4gwqA0 IGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKPiBpbmRleCBkZTZmY2RiNDk0OGYuLjdjNjM0NjU0MmE1MiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaAo+IEBAIC05MTc0LDEzICs5MTc0LDE2IEBAIGVudW0gc2tsX3Bvd2VyX2dh dGUgewo+IMKgI2RlZmluZcKgwqBEUExMX0NGR0NSMV9RRElWX1JBVElPX01BU0sJKDB4ZmYgPDwg MTApCj4gwqAjZGVmaW5lwqDCoERQTExfQ0ZHQ1IxX1FESVZfUkFUSU9fU0hJRlQJKDEwKQo+IMKg I2RlZmluZcKgwqBEUExMX0NGR0NSMV9RRElWX1JBVElPKHgpCSgoeCkgPDwgMTApCj4gKyNkZWZp bmXCoMKgRFBMTF9DRkdDUjFfUURJVl9NT0RFX1NISUZUCSg5KQo+IMKgI2RlZmluZcKgwqBEUExM X0NGR0NSMV9RRElWX01PREUoeCkJKCh4KSA8PCA5KQo+IMKgI2RlZmluZcKgwqBEUExMX0NGR0NS MV9LRElWX01BU0sJCSg3IDw8IDYpCj4gKyNkZWZpbmXCoMKgRFBMTF9DRkdDUjFfS0RJVl9TSElG VAkJKDYpCj4gwqAjZGVmaW5lwqDCoERQTExfQ0ZHQ1IxX0tESVYoeCkJCSgoeCkgPDwgNikKPiDC oCNkZWZpbmXCoMKgRFBMTF9DRkdDUjFfS0RJVl8xCQkoMSA8PCA2KQo+IMKgI2RlZmluZcKgwqBE UExMX0NGR0NSMV9LRElWXzIJCSgyIDw8IDYpCj4gwqAjZGVmaW5lwqDCoERQTExfQ0ZHQ1IxX0tE SVZfNAkJKDQgPDwgNikKPiDCoCNkZWZpbmXCoMKgRFBMTF9DRkdDUjFfUERJVl9NQVNLCQkoMHhm IDw8IDIpCj4gKyNkZWZpbmXCoMKgRFBMTF9DRkdDUjFfUERJVl9TSElGVAkJKDIpCj4gwqAjZGVm aW5lwqDCoERQTExfQ0ZHQ1IxX1BESVYoeCkJCSgoeCkgPDwgMikKPiDCoCNkZWZpbmXCoMKgRFBM TF9DRkdDUjFfUERJVl8yCQkoMSA8PCAyKQo+IMKgI2RlZmluZcKgwqBEUExMX0NGR0NSMV9QRElW XzMJCSgyIDw8IDIpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4IGY2YjJjMGVj NGU5Ny4uMGUwYjcyNmUzYTQ5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAt MTQyOSw2ICsxNDI5LDMwIEBAIHN0YXRpYyB2b2lkIGRkaV9kb3RjbG9ja19nZXQoc3RydWN0Cj4g aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gwqAJcGlwZV9jb25maWctPmJhc2UuYWRq dXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gZG90Y2xvY2s7Cj4gwqB9Cj4gwqAKPiArc3RhdGljIHZv aWQgaWNsX2RkaV9jbG9ja19nZXQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJ CcKgwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiArewo+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLQo+ ID5iYXNlLmRldik7Cj4gKwllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gKwlpbnQg bGlua19jbG9jayA9IDA7Cj4gKwl1aW50MzJfdCBwbGxfaWQ7Cj4gKwo+ICsJcGxsX2lkID0gaW50 ZWxfZ2V0X3NoYXJlZF9kcGxsX2lkKGRldl9wcml2LCBwaXBlX2NvbmZpZy0KPiA+c2hhcmVkX2Rw bGwpOwo+ICsJaWYgKHBvcnQgPT0gUE9SVF9BIHx8IHBvcnQgPT0gUE9SVF9CKSB7Cj4gKwkJaWYg KGludGVsX2NydGNfaGFzX3R5cGUocGlwZV9jb25maWcsCj4gSU5URUxfT1VUUFVUX0hETUkpKQo+ ICsJCQlsaW5rX2Nsb2NrID0gY25sX2NhbGNfd3JwbGxfbGluayhkZXZfcHJpdiwKPiBwbGxfaWQp Owo+ICsJCWVsc2UKPiArCQkJbGlua19jbG9jayA9Cj4gaWNsX2NhbGNfZHBfY29tYm9fcGxsX2xp bmsoZGV2X3ByaXYsCj4gKwkJCQkJCQkJcGxsXwo+IGlkKTsKPiArCX0gZWxzZSB7Cj4gKwkJLyog RklYTUUgLSBBZGQgZm9yIE1HIFBMTCAqLwo+ICsJCVdBUk4oMSwgIk1HIFBMTCBjbG9ja19nZXQg Y29kZSBub3QgaW1wbGVtZW50ZWQKPiB5ZXRcbiIpOwo+ICsJfQo+ICsKPiArCXBpcGVfY29uZmln LT5wb3J0X2Nsb2NrID0gbGlua19jbG9jazsKPiArCWRkaV9kb3RjbG9ja19nZXQocGlwZV9jb25m aWcpOwo+ICt9Cj4gKwo+IMKgc3RhdGljIHZvaWQgY25sX2RkaV9jbG9ja19nZXQoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gwqAJCQnCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gwqB7Cj4gQEAgLTE2MjIsNiArMTY0Niw4IEBAIHN0YXRp YyB2b2lkIGludGVsX2RkaV9jbG9ja19nZXQoc3RydWN0Cj4gaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiDCoAkJYnh0X2RkaV9jbG9ja19nZXQoZW5jb2RlciwgcGlwZV9jb25maWcpOwo+IMKgCWVs c2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKQo+IMKgCQljbmxfZGRpX2Nsb2NrX2dldChl bmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4gKwllbHNlIGlmIChJU19JQ0VMQUtFKGRldl9wcml2KSkK PiArCQlpY2xfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4gwqB9Cj4gwqAK PiDCoHZvaWQgaW50ZWxfZGRpX3NldF9waXBlX3NldHRpbmdzKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlCj4gKmNydGNfc3RhdGUpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwbGxfbWdyLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxf bWdyLmMKPiBpbmRleCAzODNmYmMxNTExM2QuLjA3YmRiZjI1ODJiYSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+IEBAIC0yNTI1LDYgKzI1MjUsNzYgQEAgc3RhdGlj IGJvb2wgaWNsX2NhbGNfZHBsbF9zdGF0ZShzdHJ1Y3QKPiBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAo+IMKgCXJldHVybiB0cnVlOwo+IMKgfQo+IMKgCj4gK2ludCBpY2xfY2FsY19kcF9j b21ib19wbGxfbGluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCcKg wqDCoMKgwqDCoMKgdWludDMyX3QgcGxsX2lkKQo+ICt7Cj4gKwl1aW50MzJfdCBjZmdjcjAsIGNm Z2NyMTsKPiArCXVpbnQzMl90IHBkaXYsIGtkaXYsIHFkaXZfbW9kZSwgcWRpdl9yYXRpbywgZGNv X2ludGVnZXIsCj4gZGNvX2ZyYWN0aW9uOwo+ICsJY29uc3Qgc3RydWN0IHNrbF93cnBsbF9wYXJh bXMgKnBhcmFtczsKPiArCWludCBpbmRleCwgbl9lbnRyaWVzLCBsaW5rX2Nsb2NrOwo+ICsKPiAr CS8qIFJlYWQgYmFjayB2YWx1ZXMgZnJvbSBEUExMIENGR0NSIHJlZ2lzdGVycyAqLwo+ICsJY2Zn Y3IwID0gSTkxNV9SRUFEKElDTF9EUExMX0NGR0NSMChwbGxfaWQpKTsKPiArCWNmZ2NyMSA9IEk5 MTVfUkVBRChJQ0xfRFBMTF9DRkdDUjEocGxsX2lkKSk7Cj4gKwo+ICsJZGNvX2ludGVnZXIgPSBj ZmdjcjAgJiBEUExMX0NGR0NSMF9EQ09fSU5URUdFUl9NQVNLOwo+ICsJZGNvX2ZyYWN0aW9uID0g KGNmZ2NyMCAmIERQTExfQ0ZHQ1IwX0RDT19GUkFDVElPTl9NQVNLKSA+Pgo+ICsJCURQTExfQ0ZH Q1IwX0RDT19GUkFDVElPTl9TSElGVDsKPiArCXBkaXYgPSAoY2ZnY3IxICYgRFBMTF9DRkdDUjFf UERJVl9NQVNLKSA+Pgo+IERQTExfQ0ZHQ1IxX1BESVZfU0hJRlQ7Cj4gKwlrZGl2ID0gKGNmZ2Ny MSAmIERQTExfQ0ZHQ1IxX0tESVZfTUFTSykgPj4KPiBEUExMX0NGR0NSMV9LRElWX1NISUZUOwo+ ICsJcWRpdl9tb2RlID0gKGNmZ2NyMSAmIERQTExfQ0ZHQ1IxX1FESVZfTU9ERSgxKSkgPj4KPiAr CQlEUExMX0NGR0NSMV9RRElWX01PREVfU0hJRlQ7Cj4gKwlxZGl2X3JhdGlvID0gKGNmZ2NyMSAm IERQTExfQ0ZHQ1IxX1FESVZfUkFUSU9fTUFTSykgPj4KPiArCQlEUExMX0NGR0NSMV9RRElWX1JB VElPX1NISUZUOwo+ICsKPiArCXBhcmFtcyA9IGRldl9wcml2LT5jZGNsay5ody5yZWYgPT0gMjQw MDAgPwo+ICsJCWljbF9kcF9jb21ib19wbGxfMjRNSHpfdmFsdWVzIDoKPiArCQlpY2xfZHBfY29t Ym9fcGxsXzE5XzJNSHpfdmFsdWVzOwo+ICsJbl9lbnRyaWVzID0gQVJSQVlfU0laRShpY2xfZHBf Y29tYm9fcGxsXzI0TUh6X3ZhbHVlcyk7Cj4gKwo+ICsJZm9yIChpbmRleCA9IDA7IGluZGV4IDwg bl9lbnRyaWVzOyBpbmRleCsrKSB7Cj4gKwkJaWYgKGRjb19pbnRlZ2VyID09IHBhcmFtc1tpbmRl eF0uZGNvX2ludGVnZXIgJiYKPiArCQnCoMKgwqDCoGRjb19mcmFjdGlvbiA9PSBwYXJhbXNbaW5k ZXhdLmRjb19mcmFjdGlvbiAmJgo+ICsJCcKgwqDCoMKgcGRpdiA9PSBwYXJhbXNbaW5kZXhdLnBk aXYgJiYKPiArCQnCoMKgwqDCoGtkaXYgPT0gcGFyYW1zW2luZGV4XS5rZGl2ICYmCj4gKwkJwqDC oMKgwqBxZGl2X21vZGUgPT0gcGFyYW1zW2luZGV4XS5xZGl2X21vZGUgJiYKPiArCQnCoMKgwqDC oHFkaXZfcmF0aW8gPT0gcGFyYW1zW2luZGV4XS5xZGl2X3JhdGlvKQo+ICsJCQlicmVhazsKPiAr CX0KPiArCj4gKwkvKiBNYXAgUExMIEluZGV4IHRvIExpbmsgQ2xvY2sgKi8KPiArCXN3aXRjaCAo aW5kZXgpIHsKPiArCWRlZmF1bHQ6Cj4gKwkJTUlTU0lOR19DQVNFKGluZGV4KTsKPiArCWNhc2Ug MDoKPiArCQlsaW5rX2Nsb2NrID0gNTQwMDAwOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSAxOgo+ICsJ CWxpbmtfY2xvY2sgPSAyNzAwMDA7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIDI6Cj4gKwkJbGlua19j bG9jayA9IDE2MjAwMDsKPiArCQlicmVhazsKPiArCWNhc2UgMzoKPiArCQlsaW5rX2Nsb2NrID0g MzI0MDAwOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSA0Ogo+ICsJCWxpbmtfY2xvY2sgPSAyMTYwMDA7 Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIDU6Cj4gKwkJbGlua19jbG9jayA9IDQzMjAwMDsKPiArCQli cmVhazsKPiArCWNhc2UgNjoKPiArCQlsaW5rX2Nsb2NrID0gNjQ4MDAwOwo+ICsJCWJyZWFrOwo+ ICsJY2FzZSA3Ogo+ICsJCWxpbmtfY2xvY2sgPSA4MTAwMDA7Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4g Kwo+ICsJcmV0dXJuIGxpbmtfY2xvY2s7Cj4gK30KPiArCj4gwqBzdGF0aWMgZW51bSBwb3J0IGlj bF9tZ19wbGxfaWRfdG9fcG9ydChlbnVtIGludGVsX2RwbGxfaWQgaWQpCj4gwqB7Cj4gwqAJcmV0 dXJuIGlkIC0gRFBMTF9JRF9JQ0xfTUdQTEwxICsgUE9SVF9DOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcGxsX21nci5oCj4gaW5kZXggN2EwY2Q1NjRhOWVlLi43ODkxNTA1N2QyZTYgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmgKPiBAQCAtMzM2LDUgKzMzNiw3 IEBAIHZvaWQgaW50ZWxfc2hhcmVkX2RwbGxfaW5pdChzdHJ1Y3QgZHJtX2RldmljZQo+ICpkZXYp Owo+IMKgCj4gwqB2b2lkIGludGVsX2RwbGxfZHVtcF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAJCQnCoMKgwqDCoMKgwqBzdHJ1Y3QgaW50ZWxfZHBsbF9o d19zdGF0ZSAqaHdfc3RhdGUpOwo+ICtpbnQgaWNsX2NhbGNfZHBfY29tYm9fcGxsX2xpbmsoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQnCoMKgwqDCoMKgwqDCoHVpbnQz Ml90IHBsbF9pZCk7Cj4gwqAKPiDCoCNlbmRpZiAvKiBfSU5URUxfRFBMTF9NR1JfSF8gKi8KLS0g Ck1pa2EgS2Fob2xhIC0gSW50ZWwgT1RDCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK