From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [PATCH 29/67] drm/i915/cnl: Implement .set_cdclk() for CNL Date: Thu, 6 Apr 2017 12:15:25 -0700 Message-ID: <1491506163-14587-29-git-send-email-rodrigo.vivi@intel.com> References: <1491506163-14587-1-git-send-email-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6BD6F6EA04 for ; Thu, 6 Apr 2017 19:16:03 +0000 (UTC) In-Reply-To: <1491506163-14587-1-git-send-email-rodrigo.vivi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFk ZCBzdXBwb3J0IGZvciBjaGFuZ2luZyB0aGUgY2RjbGsgZnJlcXVlbmN5IG9uIENOTC4gQWdhaW4s IHF1aXRlCnNpbWlsYXIgdG8gQlhULCBidXQgdGhlcmUgYXJlIHNvbWUgYW5ub3lpbmcgZGlmZmVy ZW5jZXMgd2hpY2ggbWVhbnMKdHJ5aW5nIHRvIHNoYXJlIG1vcmUgY29kZSBtaWdodCBub3QgYmUg ZmVhc2libGU6CiogUExMIHJhdGlvIG5vdyBsaXZlcyBpbiB0aGUgUExMIGVuYWJsZSByZWdpc3Rl cgoqIHBjb2RlIGNhbWUgZnJvbSBTS0wsIG5vdCBmcm9tIEJYVAoKV2Ugc3VwcG9ydCB0aHJlZSBj ZGNsayBmcmVxdWVuY2llczogMTY4LDMzNiw1MjggTWh6LiBUaGUgZmlyc3QgdHdvCnVzZSB0aGUg c2FtZSBQTEwgZnJlcXVlbmN5LCB0aGUgbGFzdCBvbmUgdXNlcyBhIGRpZmZlcmVudCBvbmUgbWVh bmluZwp3ZSBvbmNlIGFnYWluIG1heSBuZWVkIHRvIHRvZ2dsZSB0aGUgUExMIG9mZiBhbmQgb24g d2hlbiBjaGFuZ2luZwpjZGNsay4KCnYyOiBSZWJhc2VkIGJ5IFJvZHJpZ28gb24gdG9wIG9mIFZp bGxlJ3MgY2RjbGsgcmV3b3JrLgp2MzogUmVzcGVjdCBvcmRlciBvZiBzZXRfIGJlbGxvdyBnZXRf IChWaWxsZSkKClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZp QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jIHwgMTA1 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAx MDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NkY2xrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jCmluZGV4IGE0ZTJi ZDUuLmJlZTQzOTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xr LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYwpAQCAtMTQ1MCw2ICsx NDUwLDExMSBAQCBzdGF0aWMgdm9pZCBjbmxfZ2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAljZGNsa19zdGF0ZS0+Y2RjbGsgPSBESVZfUk9VTkRfQ0xPU0VTVChj ZGNsa19zdGF0ZS0+dmNvLCBkaXYpOwogfQogCitzdGF0aWMgdm9pZCBjbmxfY2RjbGtfcGxsX2Rp c2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXUzMiB2YWw7CisK Kwl2YWwgPSBJOTE1X1JFQUQoQlhUX0RFX1BMTF9FTkFCTEUpOworCXZhbCAmPSB+QlhUX0RFX1BM TF9QTExfRU5BQkxFOworCUk5MTVfV1JJVEUoQlhUX0RFX1BMTF9FTkFCTEUsIHZhbCk7CisKKwkv KiBUaW1lb3V0IDIwMHVzICovCisJaWYgKHdhaXRfZm9yKChJOTE1X1JFQUQoQlhUX0RFX1BMTF9F TkFCTEUpICYgQlhUX0RFX1BMTF9MT0NLKSA9PSAwLCAxKSkKKwkJRFJNX0VSUk9SKCJ0aW1vdXQg d2FpdGluZyBmb3IgQ0RDTEsgUExMIHVubG9ja1xuIik7CisKKwlkZXZfcHJpdi0+Y2RjbGsuaHcu dmNvID0gMDsKK30KKworc3RhdGljIHZvaWQgY25sX2NkY2xrX3BsbF9lbmFibGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdmNvKQoreworCWludCByYXRpbyA9IERJVl9S T1VORF9DTE9TRVNUKHZjbywgZGV2X3ByaXYtPmNkY2xrLmh3LnJlZik7CisJdTMyIHZhbDsKKwor CXZhbCA9IENOTF9DRENMS19QTExfUkFUSU8ocmF0aW8pOworCUk5MTVfV1JJVEUoQlhUX0RFX1BM TF9FTkFCTEUsIHZhbCk7CisKKwl2YWwgfD0gQlhUX0RFX1BMTF9QTExfRU5BQkxFOworCUk5MTVf V1JJVEUoQlhUX0RFX1BMTF9FTkFCTEUsIHZhbCk7CisKKwkvKiBUaW1lb3V0IDIwMHVzICovCisJ aWYgKHdhaXRfZm9yKChJOTE1X1JFQUQoQlhUX0RFX1BMTF9FTkFCTEUpICYgQlhUX0RFX1BMTF9M T0NLKSAhPSAwLCAxKSkKKwkJRFJNX0VSUk9SKCJ0aW1vdXQgd2FpdGluZyBmb3IgQ0RDTEsgUExM IGxvY2tcbiIpOworCisJZGV2X3ByaXYtPmNkY2xrLmh3LnZjbyA9IHZjbzsKK30KKworc3RhdGlj IHZvaWQgY25sX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJ CQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCit7CisJaW50 IGNkY2xrID0gY2RjbGtfc3RhdGUtPmNkY2xrOworCWludCB2Y28gPSBjZGNsa19zdGF0ZS0+dmNv OworCXUzMiB2YWwsIGRpdmlkZXIsIHBjdV9hY2s7CisJaW50IHJldDsKKworCW11dGV4X2xvY2so JmRldl9wcml2LT5ycHMuaHdfbG9jayk7CisJcmV0ID0gc2tsX3Bjb2RlX3JlcXVlc3QoZGV2X3By aXYsIFNLTF9QQ09ERV9DRENMS19DT05UUk9MLAorCQkJCVNLTF9DRENMS19QUkVQQVJFX0ZPUl9D SEFOR0UsCisJCQkJU0tMX0NEQ0xLX1JFQURZX0ZPUl9DSEFOR0UsCisJCQkJU0tMX0NEQ0xLX1JF QURZX0ZPUl9DSEFOR0UsIDMpOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2Nr KTsKKwlpZiAocmV0KSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIGluZm9ybSBQQ1UgYWJvdXQg Y2RjbGsgY2hhbmdlICglZClcbiIsCisJCQkgIHJldCk7CisJCXJldHVybjsKKwl9CisKKwkvKiBj ZGNsayA9IHZjbyAvIDIgLyBkaXZ7MSwyfSAqLworCXN3aXRjaCAoRElWX1JPVU5EX0NMT1NFU1Qo dmNvLCBjZGNsaykpIHsKKwljYXNlIDQ6CisJCWRpdmlkZXIgPSBCWFRfQ0RDTEtfQ0QyWF9ESVZf U0VMXzI7CisJCWJyZWFrOworCWNhc2UgMjoKKwkJZGl2aWRlciA9IEJYVF9DRENMS19DRDJYX0RJ Vl9TRUxfMTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJV0FSTl9PTihjZGNsayAhPSBkZXZfcHJp di0+Y2RjbGsuaHcucmVmKTsKKwkJV0FSTl9PTih2Y28gIT0gMCk7CisKKwkJZGl2aWRlciA9IEJY VF9DRENMS19DRDJYX0RJVl9TRUxfMTsKKwkJYnJlYWs7CisJfQorCisJc3dpdGNoIChjZGNsaykg eworCWNhc2UgNTI4MDAwOgorCQlwY3VfYWNrID0gMjsKKwkJYnJlYWs7CisJY2FzZSAzMzYwMDA6 CisJCXBjdV9hY2sgPSAxOworCQlicmVhazsKKwljYXNlIDE2ODAwMDoKKwlkZWZhdWx0OgorCQlw Y3VfYWNrID0gMDsKKwkJYnJlYWs7CisJfQorCisJaWYgKGRldl9wcml2LT5jZGNsay5ody52Y28g IT0gMCAmJgorCSAgICBkZXZfcHJpdi0+Y2RjbGsuaHcudmNvICE9IHZjbykKKwkJY25sX2NkY2xr X3BsbF9kaXNhYmxlKGRldl9wcml2KTsKKworCWlmIChkZXZfcHJpdi0+Y2RjbGsuaHcudmNvICE9 IHZjbykKKwkJY25sX2NkY2xrX3BsbF9lbmFibGUoZGV2X3ByaXYsIHZjbyk7CisKKwl2YWwgPSBk aXZpZGVyIHwgc2tsX2NkY2xrX2RlY2ltYWwoY2RjbGspOworCS8qCisJICogRklYTUUgaWYgb25s eSB0aGUgY2QyeCBkaXZpZGVyIG5lZWRzIGNoYW5naW5nLCBpdCBjb3VsZCBiZSBkb25lCisJICog d2l0aG91dCBzaHV0dGluZyBvZmYgdGhlIHBpcGUgKGlmIG9ubHkgb25lIHBpcGUgaXMgYWN0aXZl KS4KKwkgKi8KKwl2YWwgfD0gQlhUX0NEQ0xLX0NEMlhfUElQRV9OT05FOworCUk5MTVfV1JJVEUo Q0RDTEtfQ1RMLCB2YWwpOworCisJLyogaW5mb3JtIFBDVSBvZiB0aGUgY2hhbmdlICovCisJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKKwlzYW5keWJyaWRnZV9wY29kZV93cml0 ZShkZXZfcHJpdiwgU0tMX1BDT0RFX0NEQ0xLX0NPTlRST0wsIHBjdV9hY2spOworCW11dGV4X3Vu bG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKKworCWludGVsX3VwZGF0ZV9jZGNsayhkZXZf cHJpdik7Cit9CisKIC8qKgogICogaW50ZWxfY2RjbGtfc3RhdGVfY29tcGFyZSAtIERldGVybWlu ZSBpZiB0d28gQ0RDTEsgc3RhdGVzIGRpZmZlcgogICogQGE6IGZpcnN0IENEQ0xLIHN0YXRlCi0t IAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==