From mboxrd@z Thu Jan 1 00:00:00 1970 From: Puthikorn Voravootivat Subject: [PATCH v10 3/3] drm/i915: Set PWM divider to match desired frequency in vbt Date: Fri, 26 May 2017 18:42:09 -0700 Message-ID: <20170527014209.186331-4-puthik@chromium.org> References: <20170527014209.186331-1-puthik@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170527014209.186331-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: dri-devel@lists.freedesktop.org UmVhZCBkZXNpcmVkIFBXTSBmcmVxdWVuY3kgZnJvbSBwYW5lbCB2YnQgYW5kIGNhbGN1bGF0ZSB0 aGUKdmFsdWUgZm9yIGRpdmlkZXIgaW4gRFBDRCBhZGRyZXNzIDB4NzI0IGFuZCAweDcyOCB0byBo YXZlCmFzIG1hbnkgYml0cyBhcyBwb3NzaWJsZSBmb3IgUFdNIGR1dHkgY3lsZSBmb3IgZ3JhbnVs YXJpdHkgb2YKYnJpZ2h0bmVzcyBhZGp1c3RtZW50IHdoaWxlIHRoZSBmcmVxdWVuY3kgZGl2aXNv ciBpcyBzdGlsbAp3aXRoaW4gMjUlIG9mIHRoZSBkZXNpcmVkIHZhbHVlLgoKU2lnbmVkLW9mZi1i eTogUHV0aGlrb3JuIFZvcmF2b290aXZhdCA8cHV0aGlrQGNocm9taXVtLm9yZz4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMgfCA3OSArKysrKysrKysr KysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jCmluZGV4IGY1NWFm NDFjZTNiZC4uYThkNDg1YTI5ZjI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBfYXV4X2JhY2tsaWdodC5jCkBAIC0xMTYsNiArMTE2LDgxIEBAIGludGVsX2RwX2F1eF9zZXRf ZHluYW1pY19iYWNrbGlnaHRfcGVyY2VudChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCX0K IH0KIAorLyoKKyAqIFNldCBQV00gRnJlcXVlbmN5IGRpdmlkZXIgdG8gbWF0Y2ggZGVzaXJlZCBm cmVxdWVuY3kgaW4gdmJ0LgorICogVGhlIFBXTSBGcmVxdWVuY3kgaXMgY2FsY3VsYXRlZCBhcyAy N01oeiAvIChGIHggUCkuCisgKiAtIFdoZXJlIEYgPSBQV00gRnJlcXVlbmN5IFByZS1EaXZpZGVy IHZhbHVlIHByb2dyYW1tZWQgYnkgZmllbGQgNzowIG9mIHRoZQorICogICAgICAgICAgICAgRURQ X0JBQ0tMSUdIVF9GUkVRX1NFVCByZWdpc3RlciAoRFBDRCBBZGRyZXNzIDAwNzI4aCkKKyAqIC0g V2hlcmUgUCA9IDJeUG4sIHdoZXJlIFBuIGlzIHRoZSB2YWx1ZSBwcm9ncmFtbWVkIGJ5IGZpZWxk IDQ6MCBvZiB0aGUKKyAqICAgICAgICAgICAgIEVEUF9QV01HRU5fQklUX0NPVU5UIHJlZ2lzdGVy IChEUENEIEFkZHJlc3MgMDA3MjRoKQorICovCitzdGF0aWMgaW50IGludGVsX2RwX2F1eF9zZXRf cHdtX2ZyZXEoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7 CisJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmY29ubmVjdG9y LT5lbmNvZGVyLT5iYXNlKTsKKwlpbnQgZnJlcSwgZnhwLCBmeHBfbWluLCBmeHBfbWF4LCBmeHBf YWN0dWFsLCBmID0gMTsKKwl1OCBwbiwgcG5fbWluLCBwbl9tYXg7CisKKwkvKiBGaW5kIGRlc2ly ZWQgdmFsdWUgb2YgKEYgeCBQKQorCSAqIE5vdGUgdGhhdCwgaWYgRiB4IFAgaXMgb3V0IG9mIHN1 cHBvcnRlZCByYW5nZSwgdGhlIG1heGltdW0gdmFsdWUgb3IKKwkgKiBtaW5pbXVtIHZhbHVlIHdp bGwgYXBwbGllZCBhdXRvbWF0aWNhbGx5LiBTbyBubyBuZWVkIHRvIGNoZWNrIHRoYXQuCisJICov CisJZnJlcSA9IGRldl9wcml2LT52YnQuYmFja2xpZ2h0LnB3bV9mcmVxX2h6OworCURSTV9ERUJV R19LTVMoIlZCVCBkZWZpbmVkIGJhY2tsaWdodCBmcmVxdWVuY3kgJXUgSHpcbiIsIGZyZXEpOwor CWlmICghZnJlcSkgeworCQlEUk1fREVCVUdfS01TKCJVc2UgcGFuZWwgZGVmYXVsdCBiYWNrbGln aHQgZnJlcXVlbmN5XG4iKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWZ4cCA9IERJVl9ST1VORF9D TE9TRVNUKEtIeihEUF9FRFBfQkFDS0xJR0hUX0ZSRVFfQkFTRV9LSFopLCBmcmVxKTsKKworCS8q IFVzZSBoaWdoZXN0IHBvc3NpYmxlIHZhbHVlIG9mIFBuIGZvciBtb3JlIGdyYW51bGFyaXR5IG9m IGJyaWdodG5lc3MKKwkgKiBhZGp1c3RtZW50IHdoaWxlIHNhdGlmeWluZyB0aGUgY29uZGl0aW9u cyBiZWxvdy4KKwkgKiAtIFBuIGlzIGluIHRoZSByYW5nZSBvZiBQbl9taW4gYW5kIFBuX21heAor CSAqIC0gRiBpcyBpbiB0aGUgcmFuZ2Ugb2YgMSBhbmQgMjU1CisJICogLSBGeFAgaXMgd2l0aGlu IDI1JSBvZiBkZXNpcmVkIHZhbHVlLgorCSAqICAgTm90ZTogMjUlIGlzIGFyYml0cmFyeSB2YWx1 ZSBhbmQgbWF5IG5lZWQgc29tZSB0d2Vhay4KKwkgKi8KKwlpZiAoZHJtX2RwX2RwY2RfcmVhZGIo JmludGVsX2RwLT5hdXgsCisJCQkgICAgICAgRFBfRURQX1BXTUdFTl9CSVRfQ09VTlRfQ0FQX01J TiwgJnBuX21pbikgIT0gMSkgeworCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gcmVhZCBwd21n ZW4gYml0IGNvdW50IGNhcCBtaW5cbiIpOworCQlyZXR1cm4gLUVJTzsKKwl9CisJaWYgKGRybV9k cF9kcGNkX3JlYWRiKCZpbnRlbF9kcC0+YXV4LAorCQkJICAgICAgIERQX0VEUF9QV01HRU5fQklU X0NPVU5UX0NBUF9NQVgsICZwbl9tYXgpICE9IDEpIHsKKwkJRFJNX0RFQlVHX0tNUygiRmFpbGVk IHRvIHJlYWQgcHdtZ2VuIGJpdCBjb3VudCBjYXAgbWF4XG4iKTsKKwkJcmV0dXJuIC1FSU87CisJ fQorCXBuX21pbiAmPSBEUF9FRFBfUFdNR0VOX0JJVF9DT1VOVF9NQVNLOworCXBuX21heCAmPSBE UF9FRFBfUFdNR0VOX0JJVF9DT1VOVF9NQVNLOworCisJZnhwX21pbiA9IERJVl9ST1VORF9DTE9T RVNUKGZ4cCAqIDMsIDQpOworCWZ4cF9tYXggPSBESVZfUk9VTkRfQ0xPU0VTVChmeHAgKiA1LCA0 KTsKKwlpZiAoZnhwX21pbiA8ICgxIDw8IHBuX21pbikgfHwgKDI1NSA8PCBwbl9tYXgpIDwgZnhw X21heCkgeworCQlEUk1fREVCVUdfS01TKCJWQlQgZGVmaW5lZCBiYWNrbGlnaHQgZnJlcXVlbmN5 IG91dCBvZiByYW5nZVxuIik7CisJCXJldHVybiAtRVJBTkdFOworCX0KKworCWZvciAocG4gPSBw bl9tYXg7IHBuID49IHBuX21pbjsgcG4tLSkgeworCQlmID0gY2xhbXAoRElWX1JPVU5EX0NMT1NF U1QoZnhwLCAxIDw8IHBuKSwgMSwgMjU1KTsKKwkJZnhwX2FjdHVhbCA9IGYgPDwgcG47CisJCWlm IChmeHBfbWluIDw9IGZ4cF9hY3R1YWwgJiYgZnhwX2FjdHVhbCA8PSBmeHBfbWF4KQorCQkJYnJl YWs7CisJfQorCisJaWYgKGRybV9kcF9kcGNkX3dyaXRlYigmaW50ZWxfZHAtPmF1eCwKKwkJCSAg ICAgICBEUF9FRFBfUFdNR0VOX0JJVF9DT1VOVCwgcG4pIDwgMCkgeworCQlEUk1fREVCVUdfS01T KCJGYWlsZWQgdG8gd3JpdGUgYXV4IHB3bWdlbiBiaXQgY291bnRcbiIpOworCQlyZXR1cm4gLUVJ TzsKKwl9CisJaWYgKGRybV9kcF9kcGNkX3dyaXRlYigmaW50ZWxfZHAtPmF1eCwKKwkJCSAgICAg ICBEUF9FRFBfQkFDS0xJR0hUX0ZSRVFfU0VULCAodTgpIGYpIDwgMCkgeworCQlEUk1fREVCVUdf S01TKCJGYWlsZWQgdG8gd3JpdGUgYXV4IGJhY2tsaWdodCBmcmVxXG4iKTsKKwkJcmV0dXJuIC1F SU87CisJfQorCXJldHVybiAwOworfQorCiBzdGF0aWMgdm9pZCBpbnRlbF9kcF9hdXhfZW5hYmxl X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmY29ubmVjdG9yLT5lbmNvZGVy LT5iYXNlKTsKQEAgLTE1Miw2ICsyMjcsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfYXV4X2Vu YWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQlEUk1f REVCVUdfS01TKCJFbmFibGUgZHluYW1pYyBicmlnaHRuZXNzLlxuIik7CiAJfQogCisJaWYgKGlu dGVsX2RwLT5lZHBfZHBjZFsyXSAmIERQX0VEUF9CQUNLTElHSFRfRlJFUV9BVVhfU0VUX0NBUCkK KwkJaWYgKCFpbnRlbF9kcF9hdXhfc2V0X3B3bV9mcmVxKGNvbm5lY3RvcikpCisJCQluZXdfZHBj ZF9idWYgfD0gRFBfRURQX0JBQ0tMSUdIVF9GUkVRX0FVWF9TRVRfRU5BQkxFOworCiAJaWYgKG5l d19kcGNkX2J1ZiAhPSBkcGNkX2J1ZikgewogCQlpZiAoZHJtX2RwX2RwY2Rfd3JpdGViKCZpbnRl bF9kcC0+YXV4LAogCQkJRFBfRURQX0JBQ0tMSUdIVF9NT0RFX1NFVF9SRUdJU1RFUiwgbmV3X2Rw Y2RfYnVmKSA8IDApIHsKLS0gCjIuMTMuMC4yMTkuZ2RiNjVhY2M4ODItZ29vZwoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==