From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH i-g-t 1/2] lib/kms: Turn the based_edid into a template Date: Fri, 4 Dec 2015 16:08:29 +0200 Message-ID: <1449238110-30732-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 8C6606E172 for ; Fri, 4 Dec 2015 06:08:33 -0800 (PST) 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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClNp Z25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+Ci0tLQogbGliL01ha2VmaWxlLnNvdXJjZXMgICAgfCAgMSArCiBsaWIvaWd0X2VkaWRfdGVt cGxhdGUuaCB8IDc0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxp Yi9pZ3Rfa21zLmMgICAgICAgICAgIHwgOTAgKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCA3 MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvaWd0X2VkaWRfdGVtcGxhdGUu aAoKZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzIGIvbGliL01ha2VmaWxlLnNvdXJj ZXMKaW5kZXggY2IyMGYwMzBjYmVjLi40OTk5ODY4MDUyYjEgMTAwNjQ0Ci0tLSBhL2xpYi9NYWtl ZmlsZS5zb3VyY2VzCisrKyBiL2xpYi9NYWtlZmlsZS5zb3VyY2VzCkBAIC0xMSw2ICsxMSw3IEBA IGxpYmludGVsX3Rvb2xzX2xhX1NPVVJDRVMgPSAJXAogCWlndF9kZWJ1Z2ZzLmgJCVwKIAlpZ3Rf YXV4LmMJCVwKIAlpZ3RfYXV4LmgJCVwKKwlpZ3RfZWRpZF90ZW1wbGF0ZS5oCVwKIAlpZ3RfZ3Qu YwkJXAogCWlndF9ndC5oCQlcCiAJaWd0X3N0YXRzLmMJCVwKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rf ZWRpZF90ZW1wbGF0ZS5oIGIvbGliL2lndF9lZGlkX3RlbXBsYXRlLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kZTQyMWUwODBhODgKLS0tIC9kZXYvbnVsbAorKysg Yi9saWIvaWd0X2VkaWRfdGVtcGxhdGUuaApAQCAtMCwwICsxLDc0IEBACisjZGVmaW5lIEdBTU1B KHgpICgoKHgpICogMTAwKSAtIDEwMCkKKworI2RlZmluZSBNQU5VRkFDVFVSRVJfSUQoYSwgYiwg YykgKGEgLSAnQCcpIDw8IDIgfCAoYiAtICdAJykgPj4gMywgXAorCQkJCSAoYiAtICdAJykgPDwg NSB8IChjIC0gJ0AnKQorCisKKyNkZWZpbmUgYWIoeCwgeSkgKCh4KSAmIDB4ZmYpLCAoKHkpICYg MHhmZiksICgoKHgpICYgMHhmMDApID4+IDQpIHwgKCgoeSkgJiAweGYwMCkgPj4gOCkKKyNkZWZp bmUgb3AoaG8sIGhwLCB2bywgdnApICgoaG8pICYgMHhmZiksICgoaHApICYgMHhmZiksIFwKKwkJ KCgodm8pICYgMHhmKSA8PCA0KSB8ICgodnApICYgMHhmKSwgXAorCQkoKChobykgJiAweDMwMCkg Pj4gMikgfCAoKChocCkgJiAweDMwMCkgPj4gNCkgXAorCQl8ICgoKHZvKSAmIDB4MzApID4+IDIp IHwgKCh2cCkgJiAweDMwID4+IDQpCisKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIEVESURfTkFNRVtF RElEX0xFTkdUSF0gPSB7CisJMHgwMCwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhm ZiwgMHgwMCwgLyogaGVhZGVyICovCisJTUFOVUZBQ1RVUkVSX0lEKCdJJywgJ0cnLCAnVCcpLAor CS8qIHByb2R1Y3QgY29kZSwgc2VyaWFsIG51bWJlciwgd2VlayBhbmQgeWVhciBvZiBtYW51ZmFj dHVyZSAqLworCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs CisJMHgwMSwgMHgwMywgLyogZWRpZCB2ZXJzaW9uICgxLjMpICovCisJLyogYmFzaWMgZGlzcGxh eSBwYXJhbWV0ZXJzICovCisJLyogZGlnaXRhbCBkaXNwbGF5LCBtYXhpbXVtIGhvcml6b250YWwg aW1hZ2Ugc2l6ZSwgbWF4aW11bSB2ZXJ0aWNhbAorCSAqIGltYWdlIHNpemUsIGdhbW1hLCBmZWF0 dXJlczogUkdCIDQ6NDo0LCBuYXRpdmUgcGl4ZWwgZm9ybWF0IGFuZAorCSAqIHJlZnJlc2ggcmF0 ZSBpbiBkZXNjcmlwdG9yIDEgKi8KKwkweDgwLCBIU0laRSwgVlNJWkUsIEdBTU1BKDIuMjApLCAw eDAyLAorCS8qIGNocm9tYXRpY2l0eSBjb29yZGluYXRlcyAqLworCTB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisJLyogZXN0YWJsaXNo ZWQgdGltaW5nczogNjQweDQ4MCA2MEh6LCA4MDB4NjAwIDYwSHosIDEwMjR4NzY4IDYwSHogKi8K KwkweDIxLCAweDA4LCAweDAwLAorCS8qIHN0YW5kYXJkIHRpbWluZ3MgKi8KKwkweGQxLCAweGMw LCAvKiAxOTIweDEwODAgNjBIeiAqLworCTB4ODEsIDB4YzAsIC8qIDEyODB4NzIwIDYwSHogKi8K KwkweDYxLCAweDQwLCAvKiAxMDI0eDc2OCA2MEh6ICovCisJMHg0NSwgMHg0MCwgLyogODAweDYw MCA2MEh6ICovCisJMHgzMSwgMHg0MCwgLyogNjQweDQ4MCA2MEh6ICovCisJMHgwMSwgMHgwMSwg MHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwKKwkvKiBkZXNjcmlwdG9yIDEgKHByZWZlcnJlZCB0aW1p bmcpICovCisJKENMT0NLIC8gMTApICYgMHgwMGZmLCAoKENMT0NLIC8gMTApICYgMHhmZjAwKSA+ PiA4LAorCWFiKEhBQ1RJVkUsIEhCTEFOSyksIGFiKFZBQ1RJVkUsIFZCTEFOSyksCisJb3AoSE9G RlNFVCwgSFBVTFNFLCBWT0ZGU0VULCBWUFVMU0UpLAorCWFiKEhTSVpFICogMTAsIFZTSVpFICog MTApLAorCTB4MDAsIDB4MDAsIDB4MDAsCisJLyogZGVzY3JpcHRvciAyIChtb25pdG9yIHJhbmdl IGxpbWl0cykgKi8KKwkweDAwLCAweDAwLCAweDAwLCAweGZkLCAweDAwLAorCVZGUkVRIC0gMSwg VkZSRVEgKyAxLCAvKiBtaW5pbXVtLCBtYXhpbXVtIHZlcnRpY2FsIGZpZWxkIHJhdGUgKi8KKwko Q0xPQ0sgLyAoSEFDVElWRSArIEhCTEFOSykpIC0gMSwgLyogbWluaW11bSBob3Jpem9udGFsIGxp bmUgcmF0ZSAqLworCShDTE9DSyAvIChIQUNUSVZFICsgSEJMQU5LKSkgKyAxLCAvKiBtYXhpbXVt IGhvcml6b250YWwgbGluZSByYXRlICovCisJKENMT0NLIC8gMTAwMDApICsgMSwgLyogbWF4aW11 bSBwaXhlbCBjbG9jayByYXRlICovCisJMHgwMCwgMHgwYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgy MCwgMHgyMCwgMHgyMCwKKwkvKiBkZXNjcmlwdG9yIDMgKG5hbWUgZGVzY3JpcHRvcikgKi8KKwkw eDAwLCAweDAwLCAweDAwLCAweGZjLCAweDAwLCAgJ0knLCAgJ0cnLCAgJ1QnLCAweDBhLAorCTB4 MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsCisJLyog ZGVzY3JpcHRvciA0ICovCisJMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwKKwkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLAorCS8qIGV4dGVuc2lvbnMsIGNoZWNrc3VtICovCisJMHgwMCwgMHgwMAor fTsKKworI3VuZGVmIEVESURfTkFNRQorI3VuZGVmIFZGUkVRCisjdW5kZWYgQ0xPQ0sKKyN1bmRl ZiBIQUNUSVZFCisjdW5kZWYgSEJMQU5LCisjdW5kZWYgVkFDVElWRQorI3VuZGVmIFZCTEFOSwor I3VuZGVmIEhPRkZTRVQKKyN1bmRlZiBIUFVMU0UKKyN1bmRlZiBWT0ZGU0VUCisjdW5kZWYgVlBV TFNFCisjdW5kZWYgSFNJWkUKKyN1bmRlZiBWU0laRQorI3VuZGVmIEdBTU1BCisjdW5kZWYgTUFO VUZBQ1RVUkVSX0lECisjdW5kZWYgYWIKKyN1bmRlZiBvcApkaWZmIC0tZ2l0IGEvbGliL2lndF9r bXMuYyBiL2xpYi9pZ3Rfa21zLmMKaW5kZXggZmQ0ZjA1ZTgxZjNkLi5kYTQ5ZjU2NzY2NDEgMTAw NjQ0Ci0tLSBhL2xpYi9pZ3Rfa21zLmMKKysrIGIvbGliL2lndF9rbXMuYwpAQCAtNTMsNiArNTMs MjMgQEAKICNkZWZpbmUgTUFYX0NPTk5FQ1RPUlMgMzIKIHN0YXRpYyBjaGFyICpmb3JjZWRfY29u bmVjdG9yc1tNQVhfQ09OTkVDVE9SUyArIDFdOwogCitzdGF0aWMgdm9pZCB1cGRhdGVfZWRpZF9j c3VtKHVuc2lnbmVkIGNoYXIgKmVkaWQpCit7CisJaW50IGksIHN1bSA9IDA7CisJc3RydWN0IHRt ICp0bTsKKwl0aW1lX3QgdDsKKworCS8qIHllYXIgb2YgbWFudWZhY3R1cmUgKi8KKwl0ID0gdGlt ZShOVUxMKTsKKwl0bSA9IGxvY2FsdGltZSgmdCk7CisJZWRpZFsxN10gPSB0bS0+dG1feWVhciAt IDkwOworCisJLyogY2FsY3VsYXRlIGNoZWNrc3VtICovCisJZm9yIChpID0gMDsgaSA8IDEyNzsg aSsrKSB7CisJCXN1bSA9IHN1bSArIGVkaWRbaV07CisJfQorCWVkaWRbMTI3XSA9IDI1NiAtIHN1 bTsKK30KIAogI2RlZmluZSBWRlJFUSA2MAogI2RlZmluZSBDTE9DSyAxNDg1MDAKQEAgLTY4LDYy ICs4NSw4IEBAIHN0YXRpYyBjaGFyICpmb3JjZWRfY29ubmVjdG9yc1tNQVhfQ09OTkVDVE9SUyAr IDFdOwogI2RlZmluZSBIU0laRSA1MgogI2RlZmluZSBWU0laRSAzMAogCi0jZGVmaW5lIEdBTU1B KHgpICh4ICogMTAwKSAtIDEwMAotCi0jZGVmaW5lIE1BTlVGQUNUVVJFUl9JRChhLCBiLCBjKSAo YSAtICdAJykgPDwgMiB8IChiIC0gJ0AnKSA+PiAzLCBcCi0JCQkJIChiIC0gJ0AnKSA8PCA1IHwg KGMgLSAnQCcpCi0KLQotI2RlZmluZSBhYih4LCB5KSAoeCAmIDB4ZmYpLCAoeSAmIDB4ZmYpLCAo KHggJiAweGYwMCkgPj4gNCkgfCAoKHkgJiAweGYwMCkgPj4gOCkKLSNkZWZpbmUgb3AoaG8sIGhw LCB2bywgdnApIChobyAmIDB4ZmYpLCAoaHAgJiAweGZmKSwgXAotCQkJICAgKCh2byAmIDB4Zikg PDwgNCkgfCAodnAgJiAweGYpLCBcCi0JCQkgICAoKGhvICYgMHgzMDApID4+IDIpIHwgKChocCAm IDB4MzAwKSA+PiA0KSBcCi0JCQkgICB8ICgodm8gJiAweDMwKSA+PiAyKSB8ICh2cCAmIDB4MzAg Pj4gNCkKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgYmFzZV9lZGlkW0VESURfTEVOR1RIXSA9IHsK LQkweDAwLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweDAwLCAvKiBoZWFk ZXIgKi8KLQlNQU5VRkFDVFVSRVJfSUQoJ0knLCAnRycsICdUJyksCi0JLyogcHJvZHVjdCBjb2Rl LCBzZXJpYWwgbnVtYmVyLCB3ZWVrIGFuZCB5ZWFyIG9mIG1hbnVmYWN0dXJlICovCi0JMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAxLCAweDAzLCAv KiBlZGlkIHZlcnNpb24gKDEuMykgKi8KLQkvKiBiYXNpYyBkaXNwbGF5IHBhcmFtZXRlcnMgKi8K LQkvKiBkaWdpdGFsIGRpc3BsYXksIG1heGltdW0gaG9yaXpvbnRhbCBpbWFnZSBzaXplLCBtYXhp bXVtIHZlcnRpY2FsCi0JICogaW1hZ2Ugc2l6ZSwgZ2FtbWEsIGZlYXR1cmVzOiBSR0IgNDo0OjQs IG5hdGl2ZSBwaXhlbCBmb3JtYXQgYW5kCi0JICogcmVmcmVzaCByYXRlIGluIGRlc2NyaXB0b3Ig MSAqLwotCTB4ODAsIEhTSVpFLCBWU0laRSwgR0FNTUEoMi4yMCksIDB4MDIsCi0JLyogY2hyb21h dGljaXR5IGNvb3JkaW5hdGVzICovCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkvKiBlc3RhYmxpc2hlZCB0aW1pbmdzOiA2NDB4 NDgwIDYwSHosIDgwMHg2MDAgNjBIeiwgMTAyNHg3NjggNjBIeiAqLwotCTB4MjEsIDB4MDgsIDB4 MDAsCi0JLyogc3RhbmRhcmQgdGltaW5ncyAqLwotCTB4ZDEsIDB4YzAsIC8qIDE5MjB4MTA4MCA2 MEh6ICovCi0JMHg4MSwgMHhjMCwgLyogMTI4MHg3MjAgNjBIeiAqLwotCTB4NjEsIDB4NDAsIC8q IDEwMjR4NzY4IDYwSHogKi8KLQkweDQ1LCAweDQwLCAvKiA4MDB4NjAwIDYwSHogKi8KLQkweDMx LCAweDQwLCAvKiA2NDB4NDgwIDYwSHogKi8KLQkweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAx LCAweDAxLAotCS8qIGRlc2NyaXB0b3IgMSAocHJlZmVycmVkIHRpbWluZykgKi8KLQkoQ0xPQ0sg LyAxMCkgJiAweDAwZmYsICgoQ0xPQ0sgLyAxMCkgJiAweGZmMDApID4+IDgsCi0JYWIoSEFDVElW RSwgSEJMQU5LKSwgYWIoVkFDVElWRSwgVkJMQU5LKSwKLQlvcChIT0ZGU0VULCBIUFVMU0UsIFZP RkZTRVQsIFZQVUxTRSksCi0JYWIoSFNJWkUgKiAxMCwgVlNJWkUgKiAxMCksCi0JMHgwMCwgMHgw MCwgMHgwMCwKLQkvKiBkZXNjcmlwdG9yIDIgKG1vbml0b3IgcmFuZ2UgbGltaXRzKSAqLwotCTB4 MDAsIDB4MDAsIDB4MDAsIDB4ZmQsIDB4MDAsCi0JVkZSRVEgLSAxLCBWRlJFUSArIDEsIC8qIG1p bmltdW0sIG1heGltdW0gdmVydGljYWwgZmllbGQgcmF0ZSAqLwotCShDTE9DSyAvIChIQUNUSVZF ICsgSEJMQU5LKSkgLSAxLCAvKiBtaW5pbXVtIGhvcml6b250YWwgbGluZSByYXRlICovCi0JKENM T0NLIC8gKEhBQ1RJVkUgKyBIQkxBTkspKSArIDEsIC8qIG1heGltdW0gaG9yaXpvbnRhbCBsaW5l IHJhdGUgKi8KLQkoQ0xPQ0sgLyAxMDAwMCkgKyAxLCAvKiBtYXhpbXVtIHBpeGVsIGNsb2NrIHJh dGUgKi8KLQkweDAwLCAweDBhLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLAot CS8qIGRlc2NyaXB0b3IgMyAobmFtZSBkZXNjcmlwdG9yKSAqLwotCTB4MDAsIDB4MDAsIDB4MDAs IDB4ZmMsIDB4MDAsICAnSScsICAnRycsICAnVCcsIDB4MGEsCi0JMHgyMCwgMHgyMCwgMHgyMCwg MHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwKLQkvKiBkZXNjcmlwdG9yIDQgKi8K LQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAot CTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0J LyogZXh0ZW5zaW9ucywgY2hlY2tzdW0gKi8KLQkweDAwLCAweDAwCi19OworI2RlZmluZSBFRElE X05BTUUgYmFzZV9lZGlkCisjaW5jbHVkZSAiaWd0X2VkaWRfdGVtcGxhdGUuaCIKIAogLyoqCiAg KiBpZ3Rfa21zX2dldF9iYXNlX2VkaWQ6CkBAIC0xNDMsMjAgKzEwNiw3IEBAIHN0YXRpYyB1bnNp Z25lZCBjaGFyIGJhc2VfZWRpZFtFRElEX0xFTkdUSF0gPSB7CiAgKi8KIGNvbnN0IHVuc2lnbmVk IGNoYXIqIGlndF9rbXNfZ2V0X2Jhc2VfZWRpZCh2b2lkKQogewotCWludCBpLCBzdW0gPSAwOwot CXN0cnVjdCB0bSAqdG07Ci0JdGltZV90IHQ7Ci0KLQkvKiB5ZWFyIG9mIG1hbnVmYWN0dXJlICov Ci0JdCA9IHRpbWUoTlVMTCk7Ci0JdG0gPSBsb2NhbHRpbWUoJnQpOwotCWJhc2VfZWRpZFsxN10g PSB0bS0+dG1feWVhciAtIDkwOwotCi0JLyogY2FsY3VsYXRlIGNoZWNrc3VtICovCi0JZm9yIChp ID0gMDsgaSA8IDEyNzsgaSsrKSB7Ci0JCXN1bSA9IHN1bSArIGJhc2VfZWRpZFtpXTsKLQl9Ci0J YmFzZV9lZGlkWzEyN10gPSAyNTYgLSBzdW07CisJdXBkYXRlX2VkaWRfY3N1bShiYXNlX2VkaWQp OwogCiAJcmV0dXJuIGJhc2VfZWRpZDsKIH0KLS0gCjIuNC4xMAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK