From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH 3/3] drm/dp/mst: Track available time slots in DP Multi-Stream Transport Packet Date: Thu, 17 Nov 2016 18:03:48 -0800 Message-ID: <1479434628-2373-4-git-send-email-dhinakaran.pandiyan@intel.com> References: <1479434628-2373-1-git-send-email-dhinakaran.pandiyan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1479434628-2373-1-git-send-email-dhinakaran.pandiyan@intel.com> 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 Cc: daniel.vetter@ffwll.ch, dri-devel@lists.freedesktop.org, Dhinakaran Pandiyan List-Id: dri-devel@lists.freedesktop.org VGhlIGF2YWlsX3Nsb3RzIG1lbWJlciBpbiBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3Ig ZG9lcyBub3QgcmVhbGx5CnRyYWNrIHRoZSBhdmFpbGFibGUgdGltZSBzbG90cyBpbiBhIE1UUChN dWx0aS1TdHJlYW0gVHJhbnNwb3J0IFBhY2tldCkuIEl0CmlzIGFzc2lnbmVkIGFuIGluaXRpYWwg dmFsdWUgd2hlbiB0aGUgdG9wb2xvZ3kgbWFuYWdlciBpcyBzZXR1cCBidXQgbm90CnVwZGF0ZWQg YWZ0ZXIgdGhhdC4KClNvLCBsZXQncyB1c2UgYXZhaWxfc2xvdHMgdG8gc3RvcmUgdGhlIG51bWJl ciBvZiB1bmFsbG9jYXRlZCBzbG90cyBvdXQgb2YKdGhlIHRvdGFsIDY0LiBUaGUgdmFsdWUgd2ls bCBiZSB1cGRhdGVkIHdoZW4gdmNwaSBhbGxvY2F0aW9uIG9yIHJlc2V0CmhhcHBlbnMuIFNpbmNl IHZjcGkgYWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0aW9uIGNhbiBoYXBwZW4gc2ltdWx0YW5lb3Vz bHksCnRoZSBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IubG9jayBtdXRleCBpcyB1c2Vk IHRvIHByb3RlY3QKaXQgZnJvbSBjb25jdXJyZW50IGFjY2Vzc2VzLgoKU2lnbmVkLW9mZi1ieTog RGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYyB8IDU1ICsrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3Qu YyAgIHwgIDUgKysrLQogaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaCAgICAgICB8ICAy ICstCiAzIGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jCmluZGV4IDI2ZGZkOTkuLjE5ZTIyNTAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYwpAQCAtMjA0MCw3ICsyMDQwLDkg QEAgaW50IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyX3NldF9tc3Qoc3RydWN0IGRybV9kcF9tc3Rf dG9wb2xvZ3lfbWdyICptZ3IsIGJvb2wgbXMKIAkJfQogCQltZ3ItPnRvdGFsX3BibiA9IDY0ICog bWdyLT5wYm5fZGl2OwogCQltZ3ItPnRvdGFsX3Nsb3RzID0gNjQ7Ci0JCW1nci0+YXZhaWxfc2xv dHMgPSBtZ3ItPnRvdGFsX3Nsb3RzOworCisJCS8qIDEgc2xvdCBvdXQgb2YgdGhlIDY0IHRpbWUg c2xvdHMgaXMgdXNlZCBmb3IgTVRQIGhlYWRlciAqLworCQltZ3ItPmF2YWlsX3Nsb3RzID0gbWdy LT50b3RhbF9zbG90cyAtIDE7CiAKIAkJLyogYWRkIGluaXRpYWwgYnJhbmNoIGRldmljZSBhdCBM Q1QgMSAqLwogCQltc3RiID0gZHJtX2RwX2FkZF9tc3RfYnJhbmNoX2RldmljZSgxLCBOVUxMKTsK QEAgLTI0NjUsMzQgKzI0NjcsNTIgQEAgRVhQT1JUX1NZTUJPTChkcm1fZHBfbXN0X2dldF9lZGlk KTsKICAqIEBwYm46IHBheWxvYWQgYmFuZHdpZHRoIHRvIGNvbnZlcnQgaW50byBzbG90cy4KICAq LwogaW50IGRybV9kcF9maW5kX3ZjcGlfc2xvdHMoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lf bWdyICptZ3IsCi0JCQkgICBpbnQgcGJuKQorCQkJICAgc3RydWN0IGRybV9kcF9tc3RfcG9ydCAq cG9ydCwgaW50IHBibikKIHsKLQlpbnQgbnVtX3Nsb3RzOworCWludCByZXFfc2xvdHMsIGN1cnJf c2xvdHMsIG5ld19zbG90cywgcmV0OworCisJcmVxX3Nsb3RzID0gRElWX1JPVU5EX1VQKHBibiwg bWdyLT5wYm5fZGl2KTsKKwljdXJyX3Nsb3RzID0gZHJtX2RwX21zdF9nZXRfdmNwaV9zbG90cyht Z3IsIHBvcnQpOwogCi0JbnVtX3Nsb3RzID0gRElWX1JPVU5EX1VQKHBibiwgbWdyLT5wYm5fZGl2 KTsKKwlpZiAocmVxX3Nsb3RzIDw9IGN1cnJfc2xvdHMpCisJCXJldHVybiByZXFfc2xvdHM7CiAK LQlpZiAobnVtX3Nsb3RzID4gbWdyLT5hdmFpbF9zbG90cykKLQkJcmV0dXJuIC1FTk9TUEM7Ci0J cmV0dXJuIG51bV9zbG90czsKKwluZXdfc2xvdHMgPSByZXFfc2xvdHMgLSBjdXJyX3Nsb3RzOwor CW11dGV4X2xvY2soJm1nci0+bG9jayk7CisJaWYgKG5ld19zbG90cyA8PSBtZ3ItPmF2YWlsX3Ns b3RzKSB7CisJCXJldCA9IHJlcV9zbG90czsKKwl9IGVsc2UgeworCQlEUk1fREVCVUdfS01TKCJu b3QgZW5vdWdoIHZjcGkgc2xvdHMsIHJlcT0lZCBhdmFpbD0lZFxuIiwgcmVxX3Nsb3RzLCBtZ3It PmF2YWlsX3Nsb3RzKTsKKwkJcmV0ID0gIC1FTk9TUEM7CisJfQorCW11dGV4X3VubG9jaygmbWdy LT5sb2NrKTsKKworCXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9kcF9maW5kX3Zj cGlfc2xvdHMpOwogCiBzdGF0aWMgaW50IGRybV9kcF9pbml0X3ZjcGkoc3RydWN0IGRybV9kcF9t c3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCQkgICAgc3RydWN0IGRybV9kcF92Y3BpICp2Y3BpLCBp bnQgcGJuKQogewotCWludCBudW1fc2xvdHM7CisJaW50IHJlcV9zbG90czsKIAlpbnQgcmV0Owog Ci0JbnVtX3Nsb3RzID0gRElWX1JPVU5EX1VQKHBibiwgbWdyLT5wYm5fZGl2KTsKKwlyZXFfc2xv dHMgPSBESVZfUk9VTkRfVVAocGJuLCBtZ3ItPnBibl9kaXYpOwogCi0JaWYgKG51bV9zbG90cyA+ IG1nci0+YXZhaWxfc2xvdHMpCi0JCXJldHVybiAtRU5PU1BDOworCW11dGV4X2xvY2soJm1nci0+ bG9jayk7CisJaWYgKHJlcV9zbG90cyA+IG1nci0+YXZhaWxfc2xvdHMpIHsKKwkJcmV0ID0gLUVO T1NQQzsKKwkJZ290byBvdXQ7CisJfQogCiAJdmNwaS0+cGJuID0gcGJuOwotCXZjcGktPmFsaWdu ZWRfcGJuID0gbnVtX3Nsb3RzICogbWdyLT5wYm5fZGl2OwotCXZjcGktPm51bV9zbG90cyA9IG51 bV9zbG90czsKKwl2Y3BpLT5hbGlnbmVkX3BibiA9IHJlcV9zbG90cyAqIG1nci0+cGJuX2RpdjsK Kwl2Y3BpLT5udW1fc2xvdHMgPSByZXFfc2xvdHM7CiAKIAlyZXQgPSBkcm1fZHBfbXN0X2Fzc2ln bl9wYXlsb2FkX2lkKG1nciwgdmNwaSk7CisKK291dDoKKwltdXRleF91bmxvY2soJm1nci0+bG9j ayk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAJcmV0dXJuIDA7CkBAIC0yNTMwLDYg KzI1NTAsMTAgQEAgYm9vbCBkcm1fZHBfbXN0X2FsbG9jYXRlX3ZjcGkoc3RydWN0IGRybV9kcF9t c3RfdG9wb2xvZ3lfbWdyICptZ3IsIHN0cnVjdCBkcm1fZHAKIAlEUk1fREVCVUdfS01TKCJpbml0 aW5nIHZjcGkgZm9yICVkICVkXG4iLCBwYm4sIHBvcnQtPnZjcGkubnVtX3Nsb3RzKTsKIAkqc2xv dHMgPSBwb3J0LT52Y3BpLm51bV9zbG90czsKIAorCW11dGV4X2xvY2soJm1nci0+bG9jayk7CisJ bWdyLT5hdmFpbF9zbG90cyAtPSBwb3J0LT52Y3BpLm51bV9zbG90czsKKwltdXRleF91bmxvY2so Jm1nci0+bG9jayk7CisKIAlkcm1fZHBfcHV0X3BvcnQocG9ydCk7CiAJcmV0dXJuIHRydWU7CiBv dXQ6CkBAIC0yNTYyLDYgKzI1ODYsMTEgQEAgdm9pZCBkcm1fZHBfbXN0X3Jlc2V0X3ZjcGlfc2xv dHMoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsIHN0cnVjdCBkcm0KIAlwb3J0 ID0gZHJtX2RwX2dldF92YWxpZGF0ZWRfcG9ydF9yZWYobWdyLCBwb3J0KTsKIAlpZiAoIXBvcnQp CiAJCXJldHVybjsKKworCW11dGV4X2xvY2soJm1nci0+bG9jayk7CisJbWdyLT5hdmFpbF9zbG90 cyArPSBwb3J0LT52Y3BpLm51bV9zbG90czsKKwltdXRleF91bmxvY2soJm1nci0+bG9jayk7CisK IAlwb3J0LT52Y3BpLm51bV9zbG90cyA9IDA7CiAJZHJtX2RwX3B1dF9wb3J0KHBvcnQpOwogfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwppbmRleCA0MjgwYTgzLi5iYWQ5MzAwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwpAQCAtNDIsNiArNDIsOCBAQCBzdGF0aWMgYm9v bCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJaW50IGxhbmVfY291bnQsIHNsb3RzOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CiAJ aW50IG1zdF9wYm47CisJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0KKwkJdG9f aW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7CiAKIAlwaXBlX2NvbmZpZy0+ ZHBfZW5jb2Rlcl9pc19tc3QgPSB0cnVlOwogCXBpcGVfY29uZmlnLT5oYXNfcGNoX2VuY29kZXIg PSBmYWxzZTsKQEAgLTYyLDcgKzY0LDggQEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0X2NvbXB1 dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCW1zdF9wYm4gPSBkcm1f ZHBfY2FsY19wYm5fbW9kZShhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLCBicHApOwogCiAJcGlw ZV9jb25maWctPnBibiA9IG1zdF9wYm47Ci0Jc2xvdHMgPSBkcm1fZHBfZmluZF92Y3BpX3Nsb3Rz KCZpbnRlbF9kcC0+bXN0X21nciwgbXN0X3Bibik7CisJc2xvdHMgPSBkcm1fZHBfZmluZF92Y3Bp X3Nsb3RzKCZpbnRlbF9kcC0+bXN0X21nciwgY29ubmVjdG9yLT5wb3J0LAorCQkJCSAgICAgICBt c3RfcGJuKTsKIAlpZiAoc2xvdHMgPCAwKSB7CiAJCURSTV9FUlJPUigibm90IGVub3VnaCBhdmFp bGFibGUgdGltZSBzbG90cyBmb3IgcGJuPSVkIiwgbXN0X3Bibik7CiAJCXJldHVybiBmYWxzZTsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmggYi9pbmNsdWRlL2Ry bS9kcm1fZHBfbXN0X2hlbHBlci5oCmluZGV4IDAwMzIwNzYuLjVjNTU1MjggMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Rw X21zdF9oZWxwZXIuaApAQCAtNTkwLDcgKzU5MCw3IEBAIHZvaWQgZHJtX2RwX21zdF9kZWFsbG9j YXRlX3ZjcGkoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAKIAogaW50IGRy bV9kcF9maW5kX3ZjcGlfc2xvdHMoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3Is Ci0JCQkgICBpbnQgcGJuKTsKKwkJCSAgIHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQsIGlu dCBwYm4pOwogCiAKIGludCBkcm1fZHBfdXBkYXRlX3BheWxvYWRfcGFydDEoc3RydWN0IGRybV9k cF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IpOwotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=