From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Francis Subject: [PATCH v4 5/5] drm/dp-mst: Add helpers for querying and enabling MST DSC Date: Thu, 22 Aug 2019 09:57:41 -0400 Message-ID: <20190822135741.12923-6-David.Francis@amd.com> References: <20190822135741.12923-1-David.Francis@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-eopbgr740087.outbound.protection.outlook.com [40.107.74.87]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1F0E36EB44 for ; Thu, 22 Aug 2019 13:57:54 +0000 (UTC) In-Reply-To: <20190822135741.12923-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: Wenjing Liu , David Francis , Nikola Cornij List-Id: dri-devel@lists.freedesktop.org QWRkIGRybV9kcF9tc3RfZHNjX2NhcHNfZm9yX3BvcnQgYW5kIGRybV9kcF9tc3RfZHNjX2VuYWJs ZSwKdHdvIGhlbHBlciBmdW5jdGlvbnMgZm9yIE1TVCBEU0MKClRoZSBmb3JtZXIsIGdpdmVuIGEg cG9ydCwgcmV0dXJucyB0aGUgcmF3IERQQ0QgRFNDIGNhcHMgb2ZmCnRoYXQgcG9ydC4KClRoZSBs YXR0ZXIsIGdpdmVuIGEgcG9ydCwgZW5hYmxlcyBvciBkaXNhYmxlcyBEU0Mgb24gdGhhdCBwb3J0 LgoKSW4gYm90aCBjYXNlcywgdGhlIHBvcnQgZ2l2ZW4gYXMgaW5wdXQgc2hvdWxkIGJlIGEgbGVh ZiBvZgp0aGUgTVNUIHRyZWUgd2l0aCBhbiBhdHRhY2hlZCBkaXNwbGF5LgoKVGhlIGxvZ2ljIGZv ciB0aGlzIGlzIHNvbWV3aGF0IGNvbXBsaWNhdGVkLCBhcyBEU0MgY2FuIGJlCmVuYWJsZWQgaW4g NCBkaWZmZXJlbnQgd2F5cy4KCkNhc2UgMTogRFAtdG8tRFAgcGVlciBkZXZpY2UKaWYgdGhlIGJy YW5jaCBpbW1lZGlhdGVseSB1cHN0cmVhbSBoYXMKIC0gUERUID0gRFBfUEVFUl9ERVZJQ0VfRFBf TVNUX0JSQU5DSElORyAoMikKIC0gRFBDRCByZXYuID49IERQIDEuNAogLSBFeGFjdGx5IG9uZSBp bnB1dCBhbmQgb25lIG91dHB1dAogLSBUaGUgb3V0cHV0IGhhcyBQRFQgPSBEUF9QRUVSX0RFVklD RV9TU1RfU0lOSyAoMykKCkluIHRoaXMgY2FzZSwgRFNDIGNvdWxkIGJlIHBvc3NpYmxlIGVpdGhl ciBvbiB0aGUgZW5kcG9pbnQKb3IgdGhlIHBlZXIgZGV2aWNlLiBQcmVmZXIgdGhlIGVuZHBvaW50 LCB3aGljaCBpcyBwb3NzaWJsZSBpZgogLSBUaGUgZW5kcG9pbnQgaGFzIERQX0RTQ19ERUNPTVBS RVNTSU9OX0lTX1NVUFBPUlRFRCBiaXQgc2V0CiAtIFRoZSBlbmRwb2ludCBoYXMgRFBfRkVDX0NB UEFCTEUgYml0IHNldAogLSBUaGUgcGVlciBkZXZpY2UgaGFzIERTQ19QQVNTVEhST1VHSF9DQVBB QklMSVRZIGJpdCBzZXQgKGZyb20gRFAgdjIuMCkKCk90aGVyd2lzZSwgdXNlIHRoZSBwZWVyIGRl dmljZQoKQ2FzZSAyOiBEUC10by1IRE1JIHBlZXIgZGV2aWNlCklmIHRoZSBvdXRwdXQgcG9ydCBo YXMKIC0gUERUID0gRFBfUEVFUl9ERVZJQ0VfRFBfTEVHQUNZX0NPTlYgKDQpCiAtIERQQ0QgcmV2 LiA+PSBEUCAxLjQKIC0gTERQUyA9IHRydWUKIC0gTUNTID0gZmFsc2UKCkluIHRoaXMgY2FzZSwg RFNDIGNhbiBvbmx5IGJlIGF0dGVtcHRlZCBvbiB0aGUgcGVlciBkZXZpY2UKKHRoZSBvdXRwdXQg cG9ydCkKCkNhc2UgMzogVmlydHVhbCBEUCBTaW5rIChJbnRlcm5hbCBEaXNwbGF5IFBhbmVsKQpJ ZiB0aGUgb3V0cHV0IHBvcnQgaGFzCiAtIERQQ0QgcmV2LiA+PSBEUCAxLjQKIC0gcG9ydF9udW0g Pj0gOAoKSW4gdGhpcyBjYXNlLCBEU0MgY2FuIG9ubHkgYmUgYXR0ZW1wdGVkIG9uIHRoZSBwZWVy IGRldmljZQoodGhlIG91dHB1dCBwb3J0KQoKQ2FzZSA0OiBTeW5hcHRpeCBXb3JrYXJvdW5kCklm IHRoZSBvdXRwdXQgaGFzCiAtIGxpbmsgRFBDRCByZXYuID49IERQIDEuNAogLSBsaW5rIGJyYW5j aF9kZXZfaWQgPSAweDkwQ0MyNCAoU3luYXB0aXgpCiAtIFRoZXJlIGlzIGV4YWN0bHkgb25lIGJy YW5jaCBkZXZpY2UgYmV0d2VlbiB0aGUgbGluayBhbmQgb3V0cHV0CgpJbiB0aGlzIGNhc2UsIERT QyBjYW4gYmUgYXR0ZW1wdGVkLCBidXQgb25seSB1c2luZyB0aGUgKmxpbmsqCmF1eCBkZXZpY2Un cyBjYXBzLiBUaGlzIGlzIGEgcXVpcmsuCgpDYzogTHl1ZGUgUGF1bCA8bHl1ZGVAcmVkaGF0LmNv bT4KQ2M6IFdlbmppbmcgTGl1IDxXZW5qaW5nLkxpdUBhbWQuY29tPgpDYzogTmlrb2xhIENvcm5p aiA8Tmlrb2xhLkNvcm5pakBhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBGcmFuY2lzIDxE YXZpZC5GcmFuY2lzQGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9w b2xvZ3kuYyB8IDE5NSArKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJt X2RwX21zdF9oZWxwZXIuaCAgICAgICB8ICAgMyArCiAyIGZpbGVzIGNoYW5nZWQsIDE5OCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xv Z3kuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKaW5kZXggYWY0YjVj ZWM3Yzg0Li4wMGRkYzU0YWY2NWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBf bXN0X3RvcG9sb2d5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3ku YwpAQCAtNDE4NiwzICs0MTg2LDE5OCBAQCBzdGF0aWMgdm9pZCBkcm1fZHBfbXN0X3VucmVnaXN0 ZXJfaTJjX2J1cyhzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4KQogewogCWkyY19kZWxfYWRhcHRlcigm YXV4LT5kZGMpOwogfQorCisvKioKKyAqIGRybV9kcF9tc3RfaXNfdmlydHVhbF9kcGNkKCkgLSBJ cyB0aGUgZ2l2ZW4gcG9ydCBhIHZpcnR1YWwgRFBDRCBkZXZpY2U/CisgKiBAcG9ydDogVGhlIHBv cnQgdG8gY2hlY2sKKyAqCisgKiBSZXR1cm5zOgorICogdHJ1ZSBpZiB0aGUgcG9ydCBpcyBhIHZp cnR1YWwgRFBDRCBwZWVyIGRldmljZSwgZmFsc2Ugb3RoZXJ3aXNlCisgKi8KK3N0YXRpYyBib29s IGRybV9kcF9tc3RfaXNfdmlydHVhbF9kcGNkKHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQp Cit7CisJc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqZG93bnN0cmVhbV9wb3J0OworCisJaWYgKCFw b3J0KQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBWaXJ0dWFsIERQIFNpbmsgKEludGVybmFsIERp c3BsYXkgUGFuZWwpICovCisJaWYgKHBvcnQtPnBvcnRfbnVtID49IDggJiYgcG9ydC0+ZHBjZF9y ZXYgPj0gRFBfRFBDRF9SRVZfMTQpCisJCXJldHVybiB0cnVlOworCisJLyogRFAtdG8tSERNSSBQ cm90b2NvbCBDb252ZXJ0ZXIgKi8KKwlpZiAocG9ydC0+cGR0ID09IERQX1BFRVJfREVWSUNFX0RQ X0xFR0FDWV9DT05WICYmCisJCQkhcG9ydC0+bWNzICYmCisJCQlwb3J0LT5sZHBzICYmCisJCQlw b3J0LT5kcGNkX3JldiA+PSBEUF9EUENEX1JFVl8xNCkKKwkJcmV0dXJuIHRydWU7CisKKwkvKiBE UC10by1EUCAqLworCWlmIChwb3J0LT5wZHQgPT0gRFBfUEVFUl9ERVZJQ0VfTVNUX0JSQU5DSElO RyAmJgorCQkJcG9ydC0+bXN0YiAmJgorCQkJcG9ydC0+ZHBjZF9yZXYgPj0gRFBfRFBDRF9SRVZf MTQgJiYKKwkJCXBvcnQtPm1zdGItPm51bV9wb3J0cyA9PSAyKSB7CisJCWxpc3RfZm9yX2VhY2hf ZW50cnkoZG93bnN0cmVhbV9wb3J0LCAmcG9ydC0+bXN0Yi0+cG9ydHMsIG5leHQpIHsKKwkJCWlm ICghZG93bnN0cmVhbV9wb3J0LT5pbnB1dCAmJgorCQkJCWRvd25zdHJlYW1fcG9ydC0+cGR0ID09 IERQX1BFRVJfREVWSUNFX1NTVF9TSU5LKQorCQkJCXJldHVybiB0cnVlOworCQl9CisJfQorCisJ cmV0dXJuIGZhbHNlOworfQorCisvKioKKyAqIGRybV9kcF9tc3RfaXNfdmlydHVhbF9kcGNkKCkg LSBUZXN0IGZvciBTeW5hcHRpeCBEU0MgcXVpcmsKKyAqIEBwb3J0OiBUaGUgcG9ydCB0byBjaGVj aworICoKKyAqIFNvbWUgU3luYXB0aXggTVNUIGh1YnMgc3VwcG9ydCBEU0MgZXZlbiB0aG91Z2gg dGhleSBkbyBub3Qgc3VwcG9ydCB2aXJ0dWFsCisgKiBEUENELiBUaGlzIGlzIGEgcXVpcmsuCisg KgorICogUmV0dXJuczoKKyAqIHRydWUgaWYgdGhlIFN5bmFwdGl4IHdvcmthcm91bmQgaXMgcmVx dWlyZWQsIGZhbHNlIG90aGVyd2lzZQorICovCitzdGF0aWMgYm9vbCBkcm1fZHBfbXN0X2RzY19z eW5hcHRpeF93b3JrYXJvdW5kKHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQpCit7CisJdTgg ZGF0YVszXSA9IHsgMCB9OworCXUzMiBkZXZfaWQ7CisJc3RydWN0IGRybV9kcF9hdXggKnBoeXNf YXV4OworCisJLyogVGhlIGh1YiBtdXN0IGJlIGRpcmVjdGx5IGNvbm5lY3RlZCB0byB0aGUgY29u bmVjdG9yICovCisJaWYgKHBvcnQtPm1nci0+bXN0X3ByaW1hcnkgIT0gcG9ydC0+cGFyZW50KQor CQlyZXR1cm4gZmFsc2U7CisKKwlwaHlzX2F1eCA9IHBvcnQtPm1nci0+YXV4OworCWlmIChkcm1f ZHBfZHBjZF9yZWFkKHBoeXNfYXV4LCBEUF9CUkFOQ0hfT1VJLCBkYXRhLCAzKSA8IDApCisJCXJl dHVybiBmYWxzZTsKKwlkZXZfaWQgPSAoZGF0YVswXSA8PCAxNikgJiAoZGF0YVsxXSA8PCA4KSAm IGRhdGFbM107CisJLyogU3luYXB0aXggZGV2aWNlIElEICovCisJaWYgKGRldl9pZCAhPSAweDkw Q0MyNCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKGRybV9kcF9kcGNkX3JlYWQocGh5c19hdXgs IERQX0RQQ0RfUkVWLCBkYXRhLCAxKSA8IDApCisJCXJldHVybiBmYWxzZTsKKwkvKiBNdXN0IGJl IERQQ0QgcmV2LiAxLjQgb3IgbGF0ZXIgKi8KKwlpZiAoZGF0YVswXSA8IERQX0RQQ0RfUkVWXzE0 KQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoZHJtX2RwX2RwY2RfcmVhZCgmcG9ydC0+YXV4LAor CQkJRFBfRE9XTlNUUkVBTVBPUlRfUFJFU0VOVCwgZGF0YSwgMSkgPCAwKQorCQlyZXR1cm4gZmFs c2U7CisJLyogTXVzdCBub3QgYmUgYSBWR0EgY29udmVydGVyICovCisJaWYgKChkYXRhWzBdICYg NykgPT0gMykKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qKgorICog ZHJtX2RwX21zdF9kc2NfYXV4X2Zvcl9wb3J0KCkgLSBGaW5kIHRoZSBjb3JyZWN0IGF1eCBmb3Ig RFNDCisgKiBAcG9ydDogVGhlIHBvcnQgdG8gY2hlY2suIEEgbGVhZiBvZiB0aGUgTVNUIHRyZWUg d2l0aCBhbiBhdHRhY2hlZCBkaXNwbGF5LgorICoKKyAqIERlcGVuZGluZyBvbiB0aGUgc2l0dWF0 aW9uLCBEU0MgbWF5IGJlIGVuYWJsZWQgdmlhIHRoZSBlbmRwb2ludCBhdXgsCisgKiB0aGUgaW1t ZWRpYXRlbHkgdXBzdHJlYW0gYXV4LCBvciB0aGUgY29ubmVjdG9yJ3MgcGh5c2ljYWwgYXV4Lgor ICoKKyAqIFJldHVybnM6CisgKiBOVUxMIGlmIERTQyBjYW5ub3QgYmUgZW5hYmxlZCBvbiB0aGlz IHBvcnQsIG90aGVyd2lzZSB0aGUgYXV4IGRldmljZQorICovCitzdHJ1Y3QgZHJtX2RwX2F1eCAq ZHJtX2RwX21zdF9kc2NfYXV4X2Zvcl9wb3J0KHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQp Cit7CisJdTggdXBzdHJlYW1fZHNjID0gMDsKKwl1OCBlbmRwb2ludF9kc2MgPSAwOworCXU4IGVu ZHBvaW50X2ZlYyA9IDA7CisJc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqaW1tZWRpYXRlX3Vwc3Ry ZWFtX3BvcnQ7CisJc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqZmVjX3BvcnQ7CisKKwlpZiAocG9y dCAmJiBwb3J0LT5wYXJlbnQpCisJCWltbWVkaWF0ZV91cHN0cmVhbV9wb3J0ID0gcG9ydC0+cGFy ZW50LT5wb3J0X3BhcmVudDsKKwllbHNlCisJCWltbWVkaWF0ZV91cHN0cmVhbV9wb3J0ID0gTlVM TDsKKworCWZlY19wb3J0ID0gaW1tZWRpYXRlX3Vwc3RyZWFtX3BvcnQ7CisJd2hpbGUgKGZlY19w b3J0KSB7CisJCWlmICghZmVjX3BvcnQtPmZlY19jYXBhYmxlKQorCQkJcmV0dXJuIE5VTEw7CisK KwkJZmVjX3BvcnQgPSBmZWNfcG9ydC0+cGFyZW50LT5wb3J0X3BhcmVudDsKKwl9CisKKwlpZiAo aW1tZWRpYXRlX3Vwc3RyZWFtX3BvcnQpIHsKKwkJaWYgKGRybV9kcF9kcGNkX3JlYWQoJmltbWVk aWF0ZV91cHN0cmVhbV9wb3J0LT5hdXgsCisJCQkJRFBfRFNDX1NVUFBPUlQsICZ1cHN0cmVhbV9k c2MsIDEpIDwgMCkKKwkJCXJldHVybiBOVUxMOworCX0KKworCWlmIChkcm1fZHBfZHBjZF9yZWFk KCZwb3J0LT5hdXgsCisJCQlEUF9EU0NfU1VQUE9SVCwgJmVuZHBvaW50X2RzYywgMSkgPCAwKQor CQlyZXR1cm4gTlVMTDsKKwlpZiAoZHJtX2RwX2RwY2RfcmVhZCgmcG9ydC0+YXV4LAorCQkJRFBf RkVDX0NBUEFCSUxJVFksICZlbmRwb2ludF9mZWMsIDEpIDwgMCkKKwkJcmV0dXJuIE5VTEw7CisK KwkvKiBFbnBvaW50IGRlY29tcHJlc3Npb24gd2l0aCBEUC10by1EUCBwZWVyIGRldmljZSAqLwor CWlmIChkcm1fZHBfbXN0X2lzX3ZpcnR1YWxfZHBjZChpbW1lZGlhdGVfdXBzdHJlYW1fcG9ydCkK KwkJCSYmICh1cHN0cmVhbV9kc2MgJiAweDIpIC8qIERTQyBwYXNzdGhyb3VnaCAqLworCQkJJiYg KGVuZHBvaW50X2ZlYyAmIERQX0ZFQ19DQVBBQkxFKQorCQkJJiYgKGVuZHBvaW50X2RzYyAmIERQ X0RTQ19ERUNPTVBSRVNTSU9OX0lTX1NVUFBPUlRFRCkpCisJCXJldHVybiAmcG9ydC0+YXV4Owor CisJLyogVmlydHVhbCBEUENEIGRlY29tcHJlc3Npb24gd2l0aCBEUC10by1EUCBwZWVyIGRldmlj ZSAqLworCWlmIChkcm1fZHBfbXN0X2lzX3ZpcnR1YWxfZHBjZChpbW1lZGlhdGVfdXBzdHJlYW1f cG9ydCkpCisJCXJldHVybiAmaW1tZWRpYXRlX3Vwc3RyZWFtX3BvcnQtPmF1eDsKKworCS8qIFZp cnR1YWwgRFBDRCBkZWNvbXByZXNzaW9uIHdpdGggRFAtdG8tSERNSSBvciBWaXJ0dWFsIERQIFNp bmsgKi8KKwlpZiAoZHJtX2RwX21zdF9pc192aXJ0dWFsX2RwY2QocG9ydCkpCisJCXJldHVybiAm cG9ydC0+YXV4OworCisJLyogU3luYXB0aXggd29ya2Fyb3VuZCAqLworCWlmIChkcm1fZHBfbXN0 X2RzY19zeW5hcHRpeF93b3JrYXJvdW5kKHBvcnQpKQorCQlyZXR1cm4gcG9ydC0+bWdyLT5hdXg7 CisKKwlyZXR1cm4gTlVMTDsKK30KKworLyoqCisgKiBkcm1fZHBfbXN0X2RzY19hdXhfZm9yX3Bv cnQoKSAtIFJldHJpZXZlIHRoZSBEU0MgY2FwYWJpbGl0eSByZWdpc3RlcnMKKyAqIEBwb3J0OiBU aGUgcG9ydCB0byBjaGVjay4gQSBsZWFmIG9mIHRoZSBNU1QgdHJlZSB3aXRoIGFuIGF0dGFjaGVk IGRpc3BsYXkuCisgKiBAY2FwczogT3V0cHV0LiAgQSBwb2ludGVyIHRvIGFuIGFycmF5IGF0IGxl YXN0IDE2IGJ5dGVzIGxvbmcKKyAqCisgKiBSZWFkcyB0aGUgRFNDIGNhcGFiaWxpdHkgcmVnaXN0 ZXJzIChEU0NfU1VQUE9SVCB0aHJvdWdoCisgKiBCSVRTX1BFUl9QSVhFTF9JTkNSRU1FTlQpIGFu ZCBzdG9yZSB0aGVtIGluIHRoZSBnaXZlbiBwb2ludGVyLiBVc2UKKyAqIHRoZSBjb3JyZWN0IGF1 eCBmb3IgRFNDIG9uIHRoZSBnaXZlbiBwb3J0LgorICoKKyAqIFJldHVybnM6CisgKiBUaGUgbnVt YmVyIG9mIGJ5dGVzIHJlYWQgb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9u IGZhaWx1cmUKKyAqLworaW50IGRybV9kcF9tc3RfZHNjX2NhcHNfZm9yX3BvcnQoc3RydWN0IGRy bV9kcF9tc3RfcG9ydCAqcG9ydCwgdTggKmNhcHMpCit7CisJc3RydWN0IGRybV9kcF9hdXggKmF1 eCA9IGRybV9kcF9tc3RfZHNjX2F1eF9mb3JfcG9ydChwb3J0KTsKKworCWlmICghYXV4KQorCQly ZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiBkcm1fZHBfZHBjZF9yZWFkKGF1eCwgRFBfRFNDX1NV UFBPUlQsIGNhcHMsIDE2KTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2RwX21zdF9kc2NfY2Fwc19m b3JfcG9ydCk7CisKKy8qKgorICogZHJtX2RwX21zdF9kc2NfYXV4X2Zvcl9wb3J0KCkgLSBFbmFi bGUgRFNDIG9uIGFuIE1TVCBlbmRwb2ludAorICogQHBvcnQ6IFRoZSBwb3J0IHRvIGNoZWNrLiBB IGxlYWYgb2YgdGhlIE1TVCB0cmVlIHdpdGggYW4gYXR0YWNoZWQgZGlzcGxheS4KKyAqIEBlbmFi bGU6IHRydWUgZm9yIHR1cm4gb24gRFNDLCBmYWxzZSBmb3IgdHVybiBvZmYgRFNDCisgKgorICog V3JpdGVzIERQX0RTQ19FTkFCTEUgb24gdGhlIGNvcnJlY3QgYXV4IGZvciB0aGUgZ2l2ZW4gcG9y dC4KKyAqCisgKiBSZXR1cm5zOgorICogVGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIG9uIHN1 Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlCisgKi8KK2ludCBkcm1f ZHBfbXN0X2RzY19lbmFibGUoc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCwgYm9vbCBlbmFi bGUpCit7CisJc3RydWN0IGRybV9kcF9hdXggKmF1eCA9IGRybV9kcF9tc3RfZHNjX2F1eF9mb3Jf cG9ydChwb3J0KTsKKwl1OCBlbmFibGVfZHNjID0gZW5hYmxlID8gMSA6IDA7CisKKwlpZiAoIWF1 eCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gZHJtX2RwX2RwY2Rfd3JpdGUoYXV4LCBE UF9EU0NfRU5BQkxFLCAmZW5hYmxlX2RzYywgMSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9kcF9t c3RfZHNjX2VuYWJsZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBl ci5oIGIvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaAppbmRleCBmYTk3Mzc3M2E0YTcu LjBmNzBkYzhkZmJlYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIu aAorKysgYi9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oCkBAIC02NzQsNiArNjc0LDkg QEAgaW50IF9fbXVzdF9jaGVjayBkcm1fZHBfbXN0X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpOwogdm9pZCBkcm1fZHBfbXN0X2dldF9wb3J0X21hbGxvYyhzdHJ1 Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0KTsKIHZvaWQgZHJtX2RwX21zdF9wdXRfcG9ydF9tYWxs b2Moc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCk7CiAKK2ludCBkcm1fZHBfbXN0X2RzY19j YXBzX2Zvcl9wb3J0KHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQsIHU4ICpjYXBzKTsKK2lu dCBkcm1fZHBfbXN0X2RzY19lbmFibGUoc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCwgYm9v bCBlbmFibGUpOworCiBleHRlcm4gY29uc3Qgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNz IGRybV9kcF9tc3RfdG9wb2xvZ3lfc3RhdGVfZnVuY3M7CiAKIC8qKgotLSAKMi4xNy4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=