From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759249AbYJVVJA (ORCPT ); Wed, 22 Oct 2008 17:09:00 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753799AbYJVVIv (ORCPT ); Wed, 22 Oct 2008 17:08:51 -0400 Received: from yw-out-2324.google.com ([74.125.46.29]:15814 "EHLO yw-out-2324.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752052AbYJVVIt (ORCPT ); Wed, 22 Oct 2008 17:08:49 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=rbq3PDBMwnOVWF9IWbhZpU6NPm1CBWWvIlcq00tKj/YuzoTmKw5VYf0kxKCUX1rR28 XXiTH6FCzf53nC5BRApG2nWWy/88ILMNRKk624OIBSv54IHGPBNWznr6HALEC/m3qxzd 5jil9RhKyduYT5i5vCpOp19YNBPVd0zA54nXY= Message-ID: Date: Wed, 22 Oct 2008 23:08:47 +0200 From: "Markus Rechberger" To: "Linux Kernel Mailing List" , em28xx Subject: [PATCH 5/7] adding lgdt3304 based driver MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_25561_32839333.1224709727715" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ------=_Part_25561_32839333.1224709727715 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline lgdt3304.c: frontend driver for the lgdt3304 chip, this driver is not compatible with the lgdt330x. ------=_Part_25561_32839333.1224709727715 Content-Type: text/x-diff; name=em28xx-05.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fmmgjj5b0 Content-Disposition: attachment; filename=em28xx-05.diff Y29tbWl0IGQ3MTZhYTM3OTdiOTY2Mjc3Y2MxNjBmYzFmMDg5MzU3MzY1MzM2YjUKQXV0aG9yOiBN YXJrdXMgUmVjaGJlcmdlciA8bXJlY2hiZXJnZXJAc3VuZHRlay5kZT4KRGF0ZTogICBXZWQgT2N0 IDIyIDIyOjExOjE0IDIwMDggKzAyMDAKCiAgICBhZGRpbmcgbGdkdDMzMDQgYmFzZWQgZHJpdmVy CiAgICAKICAgIGxnZHQzMzA0LmM6CiAgICBmcm9udGVuZCBkcml2ZXIgZm9yIHRoZSBsZ2R0MzMw NCBjaGlwLCB0aGlzIGRyaXZlciBpcyBub3QgY29tcGF0aWJsZQogICAgd2l0aCB0aGUgbGdkdDMz MHguCgpTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgUmVjaGJlcmdlciA8bXJlY2hiZXJnZXJAc3VuZHRl ay5kZT4KCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtcGlhL2xnZHQzMzA0L01h a2VmaWxlIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbXBpYS9sZ2R0MzMwNC9NYWtlZmlsZQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDI2MWE3Ci0tLSAvZGV2L251bGwKKysr IGIvZHJpdmVycy9tZWRpYS92aWRlby9lbXBpYS9sZ2R0MzMwNC9NYWtlZmlsZQpAQCAtMCwwICsx LDcgQEAKK2xnZHQzMzA0LWRlbW9kLW9ianMgICA6PSBsZ2R0MzMwNC5vCisKK29iai1tICs9IGxn ZHQzMzA0LWRlbW9kLm8KKworRVhUUkFfQ0ZMQUdTICs9IC1JZHJpdmVycy9tZWRpYS9kdmIvZHZi LWNvcmUKK0VYVFJBX0NGTEFHUyArPSAtSWRyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcworRVhU UkFfQ0ZMQUdTICs9IC1EQ09ORklHX0RWQl9MR0RUMzMwNApkaWZmIC0tZ2l0IGEvZHJpdmVycy9t ZWRpYS92aWRlby9lbXBpYS9sZ2R0MzMwNC9sZ2R0MzMwNC5jIGIvZHJpdmVycy9tZWRpYS92aWRl by9lbXBpYS9sZ2R0MzMwNC9sZ2R0MzMwNC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjFlODg2N2IKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2Vt cGlhL2xnZHQzMzA0L2xnZHQzMzA0LmMKQEAgLTAsMCArMSwzOTggQEAKKy8qCisgKiBEcml2ZXIg Zm9yIExHIEFUU0MgbGdkdDMzMDQgZHJpdmVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1h cmt1cyBSZWNoYmVyZ2VyIDxtcmVjaGJlcmdlckBzdW5kdGVrLmRlPgorICoKKyAqLworCisjaW5j bHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVk ZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlICJkdmJfZnJvbnRlbmQuaCIKKyNpbmNsdWRlICJs Z2R0MzMwNC5oIgorCitzdGF0aWMgIHVuc2lnbmVkIGludCBkZWJ1ZyA9IDA7Cittb2R1bGVfcGFy YW0oZGVidWcsIGludCwgMDY0NCk7CitNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCJsZ2R0MzMwNCBk ZWJ1Z2dpbmcgKGRlZmF1bHQgb2ZmKSIpOworCisjZGVmaW5lIGRwcmludGsoZm10LCBhcmdzLi4u KSBpZiAoZGVidWcpIGRvIHtcCisJCQlwcmludGsoImxnZHQzMzA0IGRlYnVnOiAiIGZtdCwgIyNh cmdzKTsgfSB3aGlsZSAoMCkKKworc3RydWN0IGxnZHQzMzA0X3N0YXRlCit7CisgICAgICAgIHN0 cnVjdCBkdmJfZnJvbnRlbmQgZnJvbnRlbmQ7CisgICAgICAgIGZlX21vZHVsYXRpb25fdCBjdXJy ZW50X21vZHVsYXRpb247CisgICAgICAgIF9fdTMyIHNucjsgCisgICAgICAgIF9fdTMyIGN1cnJl bnRfZnJlcXVlbmN5OworCV9fdTggYWRkcjsKKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmkyYzsKK307 CisKK3N0YXRpYyBpbnQgaTJjX3dyaXRlX2RlbW9kX2J5dGVzIChzdHJ1Y3QgZHZiX2Zyb250ZW5k ICpmZSwgX191OCAqYnVmLCBpbnQgbGVuKQoreworCXN0cnVjdCBsZ2R0MzMwNF9zdGF0ZSAqc3Rh dGUgPSBmZS0+ZGVtb2R1bGF0b3JfcHJpdjsKKwlzdHJ1Y3QgaTJjX21zZyBpMmNtc2dzID0gewor CQkuYWRkciA9IHN0YXRlLT5hZGRyLAorCQkuZmxhZ3MgPSAwLAorCQkubGVuID0gMywKKwkJLmJ1 ZiA9IGJ1ZgorCX07CisgICAgICAgIGludCBpOworICAgICAgICBpbnQgZXJyOworCisgICAgICAg IGZvciAoaT0wOyBpPGxlbi0xOyBpKz0zKXsKKwkJaWYoKGVyciA9IGkyY190cmFuc2ZlcihzdGF0 ZS0+aTJjLCAmaTJjbXNncywgMSkpPDApIHsKKwkJCXByaW50aygiJXMgaTJjX3RyYW5zZmVyIGVy cm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sIGVycik7CisgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoZXJyIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycjsK KyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIC1FUkVNT1RFSU87CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgIGkyY21zZ3MuYnVmICs9IDM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7Cit9CisK K3N0YXRpYyBpbnQgbGdkdDMzMDRfaTJjX3JlYWRfcmVnKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZl LCB1bnNpZ25lZCBpbnQgcmVnKQoreworCXN0cnVjdCBsZ2R0MzMwNF9zdGF0ZSAqc3RhdGUgPSBm ZS0+ZGVtb2R1bGF0b3JfcHJpdjsKKwlzdHJ1Y3QgaTJjX21zZyBpMmNtc2dzWzJdOworCWludCBy ZXQ7CisJX191OCBidWY7CisKKwlfX3U4IHJlZ2J1ZlsyXSA9IHsgcmVnPj44LCByZWcmMHhmZiB9 OworCisJaTJjbXNnc1swXS5hZGRyID0gc3RhdGUtPmFkZHI7CisJaTJjbXNnc1swXS5mbGFncyA9 IDA7CisJaTJjbXNnc1swXS5sZW4gPSAyOworCWkyY21zZ3NbMF0uYnVmID0gcmVnYnVmOworCisJ aTJjbXNnc1sxXS5hZGRyID0gc3RhdGUtPmFkZHI7CisJaTJjbXNnc1sxXS5mbGFncyA9IEkyQ19N X1JEOworCWkyY21zZ3NbMV0ubGVuID0gMTsKKwlpMmNtc2dzWzFdLmJ1ZiA9ICZidWY7CisKKwlp ZigocmV0ID0gaTJjX3RyYW5zZmVyKHN0YXRlLT5pMmMsIGkyY21zZ3MsIDIpKTwwKSB7CisJCXBy aW50aygiJXMgaTJjX3RyYW5zZmVyIGVycm9yICVkXG4iLCBfX0ZVTkNUSU9OX18sIHJldCk7CisJ CXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIGJ1ZjsKK30KKworc3RhdGljIGludCBsZ2R0MzMw NF9pMmNfd3JpdGVfcmVnKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlLCBpbnQgcmVnLCBpbnQgdmFs KQoreworCXN0cnVjdCBsZ2R0MzMwNF9zdGF0ZSAqc3RhdGUgPSBmZS0+ZGVtb2R1bGF0b3JfcHJp djsKKwljaGFyIGJ1ZmZlclszXSA9IHsgcmVnPj44LCByZWcmMHhmZiwgdmFsIH07CisJaW50IHJl dDsKKworCXN0cnVjdCBpMmNfbXNnIGkyY21zZ3MgPSB7CisJCS5hZGRyID0gc3RhdGUtPmFkZHIs CisJCS5mbGFncyA9IDAsCisJCS5sZW4gPSAzLAorCQkuYnVmPWJ1ZmZlcgorCX07CisJcmV0ID0g aTJjX3RyYW5zZmVyKHN0YXRlLT5pMmMsICZpMmNtc2dzLCAxKTsKKwlpZiAocmV0ICE9IDEpIHsK KwkJcHJpbnRrKCIlcyBpMmNfdHJhbnNmZXIgZXJyb3IgJWRcbiIsIF9fRlVOQ1RJT05fXywgcmV0 KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworCitzdGF0aWMgaW50IGxn ZHQzMzA0X3NvZnRfUmVzZXQoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUpIAoreworCWxnZHQzMzA0 X2kyY193cml0ZV9yZWcoZmUsIDB4MDAwMiwgMHg5YSk7CisJbGdkdDMzMDRfaTJjX3dyaXRlX3Jl ZyhmZSwgMHgwMDAyLCAweDliKTsKKwltZGVsYXkoMjAwKTsKKwlyZXR1cm4gMDsKK30KKworc3Rh dGljIGludCBsZ2R0MzMwNF9zZXRfcGFyYW1ldGVycyhzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwg c3RydWN0IGR2Yl9mcm9udGVuZF9wYXJhbWV0ZXJzICpwYXJhbSkgeworCWludCBlcnIgPSAwOwor CisJc3RhdGljIF9fdTggbGdkdDMzMDRfdnNiOF9kYXRhW10gPSB7CisJCS8qIDE2Yml0ICAsIDhi aXQgKi8KKwkJLyogcmVncyAgICwgdmFsICAqLworCQkweDAwLCAweDAwLCAweDAyLAorCQkweDAw LCAweDAwLCAweDEzLAorCQkweDAwLCAweDBkLCAweDAyLAorCQkweDAwLCAweDBlLCAweDAyLAor CQkweDAwLCAweDEyLCAweDMyLAorCQkweDAwLCAweDEzLCAweGM0LAorCQkweDAxLCAweDEyLCAw eDE3LAorCQkweDAxLCAweDEzLCAweDE1LAorCQkweDAxLCAweDE0LCAweDE4LAorCQkweDAxLCAw eDE1LCAweGZmLAorCQkweDAxLCAweDE2LCAweDJjLAorCQkweDAyLCAweDE0LCAweDY3LAorCQkw eDAyLCAweDI0LCAweDhkLAorCQkweDA0LCAweDI3LCAweDEyLAorCQkweDA0LCAweDI4LCAweDRm LAorCQkweDAzLCAweDA4LCAweDgwLAorCQkweDAzLCAweDA5LCAweDAwLAorCQkweDAzLCAweDBk LCAweDAwLAorCQkweDAzLCAweDBlLCAweDFjLAorCQkweDAzLCAweDE0LCAweGUxLAorCQkweDA1 LCAweDBlLCAweDViLAorCX07CisJCisJLyogbm90IHlldCB0ZXN0ZWQgLi4gKi8KKwlzdGF0aWMg X191OCBsZ2R0MzMwNF9xYW02NF9kYXRhW10gPSB7CisJCS8qIDE2Yml0ICAsIDhiaXQgKi8KKwkJ LyogcmVncyAgICwgdmFsICAqLworCQkweDAwLCAweDAwLCAweDE4LAorCQkweDAwLCAweDBkLCAw eDAyLAorCQkvLzB4MDAsIDB4MGUsIDB4MDIsCisJCTB4MDAsIDB4MTIsIDB4MmEsCisJCTB4MDAs IDB4MTMsIDB4MDAsCisJCTB4MDMsIDB4MTQsIDB4ZTMsCisJCTB4MDMsIDB4MGUsIDB4MWMsCisJ CTB4MDMsIDB4MDgsIDB4NjYsCisJCTB4MDMsIDB4MDksIDB4NjYsCisJCTB4MDMsIDB4MGEsIDB4 MDgsCisJCTB4MDMsIDB4MGIsIDB4OWIsCisJCTB4MDUsIDB4MGUsIDB4NWIsCisJfTsKKworI2lm IDAKKwkvKiBub3QgeWV0IHRlc3RlZCAqLworCXN0YXRpYyBfX3U4IGxnZHQzMzA0X3FhbTI1Nl9k YXRhW10gPSB7CisJCS8qIDE2Yml0ICAsIDhiaXQgKi8KKwkJLyogcmVncyAgICwgdmFsICAqLwor CQkweDAwLCAweDAwLCAweDE5LAorCQkweDAwLCAweDEyLCAweDJhLAorCQkweDAwLCAweDEzLCAw eDgwLAorCQkweDAwLCAweDBkLCAweDAyLAorCQkweDAzLCAweDE0LCAweGUzLAorCisJCTB4MDMs IDB4MGUsIDB4MWMsCisJCTB4MDMsIDB4MDgsIDB4NjYsCisJCTB4MDMsIDB4MDksIDB4NjYsCisJ CTB4MDMsIDB4MGEsIDB4MDgsCisJCTB4MDMsIDB4MGIsIDB4OWIsCisJCTB4MDMsIDB4MGQsIDB4 MTQsCisJCTB4MDUsIDB4MGUsIDB4NWIsCisJfTsKKyNlbmRpZgorCisJLyogdGVzdGVkIHdpdGgg S1dvcmxkIGEzNDAgKi8KKwlzdGF0aWMgX191OCBsZ2R0MzMwNF9xYW0yNTZfZGF0YVtdID0gewor CQkvKiAxNmJpdCAgLCA4Yml0ICovCisJCS8qIHJlZ3MgICAsIHZhbCAgKi8KKwkJMHgwMCwgMHgw MCwgMHgwMSwgIC8vMHgxOSwKKwkJMHgwMCwgMHgxMiwgMHgyYSwKKwkJMHgwMCwgMHgxMywgMHg4 MCwKKwkJMHgwMCwgMHgwZCwgMHgwMiwKKwkJMHgwMywgMHgxNCwgMHhlMywKKworCQkweDAzLCAw eDBlLCAweDFjLAorCQkweDAzLCAweDA4LCAweDY2LAorCQkweDAzLCAweDA5LCAweDY2LAorCQkw eDAzLCAweDBhLCAweDA4LAorCQkweDAzLCAweDBiLCAweDliLAorCisJCTB4MDMsIDB4MGQsIDB4 MTQsCisJCS8vMHgwNSwgMHgwZSwgMHg1YiwKKwkJMHgwMSwgMHgwNiwgMHg0YSwKKwkJMHgwMSwg MHgwNywgMHgzZCwKKwkJMHgwMSwgMHgwOCwgMHg3MCwKKwkJMHgwMSwgMHgwOSwgMHhhMywKKwor CQkweDA1LCAweDA0LCAweGZkLAorCisJCTB4MDAsIDB4MGQsIDB4ODIsCisKKwkJMHgwNSwgMHgw ZSwgMHg1YiwKKworCQkweDA1LCAweDBlLCAweDViLAorCisJCTB4MDAsIDB4MDIsIDB4OWEsCisK KwkJMHgwMCwgMHgwMiwgMHg5YiwKKworCQkweDAwLCAweDAwLCAweDAxLAorCQkweDAwLCAweDEy LCAweDJhLAorCQkweDAwLCAweDEzLCAweDgwLAorCQkweDAwLCAweDBkLCAweDAyLAorCQkweDAz LCAweDE0LCAweGUzLAorCisJCTB4MDMsIDB4MGUsIDB4MWMsCisJCTB4MDMsIDB4MDgsIDB4NjYs CisJCTB4MDMsIDB4MDksIDB4NjYsCisJCTB4MDMsIDB4MGEsIDB4MDgsCisJCTB4MDMsIDB4MGIs IDB4OWIsCisKKwkJMHgwMywgMHgwZCwgMHgxNCwKKwkJMHgwMSwgMHgwNiwgMHg0YSwKKwkJMHgw MSwgMHgwNywgMHgzZCwKKwkJMHgwMSwgMHgwOCwgMHg3MCwKKwkJMHgwMSwgMHgwOSwgMHhhMywK KworCQkweDA1LCAweDA0LCAweGZkLAorCisJCTB4MDAsIDB4MGQsIDB4ODIsCisKKwkJMHgwNSwg MHgwZSwgMHg1YiwKKwl9OworCisJc3RydWN0IGxnZHQzMzA0X3N0YXRlICpzdGF0ZSA9IGZlLT5k ZW1vZHVsYXRvcl9wcml2OworCWlmIChzdGF0ZS0+Y3VycmVudF9tb2R1bGF0aW9uICE9IHBhcmFt LT51LnZzYi5tb2R1bGF0aW9uKSB7CisJCXN3aXRjaChwYXJhbS0+dS52c2IubW9kdWxhdGlvbikg eworCQljYXNlIFZTQl84OgorCQkJZXJyID0gaTJjX3dyaXRlX2RlbW9kX2J5dGVzKGZlLCBsZ2R0 MzMwNF92c2I4X2RhdGEsCisJCQkJCXNpemVvZihsZ2R0MzMwNF92c2I4X2RhdGEpKTsKKwkJCWJy ZWFrOworCQljYXNlIFFBTV82NDoKKwkJCWVyciA9IGkyY193cml0ZV9kZW1vZF9ieXRlcyhmZSwg bGdkdDMzMDRfcWFtNjRfZGF0YSwKKwkJCQkJc2l6ZW9mKGxnZHQzMzA0X3FhbTY0X2RhdGEpKTsK KwkJCWJyZWFrOworCQljYXNlIFFBTV8yNTY6CisJCQllcnIgPSBpMmNfd3JpdGVfZGVtb2RfYnl0 ZXMoZmUsIGxnZHQzMzA0X3FhbTI1Nl9kYXRhLAorCQkJCQlzaXplb2YobGdkdDMzMDRfcWFtMjU2 X2RhdGEpKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KKworCQlpZiAo ZXJyKSB7CisJCQlwcmludGsoIiVzIGVycm9yIHNldHRpbmcgbW9kdWxhdGlvblxuIiwgX19GVU5D VElPTl9fKTsKKwkJfSBlbHNlIHsKKwkJCXN0YXRlLT5jdXJyZW50X21vZHVsYXRpb24gPSBwYXJh bS0+dS52c2IubW9kdWxhdGlvbjsKKwkJfQorCX0KKwlzdGF0ZS0+Y3VycmVudF9mcmVxdWVuY3kg PSBwYXJhbS0+ZnJlcXVlbmN5OworCisJbGdkdDMzMDRfc29mdF9SZXNldChmZSk7CisKKworICAg ICAgICBpZiAoZmUtPm9wcy50dW5lcl9vcHMuc2V0X3BhcmFtcykgCisgICAgICAgICAgICAgICAg ZmUtPm9wcy50dW5lcl9vcHMuc2V0X3BhcmFtcyhmZSwgcGFyYW0pOworICAgICAgICAKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIGludCBsZ2R0MzMwNF9pbml0KHN0cnVjdCBkdmJfZnJvbnRlbmQg KmZlKSB7CisgICAgICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IGxnZHQzMzA0X3NsZWVw KHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlKSB7CisJcmV0dXJuIDA7Cit9CisKKworc3RhdGljIGlu dCBsZ2R0MzMwNF9yZWFkX3N0YXR1cyhzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwgZmVfc3RhdHVz X3QgKnN0YXR1cykKK3sKKwlzdHJ1Y3QgbGdkdDMzMDRfc3RhdGUgKnN0YXRlID0gZmUtPmRlbW9k dWxhdG9yX3ByaXY7CisJaW50IHIwMTFkOworCWludCBxYW1fbGNrOworCisJKnN0YXR1cyA9IDA7 CisJZHByaW50aygibGdkdCByZWFkIHN0YXR1c1xuIik7CisJCisJcjAxMWQgPSBsZ2R0MzMwNF9p MmNfcmVhZF9yZWcoZmUsIDB4MDExZCk7CisKKwlkcHJpbnRrKCIlMDJ4XG4iLCByMDExZCk7CisK Kwlzd2l0Y2goc3RhdGUtPmN1cnJlbnRfbW9kdWxhdGlvbikgeworCWNhc2UgVlNCXzg6CisJCWlm IChyMDExZCAmIDB4ODApIHsKKwkJCWRwcmludGsoIlZTQiBMb2NrZWRcbiIpOworCQkJKnN0YXR1 cyB8PSBGRV9IQVNfQ0FSUklFUjsKKwkJCSpzdGF0dXMgfD0gRkVfSEFTX0xPQ0s7CisJCQkqc3Rh dHVzIHw9IEZFX0hBU19TWU5DOworCQkJKnN0YXR1cyB8PSBGRV9IQVNfU0lHTkFMOworCQl9CisJ CWJyZWFrOworCWNhc2UgUUFNXzY0OgorCWNhc2UgUUFNXzI1NjoKKwkJcWFtX2xjayA9IHIwMTFk ICYgMHg3OworCQlzd2l0Y2gocWFtX2xjaykgeworCQkJY2FzZSAweDA6IGRwcmludGsoIlVubG9j a1xuIik7CisJCQkJICBicmVhazsKKwkJCWNhc2UgMHg0OiBkcHJpbnRrKCIxc3QgTG9jayBpbiBh Y3F1aXNpdGlvbiBzdGF0ZVxuIik7CisJCQkJICBicmVhazsKKwkJCWNhc2UgMHg2OiBkcHJpbnRr KCIybmQgTG9jayBpbiBhY3F1aXNpdGlvbiBzdGF0ZVxuIik7CisJCQkJICBicmVhazsKKwkJCWNh c2UgMHg3OiBkcHJpbnRrKCJGaW5hbCBMb2NrIGluIGdvb2QgcmVjZXB0aW9uIHN0YXRlXG4iKTsK KwkJCQkgICpzdGF0dXMgfD0gRkVfSEFTX0NBUlJJRVI7CisJCQkJICAqc3RhdHVzIHw9IEZFX0hB U19MT0NLOworCQkJCSAgKnN0YXR1cyB8PSBGRV9IQVNfU1lOQzsKKwkJCQkgICpzdGF0dXMgfD0g RkVfSEFTX1NJR05BTDsKKwkJCQkgIGJyZWFrOworCQl9CisJCWJyZWFrOworCWRlZmF1bHQ6CisJ CXByaW50aygiJXMgdW5oYW5kbGVkIG1vZHVsYXRpb25cbiIsIF9fRlVOQ1RJT05fXyk7CisJfQor CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBsZ2R0MzMwNF9yZWFkX2JlcihzdHJ1Y3Qg ZHZiX2Zyb250ZW5kICpmZSwgX191MzIgKmJlcikKK3sKKwlkcHJpbnRrKCJyZWFkIGJlclxuIik7 CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbGdkdDMzMDRfcmVhZF9zbnIoc3RydWN0IGR2 Yl9mcm9udGVuZCAqZmUsIF9fdTE2ICpzbnIpCit7CisJZHByaW50aygicmVhZCBzbnJcbiIpOwor CXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGxnZHQzMzA0X3JlYWRfdWNibG9ja3Moc3RydWN0 IGR2Yl9mcm9udGVuZCAqZmUsIF9fdTMyICp1Y2Jsb2NrcykKK3sKKwlkcHJpbnRrKCJyZWFkIHVj YmxvY2tzXG4iKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgbGdkdDMzMDRfcmVsZWFz ZShzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSkKK3sKKwlzdHJ1Y3QgbGdkdDMzMDRfc3RhdGUgKnN0 YXRlID0gKHN0cnVjdCBsZ2R0MzMwNF9zdGF0ZSAqKWZlLT5kZW1vZHVsYXRvcl9wcml2OworCWtm cmVlKHN0YXRlKTsKK30KKworc3RhdGljIHN0cnVjdCBkdmJfZnJvbnRlbmRfb3BzIGRlbW9kX2xn ZHQzMzA0PXsKKwkuaW5mbyA9IHsKKwkJLm5hbWUgPSAiTEcgMzMwNCIsCisJCS50eXBlID0gRkVf QVRTQywKKwkJLmZyZXF1ZW5jeV9taW4gPSA1NDAwMDAwMCwKKwkJLmZyZXF1ZW5jeV9tYXggPSA4 NTgwMDAwMDAsCisJCS5mcmVxdWVuY3lfc3RlcHNpemUgPSA2MjUwMCwKKwkJLnN5bWJvbF9yYXRl X21pbiA9IDUwNTY5NDEsCisJCS5zeW1ib2xfcmF0ZV9tYXggPSAxMDc2MjAwMCwKKwkJLmNhcHMg PSBGRV9DQU5fUUFNXzY0IHwgRkVfQ0FOX1FBTV8yNTYgfCBGRV9DQU5fOFZTQgorCX0sCisJLmlu aXQgPSBsZ2R0MzMwNF9pbml0LAorCS5zbGVlcCA9IGxnZHQzMzA0X3NsZWVwLAorCS5zZXRfZnJv bnRlbmQgPSBsZ2R0MzMwNF9zZXRfcGFyYW1ldGVycywKKwkucmVhZF9zbnIgPSBsZ2R0MzMwNF9y ZWFkX3NuciwKKwkucmVhZF9iZXIgPSBsZ2R0MzMwNF9yZWFkX2JlciwKKwkucmVhZF9zdGF0dXMg PSBsZ2R0MzMwNF9yZWFkX3N0YXR1cywKKwkucmVhZF91Y2Jsb2NrcyA9IGxnZHQzMzA0X3JlYWRf dWNibG9ja3MsCisJLnJlbGVhc2UgPSBsZ2R0MzMwNF9yZWxlYXNlLAorfTsKKworc3RydWN0IGR2 Yl9mcm9udGVuZCogbGdkdDMzMDRfYXR0YWNoKGNvbnN0IHN0cnVjdCBsZ2R0MzMwNF9jb25maWcg KmNvbmZpZywKKwkJCQkJICAgc3RydWN0IGkyY19hZGFwdGVyICppMmMpCit7CisKKwlzdHJ1Y3Qg bGdkdDMzMDRfc3RhdGUgKnN0YXRlOworCXN0YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGxn ZHQzMzA0X3N0YXRlKSwgR0ZQX0tFUk5FTCk7CisJbWVtc2V0KHN0YXRlLCAweDAsIHNpemVvZihz dHJ1Y3QgbGdkdDMzMDRfc3RhdGUpKTsKKwlzdGF0ZS0+YWRkciA9IGNvbmZpZy0+aTJjX2FkZHJl c3M7CisJc3RhdGUtPmkyYyA9IGkyYzsKKworCW1lbWNweSgmc3RhdGUtPmZyb250ZW5kLm9wcywg JmRlbW9kX2xnZHQzMzA0LCBzaXplb2Yoc3RydWN0IGR2Yl9mcm9udGVuZF9vcHMpKTsKKwlzdGF0 ZS0+ZnJvbnRlbmQuZGVtb2R1bGF0b3JfcHJpdiA9IHN0YXRlOworCXJldHVybiAmc3RhdGUtPmZy b250ZW5kOworfQorCitFWFBPUlRfU1lNQk9MX0dQTChsZ2R0MzMwNF9hdHRhY2gpOworTU9EVUxF X0FVVEhPUigiTWFya3VzIFJlY2hiZXJnZXIgPG1yZWNoYmVyZ2VyQGVtcGlhdGVjaC5jb20+Iik7 CitNT0RVTEVfREVTQ1JJUFRJT04oIkxHRSBMR0RUMzMwNCBEVkItVCBkZW1vZHVsYXRvciBkcml2 ZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEv dmlkZW8vZW1waWEvbGdkdDMzMDQvbGdkdDMzMDQuaCBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW1w aWEvbGdkdDMzMDQvbGdkdDMzMDQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mYzQwOWZlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbXBpYS9s Z2R0MzMwNC9sZ2R0MzMwNC5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiAgRHJpdmVyIGZvciBE VkItVCBsZ2R0MzMwNCBkZW1vZHVsYXRvcgorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTWFy a3VzIFJlY2hiZXJnZXIgPG1yZWNoYmVyZ2VyQGdtYWlsLmNvbT4KKyAqCisgKiAgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisg KgorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUg dG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUs IENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS49CisgKi8KKworI2lmbmRlZiBMR0RUMzMwNF9ICisj ZGVmaW5lIExHRFQzMzA0X0gKKworI2luY2x1ZGUgPGxpbnV4L2R2Yi9mcm9udGVuZC5oPgorCitz dHJ1Y3QgbGdkdDMzMDRfY29uZmlnCit7CisJLyogZGVtb2R1bGF0b3IncyBJMkMgYWRkcmVzcyAq LworCXU4IGkyY19hZGRyZXNzOworfTsKKworI2lmIGRlZmluZWQoQ09ORklHX0RWQl9MR0RUMzMw NCkgfHwgKGRlZmluZWQoQ09ORklHX0RWQl9MR0RUMzMwNF9NT0RVTEUpICYmIGRlZmluZWQoTU9E VUxFKSkKK2V4dGVybiBzdHJ1Y3QgZHZiX2Zyb250ZW5kKiBsZ2R0MzMwNF9hdHRhY2goY29uc3Qg c3RydWN0IGxnZHQzMzA0X2NvbmZpZyAqY29uZmlnLAorCQkJCQkgICBzdHJ1Y3QgaTJjX2FkYXB0 ZXIgKmkyYyk7CisjZWxzZQorc3RhdGljIGlubGluZSBzdHJ1Y3QgZHZiX2Zyb250ZW5kKiBsZ2R0 MzMwNF9hdHRhY2goY29uc3Qgc3RydWN0IGxnZHQzMzA0X2NvbmZpZyAqY29uZmlnLAorCQkJCQkg ICBzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmkyYykKK3sKKwlwcmludGsoS0VSTl9XQVJOSU5HICIlczog ZHJpdmVyIGRpc2FibGVkIGJ5IEtjb25maWdcbiIsIF9fZnVuY19fKTsKKwlyZXR1cm4gTlVMTDsK K30KKyNlbmRpZiAvKiBDT05GSUdfRFZCX0xHRFQgKi8KKworI2VuZGlmIC8qIExHRFQzMzA0X0gg Ki8K ------=_Part_25561_32839333.1224709727715--