From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: [PATCH v2] drm/i915/bios: add support for MIPI sequence block v3 Date: Tue, 5 Jan 2016 17:01:15 +0200 Message-ID: <1452006075-19826-1-git-send-email-jani.nikula@intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 9A2D76E1C3 for ; Tue, 5 Jan 2016 07:01:33 -0800 (PST) In-Reply-To: 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 b3BlcmF0aW9uIGJ5dGUKClNpZ25lZC1vZmYtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBp bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jICAgICAgICAg IHwgODQgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2lfcGFuZWxfdmJ0LmMgfCAgOSArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDg0IGlu c2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYmlvcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jCmlu ZGV4IDY5MDQwYTczYzA5YS4uNmMwOWI1NjQzOTQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9iaW9zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlv cy5jCkBAIC03NTQsMjEgKzc1NCwzMCBAQCBwYXJzZV9taXBpX2NvbmZpZyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAvKiBGaW5kIHRoZSBzZXF1ZW5jZSBibG9jayBhbmQgc2l6 ZSBmb3IgdGhlIGdpdmVuIHBhbmVsLiAqLwogc3RhdGljIGNvbnN0IHU4ICoKIGZpbmRfcGFuZWxf c2VxdWVuY2VfYmxvY2soY29uc3Qgc3RydWN0IGJkYl9taXBpX3NlcXVlbmNlICpzZXF1ZW5jZSwK LQkJCSAgdTE2IHBhbmVsX2lkLCB1MTYgKnNlcV9zaXplKQorCQkJICB1MTYgcGFuZWxfaWQsIHUz MiAqc2VxX3NpemUpCiB7CiAJdTMyIHRvdGFsID0gZ2V0X2Jsb2Nrc2l6ZShzZXF1ZW5jZSk7CiAJ Y29uc3QgdTggKmRhdGEgPSAmc2VxdWVuY2UtPmRhdGFbMF07CiAJdTggY3VycmVudF9pZDsKLQl1 MTYgY3VycmVudF9zaXplOworCXUzMiBjdXJyZW50X3NpemU7CiAJaW50IGluZGV4ID0gMDsKIAlp bnQgaTsKIAorCS8qIHNraXAgbmV3IGJsb2NrIHNpemUgKi8KKwlpZiAoc2VxdWVuY2UtPnZlcnNp b24gPj0gMykKKwkJZGF0YSArPSA0OworCiAJZm9yIChpID0gMDsgaSA8IE1BWF9NSVBJX0NPTkZJ R1VSQVRJT05TICYmIGluZGV4ICsgMyA8IHRvdGFsOyBpKyspIHsKIAkJY3VycmVudF9pZCA9ICoo ZGF0YSArIGluZGV4KTsKIAkJaW5kZXgrKzsKIAotCQljdXJyZW50X3NpemUgPSAqKChjb25zdCB1 MTYgKikoZGF0YSArIGluZGV4KSk7Ci0JCWluZGV4ICs9IDI7CisJCWlmIChzZXF1ZW5jZS0+dmVy c2lvbiA+PSAzKSB7CisJCQljdXJyZW50X3NpemUgPSAqKChjb25zdCB1MzIgKikoZGF0YSArIGlu ZGV4KSk7CisJCQlpbmRleCArPSA0OworCQl9IGVsc2UgeworCQkJY3VycmVudF9zaXplID0gKigo Y29uc3QgdTE2ICopKGRhdGEgKyBpbmRleCkpOworCQkJaW5kZXggKz0gMjsKKwkJfQogCiAJCWlm IChpbmRleCArIGN1cnJlbnRfc2l6ZSA+IHRvdGFsKSB7CiAJCQlEUk1fRVJST1IoIkludmFsaWQg c2VxdWVuY2UgYmxvY2tcbiIpOwpAQCAtODI2LDEzICs4MzUsNjYgQEAgc3RhdGljIGludCBnb3Rv X25leHRfc2VxdWVuY2UoY29uc3QgdTggKmRhdGEsIGludCBpbmRleCwgaW50IHRvdGFsKQogCXJl dHVybiAwOwogfQogCitzdGF0aWMgaW50IGdvdG9fbmV4dF9zZXF1ZW5jZV92Myhjb25zdCB1OCAq ZGF0YSwgaW50IGluZGV4LCBpbnQgdG90YWwpCit7CisJaW50IHNlcV9lbmQ7CisJdTE2IGxlbjsK KworCS8qCisJICogQ291bGQgc2tpcCBzZXF1ZW5jZSBiYXNlZCBvbiBTaXplIG9mIFNlcXVlbmNl IGFsb25lLCBidXQgYWxzbyBkbyBzb21lCisJICogY2hlY2tpbmcgb24gdGhlIHN0cnVjdHVyZS4K KwkgKi8KKwlzZXFfZW5kID0gaW5kZXggKyAqKChjb25zdCB1MzIgKikoZGF0YSArIDEpKTsKKwlp ZiAoc2VxX2VuZCA+IHRvdGFsKSB7CisJCURSTV9FUlJPUigiSW52YWxpZCBzZXF1ZW5jZSBzaXpl XG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJLyogU2tpcCBTZXF1ZW5jZSBCeXRlIGFuZCBTaXpl IG9mIFNlcXVlbmNlLiAqLworCWZvciAoaW5kZXggPSBpbmRleCArIDU7IGluZGV4IDwgdG90YWw7 IGluZGV4ICs9IGxlbikgeworCQl1OCBvcGVyYXRpb25fYnl0ZSA9ICooZGF0YSArIGluZGV4KTsK KwkJaW5kZXgrKzsKKworCQlpZiAob3BlcmF0aW9uX2J5dGUgPT0gTUlQSV9TRVFfRUxFTV9FTkQp IHsKKwkJCWlmIChpbmRleCAhPSBzZXFfZW5kKSB7CisJCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGVs ZW1lbnQgc3RydWN0dXJlXG4iKTsKKwkJCQlyZXR1cm4gMDsKKwkJCX0KKwkJCXJldHVybiBpbmRl eDsKKwkJfQorCisJCWxlbiA9ICooZGF0YSArIGluZGV4KTsKKwkJaW5kZXgrKzsKKworCQkvKgor CQkgKiBGSVhNRTogV291bGQgYmUgbmljZSB0byBjaGVjayBlbGVtZW50cyBsaWtlIGZvciB2MS92 MiBpbgorCQkgKiBnb3RvX25leHRfc2VxdWVuY2UoKSBhYm92ZS4KKwkJICovCisJCXN3aXRjaCAo b3BlcmF0aW9uX2J5dGUpIHsKKwkJY2FzZSBNSVBJX1NFUV9FTEVNX1NFTkRfUEtUOgorCQljYXNl IE1JUElfU0VRX0VMRU1fREVMQVk6CisJCWNhc2UgTUlQSV9TRVFfRUxFTV9HUElPOgorCQljYXNl IE1JUElfU0VRX0VMRU1fSTJDOgorCQljYXNlIE1JUElfU0VRX0VMRU1fU1BJOgorCQljYXNlIE1J UElfU0VRX0VMRU1fUE1JQzoKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJRFJNX0VSUk9SKCJV bmtub3duIG9wZXJhdGlvbiBieXRlICV1XG4iLAorCQkJCSAgb3BlcmF0aW9uX2J5dGUpOworCQkJ YnJlYWs7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQKIHBhcnNlX21p cGlfc2VxdWVuY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkgICAgY29u c3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJkYikKIHsKIAljb25zdCBzdHJ1Y3QgYmRiX21pcGlfc2Vx dWVuY2UgKnNlcXVlbmNlOwogCWNvbnN0IHU4ICpzZXFfZGF0YTsKLQl1MTYgc2VxX3NpemU7CisJ dTMyIHNlcV9zaXplOwogCXU4ICpkYXRhOwogCWludCBpbmRleCA9IDA7CiAKQEAgLTg0NywxMiAr OTA5LDEzIEBAIHBhcnNlX21pcGlfc2VxdWVuY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCX0KIAogCS8qIEZhaWwgZ3JhY2VmdWxseSBmb3IgZm9yd2FyZCBpbmNvbXBhdGli bGUgc2VxdWVuY2UgYmxvY2suICovCi0JaWYgKHNlcXVlbmNlLT52ZXJzaW9uID49IDMpIHsKLQkJ RFJNX0VSUk9SKCJVbmFibGUgdG8gcGFyc2UgTUlQSSBTZXF1ZW5jZSBCbG9jayB2MytcbiIpOwor CWlmIChzZXF1ZW5jZS0+dmVyc2lvbiA+PSA0KSB7CisJCURSTV9FUlJPUigiVW5hYmxlIHRvIHBh cnNlIE1JUEkgU2VxdWVuY2UgQmxvY2sgdiV1XG4iLAorCQkJICBzZXF1ZW5jZS0+dmVyc2lvbik7 CiAJCXJldHVybjsKIAl9CiAKLQlEUk1fREVCVUdfRFJJVkVSKCJGb3VuZCBNSVBJIHNlcXVlbmNl IGJsb2NrXG4iKTsKKwlEUk1fREVCVUdfRFJJVkVSKCJGb3VuZCBNSVBJIHNlcXVlbmNlIGJsb2Nr IHYldVxuIiwgc2VxdWVuY2UtPnZlcnNpb24pOwogCiAJc2VxX2RhdGEgPSBmaW5kX3BhbmVsX3Nl cXVlbmNlX2Jsb2NrKHNlcXVlbmNlLCBwYW5lbF90eXBlLCAmc2VxX3NpemUpOwogCWlmICghc2Vx X2RhdGEpCkBAIC04NzUsNyArOTM4LDEwIEBAIHBhcnNlX21pcGlfc2VxdWVuY2Uoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiAJCWRldl9wcml2LT52YnQuZHNpLnNlcXVlbmNl W3NlcV9pZF0gPSBkYXRhICsgaW5kZXg7CiAKLQkJaW5kZXggPSBnb3RvX25leHRfc2VxdWVuY2Uo ZGF0YSwgaW5kZXgsIHNlcV9zaXplKTsKKwkJaWYgKHNlcXVlbmNlLT52ZXJzaW9uID49IDMpCisJ CQlpbmRleCA9IGdvdG9fbmV4dF9zZXF1ZW5jZV92MyhkYXRhLCBpbmRleCwgc2VxX3NpemUpOwor CQllbHNlCisJCQlpbmRleCA9IGdvdG9fbmV4dF9zZXF1ZW5jZShkYXRhLCBpbmRleCwgc2VxX3Np emUpOwogCQlpZiAoIWluZGV4KSB7CiAJCQlEUk1fRVJST1IoIkludmFsaWQgc2VxdWVuY2UgJXVc biIsIHNlcV9pZCk7CiAJCQlnb3RvIGVycjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rz aV9wYW5lbF92YnQuYwppbmRleCA1MzAzZDFjNDQ2ZDUuLjdmNjc3NDllYjBlZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BhbmVsX3ZidC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYwpAQCAtMzE5LDYgKzMxOSw3IEBA IHN0YXRpYyBjb25zdCBjaGFyICpzZXF1ZW5jZV9uYW1lKGVudW0gbWlwaV9zZXEgc2VxX2lkKQog CiBzdGF0aWMgdm9pZCBnZW5lcmljX2V4ZWNfc2VxdWVuY2Uoc3RydWN0IGludGVsX2RzaSAqaW50 ZWxfZHNpLCBjb25zdCB1OCAqZGF0YSkKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGludGVsX2RzaS0+YmFzZS5iYXNlLmRldik7CiAJZm5fbWlwaV9lbGVt X2V4ZWMgbWlwaV9lbGVtX2V4ZWM7CiAKIAlpZiAoIWRhdGEpCkBAIC0zMzAsNiArMzMxLDEwIEBA IHN0YXRpYyB2b2lkIGdlbmVyaWNfZXhlY19zZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZHNpICppbnRl bF9kc2ksIGNvbnN0IHU4ICpkYXRhKQogCS8qIGdvIHRvIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRo ZSBzZXF1ZW5jZSAqLwogCWRhdGErKzsKIAorCS8qIFNraXAgU2l6ZSBvZiBTZXF1ZW5jZS4gKi8K KwlpZiAoZGV2X3ByaXYtPnZidC5kc2kuc2VxX3ZlcnNpb24gPj0gMykKKwkJZGF0YSArPSA0Owor CiAJLyogcGFyc2UgZWFjaCBieXRlIHRpbGwgd2UgcmVhY2ggZW5kIG9mIHNlcXVlbmNlIGJ5dGUg LSAweDAwICovCiAJd2hpbGUgKDEpIHsKIAkJdTggb3BlcmF0aW9uX2J5dGUgPSAqZGF0YSsrOwpA QCAtMzQxLDYgKzM0NiwxMCBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2V4ZWNfc2VxdWVuY2Uoc3Ry dWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBjb25zdCB1OCAqZGF0YSkKIAkJfQogCQltaXBpX2Vs ZW1fZXhlYyA9IGV4ZWNfZWxlbVtvcGVyYXRpb25fYnl0ZV07CiAKKwkJLyogU2tpcCBTaXplIG9m IE9wZXJhdGlvbi4gKi8KKwkJaWYgKGRldl9wcml2LT52YnQuZHNpLnNlcV92ZXJzaW9uID49IDMp CisJCQlkYXRhKys7CisKIAkJLyogZXhlY3V0ZSB0aGUgZWxlbWVudCBzcGVjaWZpYyByb3RpbmVz ICovCiAJCWRhdGEgPSBtaXBpX2VsZW1fZXhlYyhpbnRlbF9kc2ksIGRhdGEpOwogCi0tIAoyLjEu NAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK