Return-Path: From: "Ben-cohen, Ohad" To: "bluez-devel@lists.sourceforge.net" Date: Thu, 3 Jul 2008 12:02:44 +0200 Message-ID: <00695C9C8F8B4448856F48142B4AA2012032A21E@dnce02.ent.ti.com> Content-Type: multipart/mixed; boundary="_002_00695C9C8F8B4448856F48142B4AA2012032A21Ednce02entticom_" MIME-Version: 1.0 Subject: [Bluez-devel] [PATCH] Add support for Texas Instruments' chips Reply-To: BlueZ development List-Id: BlueZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: bluez-devel-bounces@lists.sourceforge.net Errors-To: bluez-devel-bounces@lists.sourceforge.net --_002_00695C9C8F8B4448856F48142B4AA2012032A21Ednce02entticom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable See attached. Thanks, Ohad. --_002_00695C9C8F8B4448856F48142B4AA2012032A21Ednce02entticom_ Content-Type: text/x-diff; name="0001-Texas-Instruments-support.patch" Content-Description: 0001-Texas-Instruments-support.patch Content-Disposition: attachment; filename="0001-Texas-Instruments-support.patch"; size=19787; creation-date="Thu, 03 Jul 2008 12:05:40 GMT"; modification-date="Thu, 03 Jul 2008 12:05:40 GMT" Content-Transfer-Encoding: base64 RnJvbSBkMzY2MmM0OGM1OWNjM2ExNWMxMGMyYTczYTAwMzU4Mzk2OWFiMzRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBPaGFkIDxvaGFkQG11ZXNsaS4obm9uZSk+CkRhdGU6IFRodSwg MyBKdWwgMjAwOCAxMjo1NDozMCArMDMwMApTdWJqZWN0OiBbUEFUQ0hdIFRleGFzIEluc3RydW1l bnRzIHN1cHBvcnQKCi0tLQogdXRpbHMvdG9vbHMvaGNpYXR0YWNoLmMgfCAgNTI2ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIDEgZmlsZXMgY2hhbmdlZCwg NDkxIGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3V0aWxzL3Rv b2xzL2hjaWF0dGFjaC5jIGIvdXRpbHMvdG9vbHMvaGNpYXR0YWNoLmMKaW5kZXggMzZmM2M3Mi4u NzFlYTViZSAxMDA2NDQKLS0tIGEvdXRpbHMvdG9vbHMvaGNpYXR0YWNoLmMKKysrIGIvdXRpbHMv dG9vbHMvaGNpYXR0YWNoLmMKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlIDxzeXMvcGFyYW0u aD4KICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5j bHVkZSA8bGludXgvdHlwZXMuaD4KIAogI2luY2x1ZGUgPGJsdWV0b290aC9ibHVldG9vdGguaD4K ICNpbmNsdWRlIDxibHVldG9vdGgvaGNpLmg+CkBAIC01OSwxNyArNjAsMjYgQEAKICNkZWZpbmUg SENJX1VBUlRfQkNTUAkxCiAjZGVmaW5lIEhDSV9VQVJUXzNXSVJFCTIKICNkZWZpbmUgSENJX1VB UlRfSDREUwkzCisjZGVmaW5lIEhDSV9VQVJUX0xMCTQKKworI2lmZGVmIEhDSUFUVEFDSF9ERUJV RworI2RlZmluZSBEUFJJTlRGKHguLi4pCXByaW50Zih4KQorI2Vsc2UKKyNkZWZpbmUgRFBSSU5U Rih4Li4uKQorI2VuZGlmCiAKIHN0cnVjdCB1YXJ0X3QgewogCWNoYXIgKnR5cGU7CiAJaW50ICBt X2lkOwogCWludCAgcF9pZDsKIAlpbnQgIHByb3RvOworCV9fdTE2IGRldmljZV9wYXJhbTsKIAlp bnQgIGluaXRfc3BlZWQ7CiAJaW50ICBzcGVlZDsKIAlpbnQgIGZsYWdzOwogCWNoYXIgKmJkYWRk cjsKIAlpbnQgICgqaW5pdCkgKGludCBmZCwgc3RydWN0IHVhcnRfdCAqdSwgc3RydWN0IHRlcm1p b3MgKnRpKTsKKwlpbnQgICgqaW5pdF9wb3N0KSAoaW50IGZkLCBzdHJ1Y3QgdWFydF90ICp1LCBz dHJ1Y3QgdGVybWlvcyAqdGkpOwogfTsKIAogI2RlZmluZSBGTE9XX0NUTAkweDAwMDEKQEAgLTI4 NywxMSArMjk3LDQzOSBAQCBzdGF0aWMgaW50IGRpZ2koaW50IGZkLCBzdHJ1Y3QgdWFydF90ICp1 LCBzdHJ1Y3QgdGVybWlvcyAqdGkpCiAJcmV0dXJuIDA7CiB9CiAKKyNpZm5kZWYgTUFLRVdPUkQK KyNkZWZpbmUgTUFLRVdPUkQoYSwgYikgICAgICAoKF9fdTE2KSgoKF9fdTgpKGEpKSB8ICgoX191 MTYpKChfX3U4KShiKSkpIDw8IDgpKQorI2VuZGlmCisKKyNkZWZpbmUgVElfTUFOVUZBQ1RVUkVS X0lECQkxMworCisjZGVmaW5lIEZJUk1XQVJFX0RJUkVDVE9SWSAJCSIvbGliL2Zpcm13YXJlLyIK KworI2RlZmluZSBBQ1RJT05fU0VORF9DT01NQU5ECQkxCisjZGVmaW5lIEFDVElPTl9XQUlUX0VW RU5UCQkyCisjZGVmaW5lIEFDVElPTl9TRVJJQUwJCQkzCisjZGVmaW5lIEFDVElPTl9ERUxBWQkJ CTQKKyNkZWZpbmUgQUNUSU9OX1JVTl9TQ1JJUFQJCTUKKyNkZWZpbmUgQUNUSU9OX1JFTUFSS1MJ CQk2CisKKyNkZWZpbmUgQlJGX0RFRVBfU0xFRVBfT1BDT0RFX0JZVEVfMSAJMHgwYworI2RlZmlu ZSBCUkZfREVFUF9TTEVFUF9PUENPREVfQllURV8yIAkweGZkCisjZGVmaW5lIEJSRl9ERUVQX1NM RUVQX09QQ09ERQkJXAorCShCUkZfREVFUF9TTEVFUF9PUENPREVfQllURV8xIHwoQlJGX0RFRVBf U0xFRVBfT1BDT0RFX0JZVEVfMiA8PCA4KSkKKworI2RlZmluZSBGSUxFX0hFQURFUl9NQUdJQyAg IAkJMHg0MjUzNTQ0MgorCisvKgorICogQlJGIEZpcm13YXJlIGhlYWRlcgorICovCitzdHJ1Y3Qg YnRzX2hlYWRlciB7CisJX191MzIJbWFnaWM7CisJX191MzIJdmVyc2lvbjsKKwlfX3U4CWZ1dHVy ZVsyNF07CisJX191OAlhY3Rpb25zWzBdOworfV9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKwor LyoKKyAqIEJSRiBBY3Rpb25zIHN0cnVjdHVyZQorICovCitzdHJ1Y3QgYnRzX2FjdGlvbiB7CisJ X191MTYJdHlwZTsKKwlfX3UxNglzaXplOworCV9fdTgJZGF0YVswXTsKK30gX19hdHRyaWJ1dGVf XyAoKHBhY2tlZCkpOworCitzdHJ1Y3QgYnRzX2FjdGlvbl9zZW5kCit7CisJX191OCBkYXRhWzBd OworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisKK3N0cnVjdCBidHNfYWN0aW9uX3dhaXQK K3sKKwlfX3UzMiBtc2VjOworCV9fdTMyIHNpemU7CisJX191OCBkYXRhWzBdOworfV9fYXR0cmli dXRlX18gKChwYWNrZWQpKTsKKworc3RydWN0IGJ0c19hY3Rpb25fZGVsYXkKK3sKKwlfX3UzMiBt c2VjOworfV9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworc3RydWN0IGJ0c19hY3Rpb25fc2Vy aWFsCit7CisJX191MzIgYmF1ZDsKKwlfX3UzMiBmbG93X2NvbnRyb2w7Cit9X19hdHRyaWJ1dGVf XyAoKHBhY2tlZCkpOworCitGSUxFICpidHNfbG9hZF9zY3JpcHQoY29uc3QgY2hhciogZmlsZV9u YW1lLCBfX3UzMiogdmVyc2lvbikKK3sKKwlzdHJ1Y3QgYnRzX2hlYWRlciBoZWFkZXI7CisJRklM RSogZnA7CisKKwlmcCA9IGZvcGVuKGZpbGVfbmFtZSwgInJiIik7CisJaWYgKCFmcCkgeworCQlw ZXJyb3IoImNhbid0IG9wZW4gZmlybXdhcmUgZmlsZSIpOworCQlnb3RvIG91dDsKKwl9CisKKwlp ZiAoMSAhPSBmcmVhZCgmaGVhZGVyLCBzaXplb2Yoc3RydWN0IGJ0c19oZWFkZXIpLCAxLCBmcCkp IHsKKwkJcGVycm9yKCJjYW4ndCByZWFkIGZpcm13YXJlIGZpbGUiKTsKKwkJZ290byBlcnJjbG9z ZTsKKwl9CisKKwlpZiAoaGVhZGVyLm1hZ2ljICE9IEZJTEVfSEVBREVSX01BR0lDKSB7CisJCWZw cmludGYoc3RkZXJyLCAiJXMgbm90IGEgbGVnYWwgVEkgZmlybXdhcmUgZmlsZVxuIiwgZmlsZV9u YW1lKTsKKwkJZ290byBlcnJjbG9zZTsKKwl9CisKKwlpZiAoTlVMTCAhPSB2ZXJzaW9uKQorCQkq dmVyc2lvbiA9IGhlYWRlci52ZXJzaW9uOworCisJZ290byBvdXQ7CisKK2VycmNsb3NlOgorCWZj bG9zZShmcCk7CisJZnAgPSBOVUxMOworb3V0OgorCXJldHVybiBmcDsKK30KKwordW5zaWduZWQg bG9uZyBidHNfZmV0Y2hfYWN0aW9uKEZJTEUqIGZwLAorCQkJCXVuc2lnbmVkIGNoYXIqIGFjdGlv bl9idWYsCisJCQkJdW5zaWduZWQgbG9uZyBidWZfc2l6ZSwKKwkJCQlfX3UxNiogYWN0aW9uX3R5 cGUpCit7CisJc3RydWN0IGJ0c19hY3Rpb24gYWN0aW9uX2hkcjsKKwl1bnNpZ25lZCBsb25nIG5y ZWFkOworCisJaWYgKCFmcCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoMSAhPSBmcmVhZCgmYWN0aW9u X2hkciwgc2l6ZW9mKHN0cnVjdCBidHNfYWN0aW9uKSwgMSwgZnApKQorCQlyZXR1cm4gMDsKKwor CWlmIChhY3Rpb25faGRyLnNpemUgPiBidWZfc2l6ZSkgeworCQlmcHJpbnRmKHN0ZGVyciwgImJ0 c19uZXh0X2FjdGlvbjogbm90IGVub3VnaCBzcGFjZSB0byByZWFkIG5leHQgYWN0aW9uXG4iKTsK KwkJcmV0dXJuIDA7CisJfQorCisJbnJlYWQgPSBmcmVhZChhY3Rpb25fYnVmLCBzaXplb2YoX191 OCksIGFjdGlvbl9oZHIuc2l6ZSwgZnApOworCWlmIChucmVhZCAhPSAoYWN0aW9uX2hkci5zaXpl KSkgeworCQlmcHJpbnRmKHN0ZGVyciwgImJ0c19uZXh0X2FjdGlvbjogZnJlYWQgZmFpbGVkIHRv IHJlYWQgbmV4dCBhY3Rpb25cbiIpOworCQlyZXR1cm4gMDsKKwl9CisKKwkqYWN0aW9uX3R5cGUg PSBhY3Rpb25faGRyLnR5cGU7CisKKwlyZXR1cm4gbnJlYWQgKiBzaXplb2YoX191OCk7Cit9CisK K3ZvaWQgYnRzX3VubG9hZF9zY3JpcHQoRklMRSogZnApCit7CisJaWYgKGZwKQorCQlmY2xvc2Uo ZnApOworfQorCitpbnQgaXNfaXRfdGV4YXMoY29uc3QgX191OCAqcmVzcG9uZCkKK3sKKwlfX3Ux NiBtYW51ZmFjdHVyZXJfaWQ7CisKKwltYW51ZmFjdHVyZXJfaWQgPSBNQUtFV09SRChyZXNwb25k WzExXSwgcmVzcG9uZFsxMl0pOworCisJcmV0dXJuIFRJX01BTlVGQUNUVVJFUl9JRCA9PSBtYW51 ZmFjdHVyZXJfaWQgPyAxIDogMDsKK30KKworY29uc3QgY2hhciAqZ2V0X2Zpcm13YXJlX25hbWUo Y29uc3QgX191OCAqcmVzcG9uZCkKK3sKKwlzdGF0aWMgY2hhciBmaXJtd2FyZV9maWxlX25hbWVb UEFUSF9NQVhdID0gezB9OworCV9fdTE2IHZlcnNpb24gPSAwLCBjaGlwID0gMCwgbWluX3ZlciA9 IDAsIG1hal92ZXIgPSAwOworCisJdmVyc2lvbiA9IE1BS0VXT1JEKHJlc3BvbmRbMTNdLCByZXNw b25kWzE0XSk7CisJY2hpcCA9ICAodmVyc2lvbiAmIDB4N0MwMCkgPj4gMTA7CisJbWluX3ZlciA9 ICh2ZXJzaW9uICYgMHgwMDdGKTsKKwltYWpfdmVyID0gKHZlcnNpb24gJiAweDAzODApID4+IDc7 CisKKwlpZiAodmVyc2lvbiAmIDB4ODAwMCkKKwkJbWFqX3ZlciB8PSAweDAwMDg7CisKKwlzcHJp bnRmKGZpcm13YXJlX2ZpbGVfbmFtZSwgRklSTVdBUkVfRElSRUNUT1JZICJUSUluaXRfJWQuJWQu JWQuYnRzIiwgY2hpcCwgbWFqX3ZlciwgbWluX3Zlcik7CisKKwlyZXR1cm4gZmlybXdhcmVfZmls ZV9uYW1lOworfQorCitzdGF0aWMgdm9pZCBicmZfZGVsYXkoc3RydWN0IGJ0c19hY3Rpb25fZGVs YXkgKmRlbGF5KQoreworCXVzbGVlcCgxMDAwKmRlbGF5LT5tc2VjKTsKK30KKworc3RhdGljIGlu dCBicmZfc2V0X3NlcmlhbF9wYXJhbXMoc3RydWN0IGJ0c19hY3Rpb25fc2VyaWFsICpzZXJpYWxf YWN0aW9uLAorCQkJCWludCBmZCwKKwkJCQlzdHJ1Y3QgdWFydF90ICp1LAorCQkJCXN0cnVjdCB0 ZXJtaW9zICp0aSkKK3sKKwlmcHJpbnRmKHN0ZGVyciwgInRleGFzOiBjaGFuZ2luZyBiYXVkIHJh dGUgdG8gJXUsIGZsb3cgY29udHJvbCB0byAldVxuIiwKKwkJCQlzZXJpYWxfYWN0aW9uLT5iYXVk LCBzZXJpYWxfYWN0aW9uLT5mbG93X2NvbnRyb2wgKTsKKwl0Y2ZsdXNoKGZkLCBUQ0lPRkxVU0gp OworCisJaWYgKHNlcmlhbF9hY3Rpb24tPmZsb3dfY29udHJvbCkKKwkJdGktPmNfY2ZsYWcgfD0g Q1JUU0NUUzsKKwllbHNlCisJCXRpLT5jX2NmbGFnICY9IH5DUlRTQ1RTOworCisJaWYgKHRjc2V0 YXR0cihmZCwgVENTQU5PVywgdGkpIDwgMCkgeworCQlwZXJyb3IoIkNhbid0IHNldCBwb3J0IHNl dHRpbmdzIik7CisJCXJldHVybiAtMTsKKwl9CisKKwl1LT5zcGVlZCA9IHNlcmlhbF9hY3Rpb24t PmJhdWQ7CisKKwl0Y2ZsdXNoKGZkLCBUQ0lPRkxVU0gpOworCisJaWYgKHNldF9zcGVlZChmZCwg dGksIHNlcmlhbF9hY3Rpb24tPmJhdWQpIDwgMCkgeworCQlwZXJyb3IoIkNhbid0IHNldCBiYXVk IHJhdGUiKTsKKwkJcmV0dXJuIC0xOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50 IGJyZl9zZW5kX2NvbW1hbmRfc29ja2V0KGludCBmZCwgc3RydWN0IGJ0c19hY3Rpb25fc2VuZCog c2VuZF9hY3Rpb24pCit7CisJY2hhciByZXNwb25zZVsxMDI0XSA9IHswfTsKKwloY2lfY29tbWFu ZF9oZHIgKmNtZCA9IChoY2lfY29tbWFuZF9oZHIgKikgc2VuZF9hY3Rpb24tPmRhdGE7CisJdWlu dDE2X3Qgb3Bjb2RlID0gY21kLT5vcGNvZGU7CisKKwlzdHJ1Y3QgaGNpX3JlcXVlc3QgcnE7CisJ bWVtc2V0KCZycSwgMCwgc2l6ZW9mKHJxKSk7CisJcnEub2dmICAgID0gY21kX29wY29kZV9vZ2Yo b3Bjb2RlKTsKKwlycS5vY2YgICAgPSBjbWRfb3Bjb2RlX29jZihvcGNvZGUpOworCXJxLmV2ZW50 ICA9IEVWVF9DTURfQ09NUExFVEU7CisJcnEuY3BhcmFtID0gJnNlbmRfYWN0aW9uLT5kYXRhWzNd OworCXJxLmNsZW4gICA9IHNlbmRfYWN0aW9uLT5kYXRhWzJdOworCXJxLnJwYXJhbSA9IHJlc3Bv bnNlOworCXJxLnJsZW4gICA9IHNpemVvZihyZXNwb25zZSk7CisKKwlpZiAoaGNpX3NlbmRfcmVx KGZkLCAmcnEsIDE1KSA8IDApIHsKKwkJcGVycm9yKCJDYW5ub3Qgc2VuZCBoY2kgY29tbWFuZCB0 byBzb2NrZXQiKTsKKwkJcmV0dXJuIC0xOworCX0KKworCS8qIHZlcmlmeSBzdWNjZXNzICovCisJ aWYgKHJlc3BvbnNlWzBdKSB7CisJCWVycm5vID0gRUlPOworCQlyZXR1cm4gLTE7CisJfQorCisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYnJmX3NlbmRfY29tbWFuZF9maWxlKGludCBmZCwg c3RydWN0IGJ0c19hY3Rpb25fc2VuZCogc2VuZF9hY3Rpb24sIGxvbmcgc2l6ZSkKK3sKKwl1bnNp Z25lZCBjaGFyIHJlc3BvbnNlWzEwMjRdID0gezB9OworCWxvbmcgcmV0ID0gMDsKKworCS8qIHNl bmQgY29tbWFuZCAqLworCWlmIChzaXplICE9IHdyaXRlKGZkLCBzZW5kX2FjdGlvbiwgc2l6ZSkp IHsKKwkJcGVycm9yKCJUZXhhczogRmFpbGVkIHRvIHdyaXRlIGFjdGlvbiBjb21tYW5kIik7CisJ CXJldHVybiAtMTsKKwl9CisKKwkvKiByZWFkIHJlc3BvbnNlICovCisJcmV0ID0gcmVhZF9oY2lf ZXZlbnQoZmQsIHJlc3BvbnNlLCBzaXplb2YocmVzcG9uc2UpKTsKKwlpZiAocmV0IDwgMCkgewor CQlwZXJyb3IoInRleGFzOiBmYWlsZWQgdG8gcmVhZCBjb21tYW5kIHJlc3BvbnNlIik7CisJCXJl dHVybiAtMTsKKwl9CisKKwkvKiB2ZXJpZnkgc3VjY2VzcyAqLworCWlmIChyZXQgPCA3IHx8IDAg IT0gcmVzcG9uc2VbNl0pIHsKKwkJZnByaW50Ziggc3RkZXJyLCAiVEkgaW5pdCBjb21tYW5kIGZh aWxlZC5cbiIgKTsKKwkJZXJybm8gPSBFSU87CisJCXJldHVybiAtMTsKKwl9CisKKwlyZXR1cm4g MDsKK30KKworCitzdGF0aWMgaW50IGJyZl9zZW5kX2NvbW1hbmQoaW50IGZkLCBzdHJ1Y3QgYnRz X2FjdGlvbl9zZW5kKiBzZW5kX2FjdGlvbiwgbG9uZyBzaXplLCBpbnQgaGNpbGxfaW5zdGFsbGVk KQoreworCWludCByZXQgPSAwOworCWNoYXIgKmZpeGVkX2FjdGlvbjsKKworCS8qIHJlbW92ZSBw YWNrZXQgdHlwZSB3aGVuIGdpdmluZyB0byBzb2NrZXQgQVBJICovCisJaWYgKGhjaWxsX2luc3Rh bGxlZCkgeworCQlmaXhlZF9hY3Rpb24gPSAoKGNoYXIgKikgc2VuZF9hY3Rpb24pICsgMTsKKwkJ cmV0ID0gYnJmX3NlbmRfY29tbWFuZF9zb2NrZXQoZmQsIChzdHJ1Y3QgYnRzX2FjdGlvbl9zZW5k ICopIGZpeGVkX2FjdGlvbik7CisJfSBlbHNlIHsKKwkJcmV0ID0gYnJmX3NlbmRfY29tbWFuZF9m aWxlKGZkLCBzZW5kX2FjdGlvbiwgc2l6ZSk7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3Rh dGljIGludCBicmZfZG9fYWN0aW9uKAlfX3UxNiBicmZfdHlwZSwgX191OCAqYnJmX2FjdGlvbiwK KwkJCQlsb25nIGJyZl9zaXplLCBpbnQgZmQsCisJCQkJc3RydWN0IHVhcnRfdCAqdSwgc3RydWN0 IHRlcm1pb3MgKnRpLAorCQkJCWludCBoY2lsbF9pbnN0YWxsZWQpCit7CisJaW50IHJldCA9IDA7 CisKKwlzd2l0Y2ggKGJyZl90eXBlKSB7CisJY2FzZSBBQ1RJT05fU0VORF9DT01NQU5EOgorCQlE UFJJTlRGKCJXIik7CisJCXJldCA9IGJyZl9zZW5kX2NvbW1hbmQoZmQsIChzdHJ1Y3QgYnRzX2Fj dGlvbl9zZW5kKikgYnJmX2FjdGlvbiwgYnJmX3NpemUsIGhjaWxsX2luc3RhbGxlZCk7CisJCWJy ZWFrOworCWNhc2UgQUNUSU9OX1dBSVRfRVZFTlQ6CisJCURQUklOVEYoIlIiKTsKKwkJYnJlYWs7 CisJY2FzZSBBQ1RJT05fU0VSSUFMOgorCQlEUFJJTlRGKCJTIik7CisJCXJldCA9IGJyZl9zZXRf c2VyaWFsX3BhcmFtcygoc3RydWN0IGJ0c19hY3Rpb25fc2VyaWFsICopIGJyZl9hY3Rpb24sIGZk LCB1LCB0aSk7CisJCWJyZWFrOworCWNhc2UgQUNUSU9OX0RFTEFZOgorCQlEUFJJTlRGKCJEIik7 CisJCWJyZl9kZWxheSgoc3RydWN0IGJ0c19hY3Rpb25fZGVsYXkgKikgYnJmX2FjdGlvbik7CisJ CWJyZWFrOworCWNhc2UgQUNUSU9OX1JFTUFSS1M6CisJCURQUklOVEYoIkMiKTsKKwkJYnJlYWs7 CisJZGVmYXVsdDoKKwkJZnByaW50ZihzdGRlcnIsICJicmZfaW5pdDogdW5rbm93biBmaXJtd2Fy ZSBhY3Rpb24gdHlwZSAoJWQpXG4iLCBicmZfdHlwZSk7CisJCWJyZWFrOworCX0KKworCXJldHVy biByZXQ7Cit9CisKKy8qCisgKiB0ZXN0cyB3aGV0aGVyIGEgZ2l2ZW4gYnJmIGFjdGlvbiBpcyBh IEhDSV9WU19TbGVlcF9Nb2RlX0NvbmZpZ3VyYXRpb25zIGNtZAorICovCitzdGF0aWMgaW50IGJy Zl9hY3Rpb25faXNfZGVlcF9zbGVlcChzdHJ1Y3QgdWFydF90ICp1LCBfX3U4ICpicmZfYWN0aW9u LCBsb25nIGJyZl9zaXplLCBfX3UxNiBicmZfdHlwZSkKK3sKKwlfX3UxNiBvcGNvZGU7CisKKwlp ZiAoYnJmX3R5cGUgIT0gQUNUSU9OX1NFTkRfQ09NTUFORCkKKwkJcmV0dXJuIDA7CisKKwlpZiAo YnJmX3NpemUgPCAzKQorCQlyZXR1cm4gMDsKKworCWlmIChicmZfYWN0aW9uWzBdICE9IEhDSV9D T01NQU5EX1BLVCkKKwkJcmV0dXJuIDA7CisKKwkvKiBIQ0kgZGF0YSBpcyBsaXR0bGUgZW5kaWFu ICovCisJb3Bjb2RlID0gYnJmX2FjdGlvblsxXSB8IChicmZfYWN0aW9uWzJdIDw8IDgpOworCisJ aWYgKG9wY29kZSAhPSB1LT5kZXZpY2VfcGFyYW0pCisJCXJldHVybiAwOworCisJLyogYWN0aW9u IGlzIGRlZXAgc2xlZXAgY29uZmlndXJhdGlvbiBjb21tYW5kICEgKi8KKwlyZXR1cm4gMTsKK30K KworLyoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHR3aWNlLgorICogVGhlIGZpcnN0IHRp bWUgaXQgaXMgY2FsbGVkLCBpdCBsb2FkcyB0aGUgYnJmIHNjcmlwdCwgYW5kIGV4ZWN1dGVzIGl0 cworICogY29tbWFuZHMgdW50aWwgaXQgcmVhY2hlcyBhIGRlZXAgc2xlZXAgY29tbWFuZCAob3Ig aXRzIGVuZCkuCisgKiBUaGUgc2Vjb25kIHRpbWUgaXQgaXMgY2FsbGVkLCBpdCBhc3N1bWVzIEhD SUxMIHByb3RvY29sIGlzIHNldCB1cCwKKyAqIGFuZCBzZW5kcyByZXN0IG9mIGJyZiBzY3JpcHQg dmlhIHRoZSBzdXBwbGllZCBzb2NrZXQuCisgKi8KK2ludCBicmZfZG9fc2NyaXB0KGludCBmZCwg c3RydWN0IHVhcnRfdCAqdSwgc3RydWN0IHRlcm1pb3MgKnRpLCBjb25zdCBjaGFyICpidHNfZmls ZSkKK3sKKwlpbnQgcmV0ID0gMCwgIGhjaWxsX2luc3RhbGxlZCA9IGJ0c19maWxlID8gMCA6IDE7 CisJX191MzIgdmVyczsKKwlzdGF0aWMgRklMRSAqYnJmX3NjcmlwdF9maWxlID0gTlVMTDsKKwlz dGF0aWMgX191OCBicmZfYWN0aW9uWzI1Nl07CisJc3RhdGljIGxvbmcgYnJmX3NpemU7CisJc3Rh dGljIF9fdTE2IGJyZl90eXBlOworCisJLyogaXMgaXQgdGhlIGZpcnN0IHRpbWUgd2UgYXJlIGNh bGxlZCA/ICovCisJaWYgKDAgPT0gaGNpbGxfaW5zdGFsbGVkKSB7CisJCURQUklOVEYoIlNlbmRp bmcgc2NyaXB0IHRvIHNlcmlhbCBkZXZpY2VcbiIpOworCQlicmZfc2NyaXB0X2ZpbGUgPSBidHNf bG9hZF9zY3JpcHQoYnRzX2ZpbGUsICZ2ZXJzICk7CisJCWlmICghYnJmX3NjcmlwdF9maWxlKSB7 CisJCQlmcHJpbnRmKHN0ZGVyciwgIldhcm5pbmc6IGNhbm5vdCBmaW5kIEJUUyBmaWxlOiAlc1xu IiwKKwkJCQkJYnRzX2ZpbGUpOworCQkJcmV0dXJuIDA7CisJCX0KKworCQlmcHJpbnRmKCBzdGRl cnIsICJMb2FkZWQgQlRTIHNjcmlwdCB2ZXJzaW9uICV1XG4iLCB2ZXJzICk7CisKKwkJYnJmX3Np emUgPSBidHNfZmV0Y2hfYWN0aW9uKAlicmZfc2NyaXB0X2ZpbGUsCisJCQkJCQlicmZfYWN0aW9u LAorCQkJCQkJc2l6ZW9mKGJyZl9hY3Rpb24pLAorCQkJCQkJJmJyZl90eXBlICk7CisJCWlmIChi cmZfc2l6ZSA9PSAwKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIldhcm5pbmc6IEJUUyBmaWxlIGlz IGVtcHR5ICEiKTsKKwkJCXJldHVybiAwOworCQl9CisJfQorCWVsc2UgeworCQlEUFJJTlRGKCJT ZW5kaW5nIHNjcmlwdCB0byBibHVldG9vdGggc29ja2V0XG4iKTsKKwl9CisKKwkvKiBleGVjdXRl IGN1cnJlbnQgYWN0aW9uIGFuZCBjb250aW51ZSB0byBwYXJzZSBicmYgc2NyaXB0IGZpbGUgKi8K Kwl3aGlsZSAoYnJmX3NpemUgIT0gMCkgeworCQlyZXQgPSBicmZfZG9fYWN0aW9uKAlicmZfdHlw ZSwgYnJmX2FjdGlvbiwgYnJmX3NpemUsCisJCQkJCWZkLCB1LCB0aSwgaGNpbGxfaW5zdGFsbGVk KTsKKwkJaWYgKHJldCA9PSAtMSkKKwkJCWJyZWFrOworCisJCWJyZl9zaXplID0gYnRzX2ZldGNo X2FjdGlvbigJYnJmX3NjcmlwdF9maWxlLAorCQkJCQkJYnJmX2FjdGlvbiwKKwkJCQkJCXNpemVv ZihicmZfYWN0aW9uKSwKKwkJCQkJCSZicmZfdHlwZSApOworCisJCS8qIGlmIHRoaXMgaXMgdGhl IGZpcnN0IHRpbWUgd2UgcnVuIChubyBIQ0lMTCB5ZXQpICovCisJCS8qIGFuZCBhIGRlZXAgc2xl ZXAgY29tbWFuZCBpcyBlbmNvdW50ZXJlZCAqLworCQkvKiB3ZSBleGl0ICovCisJCWlmICgJMCA9 PSBoY2lsbF9pbnN0YWxsZWQgJiYKKwkJCWJyZl9hY3Rpb25faXNfZGVlcF9zbGVlcCh1LCBicmZf YWN0aW9uLAorCQkJCQkJYnJmX3NpemUsIGJyZl90eXBlKSkKKwkJCXJldHVybiAwOworCX0KKwor CWJ0c191bmxvYWRfc2NyaXB0KGJyZl9zY3JpcHRfZmlsZSk7CisJYnJmX3NjcmlwdF9maWxlID0g TlVMTDsKKwlEUFJJTlRGKCJcbiIpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCB0 ZXhhc19jb250aW51ZV9zY3JpcHQoaW50IGZkLCBzdHJ1Y3QgdWFydF90ICp1LCBzdHJ1Y3QgdGVy bWlvcyAqdGkpCit7CisJaW50IGRldl9pZCwgZGQsIHJldCA9IDA7CisKKwlzbGVlcCgxKTsKKwor CWRldl9pZCA9IGlvY3RsKGZkLCBIQ0lVQVJUR0VUREVWSUNFLCAwKTsKKwlpZiAoZGV2X2lkIDwg MCkgeworCQlwZXJyb3IoImNhbm5vdCBnZXQgZGV2aWNlIGlkIik7CisJCXJldHVybiAtMTsKKwl9 CisKKwlEUFJJTlRGKCJcbkFkZGVkIGRldmljZSBoY2klZFxuIiwgZGV2X2lkKTsKKworCWRkID0g aGNpX29wZW5fZGV2KGRldl9pZCk7CisJaWYgKGRkIDwgMCkgeworCQlwZXJyb3IoIkhDSSBkZXZp Y2Ugb3BlbiBmYWlsZWQiKTsKKwkJcmV0dXJuIC0xOworCX0KKworCXJldCA9IGJyZl9kb19zY3Jp cHQoZGQsIHUsIHRpLCBOVUxMKTsKKworCWhjaV9jbG9zZV9kZXYoZGQpOworCisJcmV0dXJuIHJl dDsKK30KKwogc3RhdGljIGludCB0ZXhhcyhpbnQgZmQsIHN0cnVjdCB1YXJ0X3QgKnUsIHN0cnVj dCB0ZXJtaW9zICp0aSkKIHsKIAlzdHJ1Y3QgdGltZXNwZWMgdG0gPSB7MCwgNTAwMDB9OwogCWNo YXIgY21kWzRdOwogCXVuc2lnbmVkIGNoYXIgcmVzcFsxMDBdOwkJLyogUmVzcG9uc2UgKi8KKwlj b25zdCBjaGFyICpidHNfZmlsZTsKIAlpbnQgbjsKIAogCW1lbXNldChyZXNwLCdcMCcsIDEwMCk7 CkBAIC0zMjcsMTcgKzc2NSwyMCBAQCBzdGF0aWMgaW50IHRleGFzKGludCBmZCwgc3RydWN0IHVh cnRfdCAqdSwgc3RydWN0IHRlcm1pb3MgKnRpKQogCX0gd2hpbGUgKHJlc3BbNF0gIT0gY21kWzFd ICYmIHJlc3BbNV0gIT0gY21kWzJdKTsKIAogCS8qIFZlcmlmeSBtYW51ZmFjdHVyZXIgKi8KLQlp ZiAoKHJlc3BbMTFdICYgMHhGRikgIT0gMHgwZCkKLQkJZnByaW50ZihzdGRlcnIsIldBUk5JTkcg OiBtb2R1bGUncyBtYW51ZmFjdHVyZXIgaXMgbm90IFRleGFzIEluc3RydW1lbnRcbiIpOworCWlm ICghIGlzX2l0X3RleGFzKHJlc3ApKSB7CisJCWZwcmludGYoc3RkZXJyLCJFUlJPUjogbW9kdWxl J3MgbWFudWZhY3R1cmVyIGlzIG5vdCBUZXhhcyBJbnN0cnVtZW50c1xuIik7CisJCXJldHVybiAt MTsKKwl9CiAKLQkvKiBQcmludCBMTVAgdmVyc2lvbiAqLwotCWZwcmludGYoc3RkZXJyLCAiVGV4 YXMgbW9kdWxlIExNUCB2ZXJzaW9uIDogMHglMDJ4XG4iLCByZXNwWzEwXSAmIDB4RkYpOworCWZw cmludGYoc3RkZXJyLCAiRm91bmQgYSBUZXhhcyBJbnN0cnVtZW50cycgY2hpcCFcbiIpOwogCi0J LyogUHJpbnQgTE1QIHN1YnZlcnNpb24gKi8KLQlmcHJpbnRmKHN0ZGVyciwgIlRleGFzIG1vZHVs ZSBMTVAgc3ViLXZlcnNpb24gOiAweCUwMnglMDJ4XG4iLCByZXNwWzE0XSAmIDB4RkYsIHJlc3Bb MTNdICYgMHhGRik7CisJYnRzX2ZpbGUgPSBnZXRfZmlybXdhcmVfbmFtZShyZXNwKTsKKwlmcHJp bnRmKHN0ZGVyciwgIkZpcm13YXJlIGZpbGUgOiAlc1xuIiwgYnRzX2ZpbGUpOworCisJbiA9IGJy Zl9kb19zY3JpcHQoIGZkLCB1LCB0aSwgYnRzX2ZpbGUpOwogCiAJbmFub3NsZWVwKCZ0bSwgTlVM TCk7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIG47CiB9CiAKIHN0YXRpYyBpbnQgcmVhZF9jaGVjayhp bnQgZmQsIHZvaWQgKmJ1ZiwgaW50IGNvdW50KQpAQCAtMTA1MCw2OSArMTQ5MSw3MSBAQCBzdGF0 aWMgaW50IGJjbTIwMzUoaW50IGZkLCBzdHJ1Y3QgdWFydF90ICp1LCBzdHJ1Y3QgdGVybWlvcyAq dGkpCiB9CiAKIHN0cnVjdCB1YXJ0X3QgdWFydFtdID0gewotCXsgImFueSIsICAgICAgICAweDAw MDAsIDB4MDAwMCwgSENJX1VBUlRfSDQsICAgMTE1MjAwLCAxMTUyMDAsIEZMT1dfQ1RMLCBOVUxM LCBOVUxMICAgICB9LAotCXsgImVyaWNzc29uIiwgICAweDAwMDAsIDB4MDAwMCwgSENJX1VBUlRf SDQsICAgNTc2MDAsICAxMTUyMDAsIEZMT1dfQ1RMLCBOVUxMLCBlcmljc3NvbiB9LAotCXsgImRp Z2kiLCAgICAgICAweDAwMDAsIDB4MDAwMCwgSENJX1VBUlRfSDQsICAgOTYwMCwgICAxMTUyMDAs IEZMT1dfQ1RMLCBOVUxMLCBkaWdpICAgICB9LAotCXsgInRleGFzIiwgICAgICAweDAwMDAsIDB4 MDAwMCwgSENJX1VBUlRfSDQsICAgMTE1MjAwLCAxMTUyMDAsIEZMT1dfQ1RMLCBOVUxMLCB0ZXhh cyAgICB9LAorCXsgImFueSIsICAgICAgICAweDAwMDAsIDB4MDAwMCwgSENJX1VBUlRfSDQsIDAs IDExNTIwMCwgMTE1MjAwLCBGTE9XX0NUTCwgTlVMTCwgTlVMTCwgTlVMTCAgICAgfSwKKwl7ICJl cmljc3NvbiIsICAgMHgwMDAwLCAweDAwMDAsIEhDSV9VQVJUX0g0LCAwLCA1NzYwMCwgIDExNTIw MCwgRkxPV19DVEwsIE5VTEwsIGVyaWNzc29uLCBOVUxMIH0sCisJeyAiZGlnaSIsICAgICAgIDB4 MDAwMCwgMHgwMDAwLCBIQ0lfVUFSVF9INCwgMCwgOTYwMCwgICAxMTUyMDAsIEZMT1dfQ1RMLCBO VUxMLCBkaWdpLCBOVUxMICAgICB9LAorCisJLyogVGV4YXMgSW5zdHJ1bWVudHMgQmx1ZWxpbmsg KEJSRikgbW9kdWxlcyAqLworCXsgInRleGFzIiwgICAgICAweDAwMDAsIDB4MDAwMCwgSENJX1VB UlRfTEwsIEJSRl9ERUVQX1NMRUVQX09QQ09ERSwgMTE1MjAwLCAxMTUyMDAsIEZMT1dfQ1RMLCBO VUxMLCB0ZXhhcywgdGV4YXNfY29udGludWVfc2NyaXB0ICAgIH0sCiAKLQl7ICJiY3NwIiwgICAg ICAgMHgwMDAwLCAweDAwMDAsIEhDSV9VQVJUX0JDU1AsIDExNTIwMCwgMTE1MjAwLCAwLCAgICAg ICAgTlVMTCwgYmNzcCAgICAgfSwKKwl7ICJiY3NwIiwgICAgICAgMHgwMDAwLCAweDAwMDAsIEhD SV9VQVJUX0JDU1AsIDAsIDExNTIwMCwgMTE1MjAwLCAwLCAgICAgICAgTlVMTCwgYmNzcCwgTlVM TCAgICAgfSwKIAogCS8qIFhpcmNvbSBQQ01DSUEgY2FyZHM6IENyZWRpdCBDYXJkIEFkYXB0ZXIg YW5kIFJlYWwgUG9ydCBBZGFwdGVyICovCi0JeyAieGlyY29tIiwgICAgIDB4MDEwNSwgMHgwODBh LCBIQ0lfVUFSVF9INCwgICAxMTUyMDAsIDExNTIwMCwgRkxPV19DVEwsIE5VTEwsIE5VTEwgICAg IH0sCisJeyAieGlyY29tIiwgICAgIDB4MDEwNSwgMHgwODBhLCBIQ0lfVUFSVF9INCwgMCwgMTE1 MjAwLCAxMTUyMDAsIEZMT1dfQ1RMLCBOVUxMLCBOVUxMLCBOVUxMICAgICB9LAogCiAJLyogQ1NS IENhc2lyYSBzZXJpYWwgYWRhcHRlciBvciBCcmFpbkJveGVzIHNlcmlhbCBkb25nbGUgKEJMNjQy KSAqLwotCXsgImNzciIsICAgICAgICAweDAwMDAsIDB4MDAwMCwgSENJX1VBUlRfSDQsICAgMTE1 MjAwLCAxMTUyMDAsIEZMT1dfQ1RMLCBOVUxMLCBjc3IgICAgICB9LAorCXsgImNzciIsICAgICAg ICAweDAwMDAsIDB4MDAwMCwgSENJX1VBUlRfSDQsIDAsIDExNTIwMCwgMTE1MjAwLCBGTE9XX0NU TCwgTlVMTCwgY3NyLCBOVUxMICAgICAgfSwKIAogCS8qIEJyYWluQm94ZXMgUENNQ0lBIGNhcmQg KEJMNjIwKSAqLwotCXsgImJib3hlcyIsICAgICAweDAxNjAsIDB4MDAwMiwgSENJX1VBUlRfSDQs ICAgMTE1MjAwLCA0NjA4MDAsIEZMT1dfQ1RMLCBOVUxMLCBjc3IgICAgICB9LAorCXsgImJib3hl cyIsICAgICAweDAxNjAsIDB4MDAwMiwgSENJX1VBUlRfSDQsIDAsIDExNTIwMCwgNDYwODAwLCBG TE9XX0NUTCwgTlVMTCwgY3NyLCBOVUxMICAgICAgfSwKIAogCS8qIFNpbGljb24gV2F2ZSBraXRz ICovCi0JeyAic3dhdmUiLCAgICAgIDB4MDAwMCwgMHgwMDAwLCBIQ0lfVUFSVF9INCwgICAxMTUy MDAsIDExNTIwMCwgRkxPV19DVEwsIE5VTEwsIHN3YXZlICAgIH0sCisJeyAic3dhdmUiLCAgICAg IDB4MDAwMCwgMHgwMDAwLCBIQ0lfVUFSVF9INCwgMCwgMTE1MjAwLCAxMTUyMDAsIEZMT1dfQ1RM LCBOVUxMLCBzd2F2ZSwgTlVMTCAgICB9LAogCiAJLyogU1QgTWljcm9lbGVjdHJvbmljcyBtaW5p a2l0cyBiYXNlZCBvbiBTVExDMjQxMC9TVExDMjQxNSAqLwotCXsgInN0IiwgICAgICAgICAweDAw MDAsIDB4MDAwMCwgSENJX1VBUlRfSDQsICAgIDU3NjAwLCAxMTUyMDAsIEZMT1dfQ1RMLCBOVUxM LCBzdCAgICAgICB9LAorCXsgInN0IiwgICAgICAgICAweDAwMDAsIDB4MDAwMCwgSENJX1VBUlRf SDQsIDAsIDU3NjAwLCAxMTUyMDAsIEZMT1dfQ1RMLCBOVUxMLCBzdCwgTlVMTCAgICAgICB9LAog CiAJLyogU1QgTWljcm9lbGVjdHJvbmljcyBtaW5pa2l0cyBiYXNlZCBvbiBTVExDMjUwMCAqLwot CXsgInN0bGMyNTAwIiwgICAweDAwMDAsIDB4MDAwMCwgSENJX1VBUlRfSDQsICAgMTE1MjAwLCAx MTUyMDAsIEZMT1dfQ1RMLCAiMDA6ODA6RTE6MDA6QUI6QkEiLCBzdGxjMjUwMCAgfSwKKwl7ICJz dGxjMjUwMCIsICAgMHgwMDAwLCAweDAwMDAsIEhDSV9VQVJUX0g0LCAwLCAxMTUyMDAsIDExNTIw MCwgRkxPV19DVEwsICIwMDo4MDpFMTowMDpBQjpCQSIsIHN0bGMyNTAwLCBOVUxMICB9LAogCiAJ LyogUGhpbGlwcyBnZW5lcmljIEVyaWNzc29uIElQIGNvcmUgYmFzZWQgKi8KLQl7ICJwaGlsaXBz IiwgICAgMHgwMDAwLCAweDAwMDAsIEhDSV9VQVJUX0g0LCAgIDExNTIwMCwgMTE1MjAwLCBGTE9X X0NUTCwgTlVMTCwgTlVMTCAgICAgfSwKKwl7ICJwaGlsaXBzIiwgICAgMHgwMDAwLCAweDAwMDAs IEhDSV9VQVJUX0g0LCAwLCAxMTUyMDAsIDExNTIwMCwgRkxPV19DVEwsIE5VTEwsIE5VTEwsIE5V TEwgICAgIH0sCiAKIAkvKiBQaGlsaXBzIEJHQjJ4eCBNb2R1bGUgKi8KLQl7ICJiZ2IyeHgiLCAg ICAweDAwMDAsIDB4MDAwMCwgSENJX1VBUlRfSDQsICAgMTE1MjAwLCAxMTUyMDAsIEZMT1dfQ1RM LCAiQkQ6QjI6MTA6MDA6QUI6QkEiLCBiZ2IyeHggICB9LAorCXsgImJnYjJ4eCIsICAgIDB4MDAw MCwgMHgwMDAwLCBIQ0lfVUFSVF9INCwgMCwgMTE1MjAwLCAxMTUyMDAsIEZMT1dfQ1RMLCAiQkQ6 QjI6MTA6MDA6QUI6QkEiLCBiZ2IyeHgsIE5VTEwgICB9LAogCiAJLyogU3BoaW54IEVsZWN0cm9u aWNzIFBJQ08gQ2FyZCAqLwotCXsgInBpY29jYXJkIiwgICAweDAyNWUsIDB4MTAwMCwgSENJX1VB UlRfSDQsICAgMTE1MjAwLCAxMTUyMDAsIEZMT1dfQ1RMLCBOVUxMLCBOVUxMICAgICB9LAorCXsg InBpY29jYXJkIiwgICAweDAyNWUsIDB4MTAwMCwgSENJX1VBUlRfSDQsIDAsIDExNTIwMCwgMTE1 MjAwLCBGTE9XX0NUTCwgTlVMTCwgTlVMTCwgTlVMTCAgICAgfSwKIAogCS8qIEludmVudGVsIEJs dWVCaXJkIE1vZHVsZSAqLwotCXsgImludmVudGVsIiwgICAweDAwMDAsIDB4MDAwMCwgSENJX1VB UlRfSDQsICAgMTE1MjAwLCAxMTUyMDAsIEZMT1dfQ1RMLCBOVUxMLCBOVUxMICAgICB9LAorCXsg ImludmVudGVsIiwgICAweDAwMDAsIDB4MDAwMCwgSENJX1VBUlRfSDQsIDAsIDExNTIwMCwgMTE1 MjAwLCBGTE9XX0NUTCwgTlVMTCwgTlVMTCwgTlVMTCAgICAgfSwKIAogCS8qIENPTSBPbmUgUGxh dGluaXVtIEJsdWV0b290aCBQQyBDYXJkICovCi0JeyAiY29tb25lIiwgICAgIDB4ZmZmZiwgMHgw MTAxLCBIQ0lfVUFSVF9CQ1NQLCAxMTUyMDAsIDExNTIwMCwgMCwgICAgICAgIE5VTEwsIGJjc3Ag ICAgIH0sCisJeyAiY29tb25lIiwgICAgIDB4ZmZmZiwgMHgwMTAxLCBIQ0lfVUFSVF9CQ1NQLCAw LCAxMTUyMDAsIDExNTIwMCwgMCwgICAgICAgIE5VTEwsIGJjc3AsIE5VTEwgICAgIH0sCiAKIAkv KiBUREsgQmx1ZXRvb3RoIFBDIENhcmQgYW5kIElCTSBCbHVldG9vdGggUEMgQ2FyZCBJSSAqLwot CXsgInRkayIsICAgICAgICAweDAxMDUsIDB4NDI1NCwgSENJX1VBUlRfQkNTUCwgMTE1MjAwLCAx MTUyMDAsIDAsICAgICAgICBOVUxMLCBiY3NwICAgICB9LAorCXsgInRkayIsICAgICAgICAweDAx MDUsIDB4NDI1NCwgSENJX1VBUlRfQkNTUCwgMCwgMTE1MjAwLCAxMTUyMDAsIDAsICAgICAgICBO VUxMLCBiY3NwLCBOVUxMICAgICB9LAogCiAJLyogU29ja2V0IEJsdWV0b290aCBDRiBDYXJkIChS ZXYgRykgKi8KLQl7ICJzb2NrZXQiLCAgICAgMHgwMTA0LCAweDAwOTYsIEhDSV9VQVJUX0JDU1As IDIzMDQwMCwgMjMwNDAwLCAwLCAgICAgICAgTlVMTCwgYmNzcCAgICAgfSwKKwl7ICJzb2NrZXQi LCAgICAgMHgwMTA0LCAweDAwOTYsIEhDSV9VQVJUX0JDU1AsIDAsIDIzMDQwMCwgMjMwNDAwLCAw LCAgICAgICAgTlVMTCwgYmNzcCwgTlVMTCAgICAgfSwKIAogCS8qIDNDb20gQmx1ZXRvb3RoIENh cmQgKFZlcnNpb24gMy4wKSAqLwotCXsgIjNjb20iLCAgICAgICAweDAxMDEsIDB4MDA0MSwgSENJ X1VBUlRfSDQsICAgMTE1MjAwLCAxMTUyMDAsIEZMT1dfQ1RMLCBOVUxMLCBjc3IgICAgICB9LAor CXsgIjNjb20iLCAgICAgICAweDAxMDEsIDB4MDA0MSwgSENJX1VBUlRfSDQsIDAsIDExNTIwMCwg MTE1MjAwLCBGTE9XX0NUTCwgTlVMTCwgY3NyLCBOVUxMICAgICAgfSwKIAogCS8qIEFtYmlDb20g QlQyMDAwQyBCbHVldG9vdGggUEMvQ0YgQ2FyZCAqLwotCXsgImJ0MjAwMGMiLCAgICAweDAyMmQs IDB4MjAwMCwgSENJX1VBUlRfSDQsICAgIDU3NjAwLCA0NjA4MDAsIEZMT1dfQ1RMLCBOVUxMLCBj c3IgICAgICB9LAorCXsgImJ0MjAwMGMiLCAgICAweDAyMmQsIDB4MjAwMCwgSENJX1VBUlRfSDQs IDAsIDU3NjAwLCA0NjA4MDAsIEZMT1dfQ1RMLCBOVUxMLCBjc3IsIE5VTEwgICAgICB9LAogCiAJ LyogWm9vbSBCbHVldG9vdGggUENNQ0lBIENhcmQgKi8KLQl7ICJ6b29tIiwgICAgICAgMHgwMjc5 LCAweDk1MGIsIEhDSV9VQVJUX0JDU1AsIDExNTIwMCwgMTE1MjAwLCAwLCAgICAgICAgTlVMTCwg YmNzcCAgICAgfSwKKwl7ICJ6b29tIiwgICAgICAgMHgwMjc5LCAweDk1MGIsIEhDSV9VQVJUX0JD U1AsIDAsIDExNTIwMCwgMTE1MjAwLCAwLCAgICAgICAgTlVMTCwgYmNzcCwgTlVMTCAgICAgfSwK IAogCS8qIFNpdGVjb20gQ04tNTA0IFBDTUNJQSBDYXJkICovCi0JeyAic2l0ZWNvbSIsICAgIDB4 MDI3OSwgMHg5NTBiLCBIQ0lfVUFSVF9CQ1NQLCAxMTUyMDAsIDExNTIwMCwgMCwgICAgICAgIE5V TEwsIGJjc3AgICAgIH0sCisJeyAic2l0ZWNvbSIsICAgIDB4MDI3OSwgMHg5NTBiLCBIQ0lfVUFS VF9CQ1NQLCAwLCAxMTUyMDAsIDExNTIwMCwgMCwgICAgICAgIE5VTEwsIGJjc3AsIE5VTEwgICAg IH0sCiAKIAkvKiBCaWxsaW9udG9uIFBDQlRDMSBQQ01DSUEgQ2FyZCAqLwotCXsgImJpbGxpb250 b24iLCAweDAyNzksIDB4OTUwYiwgSENJX1VBUlRfQkNTUCwgMTE1MjAwLCAxMTUyMDAsIDAsICAg ICAgICBOVUxMLCBiY3NwICAgICB9LAorCXsgImJpbGxpb250b24iLCAweDAyNzksIDB4OTUwYiwg SENJX1VBUlRfQkNTUCwgMCwgMTE1MjAwLCAxMTUyMDAsIDAsICAgICAgICBOVUxMLCBiY3NwLCBO VUxMICAgICB9LAogCiAJLyogQnJvYWRjb20gQkNNMjAzNSAqLwotCXsgImJjbTIwMzUiLCAgICAw eDBBNUMsIDB4MjAzNSwgSENJX1VBUlRfSDQsICAgMTE1MjAwLCA0NjA4MDAsIEZMT1dfQ1RMLCBO VUxMLCBiY20yMDM1ICB9LAorCXsgImJjbTIwMzUiLCAgICAweDBBNUMsIDB4MjAzNSwgSENJX1VB UlRfSDQsIDAsIDExNTIwMCwgMTE1MjAwLCAwLCAgICAgICAgTlVMTCwgYmNtMjAzNSwgTlVMTCAg fSwKIAogCXsgTlVMTCwgMCB9CiB9OwpAQCAtMTIwNSw2ICsxNjQ4LDkgQEAgaW50IGluaXRfdWFy dChjaGFyICpkZXYsIHN0cnVjdCB1YXJ0X3QgKnUsIGludCBzZW5kX2JyZWFrKQogCQlyZXR1cm4g LTE7CiAJfQogCisJaWYgKHUtPmluaXRfcG9zdCAmJiB1LT5pbml0X3Bvc3QoZmQsIHUsICZ0aSkg PCAwKQorCQlyZXR1cm4gLTE7CisKIAlyZXR1cm4gZmQ7CiB9CiAKQEAgLTEyMTIsNyArMTY1OCw3 IEBAIHN0YXRpYyB2b2lkIHVzYWdlKHZvaWQpCiB7CiAJcHJpbnRmKCJoY2lhdHRhY2ggLSBIQ0kg VUFSVCBkcml2ZXIgaW5pdGlhbGl6YXRpb24gdXRpbGl0eVxuIik7CiAJcHJpbnRmKCJVc2FnZTpc biIpOwotCXByaW50ZigiXHRoY2lhdHRhY2ggWy1uXSBbLXBdIFstYl0gWy10IHRpbWVvdXRdIFst cyBpbml0aWFsX3NwZWVkXSA8dHR5PiA8dHlwZSB8IGlkPiBbc3BlZWRdIFtmbG93fG5vZmxvd10g W2JkYWRkcl1cbiIpOworCXByaW50ZigiXHRoY2lhdHRhY2ggWy1uXSBbLXBdIFstYl0gWy1nIGRl dmljZV9wYXJhbV0gWy10IHRpbWVvdXRdIFstcyBpbml0aWFsX3NwZWVkXSA8dHR5PiA8dHlwZSB8 IGlkPiBbc3BlZWRdIFtmbG93fG5vZmxvd10gW2JkYWRkcl1cbiIpOwogCXByaW50ZigiXHRoY2lh dHRhY2ggLWxcbiIpOwogfQogCkBAIC0xMjIwLDggKzE2NjYsOSBAQCBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqYXJndltdKQogewogCXN0cnVjdCB1YXJ0X3QgKnUgPSBOVUxMOwogCWludCBkZXRh Y2gsIHByaW50cGlkLCBvcHQsIGksIG4sIGxkLCBlcnI7Ci0JaW50IHRvID0gNTsgCisJaW50IHRv ID0gMTA7CiAJaW50IGluaXRfc3BlZWQgPSAwOworCV9fdTE2IGRldmljZV9wYXJhbSA9IDA7CiAJ aW50IHNlbmRfYnJlYWsgPSAwOwogCXBpZF90IHBpZDsKIAlzdHJ1Y3Qgc2lnYWN0aW9uIHNhOwpA QCAtMTIzMSw3ICsxNjc4LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAlk ZXRhY2ggPSAxOwogCXByaW50cGlkID0gMDsKIAotCXdoaWxlICgob3B0PWdldG9wdChhcmdjLCBh cmd2LCAiYm5wdDpzOmwiKSkgIT0gRU9GKSB7CisJd2hpbGUgKChvcHQ9Z2V0b3B0KGFyZ2MsIGFy Z3YsICJibnB0Omc6czpsIikpICE9IEVPRikgewogCQlzd2l0Y2gob3B0KSB7CiAJCWNhc2UgJ2In OgogCQkJc2VuZF9icmVhayA9IDE7CkBAIC0xMjQ5LDYgKzE2OTYsMTAgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCXRvID0gYXRvaShvcHRhcmcpOwogCQkJYnJlYWs7CiAK KwkJY2FzZSAnZyc6CisJCQlkZXZpY2VfcGFyYW0gPSAoX191MTYpc3RydG9sKG9wdGFyZywgTlVM TCwgMTYpOworCQkJYnJlYWs7CisKIAkJY2FzZSAncyc6CiAJCQlpbml0X3NwZWVkID0gYXRvaShv cHRhcmcpOwogCQkJYnJlYWs7CkBAIC0xMzI4LDEyICsxNzc5LDE3IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pCiAJaWYgKGluaXRfc3BlZWQpCiAJCXUtPmluaXRfc3BlZWQgPSBp bml0X3NwZWVkOwogCisJLyogSWYgdXNlciBzcGVjaWZpZWQgYSBkZXZpY2UgcGFyYW1ldGVyLCB1 c2UgdGhhdCBpbnN0ZWFkIG9mCisJICAgdGhlIGhhcmR3YXJlJ3MgZGVmYXVsdCAqLworCWlmIChk ZXZpY2VfcGFyYW0pCisJCXUtPmRldmljZV9wYXJhbSA9IGRldmljZV9wYXJhbTsKKwogCW1lbXNl dCgmc2EsIDAsIHNpemVvZihzYSkpOwogCXNhLnNhX2ZsYWdzICAgPSBTQV9OT0NMRFNUT1A7CiAJ c2Euc2FfaGFuZGxlciA9IHNpZ19hbGFybTsKIAlzaWdhY3Rpb24oU0lHQUxSTSwgJnNhLCBOVUxM KTsKIAotCS8qIDUgc2Vjb25kcyBzaG91bGQgYmUgZW5vdWdoIGZvciBpbml0aWFsaXphdGlvbiAq LworCS8qIDEwIHNlY29uZHMgc2hvdWxkIGJlIGVub3VnaCBmb3IgaW5pdGlhbGl6YXRpb24gKi8K IAlhbGFybSh0byk7CiAKIAluID0gaW5pdF91YXJ0KGRldiwgdSwgc2VuZF9icmVhayk7Ci0tIAox LjUuNC4zCgo= --_002_00695C9C8F8B4448856F48142B4AA2012032A21Ednce02entticom_ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 --_002_00695C9C8F8B4448856F48142B4AA2012032A21Ednce02entticom_ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Bluez-devel mailing list Bluez-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bluez-devel --_002_00695C9C8F8B4448856F48142B4AA2012032A21Ednce02entticom_--