From mboxrd@z Thu Jan 1 00:00:00 1970 From: Puthikorn Voravootivat Subject: [PATCH v6 9/9] drm/i915: Set PWM divider to match desired frequency in vbt Date: Tue, 9 May 2017 16:40:52 -0700 Message-ID: <20170509234052.189575-10-puthik@chromium.org> References: <20170509234052.189575-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-x231.google.com (mail-pf0-x231.google.com [IPv6:2607:f8b0:400e:c00::231]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8574889E0D for ; Tue, 9 May 2017 23:41:05 +0000 (UTC) Received: by mail-pf0-x231.google.com with SMTP id e193so7186187pfh.0 for ; Tue, 09 May 2017 16:41:05 -0700 (PDT) In-Reply-To: <20170509234052.189575-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 Cc: Puthikorn Voravootivat , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmVhZCBkZXNpcmVkIFBXTSBmcmVxdWVuY3kgZnJvbSBwYW5lbCB2YnQgYW5kIGNhbGN1bGF0ZSB0 aGUKdmFsdWUgZm9yIGRpdmlkZXIgaW4gRFBDRCBhZGRyZXNzIDB4NzI0IGFuZCAweDcyOCB0byBo YXZlCmFzIG1hbnkgYml0cyBhcyBwb3NzaWJsZSBmb3IgUFdNIGR1dHkgY3lsZSBmb3IgZ3JhbnVs YXJpdHkgb2YKYnJpZ2h0bmVzcyBhZGp1c3RtZW50IHdoaWxlIHRoZSBmcmVxdWVuY3kgaXMgc3Rp bGwgd2l0aGluIDI1JQpvZiB0aGUgZGVzaXJlZCBmcmVxdWVuY3kuCgpTaWduZWQtb2ZmLWJ5OiBQ dXRoaWtvcm4gVm9yYXZvb3RpdmF0IDxwdXRoaWtAY2hyb21pdW0ub3JnPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYyB8IDgxICsrKysrKysrKysrKysr KysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMKaW5kZXggZmMyNmZlYTk0 ZmQ0Li4wNTQ5Y2NiMWJiMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwX2F1eF9iYWNrbGlnaHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9h dXhfYmFja2xpZ2h0LmMKQEAgLTExMywxMiArMTEzLDg2IEBAIGludGVsX2RwX2F1eF9zZXRfZHlu YW1pY19iYWNrbGlnaHRfcGVyY2VudChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCX0KIH0K IAorLyoKKyAqIFNldCBQV00gRnJlcXVlbmN5IGRpdmlkZXIgdG8gbWF0Y2ggZGVzaXJlZCBmcmVx dWVuY3kgaW4gdmJ0LgorICogVGhlIFBXTSBGcmVxdWVuY3kgaXMgY2FsY3VsYXRlZCBhcyAyN01o eiAvIChGIHggUCkuCisgKiAtIFdoZXJlIEYgPSBQV00gRnJlcXVlbmN5IFByZS1EaXZpZGVyIHZh bHVlIHByb2dyYW1tZWQgYnkgZmllbGQgNzowIG9mIHRoZQorICogICAgICAgICAgICAgRURQX0JB Q0tMSUdIVF9GUkVRX1NFVCByZWdpc3RlciAoRFBDRCBBZGRyZXNzIDAwNzI4aCkKKyAqIC0gV2hl cmUgUCA9IDJeUG4sIHdoZXJlIFBuIGlzIHRoZSB2YWx1ZSBwcm9ncmFtbWVkIGJ5IGZpZWxkIDQ6 MCBvZiB0aGUKKyAqICAgICAgICAgICAgIEVEUF9QV01HRU5fQklUX0NPVU5UIHJlZ2lzdGVyIChE UENEIEFkZHJlc3MgMDA3MjRoKQorICovCitzdGF0aWMgdm9pZCBpbnRlbF9kcF9hdXhfc2V0X3B3 bV9mcmVxKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwor CXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ ZW5jb2Rlci0+YmFzZSk7CisJaW50IGZyZXEsIGZ4cCwgZiwgZnhwX21pbiwgZnhwX21heCwgZnhw X2FjdHVhbDsKKwl1OCBwbiwgcG5fbWluLCBwbl9tYXg7CisKKwkvKiBGaW5kIGRlc2lyZWQgdmFs dWUgb2YgKEYgeCBQKQorCSAqIE5vdGUgdGhhdCwgaWYgRiB4IFAgaXMgb3V0IG9mIHN1cHBvcnRl ZCByYW5nZSwgdGhlIG1heGltdW0gdmFsdWUgb3IKKwkgKiBtaW5pbXVtIHZhbHVlIHdpbGwgYXBw bGllZCBhdXRvbWF0aWNhbGx5LiBTbyBubyBuZWVkIHRvIGNoZWNrIHRoYXQuCisJICovCisJZnJl cSA9IGRldl9wcml2LT52YnQuYmFja2xpZ2h0LnB3bV9mcmVxX2h6OworCURSTV9ERUJVR19LTVMo IlZCVCBkZWZpbmVkIGJhY2tsaWdodCBmcmVxdWVuY3kgJXUgSHpcbiIsIGZyZXEpOworCWlmICgh ZnJlcSkgeworCQlEUk1fREVCVUdfS01TKCJVc2UgcGFuZWwgZGVmYXVsdCBiYWNrbGlnaHQgZnJl cXVlbmN5XG4iKTsKKwkJcmV0dXJuOworCX0KKworCWZ4cCA9IERQX0VEUF9CQUNLTElHSFRfRlJF UV9CQVNFIC8gZnJlcTsKKworCS8qIFVzZSBoaWdoZXN0IHBvc3NpYmxlIHZhbHVlIG9mIFBuIGZv ciBtb3JlIGdyYW51bGFyaXR5IG9mIGJyaWdodG5lc3MKKwkgKiBhZGp1c3RtZW50IHdoaWxlIHNh dGlmeWluZyB0aGUgY29uZGl0aW9ucyBiZWxvdy4KKwkgKiAtIFBuIGlzIGluIHRoZSByYW5nZSBv ZiBQbl9taW4gYW5kIFBuX21heAorCSAqIC0gRiBpcyBpbiB0aGUgcmFuZ2Ugb2YgMSBhbmQgMjU1 CisJICogLSBFZmZlY3RpdmUgZnJlcXVlbmN5IGlzIHdpdGhpbiAyNSUgb2YgZGVzaXJlZCBmcmVx dWVuY3kuCisJICovCisJaWYgKGRybV9kcF9kcGNkX3JlYWRiKCZpbnRlbF9kcC0+YXV4LAorCQkJ ICAgICAgIERQX0VEUF9QV01HRU5fQklUX0NPVU5UX0NBUF9NSU4sICZwbl9taW4pICE9IDEpIHsK KwkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgcHdtZ2VuIGJpdCBjb3VudCBjYXAgbWlu XG4iKTsKKwkJcmV0dXJuOworCX0KKwlpZiAoZHJtX2RwX2RwY2RfcmVhZGIoJmludGVsX2RwLT5h dXgsCisJCQkgICAgICAgRFBfRURQX1BXTUdFTl9CSVRfQ09VTlRfQ0FQX01BWCwgJnBuX21heCkg IT0gMSkgeworCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gcmVhZCBwd21nZW4gYml0IGNvdW50 IGNhcCBtYXhcbiIpOworCQlyZXR1cm47CisJfQorCXBuX21pbiAmPSBEUF9FRFBfUFdNR0VOX0JJ VF9DT1VOVF9NQVNLOworCXBuX21heCAmPSBEUF9FRFBfUFdNR0VOX0JJVF9DT1VOVF9NQVNLOwor CisJZnhwX21pbiA9IGZ4cCAqIDMgLyA0OworCWZ4cF9tYXggPSBmeHAgKiA1IC8gNDsKKwlpZiAo ZnhwX21pbiA8ICgxIDw8IHBuX21pbikgfHwgKDI1NSA8PCBwbl9tYXgpIDwgZnhwX21heCkgewor CQlEUk1fREVCVUdfS01TKCJWQlQgZGVmaW5lZCBiYWNrbGlnaHQgZnJlcXVlbmN5IG91dCBvZiBy YW5nZVxuIik7CisJCXJldHVybjsKKwl9CisKKwlmb3IgKHBuID0gcG5fbWF4OyBwbiA+IHBuX21p bjsgcG4tLSkgeworCQlmID0gY2xhbXAoZnhwID4+IHBuLCAxLCAyNTUpOworCQlmeHBfYWN0dWFs ID0gZiA8PCBwbjsKKwkJaWYgKGZ4cF9taW4gPD0gZnhwX2FjdHVhbCAmJiBmeHBfYWN0dWFsIDw9 IGZ4cF9tYXgpCisJCQlicmVhazsKKwl9CisKKwlpZiAoZHJtX2RwX2RwY2Rfd3JpdGViKCZpbnRl bF9kcC0+YXV4LAorCQkJICAgICAgIERQX0VEUF9QV01HRU5fQklUX0NPVU5ULCBwbikgPCAwKSB7 CisJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byB3cml0ZSBhdXggcHdtZ2VuIGJpdCBjb3VudFxu Iik7CisJCXJldHVybjsKKwl9CisJaWYgKGRybV9kcF9kcGNkX3dyaXRlYigmaW50ZWxfZHAtPmF1 eCwKKwkJCSAgICAgICBEUF9FRFBfQkFDS0xJR0hUX0ZSRVFfU0VULCAodTgpIGYpIDwgMCkgewor CQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gd3JpdGUgYXV4IGJhY2tsaWdodCBmcmVxXG4iKTsK KwkJcmV0dXJuOworCX0KK30KKwogc3RhdGljIHZvaWQgaW50ZWxfZHBfYXV4X2VuYWJsZV9iYWNr bGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFz ZSk7CiAJdWludDhfdCBkcGNkX2J1ZiA9IDA7CiAJdWludDhfdCBuZXdfZHBjZF9idWYgPSAwOwog CXVpbnQ4X3QgZWRwX2JhY2tsaWdodF9tb2RlID0gMDsKKwlib29sIGZyZXFfY2FwOwogCiAJaWYg KGRybV9kcF9kcGNkX3JlYWRiKCZpbnRlbF9kcC0+YXV4LAogCQkJRFBfRURQX0JBQ0tMSUdIVF9N T0RFX1NFVF9SRUdJU1RFUiwgJmRwY2RfYnVmKSAhPSAxKSB7CkBAIC0xNTAsNiArMjI0LDEwIEBA IHN0YXRpYyB2b2lkIGludGVsX2RwX2F1eF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKIAkJRFJNX0RFQlVHX0tNUygiRW5hYmxlIGR5bmFtaWMgYnJp Z2h0bmVzcy5cbiIpOwogCX0KIAorCWZyZXFfY2FwID0gaW50ZWxfZHAtPmVkcF9kcGNkWzJdICYg RFBfRURQX0JBQ0tMSUdIVF9GUkVRX0FVWF9TRVRfQ0FQOworCWlmIChmcmVxX2NhcCkKKwkJbmV3 X2RwY2RfYnVmIHw9IERQX0VEUF9CQUNLTElHSFRfRlJFUV9BVVhfU0VUX0VOQUJMRTsKKwogCWlm IChuZXdfZHBjZF9idWYgIT0gZHBjZF9idWYpIHsKIAkJaWYgKGRybV9kcF9kcGNkX3dyaXRlYigm aW50ZWxfZHAtPmF1eCwKIAkJCURQX0VEUF9CQUNLTElHSFRfTU9ERV9TRVRfUkVHSVNURVIsIG5l d19kcGNkX2J1ZikgPCAwKSB7CkBAIC0xNTcsNiArMjM1LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxf ZHBfYXV4X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQogCQl9CiAJfQogCisJaWYgKGZyZXFfY2FwKQorCQlpbnRlbF9kcF9hdXhfc2V0X3B3bV9mcmVx KGNvbm5lY3Rvcik7CisKIAlzZXRfYXV4X2JhY2tsaWdodF9lbmFibGUoaW50ZWxfZHAsIHRydWUp OwogCWludGVsX2RwX2F1eF9zZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgY29ubmVjdG9yLT5wYW5l bC5iYWNrbGlnaHQubGV2ZWwpOwogfQotLSAKMi4xMy4wLnJjMi4yOTEuZzU3MjY3ZjIyNzctZ29v ZwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==