From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 04/51] drm/amdgpu: implement new cgs interface for acpi function Date: Thu, 12 Nov 2015 01:17:54 -0500 Message-ID: <1447309121-2480-5-git-send-email-alexander.deucher@amd.com> References: <1447309121-2480-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-f179.google.com (mail-qk0-f179.google.com [209.85.220.179]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4779E7A082 for ; Wed, 11 Nov 2015 22:19:03 -0800 (PST) Received: by qkas77 with SMTP id s77so20225959qka.0 for ; Wed, 11 Nov 2015 22:19:02 -0800 (PST) In-Reply-To: <1447309121-2480-1-git-send-email-alexander.deucher@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: Rex Zhu List-Id: dri-devel@lists.freedesktop.org RnJvbTogUmV4IFpodSA8UmV4LlpodUBhbWQuY29tPgoKQWRkIGEgbmV3IGRyaXZlciBpbnRlcm5h bCBpbnRlcmZhY2UgZm9yIGFjY2Vzc2luZyBBQ1BJCm1ldGhvZHMuICBUaGVzZSB3aWxsIGJlIHVz ZWQgYnkgdmFyaW91cyBuZXcgY29tcG9uZW50cwppbmNsdWRpbmcgcG93ZXJwbGF5LgoKU2lnbmVk LW9mZi1ieTogUmV4IFpodSA8UmV4LlpodUBhbWQuY29tPgpSZXZpZXdlZC1ieTogSmFtbXkgWmhv dSA8SmFtbXkuWmhvdUBhbWQuY29tPgpSZXZpZXdlZC1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5k ZXIuZGV1Y2hlckBhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9jZ3MuYyAgfCAyMjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9n cHUvZHJtL2FtZC9pbmNsdWRlL2Nnc19jb21tb24uaCB8ICA0NSArKysrKystCiAyIGZpbGVzIGNo YW5nZWQsIDI2MiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jZ3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9jZ3MuYwppbmRleCA4ZTk5NTE0Li5mOTAxY2RjIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY2dzLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nncy5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVk ZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51 eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4K ICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgogI2luY2x1ZGUgPGRybS9hbWRncHVfZHJtLmg+ CkBAIC0zMiw3ICszMyw2IEBACiAjaW5jbHVkZSAiYXRvbS5oIgogI2luY2x1ZGUgImFtZGdwdV91 Y29kZS5oIgogCi0KIHN0cnVjdCBhbWRncHVfY2dzX2RldmljZSB7CiAJc3RydWN0IGNnc19kZXZp Y2UgYmFzZTsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldjsKQEAgLTczNiw2ICs3MzYsMjIx IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Nnc19nZXRfZmlybXdhcmVfaW5mbyh2b2lkICpjZ3NfZGV2 aWNlLAogCXJldHVybiAwOwogfQogCisvKiogXGJyaWVmIGV2YWx1YXRlIGFjcGkgbmFtZXNwYWNl IG9iamVjdCwgaGFuZGxlIG9yIHBhdGhuYW1lIG11c3QgYmUgdmFsaWQKKyAqICBccGFyYW0gY2dz X2RldmljZQorICogIFxwYXJhbSBpbmZvIGlucHV0L291dHB1dCBhcmd1bWVudHMgZm9yIHRoZSBj b250cm9sIG1ldGhvZAorICogIFxyZXR1cm4gc3RhdHVzCisgKi8KKworI2lmIGRlZmluZWQoQ09O RklHX0FDUEkpCitzdGF0aWMgaW50IGFtZGdwdV9jZ3NfYWNwaV9ldmFsX29iamVjdCh2b2lkICpj Z3NfZGV2aWNlLAorCQkJCSAgICBzdHJ1Y3QgY2dzX2FjcGlfbWV0aG9kX2luZm8gKmluZm8pCit7 CisJQ0dTX0ZVTkNfQURFVjsKKwlhY3BpX2hhbmRsZSBoYW5kbGU7CisJc3RydWN0IGFjcGlfb2Jq ZWN0X2xpc3QgaW5wdXQ7CisJc3RydWN0IGFjcGlfYnVmZmVyIG91dHB1dCA9IHsgQUNQSV9BTExP Q0FURV9CVUZGRVIsIE5VTEwgfTsKKwl1bmlvbiBhY3BpX29iamVjdCAqcGFyYW1zID0gTlVMTDsK Kwl1bmlvbiBhY3BpX29iamVjdCAqb2JqID0gTlVMTDsKKwl1aW50OF90IG5hbWVbNV0gPSB7J1ww J307CisJc3RydWN0IGNnc19hY3BpX21ldGhvZF9hcmd1bWVudCAqYXJndW1lbnQgPSBOVUxMOwor CXVpbnQzMl90IGksIGNvdW50OworCWFjcGlfc3RhdHVzIHN0YXR1czsKKwlpbnQgcmVzdWx0Owor CXVpbnQzMl90IGZ1bmNfbm8gPSAweEZGRkZGRkZGOworCisJaGFuZGxlID0gQUNQSV9IQU5ETEUo JmFkZXYtPnBkZXYtPmRldik7CisJaWYgKCFoYW5kbGUpCisJCXJldHVybiAtRU5PREVWOworCisJ bWVtc2V0KCZpbnB1dCwgMCwgc2l6ZW9mKHN0cnVjdCBhY3BpX29iamVjdF9saXN0KSk7CisKKwkv KiB2YWxpZGF0ZSBpbnB1dCBpbmZvICovCisJaWYgKGluZm8tPnNpemUgIT0gc2l6ZW9mKHN0cnVj dCBjZ3NfYWNwaV9tZXRob2RfaW5mbykpCisJCXJldHVybiAtRUlOVkFMOworCisJaW5wdXQuY291 bnQgPSBpbmZvLT5pbnB1dF9jb3VudDsKKwlpZiAoaW5mby0+aW5wdXRfY291bnQgPiAwKSB7CisJ CWlmIChpbmZvLT5waW5wdXRfYXJndW1lbnQgPT0gTlVMTCkKKwkJCXJldHVybiAtRUlOVkFMOwor CQkJYXJndW1lbnQgPSBpbmZvLT5waW5wdXRfYXJndW1lbnQ7CisJCQlmdW5jX25vID0gYXJndW1l bnQtPnZhbHVlOworCQkJZm9yIChpID0gMDsgaSA8IGluZm8tPmlucHV0X2NvdW50OyBpKyspIHsK KwkJCQlpZiAoKChhcmd1bWVudC0+dHlwZSA9PSBBQ1BJX1RZUEVfU1RSSU5HKSB8fAorCQkJCQko YXJndW1lbnQtPnR5cGUgPT0gQUNQSV9UWVBFX0JVRkZFUikpCisJCQkJCSYmIChhcmd1bWVudC0+ cG9pbnRlciA9PSBOVUxMKSkKKwkJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQkJYXJndW1lbnQrKzsK KwkJCX0KKwl9CisKKwlpZiAoaW5mby0+b3V0cHV0X2NvdW50ID4gMCkgeworCQlpZiAoaW5mby0+ cG91dHB1dF9hcmd1bWVudCA9PSBOVUxMKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJCWFyZ3VtZW50 ID0gaW5mby0+cG91dHB1dF9hcmd1bWVudDsKKwkJZm9yIChpID0gMDsgaSA8IGluZm8tPm91dHB1 dF9jb3VudDsgaSsrKSB7CisJCQlpZiAoKChhcmd1bWVudC0+dHlwZSA9PSBBQ1BJX1RZUEVfU1RS SU5HKSB8fAorCQkJCShhcmd1bWVudC0+dHlwZSA9PSBBQ1BJX1RZUEVfQlVGRkVSKSkKKwkJCQkm JiAoYXJndW1lbnQtPnBvaW50ZXIgPT0gTlVMTCkpCisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQlh cmd1bWVudCsrOworCQl9CisJfQorCisJLyogVGhlIHBhdGggbmFtZSBwYXNzZWQgdG8gYWNwaV9l dmFsdWF0ZV9vYmplY3Qgc2hvdWxkIGJlIG51bGwgdGVybWluYXRlZCAqLworCWlmICgoaW5mby0+ ZmllbGQgJiBDR1NfQUNQSV9GSUVMRF9NRVRIT0RfTkFNRSkgIT0gMCkgeworCQlzdHJuY3B5KG5h bWUsIChjaGFyICopJihpbmZvLT5uYW1lKSwgc2l6ZW9mKHVpbnQzMl90KSk7CisJCW5hbWVbNF0g PSAnXDAnOworCX0KKworCS8qIHBhcnNlIGlucHV0IHBhcmFtZXRlcnMgKi8KKwlpZiAoaW5wdXQu Y291bnQgPiAwKSB7CisJCWlucHV0LnBvaW50ZXIgPSBwYXJhbXMgPQorCQkJCWt6YWxsb2Moc2l6 ZW9mKHVuaW9uIGFjcGlfb2JqZWN0KSAqIGlucHV0LmNvdW50LCBHRlBfS0VSTkVMKTsKKwkJaWYg KHBhcmFtcyA9PSBOVUxMKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJYXJndW1lbnQgPSBpbmZv LT5waW5wdXRfYXJndW1lbnQ7CisKKwkJZm9yIChpID0gMDsgaSA8IGlucHV0LmNvdW50OyBpKysp IHsKKwkJCXBhcmFtcy0+dHlwZSA9IGFyZ3VtZW50LT50eXBlOworCQkJc3dpdGNoIChwYXJhbXMt PnR5cGUpIHsKKwkJCWNhc2UgQUNQSV9UWVBFX0lOVEVHRVI6CisJCQkJcGFyYW1zLT5pbnRlZ2Vy LnZhbHVlID0gYXJndW1lbnQtPnZhbHVlOworCQkJCWJyZWFrOworCQkJY2FzZSBBQ1BJX1RZUEVf U1RSSU5HOgorCQkJCXBhcmFtcy0+c3RyaW5nLmxlbmd0aCA9IGFyZ3VtZW50LT5tZXRob2RfbGVu Z3RoOworCQkJCXBhcmFtcy0+c3RyaW5nLnBvaW50ZXIgPSBhcmd1bWVudC0+cG9pbnRlcjsKKwkJ CQlicmVhazsKKwkJCWNhc2UgQUNQSV9UWVBFX0JVRkZFUjoKKwkJCQlwYXJhbXMtPmJ1ZmZlci5s ZW5ndGggPSBhcmd1bWVudC0+bWV0aG9kX2xlbmd0aDsKKwkJCQlwYXJhbXMtPmJ1ZmZlci5wb2lu dGVyID0gYXJndW1lbnQtPnBvaW50ZXI7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCWJy ZWFrOworCQkJfQorCQkJcGFyYW1zKys7CisJCQlhcmd1bWVudCsrOworCQl9CisJfQorCisJLyog cGFyc2Ugb3V0cHV0IGluZm8gKi8KKwljb3VudCA9IGluZm8tPm91dHB1dF9jb3VudDsKKwlhcmd1 bWVudCA9IGluZm8tPnBvdXRwdXRfYXJndW1lbnQ7CisKKwkvKiBldmFsdWF0ZSB0aGUgYWNwaSBt ZXRob2QgKi8KKwlzdGF0dXMgPSBhY3BpX2V2YWx1YXRlX29iamVjdChoYW5kbGUsIG5hbWUsICZp bnB1dCwgJm91dHB1dCk7CisKKwlpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHsKKwkJcmVzdWx0 ID0gLUVJTzsKKwkJZ290byBlcnJvcjsKKwl9CisKKwkvKiByZXR1cm4gdGhlIG91dHB1dCBpbmZv ICovCisJb2JqID0gb3V0cHV0LnBvaW50ZXI7CisKKwlpZiAoY291bnQgPiAxKSB7CisJCWlmICgo b2JqLT50eXBlICE9IEFDUElfVFlQRV9QQUNLQUdFKSB8fAorCQkJKG9iai0+cGFja2FnZS5jb3Vu dCAhPSBjb3VudCkpIHsKKwkJCXJlc3VsdCA9IC1FSU87CisJCQlnb3RvIGVycm9yOworCQl9CisJ CXBhcmFtcyA9IG9iai0+cGFja2FnZS5lbGVtZW50czsKKwl9IGVsc2UKKwkJcGFyYW1zID0gb2Jq OworCisJaWYgKHBhcmFtcyA9PSBOVUxMKSB7CisJCXJlc3VsdCA9IC1FSU87CisJCWdvdG8gZXJy b3I7CisJfQorCisJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKwkJaWYgKGFyZ3VtZW50 LT50eXBlICE9IHBhcmFtcy0+dHlwZSkgeworCQkJcmVzdWx0ID0gLUVJTzsKKwkJCWdvdG8gZXJy b3I7CisJCX0KKwkJc3dpdGNoIChwYXJhbXMtPnR5cGUpIHsKKwkJY2FzZSBBQ1BJX1RZUEVfSU5U RUdFUjoKKwkJCWFyZ3VtZW50LT52YWx1ZSA9IHBhcmFtcy0+aW50ZWdlci52YWx1ZTsKKwkJCWJy ZWFrOworCQljYXNlIEFDUElfVFlQRV9TVFJJTkc6CisJCQlpZiAoKHBhcmFtcy0+c3RyaW5nLmxl bmd0aCAhPSBhcmd1bWVudC0+ZGF0YV9sZW5ndGgpIHx8CisJCQkJKHBhcmFtcy0+c3RyaW5nLnBv aW50ZXIgPT0gTlVMTCkpIHsKKwkJCQlyZXN1bHQgPSAtRUlPOworCQkJCWdvdG8gZXJyb3I7CisJ CQl9CisJCQlzdHJuY3B5KGFyZ3VtZW50LT5wb2ludGVyLAorCQkJCXBhcmFtcy0+c3RyaW5nLnBv aW50ZXIsCisJCQkJcGFyYW1zLT5zdHJpbmcubGVuZ3RoKTsKKwkJCWJyZWFrOworCQljYXNlIEFD UElfVFlQRV9CVUZGRVI6CisJCQlpZiAocGFyYW1zLT5idWZmZXIucG9pbnRlciA9PSBOVUxMKSB7 CisJCQkJcmVzdWx0ID0gLUVJTzsKKwkJCQlnb3RvIGVycm9yOworCQkJfQorCQkJbWVtY3B5KGFy Z3VtZW50LT5wb2ludGVyLAorCQkJCXBhcmFtcy0+YnVmZmVyLnBvaW50ZXIsCisJCQkJYXJndW1l bnQtPmRhdGFfbGVuZ3RoKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0K KwkJYXJndW1lbnQrKzsKKwkJcGFyYW1zKys7CisJfQorCitlcnJvcjoKKwlpZiAob2JqICE9IE5V TEwpCisJCWtmcmVlKG9iaik7CisJa2ZyZWUoKHZvaWQgKilpbnB1dC5wb2ludGVyKTsKKwlyZXR1 cm4gcmVzdWx0OworfQorI2Vsc2UKK3N0YXRpYyBpbnQgYW1kZ3B1X2Nnc19hY3BpX2V2YWxfb2Jq ZWN0KHZvaWQgKmNnc19kZXZpY2UsCisJCQkJc3RydWN0IGNnc19hY3BpX21ldGhvZF9pbmZvICpp bmZvKQoreworCXJldHVybiAtRUlPOworfQorI2VuZGlmCisKK2ludCBhbWRncHVfY2dzX2NhbGxf YWNwaV9tZXRob2Qodm9pZCAqY2dzX2RldmljZSwKKwkJCQkJdWludDMyX3QgYWNwaV9tZXRob2Qs CisJCQkJCXVpbnQzMl90IGFjcGlfZnVuY3Rpb24sCisJCQkJCXZvaWQgKnBpbnB1dCwgdm9pZCAq cG91dHB1dCwKKwkJCQkJdWludDMyX3Qgb3V0cHV0X2NvdW50LAorCQkJCQl1aW50MzJfdCBpbnB1 dF9zaXplLAorCQkJCQl1aW50MzJfdCBvdXRwdXRfc2l6ZSkKK3sKKwlzdHJ1Y3QgY2dzX2FjcGlf bWV0aG9kX2FyZ3VtZW50IGFjcGlfaW5wdXRbMl0gPSB7IHswfSwgezB9IH07CisJc3RydWN0IGNn c19hY3BpX21ldGhvZF9hcmd1bWVudCBhY3BpX291dHB1dCA9IHswfTsKKwlzdHJ1Y3QgY2dzX2Fj cGlfbWV0aG9kX2luZm8gaW5mbyA9IHswfTsKKworCWFjcGlfaW5wdXRbMF0udHlwZSA9IENHU19B Q1BJX1RZUEVfSU5URUdFUjsKKwlhY3BpX2lucHV0WzBdLm1ldGhvZF9sZW5ndGggPSBzaXplb2Yo dWludDMyX3QpOworCWFjcGlfaW5wdXRbMF0uZGF0YV9sZW5ndGggPSBzaXplb2YodWludDMyX3Qp OworCWFjcGlfaW5wdXRbMF0udmFsdWUgPSBhY3BpX2Z1bmN0aW9uOworCisJYWNwaV9pbnB1dFsx XS50eXBlID0gQ0dTX0FDUElfVFlQRV9CVUZGRVI7CisJYWNwaV9pbnB1dFsxXS5tZXRob2RfbGVu Z3RoID0gQ0dTX0FDUElfTUFYX0JVRkZFUl9TSVpFOworCWFjcGlfaW5wdXRbMV0uZGF0YV9sZW5n dGggPSBpbnB1dF9zaXplOworCWFjcGlfaW5wdXRbMV0ucG9pbnRlciA9IHBpbnB1dDsKKworCWFj cGlfb3V0cHV0LnR5cGUgPSBDR1NfQUNQSV9UWVBFX0JVRkZFUjsKKwlhY3BpX291dHB1dC5tZXRo b2RfbGVuZ3RoID0gQ0dTX0FDUElfTUFYX0JVRkZFUl9TSVpFOworCWFjcGlfb3V0cHV0LmRhdGFf bGVuZ3RoID0gb3V0cHV0X3NpemU7CisJYWNwaV9vdXRwdXQucG9pbnRlciA9IHBvdXRwdXQ7CisK KwlpbmZvLnNpemUgPSBzaXplb2Yoc3RydWN0IGNnc19hY3BpX21ldGhvZF9pbmZvKTsKKwlpbmZv LmZpZWxkID0gQ0dTX0FDUElfRklFTERfTUVUSE9EX05BTUUgfCBDR1NfQUNQSV9GSUVMRF9JTlBV VF9BUkdVTUVOVF9DT1VOVDsKKwlpbmZvLmlucHV0X2NvdW50ID0gMjsKKwlpbmZvLm5hbWUgPSBh Y3BpX21ldGhvZDsKKwlpbmZvLnBpbnB1dF9hcmd1bWVudCA9IGFjcGlfaW5wdXQ7CisJaW5mby5v dXRwdXRfY291bnQgPSBvdXRwdXRfY291bnQ7CisJaW5mby5wb3V0cHV0X2FyZ3VtZW50ID0gJmFj cGlfb3V0cHV0OworCisJcmV0dXJuIGFtZGdwdV9jZ3NfYWNwaV9ldmFsX29iamVjdChjZ3NfZGV2 aWNlLCAmaW5mbyk7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2dzX29wcyBhbWRncHVfY2dz X29wcyA9IHsKIAlhbWRncHVfY2dzX2dwdV9tZW1faW5mbywKIAlhbWRncHVfY2dzX2dtYXBfa21l bSwKQEAgLTc2OCw3ICs5ODMsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNnc19vcHMgYW1kZ3B1 X2Nnc19vcHMgPSB7CiAJYW1kZ3B1X2Nnc19zZXRfY2FtZXJhX3ZvbHRhZ2VzLAogCWFtZGdwdV9j Z3NfZ2V0X2Zpcm13YXJlX2luZm8sCiAJYW1kZ3B1X2Nnc19zZXRfcG93ZXJnYXRpbmdfc3RhdGUs Ci0JYW1kZ3B1X2Nnc19zZXRfY2xvY2tnYXRpbmdfc3RhdGUKKwlhbWRncHVfY2dzX3NldF9jbG9j a2dhdGluZ19zdGF0ZSwKKwlhbWRncHVfY2dzX2NhbGxfYWNwaV9tZXRob2QsCiB9OwogCiBzdGF0 aWMgY29uc3Qgc3RydWN0IGNnc19vc19vcHMgYW1kZ3B1X2Nnc19vc19vcHMgPSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvY2dzX2NvbW1vbi5oIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9pbmNsdWRlL2Nnc19jb21tb24uaAppbmRleCA5OTJkY2Q4Li44YmY2ZWU1IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvY2dzX2NvbW1vbi5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9jZ3NfY29tbW9uLmgKQEAgLTEyOSw2ICsxMjks MzkgQEAgc3RydWN0IGNnc19maXJtd2FyZV9pbmZvIHsKIAogdHlwZWRlZiB1bnNpZ25lZCBsb25n IGNnc19oYW5kbGVfdDsKIAorI2RlZmluZSBDR1NfQUNQSV9NRVRIT0RfQVRDUyAgICAgICAgICAw eDUzNDM1NDQxCisjZGVmaW5lIENHU19BQ1BJX01FVEhPRF9BVElGICAgICAgICAgIDB4NDY0OTU0 NDEKKyNkZWZpbmUgQ0dTX0FDUElfTUVUSE9EX0FUUFggICAgICAgICAgMHg1ODUwNTQ0MQorI2Rl ZmluZSBDR1NfQUNQSV9GSUVMRF9NRVRIT0RfTkFNRSAgICAgICAgICAgICAgICAgICAgICAweDAw MDAwMDAxCisjZGVmaW5lIENHU19BQ1BJX0ZJRUxEX0lOUFVUX0FSR1VNRU5UX0NPVU5UICAgICAg ICAgICAgIDB4MDAwMDAwMDIKKyNkZWZpbmUgQ0dTX0FDUElfTUFYX0JVRkZFUl9TSVpFICAgICAy NTYKKyNkZWZpbmUgQ0dTX0FDUElfVFlQRV9BTlkgICAgICAgICAgICAgICAgICAgICAgMHgwMAor I2RlZmluZSBDR1NfQUNQSV9UWVBFX0lOVEVHRVIgICAgICAgICAgICAgICAweDAxCisjZGVmaW5l IENHU19BQ1BJX1RZUEVfU1RSSU5HICAgICAgICAgICAgICAgIDB4MDIKKyNkZWZpbmUgQ0dTX0FD UElfVFlQRV9CVUZGRVIgICAgICAgICAgICAgICAgMHgwMworI2RlZmluZSBDR1NfQUNQSV9UWVBF X1BBQ0tBR0UgICAgICAgICAgICAgICAweDA0CisKK3N0cnVjdCBjZ3NfYWNwaV9tZXRob2RfYXJn dW1lbnQgeworCXVpbnQzMl90IHR5cGU7CisJdWludDMyX3QgbWV0aG9kX2xlbmd0aDsKKwl1aW50 MzJfdCBkYXRhX2xlbmd0aDsKKwl1bmlvbnsKKwkJdWludDMyX3QgdmFsdWU7CisJCXZvaWQgKnBv aW50ZXI7CisJfTsKK307CisKK3N0cnVjdCBjZ3NfYWNwaV9tZXRob2RfaW5mbyB7CisJdWludDMy X3Qgc2l6ZTsKKwl1aW50MzJfdCBmaWVsZDsKKwl1aW50MzJfdCBpbnB1dF9jb3VudDsKKwl1aW50 MzJfdCBuYW1lOworCXN0cnVjdCBjZ3NfYWNwaV9tZXRob2RfYXJndW1lbnQgKnBpbnB1dF9hcmd1 bWVudDsKKwl1aW50MzJfdCBvdXRwdXRfY291bnQ7CisJc3RydWN0IGNnc19hY3BpX21ldGhvZF9h cmd1bWVudCAqcG91dHB1dF9hcmd1bWVudDsKKwl1aW50MzJfdCBwYWRkaW5nWzldOworfTsKKwog LyoqCiAgKiBjZ3NfZ3B1X21lbV9pbmZvKCkgLSBSZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgbWVt b3J5IGhlYXBzCiAgKiBAY2dzX2RldmljZTogb3BhcXVlIGRldmljZSBoYW5kbGUKQEAgLTQ5Myw2 ICs1MjYsMTMgQEAgdHlwZWRlZiBpbnQoKmNnc19zZXRfY2xvY2tnYXRpbmdfc3RhdGUpKHZvaWQg KmNnc19kZXZpY2UsCiAJCQkJICBlbnVtIGFtZF9pcF9ibG9ja190eXBlIGJsb2NrX3R5cGUsCiAJ CQkJICBlbnVtIGFtZF9jbG9ja2dhdGluZ19zdGF0ZSBzdGF0ZSk7CiAKK3R5cGVkZWYgaW50ICgq Y2dzX2NhbGxfYWNwaV9tZXRob2QpKHZvaWQgKmNnc19kZXZpY2UsCisJCQkJCXVpbnQzMl90IGFj cGlfbWV0aG9kLAorCQkJCQl1aW50MzJfdCBhY3BpX2Z1bmN0aW9uLAorCQkJCQl2b2lkICpwaW5w dXQsIHZvaWQgKnBvdXRwdXQsCisJCQkJCXVpbnQzMl90IG91dHB1dF9jb3VudCwKKwkJCQkJdWlu dDMyX3QgaW5wdXRfc2l6ZSwKKwkJCQkJdWludDMyX3Qgb3V0cHV0X3NpemUpOwogc3RydWN0IGNn c19vcHMgewogCS8qIG1lbW9yeSBtYW5hZ2VtZW50IGNhbGxzIChzaW1pbGFyIHRvIEtGRCBpbnRl cmZhY2UpICovCiAJY2dzX2dwdV9tZW1faW5mb190IGdwdV9tZW1faW5mbzsKQEAgLTUzMyw3ICs1 NzMsOCBAQCBzdHJ1Y3QgY2dzX29wcyB7CiAJLyogY2cgcGcgaW50ZXJmYWNlKi8KIAljZ3Nfc2V0 X3Bvd2VyZ2F0aW5nX3N0YXRlIHNldF9wb3dlcmdhdGluZ19zdGF0ZTsKIAljZ3Nfc2V0X2Nsb2Nr Z2F0aW5nX3N0YXRlIHNldF9jbG9ja2dhdGluZ19zdGF0ZTsKLQkvKiBBQ1BJIChUT0RPKSAqLwor CS8qIEFDUEkgKi8KKwljZ3NfY2FsbF9hY3BpX21ldGhvZCBjYWxsX2FjcGlfbWV0aG9kOwogfTsK IAogc3RydWN0IGNnc19vc19vcHM7IC8qIFRvIGJlIGRlZmluZSBpbiBPUy1zcGVjaWZpYyBDR1Mg aGVhZGVyICovCkBAIC02MjAsNSArNjYxLDcgQEAgc3RydWN0IGNnc19kZXZpY2UKIAlDR1NfQ0FM TChzZXRfcG93ZXJnYXRpbmdfc3RhdGUsIGRldiwgYmxvY2tfdHlwZSwgc3RhdGUpCiAjZGVmaW5l IGNnc19zZXRfY2xvY2tnYXRpbmdfc3RhdGUoZGV2LCBibG9ja190eXBlLCBzdGF0ZSkJXAogCUNH U19DQUxMKHNldF9jbG9ja2dhdGluZ19zdGF0ZSwgZGV2LCBibG9ja190eXBlLCBzdGF0ZSkKKyNk ZWZpbmUgY2dzX2NhbGxfYWNwaV9tZXRob2QoZGV2LCBhY3BpX21ldGhvZCwgYWNwaV9mdW5jdGlv biwgcGludHB1dCwgcG91dHB1dCwgb3V0cHV0X2NvdW50LCBpbnB1dF9zaXplLCBvdXRwdXRfc2l6 ZSkJXAorCUNHU19DQUxMKGNhbGxfYWNwaV9tZXRob2QsIGRldiwgYWNwaV9tZXRob2QsIGFjcGlf ZnVuY3Rpb24sIHBpbnRwdXQsIHBvdXRwdXQsIG91dHB1dF9jb3VudCwgaW5wdXRfc2l6ZSwgb3V0 cHV0X3NpemUpCiAKICNlbmRpZiAvKiBfQ0dTX0NPTU1PTl9IICovCi0tIAoxLjguMy4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=