From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Francis Subject: [PATCH v8 6/6] drm/dp_mst: Add helpers for MST DSC and virtual DPCD aux Date: Mon, 26 Aug 2019 14:05:07 -0400 Message-ID: <20190826180507.17802-7-David.Francis@amd.com> References: <20190826180507.17802-1-David.Francis@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0600.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe48::600]) by gabe.freedesktop.org (Postfix) with ESMTPS id B3B1E6E291 for ; Mon, 26 Aug 2019 18:05:25 +0000 (UTC) In-Reply-To: <20190826180507.17802-1-David.Francis@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: David Francis List-Id: dri-devel@lists.freedesktop.org QWRkIGRybV9kcF9tc3RfZHNjX2F1eF9mb3JfcG9ydC4gVG8gZW5hYmxlIERTQywgdGhlIERTQ19F TkFCTEVECnJlZ2lzdGVyIG1pZ2h0IGhhdmUgdG8gYmUgd3JpdHRlbiBvbiB0aGUgbGVhZiBwb3J0 J3MgRFBDRCwKaXRzIHBhcmVudCdzIERQQ0QsIG9yIHRoZSBNU1QgbWFuYWdlcidzIERQQ0QuIFRo aXMgZnVuY3Rpb24KZmluZHMgdGhlIGNvcnJlY3QgYXV4IGZvciB0aGUgam9iLgoKQXMgcGFydCBv ZiB0aGlzLCBhZGQgZHJtX2RwX21zdF9pc192aXJ0dWFsX2RwY2QuIFZpcnR1YWwgRFBDRAppcyBh IERQIGZlYXR1cmUgbmV3IGluIERQIHYxLjQsIHdoaWNoIGV4cG9zZXMgY2VydGFpbiBEUENECnJl Z2lzdGVycyBvbiB2aXJ0dWFsIHBvcnRzLgoKdjI6IFJlbWVtYmVyIHRvIHVubG9jayBtdXRleCBv biBhbGwgcGF0aHMKCkNjOiBMeXVkZSBQYXVsIDxseXVkZUByZWRoYXQuY29tPgpDYzogSmFuaSBO aWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg RnJhbmNpcyA8RGF2aWQuRnJhbmNpc0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1f ZHBfbXN0X3RvcG9sb2d5LmMgfCAxNTIgKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1 ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmggICAgICAgfCAgIDIgKwogMiBmaWxlcyBjaGFuZ2Vk LCAxNTQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBf bXN0X3RvcG9sb2d5LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jCmlu ZGV4IDUwMjkyM2MyNDQ1MC4uMWZlZTkyYmQ1MWY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2RwX21zdF90b3BvbG9neS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0 X3RvcG9sb2d5LmMKQEAgLTQxNTAsMyArNDE1MCwxNTUgQEAgc3RhdGljIHZvaWQgZHJtX2RwX21z dF91bnJlZ2lzdGVyX2kyY19idXMoc3RydWN0IGRybV9kcF9hdXggKmF1eCkKIHsKIAlpMmNfZGVs X2FkYXB0ZXIoJmF1eC0+ZGRjKTsKIH0KKworLyoqCisgKiBkcm1fZHBfbXN0X2lzX3ZpcnR1YWxf ZHBjZCgpIC0gSXMgdGhlIGdpdmVuIHBvcnQgYSB2aXJ0dWFsIERQIFBlZXIgRGV2aWNlCisgKiBA cG9ydDogVGhlIHBvcnQgdG8gY2hlY2sKKyAqCisgKiBBIHNpbmdsZSBwaHlzaWNhbCBNU1QgaHVi IG9iamVjdCBjYW4gYmUgcmVwcmVzZW50ZWQgaW4gdGhlIHRvcG9sb2d5CisgKiBieSBtdWx0aXBs ZSBicmFuY2hlcywgd2l0aCB2aXJ0dWFsIHBvcnRzIGJldHdlZW4gdGhvc2UgYnJhbmNoZXMuCisg KgorICogQXMgb2YgRFAxLjQsIEFuIE1TVCBodWIgd2l0aCBpbnRlcm5hbCAodmlydHVhbCkgcG9y dHMgbXVzdCBleHBvc2UKKyAqIGNlcnRhaW4gRFBDRCByZWdpc3RlcnMgb3ZlciB0aG9zZSBwb3J0 cy4gU2VlIHNlY3Rpb25zIDIuNi4xLjEuMQorICogYW5kIDIuNi4xLjEuMiBvZiBEaXNwbGF5IFBv cnQgc3BlY2lmaWNhdGlvbiB2MS40IGZvciBkZXRhaWxzLgorICoKKyAqIE1heSBhY3F1aXJlIG1n ci0+bG9jaworICoKKyAqIFJldHVybnM6CisgKiB0cnVlIGlmIHRoZSBwb3J0IGlzIGEgdmlydHVh bCBEUCBwZWVyIGRldmljZSwgZmFsc2Ugb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBib29sIGRybV9k cF9tc3RfaXNfdmlydHVhbF9kcGNkKHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQpCit7CisJ c3RydWN0IGRybV9kcF9tc3RfcG9ydCAqZG93bnN0cmVhbV9wb3J0OworCisJaWYgKCFwb3J0KQor CQlyZXR1cm4gZmFsc2U7CisKKwkvKiBWaXJ0dWFsIERQIFNpbmsgKEludGVybmFsIERpc3BsYXkg UGFuZWwpICovCisJaWYgKHBvcnQtPnBvcnRfbnVtID49IDggJiYgcG9ydC0+ZHBjZF9yZXYgPj0g RFBfRFBDRF9SRVZfMTQpCisJCXJldHVybiB0cnVlOworCisJLyogRFAtdG8tSERNSSBQcm90b2Nv bCBDb252ZXJ0ZXIgKi8KKwlpZiAocG9ydC0+cGR0ID09IERQX1BFRVJfREVWSUNFX0RQX0xFR0FD WV9DT05WICYmCisJCQkhcG9ydC0+bWNzICYmCisJCQlwb3J0LT5sZHBzICYmCisJCQlwb3J0LT5k cGNkX3JldiA+PSBEUF9EUENEX1JFVl8xNCkKKwkJcmV0dXJuIHRydWU7CisKKwkvKiBEUC10by1E UCAqLworCW11dGV4X2xvY2soJnBvcnQtPm1nci0+bG9jayk7CisJaWYgKHBvcnQtPnBkdCA9PSBE UF9QRUVSX0RFVklDRV9NU1RfQlJBTkNISU5HICYmCisJCQlwb3J0LT5tc3RiICYmCisJCQlwb3J0 LT5kcGNkX3JldiA+PSBEUF9EUENEX1JFVl8xNCAmJgorCQkJcG9ydC0+bXN0Yi0+bnVtX3BvcnRz ID09IDIpIHsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShkb3duc3RyZWFtX3BvcnQsICZwb3J0LT5t c3RiLT5wb3J0cywgbmV4dCkgeworCQkJaWYgKGRvd25zdHJlYW1fcG9ydC0+cGR0ID09IERQX1BF RVJfREVWSUNFX1NTVF9TSU5LICYmCisJCQkJCSFkb3duc3RyZWFtX3BvcnQtPmlucHV0KSB7CisJ CQkJbXV0ZXhfdW5sb2NrKCZwb3J0LT5tZ3ItPmxvY2spOworCQkJCXJldHVybiB0cnVlOworCQkJ fQorCQl9CisJfQorCW11dGV4X3VubG9jaygmcG9ydC0+bWdyLT5sb2NrKTsKKworCXJldHVybiBm YWxzZTsKK30KKworLyoqCisgKiBkcm1fZHBfbXN0X2RzY19hdXhfZm9yX3BvcnQoKSAtIEZpbmQg dGhlIGNvcnJlY3QgYXV4IGZvciBEU0MKKyAqIEBwb3J0OiBUaGUgcG9ydCB0byBjaGVjay4gQSBs ZWFmIG9mIHRoZSBNU1QgdHJlZSB3aXRoIGFuIGF0dGFjaGVkIGRpc3BsYXkuCisgKgorICogRGVw ZW5kaW5nIG9uIHRoZSBzaXR1YXRpb24sIERTQyBtYXkgYmUgZW5hYmxlZCB2aWEgdGhlIGVuZHBv aW50IGF1eCwKKyAqIHRoZSBpbW1lZGlhdGVseSB1cHN0cmVhbSBhdXgsIG9yIHRoZSBjb25uZWN0 b3IncyBwaHlzaWNhbCBhdXguCisgKgorICogVGhpcyBpcyBib3RoIHRoZSBjb3JyZWN0IGF1eCB0 byByZWFkIERTQ19DQVBBQklMSVRZIGFuZCB0aGUKKyAqIGNvcnJlY3QgYXV4IHRvIHdyaXRlIERT Q19FTkFCTEVELgorICoKKyAqIFRoaXMgb3BlcmF0aW9uIGNhbiBiZSBleHBlbnNpdmUgKHVwIHRv IGZvdXIgYXV4IHJlYWRzKSwgc28KKyAqIHRoZSBjYWxsZXIgc2hvdWxkIGNhY2hlIHRoZSByZXR1 cm4uCisgKgorICogUmV0dXJuczoKKyAqIE5VTEwgaWYgRFNDIGNhbm5vdCBiZSBlbmFibGVkIG9u IHRoaXMgcG9ydCwgb3RoZXJ3aXNlIHRoZSBhdXggZGV2aWNlCisgKi8KK3N0cnVjdCBkcm1fZHBf YXV4ICpkcm1fZHBfbXN0X2RzY19hdXhfZm9yX3BvcnQoc3RydWN0IGRybV9kcF9tc3RfcG9ydCAq cG9ydCkKK3sKKwlzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICppbW1lZGlhdGVfdXBzdHJlYW1fcG9y dDsKKwlzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpmZWNfcG9ydDsKKwlzdHJ1Y3QgZHJtX2RwX2Rl c2MgKmRlc2MgPSBOVUxMOworCisJaWYgKHBvcnQgJiYgcG9ydC0+cGFyZW50KQorCQlpbW1lZGlh dGVfdXBzdHJlYW1fcG9ydCA9IHBvcnQtPnBhcmVudC0+cG9ydF9wYXJlbnQ7CisJZWxzZQorCQlp bW1lZGlhdGVfdXBzdHJlYW1fcG9ydCA9IE5VTEw7CisKKwlmZWNfcG9ydCA9IGltbWVkaWF0ZV91 cHN0cmVhbV9wb3J0OworCXdoaWxlIChmZWNfcG9ydCkgeworCQkvKgorCQkgKiBFYWNoIHBoeXNp Y2FsIGxpbmsgKGkuZS4gbm90IGEgdmlydHVhbCBwb3J0KSBiZXR3ZWVuIHRoZQorCQkgKiBvdXRw dXQgYW5kIHRoZSBwcmltYXJ5IGRldmljZSBtdXN0IHN1cHBvcnQgRkVDCisJCSAqLworCQlpZiAo IWRybV9kcF9tc3RfaXNfdmlydHVhbF9kcGNkKGZlY19wb3J0KSAmJgorCQkJCSFmZWNfcG9ydC0+ ZmVjX2NhcGFibGUpCisJCQlyZXR1cm4gTlVMTDsKKworCQlmZWNfcG9ydCA9IGZlY19wb3J0LT5w YXJlbnQtPnBvcnRfcGFyZW50OworCX0KKworCS8qIERQLXRvLURQIHBlZXIgZGV2aWNlICovCisJ aWYgKGRybV9kcF9tc3RfaXNfdmlydHVhbF9kcGNkKGltbWVkaWF0ZV91cHN0cmVhbV9wb3J0KSkg eworCQl1OCB1cHN0cmVhbV9kc2M7CisJCXU4IGVuZHBvaW50X2RzYzsKKwkJdTggZW5kcG9pbnRf ZmVjOworCisJCWlmIChkcm1fZHBfZHBjZF9yZWFkKCZwb3J0LT5hdXgsCisJCQkJICAgICBEUF9E U0NfU1VQUE9SVCwgJmVuZHBvaW50X2RzYywgMSkgPCAwKQorCQkJcmV0dXJuIE5VTEw7CisJCWlm IChkcm1fZHBfZHBjZF9yZWFkKCZwb3J0LT5hdXgsCisJCQkJICAgICBEUF9GRUNfQ0FQQUJJTElU WSwgJmVuZHBvaW50X2ZlYywgMSkgPCAwKQorCQkJcmV0dXJuIE5VTEw7CisJCWlmIChkcm1fZHBf ZHBjZF9yZWFkKCZpbW1lZGlhdGVfdXBzdHJlYW1fcG9ydC0+YXV4LAorCQkJCSAgICAgRFBfRFND X1NVUFBPUlQsICZ1cHN0cmVhbV9kc2MsIDEpIDwgMCkKKwkJCXJldHVybiBOVUxMOworCisJCS8q IEVucG9pbnQgZGVjb21wcmVzc2lvbiB3aXRoIERQLXRvLURQIHBlZXIgZGV2aWNlICovCisJCWlm ICgoZW5kcG9pbnRfZHNjICYgRFBfRFNDX0RFQ09NUFJFU1NJT05fSVNfU1VQUE9SVEVEKQorCQkJ CSYmIChlbmRwb2ludF9mZWMgJiBEUF9GRUNfQ0FQQUJMRSkKKwkJCQkmJiAodXBzdHJlYW1fZHNj ICYgMHgyKSAvKiBEU0MgcGFzc3Rocm91Z2ggKi8pCisJCQlyZXR1cm4gJnBvcnQtPmF1eDsKKwor CQkvKiBWaXJ0dWFsIERQQ0QgZGVjb21wcmVzc2lvbiB3aXRoIERQLXRvLURQIHBlZXIgZGV2aWNl ICovCisJCXJldHVybiAmaW1tZWRpYXRlX3Vwc3RyZWFtX3BvcnQtPmF1eDsKKwl9CisKKwkvKiBW aXJ0dWFsIERQQ0QgZGVjb21wcmVzc2lvbiB3aXRoIERQLXRvLUhETUkgb3IgVmlydHVhbCBEUCBT aW5rICovCisJaWYgKGRybV9kcF9tc3RfaXNfdmlydHVhbF9kcGNkKHBvcnQpKQorCQlyZXR1cm4g JnBvcnQtPmF1eDsKKworCS8qCisJICogU3luYXB0aWNzIHF1aXJrCisJICogQXBwbGllcyB0byBw b3J0cyBmb3Igd2hpY2g6CisJICogLSBQaHlzaWNhbCBhdXggaGFzIFN5bmFwdGljcyBPVUkKKwkg KiAtIERQdjEuNCBvciBoaWdoZXIKKwkgKiAtIFBvcnQgaXMgb24gcHJpbWFyeSBicmFuY2ggZGV2 aWNlCisJICogLSBOb3QgYSBWR0EgYWRhcHRlciAoRFBfRFdOX1NUUk1fUE9SVF9UWVBFX0FOQUxP RykKKwkgKi8KKwlpZiAoIWRybV9kcF9yZWFkX2Rlc2MocG9ydC0+bWdyLT5hdXgsIGRlc2MsIHRy dWUpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoZHJtX2RwX2hhc19xdWlyayhkZXNjLCBEUF9E UENEX1FVSVJLX0RTQ19XSVRIT1VUX1ZJUlRVQUxfRFBDRCAmJgorCQkJcG9ydC0+bWdyLT5kcGNk W0RQX0RQQ0RfUkVWXSA+PSBEUF9EUENEX1JFVl8xNCkgJiYKKwkJCXBvcnQtPnBhcmVudCA9PSBw b3J0LT5tZ3ItPm1zdF9wcmltYXJ5KSB7CisJCXU4IGRvd25zdHJlYW1wb3J0OworCisJCWRybV9k cF9kcGNkX3JlYWQoJnBvcnQtPmF1eCwgRFBfRE9XTlNUUkVBTVBPUlRfUFJFU0VOVCwKKwkJCQkg JmRvd25zdHJlYW1wb3J0LCAxKTsKKworCQlpZiAoKGRvd25zdHJlYW1wb3J0ICYgRFBfRFdOX1NU Uk1fUE9SVF9QUkVTRU5UKSAmJgorCQkJCSgoZG93bnN0cmVhbXBvcnQgJiBEUF9EV05fU1RSTV9Q T1JUX1RZUEVfTUFTSykKKwkJCQkhPSBEUF9EV05fU1RSTV9QT1JUX1RZUEVfQU5BTE9HKSkKKwkJ CXJldHVybiBwb3J0LT5tZ3ItPmF1eDsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KK0VYUE9SVF9T WU1CT0woZHJtX2RwX21zdF9kc2NfYXV4X2Zvcl9wb3J0KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL2RybV9kcF9tc3RfaGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5o CmluZGV4IGYxMTNhZTA0ZmE4OC4uNGNmNzM4NTQ1ZGZiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2Ry bS9kcm1fZHBfbXN0X2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVy LmgKQEAgLTY3Myw2ICs2NzMsOCBAQCBpbnQgX19tdXN0X2NoZWNrIGRybV9kcF9tc3RfYXRvbWlj X2NoZWNrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiB2b2lkIGRybV9kcF9tc3Rf Z2V0X3BvcnRfbWFsbG9jKHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQpOwogdm9pZCBkcm1f ZHBfbXN0X3B1dF9wb3J0X21hbGxvYyhzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0KTsKIAor c3RydWN0IGRybV9kcF9hdXggKmRybV9kcF9tc3RfZHNjX2F1eF9mb3JfcG9ydChzdHJ1Y3QgZHJt X2RwX21zdF9wb3J0ICpwb3J0KTsKKwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9z dGF0ZV9mdW5jcyBkcm1fZHBfbXN0X3RvcG9sb2d5X3N0YXRlX2Z1bmNzOwogCiAvKioKLS0gCjIu MTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs