From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F1181C47082 for ; Thu, 3 Jun 2021 04:58:57 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BBA48613EE for ; Thu, 3 Jun 2021 04:58:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BBA48613EE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4701F6F3A5; Thu, 3 Jun 2021 04:58:44 +0000 (UTC) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id BD1FE6F39F; Thu, 3 Jun 2021 04:58:42 +0000 (UTC) IronPort-SDR: MOgmIjN2cE/8kAHfg/nqLiaIRgImUFyCiCvwNBDiEVH9bST158o9JqDlK+MXm4O2UlUKulWRzC zizbapZ2hNow== X-IronPort-AV: E=McAfee;i="6200,9189,10003"; a="203956512" X-IronPort-AV: E=Sophos;i="5.83,244,1616482800"; d="scan'208";a="203956512" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jun 2021 21:58:41 -0700 IronPort-SDR: hMr2tA0KtL0XgVnYj1jFWuDUgdPiMUY3WTh1pZpJnQRlkIdpl1lAcg0zK5dbDPE6GXJsNsrp0v oMd6PCQyCSZw== X-IronPort-AV: E=Sophos;i="5.83,244,1616482800"; d="scan'208";a="480020002" Received: from dhiatt-server.jf.intel.com ([10.54.81.3]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jun 2021 21:58:40 -0700 From: Matthew Brost To: , Date: Wed, 2 Jun 2021 22:16:15 -0700 Message-Id: <20210603051630.2635-6-matthew.brost@intel.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20210603051630.2635-1-matthew.brost@intel.com> References: <20210603051630.2635-1-matthew.brost@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 05/20] drm/i915/guc: Keep strict GuC ABI definitions X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+CgpPdXIg ZndpZi5oIGZpbGUgaXMgbm93IG1peCBvZiBzdHJpY3QgZmlybXdhcmUgQUJJIGRlZmluaXRpb25z IGFuZApzZXQgb2Ygb3VyIGhlbHBlcnMuIEluIGFudGljaXBhdGlvbiBvZiB1cGNvbWluZyBjaGFu Z2VzIHRvIHRoZSBHdUMKaW50ZXJmYWNlIHRyeSB0byBrZWVwIHRoZW0gc2VwYXJhdGUgaW4gc21h bGxlciBtYWludGFpbmFibGUgZmlsZXMuCgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgV2FqZGVjemtv IDxtaWNoYWwud2FqZGVjemtvQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0dGhldyBCcm9z dCA8bWF0dGhldy5icm9zdEBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBNaWNoYcWCIFdpbmlhcnNr aSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+Ci0tLQogLi4uL2dwdS9kcm0vaTkxNS9ndC91 Yy9hYmkvZ3VjX2FjdGlvbnNfYWJpLmggIHwgIDUxICsrKysrCiAuLi4vZ3QvdWMvYWJpL2d1Y19j b21tdW5pY2F0aW9uX2N0Yl9hYmkuaCAgICAgfCAxMDYgKysrKysrKysrCiAuLi4vZ3QvdWMvYWJp L2d1Y19jb21tdW5pY2F0aW9uX21taW9fYWJpLmggICAgfCAgNTIgKysrKysKIC4uLi9ncHUvZHJt L2k5MTUvZ3QvdWMvYWJpL2d1Y19lcnJvcnNfYWJpLmggICB8ICAxNCArKwogLi4uL2dwdS9kcm0v aTkxNS9ndC91Yy9hYmkvZ3VjX21lc3NhZ2VzX2FiaS5oIHwgIDIxICsrCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZndpZi5oICAgfCAyMDMgKy0tLS0tLS0tLS0tLS0tLS0t CiA2IGZpbGVzIGNoYW5nZWQsIDI1MCBpbnNlcnRpb25zKCspLCAxOTcgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19hY3Rp b25zX2FiaS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv YWJpL2d1Y19jb21tdW5pY2F0aW9uX2N0Yl9hYmkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2FiaS9ndWNfY29tbXVuaWNhdGlvbl9tbWlvX2FiaS5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19lcnJv cnNfYWJpLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9h YmkvZ3VjX21lc3NhZ2VzX2FiaS5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvYWJpL2d1Y19hY3Rpb25zX2FiaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv YWJpL2d1Y19hY3Rpb25zX2FiaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uOTBlZmVmOGE3M2U0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvYWJpL2d1Y19hY3Rpb25zX2FiaS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDIx IEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfQUJJX0dVQ19BQ1RJT05TX0FCSV9I CisjZGVmaW5lIF9BQklfR1VDX0FDVElPTlNfQUJJX0gKKworZW51bSBpbnRlbF9ndWNfYWN0aW9u IHsKKwlJTlRFTF9HVUNfQUNUSU9OX0RFRkFVTFQgPSAweDAsCisJSU5URUxfR1VDX0FDVElPTl9S RVFVRVNUX1BSRUVNUFRJT04gPSAweDIsCisJSU5URUxfR1VDX0FDVElPTl9SRVFVRVNUX0VOR0lO RV9SRVNFVCA9IDB4MywKKwlJTlRFTF9HVUNfQUNUSU9OX0FMTE9DQVRFX0RPT1JCRUxMID0gMHgx MCwKKwlJTlRFTF9HVUNfQUNUSU9OX0RFQUxMT0NBVEVfRE9PUkJFTEwgPSAweDIwLAorCUlOVEVM X0dVQ19BQ1RJT05fTE9HX0JVRkZFUl9GSUxFX0ZMVVNIX0NPTVBMRVRFID0gMHgzMCwKKwlJTlRF TF9HVUNfQUNUSU9OX1VLX0xPR19FTkFCTEVfTE9HR0lORyA9IDB4NDAsCisJSU5URUxfR1VDX0FD VElPTl9GT1JDRV9MT0dfQlVGRkVSX0ZMVVNIID0gMHgzMDIsCisJSU5URUxfR1VDX0FDVElPTl9F TlRFUl9TX1NUQVRFID0gMHg1MDEsCisJSU5URUxfR1VDX0FDVElPTl9FWElUX1NfU1RBVEUgPSAw eDUwMiwKKwlJTlRFTF9HVUNfQUNUSU9OX1NMUENfUkVRVUVTVCA9IDB4MzAwMywKKwlJTlRFTF9H VUNfQUNUSU9OX0FVVEhFTlRJQ0FURV9IVUMgPSAweDQwMDAsCisJSU5URUxfR1VDX0FDVElPTl9S RUdJU1RFUl9DT01NQU5EX1RSQU5TUE9SVF9CVUZGRVIgPSAweDQ1MDUsCisJSU5URUxfR1VDX0FD VElPTl9ERVJFR0lTVEVSX0NPTU1BTkRfVFJBTlNQT1JUX0JVRkZFUiA9IDB4NDUwNiwKKwlJTlRF TF9HVUNfQUNUSU9OX0xJTUlUCit9OworCitlbnVtIGludGVsX2d1Y19wcmVlbXB0X29wdGlvbnMg eworCUlOVEVMX0dVQ19QUkVFTVBUX09QVElPTl9EUk9QX1dPUktfUSA9IDB4NCwKKwlJTlRFTF9H VUNfUFJFRU1QVF9PUFRJT05fRFJPUF9TVUJNSVRfUSA9IDB4OCwKK307CisKK2VudW0gaW50ZWxf Z3VjX3JlcG9ydF9zdGF0dXMgeworCUlOVEVMX0dVQ19SRVBPUlRfU1RBVFVTX1VOS05PV04gPSAw eDAsCisJSU5URUxfR1VDX1JFUE9SVF9TVEFUVVNfQUNLRUQgPSAweDEsCisJSU5URUxfR1VDX1JF UE9SVF9TVEFUVVNfRVJST1IgPSAweDIsCisJSU5URUxfR1VDX1JFUE9SVF9TVEFUVVNfQ09NUExF VEUgPSAweDQsCit9OworCitlbnVtIGludGVsX2d1Y19zbGVlcF9zdGF0ZV9zdGF0dXMgeworCUlO VEVMX0dVQ19TTEVFUF9TVEFURV9TVUNDRVNTID0gMHgxLAorCUlOVEVMX0dVQ19TTEVFUF9TVEFU RV9QUkVFTVBUX1RPX0lETEVfRkFJTEVEID0gMHgyLAorCUlOVEVMX0dVQ19TTEVFUF9TVEFURV9F TkdJTkVfUkVTRVRfRkFJTEVEID0gMHgzCisjZGVmaW5lIElOVEVMX0dVQ19TTEVFUF9TVEFURV9J TlZBTElEX01BU0sgMHg4MDAwMDAwMAorfTsKKworI2RlZmluZSBHVUNfTE9HX0NPTlRST0xfTE9H R0lOR19FTkFCTEVECSgxIDw8IDApCisjZGVmaW5lIEdVQ19MT0dfQ09OVFJPTF9WRVJCT1NJVFlf U0hJRlQJNAorI2RlZmluZSBHVUNfTE9HX0NPTlRST0xfVkVSQk9TSVRZX01BU0sJKDB4RiA8PCBH VUNfTE9HX0NPTlRST0xfVkVSQk9TSVRZX1NISUZUKQorI2RlZmluZSBHVUNfTE9HX0NPTlRST0xf REVGQVVMVF9MT0dHSU5HCSgxIDw8IDgpCisKKyNlbmRpZiAvKiBfQUJJX0dVQ19BQ1RJT05TX0FC SV9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2Nv bW11bmljYXRpb25fY3RiX2FiaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1 Y19jb21tdW5pY2F0aW9uX2N0Yl9hYmkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLmViZDhjM2UwZTRiYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2FiaS9ndWNfY29tbXVuaWNhdGlvbl9jdGJfYWJpLmgKQEAgLTAsMCArMSwx MDYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KKy8qCisgKiBDb3B5cmln aHQgwqkgMjAxNC0yMDIxIEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBfQUJJX0dV Q19DT01NVU5JQ0FUSU9OX0NUQl9BQklfSAorI2RlZmluZSBfQUJJX0dVQ19DT01NVU5JQ0FUSU9O X0NUQl9BQklfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworLyoqCisgKiBET0M6IENU QiBiYXNlZCBjb21tdW5pY2F0aW9uCisgKgorICogVGhlIENUQiAoY29tbWFuZCB0cmFuc3BvcnQg YnVmZmVyKSBjb21tdW5pY2F0aW9uIGJldHdlZW4gSG9zdCBhbmQgR3VDCisgKiBpcyBiYXNlZCBv biB1MzIgZGF0YSBzdHJlYW0gd3JpdHRlbiB0byB0aGUgc2hhcmVkIGJ1ZmZlci4gT25lIGJ1ZmZl ciBjYW4KKyAqIGJlIHVzZWQgdG8gdHJhbnNtaXQgZGF0YSBvbmx5IGluIG9uZSBkaXJlY3Rpb24g KG9uZS1kaXJlY3Rpb25hbCBjaGFubmVsKS4KKyAqCisgKiBDdXJyZW50IHN0YXR1cyBvZiB0aGUg ZWFjaCBidWZmZXIgaXMgc3RvcmVkIGluIHRoZSBidWZmZXIgZGVzY3JpcHRvci4KKyAqIEJ1ZmZl ciBkZXNjcmlwdG9yIGhvbGRzIHRhaWwgYW5kIGhlYWQgZmllbGRzIHRoYXQgcmVwcmVzZW50cyBh Y3RpdmUgZGF0YQorICogc3RyZWFtLiBUaGUgdGFpbCBmaWVsZCBpcyB1cGRhdGVkIGJ5IHRoZSBk YXRhIHByb2R1Y2VyIChzZW5kZXIpLCBhbmQgaGVhZAorICogZmllbGQgaXMgdXBkYXRlZCBieSB0 aGUgZGF0YSBjb25zdW1lciAocmVjZWl2ZXIpOjoKKyAqCisgKiAgICAgICstLS0tLS0tLS0tLS0r CisgKiAgICAgIHwgREVTQ1JJUFRPUiB8ICAgICAgICAgICs9PT09PT09PT09PT09PT09PSs9PT09 PT09PT09PT0rPT09PT09PT0rCisgKiAgICAgICs9PT09PT09PT09PT0rICAgICAgICAgIHwgICAg ICAgICAgICAgICAgIHwgTUVTU0FHRShzKSB8ICAgICAgICB8CisgKiAgICAgIHwgYWRkcmVzcyAg ICB8LS0tLS0tLS0tPis9PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT0rPT09PT09PT0rCisg KiAgICAgICstLS0tLS0tLS0tLS0rCisgKiAgICAgIHwgaGVhZCAgICAgICB8ICAgICAgICAgIF4t LS0tLWhlYWQtLS0tLS0tLV4KKyAqICAgICAgKy0tLS0tLS0tLS0tLSsKKyAqICAgICAgfCB0YWls ICAgICAgIHwgICAgICAgICAgXi0tLS0tLS0tLXRhaWwtLS0tLS0tLS0tLS0tLS0tLV4KKyAqICAg ICAgKy0tLS0tLS0tLS0tLSsKKyAqICAgICAgfCBzaXplICAgICAgIHwgICAgICAgICAgXi0tLS0t LS0tLS0tLS0tLXNpemUtLS0tLS0tLS0tLS0tLS0tLS0tLV4KKyAqICAgICAgKy0tLS0tLS0tLS0t LSsKKyAqCisgKiBFYWNoIG1lc3NhZ2UgaW4gZGF0YSBzdHJlYW0gc3RhcnRzIHdpdGggdGhlIHNp bmdsZSB1MzIgdHJlYXRlZCBhcyBhIGhlYWRlciwKKyAqIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIHNl dCBvZiB1MzIgZGF0YSB0aGF0IG1ha2VzIG1lc3NhZ2Ugc3BlY2lmaWMgcGF5bG9hZDo6CisgKgor ICogICAgICArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICog ICAgICB8ICAgICAgICAgTUVTU0FHRSAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAg ICArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8 ICAgbXNnWzBdICAgfCAgIFsxXSAgIHwgICAuLi4gICB8ICBbbi0xXSAgfAorICogICAgICArLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8ICAgTUVT U0FHRSAgfCAgICAgICBNRVNTQUdFIFBBWUxPQUQgICAgICAgfAorICogICAgICArICAgSEVBREVS ICAgKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8ICAgICAgICAgICAg fCAgICAwICAgIHwgICAuLi4gICB8ICAgIG4gICAgfAorICogICAgICArPT09PT09Kz09PT09Kz09 PT09PT09PSs9PT09PT09PT0rPT09PT09PT09KworICogICAgICB8IDMxOjE2fCBjb2RlfCAgICAg ICAgIHwgICAgICAgICB8ICAgICAgICAgfAorICogICAgICArLS0tLS0tKy0tLS0tKyAgICAgICAg IHwgICAgICAgICB8ICAgICAgICAgfAorICogICAgICB8ICAxNTo1fGZsYWdzfCAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgfAorICogICAgICArLS0tLS0tKy0tLS0tKyAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgfAorICogICAgICB8ICAgNDowfCAgbGVufCAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICAgfAorICogICAgICArLS0tLS0tKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKworICoKKyAqICAgICAgICAgICAgICAgICAgIF4tLS0tLS0tLS0tLS0tbGVuLS0t LS0tLS0tLS0tLV4KKyAqCisgKiBUaGUgbWVzc2FnZSBoZWFkZXIgY29uc2lzdHMgb2Y6CisgKgor ICogLSAqKmxlbioqLCBpbmRpY2F0ZXMgbGVuZ3RoIG9mIHRoZSBtZXNzYWdlIHBheWxvYWQgKGlu IHUzMikKKyAqIC0gKipjb2RlKiosIGluZGljYXRlcyBtZXNzYWdlIGNvZGUKKyAqIC0gKipmbGFn cyoqLCBob2xkcyB2YXJpb3VzIGJpdHMgdG8gY29udHJvbCBtZXNzYWdlIGhhbmRsaW5nCisgKi8K KworLyoKKyAqIERlc2NyaWJlcyBzaW5nbGUgY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVyLgorICog VXNlZCBieSBib3RoIGd1Yy1tYXN0ZXIgYW5kIGNsaWVudHMuCisgKi8KK3N0cnVjdCBndWNfY3Rf YnVmZmVyX2Rlc2MgeworCXUzMiBhZGRyOwkJLyogZ2Z4IGFkZHJlc3MgKi8KKwl1NjQgaG9zdF9w cml2YXRlOwkvKiBob3N0IHByaXZhdGUgZGF0YSAqLworCXUzMiBzaXplOwkJLyogc2l6ZSBpbiBi eXRlcyAqLworCXUzMiBoZWFkOwkJLyogb2Zmc2V0IHVwZGF0ZWQgYnkgR3VDKi8KKwl1MzIgdGFp bDsJCS8qIG9mZnNldCB1cGRhdGVkIGJ5IG93bmVyICovCisJdTMyIGlzX2luX2Vycm9yOwkvKiBl cnJvciBpbmRpY2F0b3IgKi8KKwl1MzIgZmVuY2U7CQkvKiBmZW5jZSB1cGRhdGVkIGJ5IEd1QyAq LworCXUzMiBzdGF0dXM7CQkvKiBzdGF0dXMgdXBkYXRlZCBieSBHdUMgKi8KKwl1MzIgb3duZXI7 CQkvKiBpZCBvZiB0aGUgY2hhbm5lbCBvd25lciAqLworCXUzMiBvd25lcl9zdWJfaWQ7CS8qIG93 bmVyLWRlZmluZWQgZmllbGQgZm9yIGV4dHJhIHRyYWNraW5nICovCisJdTMyIHJlc2VydmVkWzVd OworfSBfX3BhY2tlZDsKKworLyogVHlwZSBvZiBjb21tYW5kIHRyYW5zcG9ydCBidWZmZXIgKi8K KyNkZWZpbmUgSU5URUxfR1VDX0NUX0JVRkZFUl9UWVBFX1NFTkQJMHgwdQorI2RlZmluZSBJTlRF TF9HVUNfQ1RfQlVGRkVSX1RZUEVfUkVDVgkweDF1CisKKy8qCisgKiBEZWZpbml0aW9uIG9mIHRo ZSBjb21tYW5kIHRyYW5zcG9ydCBtZXNzYWdlIGhlYWRlciAoRFcwKQorICoKKyAqIGJpdFs0Li4w XQltZXNzYWdlIGxlbiAoaW4gZHdvcmRzKQorICogYml0WzcuLjVdCXJlc2VydmVkCisgKiBiaXRb OF0JcmVzcG9uc2UgKEcySCBvbmx5KQorICogYml0WzhdCXdyaXRlIGZlbmNlIHRvIGRlc2MgKEgy RyBvbmx5KQorICogYml0WzldCXdyaXRlIHN0YXR1cyB0byBIMkcgYnVmZiAoSDJHIG9ubHkpCisg KiBiaXRbMTBdCXNlbmQgc3RhdHVzIGJhY2sgdmlhIEcySCAoSDJHIG9ubHkpCisgKiBiaXRbMTUu LjExXQlyZXNlcnZlZAorICogYml0WzMxLi4xNl0JYWN0aW9uIGNvZGUKKyAqLworI2RlZmluZSBH VUNfQ1RfTVNHX0xFTl9TSElGVAkJCTAKKyNkZWZpbmUgR1VDX0NUX01TR19MRU5fTUFTSwkJCTB4 MUYKKyNkZWZpbmUgR1VDX0NUX01TR19JU19SRVNQT05TRQkJCSgxIDw8IDgpCisjZGVmaW5lIEdV Q19DVF9NU0dfV1JJVEVfRkVOQ0VfVE9fREVTQwkJKDEgPDwgOCkKKyNkZWZpbmUgR1VDX0NUX01T R19XUklURV9TVEFUVVNfVE9fQlVGRgkJKDEgPDwgOSkKKyNkZWZpbmUgR1VDX0NUX01TR19TRU5E X1NUQVRVUwkJCSgxIDw8IDEwKQorI2RlZmluZSBHVUNfQ1RfTVNHX0FDVElPTl9TSElGVAkJCTE2 CisjZGVmaW5lIEdVQ19DVF9NU0dfQUNUSU9OX01BU0sJCQkweEZGRkYKKworI2VuZGlmIC8qIF9B QklfR1VDX0NPTU1VTklDQVRJT05fQ1RCX0FCSV9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2NvbW11bmljYXRpb25fbW1pb19hYmkuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2FiaS9ndWNfY29tbXVuaWNhdGlvbl9tbWlvX2FiaS5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmUwNjZhNjJlOWUwCi0tLSAv ZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19jb21tdW5p Y2F0aW9uX21taW9fYWJpLmgKQEAgLTAsMCArMSw1MiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE0LTIwMjEgSW50ZWwgQ29ycG9y YXRpb24KKyAqLworCisjaWZuZGVmIF9BQklfR1VDX0NPTU1VTklDQVRJT05fTU1JT19BQklfSAor I2RlZmluZSBfQUJJX0dVQ19DT01NVU5JQ0FUSU9OX01NSU9fQUJJX0gKKworLyoqCisgKiBET0M6 IE1NSU8gYmFzZWQgY29tbXVuaWNhdGlvbgorICoKKyAqIFRoZSBNTUlPIGJhc2VkIGNvbW11bmlj YXRpb24gYmV0d2VlbiBIb3N0IGFuZCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoCisgKiByZWdp c3RlcnMsIHdoZXJlIGZpcnN0IHJlZ2lzdGVyIGhvbGRzIGRhdGEgdHJlYXRlZCBhcyBtZXNzYWdl IGhlYWRlciwKKyAqIGFuZCBvdGhlciByZWdpc3RlcnMgYXJlIHVzZWQgdG8gaG9sZCBtZXNzYWdl IHBheWxvYWQuCisgKgorICogRm9yIEdlbjkrLCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoIHJl Z2lzdGVycyAweEMxODAtMHhDMUI4LAorICogYnV0IG5vIEgyRyBjb21tYW5kIHRha2VzIG1vcmUg dGhhbiA4IHBhcmFtZXRlcnMgYW5kIHRoZSBHdUMgRlcKKyAqIGl0c2VsZiB1c2VzIGFuIDgtZWxl bWVudCBhcnJheSB0byBzdG9yZSB0aGUgSDJHIG1lc3NhZ2UuCisgKgorICogICAgICArLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCisgKiAgICAgIHwgIE1NSU9bMF0g IHwgTU1JT1sxXSB8ICAgLi4uICAgfCBNTUlPW25dIHwKKyAqICAgICAgKy0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKworICogICAgICB8IGhlYWRlciAgICB8ICAgICAg b3B0aW9uYWwgcGF5bG9hZCAgICAgICB8CisgKiAgICAgICs9PT09PT0rPT09PSs9PT09PT09PT0r PT09PT09PT09Kz09PT09PT09PSsKKyAqICAgICAgfCAzMToyOHx0eXBlfCAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgfAorICogICAgICArLS0tLS0tKy0tLS0rICAgICAgICAgfCAgICAgICAg IHwgICAgICAgICB8CisgKiAgICAgIHwgMjc6MTZ8ZGF0YXwgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgIHwKKyAqICAgICAgKy0tLS0tLSstLS0tKyAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgfAorICogICAgICB8ICAxNTowfGNvZGV8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8 CisgKiAgICAgICstLS0tLS0rLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKKyAq CisgKiBUaGUgbWVzc2FnZSBoZWFkZXIgY29uc2lzdHMgb2Y6CisgKgorICogLSAqKnR5cGUqKiwg aW5kaWNhdGVzIG1lc3NhZ2UgdHlwZQorICogLSAqKmNvZGUqKiwgaW5kaWNhdGVzIG1lc3NhZ2Ug Y29kZSwgaXMgc3BlY2lmaWMgZm9yICoqdHlwZSoqCisgKiAtICoqZGF0YSoqLCBpbmRpY2F0ZXMg bWVzc2FnZSBkYXRhLCBvcHRpb25hbCwgZGVwZW5kcyBvbiAqKmNvZGUqKgorICoKKyAqIFRoZSBm b2xsb3dpbmcgbWVzc2FnZSAqKnR5cGVzKiogYXJlIHN1cHBvcnRlZDoKKyAqCisgKiAtICoqUkVR VUVTVCoqLCBpbmRpY2F0ZXMgSG9zdC10by1HdUMgcmVxdWVzdCwgcmVxdWVzdGVkIEd1QyBhY3Rp b24gY29kZQorICogICBtdXN0IGJlIHByaW92aWRlZCBpbiAqKmNvZGUqKiBmaWVsZC4gT3B0aW9u YWwgYWN0aW9uIHNwZWNpZmljIHBhcmFtZXRlcnMKKyAqICAgY2FuIGJlIHByb3ZpZGVkIGluIHJl bWFpbmluZyBwYXlsb2FkIHJlZ2lzdGVycyBvciAqKmRhdGEqKiBmaWVsZC4KKyAqCisgKiAtICoq UkVTUE9OU0UqKiwgaW5kaWNhdGVzIEd1Qy10by1Ib3N0IHJlc3BvbnNlIGZyb20gZWFybGllciBH dUMgcmVxdWVzdCwKKyAqICAgYWN0aW9uIHJlc3BvbnNlIHN0YXR1cyB3aWxsIGJlIHByb3ZpZGVk IGluICoqY29kZSoqIGZpZWxkLiBPcHRpb25hbAorICogICByZXNwb25zZSBkYXRhIGNhbiBiZSBy ZXR1cm5lZCBpbiByZW1haW5pbmcgcGF5bG9hZCByZWdpc3RlcnMgb3IgKipkYXRhKioKKyAqICAg ZmllbGQuCisgKi8KKworI2RlZmluZSBHVUNfTUFYX01NSU9fTVNHX0xFTgkJOAorCisjZW5kaWYg LyogX0FCSV9HVUNfQ09NTVVOSUNBVElPTl9NTUlPX0FCSV9IICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX2Vycm9yc19hYmkuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3VjL2FiaS9ndWNfZXJyb3JzX2FiaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uNDg4YjYwNjFlZTg5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19lcnJvcnNfYWJpLmgKQEAgLTAsMCArMSwx NCBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdo dCDCqSAyMDE0LTIwMjEgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9BQklfR1VD X0VSUk9SU19BQklfSAorI2RlZmluZSBfQUJJX0dVQ19FUlJPUlNfQUJJX0gKKworZW51bSBpbnRl bF9ndWNfcmVzcG9uc2Vfc3RhdHVzIHsKKwlJTlRFTF9HVUNfUkVTUE9OU0VfU1RBVFVTX1NVQ0NF U1MgPSAweDAsCisJSU5URUxfR1VDX1JFU1BPTlNFX1NUQVRVU19HRU5FUklDX0ZBSUwgPSAweEYw MDAsCit9OworCisjZW5kaWYgLyogX0FCSV9HVUNfRVJST1JTX0FCSV9IICovCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9hYmkvZ3VjX21lc3NhZ2VzX2FiaS5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvYWJpL2d1Y19tZXNzYWdlc19hYmkuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjc3NWUyMWYzMDU4YwotLS0gL2Rldi9udWxs CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2FiaS9ndWNfbWVzc2FnZXNfYWJpLmgK QEAgLTAsMCArMSwyMSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoK KyAqIENvcHlyaWdodCDCqSAyMDE0LTIwMjEgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZu ZGVmIF9BQklfR1VDX01FU1NBR0VTX0FCSV9ICisjZGVmaW5lIF9BQklfR1VDX01FU1NBR0VTX0FC SV9ICisKKyNkZWZpbmUgSU5URUxfR1VDX01TR19UWVBFX1NISUZUCTI4CisjZGVmaW5lIElOVEVM X0dVQ19NU0dfVFlQRV9NQVNLCQkoMHhGIDw8IElOVEVMX0dVQ19NU0dfVFlQRV9TSElGVCkKKyNk ZWZpbmUgSU5URUxfR1VDX01TR19EQVRBX1NISUZUCTE2CisjZGVmaW5lIElOVEVMX0dVQ19NU0df REFUQV9NQVNLCQkoMHhGRkYgPDwgSU5URUxfR1VDX01TR19EQVRBX1NISUZUKQorI2RlZmluZSBJ TlRFTF9HVUNfTVNHX0NPREVfU0hJRlQJMAorI2RlZmluZSBJTlRFTF9HVUNfTVNHX0NPREVfTUFT SwkJKDB4RkZGRiA8PCBJTlRFTF9HVUNfTVNHX0NPREVfU0hJRlQpCisKK2VudW0gaW50ZWxfZ3Vj X21zZ190eXBlIHsKKwlJTlRFTF9HVUNfTVNHX1RZUEVfUkVRVUVTVCA9IDB4MCwKKwlJTlRFTF9H VUNfTVNHX1RZUEVfUkVTUE9OU0UgPSAweEYsCit9OworCisjZW5kaWYgLyogX0FCSV9HVUNfTUVT U0FHRVNfQUJJX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2lu dGVsX2d1Y19md2lmLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZndp Zi5oCmluZGV4IDBmOWFmY2RlMWQwYi4uOWJmMzUyNDBlNzIzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZndpZi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2ludGVsX2d1Y19md2lmLmgKQEAgLTEwLDYgKzEwLDEyIEBACiAjaW5jbHVk ZSA8bGludXgvY29tcGlsZXIuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCisjaW5jbHVk ZSAiYWJpL2d1Y19hY3Rpb25zX2FiaS5oIgorI2luY2x1ZGUgImFiaS9ndWNfZXJyb3JzX2FiaS5o IgorI2luY2x1ZGUgImFiaS9ndWNfY29tbXVuaWNhdGlvbl9tbWlvX2FiaS5oIgorI2luY2x1ZGUg ImFiaS9ndWNfY29tbXVuaWNhdGlvbl9jdGJfYWJpLmgiCisjaW5jbHVkZSAiYWJpL2d1Y19tZXNz YWdlc19hYmkuaCIKKwogI2RlZmluZSBHVUNfQ0xJRU5UX1BSSU9SSVRZX0tNRF9ISUdICTAKICNk ZWZpbmUgR1VDX0NMSUVOVF9QUklPUklUWV9ISUdICTEKICNkZWZpbmUgR1VDX0NMSUVOVF9QUklP UklUWV9LTURfTk9STUFMCTIKQEAgLTIwNywxMDEgKzIxMyw2IEBAIHN0cnVjdCBndWNfc3RhZ2Vf ZGVzYyB7CiAJdTY0IGRlc2NfcHJpdmF0ZTsKIH0gX19wYWNrZWQ7CiAKLS8qKgotICogRE9DOiBD VEIgYmFzZWQgY29tbXVuaWNhdGlvbgotICoKLSAqIFRoZSBDVEIgKGNvbW1hbmQgdHJhbnNwb3J0 IGJ1ZmZlcikgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIEhvc3QgYW5kIEd1QwotICogaXMgYmFzZWQg b24gdTMyIGRhdGEgc3RyZWFtIHdyaXR0ZW4gdG8gdGhlIHNoYXJlZCBidWZmZXIuIE9uZSBidWZm ZXIgY2FuCi0gKiBiZSB1c2VkIHRvIHRyYW5zbWl0IGRhdGEgb25seSBpbiBvbmUgZGlyZWN0aW9u IChvbmUtZGlyZWN0aW9uYWwgY2hhbm5lbCkuCi0gKgotICogQ3VycmVudCBzdGF0dXMgb2YgdGhl IGVhY2ggYnVmZmVyIGlzIHN0b3JlZCBpbiB0aGUgYnVmZmVyIGRlc2NyaXB0b3IuCi0gKiBCdWZm ZXIgZGVzY3JpcHRvciBob2xkcyB0YWlsIGFuZCBoZWFkIGZpZWxkcyB0aGF0IHJlcHJlc2VudHMg YWN0aXZlIGRhdGEKLSAqIHN0cmVhbS4gVGhlIHRhaWwgZmllbGQgaXMgdXBkYXRlZCBieSB0aGUg ZGF0YSBwcm9kdWNlciAoc2VuZGVyKSwgYW5kIGhlYWQKLSAqIGZpZWxkIGlzIHVwZGF0ZWQgYnkg dGhlIGRhdGEgY29uc3VtZXIgKHJlY2VpdmVyKTo6Ci0gKgotICogICAgICArLS0tLS0tLS0tLS0t KwotICogICAgICB8IERFU0NSSVBUT1IgfCAgICAgICAgICArPT09PT09PT09PT09PT09PT0rPT09 PT09PT09PT09Kz09PT09PT09KwotICogICAgICArPT09PT09PT09PT09KyAgICAgICAgICB8ICAg ICAgICAgICAgICAgICB8IE1FU1NBR0UocykgfCAgICAgICAgfAotICogICAgICB8IGFkZHJlc3Mg ICAgfC0tLS0tLS0tLT4rPT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09Kz09PT09PT09Kwot ICogICAgICArLS0tLS0tLS0tLS0tKwotICogICAgICB8IGhlYWQgICAgICAgfCAgICAgICAgICBe LS0tLS1oZWFkLS0tLS0tLS1eCi0gKiAgICAgICstLS0tLS0tLS0tLS0rCi0gKiAgICAgIHwgdGFp bCAgICAgICB8ICAgICAgICAgIF4tLS0tLS0tLS10YWlsLS0tLS0tLS0tLS0tLS0tLS1eCi0gKiAg ICAgICstLS0tLS0tLS0tLS0rCi0gKiAgICAgIHwgc2l6ZSAgICAgICB8ICAgICAgICAgIF4tLS0t LS0tLS0tLS0tLS1zaXplLS0tLS0tLS0tLS0tLS0tLS0tLS1eCi0gKiAgICAgICstLS0tLS0tLS0t LS0rCi0gKgotICogRWFjaCBtZXNzYWdlIGluIGRhdGEgc3RyZWFtIHN0YXJ0cyB3aXRoIHRoZSBz aW5nbGUgdTMyIHRyZWF0ZWQgYXMgYSBoZWFkZXIsCi0gKiBmb2xsb3dlZCBieSBvcHRpb25hbCBz ZXQgb2YgdTMyIGRhdGEgdGhhdCBtYWtlcyBtZXNzYWdlIHNwZWNpZmljIHBheWxvYWQ6OgotICoK LSAqICAgICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAq ICAgICAgfCAgICAgICAgIE1FU1NBR0UgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAqICAg ICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAg fCAgIG1zZ1swXSAgIHwgICBbMV0gICB8ICAgLi4uICAgfCAgW24tMV0gIHwKLSAqICAgICAgKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAgfCAgIE1F U1NBR0UgIHwgICAgICAgTUVTU0FHRSBQQVlMT0FEICAgICAgIHwKLSAqICAgICAgKyAgIEhFQURF UiAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqICAgICAgfCAgICAgICAgICAg IHwgICAgMCAgICB8ICAgLi4uICAgfCAgICBuICAgIHwKLSAqICAgICAgKz09PT09PSs9PT09PSs9 PT09PT09PT0rPT09PT09PT09Kz09PT09PT09PSsKLSAqICAgICAgfCAzMToxNnwgY29kZXwgICAg ICAgICB8ICAgICAgICAgfCAgICAgICAgIHwKLSAqICAgICAgKy0tLS0tLSstLS0tLSsgICAgICAg ICB8ICAgICAgICAgfCAgICAgICAgIHwKLSAqICAgICAgfCAgMTU6NXxmbGFnc3wgICAgICAgICB8 ICAgICAgICAgfCAgICAgICAgIHwKLSAqICAgICAgKy0tLS0tLSstLS0tLSsgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgIHwKLSAqICAgICAgfCAgIDQ6MHwgIGxlbnwgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgIHwKLSAqICAgICAgKy0tLS0tLSstLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSsKLSAqCi0gKiAgICAgICAgICAgICAgICAgICBeLS0tLS0tLS0tLS0tLWxlbi0t LS0tLS0tLS0tLS1eCi0gKgotICogVGhlIG1lc3NhZ2UgaGVhZGVyIGNvbnNpc3RzIG9mOgotICoK LSAqIC0gKipsZW4qKiwgaW5kaWNhdGVzIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBwYXlsb2FkIChp biB1MzIpCi0gKiAtICoqY29kZSoqLCBpbmRpY2F0ZXMgbWVzc2FnZSBjb2RlCi0gKiAtICoqZmxh Z3MqKiwgaG9sZHMgdmFyaW91cyBiaXRzIHRvIGNvbnRyb2wgbWVzc2FnZSBoYW5kbGluZwotICov Ci0KLS8qCi0gKiBEZXNjcmliZXMgc2luZ2xlIGNvbW1hbmQgdHJhbnNwb3J0IGJ1ZmZlci4KLSAq IFVzZWQgYnkgYm90aCBndWMtbWFzdGVyIGFuZCBjbGllbnRzLgotICovCi1zdHJ1Y3QgZ3VjX2N0 X2J1ZmZlcl9kZXNjIHsKLQl1MzIgYWRkcjsJCS8qIGdmeCBhZGRyZXNzICovCi0JdTY0IGhvc3Rf cHJpdmF0ZTsJLyogaG9zdCBwcml2YXRlIGRhdGEgKi8KLQl1MzIgc2l6ZTsJCS8qIHNpemUgaW4g Ynl0ZXMgKi8KLQl1MzIgaGVhZDsJCS8qIG9mZnNldCB1cGRhdGVkIGJ5IEd1QyovCi0JdTMyIHRh aWw7CQkvKiBvZmZzZXQgdXBkYXRlZCBieSBvd25lciAqLwotCXUzMiBpc19pbl9lcnJvcjsJLyog ZXJyb3IgaW5kaWNhdG9yICovCi0JdTMyIGZlbmNlOwkJLyogZmVuY2UgdXBkYXRlZCBieSBHdUMg Ki8KLQl1MzIgc3RhdHVzOwkJLyogc3RhdHVzIHVwZGF0ZWQgYnkgR3VDICovCi0JdTMyIG93bmVy OwkJLyogaWQgb2YgdGhlIGNoYW5uZWwgb3duZXIgKi8KLQl1MzIgb3duZXJfc3ViX2lkOwkvKiBv d25lci1kZWZpbmVkIGZpZWxkIGZvciBleHRyYSB0cmFja2luZyAqLwotCXUzMiByZXNlcnZlZFs1 XTsKLX0gX19wYWNrZWQ7Ci0KLS8qIFR5cGUgb2YgY29tbWFuZCB0cmFuc3BvcnQgYnVmZmVyICov Ci0jZGVmaW5lIElOVEVMX0dVQ19DVF9CVUZGRVJfVFlQRV9TRU5ECTB4MHUKLSNkZWZpbmUgSU5U RUxfR1VDX0NUX0JVRkZFUl9UWVBFX1JFQ1YJMHgxdQotCi0vKgotICogRGVmaW5pdGlvbiBvZiB0 aGUgY29tbWFuZCB0cmFuc3BvcnQgbWVzc2FnZSBoZWFkZXIgKERXMCkKLSAqCi0gKiBiaXRbNC4u MF0JbWVzc2FnZSBsZW4gKGluIGR3b3JkcykKLSAqIGJpdFs3Li41XQlyZXNlcnZlZAotICogYml0 WzhdCXJlc3BvbnNlIChHMkggb25seSkKLSAqIGJpdFs4XQl3cml0ZSBmZW5jZSB0byBkZXNjIChI Mkcgb25seSkKLSAqIGJpdFs5XQl3cml0ZSBzdGF0dXMgdG8gSDJHIGJ1ZmYgKEgyRyBvbmx5KQot ICogYml0WzEwXQlzZW5kIHN0YXR1cyBiYWNrIHZpYSBHMkggKEgyRyBvbmx5KQotICogYml0WzE1 Li4xMV0JcmVzZXJ2ZWQKLSAqIGJpdFszMS4uMTZdCWFjdGlvbiBjb2RlCi0gKi8KLSNkZWZpbmUg R1VDX0NUX01TR19MRU5fU0hJRlQJCQkwCi0jZGVmaW5lIEdVQ19DVF9NU0dfTEVOX01BU0sJCQkw eDFGCi0jZGVmaW5lIEdVQ19DVF9NU0dfSVNfUkVTUE9OU0UJCQkoMSA8PCA4KQotI2RlZmluZSBH VUNfQ1RfTVNHX1dSSVRFX0ZFTkNFX1RPX0RFU0MJCSgxIDw8IDgpCi0jZGVmaW5lIEdVQ19DVF9N U0dfV1JJVEVfU1RBVFVTX1RPX0JVRkYJCSgxIDw8IDkpCi0jZGVmaW5lIEdVQ19DVF9NU0dfU0VO RF9TVEFUVVMJCQkoMSA8PCAxMCkKLSNkZWZpbmUgR1VDX0NUX01TR19BQ1RJT05fU0hJRlQJCQkx NgotI2RlZmluZSBHVUNfQ1RfTVNHX0FDVElPTl9NQVNLCQkJMHhGRkZGCi0KICNkZWZpbmUgR1VD X1BPV0VSX1VOU1BFQ0lGSUVECTAKICNkZWZpbmUgR1VDX1BPV0VSX0QwCQkxCiAjZGVmaW5lIEdV Q19QT1dFUl9EMQkJMgpAQCAtNDc3LDExOSArMzg4LDE3IEBAIHN0cnVjdCBndWNfc2hhcmVkX2N0 eF9kYXRhIHsKIAlzdHJ1Y3QgZ3VjX2N0eF9yZXBvcnQgcHJlZW1wdF9jdHhfcmVwb3J0W0dVQ19N QVhfRU5HSU5FU19OVU1dOwogfSBfX3BhY2tlZDsKIAotLyoqCi0gKiBET0M6IE1NSU8gYmFzZWQg Y29tbXVuaWNhdGlvbgotICoKLSAqIFRoZSBNTUlPIGJhc2VkIGNvbW11bmljYXRpb24gYmV0d2Vl biBIb3N0IGFuZCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoCi0gKiByZWdpc3RlcnMsIHdoZXJl IGZpcnN0IHJlZ2lzdGVyIGhvbGRzIGRhdGEgdHJlYXRlZCBhcyBtZXNzYWdlIGhlYWRlciwKLSAq IGFuZCBvdGhlciByZWdpc3RlcnMgYXJlIHVzZWQgdG8gaG9sZCBtZXNzYWdlIHBheWxvYWQuCi0g KgotICogRm9yIEdlbjkrLCBHdUMgdXNlcyBzb2Z0d2FyZSBzY3JhdGNoIHJlZ2lzdGVycyAweEMx ODAtMHhDMUI4LAotICogYnV0IG5vIEgyRyBjb21tYW5kIHRha2VzIG1vcmUgdGhhbiA4IHBhcmFt ZXRlcnMgYW5kIHRoZSBHdUMgRlcKLSAqIGl0c2VsZiB1c2VzIGFuIDgtZWxlbWVudCBhcnJheSB0 byBzdG9yZSB0aGUgSDJHIG1lc3NhZ2UuCi0gKgotICogICAgICArLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rCi0gKiAgICAgIHwgIE1NSU9bMF0gIHwgTU1JT1sxXSB8 ICAgLi4uICAgfCBNTUlPW25dIHwKLSAqICAgICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKwotICogICAgICB8IGhlYWRlciAgICB8ICAgICAgb3B0aW9uYWwgcGF5 bG9hZCAgICAgICB8Ci0gKiAgICAgICs9PT09PT0rPT09PSs9PT09PT09PT0rPT09PT09PT09Kz09 PT09PT09PSsKLSAqICAgICAgfCAzMToyOHx0eXBlfCAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgfAotICogICAgICArLS0tLS0tKy0tLS0rICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8 Ci0gKiAgICAgIHwgMjc6MTZ8ZGF0YXwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwKLSAq ICAgICAgKy0tLS0tLSstLS0tKyAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfAotICogICAg ICB8ICAxNTowfGNvZGV8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8Ci0gKiAgICAgICst LS0tLS0rLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsKLSAqCi0gKiBUaGUgbWVz c2FnZSBoZWFkZXIgY29uc2lzdHMgb2Y6Ci0gKgotICogLSAqKnR5cGUqKiwgaW5kaWNhdGVzIG1l c3NhZ2UgdHlwZQotICogLSAqKmNvZGUqKiwgaW5kaWNhdGVzIG1lc3NhZ2UgY29kZSwgaXMgc3Bl Y2lmaWMgZm9yICoqdHlwZSoqCi0gKiAtICoqZGF0YSoqLCBpbmRpY2F0ZXMgbWVzc2FnZSBkYXRh LCBvcHRpb25hbCwgZGVwZW5kcyBvbiAqKmNvZGUqKgotICoKLSAqIFRoZSBmb2xsb3dpbmcgbWVz c2FnZSAqKnR5cGVzKiogYXJlIHN1cHBvcnRlZDoKLSAqCi0gKiAtICoqUkVRVUVTVCoqLCBpbmRp Y2F0ZXMgSG9zdC10by1HdUMgcmVxdWVzdCwgcmVxdWVzdGVkIEd1QyBhY3Rpb24gY29kZQotICog ICBtdXN0IGJlIHByaW92aWRlZCBpbiAqKmNvZGUqKiBmaWVsZC4gT3B0aW9uYWwgYWN0aW9uIHNw ZWNpZmljIHBhcmFtZXRlcnMKLSAqICAgY2FuIGJlIHByb3ZpZGVkIGluIHJlbWFpbmluZyBwYXls b2FkIHJlZ2lzdGVycyBvciAqKmRhdGEqKiBmaWVsZC4KLSAqCi0gKiAtICoqUkVTUE9OU0UqKiwg aW5kaWNhdGVzIEd1Qy10by1Ib3N0IHJlc3BvbnNlIGZyb20gZWFybGllciBHdUMgcmVxdWVzdCwK LSAqICAgYWN0aW9uIHJlc3BvbnNlIHN0YXR1cyB3aWxsIGJlIHByb3ZpZGVkIGluICoqY29kZSoq IGZpZWxkLiBPcHRpb25hbAotICogICByZXNwb25zZSBkYXRhIGNhbiBiZSByZXR1cm5lZCBpbiBy ZW1haW5pbmcgcGF5bG9hZCByZWdpc3RlcnMgb3IgKipkYXRhKioKLSAqICAgZmllbGQuCi0gKi8K LQotI2RlZmluZSBHVUNfTUFYX01NSU9fTVNHX0xFTgkJOAotCi0jZGVmaW5lIElOVEVMX0dVQ19N U0dfVFlQRV9TSElGVAkyOAotI2RlZmluZSBJTlRFTF9HVUNfTVNHX1RZUEVfTUFTSwkJKDB4RiA8 PCBJTlRFTF9HVUNfTVNHX1RZUEVfU0hJRlQpCi0jZGVmaW5lIElOVEVMX0dVQ19NU0dfREFUQV9T SElGVAkxNgotI2RlZmluZSBJTlRFTF9HVUNfTVNHX0RBVEFfTUFTSwkJKDB4RkZGIDw8IElOVEVM X0dVQ19NU0dfREFUQV9TSElGVCkKLSNkZWZpbmUgSU5URUxfR1VDX01TR19DT0RFX1NISUZUCTAK LSNkZWZpbmUgSU5URUxfR1VDX01TR19DT0RFX01BU0sJCSgweEZGRkYgPDwgSU5URUxfR1VDX01T R19DT0RFX1NISUZUKQotCiAjZGVmaW5lIF9fSU5URUxfR1VDX01TR19HRVQoVCwgbSkgXAogCSgo KG0pICYgSU5URUxfR1VDX01TR18gIyMgVCAjIyBfTUFTSykgPj4gSU5URUxfR1VDX01TR18gIyMg VCAjIyBfU0hJRlQpCiAjZGVmaW5lIElOVEVMX0dVQ19NU0dfVE9fVFlQRShtKQlfX0lOVEVMX0dV Q19NU0dfR0VUKFRZUEUsIG0pCiAjZGVmaW5lIElOVEVMX0dVQ19NU0dfVE9fREFUQShtKQlfX0lO VEVMX0dVQ19NU0dfR0VUKERBVEEsIG0pCiAjZGVmaW5lIElOVEVMX0dVQ19NU0dfVE9fQ09ERSht KQlfX0lOVEVMX0dVQ19NU0dfR0VUKENPREUsIG0pCiAKLWVudW0gaW50ZWxfZ3VjX21zZ190eXBl IHsKLQlJTlRFTF9HVUNfTVNHX1RZUEVfUkVRVUVTVCA9IDB4MCwKLQlJTlRFTF9HVUNfTVNHX1RZ UEVfUkVTUE9OU0UgPSAweEYsCi19OwotCiAjZGVmaW5lIF9fSU5URUxfR1VDX01TR19UWVBFX0lT KFQsIG0pIFwKIAkoSU5URUxfR1VDX01TR19UT19UWVBFKG0pID09IElOVEVMX0dVQ19NU0dfVFlQ RV8gIyMgVCkKICNkZWZpbmUgSU5URUxfR1VDX01TR19JU19SRVFVRVNUKG0pCV9fSU5URUxfR1VD X01TR19UWVBFX0lTKFJFUVVFU1QsIG0pCiAjZGVmaW5lIElOVEVMX0dVQ19NU0dfSVNfUkVTUE9O U0UobSkJX19JTlRFTF9HVUNfTVNHX1RZUEVfSVMoUkVTUE9OU0UsIG0pCiAKLWVudW0gaW50ZWxf Z3VjX2FjdGlvbiB7Ci0JSU5URUxfR1VDX0FDVElPTl9ERUZBVUxUID0gMHgwLAotCUlOVEVMX0dV Q19BQ1RJT05fUkVRVUVTVF9QUkVFTVBUSU9OID0gMHgyLAotCUlOVEVMX0dVQ19BQ1RJT05fUkVR VUVTVF9FTkdJTkVfUkVTRVQgPSAweDMsCi0JSU5URUxfR1VDX0FDVElPTl9BTExPQ0FURV9ET09S QkVMTCA9IDB4MTAsCi0JSU5URUxfR1VDX0FDVElPTl9ERUFMTE9DQVRFX0RPT1JCRUxMID0gMHgy MCwKLQlJTlRFTF9HVUNfQUNUSU9OX0xPR19CVUZGRVJfRklMRV9GTFVTSF9DT01QTEVURSA9IDB4 MzAsCi0JSU5URUxfR1VDX0FDVElPTl9VS19MT0dfRU5BQkxFX0xPR0dJTkcgPSAweDQwLAotCUlO VEVMX0dVQ19BQ1RJT05fRk9SQ0VfTE9HX0JVRkZFUl9GTFVTSCA9IDB4MzAyLAotCUlOVEVMX0dV Q19BQ1RJT05fRU5URVJfU19TVEFURSA9IDB4NTAxLAotCUlOVEVMX0dVQ19BQ1RJT05fRVhJVF9T X1NUQVRFID0gMHg1MDIsCi0JSU5URUxfR1VDX0FDVElPTl9TTFBDX1JFUVVFU1QgPSAweDMwMDMs Ci0JSU5URUxfR1VDX0FDVElPTl9BVVRIRU5USUNBVEVfSFVDID0gMHg0MDAwLAotCUlOVEVMX0dV Q19BQ1RJT05fUkVHSVNURVJfQ09NTUFORF9UUkFOU1BPUlRfQlVGRkVSID0gMHg0NTA1LAotCUlO VEVMX0dVQ19BQ1RJT05fREVSRUdJU1RFUl9DT01NQU5EX1RSQU5TUE9SVF9CVUZGRVIgPSAweDQ1 MDYsCi0JSU5URUxfR1VDX0FDVElPTl9MSU1JVAotfTsKLQotZW51bSBpbnRlbF9ndWNfcHJlZW1w dF9vcHRpb25zIHsKLQlJTlRFTF9HVUNfUFJFRU1QVF9PUFRJT05fRFJPUF9XT1JLX1EgPSAweDQs Ci0JSU5URUxfR1VDX1BSRUVNUFRfT1BUSU9OX0RST1BfU1VCTUlUX1EgPSAweDgsCi19OwotCi1l bnVtIGludGVsX2d1Y19yZXBvcnRfc3RhdHVzIHsKLQlJTlRFTF9HVUNfUkVQT1JUX1NUQVRVU19V TktOT1dOID0gMHgwLAotCUlOVEVMX0dVQ19SRVBPUlRfU1RBVFVTX0FDS0VEID0gMHgxLAotCUlO VEVMX0dVQ19SRVBPUlRfU1RBVFVTX0VSUk9SID0gMHgyLAotCUlOVEVMX0dVQ19SRVBPUlRfU1RB VFVTX0NPTVBMRVRFID0gMHg0LAotfTsKLQotZW51bSBpbnRlbF9ndWNfc2xlZXBfc3RhdGVfc3Rh dHVzIHsKLQlJTlRFTF9HVUNfU0xFRVBfU1RBVEVfU1VDQ0VTUyA9IDB4MSwKLQlJTlRFTF9HVUNf U0xFRVBfU1RBVEVfUFJFRU1QVF9UT19JRExFX0ZBSUxFRCA9IDB4MiwKLQlJTlRFTF9HVUNfU0xF RVBfU1RBVEVfRU5HSU5FX1JFU0VUX0ZBSUxFRCA9IDB4MwotI2RlZmluZSBJTlRFTF9HVUNfU0xF RVBfU1RBVEVfSU5WQUxJRF9NQVNLIDB4ODAwMDAwMDAKLX07Ci0KLSNkZWZpbmUgR1VDX0xPR19D T05UUk9MX0xPR0dJTkdfRU5BQkxFRAkoMSA8PCAwKQotI2RlZmluZSBHVUNfTE9HX0NPTlRST0xf VkVSQk9TSVRZX1NISUZUCTQKLSNkZWZpbmUgR1VDX0xPR19DT05UUk9MX1ZFUkJPU0lUWV9NQVNL CSgweEYgPDwgR1VDX0xPR19DT05UUk9MX1ZFUkJPU0lUWV9TSElGVCkKLSNkZWZpbmUgR1VDX0xP R19DT05UUk9MX0RFRkFVTFRfTE9HR0lORwkoMSA8PCA4KQotCi1lbnVtIGludGVsX2d1Y19yZXNw b25zZV9zdGF0dXMgewotCUlOVEVMX0dVQ19SRVNQT05TRV9TVEFUVVNfU1VDQ0VTUyA9IDB4MCwK LQlJTlRFTF9HVUNfUkVTUE9OU0VfU1RBVFVTX0dFTkVSSUNfRkFJTCA9IDB4RjAwMCwKLX07Ci0K ICNkZWZpbmUgSU5URUxfR1VDX01TR19JU19SRVNQT05TRV9TVUNDRVNTKG0pIFwKIAkgKHR5cGVj aGVjayh1MzIsIChtKSkgJiYgXAogCSAgKChtKSAmIChJTlRFTF9HVUNfTVNHX1RZUEVfTUFTSyB8 IElOVEVMX0dVQ19NU0dfQ09ERV9NQVNLKSkgPT0gXAotLSAKMi4yOC4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E9077C47082 for ; Thu, 3 Jun 2021 04:59:00 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BAC64613D7 for ; Thu, 3 Jun 2021 04:59:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BAC64613D7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8B7396F3C2; Thu, 3 Jun 2021 04:58:44 +0000 (UTC) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id BD1FE6F39F; Thu, 3 Jun 2021 04:58:42 +0000 (UTC) IronPort-SDR: MOgmIjN2cE/8kAHfg/nqLiaIRgImUFyCiCvwNBDiEVH9bST158o9JqDlK+MXm4O2UlUKulWRzC zizbapZ2hNow== X-IronPort-AV: E=McAfee;i="6200,9189,10003"; a="203956512" X-IronPort-AV: E=Sophos;i="5.83,244,1616482800"; d="scan'208";a="203956512" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jun 2021 21:58:41 -0700 IronPort-SDR: hMr2tA0KtL0XgVnYj1jFWuDUgdPiMUY3WTh1pZpJnQRlkIdpl1lAcg0zK5dbDPE6GXJsNsrp0v oMd6PCQyCSZw== X-IronPort-AV: E=Sophos;i="5.83,244,1616482800"; d="scan'208";a="480020002" Received: from dhiatt-server.jf.intel.com ([10.54.81.3]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jun 2021 21:58:40 -0700 From: Matthew Brost To: , Subject: [PATCH 05/20] drm/i915/guc: Keep strict GuC ABI definitions Date: Wed, 2 Jun 2021 22:16:15 -0700 Message-Id: <20210603051630.2635-6-matthew.brost@intel.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20210603051630.2635-1-matthew.brost@intel.com> References: <20210603051630.2635-1-matthew.brost@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@intel.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" From: Michal Wajdeczko Our fwif.h file is now mix of strict firmware ABI definitions and set of our helpers. In anticipation of upcoming changes to the GuC interface try to keep them separate in smaller maintainable files. Signed-off-by: Michal Wajdeczko Signed-off-by: Matthew Brost Reviewed-by: Michał Winiarski --- .../gpu/drm/i915/gt/uc/abi/guc_actions_abi.h | 51 +++++ .../gt/uc/abi/guc_communication_ctb_abi.h | 106 +++++++++ .../gt/uc/abi/guc_communication_mmio_abi.h | 52 +++++ .../gpu/drm/i915/gt/uc/abi/guc_errors_abi.h | 14 ++ .../gpu/drm/i915/gt/uc/abi/guc_messages_abi.h | 21 ++ drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 203 +----------------- 6 files changed, 250 insertions(+), 197 deletions(-) create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_communication_ctb_abi.h create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_communication_mmio_abi.h create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h create mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h diff --git a/drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h b/drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h new file mode 100644 index 000000000000..90efef8a73e4 --- /dev/null +++ b/drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h @@ -0,0 +1,51 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2014-2021 Intel Corporation + */ + +#ifndef _ABI_GUC_ACTIONS_ABI_H +#define _ABI_GUC_ACTIONS_ABI_H + +enum intel_guc_action { + INTEL_GUC_ACTION_DEFAULT = 0x0, + INTEL_GUC_ACTION_REQUEST_PREEMPTION = 0x2, + INTEL_GUC_ACTION_REQUEST_ENGINE_RESET = 0x3, + INTEL_GUC_ACTION_ALLOCATE_DOORBELL = 0x10, + INTEL_GUC_ACTION_DEALLOCATE_DOORBELL = 0x20, + INTEL_GUC_ACTION_LOG_BUFFER_FILE_FLUSH_COMPLETE = 0x30, + INTEL_GUC_ACTION_UK_LOG_ENABLE_LOGGING = 0x40, + INTEL_GUC_ACTION_FORCE_LOG_BUFFER_FLUSH = 0x302, + INTEL_GUC_ACTION_ENTER_S_STATE = 0x501, + INTEL_GUC_ACTION_EXIT_S_STATE = 0x502, + INTEL_GUC_ACTION_SLPC_REQUEST = 0x3003, + INTEL_GUC_ACTION_AUTHENTICATE_HUC = 0x4000, + INTEL_GUC_ACTION_REGISTER_COMMAND_TRANSPORT_BUFFER = 0x4505, + INTEL_GUC_ACTION_DEREGISTER_COMMAND_TRANSPORT_BUFFER = 0x4506, + INTEL_GUC_ACTION_LIMIT +}; + +enum intel_guc_preempt_options { + INTEL_GUC_PREEMPT_OPTION_DROP_WORK_Q = 0x4, + INTEL_GUC_PREEMPT_OPTION_DROP_SUBMIT_Q = 0x8, +}; + +enum intel_guc_report_status { + INTEL_GUC_REPORT_STATUS_UNKNOWN = 0x0, + INTEL_GUC_REPORT_STATUS_ACKED = 0x1, + INTEL_GUC_REPORT_STATUS_ERROR = 0x2, + INTEL_GUC_REPORT_STATUS_COMPLETE = 0x4, +}; + +enum intel_guc_sleep_state_status { + INTEL_GUC_SLEEP_STATE_SUCCESS = 0x1, + INTEL_GUC_SLEEP_STATE_PREEMPT_TO_IDLE_FAILED = 0x2, + INTEL_GUC_SLEEP_STATE_ENGINE_RESET_FAILED = 0x3 +#define INTEL_GUC_SLEEP_STATE_INVALID_MASK 0x80000000 +}; + +#define GUC_LOG_CONTROL_LOGGING_ENABLED (1 << 0) +#define GUC_LOG_CONTROL_VERBOSITY_SHIFT 4 +#define GUC_LOG_CONTROL_VERBOSITY_MASK (0xF << GUC_LOG_CONTROL_VERBOSITY_SHIFT) +#define GUC_LOG_CONTROL_DEFAULT_LOGGING (1 << 8) + +#endif /* _ABI_GUC_ACTIONS_ABI_H */ diff --git a/drivers/gpu/drm/i915/gt/uc/abi/guc_communication_ctb_abi.h b/drivers/gpu/drm/i915/gt/uc/abi/guc_communication_ctb_abi.h new file mode 100644 index 000000000000..ebd8c3e0e4bb --- /dev/null +++ b/drivers/gpu/drm/i915/gt/uc/abi/guc_communication_ctb_abi.h @@ -0,0 +1,106 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2014-2021 Intel Corporation + */ + +#ifndef _ABI_GUC_COMMUNICATION_CTB_ABI_H +#define _ABI_GUC_COMMUNICATION_CTB_ABI_H + +#include + +/** + * DOC: CTB based communication + * + * The CTB (command transport buffer) communication between Host and GuC + * is based on u32 data stream written to the shared buffer. One buffer can + * be used to transmit data only in one direction (one-directional channel). + * + * Current status of the each buffer is stored in the buffer descriptor. + * Buffer descriptor holds tail and head fields that represents active data + * stream. The tail field is updated by the data producer (sender), and head + * field is updated by the data consumer (receiver):: + * + * +------------+ + * | DESCRIPTOR | +=================+============+========+ + * +============+ | | MESSAGE(s) | | + * | address |--------->+=================+============+========+ + * +------------+ + * | head | ^-----head--------^ + * +------------+ + * | tail | ^---------tail-----------------^ + * +------------+ + * | size | ^---------------size--------------------^ + * +------------+ + * + * Each message in data stream starts with the single u32 treated as a header, + * followed by optional set of u32 data that makes message specific payload:: + * + * +------------+---------+---------+---------+ + * | MESSAGE | + * +------------+---------+---------+---------+ + * | msg[0] | [1] | ... | [n-1] | + * +------------+---------+---------+---------+ + * | MESSAGE | MESSAGE PAYLOAD | + * + HEADER +---------+---------+---------+ + * | | 0 | ... | n | + * +======+=====+=========+=========+=========+ + * | 31:16| code| | | | + * +------+-----+ | | | + * | 15:5|flags| | | | + * +------+-----+ | | | + * | 4:0| len| | | | + * +------+-----+---------+---------+---------+ + * + * ^-------------len-------------^ + * + * The message header consists of: + * + * - **len**, indicates length of the message payload (in u32) + * - **code**, indicates message code + * - **flags**, holds various bits to control message handling + */ + +/* + * Describes single command transport buffer. + * Used by both guc-master and clients. + */ +struct guc_ct_buffer_desc { + u32 addr; /* gfx address */ + u64 host_private; /* host private data */ + u32 size; /* size in bytes */ + u32 head; /* offset updated by GuC*/ + u32 tail; /* offset updated by owner */ + u32 is_in_error; /* error indicator */ + u32 fence; /* fence updated by GuC */ + u32 status; /* status updated by GuC */ + u32 owner; /* id of the channel owner */ + u32 owner_sub_id; /* owner-defined field for extra tracking */ + u32 reserved[5]; +} __packed; + +/* Type of command transport buffer */ +#define INTEL_GUC_CT_BUFFER_TYPE_SEND 0x0u +#define INTEL_GUC_CT_BUFFER_TYPE_RECV 0x1u + +/* + * Definition of the command transport message header (DW0) + * + * bit[4..0] message len (in dwords) + * bit[7..5] reserved + * bit[8] response (G2H only) + * bit[8] write fence to desc (H2G only) + * bit[9] write status to H2G buff (H2G only) + * bit[10] send status back via G2H (H2G only) + * bit[15..11] reserved + * bit[31..16] action code + */ +#define GUC_CT_MSG_LEN_SHIFT 0 +#define GUC_CT_MSG_LEN_MASK 0x1F +#define GUC_CT_MSG_IS_RESPONSE (1 << 8) +#define GUC_CT_MSG_WRITE_FENCE_TO_DESC (1 << 8) +#define GUC_CT_MSG_WRITE_STATUS_TO_BUFF (1 << 9) +#define GUC_CT_MSG_SEND_STATUS (1 << 10) +#define GUC_CT_MSG_ACTION_SHIFT 16 +#define GUC_CT_MSG_ACTION_MASK 0xFFFF + +#endif /* _ABI_GUC_COMMUNICATION_CTB_ABI_H */ diff --git a/drivers/gpu/drm/i915/gt/uc/abi/guc_communication_mmio_abi.h b/drivers/gpu/drm/i915/gt/uc/abi/guc_communication_mmio_abi.h new file mode 100644 index 000000000000..be066a62e9e0 --- /dev/null +++ b/drivers/gpu/drm/i915/gt/uc/abi/guc_communication_mmio_abi.h @@ -0,0 +1,52 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2014-2021 Intel Corporation + */ + +#ifndef _ABI_GUC_COMMUNICATION_MMIO_ABI_H +#define _ABI_GUC_COMMUNICATION_MMIO_ABI_H + +/** + * DOC: MMIO based communication + * + * The MMIO based communication between Host and GuC uses software scratch + * registers, where first register holds data treated as message header, + * and other registers are used to hold message payload. + * + * For Gen9+, GuC uses software scratch registers 0xC180-0xC1B8, + * but no H2G command takes more than 8 parameters and the GuC FW + * itself uses an 8-element array to store the H2G message. + * + * +-----------+---------+---------+---------+ + * | MMIO[0] | MMIO[1] | ... | MMIO[n] | + * +-----------+---------+---------+---------+ + * | header | optional payload | + * +======+====+=========+=========+=========+ + * | 31:28|type| | | | + * +------+----+ | | | + * | 27:16|data| | | | + * +------+----+ | | | + * | 15:0|code| | | | + * +------+----+---------+---------+---------+ + * + * The message header consists of: + * + * - **type**, indicates message type + * - **code**, indicates message code, is specific for **type** + * - **data**, indicates message data, optional, depends on **code** + * + * The following message **types** are supported: + * + * - **REQUEST**, indicates Host-to-GuC request, requested GuC action code + * must be priovided in **code** field. Optional action specific parameters + * can be provided in remaining payload registers or **data** field. + * + * - **RESPONSE**, indicates GuC-to-Host response from earlier GuC request, + * action response status will be provided in **code** field. Optional + * response data can be returned in remaining payload registers or **data** + * field. + */ + +#define GUC_MAX_MMIO_MSG_LEN 8 + +#endif /* _ABI_GUC_COMMUNICATION_MMIO_ABI_H */ diff --git a/drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h b/drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h new file mode 100644 index 000000000000..488b6061ee89 --- /dev/null +++ b/drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2014-2021 Intel Corporation + */ + +#ifndef _ABI_GUC_ERRORS_ABI_H +#define _ABI_GUC_ERRORS_ABI_H + +enum intel_guc_response_status { + INTEL_GUC_RESPONSE_STATUS_SUCCESS = 0x0, + INTEL_GUC_RESPONSE_STATUS_GENERIC_FAIL = 0xF000, +}; + +#endif /* _ABI_GUC_ERRORS_ABI_H */ diff --git a/drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h b/drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h new file mode 100644 index 000000000000..775e21f3058c --- /dev/null +++ b/drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2014-2021 Intel Corporation + */ + +#ifndef _ABI_GUC_MESSAGES_ABI_H +#define _ABI_GUC_MESSAGES_ABI_H + +#define INTEL_GUC_MSG_TYPE_SHIFT 28 +#define INTEL_GUC_MSG_TYPE_MASK (0xF << INTEL_GUC_MSG_TYPE_SHIFT) +#define INTEL_GUC_MSG_DATA_SHIFT 16 +#define INTEL_GUC_MSG_DATA_MASK (0xFFF << INTEL_GUC_MSG_DATA_SHIFT) +#define INTEL_GUC_MSG_CODE_SHIFT 0 +#define INTEL_GUC_MSG_CODE_MASK (0xFFFF << INTEL_GUC_MSG_CODE_SHIFT) + +enum intel_guc_msg_type { + INTEL_GUC_MSG_TYPE_REQUEST = 0x0, + INTEL_GUC_MSG_TYPE_RESPONSE = 0xF, +}; + +#endif /* _ABI_GUC_MESSAGES_ABI_H */ diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h index 0f9afcde1d0b..9bf35240e723 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h @@ -10,6 +10,12 @@ #include #include +#include "abi/guc_actions_abi.h" +#include "abi/guc_errors_abi.h" +#include "abi/guc_communication_mmio_abi.h" +#include "abi/guc_communication_ctb_abi.h" +#include "abi/guc_messages_abi.h" + #define GUC_CLIENT_PRIORITY_KMD_HIGH 0 #define GUC_CLIENT_PRIORITY_HIGH 1 #define GUC_CLIENT_PRIORITY_KMD_NORMAL 2 @@ -207,101 +213,6 @@ struct guc_stage_desc { u64 desc_private; } __packed; -/** - * DOC: CTB based communication - * - * The CTB (command transport buffer) communication between Host and GuC - * is based on u32 data stream written to the shared buffer. One buffer can - * be used to transmit data only in one direction (one-directional channel). - * - * Current status of the each buffer is stored in the buffer descriptor. - * Buffer descriptor holds tail and head fields that represents active data - * stream. The tail field is updated by the data producer (sender), and head - * field is updated by the data consumer (receiver):: - * - * +------------+ - * | DESCRIPTOR | +=================+============+========+ - * +============+ | | MESSAGE(s) | | - * | address |--------->+=================+============+========+ - * +------------+ - * | head | ^-----head--------^ - * +------------+ - * | tail | ^---------tail-----------------^ - * +------------+ - * | size | ^---------------size--------------------^ - * +------------+ - * - * Each message in data stream starts with the single u32 treated as a header, - * followed by optional set of u32 data that makes message specific payload:: - * - * +------------+---------+---------+---------+ - * | MESSAGE | - * +------------+---------+---------+---------+ - * | msg[0] | [1] | ... | [n-1] | - * +------------+---------+---------+---------+ - * | MESSAGE | MESSAGE PAYLOAD | - * + HEADER +---------+---------+---------+ - * | | 0 | ... | n | - * +======+=====+=========+=========+=========+ - * | 31:16| code| | | | - * +------+-----+ | | | - * | 15:5|flags| | | | - * +------+-----+ | | | - * | 4:0| len| | | | - * +------+-----+---------+---------+---------+ - * - * ^-------------len-------------^ - * - * The message header consists of: - * - * - **len**, indicates length of the message payload (in u32) - * - **code**, indicates message code - * - **flags**, holds various bits to control message handling - */ - -/* - * Describes single command transport buffer. - * Used by both guc-master and clients. - */ -struct guc_ct_buffer_desc { - u32 addr; /* gfx address */ - u64 host_private; /* host private data */ - u32 size; /* size in bytes */ - u32 head; /* offset updated by GuC*/ - u32 tail; /* offset updated by owner */ - u32 is_in_error; /* error indicator */ - u32 fence; /* fence updated by GuC */ - u32 status; /* status updated by GuC */ - u32 owner; /* id of the channel owner */ - u32 owner_sub_id; /* owner-defined field for extra tracking */ - u32 reserved[5]; -} __packed; - -/* Type of command transport buffer */ -#define INTEL_GUC_CT_BUFFER_TYPE_SEND 0x0u -#define INTEL_GUC_CT_BUFFER_TYPE_RECV 0x1u - -/* - * Definition of the command transport message header (DW0) - * - * bit[4..0] message len (in dwords) - * bit[7..5] reserved - * bit[8] response (G2H only) - * bit[8] write fence to desc (H2G only) - * bit[9] write status to H2G buff (H2G only) - * bit[10] send status back via G2H (H2G only) - * bit[15..11] reserved - * bit[31..16] action code - */ -#define GUC_CT_MSG_LEN_SHIFT 0 -#define GUC_CT_MSG_LEN_MASK 0x1F -#define GUC_CT_MSG_IS_RESPONSE (1 << 8) -#define GUC_CT_MSG_WRITE_FENCE_TO_DESC (1 << 8) -#define GUC_CT_MSG_WRITE_STATUS_TO_BUFF (1 << 9) -#define GUC_CT_MSG_SEND_STATUS (1 << 10) -#define GUC_CT_MSG_ACTION_SHIFT 16 -#define GUC_CT_MSG_ACTION_MASK 0xFFFF - #define GUC_POWER_UNSPECIFIED 0 #define GUC_POWER_D0 1 #define GUC_POWER_D1 2 @@ -477,119 +388,17 @@ struct guc_shared_ctx_data { struct guc_ctx_report preempt_ctx_report[GUC_MAX_ENGINES_NUM]; } __packed; -/** - * DOC: MMIO based communication - * - * The MMIO based communication between Host and GuC uses software scratch - * registers, where first register holds data treated as message header, - * and other registers are used to hold message payload. - * - * For Gen9+, GuC uses software scratch registers 0xC180-0xC1B8, - * but no H2G command takes more than 8 parameters and the GuC FW - * itself uses an 8-element array to store the H2G message. - * - * +-----------+---------+---------+---------+ - * | MMIO[0] | MMIO[1] | ... | MMIO[n] | - * +-----------+---------+---------+---------+ - * | header | optional payload | - * +======+====+=========+=========+=========+ - * | 31:28|type| | | | - * +------+----+ | | | - * | 27:16|data| | | | - * +------+----+ | | | - * | 15:0|code| | | | - * +------+----+---------+---------+---------+ - * - * The message header consists of: - * - * - **type**, indicates message type - * - **code**, indicates message code, is specific for **type** - * - **data**, indicates message data, optional, depends on **code** - * - * The following message **types** are supported: - * - * - **REQUEST**, indicates Host-to-GuC request, requested GuC action code - * must be priovided in **code** field. Optional action specific parameters - * can be provided in remaining payload registers or **data** field. - * - * - **RESPONSE**, indicates GuC-to-Host response from earlier GuC request, - * action response status will be provided in **code** field. Optional - * response data can be returned in remaining payload registers or **data** - * field. - */ - -#define GUC_MAX_MMIO_MSG_LEN 8 - -#define INTEL_GUC_MSG_TYPE_SHIFT 28 -#define INTEL_GUC_MSG_TYPE_MASK (0xF << INTEL_GUC_MSG_TYPE_SHIFT) -#define INTEL_GUC_MSG_DATA_SHIFT 16 -#define INTEL_GUC_MSG_DATA_MASK (0xFFF << INTEL_GUC_MSG_DATA_SHIFT) -#define INTEL_GUC_MSG_CODE_SHIFT 0 -#define INTEL_GUC_MSG_CODE_MASK (0xFFFF << INTEL_GUC_MSG_CODE_SHIFT) - #define __INTEL_GUC_MSG_GET(T, m) \ (((m) & INTEL_GUC_MSG_ ## T ## _MASK) >> INTEL_GUC_MSG_ ## T ## _SHIFT) #define INTEL_GUC_MSG_TO_TYPE(m) __INTEL_GUC_MSG_GET(TYPE, m) #define INTEL_GUC_MSG_TO_DATA(m) __INTEL_GUC_MSG_GET(DATA, m) #define INTEL_GUC_MSG_TO_CODE(m) __INTEL_GUC_MSG_GET(CODE, m) -enum intel_guc_msg_type { - INTEL_GUC_MSG_TYPE_REQUEST = 0x0, - INTEL_GUC_MSG_TYPE_RESPONSE = 0xF, -}; - #define __INTEL_GUC_MSG_TYPE_IS(T, m) \ (INTEL_GUC_MSG_TO_TYPE(m) == INTEL_GUC_MSG_TYPE_ ## T) #define INTEL_GUC_MSG_IS_REQUEST(m) __INTEL_GUC_MSG_TYPE_IS(REQUEST, m) #define INTEL_GUC_MSG_IS_RESPONSE(m) __INTEL_GUC_MSG_TYPE_IS(RESPONSE, m) -enum intel_guc_action { - INTEL_GUC_ACTION_DEFAULT = 0x0, - INTEL_GUC_ACTION_REQUEST_PREEMPTION = 0x2, - INTEL_GUC_ACTION_REQUEST_ENGINE_RESET = 0x3, - INTEL_GUC_ACTION_ALLOCATE_DOORBELL = 0x10, - INTEL_GUC_ACTION_DEALLOCATE_DOORBELL = 0x20, - INTEL_GUC_ACTION_LOG_BUFFER_FILE_FLUSH_COMPLETE = 0x30, - INTEL_GUC_ACTION_UK_LOG_ENABLE_LOGGING = 0x40, - INTEL_GUC_ACTION_FORCE_LOG_BUFFER_FLUSH = 0x302, - INTEL_GUC_ACTION_ENTER_S_STATE = 0x501, - INTEL_GUC_ACTION_EXIT_S_STATE = 0x502, - INTEL_GUC_ACTION_SLPC_REQUEST = 0x3003, - INTEL_GUC_ACTION_AUTHENTICATE_HUC = 0x4000, - INTEL_GUC_ACTION_REGISTER_COMMAND_TRANSPORT_BUFFER = 0x4505, - INTEL_GUC_ACTION_DEREGISTER_COMMAND_TRANSPORT_BUFFER = 0x4506, - INTEL_GUC_ACTION_LIMIT -}; - -enum intel_guc_preempt_options { - INTEL_GUC_PREEMPT_OPTION_DROP_WORK_Q = 0x4, - INTEL_GUC_PREEMPT_OPTION_DROP_SUBMIT_Q = 0x8, -}; - -enum intel_guc_report_status { - INTEL_GUC_REPORT_STATUS_UNKNOWN = 0x0, - INTEL_GUC_REPORT_STATUS_ACKED = 0x1, - INTEL_GUC_REPORT_STATUS_ERROR = 0x2, - INTEL_GUC_REPORT_STATUS_COMPLETE = 0x4, -}; - -enum intel_guc_sleep_state_status { - INTEL_GUC_SLEEP_STATE_SUCCESS = 0x1, - INTEL_GUC_SLEEP_STATE_PREEMPT_TO_IDLE_FAILED = 0x2, - INTEL_GUC_SLEEP_STATE_ENGINE_RESET_FAILED = 0x3 -#define INTEL_GUC_SLEEP_STATE_INVALID_MASK 0x80000000 -}; - -#define GUC_LOG_CONTROL_LOGGING_ENABLED (1 << 0) -#define GUC_LOG_CONTROL_VERBOSITY_SHIFT 4 -#define GUC_LOG_CONTROL_VERBOSITY_MASK (0xF << GUC_LOG_CONTROL_VERBOSITY_SHIFT) -#define GUC_LOG_CONTROL_DEFAULT_LOGGING (1 << 8) - -enum intel_guc_response_status { - INTEL_GUC_RESPONSE_STATUS_SUCCESS = 0x0, - INTEL_GUC_RESPONSE_STATUS_GENERIC_FAIL = 0xF000, -}; - #define INTEL_GUC_MSG_IS_RESPONSE_SUCCESS(m) \ (typecheck(u32, (m)) && \ ((m) & (INTEL_GUC_MSG_TYPE_MASK | INTEL_GUC_MSG_CODE_MASK)) == \ -- 2.28.0