From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marius Vlad Subject: [PATCH 1/3] lib/igt_kms: Add support for 4K and audio HDMI EDID injection. Date: Tue, 2 Feb 2016 15:03:36 +0200 Message-ID: <1454418218-10346-1-git-send-email-marius.c.vlad@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 B9CBA6E2BB for ; Tue, 2 Feb 2016 05:02:29 -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 U2lnbmVkLW9mZi1ieTogTWFyaXVzIFZsYWQgPG1hcml1cy5jLnZsYWRAaW50ZWwuY29tPgotLS0K IGxpYi9pZ3Rfa21zLmMgfCAxNzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogbGliL2lndF9rbXMuaCB8ICAgMiArCiAyIGZpbGVzIGNo YW5nZWQsIDE3OCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuYyBiL2xp Yi9pZ3Rfa21zLmMKaW5kZXggOTBjOGRhNy4uNjRhYTVkMSAxMDA2NDQKLS0tIGEvbGliL2lndF9r bXMuYworKysgYi9saWIvaWd0X2ttcy5jCkBAIC04NTgsNiArODU4LDE4MiBAQCB2b2lkIGttc3Rl c3RfZWRpZF9hZGRfM2QoY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCwK IH0KIAogLyoqCisgKiBrbXN0ZXN0X2VkaWRfYWRkXzRrOgorICogQGVkaWQ6IGFuIGV4aXN0aW5n IHZhbGlkIGVkaWQgYmxvY2sKKyAqIEBsZW5ndGg6IGxlbmd0aCBvZiBAZWRpZAorICogQG5ld19l ZGlkX3B0cjogcG9pbnRlciB0byB3aGVyZSB0aGUgbmV3IGVkaWQgd2lsbCBiZSBwbGFjZWQKKyAq IEBuZXdfbGVuZ3RoOiBwb2ludGVyIHRvIHRoZSBzaXplIG9mIHRoZSBuZXcgZWRpZAorICoKKyAq IE1ha2VzIGEgY29weSBvZiBhbiBleGlzdGluZyBlZGlkIGJsb2NrIGFuZCBhZGRzIGFuIGV4dGVu c2lvbiBpbmRpY2F0aW5nCisgKiBhIEhETUkgNEsgbW9kZSBpbiB2c2RiLgorICovCit2b2lkIGtt c3Rlc3RfZWRpZF9hZGRfNGsoY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0 aCwKKwkJCSB1bnNpZ25lZCBjaGFyICpuZXdfZWRpZF9wdHJbXSwgc2l6ZV90ICpuZXdfbGVuZ3Ro KQoreworCXVuc2lnbmVkIGNoYXIgKm5ld19lZGlkOworCWludCBuX2V4dGVuc2lvbnM7CisJY2hh ciBzdW0gPSAwOworCWludCBwb3M7CisJaW50IGk7CisJY2hhciBjZWFfaGVhZGVyX2xlbiA9IDQs IHZpZGVvX2Jsb2NrX2xlbiA9IDYsIHZzZGJfYmxvY2tfbGVuID0gMTI7CisKKwlpZ3RfYXNzZXJ0 KG5ld19lZGlkX3B0ciAhPSBOVUxMICYmIG5ld19sZW5ndGggIT0gTlVMTCk7CisKKwkqbmV3X2xl bmd0aCA9IGxlbmd0aCArIDEyODsKKworCW5ld19lZGlkID0gY2FsbG9jKCpuZXdfbGVuZ3RoLCBz aXplb2YoY2hhcikpOworCW1lbWNweShuZXdfZWRpZCwgZWRpZCwgbGVuZ3RoKTsKKwkqbmV3X2Vk aWRfcHRyID0gbmV3X2VkaWQ7CisKKwluX2V4dGVuc2lvbnMgPSBuZXdfZWRpZFsxMjZdOworCW5f ZXh0ZW5zaW9ucysrOworCW5ld19lZGlkWzEyNl0gPSBuX2V4dGVuc2lvbnM7CisKKwkvKiByZWNv bXB1dGUgY2hlY2tzdW0gKi8KKwlmb3IgKGkgPSAwOyBpIDwgMTI3OyBpKyspIHsKKwkJc3VtID0g c3VtICsgbmV3X2VkaWRbaV07CisJfQorCW5ld19lZGlkWzEyN10gPSAyNTYgLSBzdW07CisKKwkv KiBhZGQgYSBjZWEtODYxIGV4dGVuc2lvbiBibG9jayAqLworCXBvcyA9IGxlbmd0aDsKKwluZXdf ZWRpZFtwb3MrK10gPSAweDI7CisJbmV3X2VkaWRbcG9zKytdID0gMHgzOworCW5ld19lZGlkW3Bv cysrXSA9IGNlYV9oZWFkZXJfbGVuICsgdmlkZW9fYmxvY2tfbGVuICsgdnNkYl9ibG9ja19sZW47 CisJbmV3X2VkaWRbcG9zKytdID0gMHgwOworCisJLyogdmlkZW8gYmxvY2sgKGlkIHwgbGVuZ3Ro KSAqLworCW5ld19lZGlkW3BvcysrXSA9IDIgPDwgNSB8ICh2aWRlb19ibG9ja19sZW4gLSAxKTsK KwluZXdfZWRpZFtwb3MrK10gPSAzMiB8IDB4ODA7IC8qIDEwODBwIEAgMjRIeiB8IChuYXRpdmUp Ki8KKwluZXdfZWRpZFtwb3MrK10gPSA1OyAgICAgICAgIC8qIDEwODBpIEAgNjBIeiAqLworCW5l d19lZGlkW3BvcysrXSA9IDIwOyAgICAgICAgLyogMTA4MGkgQCA1MEh6ICovCisJbmV3X2VkaWRb cG9zKytdID0gNDsgICAgICAgICAvKiA3MjBwIEAgNjBIeiovCisJbmV3X2VkaWRbcG9zKytdID0g MTk7ICAgICAgICAvKiA3MjBwIEAgNTBIeiovCisKKwkvKiB2c2RiIGJsb2NrICggaWQgfCBsZW5n dGggKSAqLworCW5ld19lZGlkW3BvcysrXSA9IDMgPDwgNSB8ICh2c2RiX2Jsb2NrX2xlbiAtIDEp OworCS8qIHJlZ2lzdHJhdGlvbiBpZCAqLworCW5ld19lZGlkW3BvcysrXSA9IDB4MzsKKwluZXdf ZWRpZFtwb3MrK10gPSAweGM7CisJbmV3X2VkaWRbcG9zKytdID0gMHgwOworCS8qIHNvdXJjZSBw aHlzaWNhbCBhZGRyZXNzICovCisJbmV3X2VkaWRbcG9zKytdID0gMHgxMDsKKwluZXdfZWRpZFtw b3MrK10gPSAweDAwOworCS8qIFN1cHBvcnRzX0FJIC4uLiBldGMgKi8KKwluZXdfZWRpZFtwb3Mr K10gPSAweDAwOworCS8qIE1heCBUTURTIENsb2NrICovCisJbmV3X2VkaWRbcG9zKytdID0gMHgw MDsKKwkvKiBMYXRlbmN5IHByZXNlbnQsIEhETUkgVmlkZW8gUHJlc2VudCAqLworCW5ld19lZGlk W3BvcysrXSA9IDB4MjA7CisJLyogSERNSSBWaWRlbyAqLworCW5ld19lZGlkW3BvcysrXSA9IDB4 MDA7IC8qIDNEIHByZXNlbnQgKi8KKworCS8qIEhETUkgTU9ERSBMRU4gLS0gaG93IG1hbnkgZW50 cmllcyAqLworCW5ld19lZGlkW3BvcysrXSA9IDB4MjA7CisJLyogMjE2MHAsIHNwZWNpZmllZCBh cyBzaG9ydCBkZXNjcmlwdG9yICovCisJbmV3X2VkaWRbcG9zKytdID0gMHgwMTsKKworCisJLyog Y2hlY2tzdW0gKi8KKwlzdW0gPSAwOworCWZvciAoaSA9IDA7IGkgPCAxMjc7IGkrKykgeworCQlz dW0gPSBzdW0gKyBuZXdfZWRpZFtsZW5ndGggKyBpXTsKKwl9CisJbmV3X2VkaWRbbGVuZ3RoICsg MTI3XSA9IDI1NiAtIHN1bTsKK30KKworLyoqCisgKiBrbXN0ZXN0X2VkaWRfYWRkX2F1ZGlvOgor ICogQGVkaWQ6IGFuIGV4aXN0aW5nIHZhbGlkIGVkaWQgYmxvY2sKKyAqIEBsZW5ndGg6IGxlbmd0 aCBvZiBAZWRpZAorICogQG5ld19lZGlkX3B0cjogcG9pbnRlciB0byB3aGVyZSB0aGUgbmV3IGVk aWQgd2lsbCBiZSBwbGFjZWQKKyAqIEBuZXdfbGVuZ3RoOiBwb2ludGVyIHRvIHRoZSBzaXplIG9m IHRoZSBuZXcgZWRpZAorICoKKyAqIE1ha2VzIGEgY29weSBvZiBhbiBleGlzdGluZyBlZGlkIGJs b2NrIGFuZCBhZGRzIGFuIGV4dGVuc2lvbiBpbmRpY2F0aW5nCisgKiBiYXNpYyBhdWRpbyBzdXBw b3J0LgorICoKKyAqLwordm9pZCBrbXN0ZXN0X2VkaWRfYWRkX2F1ZGlvKGNvbnN0IHVuc2lnbmVk IGNoYXIgKmVkaWQsIHNpemVfdCBsZW5ndGgsCisJCQkgICAgdW5zaWduZWQgY2hhciAqbmV3X2Vk aWRfcHRyW10sIHNpemVfdCAqbmV3X2xlbmd0aCkKK3sKKwl1bnNpZ25lZCBjaGFyICpuZXdfZWRp ZDsKKwlpbnQgbl9leHRlbnNpb25zOworCWNoYXIgc3VtID0gMDsKKwlpbnQgcG9zOworCWludCBp OworCWNoYXIgY2VhX2hlYWRlcl9sZW4gPSA0LCB2aWRlb19ibG9ja19sZW4gPSA2LCB2c2RiX2Js b2NrX2xlbiA9IDEyOworCWNoYXIgYXVkaW9fYmxvY2tfbGVuID0gNDsKKworCWlndF9hc3NlcnQo bmV3X2VkaWRfcHRyICE9IE5VTEwgJiYgbmV3X2xlbmd0aCAhPSBOVUxMKTsKKworCSpuZXdfbGVu Z3RoID0gbGVuZ3RoICsgMTI4OworCisJbmV3X2VkaWQgPSBjYWxsb2MoKm5ld19sZW5ndGgsIHNp emVvZihjaGFyKSk7CisJbWVtY3B5KG5ld19lZGlkLCBlZGlkLCBsZW5ndGgpOworCSpuZXdfZWRp ZF9wdHIgPSBuZXdfZWRpZDsKKworCW5fZXh0ZW5zaW9ucyA9IG5ld19lZGlkWzEyNl07CisJbl9l eHRlbnNpb25zKys7CisJbmV3X2VkaWRbMTI2XSA9IG5fZXh0ZW5zaW9uczsKKworCS8qIHJlY29t cHV0ZSBjaGVja3N1bSAqLworCWZvciAoaSA9IDA7IGkgPCAxMjc7IGkrKykgeworCQlzdW0gPSBz dW0gKyBuZXdfZWRpZFtpXTsKKwl9CisJbmV3X2VkaWRbMTI3XSA9IDI1NiAtIHN1bTsKKworCS8q IGFkZCBhIGNlYS04NjEgZXh0ZW5zaW9uIGJsb2NrICovCisJcG9zID0gbGVuZ3RoOworCW5ld19l ZGlkW3BvcysrXSA9IDB4MjsKKwluZXdfZWRpZFtwb3MrK10gPSAweDM7CisJbmV3X2VkaWRbcG9z KytdID0gY2VhX2hlYWRlcl9sZW4gKyBhdWRpb19ibG9ja19sZW4gKworCQkJICB2aWRlb19ibG9j a19sZW4gKyB2c2RiX2Jsb2NrX2xlbjsKKwluZXdfZWRpZFtwb3MrK10gPSAoMSA8PCA2KTsgLyog c3VwcG9ydCBiYXNpYyBhdWRpbyAqLworCisJLyogYXVkaW8gYmxvY2ssIHNob3J0IGF1ZGlvIGJs b2NrIGRlc2NyaXB0b3JzICAqLworCW5ld19lZGlkW3BvcysrXSA9ICgxIDw8IDUpIHwgKGF1ZGlv X2Jsb2NrX2xlbiAtIDEpOworCW5ld19lZGlkW3BvcysrXSA9IDB4MDk7IC8qIEF1ZGlvIEZvcm1h dCwgUENNICovCisJbmV3X2VkaWRbcG9zKytdID0gMHgwNzsgLyogRnJlcXVlbmN5LCAzMiwgNDQu MSwgNDhrSHogICovCisJbmV3X2VkaWRbcG9zKytdID0gMHgwNzsgLyogQml0IFJhdGUgMTYsIDIw LCAyNCBiaXQgKi8KKworCS8qIHZpZGVvIGJsb2NrIChpZCB8IGxlbmd0aCkgKi8KKwluZXdfZWRp ZFtwb3MrK10gPSAyIDw8IDUgfCAodmlkZW9fYmxvY2tfbGVuIC0gMSk7CisJbmV3X2VkaWRbcG9z KytdID0gMzIgfCAweDgwOyAvKiAxMDgwcCBAIDI0SHogfCAobmF0aXZlKSovCisJbmV3X2VkaWRb cG9zKytdID0gNTsgICAgICAgICAvKiAxMDgwaSBAIDYwSHogKi8KKwluZXdfZWRpZFtwb3MrK10g PSAyMDsgICAgICAgIC8qIDEwODBpIEAgNTBIeiAqLworCW5ld19lZGlkW3BvcysrXSA9IDQ7ICAg ICAgICAgLyogNzIwcCBAIDYwSHoqLworCW5ld19lZGlkW3BvcysrXSA9IDE5OyAgICAgICAgLyog NzIwcCBAIDUwSHoqLworCisKKwkvKiB2c2RiIGJsb2NrICggaWQgfCBsZW5ndGggKSAtLSBuZWVk IHZzZGIgYXMgd2VsbAorCSAqIG90aGVyd2lzZSB0aGUga2VybmVsIHdpbGwgZmFsbGJhY2sgdG8g bG93ZXIgY2xvY2sgbW9kZXMgKi8KKwluZXdfZWRpZFtwb3MrK10gPSAzIDw8IDUgfCAodnNkYl9i bG9ja19sZW4gLSAxKTsKKwkvKiByZWdpc3RyYXRpb24gaWQgKi8KKwluZXdfZWRpZFtwb3MrK10g PSAweDM7CisJbmV3X2VkaWRbcG9zKytdID0gMHhjOworCW5ld19lZGlkW3BvcysrXSA9IDB4MDsK KwkvKiBzb3VyY2UgcGh5c2ljYWwgYWRkcmVzcyAqLworCW5ld19lZGlkW3BvcysrXSA9IDB4MTA7 CisJbmV3X2VkaWRbcG9zKytdID0gMHgwMDsKKwkvKiBTdXBwb3J0c19BSSAuLi4gZXRjICovCisJ bmV3X2VkaWRbcG9zKytdID0gMHgwMDsKKwkvKiBNYXggVE1EUyBDbG9jayAqLworCW5ld19lZGlk W3BvcysrXSA9IDB4MDA7CisJLyogTGF0ZW5jeSBwcmVzZW50LCBIRE1JIFZpZGVvIFByZXNlbnQg Ki8KKwluZXdfZWRpZFtwb3MrK10gPSAweDIwOworCS8qIEhETUkgVmlkZW8gKi8KKwluZXdfZWRp ZFtwb3MrK10gPSAweDAwOyAvKiAzRCBwcmVzZW50ICovCisKKworCS8qIGNoZWNrc3VtICovCisJ c3VtID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgMTI3OyBpKyspIHsKKwkJc3VtID0gc3VtICsgbmV3 X2VkaWRbbGVuZ3RoICsgaV07CisJfQorCW5ld19lZGlkW2xlbmd0aCArIDEyN10gPSAyNTYgLSBz dW07Cit9CisKKy8qKgogICoga21zdGVzdF91bnNldF9hbGxfY3J0Y3M6CiAgKiBAZHJtX2ZkOiB0 aGUgRFJNIGZkCiAgKiBAcmVzb3VyY2VzOiBsaWJkcm0gcmVzb3VyY2VzIHBvaW50ZXIKZGlmZiAt LWdpdCBhL2xpYi9pZ3Rfa21zLmggYi9saWIvaWd0X2ttcy5oCmluZGV4IDNmN2FkZDUuLjFmNzlm NTUgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21zLmgKKysrIGIvbGliL2lndF9rbXMuaApAQCAtMTMy LDYgKzEzMiw4IEBAIGVudW0ga21zdGVzdF9mb3JjZV9jb25uZWN0b3Jfc3RhdGUgewogYm9vbCBr bXN0ZXN0X2ZvcmNlX2Nvbm5lY3RvcihpbnQgZmQsIGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3Rv ciwKIAkJCSAgICAgZW51bSBrbXN0ZXN0X2ZvcmNlX2Nvbm5lY3Rvcl9zdGF0ZSBzdGF0ZSk7CiB2 b2lkIGttc3Rlc3RfZWRpZF9hZGRfM2QoY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6ZV90 IGxlbmd0aCwgdW5zaWduZWQgY2hhciAqbmV3X2VkaWRfcHRyW10sIHNpemVfdCAqbmV3X2xlbmd0 aCk7Cit2b2lkIGttc3Rlc3RfZWRpZF9hZGRfNGsoY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwg c2l6ZV90IGxlbmd0aCwgdW5zaWduZWQgY2hhciAqbmV3X2VkaWRfcHRyW10sIHNpemVfdCAqbmV3 X2xlbmd0aCk7Cit2b2lkIGttc3Rlc3RfZWRpZF9hZGRfYXVkaW8oY29uc3QgdW5zaWduZWQgY2hh ciAqZWRpZCwgc2l6ZV90IGxlbmd0aCwgdW5zaWduZWQgY2hhciAqbmV3X2VkaWRfcHRyW10sIHNp emVfdCAqbmV3X2xlbmd0aCk7CiB2b2lkIGttc3Rlc3RfZm9yY2VfZWRpZChpbnQgZHJtX2ZkLCBk cm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQljb25zdCB1bnNpZ25lZCBjaGFyICplZGlk LCBzaXplX3QgbGVuZ3RoKTsKIAotLSAKMi43LjAucmMzCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=