From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v8 01/19] drm/dsc: Define Display Stream Compression PPS infoframe Date: Fri, 2 Nov 2018 14:31:20 -0700 Message-ID: <20181102213138.301-2-manasi.d.navare@intel.com> References: <20181102213138.301-1-manasi.d.navare@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181102213138.301-1-manasi.d.navare@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Harry Wentland List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBkZWZpbmVzIGEgbmV3IGhlYWRlciBmaWxlIGZvciBhbGwgdGhlIERTQyAxLjIg c3RydWN0dXJlcwphbmQgY3JlYXRlcyBhIHN0cnVjdHVyZSBmb3IgUFBTIGluZm9mcmFtZSB3aGlj aCB3aWxsIGJlIHVzZWQgdG8gc2VuZApwaWN0dXJlIHBhcmFtZXRlciBzZXQgc2Vjb25kYXJ5IGRh dGEgcGFja2V0IGZvciBkaXNwbGF5IHN0cmVhbSBjb21wcmVzc2lvbi4KQWxsIHRoZSBQUFMgaW5m b2ZyYW1lIHN5bnRheCBlbGVtZW50cyBhcmUgdGFrZW4gZnJvbSBEU0MgMS4yIHNwZWNpZmljYXRp b24KZnJvbSBWRVNBLgoKdjQ6CiogUmVtb3ZlIHJlZHVuZGFudCBibGFua2xpbmUgaW4gZG9jIChW aWxsZSkKKiB1c2UgZHJtX2RzYyBuYW1lc3BhY2UgZm9yIGFsbCBzdHJ1Y3RzIChWaWxsZSkKKiBV c2UgcGFja2VkIHN0cnVjdCAoVmlsbGUpCnYzOgoqIEFkZCB0aGUgU1BEWCBzaG9ydGhhbmQgKENo cmlzIFdpbHNvbikKdjI6CiogRG8gbm90IHVzZSBiaXRmaWVsZHMgaW4gdGhlIHN0cnVjdCAoSmFu aSBOaWt1bGEpCgpDYzogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGludGVsLmNvbT4K Q2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKQ2M6IEphbmkgTmlrdWxhIDxqYW5p Lm5pa3VsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KQ2M6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGlu dGVsLmNvbT4KQ2M6IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53ZW50bGFuZEBhbWQuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgpSZXZp ZXdlZC1ieTogSGFycnkgV2VudGxhbmQgPGhhcnJ5LndlbnRsYW5kQGFtZC5jb20+Ci0tLQogaW5j bHVkZS9kcm0vZHJtX2RzYy5oIHwgMzQyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDM0MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgaW5jbHVkZS9kcm0vZHJtX2RzYy5oCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2RzYy5oIGIvaW5jbHVkZS9kcm0vZHJtX2RzYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uNzhkYjRmNjFkMDFjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVk ZS9kcm0vZHJtX2RzYy5oCkBAIC0wLDAgKzEsMzQyIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogTUlUCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggSW50ZWwgQ29ycC4KKyAqCisgKiBBdXRo b3JzOgorICogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KKyAqLwor CisjaWZuZGVmIERSTV9EU0NfSF8KKyNkZWZpbmUgRFJNX0RTQ19IXworCisjaW5jbHVkZSA8ZHJt L2RybV9kcF9oZWxwZXIuaD4KKworLyogVkVTQSBEaXNwbGF5IFN0cmVhbSBDb21wcmVzc2lvbiBE U0MgMS4yIGNvbnN0YW50cyAqLworI2RlZmluZSBEU0NfTlVNX0JVRl9SQU5HRVMJMTUKKworLyoq CisgKiBzdHJ1Y3QgcGljdHVyZV9wYXJhbWV0ZXJfc2V0IC0gUmVwcmVzZW50cyAxMjggYnl0ZXMg b2YgUGljdHVyZSBQYXJhbWV0ZXIgU2V0CisgKgorICogVGhlIFZFU0EgRFNDIHN0YW5kYXJkIGRl ZmluZXMgcGljdHVyZSBwYXJhbWV0ZXIgc2V0IChQUFMpIHdoaWNoIGRpc3BsYXkKKyAqIHN0cmVh bSBjb21wcmVzc2lvbiBlbmNvZGVycyBtdXN0IGNvbW11bmljYXRlIHRvIGRlY29kZXJzLgorICog VGhlIFBQUyBpcyBlbmNhcHN1bGF0ZWQgaW4gMTI4IGJ5dGVzIChQUFMgMCB0aHJvdWdoIFBQUyAx MjcpLiBUaGUgZmllbGRzIGluCisgKiB0aGlzIHN0cnVjdHVyZSBhcmUgYXMgcGVyIFRhYmxlIDQu MSBpbiBWZXNhIERTQyBzcGVjaWZpY2F0aW9uIHYxLjEvdjEuMi4KKyAqIFRoZSBQUFMgZmllbGRz IHRoYXQgc3BhbiBvdmVyIG1vcmUgdGhhbiBhIGJ5dGUgc2hvdWxkIGJlIHN0b3JlZCBpbiBCaWcg RW5kaWFuCisgKiBmb3JtYXQuCisgKi8KK3N0cnVjdCBkcm1fZHNjX3BpY3R1cmVfcGFyYW1ldGVy X3NldCB7CisJLyoqCisJICogQGRzY192ZXJzaW9uOgorCSAqIFBQUzBbMzowXSAtIGRzY192ZXJz aW9uX21pbm9yOiBDb250YWlucyBNaW5vciB2ZXJzaW9uIG9mIERTQworCSAqIFBQUzBbNzo0XSAt IGRzY192ZXJzaW9uX21ham9yOiBDb250YWlucyBtYWpvciB2ZXJzaW9uIG9mIERTQworCSAqLwor CXU4IGRzY192ZXJzaW9uOworCS8qKgorCSAqIEBwcHNfaWRlbnRpZmllcjoKKwkgKiBQUFMxWzc6 MF0gLSBBcHBsaWNhdGlvbiBzcGVjaWZpYyBpZGVudGlmaWVyIHRoYXQgY2FuIGJlCisJICogdXNl ZCB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gZGlmZmVyZW50IFBQUyB0YWJsZXMuCisJICovCisJ dTggcHBzX2lkZW50aWZpZXI7CisJLyoqCisJICogQHBwc19yZXNlcnZlZDoKKwkgKiBQUFMyWzc6 MF0tIFJFU0VSVkVEIEJ5dGUKKwkgKi8KKwl1OCBwcHNfcmVzZXJ2ZWQ7CisJLyoqCisJICogQHBw c18zOgorCSAqIFBQUzNbMzowXSAtIGxpbmVidWZfZGVwdGg6IENvbnRhaW5zIGxpbmVidWZmZXIg Yml0IGRlcHRoIHVzZWQgdG8KKwkgKiBnZW5lcmF0ZSB0aGUgYml0c3RyZWFtLiAoMHgwIC0gMTYg Yml0cyBmb3IgRFNDIDEuMiwgMHg4IC0gOCBiaXRzLAorCSAqIDB4QSAtIDEwIGJpdHMsIDB4QiAt IDExIGJpdHMsIDB4QyAtIDEyIGJpdHMsIDB4RCAtIDEzIGJpdHMsCisJICogMHhFIC0gMTQgYml0 cyBmb3IgRFNDMS4yLCAweEYgLSAxNCBiaXRzIGZvciBEU0MgMS4yLgorCSAqIFBQUzNbNzo0XSAt IGJpdHNfcGVyX2NvbXBvbmVudDogQml0cyBwZXIgY29tcG9uZW50IGZvciB0aGUgb3JpZ2luYWwK KwkgKiBwaXhlbHMgb2YgdGhlIGVuY29kZWQgcGljdHVyZS4KKwkgKiAweDAgPSAxNmJwYyAoYWxs b3dlZCBvbmx5IHdoZW4gZHNjX3ZlcnNpb25fbWlub3IgPSAweDIpCisJICogMHg4ID0gOGJwYywg MHhBID0gMTBicGMsIDB4QyA9IDEyYnBjLCAweEUgPSAxNGJwYyAoYWxzbworCSAqIGFsbG93ZWQg b25seSB3aGVuIGRzY19taW5vcl92ZXJzaW9uID0gMHgyKQorCSAqLworCXU4IHBwc18zOworCS8q KgorCSAqIEBwcHNfNDoKKwkgKiBQUFM0WzE6MF0gLVRoZXNlIGFyZSB0aGUgbW9zdCBzaWduaWZp Y2FudCAyIGJpdHMgb2YKKwkgKiBjb21wcmVzc2VkIEJQUCBiaXRzX3Blcl9waXhlbFs5OjBdIHN5 bnRheCBlbGVtZW50LgorCSAqIFBQUzRbMl0gLSB2YnJfZW5hYmxlOiAwID0gVkJSIGRpc2FibGVk LCAxID0gVkJSIGVuYWJsZWQKKwkgKiBQUFM0WzNdIC0gc2ltcGxlXzQyMjogSW5kaWNhdGVzIGlm IGRlY29kZXIgZHJvcHMgc2FtcGxlcyB0bworCSAqIHJlY29uc3RydWN0IHRoZSA0OjI6MiBwaWN0 dXJlLgorCSAqIFBQUzRbNF0gLSBDb252ZXJ0X3JnYjogSW5kaWNhdGVzIGlmIERTQyBjb2xvciBz cGFjZSBjb252ZXJzaW9uIGlzCisJICogYWN0aXZlLgorCSAqIFBQUzRbNV0gLSBibG9ia19wcmVk X2VuYWJsZTogSW5kaWNhdGVzIGlmIEJQIGlzIHVzZWQgdG8gY29kZSBhbnkKKwkgKiBncm91cHMg aW4gcGljdHVyZQorCSAqIFBQUzRbNzo2XSAtIFJlc2V2ZWQgYml0cworCSAqLworCXU4IHBwc180 OworCS8qKgorCSAqIEBiaXRzX3Blcl9waXhlbF9sb3c6CisJICogUFBTNVs3OjBdIC0gVGhpcyBp bmRpY2F0ZXMgdGhlIGxvd2VyIHNpZ25pZmljYW50IDggYml0cyBvZgorCSAqIHRoZSBjb21wcmVz c2VkIEJQUCBiaXRzX3Blcl9waXhlbFs5OjBdIGVsZW1lbnQuCisJICovCisJdTggYml0c19wZXJf cGl4ZWxfbG93OworCS8qKgorCSAqIEBwaWNfaGVpZ2h0OgorCSAqIFBQUzZbNzowXSwgUFBTN1s3 OjBdIC1waWNfaGVpZ2h0OiBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBwaXhlbCByb3dzCisJICog d2l0aGluIHRoZSByYXN0ZXIuCisJICovCisJX19iZTE2IHBpY19oZWlnaHQ7CisJLyoqCisJICog QHBpY193aWR0aDoKKwkgKiBQUFM4Wzc6MF0sIFBQUzlbNzowXSAtIHBpY193aWR0aDogTnVtYmVy IG9mIHBpeGVsIGNvbHVtbnMgd2l0aGluCisJICogdGhlIHJhc3Rlci4KKwkgKi8KKwlfX2JlMTYg cGljX3dpZHRoOworCS8qKgorCSAqIEBzbGljZV9oZWlnaHQ6CisJICogUFBTMTBbNzowXSwgUFBT MTFbNzowXSAtIFNsaWNlIGhlaWdodCBpbiB1bml0cyBvZiBwaXhlbHMuCisJICovCisJX19iZTE2 IHNsaWNlX2hlaWdodDsKKwkvKioKKwkgKiBAc2xpY2Vfd2lkdGg6CisJICogUFBTMTJbNzowXSwg UFBTMTNbNzowXSAtIFNsaWNlIHdpZHRoIGluIHRlcm1zIG9mIHBpeGVscy4KKwkgKi8KKwlfX2Jl MTYgc2xpY2Vfd2lkdGg7CisJLyoqCisJICogQGNodW5rX3NpemU6CisJICogUFBTMTRbNzowXSwg UFBTMTVbNzowXSAtIFNpemUgaW4gdW5pdHMgb2YgYnl0ZXMgb2YgdGhlIGNodW5rcworCSAqIHRo YXQgYXJlIHVzZWQgZm9yIHNsaWNlIG11bHRpcGxleGluZy4KKwkgKi8KKwlfX2JlMTYgY2h1bmtf c2l6ZTsKKwkvKioKKwkgKiBAaW5pdGlhbF94bWl0X2RlbGF5X2hpZ2g6CisJICogUFBTMTZbMTow XSAtIE1vc3QgU2lnbmlmaWNhbnQgdHdvIGJpdHMgb2YgaW5pdGlhbCB0cmFuc21pc3Npb24gZGVs YXkuCisJICogSXQgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgcGl4ZWwgdGltZXMgdGhhdCB0aGUg ZW5jb2RlciB3YWl0cyBiZWZvcmUKKwkgKiB0cmFuc21pdHRpbmcgZGF0YSBmcm9tIGl0cyByYXRl IGJ1ZmZlci4KKwkgKiBQUFMxNls3OjJdIC0gUmVzZXJ2ZWQKKwkgKi8KKwl1OCBpbml0aWFsX3ht aXRfZGVsYXlfaGlnaDsKKwkvKioKKwkgKiBAaW5pdGlhbF94bWl0X2RlbGF5X2xvdzoKKwkgKiBQ UFMxN1s3OjBdIC0gTGVhc3Qgc2lnbmlmaWNhbnQgOCBiaXRzIG9mIGluaXRpYWwgdHJhbnNtaXNz aW9uIGRlbGF5LgorCSAqLworCXU4IGluaXRpYWxfeG1pdF9kZWxheV9sb3c7CisJLyoqCisJICog QGluaXRpYWxfZGVjX2RlbGF5OgorCSAqCisJICogUFBTMThbNzowXSwgUFBTMTlbNzowXSAtIElu aXRpYWwgZGVjb2RpbmcgZGVsYXkgd2hpY2ggaXMgdGhlIG51bWJlcgorCSAqIG9mIHBpeGVsIHRp bWVzIHRoYXQgdGhlIGRlY29kZXIgYWNjdW11bGF0ZXMgZGF0YSBpbiBpdHMgcmF0ZSBidWZmZXIK KwkgKiBiZWZvcmUgc3RhcnRpbmcgdG8gZGVjb2RlIGFuZCBvdXRwdXQgcGl4ZWxzLgorCSAqLwor CV9fYmUxNiBpbml0aWFsX2RlY19kZWxheTsKKwkvKioKKwkgKiBAcHBzMjBfcmVzZXJ2ZWQ6CisJ ICoKKwkgKiBQUFMyMFs3OjBdIC0gUmVzZXJ2ZWQKKwkgKi8KKwl1OCBwcHMyMF9yZXNlcnZlZDsK KwkvKioKKwkgKiBAaW5pdGlhbF9zY2FsZV92YWx1ZToKKwkgKiBQUFMyMVs1OjBdIC0gSW5pdGlh bCByY1hmb3JtU2NhbGUgZmFjdG9yIHVzZWQgYXQgYmVnaW5uaW5nCisJICogb2YgYSBzbGljZS4K KwkgKiBQUFMyMVs3OjZdIC0gUmVzZXJ2ZWQKKwkgKi8KKwl1OCBpbml0aWFsX3NjYWxlX3ZhbHVl OworCS8qKgorCSAqIEBzY2FsZV9pbmNyZW1lbnRfaW50ZXJ2YWw6CisJICogUFBTMjJbNzowXSwg UFBTMjNbNzowXSAtIE51bWJlciBvZiBncm91cCB0aW1lcyBiZXR3ZWVuIGluY3JlbWVudGluZwor CSAqIHRoZSByY1hmb3JtU2NhbGUgZmFjdG9yIGF0IGVuZCBvZiBhIHNsaWNlLgorCSAqLworCV9f YmUxNiBzY2FsZV9pbmNyZW1lbnRfaW50ZXJ2YWw7CisJLyoqCisJICogQHNjYWxlX2RlY3JlbWVu dF9pbnRlcnZhbF9oaWdoOgorCSAqIFBQUzI0WzM6MF0gLSBIaWdoZXIgNCBiaXRzIGluZGljYXRp bmcgbnVtYmVyIG9mIGdyb3VwIHRpbWVzIGJldHdlZW4KKwkgKiBkZWNyZW1lbnRpbmcgdGhlIHJj WGZvcm1TY2FsZSBmYWN0b3IgYXQgYmVnaW5uaW5nIG9mIGEgc2xpY2UuCisJICogUFBTMjRbNzo0 XSAtIFJlc2VydmVkCisJICovCisJdTggc2NhbGVfZGVjcmVtZW50X2ludGVydmFsX2hpZ2g7CisJ LyoqCisJICogQHNjYWxlX2RlY3JlbWVudF9pbnRlcnZhbF9sb3c6CisJICogUFBTMjVbNzowXSAt IExvd2VyIDggYml0cyBvZiBzY2FsZSBkZWNyZW1lbnQgaW50ZXJ2YWwKKwkgKi8KKwl1OCBzY2Fs ZV9kZWNyZW1lbnRfaW50ZXJ2YWxfbG93OworCS8qKgorCSAqIEBwcHMyNl9yZXNlcnZlZDoKKwkg KiBQUFMyNls3OjBdCisJICovCisJdTggcHBzMjZfcmVzZXJ2ZWQ7CisJLyoqCisJICogQGZpcnN0 X2xpbmVfYnBnX29mZnNldDoKKwkgKiBQUFMyN1s0OjBdIC0gTnVtYmVyIG9mIGFkZGl0aW9uYWwg Yml0cyB0aGF0IGFyZSBhbGxvY2F0ZWQKKwkgKiBmb3IgZWFjaCBncm91cCBvbiBmaXJzdCBsaW5l IG9mIGEgc2xpY2UuCisJICogUFBTMjdbNzo1XSAtIFJlc2VydmVkCisJICovCisJdTggZmlyc3Rf bGluZV9icGdfb2Zmc2V0OworCS8qKgorCSAqIEBuZmxfYnBnX29mZnNldDoKKwkgKiBQUFMyOFs3 OjBdLCBQUFMyOVs3OjBdIC0gTnVtYmVyIG9mIGJpdHMgaW5jbHVkaW5nIGZyYWMgYml0cworCSAq IGRlYWxsb2NhdGVkIGZvciBlYWNoIGdyb3VwIGZvciBncm91cHMgYWZ0ZXIgdGhlIGZpcnN0IGxp bmUgb2Ygc2xpY2UuCisJICovCisJX19iZTE2IG5mbF9icGdfb2Zmc2V0OworCS8qKgorCSAqIEBz bGljZV9icGdfb2Zmc2V0OgorCSAqIFBQUzMwLCBQUFMzMVs3OjBdIC0gTnVtYmVyIG9mIGJpdHMg dGhhdCBhcmUgZGVhbGxvY2F0ZWQgZm9yIGVhY2gKKwkgKiBncm91cCB0byBlbmZvcmNlIHRoZSBz bGljZSBjb25zdHJhaW50LgorCSAqLworCV9fYmUxNiBzbGljZV9icGdfb2Zmc2V0OworCS8qKgor CSAqIEBpbml0aWFsX29mZnNldDoKKwkgKiBQUFMzMiwzM1s3OjBdIC0gSW5pdGlhbCB2YWx1ZSBm b3IgcmNYZm9ybU9mZnNldAorCSAqLworCV9fYmUxNiBpbml0aWFsX29mZnNldDsKKwkvKioKKwkg KiBAZmluYWxfb2Zmc2V0OgorCSAqIFBQUzM0LDM1Wzc6MF0gLSBNYXhpbXVtIGVuZC1vZi1zbGlj ZSB2YWx1ZSBmb3IgcmNYZm9ybU9mZnNldAorCSAqLworCV9fYmUxNiBmaW5hbF9vZmZzZXQ7CisJ LyoqCisJICogQGZsYXRuZXNzX21pbl9xcDoKKwkgKiBQUFMzNls0OjBdIC0gTWluaW11bSBRUCBh dCB3aGljaCBmbGF0bmVzcyBpcyBzaWduYWxlZCBhbmQKKwkgKiBmbGF0bmVzcyBRUCBhZGp1c3Rt ZW50IGlzIG1hZGUuCisJICogUFBTMzZbNzo1XSAtIFJlc2VydmVkCisJICovCisJdTggZmxhdG5l c3NfbWluX3FwOworCS8qKgorCSAqIEBmbGF0bmVzc19tYXhfcXA6CisJICogUFBTMzdbNDowXSAt IE1heCBRUCBhdCB3aGljaCBmbGF0bmVzcyBpcyBzaWduYWxsZWQgYW5kCisJICogdGhlIGZsYXRu ZXNzIGFkanVzdG1lbnQgaXMgbWFkZS4KKwkgKiBQUFMzN1s3OjVdIC0gUmVzZXJ2ZWQKKwkgKi8K Kwl1OCBmbGF0bmVzc19tYXhfcXA7CisJLyoqCisJICogQHJjX21vZGVsX3NpemU6CisJICogUFBT MzgsMzlbNzowXSAtIE51bWJlciBvZiBiaXRzIHdpdGhpbiBSQyBNb2RlbC4KKwkgKi8KKwlfX2Jl MTYgcmNfbW9kZWxfc2l6ZTsKKwkvKioKKwkgKiBAcmNfZWRnZV9mYWN0b3I6CisJICogUFBTNDBb MzowXSAtIFJhdGlvIG9mIGN1cnJlbnQgYWN0aXZpdHkgdnMsIHByZXZpb3VzCisJICogYWN0aXZp dHkgdG8gZGV0ZXJtaW5lIHByZXNlbmNlIG9mIGVkZ2UuCisJICogUFBTNDBbNzo0XSAtIFJlc2Vy dmVkCisJICovCisJdTggcmNfZWRnZV9mYWN0b3I7CisJLyoqCisJICogQHJjX3F1YW50X2luY3Jf bGltaXQwOgorCSAqIFBQUzQxWzQ6MF0gLSBRUCB0aHJlc2hvbGQgdXNlZCBpbiBzaG9ydCB0ZXJt IFJDCisJICogUFBTNDFbNzo1XSAtIFJlc2VydmVkCisJICovCisJdTggcmNfcXVhbnRfaW5jcl9s aW1pdDA7CisJLyoqCisJICogQHJjX3F1YW50X2luY3JfbGltaXQxOgorCSAqIFBQUzQyWzQ6MF0g LSBRUCB0aHJlc2hvbGQgdXNlZCBpbiBzaG9ydCB0ZXJtIFJDCisJICogUFBTNDJbNzo1XSAtIFJl c2VydmVkCisJICovCisJdTggcmNfcXVhbnRfaW5jcl9saW1pdDE7CisJLyoqCisJICogQHJjX3Rn dF9vZmZzZXQ6CisJICogUFBTNDNbMzowXSAtIExvd2VyIGVuZCBvZiB0aGUgdmFyaWFiaWxpdHkg cmFuZ2UgYXJvdW5kIHRoZSB0YXJnZXQKKwkgKiBiaXRzIHBlciBncm91cCB0aGF0IGlzIGFsbG93 ZWQgYnkgc2hvcnQgdGVybSBSQy4KKwkgKiBQUFM0M1s3OjRdLSBVcHBlciBlbmQgb2YgdGhlIHZh cmlhYmlsaXR5IHJhbmdlIGFyb3VuZCB0aGUgdGFyZ2V0CisJICogYml0cyBwZXIgZ3JvdXAgdGhh dCBpIGFsbG93ZWQgYnkgc2hvcnQgdGVybSByYy4KKwkgKi8KKwl1OCByY190Z3Rfb2Zmc2V0Owor CS8qKgorCSAqIEByY19idWZfdGhyZXNoOgorCSAqIFBQUzQ0Wzc6MF0gLSBQUFM1N1s3OjBdIC0g U3BlY2lmaWVzIHRoZSB0aHJlc2hvbGRzIGluIFJDIG1vZGVsIGZvcgorCSAqIHRoZSAxNSByYW5n ZXMgZGVmaW5lZCBieSAxNCB0aHJlc2hvbGRzLgorCSAqLworCXU4IHJjX2J1Zl90aHJlc2hbRFND X05VTV9CVUZfUkFOR0VTIC0gMV07CisJLyoqCisJICogQHJjX3JhbmdlX3BhcmFtZXRlcnM6CisJ ICogUFBTNThbNzowXSAtIFBQUzg3Wzc6MF0KKwkgKiBQYXJhbWV0ZXJzIHRoYXQgY29ycmVzcG9u ZCB0byBlYWNoIG9mIHRoZSAxNSByYW5nZXMuCisJICovCisJX19iZTE2IHJjX3JhbmdlX3BhcmFt ZXRlcnNbRFNDX05VTV9CVUZfUkFOR0VTXTsKKwkvKioKKwkgKiBAbmF0aXZlXzQyMl80MjA6CisJ ICogUFBTODhbMF0gLSAwID0gTmF0aXZlIDQ6MjoyIG5vdCB1c2VkCisJICogMSA9IE5hdGl2ZSA0 OjI6MiB1c2VkCisJICogUFBTODhbMV0gLSAwID0gTmF0aXZlIDQ6MjowIG5vdCB1c2UKKwkgKiAx ID0gTmF0aXZlIDQ6MjowIHVzZWQKKwkgKiBQUFM4OFs3OjJdIC0gUmVzZXJ2ZWQgNiBiaXRzCisJ ICovCisJdTggbmF0aXZlXzQyMl80MjA7CisJLyoqCisJICogQHNlY29uZF9saW5lX2JwZ19vZmZz ZXQ6CisJICogUFBTODlbNDowXSAtIEFkZGl0aW9uYWwgYml0cy9ncm91cCBidWRnZXQgZm9yIHRo ZQorCSAqIHNlY29uZCBsaW5lIG9mIGEgc2xpY2UgaW4gTmF0aXZlIDQ6MjowIG1vZGUuCisJICog U2V0IHRvIDAgaWYgRFNDIG1pbm9yIHZlcnNpb24gaXMgMSBvciBuYXRpdmU0MjAgaXMgMC4KKwkg KiBQUFM4OVs3OjVdIC0gUmVzZXJ2ZWQKKwkgKi8KKwl1OCBzZWNvbmRfbGluZV9icGdfb2Zmc2V0 OworCS8qKgorCSAqIEBuc2xfYnBnX29mZnNldDoKKwkgKiBQUFM5MFs3OjBdLCBQUFM5MVs3OjBd IC0gTnVtYmVyIG9mIGJpdHMgdGhhdCBhcmUgZGVhbGxvY2F0ZWQKKwkgKiBmb3IgZWFjaCBncm91 cCB0aGF0IGlzIG5vdCBpbiB0aGUgc2Vjb25kIGxpbmUgb2YgYSBzbGljZS4KKwkgKi8KKwlfX2Jl MTYgbnNsX2JwZ19vZmZzZXQ7CisJLyoqCisJICogQHNlY29uZF9saW5lX29mZnNldF9hZGo6CisJ ICogUFBTOTJbNzowXSwgUFBTOTNbNzowXSAtIFVzZWQgYXMgb2Zmc2V0IGFkanVzdG1lbnQgZm9y IHRoZSBzZWNvbmQKKwkgKiBsaW5lIGluIE5hdGl2ZSA0OjI6MCBtb2RlLgorCSAqLworCV9fYmUx NiBzZWNvbmRfbGluZV9vZmZzZXRfYWRqOworCS8qKgorCSAqIEBwcHNfbG9uZ185NF9yZXNlcnZl ZDoKKwkgKiBQUFMgOTQsIDk1LCA5NiwgOTcgLSBSZXNlcnZlZAorCSAqLworCXUzMiBwcHNfbG9u Z185NF9yZXNlcnZlZDsKKwkvKioKKwkgKiBAcHBzX2xvbmdfOThfcmVzZXJ2ZWQ6CisJICogUFBT IDk4LCA5OSwgMTAwLCAxMDEgLSBSZXNlcnZlZAorCSAqLworCXUzMiBwcHNfbG9uZ185OF9yZXNl cnZlZDsKKwkvKioKKwkgKiBAcHBzX2xvbmdfMTAyX3Jlc2VydmVkOgorCSAqIFBQUyAxMDIsIDEw MywgMTA0LCAxMDUgLSBSZXNlcnZlZAorCSAqLworCXUzMiBwcHNfbG9uZ18xMDJfcmVzZXJ2ZWQ7 CisJLyoqCisJICogQHBwc19sb25nXzEwNl9yZXNlcnZlZDoKKwkgKiBQUFMgMTA2LCAxMDcsIDEw OCwgMTA5IC0gcmVzZXJ2ZWQKKwkgKi8KKwl1MzIgcHBzX2xvbmdfMTA2X3Jlc2VydmVkOworCS8q KgorCSAqIEBwcHNfbG9uZ18xMTBfcmVzZXJ2ZWQ6CisJICogUFBTIDExMCwgMTExLCAxMTIsIDEx MyAtIHJlc2VydmVkCisJICovCisJdTMyIHBwc19sb25nXzExMF9yZXNlcnZlZDsKKwkvKioKKwkg KiBAcHBzX2xvbmdfMTE0X3Jlc2VydmVkOgorCSAqIFBQUyAxMTQgLSAxMTcgLSByZXNlcnZlZAor CSAqLworCXUzMiBwcHNfbG9uZ18xMTRfcmVzZXJ2ZWQ7CisJLyoqCisJICogQHBwc19sb25nXzEx OF9yZXNlcnZlZDoKKwkgKiBQUFMgMTE4IC0gMTIxIC0gcmVzZXJ2ZWQKKwkgKi8KKwl1MzIgcHBz X2xvbmdfMTE4X3Jlc2VydmVkOworCS8qKgorCSAqIEBwcHNfbG9uZ18xMjJfcmVzZXJ2ZWQ6CisJ ICogUFBTIDEyMi0gMTI1IC0gcmVzZXJ2ZWQKKwkgKi8KKwl1MzIgcHBzX2xvbmdfMTIyX3Jlc2Vy dmVkOworCS8qKgorCSAqIEBwcHNfc2hvcnRfMTI2X3Jlc2VydmVkOgorCSAqIFBQUyAxMjYsIDEy NyAtIHJlc2VydmVkCisJICovCisJX19iZTE2IHBwc19zaG9ydF8xMjZfcmVzZXJ2ZWQ7Cit9IF9f cGFja2VkOworCisvKioKKyAqIHN0cnVjdCBkcm1fZHNjX3Bwc19pbmZvZnJhbWUgLSBEU0MgaW5m b2ZyYW1lIGNhcnJ5aW5nIHRoZSBQaWN0dXJlIFBhcmFtZXRlcgorICogU2V0IE1ldGFkYXRhCisg KgorICogVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50cyB0aGUgRFNDIFBQUyBpbmZvZnJhbWUgcmVx dWlyZWQgdG8gc2VuZCB0aGUgUGljdHVyZQorICogUGFyYW1ldGVyIFNldCBtZXRhZGF0YSByZXF1 aXJlZCBiZWZvcmUgZW5hYmxpbmcgVkVTQSBEaXNwbGF5IFN0cmVhbQorICogQ29tcHJlc3Npb24u IFRoaXMgaXMgYmFzZWQgb24gdGhlIERQIFNlY29uZGFyeSBEYXRhIFBhY2tldCBzdHJ1Y3R1cmUg YW5kCisgKiBjb21wcmlzZXMgb2YgU0RQIEhlYWRlciBhcyBkZWZpbmVkIGluIGRybV9kcF9oZWxw ZXIuaCBhbmQgUFBTIHBheWxvYWQuCisgKgorICogQHBwc19oZWFkZXI6IEhlYWRlciBmb3IgUFBT IGFzIHBlciBEUCBTRFAgaGVhZGVyIGZvcm1hdAorICogQHBwc19wYXlsb2FkOiBQUFMgcGF5bG9h ZCBmaWVsZHMgYXMgcGVyIERTQyBzcGVjaWZpY2F0aW9uIFRhYmxlIDQtMQorICovCitzdHJ1Y3Qg ZHJtX2RzY19wcHNfaW5mb2ZyYW1lIHsKKwlzdHJ1Y3QgZHBfc2RwX2hlYWRlciBwcHNfaGVhZGVy OworCXN0cnVjdCBkcm1fZHNjX3BpY3R1cmVfcGFyYW1ldGVyX3NldCBwcHNfcGF5bG9hZDsKK30g X19wYWNrZWQ7CisKKyNlbmRpZiAvKiBfRFJNX0RTQ19IXyAqLwotLSAKMi4xOC4wCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK