From mboxrd@z Thu Jan 1 00:00:00 1970 From: Puthikorn Voravootivat Subject: [PATCH v12 1/3] drm/i915: Set PWM divider to match desired frequency in vbt Date: Thu, 22 Jun 2017 12:03:37 -0700 Message-ID: <20170622190339.142671-2-puthik@chromium.org> References: <20170622190339.142671-1-puthik@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-x22a.google.com (mail-pf0-x22a.google.com [IPv6:2607:f8b0:400e:c00::22a]) by gabe.freedesktop.org (Postfix) with ESMTPS id 742AC6E6BC for ; Thu, 22 Jun 2017 19:03:47 +0000 (UTC) Received: by mail-pf0-x22a.google.com with SMTP id c73so12780983pfk.2 for ; Thu, 22 Jun 2017 12:03:47 -0700 (PDT) In-Reply-To: <20170622190339.142671-1-puthik@chromium.org> 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, Dhinakaran Pandiyan , Jani Nikula , Daniel Vetter Cc: Puthikorn Voravootivat , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmVhZCBkZXNpcmVkIFBXTSBmcmVxdWVuY3kgZnJvbSBwYW5lbCB2YnQgYW5kIGNhbGN1bGF0ZSB0 aGUKdmFsdWUgZm9yIGRpdmlkZXIgaW4gRFBDRCBhZGRyZXNzIDB4NzI0IGFuZCAweDcyOCB0byBo YXZlCmFzIG1hbnkgYml0cyBhcyBwb3NzaWJsZSBmb3IgUFdNIGR1dHkgY3lsZSBmb3IgZ3JhbnVs YXJpdHkgb2YKYnJpZ2h0bmVzcyBhZGp1c3RtZW50IHdoaWxlIHRoZSBmcmVxdWVuY3kgZGl2aXNv ciBpcyBzdGlsbAp3aXRoaW4gMjUlIG9mIHRoZSBkZXNpcmVkIHZhbHVlLgoKU2lnbmVkLW9mZi1i eTogUHV0aGlrb3JuIFZvcmF2b290aXZhdCA8cHV0aGlrQGNocm9taXVtLm9yZz4KUmV2aWV3ZWQt Ynk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYyB8IDk4ICsr KysrKysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDkwIGluc2VydGlvbnMo KyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHBfYXV4X2JhY2tsaWdodC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfYXV4 X2JhY2tsaWdodC5jCmluZGV4IDIyOGNhMDZkOWYwYi4uZDI4MzBiYTMxNjJlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jCkBAIC05OCwxMyArOTgs ODcgQEAgaW50ZWxfZHBfYXV4X3NldF9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGUsIHUzMiBsZXYKIAl9CiB9CiAKKy8qCisgKiBTZXQgUFdNIEZy ZXF1ZW5jeSBkaXZpZGVyIHRvIG1hdGNoIGRlc2lyZWQgZnJlcXVlbmN5IGluIHZidC4KKyAqIFRo ZSBQV00gRnJlcXVlbmN5IGlzIGNhbGN1bGF0ZWQgYXMgMjdNaHogLyAoRiB4IFApLgorICogLSBX aGVyZSBGID0gUFdNIEZyZXF1ZW5jeSBQcmUtRGl2aWRlciB2YWx1ZSBwcm9ncmFtbWVkIGJ5IGZp ZWxkIDc6MCBvZiB0aGUKKyAqICAgICAgICAgICAgIEVEUF9CQUNLTElHSFRfRlJFUV9TRVQgcmVn aXN0ZXIgKERQQ0QgQWRkcmVzcyAwMDcyOGgpCisgKiAtIFdoZXJlIFAgPSAyXlBuLCB3aGVyZSBQ biBpcyB0aGUgdmFsdWUgcHJvZ3JhbW1lZCBieSBmaWVsZCA0OjAgb2YgdGhlCisgKiAgICAgICAg ICAgICBFRFBfUFdNR0VOX0JJVF9DT1VOVCByZWdpc3RlciAoRFBDRCBBZGRyZXNzIDAwNzI0aCkK KyAqLworc3RhdGljIGJvb2wgaW50ZWxfZHBfYXV4X3NldF9wd21fZnJlcShzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZjb25uZWN0b3ItPmVuY29kZXItPmJhc2UpOworCWlu dCBmcmVxLCBmeHAsIGZ4cF9taW4sIGZ4cF9tYXgsIGZ4cF9hY3R1YWwsIGYgPSAxOworCXU4IHBu LCBwbl9taW4sIHBuX21heDsKKworCS8qIEZpbmQgZGVzaXJlZCB2YWx1ZSBvZiAoRiB4IFApCisJ ICogTm90ZSB0aGF0LCBpZiBGIHggUCBpcyBvdXQgb2Ygc3VwcG9ydGVkIHJhbmdlLCB0aGUgbWF4 aW11bSB2YWx1ZSBvcgorCSAqIG1pbmltdW0gdmFsdWUgd2lsbCBhcHBsaWVkIGF1dG9tYXRpY2Fs bHkuIFNvIG5vIG5lZWQgdG8gY2hlY2sgdGhhdC4KKwkgKi8KKwlmcmVxID0gZGV2X3ByaXYtPnZi dC5iYWNrbGlnaHQucHdtX2ZyZXFfaHo7CisJRFJNX0RFQlVHX0tNUygiVkJUIGRlZmluZWQgYmFj a2xpZ2h0IGZyZXF1ZW5jeSAldSBIelxuIiwgZnJlcSk7CisJaWYgKCFmcmVxKSB7CisJCURSTV9E RUJVR19LTVMoIlVzZSBwYW5lbCBkZWZhdWx0IGJhY2tsaWdodCBmcmVxdWVuY3lcbiIpOworCQly ZXR1cm4gZmFsc2U7CisJfQorCisJZnhwID0gRElWX1JPVU5EX0NMT1NFU1QoS0h6KERQX0VEUF9C QUNLTElHSFRfRlJFUV9CQVNFX0tIWiksIGZyZXEpOworCisJLyogVXNlIGhpZ2hlc3QgcG9zc2li bGUgdmFsdWUgb2YgUG4gZm9yIG1vcmUgZ3JhbnVsYXJpdHkgb2YgYnJpZ2h0bmVzcworCSAqIGFk anVzdG1lbnQgd2hpbGUgc2F0aWZ5aW5nIHRoZSBjb25kaXRpb25zIGJlbG93LgorCSAqIC0gUG4g aXMgaW4gdGhlIHJhbmdlIG9mIFBuX21pbiBhbmQgUG5fbWF4CisJICogLSBGIGlzIGluIHRoZSBy YW5nZSBvZiAxIGFuZCAyNTUKKwkgKiAtIEZ4UCBpcyB3aXRoaW4gMjUlIG9mIGRlc2lyZWQgdmFs dWUuCisJICogICBOb3RlOiAyNSUgaXMgYXJiaXRyYXJ5IHZhbHVlIGFuZCBtYXkgbmVlZCBzb21l IHR3ZWFrLgorCSAqLworCWlmIChkcm1fZHBfZHBjZF9yZWFkYigmaW50ZWxfZHAtPmF1eCwKKwkJ CSAgICAgICBEUF9FRFBfUFdNR0VOX0JJVF9DT1VOVF9DQVBfTUlOLCAmcG5fbWluKSAhPSAxKSB7 CisJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byByZWFkIHB3bWdlbiBiaXQgY291bnQgY2FwIG1p blxuIik7CisJCXJldHVybiBmYWxzZTsKKwl9CisJaWYgKGRybV9kcF9kcGNkX3JlYWRiKCZpbnRl bF9kcC0+YXV4LAorCQkJICAgICAgIERQX0VEUF9QV01HRU5fQklUX0NPVU5UX0NBUF9NQVgsICZw bl9tYXgpICE9IDEpIHsKKwkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgcHdtZ2VuIGJp dCBjb3VudCBjYXAgbWF4XG4iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwlwbl9taW4gJj0gRFBf RURQX1BXTUdFTl9CSVRfQ09VTlRfTUFTSzsKKwlwbl9tYXggJj0gRFBfRURQX1BXTUdFTl9CSVRf Q09VTlRfTUFTSzsKKworCWZ4cF9taW4gPSBESVZfUk9VTkRfQ0xPU0VTVChmeHAgKiAzLCA0KTsK KwlmeHBfbWF4ID0gRElWX1JPVU5EX0NMT1NFU1QoZnhwICogNSwgNCk7CisJaWYgKGZ4cF9taW4g PCAoMSA8PCBwbl9taW4pIHx8ICgyNTUgPDwgcG5fbWF4KSA8IGZ4cF9tYXgpIHsKKwkJRFJNX0RF QlVHX0tNUygiVkJUIGRlZmluZWQgYmFja2xpZ2h0IGZyZXF1ZW5jeSBvdXQgb2YgcmFuZ2VcbiIp OworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJZm9yIChwbiA9IHBuX21heDsgcG4gPj0gcG5fbWlu OyBwbi0tKSB7CisJCWYgPSBjbGFtcChESVZfUk9VTkRfQ0xPU0VTVChmeHAsIDEgPDwgcG4pLCAx LCAyNTUpOworCQlmeHBfYWN0dWFsID0gZiA8PCBwbjsKKwkJaWYgKGZ4cF9taW4gPD0gZnhwX2Fj dHVhbCAmJiBmeHBfYWN0dWFsIDw9IGZ4cF9tYXgpCisJCQlicmVhazsKKwl9CisKKwlpZiAoZHJt X2RwX2RwY2Rfd3JpdGViKCZpbnRlbF9kcC0+YXV4LAorCQkJICAgICAgIERQX0VEUF9QV01HRU5f QklUX0NPVU5ULCBwbikgPCAwKSB7CisJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byB3cml0ZSBh dXggcHdtZ2VuIGJpdCBjb3VudFxuIik7CisJCXJldHVybiBmYWxzZTsKKwl9CisJaWYgKGRybV9k cF9kcGNkX3dyaXRlYigmaW50ZWxfZHAtPmF1eCwKKwkJCSAgICAgICBEUF9FRFBfQkFDS0xJR0hU X0ZSRVFfU0VULCAodTgpIGYpIDwgMCkgeworCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gd3Jp dGUgYXV4IGJhY2tsaWdodCBmcmVxXG4iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwlyZXR1cm4g dHJ1ZTsKK30KKwogc3RhdGljIHZvaWQgaW50ZWxfZHBfYXV4X2VuYWJsZV9iYWNrbGlnaHQoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJCSAgY29uc3Qgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5l Y3Rvcik7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmY29u bmVjdG9yLT5lbmNvZGVyLT5iYXNlKTsKLQl1aW50OF90IGRwY2RfYnVmID0gMDsKLQl1aW50OF90 IGVkcF9iYWNrbGlnaHRfbW9kZSA9IDA7CisJdWludDhfdCBkcGNkX2J1ZiwgbmV3X2RwY2RfYnVm LCBlZHBfYmFja2xpZ2h0X21vZGU7CiAKIAlpZiAoZHJtX2RwX2RwY2RfcmVhZGIoJmludGVsX2Rw LT5hdXgsCiAJCQlEUF9FRFBfQkFDS0xJR0hUX01PREVfU0VUX1JFR0lTVEVSLCAmZHBjZF9idWYp ICE9IDEpIHsKQEAgLTExMywxOCArMTg3LDE1IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2F1eF9l bmFibGVfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0CiAJ CXJldHVybjsKIAl9CiAKKwluZXdfZHBjZF9idWYgPSBkcGNkX2J1ZjsKIAllZHBfYmFja2xpZ2h0 X21vZGUgPSBkcGNkX2J1ZiAmIERQX0VEUF9CQUNLTElHSFRfQ09OVFJPTF9NT0RFX01BU0s7CiAK IAlzd2l0Y2ggKGVkcF9iYWNrbGlnaHRfbW9kZSkgewogCWNhc2UgRFBfRURQX0JBQ0tMSUdIVF9D T05UUk9MX01PREVfUFdNOgogCWNhc2UgRFBfRURQX0JBQ0tMSUdIVF9DT05UUk9MX01PREVfUFJF U0VUOgogCWNhc2UgRFBfRURQX0JBQ0tMSUdIVF9DT05UUk9MX01PREVfUFJPRFVDVDoKLQkJZHBj ZF9idWYgJj0gfkRQX0VEUF9CQUNLTElHSFRfQ09OVFJPTF9NT0RFX01BU0s7Ci0JCWRwY2RfYnVm IHw9IERQX0VEUF9CQUNLTElHSFRfQ09OVFJPTF9NT0RFX0RQQ0Q7Ci0JCWlmIChkcm1fZHBfZHBj ZF93cml0ZWIoJmludGVsX2RwLT5hdXgsCi0JCQlEUF9FRFBfQkFDS0xJR0hUX01PREVfU0VUX1JF R0lTVEVSLCBkcGNkX2J1ZikgPCAwKSB7Ci0JCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gd3Jp dGUgYXV4IGJhY2tsaWdodCBtb2RlXG4iKTsKLQkJfQorCQluZXdfZHBjZF9idWYgJj0gfkRQX0VE UF9CQUNLTElHSFRfQ09OVFJPTF9NT0RFX01BU0s7CisJCW5ld19kcGNkX2J1ZiB8PSBEUF9FRFBf QkFDS0xJR0hUX0NPTlRST0xfTU9ERV9EUENEOwogCQlicmVhazsKIAogCS8qIERvIG5vdGhpbmcg d2hlbiBpdCBpcyBhbHJlYWR5IERQQ0QgbW9kZSAqLwpAQCAtMTMzLDYgKzIwNCwxNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9kcF9hdXhfZW5hYmxlX2JhY2tsaWdodChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdAogCQlicmVhazsKIAl9CiAKKwlpZiAoaW50ZWxfZHAtPmVkcF9k cGNkWzJdICYgRFBfRURQX0JBQ0tMSUdIVF9GUkVRX0FVWF9TRVRfQ0FQKQorCQlpZiAoaW50ZWxf ZHBfYXV4X3NldF9wd21fZnJlcShjb25uZWN0b3IpKQorCQkJbmV3X2RwY2RfYnVmIHw9IERQX0VE UF9CQUNLTElHSFRfRlJFUV9BVVhfU0VUX0VOQUJMRTsKKworCWlmIChuZXdfZHBjZF9idWYgIT0g ZHBjZF9idWYpIHsKKwkJaWYgKGRybV9kcF9kcGNkX3dyaXRlYigmaW50ZWxfZHAtPmF1eCwKKwkJ CURQX0VEUF9CQUNLTElHSFRfTU9ERV9TRVRfUkVHSVNURVIsIG5ld19kcGNkX2J1ZikgPCAwKSB7 CisJCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gd3JpdGUgYXV4IGJhY2tsaWdodCBtb2RlXG4i KTsKKwkJfQorCX0KKwogCXNldF9hdXhfYmFja2xpZ2h0X2VuYWJsZShpbnRlbF9kcCwgdHJ1ZSk7 CiAJaW50ZWxfZHBfYXV4X3NldF9iYWNrbGlnaHQoY29ubl9zdGF0ZSwgY29ubmVjdG9yLT5wYW5l bC5iYWNrbGlnaHQubGV2ZWwpOwogfQotLSAKMi4xMy4xLjYxMS5nN2UzYjExYWUxLWdvb2cKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=