From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail.rapiddevelopmentkit.de ([217.6.246.34] helo=root.phytec.de) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1VClMW-0002Vq-Mu for barebox@lists.infradead.org; Fri, 23 Aug 2013 07:00:57 +0000 Received: from idefix.phytec.de (idefix.phytec.de [172.16.0.10]) by root.phytec.de (Postfix) with ESMTP id 9F1D3BF0F4 for ; Fri, 23 Aug 2013 08:52:01 +0200 (CEST) From: =?UTF-8?q?Teresa=20G=C3=A1mez?= Date: Fri, 23 Aug 2013 09:00:22 +0200 Message-Id: <1377241222-6908-3-git-send-email-t.gamez@phytec.de> In-Reply-To: <1377241222-6908-1-git-send-email-t.gamez@phytec.de> References: <1377241222-6908-1-git-send-email-t.gamez@phytec.de> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH 3/3 for next] beaglebone: Clean up lowlevel code To: barebox@lists.infradead.org VXNpbmcgaGVyZSBub3cgdGhlIGluaXRpYWxpc2lhdGlvbiBmdW5jdGlvbnMgaW4KYW0zM3h4X2dl bmVyaWMuCgpTaWduZWQtb2ZmLWJ5OiBUZXJlc2EgR8OhbWV6IDx0LmdhbWV6QHBoeXRlYy5kZT4K LS0tCkknbSBub3QgYWJsZSB0byB0ZXN0IHRoaXMgYXMgSSBkbyBub3QgaGF2ZSBhIGJlYWdsZWJv bmUuCkJ1dCBJIGRvIGhhdmUgb3JpdGVuZWQgb24gdGhlIHUtYm9vdCBjb2RlIHdoaWNoIGRvZXMK bm90IHNlZW0gdG8gZGlmZmVyIGJldHdlZW4gZGRyMiBhbmQgZGRyMyBpbml0YWxpc2F0aW9uCmZ1 bmN0aW9ucy4KSG93IGJhZCB0aGlzIGNvbGlkYXRlcyBub3cgd2l0aCBTYXNjaGFzIGFuZCBKYW5z IGJiYiBwYXRjaGVzLgpNYXliZSBzb21lb25lIGNvdWxkIHRlc3QgdGhpcyBhbnl3YXk/IEFuZCB3 ZSdsbCBmaW5kIGEgc29sdXRpb24KZm9yIGEgY2xlYW5lciBsb3dsZXZlbCBjb2RlLi4KCiBhcmNo L2FybS9ib2FyZHMvYmVhZ2xlYm9uZS9sb3dsZXZlbC5jIHwgIDI1MiArKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCAyMDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2JlYWdsZWJvbmUvbG93 bGV2ZWwuYyBiL2FyY2gvYXJtL2JvYXJkcy9iZWFnbGVib25lL2xvd2xldmVsLmMKaW5kZXggMmYz YjNkZi4uMzY4MTg4YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9hcmRzL2JlYWdsZWJvbmUvbG93 bGV2ZWwuYworKysgYi9hcmNoL2FybS9ib2FyZHMvYmVhZ2xlYm9uZS9sb3dsZXZlbC5jCkBAIC0x MiwyMTEgKzEyLDU5IEBACiAjaW5jbHVkZSA8bWFjaC9hbTMzeHgtbXV4Lmg+CiAjaW5jbHVkZSA8 bWFjaC93ZHQuaD4KIAotLyogVUFSVCBEZWZpbmVzICovCi0jZGVmaW5lIFVBUlRfU1lTQ0ZHX09G RlNFVCAgKDB4NTQpCi0jZGVmaW5lIFVBUlRfU1lTU1RTX09GRlNFVCAgKDB4NTgpCi0KLSNkZWZp bmUgVUFSVF9SRVNFVCAgICAgICgweDEgPDwgMSkKLSNkZWZpbmUgVUFSVF9DTEtfUlVOTklOR19N QVNLICAgMHgxCi0jZGVmaW5lIFVBUlRfU01BUlRfSURMRV9FTiAgKDB4MSA8PCAweDMpCi0KLS8q IEFNMzM1WCBFTUlGIFJlZ2lzdGVyIHZhbHVlcyAqLwotI2RlZmluZSBFTUlGX1NETUdUCQkweDgw MDAwMDAwCi0jZGVmaW5lIEVNSUZfU0RSQU0JCTB4MDAwMDQ2NTAKLSNkZWZpbmUgRU1JRl9QSFlD RkcJCTB4MgotI2RlZmluZSBERFJfUEhZX1JFU0VUCQkoMHgxIDw8IDEwKQotI2RlZmluZSBERFJf RlVOQ1RJT05BTF9NT0RFX0VOCTB4MQotI2RlZmluZSBERFJfUEhZX1JFQURZCQkoMHgxIDw8IDIp Ci0jZGVmaW5lCVZUUF9DVFJMX1JFQURZCQkoMHgxIDw8IDUpCi0jZGVmaW5lIFZUUF9DVFJMX0VO QUJMRQkJKDB4MSA8PCA2KQotI2RlZmluZSBWVFBfQ1RSTF9MT0NLX0VOCSgweDEgPDwgNCkKLSNk ZWZpbmUgVlRQX0NUUkxfU1RBUlRfRU4JKDB4MSkKLSNkZWZpbmUgRERSMl9SQVRJTwkJMHg4MAkv KiBmb3IgbUREUiAqLwotI2RlZmluZSBDTURfRk9SQ0UJCTB4MDAJLyogY29tbW9uICNkZWYgKi8K LSNkZWZpbmUgQ01EX0RFTEFZCQkweDAwCi0KLSNkZWZpbmUgRU1JRl9SRUFEX0xBVEVOQ1kJMHgw NQotI2RlZmluZSBFTUlGX1RJTTEJCTB4MDY2NkIzRDYKLSNkZWZpbmUgRU1JRl9USU0yCQkweDE0 MzczMURBCi0jZGVmaW5lCUVNSUZfVElNMwkJMHgwMDAwMDM0NwotI2RlZmluZSBFTUlGX1NEQ0ZH CQkweDQzODA1MzMyCi0jZGVmaW5lIEVNSUZfU0RSRUYJCTB4MDAwMDA4MWEKLSNkZWZpbmUgRERS Ml9ETExfTE9DS19ESUZGCTB4MAogI2RlZmluZSBERFIyX1JEX0RRUwkJMHgxMgogI2RlZmluZSBE RFIyX1BIWV9GSUZPX1dFCTB4ODAKLQotI2RlZmluZQlERFIyX0lOVkVSVF9DTEtPVVQJMHgwMAog I2RlZmluZQlERFIyX1dSX0RRUwkJMHgwMAogI2RlZmluZQlERFIyX1BIWV9XUkxWTAkJMHgwMAog I2RlZmluZQlERFIyX1BIWV9HQVRFTFZMCTB4MDAKICNkZWZpbmUJRERSMl9QSFlfV1JfREFUQQkw eDQwCi0jZGVmaW5lCVBIWV9SQU5LMF9ERUxBWQkJMHgwMQotI2RlZmluZSBQSFlfRExMX0xPQ0tf RElGRgkweDAKLSNkZWZpbmUgRERSX0lPQ1RSTF9WQUxVRQkweDE4QgotCi1zdGF0aWMgdm9pZCBi ZWFnbGVib25lX2RhdGFfbWFjcm9fY29uZmlnKGludCBkYXRhTWFjcm9OdW0pCi17Ci0JdTMyIEJh c2VBZGRyT2Zmc2V0ID0gMHgwMDsKLQotCWlmIChkYXRhTWFjcm9OdW0gPT0gMSkKLQkJQmFzZUFk ZHJPZmZzZXQgPSAweEE0OwotCi0JX19yYXdfd3JpdGVsKCgoRERSMl9SRF9EUVM8PDMwKXwoRERS Ml9SRF9EUVM8PDIwKQotCQl8KEREUjJfUkRfRFFTPDwxMCl8KEREUjJfUkRfRFFTPDwwKSksCi0J CShBTTMzWFhfREFUQTBfUkRfRFFTX1NMQVZFX1JBVElPXzAgKyBCYXNlQWRkck9mZnNldCkpOwot CV9fcmF3X3dyaXRlbChERFIyX1JEX0RRUz4+MiwKLQkJKEFNMzNYWF9EQVRBMF9SRF9EUVNfU0xB VkVfUkFUSU9fMSArIEJhc2VBZGRyT2Zmc2V0KSk7Ci0JX19yYXdfd3JpdGVsKCgoRERSMl9XUl9E UVM8PDMwKXwoRERSMl9XUl9EUVM8PDIwKQotCQl8KEREUjJfV1JfRFFTPDwxMCl8KEREUjJfV1Jf RFFTPDwwKSksCi0JCShBTTMzWFhfREFUQTBfV1JfRFFTX1NMQVZFX1JBVElPXzAgKyBCYXNlQWRk ck9mZnNldCkpOwotCV9fcmF3X3dyaXRlbChERFIyX1dSX0RRUz4+MiwKLQkJKEFNMzNYWF9EQVRB MF9XUl9EUVNfU0xBVkVfUkFUSU9fMSArIEJhc2VBZGRyT2Zmc2V0KSk7Ci0JX19yYXdfd3JpdGVs KCgoRERSMl9QSFlfV1JMVkw8PDMwKXwoRERSMl9QSFlfV1JMVkw8PDIwKQotCQl8KEREUjJfUEhZ X1dSTFZMPDwxMCl8KEREUjJfUEhZX1dSTFZMPDwwKSksCi0JCShBTTMzWFhfREFUQTBfV1JMVkxf SU5JVF9SQVRJT18wICsgQmFzZUFkZHJPZmZzZXQpKTsKLQlfX3Jhd193cml0ZWwoRERSMl9QSFlf V1JMVkw+PjIsCi0JCShBTTMzWFhfREFUQTBfV1JMVkxfSU5JVF9SQVRJT18xICsgQmFzZUFkZHJP ZmZzZXQpKTsKLQlfX3Jhd193cml0ZWwoKChERFIyX1BIWV9HQVRFTFZMPDwzMCl8KEREUjJfUEhZ X0dBVEVMVkw8PDIwKQotCQl8KEREUjJfUEhZX0dBVEVMVkw8PDEwKXwoRERSMl9QSFlfR0FURUxW TDw8MCkpLAotCQkoQU0zM1hYX0RBVEEwX0dBVEVMVkxfSU5JVF9SQVRJT18wICsgQmFzZUFkZHJP ZmZzZXQpKTsKLQlfX3Jhd193cml0ZWwoRERSMl9QSFlfR0FURUxWTD4+MiwKLQkJKEFNMzNYWF9E QVRBMF9HQVRFTFZMX0lOSVRfUkFUSU9fMSArIEJhc2VBZGRyT2Zmc2V0KSk7Ci0JX19yYXdfd3Jp dGVsKCgoRERSMl9QSFlfRklGT19XRTw8MzApfChERFIyX1BIWV9GSUZPX1dFPDwyMCkKLQkJfChE RFIyX1BIWV9GSUZPX1dFPDwxMCl8KEREUjJfUEhZX0ZJRk9fV0U8PDApKSwKLQkJKEFNMzNYWF9E QVRBMF9GSUZPX1dFX1NMQVZFX1JBVElPXzAgKyBCYXNlQWRkck9mZnNldCkpOwotCV9fcmF3X3dy aXRlbChERFIyX1BIWV9GSUZPX1dFPj4yLAotCQkoQU0zM1hYX0RBVEEwX0ZJRk9fV0VfU0xBVkVf UkFUSU9fMSArIEJhc2VBZGRyT2Zmc2V0KSk7Ci0JX19yYXdfd3JpdGVsKCgoRERSMl9QSFlfV1Jf REFUQTw8MzApfChERFIyX1BIWV9XUl9EQVRBPDwyMCkKLQkJfChERFIyX1BIWV9XUl9EQVRBPDwx MCl8KEREUjJfUEhZX1dSX0RBVEE8PDApKSwKLQkJKEFNMzNYWF9EQVRBMF9XUl9EQVRBX1NMQVZF X1JBVElPXzAgKyBCYXNlQWRkck9mZnNldCkpOwotCV9fcmF3X3dyaXRlbChERFIyX1BIWV9XUl9E QVRBPj4yLAotCQkoQU0zM1hYX0RBVEEwX1dSX0RBVEFfU0xBVkVfUkFUSU9fMSArIEJhc2VBZGRy T2Zmc2V0KSk7Ci0JX19yYXdfd3JpdGVsKFBIWV9ETExfTE9DS19ESUZGLAotCQkoQU0zM1hYX0RB VEEwX0RMTF9MT0NLX0RJRkZfMCArIEJhc2VBZGRyT2Zmc2V0KSk7Ci19Ci0KLXN0YXRpYyB2b2lk IGJlYWdsZWJvbmVfY21kX21hY3JvX2NvbmZpZyh2b2lkKQotewotCV9fcmF3X3dyaXRlbChERFIy X1JBVElPLCBBTTMzWFhfQ01EMF9DVFJMX1NMQVZFX1JBVElPXzApOwotCV9fcmF3X3dyaXRlbChD TURfRk9SQ0UsIEFNMzNYWF9DTUQwX0NUUkxfU0xBVkVfRk9SQ0VfMCk7Ci0JX19yYXdfd3JpdGVs KENNRF9ERUxBWSwgQU0zM1hYX0NNRDBfQ1RSTF9TTEFWRV9ERUxBWV8wKTsKLQlfX3Jhd193cml0 ZWwoRERSMl9ETExfTE9DS19ESUZGLCBBTTMzWFhfQ01EMF9ETExfTE9DS19ESUZGXzApOwotCV9f cmF3X3dyaXRlbChERFIyX0lOVkVSVF9DTEtPVVQsIEFNMzNYWF9DTUQwX0lOVkVSVF9DTEtPVVRf MCk7Ci0KLQlfX3Jhd193cml0ZWwoRERSMl9SQVRJTywgQU0zM1hYX0NNRDFfQ1RSTF9TTEFWRV9S QVRJT18wKTsKLQlfX3Jhd193cml0ZWwoQ01EX0ZPUkNFLCBBTTMzWFhfQ01EMV9DVFJMX1NMQVZF X0ZPUkNFXzApOwotCV9fcmF3X3dyaXRlbChDTURfREVMQVksIEFNMzNYWF9DTUQxX0NUUkxfU0xB VkVfREVMQVlfMCk7Ci0JX19yYXdfd3JpdGVsKEREUjJfRExMX0xPQ0tfRElGRiwgQU0zM1hYX0NN RDFfRExMX0xPQ0tfRElGRl8wKTsKLQlfX3Jhd193cml0ZWwoRERSMl9JTlZFUlRfQ0xLT1VULCBB TTMzWFhfQ01EMV9JTlZFUlRfQ0xLT1VUXzApOwotCi0JX19yYXdfd3JpdGVsKEREUjJfUkFUSU8s IEFNMzNYWF9DTUQyX0NUUkxfU0xBVkVfUkFUSU9fMCk7Ci0JX19yYXdfd3JpdGVsKENNRF9GT1JD RSwgQU0zM1hYX0NNRDJfQ1RSTF9TTEFWRV9GT1JDRV8wKTsKLQlfX3Jhd193cml0ZWwoQ01EX0RF TEFZLCBBTTMzWFhfQ01EMl9DVFJMX1NMQVZFX0RFTEFZXzApOwotCV9fcmF3X3dyaXRlbChERFIy X0RMTF9MT0NLX0RJRkYsIEFNMzNYWF9DTUQyX0RMTF9MT0NLX0RJRkZfMCk7Ci0JX19yYXdfd3Jp dGVsKEREUjJfSU5WRVJUX0NMS09VVCwgQU0zM1hYX0NNRDJfSU5WRVJUX0NMS09VVF8wKTsKLX0K LQotc3RhdGljIHZvaWQgYmVhZ2xlYm9uZV9jb25maWdfdnRwKHZvaWQpCi17Ci0JX19yYXdfd3Jp dGVsKF9fcmF3X3JlYWRsKEFNMzNYWF9WVFAwX0NUUkxfUkVHKSB8IFZUUF9DVFJMX0VOQUJMRSwK LQkJQU0zM1hYX1ZUUDBfQ1RSTF9SRUcpOwotCV9fcmF3X3dyaXRlbChfX3Jhd19yZWFkbChBTTMz WFhfVlRQMF9DVFJMX1JFRykgJiAoflZUUF9DVFJMX1NUQVJUX0VOKSwKLQkJQU0zM1hYX1ZUUDBf Q1RSTF9SRUcpOwotCV9fcmF3X3dyaXRlbChfX3Jhd19yZWFkbChBTTMzWFhfVlRQMF9DVFJMX1JF RykgfCBWVFBfQ1RSTF9TVEFSVF9FTiwKLQkJQU0zM1hYX1ZUUDBfQ1RSTF9SRUcpOwotCi0JLyog UG9sbCBmb3IgUkVBRFkgKi8KLQl3aGlsZSAoKF9fcmF3X3JlYWRsKEFNMzNYWF9WVFAwX0NUUkxf UkVHKSAmIFZUUF9DVFJMX1JFQURZKSAhPSBWVFBfQ1RSTF9SRUFEWSk7Ci19Ci0KLXN0YXRpYyB2 b2lkIGJlYWdsZWJvbmVfY29uZmlnX2VtaWZfZGRyMih2b2lkKQotewotCXUzMiBpOwotCi0JLypQ cm9ncmFtIEVNSUYwIENGRyBSZWdpc3RlcnMqLwotCV9fcmF3X3dyaXRlbChFTUlGX1JFQURfTEFU RU5DWSwgQU0zM1hYX0VNSUY0XzBfUkVHKEREUl9QSFlfQ1RSTF8xKSk7Ci0JX19yYXdfd3JpdGVs KEVNSUZfUkVBRF9MQVRFTkNZLCBBTTMzWFhfRU1JRjRfMF9SRUcoRERSX1BIWV9DVFJMXzFfU0hB RE9XKSk7Ci0JX19yYXdfd3JpdGVsKEVNSUZfUkVBRF9MQVRFTkNZLCBBTTMzWFhfRU1JRjRfMF9S RUcoRERSX1BIWV9DVFJMXzIpKTsKLQlfX3Jhd193cml0ZWwoRU1JRl9USU0xLCBBTTMzWFhfRU1J RjRfMF9SRUcoU0RSQU1fVElNXzEpKTsKLQlfX3Jhd193cml0ZWwoRU1JRl9USU0xLCBBTTMzWFhf RU1JRjRfMF9SRUcoU0RSQU1fVElNXzFfU0hBRE9XKSk7Ci0JX19yYXdfd3JpdGVsKEVNSUZfVElN MiwgQU0zM1hYX0VNSUY0XzBfUkVHKFNEUkFNX1RJTV8yKSk7Ci0JX19yYXdfd3JpdGVsKEVNSUZf VElNMiwgQU0zM1hYX0VNSUY0XzBfUkVHKFNEUkFNX1RJTV8yX1NIQURPVykpOwotCV9fcmF3X3dy aXRlbChFTUlGX1RJTTMsIEFNMzNYWF9FTUlGNF8wX1JFRyhTRFJBTV9USU1fMykpOwotCV9fcmF3 X3dyaXRlbChFTUlGX1RJTTMsIEFNMzNYWF9FTUlGNF8wX1JFRyhTRFJBTV9USU1fM19TSEFET1cp KTsKLQotCV9fcmF3X3dyaXRlbChFTUlGX1NEQ0ZHLCBBTTMzWFhfRU1JRjRfMF9SRUcoU0RSQU1f Q09ORklHKSk7Ci0JX19yYXdfd3JpdGVsKEVNSUZfU0RDRkcsIEFNMzNYWF9FTUlGNF8wX1JFRyhT RFJBTV9DT05GSUcyKSk7Ci0KLQkvKiBfX3Jhd193cml0ZWwoRU1JRl9TRE1HVCwgRU1JRjBfMF9T RFJBTV9NR01UX0NUUkwpOwotCV9fcmF3X3dyaXRlbChFTUlGX1NETUdULCBFTUlGMF8wX1NEUkFN X01HTVRfQ1RSTF9TSEQpOyAqLwotCV9fcmF3X3dyaXRlbCgweDAwMDA0NjUwLCBBTTMzWFhfRU1J RjRfMF9SRUcoU0RSQU1fUkVGX0NUUkwpKTsKLQlfX3Jhd193cml0ZWwoMHgwMDAwNDY1MCwgQU0z M1hYX0VNSUY0XzBfUkVHKFNEUkFNX1JFRl9DVFJMX1NIQURPVykpOwotCi0JZm9yIChpID0gMDsg aSA8IDUwMDA7IGkrKykgewotCi0JfQotCi0JLyogX19yYXdfd3JpdGVsKEVNSUZfU0RNR1QsIEVN SUYwXzBfU0RSQU1fTUdNVF9DVFJMKTsKLQlfX3Jhd193cml0ZWwoRU1JRl9TRE1HVCwgRU1JRjBf MF9TRFJBTV9NR01UX0NUUkxfU0hEKTsgKi8KLQlfX3Jhd193cml0ZWwoRU1JRl9TRFJFRiwgQU0z M1hYX0VNSUY0XzBfUkVHKFNEUkFNX1JFRl9DVFJMKSk7Ci0JX19yYXdfd3JpdGVsKEVNSUZfU0RS RUYsIEFNMzNYWF9FTUlGNF8wX1JFRyhTRFJBTV9SRUZfQ1RSTF9TSEFET1cpKTsKLQotCV9fcmF3 X3dyaXRlbChFTUlGX1NEQ0ZHLCBBTTMzWFhfRU1JRjRfMF9SRUcoU0RSQU1fQ09ORklHKSk7Ci0J X19yYXdfd3JpdGVsKEVNSUZfU0RDRkcsIEFNMzNYWF9FTUlGNF8wX1JFRyhTRFJBTV9DT05GSUcy KSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGJlYWdsZWJvbmVfY29uZmlnX2Rkcih2b2lkKQotewotCWVu YWJsZV9kZHJfY2xvY2tzKCk7Ci0KLQliZWFnbGVib25lX2NvbmZpZ192dHAoKTsKLQotCWJlYWds ZWJvbmVfY21kX21hY3JvX2NvbmZpZygpOwotCWJlYWdsZWJvbmVfZGF0YV9tYWNyb19jb25maWco MCk7Ci0JYmVhZ2xlYm9uZV9kYXRhX21hY3JvX2NvbmZpZygxKTsKLQotCV9fcmF3X3dyaXRlbChQ SFlfUkFOSzBfREVMQVksIEFNMzNYWF9EQVRBMF9SQU5LMF9ERUxBWVNfMCk7Ci0JX19yYXdfd3Jp dGVsKFBIWV9SQU5LMF9ERUxBWSwgQU0zM1hYX0RBVEExX1JBTkswX0RFTEFZU18wKTsKLQotCV9f cmF3X3dyaXRlbChERFJfSU9DVFJMX1ZBTFVFLCBBTTMzWFhfRERSX0NNRDBfSU9DVFJMKTsKLQlf X3Jhd193cml0ZWwoRERSX0lPQ1RSTF9WQUxVRSwgQU0zM1hYX0REUl9DTUQxX0lPQ1RSTCk7Ci0J X19yYXdfd3JpdGVsKEREUl9JT0NUUkxfVkFMVUUsIEFNMzNYWF9ERFJfQ01EMl9JT0NUUkwpOwot CV9fcmF3X3dyaXRlbChERFJfSU9DVFJMX1ZBTFVFLCBBTTMzWFhfRERSX0RBVEEwX0lPQ1RSTCk7 Ci0JX19yYXdfd3JpdGVsKEREUl9JT0NUUkxfVkFMVUUsIEFNMzNYWF9ERFJfREFUQTFfSU9DVFJM KTsKLQotCV9fcmF3X3dyaXRlbChfX3Jhd19yZWFkbChBTTMzWFhfRERSX0lPX0NUUkwpICYgMHhl ZmZmZmZmZiwgQU0zM1hYX0REUl9JT19DVFJMKTsKLQlfX3Jhd193cml0ZWwoX19yYXdfcmVhZGwo QU0zM1hYX0REUl9DS0VfQ1RSTCkgfCAweDAwMDAwMDAxLCBBTTMzWFhfRERSX0NLRV9DVFJMKTsK LQotCWJlYWdsZWJvbmVfY29uZmlnX2VtaWZfZGRyMigpOwotfQotCi0vKgotICogZWFybHkgc3lz dGVtIGluaXQgb2YgbXV4aW5nIGFuZCBjbG9ja3MuCi0gKi8KLXZvaWQgYmVhZ2xlYm9uZV9zcmFt X2luaXQodm9pZCkKLXsKLQl1MzIgcmVnVmFsLCB1YXJ0X2Jhc2U7Ci0KLQkvKiBTZXR1cCB0aGUg UExMcyBhbmQgdGhlIGNsb2NrcyBmb3IgdGhlIHBlcmlwaGVyYWxzICovCi0JcGxsX2luaXQoTVBV UExMX01fNTAwLCAyNCk7Ci0KLQliZWFnbGVib25lX2NvbmZpZ19kZHIoKTsKLQotCS8qIFVBUlQg c29mdHJlc2V0ICovCi0JdWFydF9iYXNlID0gQU0zM1hYX1VBUlQwX0JBU0U7Ci0KLQlyZWdWYWwg PSBfX3Jhd19yZWFkbCh1YXJ0X2Jhc2UgKyBVQVJUX1NZU0NGR19PRkZTRVQpOwotCXJlZ1ZhbCB8 PSBVQVJUX1JFU0VUOwotCV9fcmF3X3dyaXRlbChyZWdWYWwsICh1YXJ0X2Jhc2UgKyBVQVJUX1NZ U0NGR19PRkZTRVQpICk7Ci0Jd2hpbGUgKChfX3Jhd19yZWFkbCh1YXJ0X2Jhc2UgKyBVQVJUX1NZ U1NUU19PRkZTRVQpICYKLQkJVUFSVF9DTEtfUlVOTklOR19NQVNLKSAhPSBVQVJUX0NMS19SVU5O SU5HX01BU0spOwotCi0JLyogRGlzYWJsZSBzbWFydCBpZGxlICovCi0JcmVnVmFsID0gX19yYXdf cmVhZGwoKHVhcnRfYmFzZSArIFVBUlRfU1lTQ0ZHX09GRlNFVCkpOwotCXJlZ1ZhbCB8PSBVQVJU X1NNQVJUX0lETEVfRU47Ci0JX19yYXdfd3JpdGVsKHJlZ1ZhbCwgKHVhcnRfYmFzZSArIFVBUlRf U1lTQ0ZHX09GRlNFVCkpOwotfQogCitzdGF0aWMgY29uc3Qgc3RydWN0IGFtMzN4eF9jbWRfY29u dHJvbCBkZHIyX2NtZF9jdHJsID0geworCS5zbGF2ZV9yYXRpbzAJPSAweDgwLAorCS5kbGxfbG9j a19kaWZmMAk9IDB4MCwKKwkuaW52ZXJ0X2Nsa291dDAJPSAweDAsCisJLnNsYXZlX3JhdGlvMQk9 IDB4ODAsCisJLmRsbF9sb2NrX2RpZmYxCT0gMHgwLAorCS5pbnZlcnRfY2xrb3V0MQk9IDB4MCwK Kwkuc2xhdmVfcmF0aW8yCT0gMHg4MCwKKwkuZGxsX2xvY2tfZGlmZjIJPSAweDAsCisJLmludmVy dF9jbGtvdXQyCT0gMHgwLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBhbTMzeHhfZW1pZl9y ZWdzIGRkcjJfcmVncyA9IHsKKwkuZW1pZl9yZWFkX2xhdGVuY3kJPSAweDUsCisJLmVtaWZfdGlt MQkJPSAweDA2NjZCM0Q2LAorCS5lbWlmX3RpbTIJCT0gMHgxNDM3MzFEQSwKKwkuZW1pZl90aW0z CQk9IDB4MDAwMDAzNDcsCisJLnNkcmFtX2NvbmZpZwkJPSAweDQzODA1MzMyLAorCS5zZHJhbV9j b25maWcyCQk9IDB4NDM4MDUzMzIsCisJLnNkcmFtX3JlZl9jdHJsCQk9IDB4MDAwMDA4MWEsCit9 OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGFtMzN4eF9kZHJfZGF0YSBkZHIyX2RhdGEgPSB7CisJ LnJkX3NsYXZlX3JhdGlvMCAgICAgICAgPSAoRERSMl9SRF9EUVMgPDwgMzApIHwgKEREUjJfUkRf RFFTIDw8IDIwKSB8CisJCQkJKEREUjJfUkRfRFFTIDw8IDEwKSB8IChERFIyX1JEX0RRUyA8PCAw KSwKKwkud3JfZHFzX3NsYXZlX3JhdGlvMCAgICA9IChERFIyX1dSX0RRUyA8PCAzMCkgfCAoRERS Ml9XUl9EUVMgPDwgMjApIHwKKwkJCQkoRERSMl9XUl9EUVMgPDwgMTApIHwgKEREUjJfV1JfRFFT IDw8IDApLAorCS53cmx2bF9pbml0X3JhdGlvMAk9IChERFIyX1BIWV9XUkxWTCA8PCAzMCkgfAor CQkJCShERFIyX1BIWV9XUkxWTCA8PCAyMCkgfAorCQkJCShERFIyX1BIWV9XUkxWTCA8PCAxMCkg fAorCQkJCShERFIyX1BIWV9XUkxWTCA8PCAwKSwKKwkuZ2F0ZWx2bF9pbml0X3JhdGlvMAk9IChE RFIyX1BIWV9HQVRFTFZMIDw8IDMwKSB8CisJCQkJKEREUjJfUEhZX0dBVEVMVkwgPDwgMjApIHwK KwkJCQkoRERSMl9QSFlfR0FURUxWTCA8PCAxMCkgfAorCQkJCShERFIyX1BIWV9HQVRFTFZMIDw8 IDApLAorCS5maWZvX3dlX3NsYXZlX3JhdGlvMAk9IChERFIyX1BIWV9GSUZPX1dFIDw8IDMwKSB8 CisJCQkJKEREUjJfUEhZX0ZJRk9fV0UgPDwgMjApIHwKKwkJCQkoRERSMl9QSFlfRklGT19XRSA8 PCAxMCkgfAorCQkJCShERFIyX1BIWV9GSUZPX1dFIDw8IDApLAorCS53cl9zbGF2ZV9yYXRpbzAg ICAgICAgID0gKEREUjJfUEhZX1dSX0RBVEEgPDwgMzApIHwKKwkJCQkoRERSMl9QSFlfV1JfREFU QSA8PCAyMCkgfAorCQkJCShERFIyX1BIWV9XUl9EQVRBIDw8IDEwKSB8CisJCQkJKEREUjJfUEhZ X1dSX0RBVEEgPDwgMCksCisJLnVzZV9yYW5rMF9kZWxheQk9IDB4MDEsCisJLmRsbF9sb2NrX2Rp ZmYwCQk9IDB4MCwKK307CiAKIC8qKgogICogQGJyaWVmIFRoZSBiYXNpYyBlbnRyeSBwb2ludCBm b3IgYm9hcmQgaW5pdGlhbGl6YXRpb24uCkBAIC0yMjksOCArNzcsNiBAQCB2b2lkIGJlYWdsZWJv bmVfc3JhbV9pbml0KHZvaWQpCiAgKi8KIHN0YXRpYyBpbnQgYmVhZ2xlYm9uZV9ib2FyZF9pbml0 KHZvaWQpCiB7Ci0JaW50IGluX3NkcmFtID0gcnVubmluZ19pbl9zZHJhbSgpOwotCiAJLyogV0RU MSBpcyBhbHJlYWR5IHJ1bm5pbmcgd2hlbiB0aGUgYm9vdGxvYWRlciBnZXRzIGNvbnRyb2wKIAkg KiBEaXNhYmxlIGl0IHRvIGF2b2lkICJyYW5kb20iIHJlc2V0cwogCSAqLwpAQCAtMjM5LDExICs4 NSw5IEBAIHN0YXRpYyBpbnQgYmVhZ2xlYm9uZV9ib2FyZF9pbml0KHZvaWQpCiAJX19yYXdfd3Jp dGVsKFdEVF9ESVNBQkxFX0NPREUyLCBBTTMzWFhfV0RUX1JFRyhXU1BSKSk7CiAJd2hpbGUoX19y YXdfcmVhZGwoQU0zM1hYX1dEVF9SRUcoV1dQUykpICE9IDB4MCk7CiAKLQkvKiBEb250IHJlY29u ZmlndXJlIFNEUkFNIHdoaWxlIHJ1bm5pbmcgaW4gU0RSQU0hICovCi0JaWYgKCFpbl9zZHJhbSkK LQkJYmVhZ2xlYm9uZV9zcmFtX2luaXQoKTsKKwlhbTMzNXhfc2RyYW1faW5pdChNUFVQTExfTV81 MDAsIDI0LCAweDE4QiwKKwkJJmRkcjJfY21kX2N0cmwsICZkZHIyX3JlZ3MsICZkZHIyX2RhdGEp OwogCi0JLyogRW5hYmxlIHBpbiBtdXggKi8KIAlhbTMzeHhfZW5hYmxlX3VhcnQwX3Bpbl9tdXgo KTsKIAogCXJldHVybiAwOwotLSAKMS43LjAuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmJhcmVib3ggbWFpbGluZyBsaXN0CmJhcmVib3hAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2JhcmVib3gK