From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,1/3] ACPI / adxl: Address translation interface using ACPI DSM From: "Luck, Tony" Message-Id: <20181011211236.23525-2-tony.luck@intel.com> Date: Thu, 11 Oct 2018 14:12:34 -0700 To: "Rafael J. Wysocki" Cc: Tony Luck , Borislav Petkov , Qiuxu Zhuo , Aristeu Rozanski , Mauro Carvalho Chehab , linux-edac@vger.kernel.org, linux-acpi@vger.kernel.org List-ID: U29tZSBuZXcgc2VydmVycyBwcm92aWRlIGFuIGludGVyZmFjZSBzbyB0aGF0IHRoZSBPUyBjYW4g YXNrIHRoZQpCSU9TIHRvIHRyYW5zbGF0ZSBhIHN5c3RlbSBwaHlzaWNhbCBhZGRyZXNzIHRvIGEg bWVtb3J5IGFkZHJlc3MKKHNvY2tldCwgbWVtb3J5IGNvbnRyb2xsZXIsIGNoYW5uZWwsIHJhbmss IGRpbW0sIGV0Yy4pLiBUaGlzIGlzCnVzZWZ1bCBmb3IgRURBQyBkcml2ZXJzIHRoYXQgd2FudCB0 byB0YWtlIHRoZSBhZGRyZXNzIG9mIGFuIGVycm9yCnJlcG9ydGVkIGluIGEgbWFjaGluZSBjaGVj ayBiYW5rIGFuZCBsZXQgdGhlIHVzZXIga25vdyB3aGljaApESU1NIG1heSBuZWVkIHRvIGJlIHJl cGxhY2VkLgoKU3BlY2lmaWNhdGlvbiBmb3IgdGhpcyBpbnRlcmZhY2UgaXMgYXZhaWxhYmxlIGF0 OgoKICAgIGh0dHBzOi8vY2RyZHYyLmludGVsLmNvbS92MS9kbC9nZXRDb250ZW50LzYwMzM1NAoK W0Jhc2VkIG9uIGVhcmxpZXIgY29kZSBieSBRaXV4dSBaaHVvIDxxaXV4dS56aHVvQGludGVsLmNv bT5dCgpUZXN0ZWQtYnk6IFFpdXh1IFpodW8gPHFpdXh1LnpodW9AaW50ZWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBUb255IEx1Y2sgPHRvbnkubHVja0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9hY3Bp L0tjb25maWcgICAgIHwgICAzICsKIGRyaXZlcnMvYWNwaS9NYWtlZmlsZSAgICB8ICAgMyArCiBk cml2ZXJzL2FjcGkvYWNwaV9hZHhsLmMgfCAxOTkgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiBpbmNsdWRlL2xpbnV4L2FkeGwuaCAgICAgfCAgMjUgKysrKysKIDQgZmls ZXMgY2hhbmdlZCwgMjMwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2FjcGkvYWNwaV9hZHhsLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L2FkeGwu aAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9LY29uZmlnIGIvZHJpdmVycy9hY3BpL0tjb25m aWcKaW5kZXggZGQxZWVhOTBmNjdmLi4wOTk5MWNjOTFiODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv YWNwaS9LY29uZmlnCisrKyBiL2RyaXZlcnMvYWNwaS9LY29uZmlnCkBAIC00OTgsNiArNDk4LDkg QEAgY29uZmlnIEFDUElfRVhUTE9HCiAJICBkcml2ZXIgYWRkcyBzdXBwb3J0IGZvciB0aGF0IGZ1 bmN0aW9uYWxpdHkgd2l0aCBjb3JyZXNwb25kaW5nCiAJICB0cmFjZXBvaW50IHdoaWNoIGNhcnJp ZXMgdGhhdCBpbmZvcm1hdGlvbiB0byB1c2Vyc3BhY2UuCiAKK2NvbmZpZyBBQ1BJX0FEWEwKKwli b29sCisKIG1lbnVjb25maWcgUE1JQ19PUFJFR0lPTgogCWJvb2wgIlBNSUMgKFBvd2VyIE1hbmFn ZW1lbnQgSW50ZWdyYXRlZCBDaXJjdWl0KSBvcGVyYXRpb24gcmVnaW9uIHN1cHBvcnQiCiAJaGVs cApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL01ha2VmaWxlIGIvZHJpdmVycy9hY3BpL01ha2Vm aWxlCmluZGV4IDZkNTlhYTEwOWE5MS4uZWRjMDM5MzEzY2Q2IDEwMDY0NAotLS0gYS9kcml2ZXJz L2FjcGkvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9hY3BpL01ha2VmaWxlCkBAIC02MSw2ICs2MSw5 IEBAIGFjcGktJChDT05GSUdfQUNQSV9MUElUKQkrPSBhY3BpX2xwaXQubwogYWNwaS0kKENPTkZJ R19BQ1BJX0dFTkVSSUNfR1NJKSArPSBpcnEubwogYWNwaS0kKENPTkZJR19BQ1BJX1dBVENIRE9H KQkrPSBhY3BpX3dhdGNoZG9nLm8KIAorIyBBZGRyZXNzIHRyYW5zbGF0aW9uCithY3BpLSQoQ09O RklHX0FDUElfQURYTCkJKz0gYWNwaV9hZHhsLm8KKwogIyBUaGVzZSBhcmUgKHBvdGVudGlhbGx5 KSBzZXBhcmF0ZSBtb2R1bGVzCiAKICMgSVBNSSBtYXkgYmUgdXNlZCBieSBvdGhlciBkcml2ZXJz LCBzbyBpdCBoYXMgdG8gaW5pdGlhbGlzZSBiZWZvcmUgdGhlbQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9hY3BpL2FjcGlfYWR4bC5jIGIvZHJpdmVycy9hY3BpL2FjcGlfYWR4bC5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjJiMTI4MjJmMjVkCi0tLSAvZGV2L251bGwK KysrIGIvZHJpdmVycy9hY3BpL2FjcGlfYWR4bC5jCkBAIC0wLDAgKzEsMTk5IEBACisvLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIEFkZHJlc3MgdHJhbnNsYXRpb24g aW50ZXJmYWNlIHZpYSBBQ1BJIERTTS4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBJbnRlbCBDb3Jw b3JhdGlvbgorICoKKyAqIFNwZWNpZmljYXRpb24gZm9yIHRoaXMgaW50ZXJmYWNlIGlzIGF2YWls YWJsZSBhdDoKKyAqCisgKglodHRwczovL2NkcmR2Mi5pbnRlbC5jb20vdjEvZGwvZ2V0Q29udGVu dC82MDMzNTQKKyAqLworCisjaWZkZWYgQ09ORklHX0FDUElfQURYTAorI2luY2x1ZGUgPGxpbnV4 L2FjcGkuaD4KKyNpbmNsdWRlIDxsaW51eC9hZHhsLmg+CisKKyNkZWZpbmUgQURYTF9SRVZJU0lP TgkJCTB4MQorI2RlZmluZSBBRFhMX0lEWF9HRVRfQUREUl9QQVJBTVMJMHgxCisjZGVmaW5lIEFE WExfSURYX0ZPUldBUkRfVFJBTlNMQVRFCTB4MgorI2RlZmluZSBBQ1BJX0FEWExfUEFUSAkJCSJc XF9TQi5BRFhMIgorCisvKgorICogVGhlIHNwZWNpZmljYXRpb24gZG9lc24ndCBwcm92aWRlIGEg bGltaXQgb24gaG93IG1hbnkKKyAqIGNvbXBvbmVudHMgYXJlIGluIGEgbWVtb3J5IGFkZHJlc3Mu IEJ1dCBzaW5jZSB3ZSBhbGxvY2F0ZQorICogbWVtb3J5IGJhc2VkIG9uIHRoZSBudW1iZXIgdGhl IEJJT1MgdGVsbHMgdXMsIHdlIHNob3VsZAorICogZGVmZW5kIGFnYWluc3QgaW5zYW5lIHZhbHVl cy4KKyAqLworI2RlZmluZSBBRFhMX01BWF9DT01QT05FTlRTCQk1MDAKKworI3VuZGVmIHByX2Zt dAorI2RlZmluZSBwcl9mbXQoZm10KSAiQURYTDogIiBmbXQKKworc3RhdGljIGFjcGlfaGFuZGxl IGhhbmRsZTsKK3N0YXRpYyB1bmlvbiBhY3BpX29iamVjdCAqcGFyYW1zOworc3RhdGljIGNvbnN0 IGd1aWRfdCBhZHhsX2d1aWQgPQorCUdVSURfSU5JVCgweEFBM0MwNTBBLCAweDdFQTQsIDB4NEMx RiwKKwkJICAweEFGLCAweERBLCAweDEyLCAweDY3LCAweERGLCAweEQzLCAweEQ0LCAweDhEKTsK Kworc3RhdGljIGludCBhZHhsX2NvdW50Oworc3RhdGljIGNoYXIgKiphZHhsX2NvbXBvbmVudF9u YW1lczsKKworc3RhdGljIHVuaW9uIGFjcGlfb2JqZWN0ICphZHhsX2RzbShpbnQgY21kLCB1bmlv biBhY3BpX29iamVjdCBhcmd2W10pCit7CisJdW5pb24gYWNwaV9vYmplY3QgKm9iaiwgKm87CisK KwlvYmogPSBhY3BpX2V2YWx1YXRlX2RzbV90eXBlZChoYW5kbGUsICZhZHhsX2d1aWQsIEFEWExf UkVWSVNJT04sCisJCQkJICAgICAgY21kLCBhcmd2LCBBQ1BJX1RZUEVfUEFDS0FHRSk7CisJaWYg KCFvYmopIHsKKwkJcHJfaW5mbygiRFNNIGNhbGwgZmFpbGVkIGZvciBjbWQ9JWRcbiIsIGNtZCk7 CisJCXJldHVybiBOVUxMOworCX0KKworCWlmIChvYmotPnBhY2thZ2UuY291bnQgIT0gMikgewor CQlwcl9pbmZvKCJCYWQgcGtnIGNvdW50ICVkXG4iLCBvYmotPnBhY2thZ2UuY291bnQpOworCQln b3RvIGVycjsKKwl9CisKKwlvID0gb2JqLT5wYWNrYWdlLmVsZW1lbnRzOworCWlmIChvLT50eXBl ICE9IEFDUElfVFlQRV9JTlRFR0VSKSB7CisJCXByX2luZm8oIkJhZCAxc3QgZWxlbWVudCB0eXBl ICVkXG4iLCBvLT50eXBlKTsKKwkJZ290byBlcnI7CisJfQorCWlmIChvLT5pbnRlZ2VyLnZhbHVl KSB7CisJCXByX2luZm8oIkJhZCByZXQgdmFsICVsbHVcbiIsIG8tPmludGVnZXIudmFsdWUpOwor CQlnb3RvIGVycjsKKwl9CisKKwlvID0gb2JqLT5wYWNrYWdlLmVsZW1lbnRzICsgMTsKKwlpZiAo by0+dHlwZSAhPSBBQ1BJX1RZUEVfUEFDS0FHRSkgeworCQlwcl9pbmZvKCJCYWQgMm5kIGVsZW1l bnQgdHlwZSAlZFxuIiwgby0+dHlwZSk7CisJCWdvdG8gZXJyOworCX0KKwlyZXR1cm4gb2JqOwor CitlcnI6CisJQUNQSV9GUkVFKG9iaik7CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qKgorICogYWR4 bF9nZXRfY29tcG9uZW50X25hbWVzIC0gZ2V0IGxpc3Qgb2YgbWVtb3J5IGNvbXBvbmVudCBuYW1l cworICogUmV0dXJucyBOVUxMIHRlcm1pbmF0ZWQgbGlzdCBvZiBzdHJpbmcgbmFtZXMKKyAqCisg KiBHaXZlIHRoZSBjYWxsZXIgYSBwb2ludGVyIHRvIHRoZSBsaXN0IG9mIG1lbW9yeSBjb21wb25l bnQgbmFtZXMKKyAqIGUuZy4geyAiU3lzdGVtQWRkcmVzcyIsICJQcm9jZXNzb3JTb2NrZXRJZCIs ICJDaGFubmVsSWQiLCAuLi4gTlVMTCB9CisgKiBDYWxsZXIgc2hvdWxkIGNvdW50IGhvdyBtYW55 IHN0cmluZ3MgaW4gb3JkZXIgdG8gYWxsb2NhdGUgYSBidWZmZXIKKyAqIGZvciB0aGUgcmV0dXJu IGZyb20gYWR4bF9kZWNvZGUoKS4KKyAqLworY29uc3QgY2hhciAqIGNvbnN0ICphZHhsX2dldF9j b21wb25lbnRfbmFtZXModm9pZCkKK3sKKwlyZXR1cm4gKGNvbnN0IGNoYXIgKiBjb25zdCAqKWFk eGxfY29tcG9uZW50X25hbWVzOworfQorRVhQT1JUX1NZTUJPTF9HUEwoYWR4bF9nZXRfY29tcG9u ZW50X25hbWVzKTsKKworLyoqCisgKiBhZHhsX2RlY29kZSAtIGFzayBCSU9TIHRvIGRlY29kZSBh IHN5c3RlbSBhZGRyZXNzIHRvIG1lbW9yeSBhZGRyZXNzCisgKiBAYWRkcjogdGhlIGFkZHJlc3Mg dG8gZGVjb2RlCisgKiBAY29tcG9uZW50X3ZhbHVlczogcG9pbnRlciB0byBhcnJheSBvZiB2YWx1 ZXMgZm9yIGVhY2ggY29tcG9uZW50CisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUg ZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqCisgKiBUaGUgaW5kZXggb2YgZWFjaCB2YWx1ZSByZXR1 cm5lZCBpbiB0aGUgYXJyYXkgbWF0Y2hlcyB0aGUgaW5kZXggb2YKKyAqIGVhY2ggY29tcG9uZW50 IG5hbWUgcmV0dXJuZWQgYnkgYWR4bF9nZXRfY29tcG9uZW50X25hbWVzKCkuCisgKiBDb21wb25l bnRzIHRoYXQgYXJlIG5vdCBkZWZpbmVkIGZvciB0aGlzIGFkZHJlc3MgdHJhbnNsYXRpb24gKGUu Zy4KKyAqIG1pcnJvciBjaGFubmVsIG51bWJlciBmb3IgYSBub24tbWlycm9yZWQgYWRkcmVzcykg YXJlIHNldCB0byB+MHVsbC4KKyAqLworaW50IGFkeGxfZGVjb2RlKHU2NCBhZGRyLCB1NjQgY29t cG9uZW50X3ZhbHVlc1tdKQoreworCXVuaW9uIGFjcGlfb2JqZWN0IGFyZ3Y0WzJdLCAqcmVzdWx0 cywgKnI7CisJaW50IGksIGNudDsKKworCWlmICghYWR4bF9jb21wb25lbnRfbmFtZXMpCisJCXJl dHVybiAtRU9QTk9UU1VQUDsKKworCWFyZ3Y0WzBdLnR5cGUgPSBBQ1BJX1RZUEVfUEFDS0FHRTsK Kwlhcmd2NFswXS5wYWNrYWdlLmNvdW50ID0gMTsKKwlhcmd2NFswXS5wYWNrYWdlLmVsZW1lbnRz ID0gJmFyZ3Y0WzFdOworCWFyZ3Y0WzFdLmludGVnZXIudHlwZSA9IEFDUElfVFlQRV9JTlRFR0VS OworCWFyZ3Y0WzFdLmludGVnZXIudmFsdWUgPSBhZGRyOworCisJcmVzdWx0cyA9IGFkeGxfZHNt KEFEWExfSURYX0ZPUldBUkRfVFJBTlNMQVRFLCBhcmd2NCk7CisJaWYgKCFyZXN1bHRzKQorCQly ZXR1cm4gLUVJTlZBTDsKKworCXIgPSByZXN1bHRzLT5wYWNrYWdlLmVsZW1lbnRzICsgMTsKKwlj bnQgPSByLT5wYWNrYWdlLmNvdW50OworCWlmIChjbnQgIT0gYWR4bF9jb3VudCkgeworCQlBQ1BJ X0ZSRUUocmVzdWx0cyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlyID0gci0+cGFja2FnZS5l bGVtZW50czsKKworCWZvciAoaSA9IDA7IGkgPCBjbnQ7IGkrKykKKwkJY29tcG9uZW50X3ZhbHVl c1tpXSA9IHJbaV0uaW50ZWdlci52YWx1ZTsKKworCUFDUElfRlJFRShyZXN1bHRzKTsKKworCXJl dHVybiAwOworfQorRVhQT1JUX1NZTUJPTF9HUEwoYWR4bF9kZWNvZGUpOworCitzdGF0aWMgYm9v bCBhZHhsX2RldGVjdCh2b2lkKQoreworCWNoYXIgKnBhdGggPSBBQ1BJX0FEWExfUEFUSDsKKwl1 bmlvbiBhY3BpX29iamVjdCAqcDsKKwlhY3BpX3N0YXR1cyBzdGF0dXM7CisJaW50IGk7CisKKwlz dGF0dXMgPSBhY3BpX2dldF9oYW5kbGUoTlVMTCwgcGF0aCwgJmhhbmRsZSk7CisJaWYgKEFDUElf RkFJTFVSRShzdGF0dXMpKSB7CisJCXByX2luZm8oIk5vIEFDUEkgaGFuZGxlIGZvciBwYXRoICVz XG4iLCBwYXRoKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWlmICghYWNwaV9oYXNfbWV0aG9k KGhhbmRsZSwgIl9EU00iKSkgeworCQlwcl9pbmZvKCJObyBEU00gbWV0aG9kXG4iKTsKKwkJcmV0 dXJuIGZhbHNlOworCX0KKworCWlmICghYWNwaV9jaGVja19kc20oaGFuZGxlLCAmYWR4bF9ndWlk LCBBRFhMX1JFVklTSU9OLAorCQkJICAgIEFEWExfSURYX0dFVF9BRERSX1BBUkFNUyB8CisJCQkg ICAgQURYTF9JRFhfRk9SV0FSRF9UUkFOU0xBVEUpKSB7CisJCXByX2luZm8oIk5vIEFEWEwgRFNN IG1ldGhvZHNcbiIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcGFyYW1zID0gYWR4bF9kc20o QURYTF9JRFhfR0VUX0FERFJfUEFSQU1TLCBOVUxMKTsKKwlpZiAoIXBhcmFtcykgeworCQlwcl9p bmZvKCJGYWlsZWQgdG8gZ2V0IHBhcmFtc1xuIik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlw ID0gcGFyYW1zLT5wYWNrYWdlLmVsZW1lbnRzICsgMTsKKwlhZHhsX2NvdW50ID0gcC0+cGFja2Fn ZS5jb3VudDsKKwlpZiAoYWR4bF9jb3VudCA+IEFEWExfTUFYX0NPTVBPTkVOVFMpIHsKKwkJcHJf aW5mbygiSW5zYW5lIG51bWJlciBvZiBhZGRyZXNzIGNvbXBvbmVudCBuYW1lcyAlZFxuIiwgYWR4 bF9jb3VudCk7CisJCUFDUElfRlJFRShwYXJhbXMpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCXAg PSBwLT5wYWNrYWdlLmVsZW1lbnRzOworCisJYWR4bF9jb21wb25lbnRfbmFtZXMgPSBrY2FsbG9j KGFkeGxfY291bnQgKyAxLCBzaXplb2YoY2hhciAqKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFhZHhs X2NvbXBvbmVudF9uYW1lcykgeworCQlBQ1BJX0ZSRUUocGFyYW1zKTsKKwkJcmV0dXJuIGZhbHNl OworCX0KKworCWZvciAoaSA9IDA7IGkgPCBhZHhsX2NvdW50OyBpKyspCisJCWFkeGxfY29tcG9u ZW50X25hbWVzW2ldID0gcFtpXS5zdHJpbmcucG9pbnRlcjsKKworCXJldHVybiB0cnVlOworfQor CitzdGF0aWMgaW50IF9faW5pdCBhZHhsX2luaXQodm9pZCkKK3sKKwlpZiAoIWFkeGxfZGV0ZWN0 KCkpCisJCXJldHVybiAtRU5PREVWOworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKGFk eGxfaW5pdCk7CisKKyNlbmRpZiAvKiBDT05GSUdfQUNQSV9BRFhMICovCmRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L2FkeGwuaCBiL2luY2x1ZGUvbGludXgvYWR4bC5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjAyMzcwNGU1ZDBiCi0tLSAvZGV2L251bGwKKysr IGIvaW5jbHVkZS9saW51eC9hZHhsLmgKQEAgLTAsMCArMSwyNSBAQAorLyogU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKy8qCisgKiBBZGRyZXNzIHRyYW5zbGF0aW9uIGludGVy ZmFjZSB2aWEgQUNQSSBEU00uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggSW50ZWwgQ29ycG9yYXRp b24KKyAqLworCisjaWZuZGVmIF9MSU5VWF9BRFhMX0gKKyNkZWZpbmUgX0xJTlVYX0FEWExfSAor CisjaWZkZWYgQ09ORklHX0FDUElfQURYTAorY29uc3QgY2hhciAqIGNvbnN0ICphZHhsX2dldF9j b21wb25lbnRfbmFtZXModm9pZCk7CitpbnQgYWR4bF9kZWNvZGUodTY0IGFkZHIsIHU2NCBjb21w b25lbnRfdmFsdWVzW10pOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqIGNvbnN0 ICphZHhsX2dldF9jb21wb25lbnRfbmFtZXModm9pZCkKK3sKKwlyZXR1cm4gTlVMTDsKK30KKwor c3RhdGljIGlubGluZSBpbnQgYWR4bF9kZWNvZGUodTY0IGFkZHIsIHU2NCBjb21wb25lbnRfdmFs dWVzW10pCit7CisJcmV0dXJuIC1FT1BOT1RTVVBQOworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBf TElOVVhfQURYTF9IICovCg==