From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: [PATCH v3] drm/i915/bios: add support for MIPI sequence block v3 Date: Mon, 11 Jan 2016 15:15:02 +0200 Message-ID: <1452518102-3154-1-git-send-email-jani.nikula@intel.com> References: <1452006075-19826-1-git-send-email-jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id AAC926E4CD for ; Mon, 11 Jan 2016 05:15:13 -0800 (PST) In-Reply-To: <1452006075-19826-1-git-send-email-jani.nikula@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula , intel-gfx@lists.freedesktop.org Cc: Deepak M List-Id: intel-gfx@lists.freedesktop.org VGhlIGNoYW5nZXMgc2luY2UgdGhlIHNlcXVlbmNlIGJsb2NrIHYyIGFyZToKCiogVGhlIHdob2xl IE1JUEkgYmlvcyBkYXRhIGJsb2NrIGhhcyBhIHNlcGFyYXRlIDMyLWJpdCBzaXplIGZpZWxkIHNp bmNlCiAgdjMsIHN0b3JlZCBhZnRlciB0aGUgdmVyc2lvbi4gVGhpcyBmYWNpbGl0YXRlcyBiaWcg c2VxdWVuY2VzLgoKKiBUaGUgc2l6ZSBvZiB0aGUgcGFuZWwgc3BlY2lmaWMgc2VxdWVuY2UgYmxv Y2tzIGhhcyBncm93biB0byAzMgogIGJpdHMuIFRoaXMgZmFjaWxpdGF0ZXMgYmlnIHNlcXVlbmNl cy4KCiogVGhlIGVsZW1lbnRzIHdpdGhpbiBzZXF1ZW5jZXMgbm93IGhhdmUgYW4gOC1iaXQgc2l6 ZSBmaWVsZCBmb2xsb3dpbmcKICB0aGUgb3BlcmF0aW9uIGJ5dGUuIFRoaXMgZmFjaWxpdGF0ZXMg c2tpcHBpbmcgdW5rbm93biBuZXcgb3BlcmF0aW9uCiAgYnl0ZXMsIGkuZS4gZm9yd2FyZCBjb21w YXRpYmlsaXR5LgoKdjIgKG9mIHRoZSBwYXRjaCk6IHVzZSBEUk1fRVJST1IgZm9yIHVua25vd24g b3BlcmF0aW9uIGJ5dGUKdjMgKG9mIHRoZSBwYXRjaCk6IGV2ZW4gbW9yZSBib3VuZHMgY2hlY2tp bmcgKFZpbGxlKQoKU2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMgICAgICAgICAgfCA5 NiArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaV9wYW5lbF92YnQuYyB8ICA5ICsrKwogMiBmaWxlcyBjaGFuZ2VkLCA5NCBpbnNlcnRp b25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMKaW5kZXgg NjkwNDBhNzNjMDlhLi4xNWJhNTJiZDI1MzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Jpb3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMK QEAgLTc1NCwyMSArNzU0LDMzIEBAIHBhcnNlX21pcGlfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIC8qIEZpbmQgdGhlIHNlcXVlbmNlIGJsb2NrIGFuZCBzaXplIGZv ciB0aGUgZ2l2ZW4gcGFuZWwuICovCiBzdGF0aWMgY29uc3QgdTggKgogZmluZF9wYW5lbF9zZXF1 ZW5jZV9ibG9jayhjb25zdCBzdHJ1Y3QgYmRiX21pcGlfc2VxdWVuY2UgKnNlcXVlbmNlLAotCQkJ ICB1MTYgcGFuZWxfaWQsIHUxNiAqc2VxX3NpemUpCisJCQkgIHUxNiBwYW5lbF9pZCwgdTMyICpz ZXFfc2l6ZSkKIHsKIAl1MzIgdG90YWwgPSBnZXRfYmxvY2tzaXplKHNlcXVlbmNlKTsKIAljb25z dCB1OCAqZGF0YSA9ICZzZXF1ZW5jZS0+ZGF0YVswXTsKIAl1OCBjdXJyZW50X2lkOwotCXUxNiBj dXJyZW50X3NpemU7CisJdTMyIGN1cnJlbnRfc2l6ZTsKKwlpbnQgaGVhZGVyX3NpemUgPSBzZXF1 ZW5jZS0+dmVyc2lvbiA+PSAzID8gNSA6IDM7CiAJaW50IGluZGV4ID0gMDsKIAlpbnQgaTsKIAot CWZvciAoaSA9IDA7IGkgPCBNQVhfTUlQSV9DT05GSUdVUkFUSU9OUyAmJiBpbmRleCArIDMgPCB0 b3RhbDsgaSsrKSB7CisJLyogc2tpcCBuZXcgYmxvY2sgc2l6ZSAqLworCWlmIChzZXF1ZW5jZS0+ dmVyc2lvbiA+PSAzKQorCQlkYXRhICs9IDQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgTUFYX01JUElf Q09ORklHVVJBVElPTlMgJiYgaW5kZXggPCB0b3RhbDsgaSsrKSB7CisJCWlmIChpbmRleCArIGhl YWRlcl9zaXplID4gdG90YWwpIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCBzZXF1ZW5jZSBibG9j ayAoaGVhZGVyKVxuIik7CisJCQlyZXR1cm4gTlVMTDsKKwkJfQorCiAJCWN1cnJlbnRfaWQgPSAq KGRhdGEgKyBpbmRleCk7Ci0JCWluZGV4Kys7CisJCWlmIChzZXF1ZW5jZS0+dmVyc2lvbiA+PSAz KQorCQkJY3VycmVudF9zaXplID0gKigoY29uc3QgdTMyICopKGRhdGEgKyBpbmRleCArIDEpKTsK KwkJZWxzZQorCQkJY3VycmVudF9zaXplID0gKigoY29uc3QgdTE2ICopKGRhdGEgKyBpbmRleCAr IDEpKTsKIAotCQljdXJyZW50X3NpemUgPSAqKChjb25zdCB1MTYgKikoZGF0YSArIGluZGV4KSk7 Ci0JCWluZGV4ICs9IDI7CisJCWluZGV4ICs9IGhlYWRlcl9zaXplOwogCiAJCWlmIChpbmRleCAr IGN1cnJlbnRfc2l6ZSA+IHRvdGFsKSB7CiAJCQlEUk1fRVJST1IoIkludmFsaWQgc2VxdWVuY2Ug YmxvY2tcbiIpOwpAQCAtODI2LDEzICs4MzgsNzEgQEAgc3RhdGljIGludCBnb3RvX25leHRfc2Vx dWVuY2UoY29uc3QgdTggKmRhdGEsIGludCBpbmRleCwgaW50IHRvdGFsKQogCXJldHVybiAwOwog fQogCitzdGF0aWMgaW50IGdvdG9fbmV4dF9zZXF1ZW5jZV92Myhjb25zdCB1OCAqZGF0YSwgaW50 IGluZGV4LCBpbnQgdG90YWwpCit7CisJaW50IHNlcV9lbmQ7CisJdTE2IGxlbjsKKworCS8qCisJ ICogQ291bGQgc2tpcCBzZXF1ZW5jZSBiYXNlZCBvbiBTaXplIG9mIFNlcXVlbmNlIGFsb25lLCBi dXQgYWxzbyBkbyBzb21lCisJICogY2hlY2tpbmcgb24gdGhlIHN0cnVjdHVyZS4KKwkgKi8KKwlp ZiAodG90YWwgPCA1KSB7CisJCURSTV9FUlJPUigiVG9vIHNtYWxsIHNlcXVlbmNlIHNpemVcbiIp OworCQlyZXR1cm4gMDsKKwl9CisKKwlzZXFfZW5kID0gaW5kZXggKyAqKChjb25zdCB1MzIgKiko ZGF0YSArIDEpKTsKKwlpZiAoc2VxX2VuZCA+IHRvdGFsKSB7CisJCURSTV9FUlJPUigiSW52YWxp ZCBzZXF1ZW5jZSBzaXplXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJLyogU2tpcCBTZXF1ZW5j ZSBCeXRlIGFuZCBTaXplIG9mIFNlcXVlbmNlLiAqLworCWZvciAoaW5kZXggPSBpbmRleCArIDU7 IGluZGV4IDwgdG90YWw7IGluZGV4ICs9IGxlbikgeworCQl1OCBvcGVyYXRpb25fYnl0ZSA9ICoo ZGF0YSArIGluZGV4KTsKKwkJaW5kZXgrKzsKKworCQlpZiAob3BlcmF0aW9uX2J5dGUgPT0gTUlQ SV9TRVFfRUxFTV9FTkQpIHsKKwkJCWlmIChpbmRleCAhPSBzZXFfZW5kKSB7CisJCQkJRFJNX0VS Uk9SKCJJbnZhbGlkIGVsZW1lbnQgc3RydWN0dXJlXG4iKTsKKwkJCQlyZXR1cm4gMDsKKwkJCX0K KwkJCXJldHVybiBpbmRleDsKKwkJfQorCisJCWxlbiA9ICooZGF0YSArIGluZGV4KTsKKwkJaW5k ZXgrKzsKKworCQkvKgorCQkgKiBGSVhNRTogV291bGQgYmUgbmljZSB0byBjaGVjayBlbGVtZW50 cyBsaWtlIGZvciB2MS92MiBpbgorCQkgKiBnb3RvX25leHRfc2VxdWVuY2UoKSBhYm92ZS4KKwkJ ICovCisJCXN3aXRjaCAob3BlcmF0aW9uX2J5dGUpIHsKKwkJY2FzZSBNSVBJX1NFUV9FTEVNX1NF TkRfUEtUOgorCQljYXNlIE1JUElfU0VRX0VMRU1fREVMQVk6CisJCWNhc2UgTUlQSV9TRVFfRUxF TV9HUElPOgorCQljYXNlIE1JUElfU0VRX0VMRU1fSTJDOgorCQljYXNlIE1JUElfU0VRX0VMRU1f U1BJOgorCQljYXNlIE1JUElfU0VRX0VMRU1fUE1JQzoKKwkJCWJyZWFrOworCQlkZWZhdWx0Ogor CQkJRFJNX0VSUk9SKCJVbmtub3duIG9wZXJhdGlvbiBieXRlICV1XG4iLAorCQkJCSAgb3BlcmF0 aW9uX2J5dGUpOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGlj IHZvaWQKIHBhcnNlX21pcGlfc2VxdWVuY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCQkgICAgY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJkYikKIHsKIAljb25zdCBzdHJ1 Y3QgYmRiX21pcGlfc2VxdWVuY2UgKnNlcXVlbmNlOwogCWNvbnN0IHU4ICpzZXFfZGF0YTsKLQl1 MTYgc2VxX3NpemU7CisJdTMyIHNlcV9zaXplOwogCXU4ICpkYXRhOwogCWludCBpbmRleCA9IDA7 CiAKQEAgLTg0NywxMiArOTE3LDEzIEBAIHBhcnNlX21pcGlfc2VxdWVuY2Uoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogCX0KIAogCS8qIEZhaWwgZ3JhY2VmdWxseSBmb3IgZm9y d2FyZCBpbmNvbXBhdGlibGUgc2VxdWVuY2UgYmxvY2suICovCi0JaWYgKHNlcXVlbmNlLT52ZXJz aW9uID49IDMpIHsKLQkJRFJNX0VSUk9SKCJVbmFibGUgdG8gcGFyc2UgTUlQSSBTZXF1ZW5jZSBC bG9jayB2MytcbiIpOworCWlmIChzZXF1ZW5jZS0+dmVyc2lvbiA+PSA0KSB7CisJCURSTV9FUlJP UigiVW5hYmxlIHRvIHBhcnNlIE1JUEkgU2VxdWVuY2UgQmxvY2sgdiV1XG4iLAorCQkJICBzZXF1 ZW5jZS0+dmVyc2lvbik7CiAJCXJldHVybjsKIAl9CiAKLQlEUk1fREVCVUdfRFJJVkVSKCJGb3Vu ZCBNSVBJIHNlcXVlbmNlIGJsb2NrXG4iKTsKKwlEUk1fREVCVUdfRFJJVkVSKCJGb3VuZCBNSVBJ IHNlcXVlbmNlIGJsb2NrIHYldVxuIiwgc2VxdWVuY2UtPnZlcnNpb24pOwogCiAJc2VxX2RhdGEg PSBmaW5kX3BhbmVsX3NlcXVlbmNlX2Jsb2NrKHNlcXVlbmNlLCBwYW5lbF90eXBlLCAmc2VxX3Np emUpOwogCWlmICghc2VxX2RhdGEpCkBAIC04NzUsNyArOTQ2LDEwIEBAIHBhcnNlX21pcGlfc2Vx dWVuY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiAJCWRldl9wcml2LT52 YnQuZHNpLnNlcXVlbmNlW3NlcV9pZF0gPSBkYXRhICsgaW5kZXg7CiAKLQkJaW5kZXggPSBnb3Rv X25leHRfc2VxdWVuY2UoZGF0YSwgaW5kZXgsIHNlcV9zaXplKTsKKwkJaWYgKHNlcXVlbmNlLT52 ZXJzaW9uID49IDMpCisJCQlpbmRleCA9IGdvdG9fbmV4dF9zZXF1ZW5jZV92MyhkYXRhLCBpbmRl eCwgc2VxX3NpemUpOworCQllbHNlCisJCQlpbmRleCA9IGdvdG9fbmV4dF9zZXF1ZW5jZShkYXRh LCBpbmRleCwgc2VxX3NpemUpOwogCQlpZiAoIWluZGV4KSB7CiAJCQlEUk1fRVJST1IoIkludmFs aWQgc2VxdWVuY2UgJXVcbiIsIHNlcV9pZCk7CiAJCQlnb3RvIGVycjsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYwppbmRleCA1MzAzZDFjNDQ2ZDUuLjdmNjc3NDll YjBlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BhbmVsX3Zi dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYwpAQCAt MzE5LDYgKzMxOSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpzZXF1ZW5jZV9uYW1lKGVudW0gbWlw aV9zZXEgc2VxX2lkKQogCiBzdGF0aWMgdm9pZCBnZW5lcmljX2V4ZWNfc2VxdWVuY2Uoc3RydWN0 IGludGVsX2RzaSAqaW50ZWxfZHNpLCBjb25zdCB1OCAqZGF0YSkKIHsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RzaS0+YmFzZS5iYXNlLmRldik7 CiAJZm5fbWlwaV9lbGVtX2V4ZWMgbWlwaV9lbGVtX2V4ZWM7CiAKIAlpZiAoIWRhdGEpCkBAIC0z MzAsNiArMzMxLDEwIEBAIHN0YXRpYyB2b2lkIGdlbmVyaWNfZXhlY19zZXF1ZW5jZShzdHJ1Y3Qg aW50ZWxfZHNpICppbnRlbF9kc2ksIGNvbnN0IHU4ICpkYXRhKQogCS8qIGdvIHRvIHRoZSBmaXJz dCBlbGVtZW50IG9mIHRoZSBzZXF1ZW5jZSAqLwogCWRhdGErKzsKIAorCS8qIFNraXAgU2l6ZSBv ZiBTZXF1ZW5jZS4gKi8KKwlpZiAoZGV2X3ByaXYtPnZidC5kc2kuc2VxX3ZlcnNpb24gPj0gMykK KwkJZGF0YSArPSA0OworCiAJLyogcGFyc2UgZWFjaCBieXRlIHRpbGwgd2UgcmVhY2ggZW5kIG9m IHNlcXVlbmNlIGJ5dGUgLSAweDAwICovCiAJd2hpbGUgKDEpIHsKIAkJdTggb3BlcmF0aW9uX2J5 dGUgPSAqZGF0YSsrOwpAQCAtMzQxLDYgKzM0NiwxMCBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2V4 ZWNfc2VxdWVuY2Uoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBjb25zdCB1OCAqZGF0YSkK IAkJfQogCQltaXBpX2VsZW1fZXhlYyA9IGV4ZWNfZWxlbVtvcGVyYXRpb25fYnl0ZV07CiAKKwkJ LyogU2tpcCBTaXplIG9mIE9wZXJhdGlvbi4gKi8KKwkJaWYgKGRldl9wcml2LT52YnQuZHNpLnNl cV92ZXJzaW9uID49IDMpCisJCQlkYXRhKys7CisKIAkJLyogZXhlY3V0ZSB0aGUgZWxlbWVudCBz cGVjaWZpYyByb3RpbmVzICovCiAJCWRhdGEgPSBtaXBpX2VsZW1fZXhlYyhpbnRlbF9kc2ksIGRh dGEpOwogCi0tIAoyLjEuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK