From mboxrd@z Thu Jan 1 00:00:00 1970 From: Axel Lin Date: Fri, 20 Jan 2012 07:38:18 +0000 Subject: [lm-sensors] [PATCH 1/2] hwmon: convert drivers/hwmon/* to use module_i2c_driver() Message-Id: <1327045098.29773.0.camel@phoenix> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-kernel@vger.kernel.org Cc: Jean Delvare , Guenter Roeck , Corentin Labbe , Dirk Eibach , "Mark M. Hoffman" , Steve Glendinning , Riku Voipio , Guillaume Ligneul , David George , "Hans J. Koch" , Marc Hulsman , Rudolf Marek , lm-sensors@lm-sensors.org VGhpcyBwYXRjaCBjb252ZXJ0cyB0aGUgZHJpdmVycyBpbiBkcml2ZXJzL2h3bW9uLyogdG8gdXNl IHRoZQptb2R1bGVfaTJjX2RyaXZlcigpIG1hY3JvIHdoaWNoIG1ha2VzIHRoZSBjb2RlIHNtYWxs ZXIgYW5kIGEgYml0IHNpbXBsZXIuCgpTaWduZWQtb2ZmLWJ5OiBBeGVsIExpbiA8YXhlbC5saW5A Z21haWwuY29tPgpDYzogQ29yZW50aW4gTGFiYmUgPGNvcmVudGluLmxhYmJlQGdlb21hdHlzLmZy PgpDYzogRGlyayBFaWJhY2ggPGVpYmFjaEBnZHN5cy5kZT4KQ2M6ICJNYXJrIE0uIEhvZmZtYW4i IDxtaG9mZm1hbkBsaWdodGxpbmsuY29tPgpDYzogU3RldmUgR2xlbmRpbm5pbmcgPHN0ZXZlLmds ZW5kaW5uaW5nQHNtc2MuY29tPgpDYzogUmlrdSBWb2lwaW8gPHJpa3Uudm9pcGlvQGlraS5maT4K Q2M6IEd1aWxsYXVtZSBMaWduZXVsIDxndWlsbGF1bWUubGlnbmV1bEBnbWFpbC5jb20+CkNjOiBE YXZpZCBHZW9yZ2UgPGRhdmlkLmdlb3JnZUBza2EuYWMuemE+CkNjOiAiSGFucyBKLiBLb2NoIiA8 aGprQGhhbnNqa29jaC5kZT4KQ2M6IE1hcmMgSHVsc21hbiA8bS5odWxzbWFuQHR1ZGVsZnQubmw+ CkNjOiBSdWRvbGYgTWFyZWsgPHIubWFyZWtAYXNzZW1ibGVyLmN6PgotLS0KIGRyaXZlcnMvaHdt b24vYWQ3NDE0LmMgICAgICAgICB8ICAgMTIgKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2Fk NzQxOC5jICAgICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vYWRtMTAy MS5jICAgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9hZG0xMDI1LmMg ICAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2FkbTEwMjYuYyAgICAg ICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vYWRtMTAyOS5jICAgICAgICB8 ICAgMTggKy0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2FkbTEwMzEuYyAgICAgICAg fCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vYWRtOTI0MC5jICAgICAgICB8ICAg MTQgKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vYWRzMTAxNS5jICAgICAgICB8ICAgMTMg Ky0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9hZHQ3NDExLmMgICAgICAgIHwgICAxMiArLS0t LS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vYWR0NzQ2Mi5jICAgICAgICB8ICAgMTMgKy0tLS0tLS0t LS0tLQogZHJpdmVycy9od21vbi9hZHQ3NDcwLmMgICAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0t CiBkcml2ZXJzL2h3bW9uL2FkdDc0NzUuYyAgICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRy aXZlcnMvaHdtb24vYW1jNjgyMS5jICAgICAgICB8ICAgMTUgKy0tLS0tLS0tLS0tLS0tCiBkcml2 ZXJzL2h3bW9uL2FzYjEwMC5jICAgICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMv aHdtb24vYXR4cDEuYyAgICAgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21v bi9kczE2MjEuYyAgICAgICAgIHwgICAxNCArLS0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9k czYyMC5jICAgICAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2VtYzE0 MDMuYyAgICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vZW1jMjEwMy5j ICAgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9lbWM2dzIwMS5jICAg ICAgIHwgICAxMiArLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vZjc1Mzc1cy5jICAgICAgICB8 ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9mc2NobWQuYyAgICAgICAgIHwgICAx MyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2c3NjBhLmMgICAgICAgICAgfCAgIDE1ICst LS0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9nbDUxOHNtLmMgICAgICAgIHwgICAxMyArLS0t LS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2dsNTIwc20uYyAgICAgICAgfCAgIDE1ICstLS0tLS0t LS0tLS0tLQogZHJpdmVycy9od21vbi9qYzQyLmMgICAgICAgICAgIHwgICAxMyArLS0tLS0tLS0t LS0tCiBkcml2ZXJzL2h3bW9uL2xpbmVhZ2UtcGVtLmMgICAgfCAgIDEzICstLS0tLS0tLS0tLS0K IGRyaXZlcnMvaHdtb24vbG02My5jICAgICAgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJp dmVycy9od21vbi9sbTczLmMgICAgICAgICAgIHwgICAxNSArLS0tLS0tLS0tLS0tLS0KIGRyaXZl cnMvaHdtb24vbG03NS5jICAgICAgICAgICB8ICAgMTcgKy0tLS0tLS0tLS0tLS0tLS0KIGRyaXZl cnMvaHdtb24vbG03Ny5jICAgICAgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9o d21vbi9sbTgwLmMgICAgICAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9u L2xtODMuYyAgICAgICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vbG04 NS5jICAgICAgICAgICB8ICAgMTQgKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vbG04Ny5j ICAgICAgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9sbTkwLmMgICAg ICAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2xtOTIuYyAgICAgICAg ICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vbG05My5jICAgICAgICAgICB8 ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9sbTk1MjQxLmMgICAgICAgIHwgICAx MyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2xtOTUyNDUuYyAgICAgICAgfCAgIDEzICst LS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vbHRjNDE1MS5jICAgICAgICB8ICAgMTMgKy0tLS0t LS0tLS0tLQogZHJpdmVycy9od21vbi9sdGM0MjE1LmMgICAgICAgIHwgICAxMyArLS0tLS0tLS0t LS0tCiBkcml2ZXJzL2h3bW9uL2x0YzQyNDUuYyAgICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0K IGRyaXZlcnMvaHdtb24vbHRjNDI2MS5jICAgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJp dmVycy9od21vbi9tYXgxNjA2NS5jICAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJz L2h3bW9uL21heDE2MTkuYyAgICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdt b24vbWF4MTY2OC5jICAgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9t YXg2NjM5LmMgICAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL21heDY2 NDIuYyAgICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vbWF4NjY1MC5j ICAgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9wbWJ1cy9hZG0xMjc1 LmMgIHwgICAxMiArLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vcG1idXMvbG0yNTA2Ni5jICB8 ICAgMTIgKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL3BtYnVzL2x0YzI5NzguYyAgfCAgIDEy ICstLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9wbWJ1cy9tYXgxNjA2NC5jIHwgICAxMiArLS0t LS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vcG1idXMvbWF4MzQ0NDAuYyB8ICAgMTIgKy0tLS0tLS0t LS0tCiBkcml2ZXJzL2h3bW9uL3BtYnVzL21heDg2ODguYyAgfCAgIDEyICstLS0tLS0tLS0tLQog ZHJpdmVycy9od21vbi9wbWJ1cy9wbWJ1cy5jICAgIHwgICAxMiArLS0tLS0tLS0tLS0KIGRyaXZl cnMvaHdtb24vcG1idXMvdWNkOTAwMC5jICB8ICAgMTIgKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3 bW9uL3BtYnVzL3VjZDkyMDAuYyAgfCAgIDEyICstLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9w bWJ1cy96bDYxMDAuYyAgIHwgICAxMiArLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vc2h0MjEu YyAgICAgICAgICB8ICAgMjMgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24v c21tNjY1LmMgICAgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9zbXNj NDdtMTkyLmMgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL3RobWM1MC5j ICAgICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vdG1wMTAyLmMgICAg ICAgICB8ICAgMTIgKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL3RtcDQwMS5jICAgICAgICAg fCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vdG1wNDIxLmMgICAgICAgICB8ICAg MTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi93ODM3OTFkLmMgICAgICAgIHwgICAxMyAr LS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL3c4Mzc5MmQuYyAgICAgICAgfCAgIDE2ICstLS0t LS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vdzgzNzkzLmMgICAgICAgICB8ICAgMTMgKy0tLS0t LS0tLS0tLQogZHJpdmVycy9od21vbi93ODM3OTUuYyAgICAgICAgIHwgICAxMyArLS0tLS0tLS0t LS0tCiBkcml2ZXJzL2h3bW9uL3c4M2w3ODV0cy5jICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0K IGRyaXZlcnMvaHdtb24vdzgzbDc4Nm5nLmMgICAgICB8ICAgMTUgKy0tLS0tLS0tLS0tLS0tCiA3 NCBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25zKCspLCA5MDkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9od21vbi9hZDc0MTQuYyBiL2RyaXZlcnMvaHdtb24vYWQ3NDE0LmMK aW5kZXggZWRiZGI2ZC4uMzY0NjUwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9hZDc0MTQu YworKysgYi9kcml2ZXJzL2h3bW9uL2FkNzQxNC5jCkBAIC0yNTYsMTcgKzI1Niw3IEBAIHN0YXRp YyBzdHJ1Y3QgaTJjX2RyaXZlciBhZDc0MTRfZHJpdmVyID0gewogCS5pZF90YWJsZSA9IGFkNzQx NF9pZCwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGFkNzQxNF9pbml0KHZvaWQpCi17Ci0JcmV0 dXJuIGkyY19hZGRfZHJpdmVyKCZhZDc0MTRfZHJpdmVyKTsKLX0KLW1vZHVsZV9pbml0KGFkNzQx NF9pbml0KTsKLQotc3RhdGljIHZvaWQgX19leGl0IGFkNzQxNF9leGl0KHZvaWQpCi17Ci0JaTJj X2RlbF9kcml2ZXIoJmFkNzQxNF9kcml2ZXIpOwotfQotbW9kdWxlX2V4aXQoYWQ3NDE0X2V4aXQp OworbW9kdWxlX2kyY19kcml2ZXIoYWQ3NDE0X2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIlN0 ZWZhbiBSb2VzZSA8c3IgYXQgZGVueC5kZT4sICIKIAkgICAgICAiRnJhbmsgRWRlbGhhZXVzZXIg PGZyYW5rLmVkZWxoYWV1c2VyIGF0IHNwYW5zaW9uLmNvbT4iKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvaHdtb24vYWQ3NDE4LmMgYi9kcml2ZXJzL2h3bW9uL2FkNzQxOC5jCmluZGV4IDQyNDYxZDEu LmE1MGE2YmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vYWQ3NDE4LmMKKysrIGIvZHJpdmVy cy9od21vbi9hZDc0MTguYwpAQCAtMjk1LDIwICsyOTUsOSBAQCBzdGF0aWMgaW50IGFkNzQxOF9y ZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCBfX2luaXQgYWQ3NDE4X2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIo JmFkNzQxOF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgYWQ3NDE4X2V4aXQodm9p ZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmYWQ3NDE4X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2Ry aXZlcihhZDc0MThfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiQWxlc3NhbmRybyBadW1tbyA8 YS56dW1tb0B0b3dlcnRlY2guaXQ+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkFENzQxNi8xNy8x OCBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9WRVJTSU9OKERSVl9W RVJTSU9OKTsKLQotbW9kdWxlX2luaXQoYWQ3NDE4X2luaXQpOwotbW9kdWxlX2V4aXQoYWQ3NDE4 X2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hZG0xMDIxLmMgYi9kcml2ZXJzL2h3 bW9uL2FkbTEwMjEuYwppbmRleCBlNmZjMDA2Li5lYzg0MzMxIDEwMDY0NAotLS0gYS9kcml2ZXJz L2h3bW9uL2FkbTEwMjEuYworKysgYi9kcml2ZXJzL2h3bW9uL2FkbTEwMjEuYwpAQCAtNDcxLDE1 ICs0NzEsNyBAQCBzdGF0aWMgc3RydWN0IGFkbTEwMjFfZGF0YSAqYWRtMTAyMV91cGRhdGVfZGV2 aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlyZXR1cm4gZGF0YTsKIH0KIAotc3RhdGljIGludCBf X2luaXQgc2Vuc29yc19hZG0xMDIxX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2 ZXIoJmFkbTEwMjFfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHNlbnNvcnNfYWRt MTAyMV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmFkbTEwMjFfZHJpdmVyKTsKLX0K K21vZHVsZV9pMmNfZHJpdmVyKGFkbTEwMjFfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiRnJv ZG8gTG9vaWphYXJkIDxmcm9kb2xAZGRzLm5sPiBhbmQgIgogCQkiUGhpbGlwIEVkZWxicm9jayA8 cGhpbEBuZXRyb2VkZ2UuY29tPiIpOwpAQCAtNDg4LDYgKzQ4MCwzIEBAIE1PRFVMRV9MSUNFTlNF KCJHUEwiKTsKIAogbW9kdWxlX3BhcmFtKHJlYWRfb25seSwgYm9vbCwgMCk7CiBNT0RVTEVfUEFS TV9ERVNDKHJlYWRfb25seSwgIkRvbid0IHNldCBhbnkgdmFsdWVzLCByZWFkIG9ubHkgbW9kZSIp OwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2FkbTEwMjFfaW5pdCkKLW1vZHVsZV9leGl0KHNlbnNv cnNfYWRtMTAyMV9leGl0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hZG0xMDI1LmMgYi9k cml2ZXJzL2h3bW9uL2FkbTEwMjUuYwppbmRleCAxNGQ4OTk3Li5lZmJjOWM5IDEwMDY0NAotLS0g YS9kcml2ZXJzL2h3bW9uL2FkbTEwMjUuYworKysgYi9kcml2ZXJzL2h3bW9uL2FkbTEwMjUuYwpA QCAtNjE4LDE5ICs2MTgsOCBAQCBzdGF0aWMgc3RydWN0IGFkbTEwMjVfZGF0YSAqYWRtMTAyNV91 cGRhdGVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlyZXR1cm4gZGF0YTsKIH0KIAotc3Rh dGljIGludCBfX2luaXQgc2Vuc29yc19hZG0xMDI1X2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJj X2FkZF9kcml2ZXIoJmFkbTEwMjVfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHNl bnNvcnNfYWRtMTAyNV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmFkbTEwMjVfZHJp dmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGFkbTEwMjVfZHJpdmVyKTsKIAogTU9EVUxFX0FV VEhPUigiSmVhbiBEZWx2YXJlIDxraGFsaUBsaW51eC1mci5vcmc+Iik7CiBNT0RVTEVfREVTQ1JJ UFRJT04oIkFETTEwMjUgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVs ZV9pbml0KHNlbnNvcnNfYWRtMTAyNV9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfYWRtMTAy NV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWRtMTAyNi5jIGIvZHJpdmVycy9o d21vbi9hZG0xMDI2LmMKaW5kZXggY2Q3NzNjZS4uMWY0ZjVkZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9od21vbi9hZG0xMDI2LmMKKysrIGIvZHJpdmVycy9od21vbi9hZG0xMDI2LmMKQEAgLTE4ODEs MjAgKzE4ODEsOSBAQCBzdGF0aWMgaW50IGFkbTEwMjZfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50 ICpjbGllbnQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IHNtX2FkbTEwMjZf aW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmYWRtMTAyNl9kcml2ZXIpOwot fQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc21fYWRtMTAyNl9leGl0KHZvaWQpCi17Ci0JaTJjX2Rl bF9kcml2ZXIoJmFkbTEwMjZfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGFkbTEwMjZf ZHJpdmVyKTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxFX0FVVEhPUigiUGhpbGlw IFBva29ybnkgPHBwb2tvcm55QHBlbmd1aW5jb21wdXRpbmcuY29tPiwgIgogCSAgICAgICJKdXN0 aW4gVGhpZXNzZW4gPGp0aGllc3NlbkBwZW5ndWluY29tcHV0aW5nLmNvbT4iKTsKIE1PRFVMRV9E RVNDUklQVElPTigiQURNMTAyNiBkcml2ZXIiKTsKLQotbW9kdWxlX2luaXQoc21fYWRtMTAyNl9p bml0KTsKLW1vZHVsZV9leGl0KHNtX2FkbTEwMjZfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2h3bW9uL2FkbTEwMjkuYyBiL2RyaXZlcnMvaHdtb24vYWRtMTAyOS5jCmluZGV4IGQ3ODljMzMu LmM2NTMxYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vYWRtMTAyOS5jCisrKyBiL2RyaXZl cnMvaHdtb24vYWRtMTAyOS5jCkBAIC00NTAsMjQgKzQ1MCw4IEBAIHN0YXRpYyBzdHJ1Y3QgYWRt MTAyOV9kYXRhICphZG0xMDI5X3VwZGF0ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJl dHVybiBkYXRhOwogfQogCi0vKgotCUNvbW1vbiBtb2R1bGUgc3R1ZmYKLSovCi1zdGF0aWMgaW50 IF9faW5pdCBzZW5zb3JzX2FkbTEwMjlfaW5pdCh2b2lkKQotewotCi0JcmV0dXJuIGkyY19hZGRf ZHJpdmVyKCZhZG0xMDI5X2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3Jz X2FkbTEwMjlfZXhpdCh2b2lkKQotewotCi0JaTJjX2RlbF9kcml2ZXIoJmFkbTEwMjlfZHJpdmVy KTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGFkbTEwMjlfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhP UigiQ29yZW50aW4gTEFCQkUgPGNvcmVudGluLmxhYmJlQGdlb21hdHlzLmZyPiIpOwogTU9EVUxF X0RFU0NSSVBUSU9OKCJhZG0xMDI5IGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIp OwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2FkbTEwMjlfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5z b3JzX2FkbTEwMjlfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2FkbTEwMzEuYyBi L2RyaXZlcnMvaHdtb24vYWRtMTAzMS5jCmluZGV4IDk3ZTJjZmIuLjcxYjVlYzMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvaHdtb24vYWRtMTAzMS5jCisrKyBiL2RyaXZlcnMvaHdtb24vYWRtMTAzMS5j CkBAIC0xMTMxLDE5ICsxMTMxLDggQEAgc3RhdGljIHN0cnVjdCBhZG0xMDMxX2RhdGEgKmFkbTEw MzFfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAK LXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfYWRtMTAzMV9pbml0KHZvaWQpCi17Ci0JcmV0dXJu IGkyY19hZGRfZHJpdmVyKCZhZG0xMDMxX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhp dCBzZW5zb3JzX2FkbTEwMzFfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZhZG0xMDMx X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihhZG0xMDMxX2RyaXZlcik7CiAKIE1PRFVM RV9BVVRIT1IoIkFsZXhhbmRyZSBkJ0FsdG9uIDxhbGV4QGFsZXhkYWx0b24ub3JnPiIpOwogTU9E VUxFX0RFU0NSSVBUSU9OKCJBRE0xMDMxL0FETTEwMzAgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5T RSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfYWRtMTAzMV9pbml0KTsKLW1vZHVsZV9l eGl0KHNlbnNvcnNfYWRtMTAzMV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWRt OTI0MC5jIGIvZHJpdmVycy9od21vbi9hZG05MjQwLmMKaW5kZXggMmRlNDUxMS4uMzQwYjg0MiAx MDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9hZG05MjQwLmMKKysrIGIvZHJpdmVycy9od21vbi9h ZG05MjQwLmMKQEAgLTgyMSwyMSArODIxLDkgQEAgc3RhdGljIHN0cnVjdCBhZG05MjQwX2RhdGEg KmFkbTkyNDBfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7 CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfYWRtOTI0MF9pbml0KHZvaWQpCi17Ci0J cmV0dXJuIGkyY19hZGRfZHJpdmVyKCZhZG05MjQwX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lk IF9fZXhpdCBzZW5zb3JzX2FkbTkyNDBfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZh ZG05MjQwX2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihhZG05MjQwX2RyaXZlcik7CiAK IE1PRFVMRV9BVVRIT1IoIk1pY2hpZWwgUm9vayA8bWljaGllbEBncmVuZGVscHJvamVjdC5ubD4s ICIKIAkJIkdyYW50IENvYWR5IDxnY29hZHkubGtAZ21haWwuY29tPiBhbmQgb3RoZXJzIik7CiBN T0RVTEVfREVTQ1JJUFRJT04oIkFETTkyNDAvRFMxNzgwL0xNODEgZHJpdmVyIik7CiBNT0RVTEVf TElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfYWRtOTI0MF9pbml0KTsKLW1v ZHVsZV9leGl0KHNlbnNvcnNfYWRtOTI0MF9leGl0KTsKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9o d21vbi9hZHMxMDE1LmMgYi9kcml2ZXJzL2h3bW9uL2FkczEwMTUuYwppbmRleCBlZWRjYTNjLi42 MGJlMzU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2FkczEwMTUuYworKysgYi9kcml2ZXJz L2h3bW9uL2FkczEwMTUuYwpAQCAtMzA2LDE5ICszMDYsOCBAQCBzdGF0aWMgc3RydWN0IGkyY19k cml2ZXIgYWRzMTAxNV9kcml2ZXIgPSB7CiAJLmlkX3RhYmxlID0gYWRzMTAxNV9pZCwKIH07CiAK LXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfYWRzMTAxNV9pbml0KHZvaWQpCi17Ci0JcmV0dXJu IGkyY19hZGRfZHJpdmVyKCZhZHMxMDE1X2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhp dCBzZW5zb3JzX2FkczEwMTVfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZhZHMxMDE1 X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihhZHMxMDE1X2RyaXZlcik7CiAKIE1PRFVM RV9BVVRIT1IoIkRpcmsgRWliYWNoIDxlaWJhY2hAZ2RzeXMuZGU+Iik7CiBNT0RVTEVfREVTQ1JJ UFRJT04oIkFEUzEwMTUgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVs ZV9pbml0KHNlbnNvcnNfYWRzMTAxNV9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfYWRzMTAx NV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWR0NzQxMS5jIGIvZHJpdmVycy9o d21vbi9hZHQ3NDExLmMKaW5kZXggZmZlNjRmOC4uNzFiYWNjNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9od21vbi9hZHQ3NDExLmMKKysrIGIvZHJpdmVycy9od21vbi9hZHQ3NDExLmMKQEAgLTM0OCwx NyArMzQ4LDcgQEAgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGFkdDc0MTFfZHJpdmVyID0gewog CS5jbGFzcyA9IEkyQ19DTEFTU19IV01PTiwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHNlbnNv cnNfYWR0NzQxMV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZhZHQ3NDEx X2RyaXZlcik7Ci19Ci1tb2R1bGVfaW5pdChzZW5zb3JzX2FkdDc0MTFfaW5pdCkKLQotc3RhdGlj IHZvaWQgX19leGl0IHNlbnNvcnNfYWR0NzQxMV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2 ZXIoJmFkdDc0MTFfZHJpdmVyKTsKLX0KLW1vZHVsZV9leGl0KHNlbnNvcnNfYWR0NzQxMV9leGl0 KQorbW9kdWxlX2kyY19kcml2ZXIoYWR0NzQxMV9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJT YXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+IGFuZCAiCiAJIldvbGZyYW0gU2Fu ZyA8dy5zYW5nQHBlbmd1dHJvbml4LmRlPiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9h ZHQ3NDYyLmMgYi9kcml2ZXJzL2h3bW9uL2FkdDc0NjIuYwppbmRleCAzZGYzMzFhLi5lNGIxY2M5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2FkdDc0NjIuYworKysgYi9kcml2ZXJzL2h3bW9u L2FkdDc0NjIuYwpAQCAtMTk3NCwxOSArMTk3NCw4IEBAIHN0YXRpYyBpbnQgYWR0NzQ2Ml9yZW1v dmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlu dCBfX2luaXQgYWR0NzQ2Ml9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZh ZHQ3NDYyX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBhZHQ3NDYyX2V4aXQodm9p ZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmYWR0NzQ2Ml9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19k cml2ZXIoYWR0NzQ2Ml9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJEYXJyaWNrIEouIFdvbmcg PGRqd29uZ0B1cy5pYm0uY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJBRFQ3NDYyIGRyaXZl ciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChhZHQ3NDYyX2luaXQp OwotbW9kdWxlX2V4aXQoYWR0NzQ2Ml9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24v YWR0NzQ3MC5jIGIvZHJpdmVycy9od21vbi9hZHQ3NDcwLmMKaW5kZXggYjIzZWZkOS4uNTRlYzg5 MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9hZHQ3NDcwLmMKKysrIGIvZHJpdmVycy9od21v bi9hZHQ3NDcwLmMKQEAgLTEzMTcsMTkgKzEzMTcsOCBAQCBzdGF0aWMgaW50IGFkdDc0NzBfcmVt b3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgX19pbml0IGFkdDc0NzBfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigm YWR0NzQ3MF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgYWR0NzQ3MF9leGl0KHZv aWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmFkdDc0NzBfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNf ZHJpdmVyKGFkdDc0NzBfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiRGFycmljayBKLiBXb25n IDxkandvbmdAdXMuaWJtLmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiQURUNzQ3MCBkcml2 ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQoYWR0NzQ3MF9pbml0 KTsKLW1vZHVsZV9leGl0KGFkdDc0NzBfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9u L2FkdDc0NzUuYyBiL2RyaXZlcnMvaHdtb24vYWR0NzQ3NS5jCmluZGV4IDcxZTlhYzQuLjUyMmNi NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vYWR0NzQ3NS5jCisrKyBiL2RyaXZlcnMvaHdt b24vYWR0NzQ3NS5jCkBAIC0xNjAwLDE5ICsxNjAwLDggQEAgc3RhdGljIHN0cnVjdCBhZHQ3NDc1 X2RhdGEgKmFkdDc0NzVfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJu IGRhdGE7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfYWR0NzQ3NV9pbml0KHZvaWQp Ci17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZhZHQ3NDc1X2RyaXZlcik7Ci19Ci0KLXN0YXRp YyB2b2lkIF9fZXhpdCBzZW5zb3JzX2FkdDc0NzVfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJp dmVyKCZhZHQ3NDc1X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihhZHQ3NDc1X2RyaXZl cik7CiAKIE1PRFVMRV9BVVRIT1IoIkFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYyIpOwogTU9E VUxFX0RFU0NSSVBUSU9OKCJhZHQ3NDc1IGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIp OwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2FkdDc0NzVfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5z b3JzX2FkdDc0NzVfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2FtYzY4MjEuYyBi L2RyaXZlcnMvaHdtb24vYW1jNjgyMS5jCmluZGV4IDRhNGJmZWYuLjUyOTg4NTUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvaHdtb24vYW1jNjgyMS5jCisrKyBiL2RyaXZlcnMvaHdtb24vYW1jNjgyMS5j CkBAIC0xMDk1LDIwICsxMDk1LDcgQEAgc3RhdGljIHN0cnVjdCBhbWM2ODIxX2RhdGEgKmFtYzY4 MjFfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAK LQotc3RhdGljIGludCBfX2luaXQgYW1jNjgyMV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19h ZGRfZHJpdmVyKCZhbWM2ODIxX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBhbWM2 ODIxX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmYW1jNjgyMV9kcml2ZXIpOwotfQot Ci1tb2R1bGVfaW5pdChhbWM2ODIxX2luaXQpOwotbW9kdWxlX2V4aXQoYW1jNjgyMV9leGl0KTsK LQorbW9kdWxlX2kyY19kcml2ZXIoYW1jNjgyMV9kcml2ZXIpOwogCiBNT0RVTEVfTElDRU5TRSgi R1BMIik7CiBNT0RVTEVfQVVUSE9SKCJULiBNZXJ0ZWxqIDx0b21hei5tZXJ0ZWxqQGd1ZXN0LmFy bmVzLnNpPiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hc2IxMDAuYyBiL2RyaXZlcnMv aHdtb24vYXNiMTAwLmMKaW5kZXggYTVmMTY0Mi4uNTczZmZmNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9od21vbi9hc2IxMDAuYworKysgYi9kcml2ZXJzL2h3bW9uL2FzYjEwMC5jCkBAIC0xMDAyLDE5 ICsxMDAyLDggQEAgc3RhdGljIHN0cnVjdCBhc2IxMDBfZGF0YSAqYXNiMTAwX3VwZGF0ZV9kZXZp Y2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkYXRhOwogfQogCi1zdGF0aWMgaW50IF9f aW5pdCBhc2IxMDBfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmYXNiMTAw X2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBhc2IxMDBfZXhpdCh2b2lkKQotewot CWkyY19kZWxfZHJpdmVyKCZhc2IxMDBfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGFz YjEwMF9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJNYXJrIE0uIEhvZmZtYW4gPG1ob2ZmbWFu QGxpZ2h0bGluay5jb20+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkFTQjEwMCBCYWNoIGRyaXZl ciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChhc2IxMDBfaW5pdCk7 Ci1tb2R1bGVfZXhpdChhc2IxMDBfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2F0 eHAxLmMgYi9kcml2ZXJzL2h3bW9uL2F0eHAxLmMKaW5kZXggZDRhNTg5Yi4uNWE2NzFjYSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9od21vbi9hdHhwMS5jCisrKyBiL2RyaXZlcnMvaHdtb24vYXR4cDEu YwpAQCAtMzkwLDE1ICszOTAsNCBAQCBzdGF0aWMgaW50IGF0eHAxX3JlbW92ZShzdHJ1Y3QgaTJj X2NsaWVudCAqY2xpZW50KQogCXJldHVybiAwOwogfTsKIAotc3RhdGljIGludCBfX2luaXQgYXR4 cDFfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmYXR4cDFfZHJpdmVyKTsK LX07Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBhdHhwMV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9k cml2ZXIoJmF0eHAxX2RyaXZlcik7Ci19OwotCi1tb2R1bGVfaW5pdChhdHhwMV9pbml0KTsKLW1v ZHVsZV9leGl0KGF0eHAxX2V4aXQpOworbW9kdWxlX2kyY19kcml2ZXIoYXR4cDFfZHJpdmVyKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vZHMxNjIxLmMgYi9kcml2ZXJzL2h3bW9uL2RzMTYy MS5jCmluZGV4IGUyM2E4YWIuLjVkYzU0ODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vZHMx NjIxLmMKKysrIGIvZHJpdmVycy9od21vbi9kczE2MjEuYwpAQCAtMzExLDIwICszMTEsOCBAQCBz dGF0aWMgc3RydWN0IGkyY19kcml2ZXIgZHMxNjIxX2RyaXZlciA9IHsKIAkuYWRkcmVzc19saXN0 CT0gbm9ybWFsX2kyYywKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGRzMTYyMV9pbml0KHZvaWQp Ci17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZkczE2MjFfZHJpdmVyKTsKLX0KLQotc3RhdGlj IHZvaWQgX19leGl0IGRzMTYyMV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmRzMTYy MV9kcml2ZXIpOwotfQotCittb2R1bGVfaTJjX2RyaXZlcihkczE2MjFfZHJpdmVyKTsKIAogTU9E VUxFX0FVVEhPUigiQ2hyaXN0aWFuIFcuIFp1Y2tzY2h3ZXJkdCA8emFueUB0cmlxLm5ldD4iKTsK IE1PRFVMRV9ERVNDUklQVElPTigiRFMxNjIxIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQ TCIpOwotCi1tb2R1bGVfaW5pdChkczE2MjFfaW5pdCk7Ci1tb2R1bGVfZXhpdChkczE2MjFfZXhp dCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2RzNjIwLmMgYi9kcml2ZXJzL2h3bW9uL2Rz NjIwLmMKaW5kZXggMzAwYzNkNC4uNTA2NjNlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9k czYyMC5jCisrKyBiL2RyaXZlcnMvaHdtb24vZHM2MjAuYwpAQCAtMjk3LDE5ICsyOTcsOCBAQCBz dGF0aWMgc3RydWN0IGkyY19kcml2ZXIgZHM2MjBfZHJpdmVyID0gewogCS5pZF90YWJsZSA9IGRz NjIwX2lkLAogfTsKIAotc3RhdGljIGludCBfX2luaXQgZHM2MjBfaW5pdCh2b2lkKQotewotCXJl dHVybiBpMmNfYWRkX2RyaXZlcigmZHM2MjBfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19l eGl0IGRzNjIwX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmZHM2MjBfZHJpdmVyKTsK LX0KK21vZHVsZV9pMmNfZHJpdmVyKGRzNjIwX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIlJv bGFuZCBTdGlnZ2UgPHN0aWdnZUBhbnRjb20uZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkRT NjIwIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChkczYy MF9pbml0KTsKLW1vZHVsZV9leGl0KGRzNjIwX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9o d21vbi9lbWMxNDAzLmMgYi9kcml2ZXJzL2h3bW9uL2VtYzE0MDMuYwppbmRleCAyNzBmZmFiLi45 OWFjMTQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2VtYzE0MDMuYworKysgYi9kcml2ZXJz L2h3bW9uL2VtYzE0MDMuYwpAQCAtMzY2LDE4ICszNjYsNyBAQCBzdGF0aWMgc3RydWN0IGkyY19k cml2ZXIgc2Vuc29yX2VtYzE0MDMgPSB7CiAJLmFkZHJlc3NfbGlzdCA9IGVtYzE0MDNfYWRkcmVz c19saXN0LAogfTsKIAotc3RhdGljIGludCBfX2luaXQgc2Vuc29yX2VtYzE0MDNfaW5pdCh2b2lk KQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmc2Vuc29yX2VtYzE0MDMpOwotfQotCi1zdGF0 aWMgdm9pZCAgX19leGl0IHNlbnNvcl9lbWMxNDAzX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2Ry aXZlcigmc2Vuc29yX2VtYzE0MDMpOwotfQotCi1tb2R1bGVfaW5pdChzZW5zb3JfZW1jMTQwM19p bml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcl9lbWMxNDAzX2V4aXQpOworbW9kdWxlX2kyY19kcml2 ZXIoc2Vuc29yX2VtYzE0MDMpOwogCiBNT0RVTEVfQVVUSE9SKCJLYWxoYW4gVHJpc2FsIDxrYWxo YW4udHJpc2FsQGludGVsLmNvbSIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJlbWMxNDAzIFRoZXJt YWwgRHJpdmVyIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2VtYzIxMDMuYyBiL2RyaXZl cnMvaHdtb24vZW1jMjEwMy5jCmluZGV4IDg2NTA2MzkuLjBmNTEzODIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvaHdtb24vZW1jMjEwMy5jCisrKyBiL2RyaXZlcnMvaHdtb24vZW1jMjEwMy5jCkBAIC03 MjIsMTkgKzcyMiw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBlbWMyMTAzX2RyaXZlciA9 IHsKIAkuYWRkcmVzc19saXN0CT0gbm9ybWFsX2kyYywKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0 IHNlbnNvcnNfZW1jMjEwM19pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZl bWMyMTAzX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX2VtYzIxMDNf ZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZlbWMyMTAzX2RyaXZlcik7Ci19Cittb2R1 bGVfaTJjX2RyaXZlcihlbWMyMTAzX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIlN0ZXZlIEds ZW5kaW5uaW5nIDxzdGV2ZS5nbGVuZGlubmluZ0BzbXNjLmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQ VElPTigiU01TQyBFTUMyMTAzIGh3bW9uIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIp OwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2VtYzIxMDNfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5z b3JzX2VtYzIxMDNfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2VtYzZ3MjAxLmMg Yi9kcml2ZXJzL2h3bW9uL2VtYzZ3MjAxLmMKaW5kZXggNmViYjliNy4uODQwZjUxMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9od21vbi9lbWM2dzIwMS5jCisrKyBiL2RyaXZlcnMvaHdtb24vZW1jNncy MDEuYwpAQCAtNTUyLDE3ICs1NTIsNyBAQCBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgZW1jNncy MDFfZHJpdmVyID0gewogCS5hZGRyZXNzX2xpc3QJPSBub3JtYWxfaTJjLAogfTsKIAotc3RhdGlj IGludCBfX2luaXQgc2Vuc29yc19lbWM2dzIwMV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19h ZGRfZHJpdmVyKCZlbWM2dzIwMV9kcml2ZXIpOwotfQotbW9kdWxlX2luaXQoc2Vuc29yc19lbWM2 dzIwMV9pbml0KTsKLQotc3RhdGljIHZvaWQgX19leGl0IHNlbnNvcnNfZW1jNncyMDFfZXhpdCh2 b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZlbWM2dzIwMV9kcml2ZXIpOwotfQotbW9kdWxlX2V4 aXQoc2Vuc29yc19lbWM2dzIwMV9leGl0KTsKK21vZHVsZV9pMmNfZHJpdmVyKGVtYzZ3MjAxX2Ry aXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3Jn PiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJTTVNDIEVNQzZXMjAxIGhhcmR3YXJlIG1vbml0b3Jp bmcgZHJpdmVyIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2Y3NTM3NXMuYyBiL2RyaXZl cnMvaHdtb24vZjc1Mzc1cy5jCmluZGV4IGVlZGY1NzQuLjM5OGRiYzggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvaHdtb24vZjc1Mzc1cy5jCisrKyBiL2RyaXZlcnMvaHdtb24vZjc1Mzc1cy5jCkBAIC04 NTgsMTkgKzg1OCw4IEBAIHN0YXRpYyBpbnQgZjc1Mzc1X2RldGVjdChzdHJ1Y3QgaTJjX2NsaWVu dCAqY2xpZW50LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3JzX2Y3 NTM3NV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZmNzUzNzVfZHJpdmVy KTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHNlbnNvcnNfZjc1Mzc1X2V4aXQodm9pZCkKLXsK LQlpMmNfZGVsX2RyaXZlcigmZjc1Mzc1X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihm NzUzNzVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiUmlrdSBWb2lwaW8iKTsKIE1PRFVMRV9M SUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiRjc1MzczL0Y3NTM3NS9GNzUzODcg aGFyZHdhcmUgbW9uaXRvcmluZyBkcml2ZXIiKTsKLQotbW9kdWxlX2luaXQoc2Vuc29yc19mNzUz NzVfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5zb3JzX2Y3NTM3NV9leGl0KTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvaHdtb24vZnNjaG1kLmMgYi9kcml2ZXJzL2h3bW9uL2ZzY2htZC5jCmluZGV4IDA2 Y2JmNzcuLjM1ZGRmNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vZnNjaG1kLmMKKysrIGIv ZHJpdmVycy9od21vbi9mc2NobWQuYwpAQCAtMTM0MSwyMCArMTM0MSw5IEBAIHN0YXRpYyBzdHJ1 Y3QgZnNjaG1kX2RhdGEgKmZzY2htZF91cGRhdGVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikK IAlyZXR1cm4gZGF0YTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgZnNjaG1kX2luaXQodm9pZCkK LXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmZzY2htZF9kcml2ZXIpOwotfQotCi1zdGF0aWMg dm9pZCBfX2V4aXQgZnNjaG1kX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmZnNjaG1k X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihmc2NobWRfZHJpdmVyKTsKIAogTU9EVUxF X0FVVEhPUigiSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4iKTsKIE1PRFVMRV9E RVNDUklQVElPTigiRlNDIFBvc2VpZG9uLCBIZXJtZXMsIFNjeWxsYSwgSGVyYWNsZXMsIEhlaW1k YWxsLCBIYWRlcyAiCiAJCQkiYW5kIFN5bGV1cyBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJH UEwiKTsKLQotbW9kdWxlX2luaXQoZnNjaG1kX2luaXQpOwotbW9kdWxlX2V4aXQoZnNjaG1kX2V4 aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9nNzYwYS5jIGIvZHJpdmVycy9od21vbi9n NzYwYS5jCmluZGV4IDgxYjZlMzUuLjA1MmUzMDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24v Zzc2MGEuYworKysgYi9kcml2ZXJzL2h3bW9uL2c3NjBhLmMKQEAgLTI1MCwyMSArMjUwLDggQEAg c3RhdGljIGludCBnNzYwYV9yZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKIAlyZXR1 cm4gMDsKIH0KIAotLyogbW9kdWxlIG1hbmFnZW1lbnQgKi8KLQotc3RhdGljIGludCBfX2luaXQg Zzc2MGFfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmZzc2MGFfZHJpdmVy KTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGc3NjBhX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVs X2RyaXZlcigmZzc2MGFfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGc3NjBhX2RyaXZl cik7CiAKIE1PRFVMRV9BVVRIT1IoIkhlcmJlcnQgVmFsZXJpbyBSaWVkZWwgPGh2ckBnbnUub3Jn PiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJHTVQgRzc2MEEgZHJpdmVyIik7CiBNT0RVTEVfTElD RU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KGc3NjBhX2luaXQpOwotbW9kdWxlX2V4aXQoZzc2 MGFfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2dsNTE4c20uYyBiL2RyaXZlcnMv aHdtb24vZ2w1MThzbS5jCmluZGV4IDhkMGY3MWQuLmFlMTkzZjAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvaHdtb24vZ2w1MThzbS5jCisrKyBiL2RyaXZlcnMvaHdtb24vZ2w1MThzbS5jCkBAIC03MTAs MjEgKzcxMCwxMCBAQCBzdGF0aWMgc3RydWN0IGdsNTE4X2RhdGEgKmdsNTE4X3VwZGF0ZV9kZXZp Y2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkYXRhOwogfQogCi1zdGF0aWMgaW50IF9f aW5pdCBzZW5zb3JzX2dsNTE4c21faW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZl cigmZ2w1MThfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHNlbnNvcnNfZ2w1MThz bV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmdsNTE4X2RyaXZlcik7Ci19Cittb2R1 bGVfaTJjX2RyaXZlcihnbDUxOF9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJGcm9kbyBMb29p amFhcmQgPGZyb2RvbEBkZHMubmw+LCAiCiAJIkt5b3N0aSBNYWxra2kgPGttYWxra2lAY2MuaHV0 LmZpPiBhbmQgIgogCSJIb25nLUd1bm4gQ2hldyA8aGdsaW51eEBndW5uZXQub3JnPiIpOwogTU9E VUxFX0RFU0NSSVBUSU9OKCJHTDUxOFNNIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIp OwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2dsNTE4c21faW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5z b3JzX2dsNTE4c21fZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2dsNTIwc20uYyBi L2RyaXZlcnMvaHdtb24vZ2w1MjBzbS5jCmluZGV4IDE5MDkwOTcuLjUyZGFkYjIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvaHdtb24vZ2w1MjBzbS5jCisrKyBiL2RyaXZlcnMvaHdtb24vZ2w1MjBzbS5j CkBAIC05NzksMjMgKzk3OSwxMCBAQCBzdGF0aWMgc3RydWN0IGdsNTIwX2RhdGEgKmdsNTIwX3Vw ZGF0ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkYXRhOwogfQogCi0KLXN0 YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfZ2w1MjBzbV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGky Y19hZGRfZHJpdmVyKCZnbDUyMF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc2Vu c29yc19nbDUyMHNtX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmZ2w1MjBfZHJpdmVy KTsKLX0KLQorbW9kdWxlX2kyY19kcml2ZXIoZ2w1MjBfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhP UigiRnJvZG8gTG9vaWphYXJkIDxmcm9kb2xAZGRzLm5sPiwgIgogCSJLecO2c3RpIE3DpGxra2kg PGttYWxra2lAY2MuaHV0LmZpPiwgIgogCSJNYWFydGVuIERlcHJleiA8bWFhcnRlbmRlcHJlekB1 c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkdMNTIwU00gZHJp dmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfZ2w1 MjBzbV9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfZ2w1MjBzbV9leGl0KTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvaHdtb24vamM0Mi5jIGIvZHJpdmVycy9od21vbi9qYzQyLmMKaW5kZXggMjhj MDllZS4uMzA4MzQ2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9qYzQyLmMKKysrIGIvZHJp dmVycy9od21vbi9qYzQyLmMKQEAgLTU4OCwxOSArNTg4LDggQEAgYWJvcnQ6CiAJcmV0dXJuIHJl dDsKIH0KIAotc3RhdGljIGludCBfX2luaXQgc2Vuc29yc19qYzQyX2luaXQodm9pZCkKLXsKLQly ZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmpjNDJfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19l eGl0IHNlbnNvcnNfamM0Ml9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmpjNDJfZHJp dmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGpjNDJfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhP UigiR3VlbnRlciBSb2VjayA8Z3VlbnRlci5yb2Vja0Blcmljc3Nvbi5jb20+Iik7CiBNT0RVTEVf REVTQ1JJUFRJT04oIkpDNDIgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1v ZHVsZV9pbml0KHNlbnNvcnNfamM0Ml9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfamM0Ml9l eGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbGluZWFnZS1wZW0uYyBiL2RyaXZlcnMv aHdtb24vbGluZWFnZS1wZW0uYwppbmRleCA1OGVkZWQyLi41YjhjOWFlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2h3bW9uL2xpbmVhZ2UtcGVtLmMKKysrIGIvZHJpdmVycy9od21vbi9saW5lYWdlLXBl bS5jCkBAIC01NjgsMTkgKzU2OCw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBwZW1fZHJp dmVyID0gewogCS5pZF90YWJsZSA9IHBlbV9pZCwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHBl bV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZwZW1fZHJpdmVyKTsKLX0K LQotc3RhdGljIHZvaWQgX19leGl0IHBlbV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIo JnBlbV9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIocGVtX2RyaXZlcik7CiAKIE1PRFVM RV9BVVRIT1IoIkd1ZW50ZXIgUm9lY2sgPGd1ZW50ZXIucm9lY2tAZXJpY3Nzb24uY29tPiIpOwog TU9EVUxFX0RFU0NSSVBUSU9OKCJMaW5lYWdlIENQTCBQRU0gaGFyZHdhcmUgbW9uaXRvcmluZyBk cml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQocGVtX2luaXQp OwotbW9kdWxlX2V4aXQocGVtX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9sbTYz LmMgYi9kcml2ZXJzL2h3bW9uL2xtNjMuYwppbmRleCA1ZTY0NTdhLi4xNWMwNWNjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2h3bW9uL2xtNjMuYworKysgYi9kcml2ZXJzL2h3bW9uL2xtNjMuYwpAQCAt MTExOSwxOSArMTExOSw4IEBAIHN0YXRpYyBzdHJ1Y3QgbG02M19kYXRhICpsbTYzX3VwZGF0ZV9k ZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkYXRhOwogfQogCi1zdGF0aWMgaW50 IF9faW5pdCBzZW5zb3JzX2xtNjNfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZl cigmbG02M19kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc2Vuc29yc19sbTYzX2V4 aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbG02M19kcml2ZXIpOwotfQorbW9kdWxlX2ky Y19kcml2ZXIobG02M19kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJKZWFuIERlbHZhcmUgPGto YWxpQGxpbnV4LWZyLm9yZz4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiTE02MyBkcml2ZXIiKTsK IE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQoc2Vuc29yc19sbTYzX2luaXQp OwotbW9kdWxlX2V4aXQoc2Vuc29yc19sbTYzX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9o d21vbi9sbTczLmMgYi9kcml2ZXJzL2h3bW9uL2xtNzMuYwppbmRleCA5YzgwOTNjLi44ZmEyNjMy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2xtNzMuYworKysgYi9kcml2ZXJzL2h3bW9uL2xt NzMuYwpAQCAtMTk0LDIxICsxOTQsOCBAQCBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgbG03M19k cml2ZXIgPSB7CiAJLmFkZHJlc3NfbGlzdAk9IG5vcm1hbF9pMmMsCiB9OwogCi0vKiBtb2R1bGUg Z2x1ZSAqLwotCi1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3JzX2xtNzNfaW5pdCh2b2lkKQotewot CXJldHVybiBpMmNfYWRkX2RyaXZlcigmbG03M19kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBf X2V4aXQgc2Vuc29yc19sbTczX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbG03M19k cml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIobG03M19kcml2ZXIpOwogCiBNT0RVTEVfQVVU SE9SKCJHdWlsbGF1bWUgTGlnbmV1bCA8Z3VpbGxhdW1lLmxpZ25ldWxAZ21haWwuY29tPiIpOwog TU9EVUxFX0RFU0NSSVBUSU9OKCJMTTczIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIp OwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2xtNzNfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5zb3Jz X2xtNzNfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2xtNzUuYyBiL2RyaXZlcnMv aHdtb24vbG03NS5jCmluZGV4IGIzMzExYjEuLmE4M2YyMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv aHdtb24vbG03NS5jCisrKyBiL2RyaXZlcnMvaHdtb24vbG03NS5jCkBAIC00MzgsMjMgKzQzOCw4 IEBAIGFib3J0OgogCXJldHVybiByZXQ7CiB9CiAKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKiBt b2R1bGUgZ2x1ZSAqLwotCi1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3JzX2xtNzVfaW5pdCh2b2lk KQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmbG03NV9kcml2ZXIpOwotfQotCi1zdGF0aWMg dm9pZCBfX2V4aXQgc2Vuc29yc19sbTc1X2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigm bG03NV9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIobG03NV9kcml2ZXIpOwogCiBNT0RV TEVfQVVUSE9SKCJGcm9kbyBMb29pamFhcmQgPGZyb2RvbEBkZHMubmw+Iik7CiBNT0RVTEVfREVT Q1JJUFRJT04oIkxNNzUgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVs ZV9pbml0KHNlbnNvcnNfbG03NV9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfbG03NV9leGl0 KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbG03Ny5jIGIvZHJpdmVycy9od21vbi9sbTc3 LmMKaW5kZXggMDhmN2ZmZS4uZDhjMWYzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sbTc3 LmMKKysrIGIvZHJpdmVycy9od21vbi9sbTc3LmMKQEAgLTQ0MywxOSArNDQzLDggQEAgc3RhdGlj IHN0cnVjdCBsbTc3X2RhdGEgKmxtNzdfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYp CiAJcmV0dXJuIGRhdGE7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfbG03N19pbml0 KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZsbTc3X2RyaXZlcik7Ci19Ci0KLXN0 YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX2xtNzdfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJp dmVyKCZsbTc3X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihsbTc3X2RyaXZlcik7CiAK IE1PRFVMRV9BVVRIT1IoIkFuZHJhcyBCQUxJIDxkcmV3aWVAZnJlZW1haWwuaHU+Iik7CiBNT0RV TEVfREVTQ1JJUFRJT04oIkxNNzcgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0K LW1vZHVsZV9pbml0KHNlbnNvcnNfbG03N19pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfbG03 N19leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbG04MC5jIGIvZHJpdmVycy9od21v bi9sbTgwLmMKaW5kZXggZGM2ZGY0ZS4uNmEyYTc3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21v bi9sbTgwLmMKKysrIGIvZHJpdmVycy9od21vbi9sbTgwLmMKQEAgLTY5NywyMCArNjk3LDkgQEAg ZG9uZToKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3JzX2xtODBf aW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmbG04MF9kcml2ZXIpOwotfQot Ci1zdGF0aWMgdm9pZCBfX2V4aXQgc2Vuc29yc19sbTgwX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVs X2RyaXZlcigmbG04MF9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIobG04MF9kcml2ZXIp OwogCiBNT0RVTEVfQVVUSE9SKCJGcm9kbyBMb29pamFhcmQgPGZyb2RvbEBkZHMubmw+IGFuZCAi CiAJIlBoaWxpcCBFZGVsYnJvY2sgPHBoaWxAbmV0cm9lZGdlLmNvbT4iKTsKIE1PRFVMRV9ERVND UklQVElPTigiTE04MCBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxl X2luaXQoc2Vuc29yc19sbTgwX2luaXQpOwotbW9kdWxlX2V4aXQoc2Vuc29yc19sbTgwX2V4aXQp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9sbTgzLmMgYi9kcml2ZXJzL2h3bW9uL2xtODMu YwppbmRleCAxZmVkMjY1Li5jZDQ1YjlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2xtODMu YworKysgYi9kcml2ZXJzL2h3bW9uL2xtODMuYwpAQCAtNDMwLDE5ICs0MzAsOCBAQCBzdGF0aWMg c3RydWN0IGxtODNfZGF0YSAqbG04M191cGRhdGVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikK IAlyZXR1cm4gZGF0YTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgc2Vuc29yc19sbTgzX2luaXQo dm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmxtODNfZHJpdmVyKTsKLX0KLQotc3Rh dGljIHZvaWQgX19leGl0IHNlbnNvcnNfbG04M19leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2 ZXIoJmxtODNfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGxtODNfZHJpdmVyKTsKIAog TU9EVUxFX0FVVEhPUigiSmVhbiBEZWx2YXJlIDxraGFsaUBsaW51eC1mci5vcmc+Iik7CiBNT0RV TEVfREVTQ1JJUFRJT04oIkxNODMgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0K LW1vZHVsZV9pbml0KHNlbnNvcnNfbG04M19pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfbG04 M19leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbG04NS5jIGIvZHJpdmVycy9od21v bi9sbTg1LmMKaW5kZXggMjQwYjdmOS4uN2U0NmViYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21v bi9sbTg1LmMKKysrIGIvZHJpdmVycy9od21vbi9sbTg1LmMKQEAgLTE2OTUsMjIgKzE2OTUsMTAg QEAgc3RhdGljIHN0cnVjdCBsbTg1X2RhdGEgKmxtODVfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2 aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAKLQotc3RhdGljIGludCBfX2luaXQgc21fbG04 NV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZsbTg1X2RyaXZlcik7Ci19 Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzbV9sbTg1X2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2Ry aXZlcigmbG04NV9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIobG04NV9kcml2ZXIpOwog CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfQVVUSE9SKCJQaGlsaXAgUG9rb3JueSA8 cHBva29ybnlAcGVuZ3VpbmNvbXB1dGluZy5jb20+LCAiCiAJIk1hcmdpdCBTY2h1YmVydC1XaGls ZSA8bWFyZ2l0c3dAdC1vbmxpbmUuZGU+LCAiCiAJIkp1c3RpbiBUaGllc3NlbiA8anRoaWVzc2Vu QHBlbmd1aW5jb21wdXRpbmcuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJMTTg1LUIsIExN ODUtQyBkcml2ZXIiKTsKLQotbW9kdWxlX2luaXQoc21fbG04NV9pbml0KTsKLW1vZHVsZV9leGl0 KHNtX2xtODVfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2xtODcuYyBiL2RyaXZl cnMvaHdtb24vbG04Ny5jCmluZGV4IGViZjRlZmQuLjA5MGY1ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvaHdtb24vbG04Ny5jCisrKyBiL2RyaXZlcnMvaHdtb24vbG04Ny5jCkBAIC0xMDU0LDE5ICsx MDU0LDggQEAgc3RhdGljIHN0cnVjdCBsbTg3X2RhdGEgKmxtODdfdXBkYXRlX2RldmljZShzdHJ1 Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IHNl bnNvcnNfbG04N19pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZsbTg3X2Ry aXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX2xtODdfZXhpdCh2b2lkKQot ewotCWkyY19kZWxfZHJpdmVyKCZsbTg3X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihs bTg3X2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgt ZnIub3JnPiBhbmQgb3RoZXJzIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkxNODcgZHJpdmVyIik7 CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfbG04N19pbml0 KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfbG04N19leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv aHdtb24vbG05MC5jIGIvZHJpdmVycy9od21vbi9sbTkwLmMKaW5kZXggZDJkZDVmOS4uMjQ4ZjJi NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sbTkwLmMKKysrIGIvZHJpdmVycy9od21vbi9s bTkwLmMKQEAgLTE1MTQsMTkgKzE1MTQsOCBAQCBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgbG05 MF9kcml2ZXIgPSB7CiAJLmFkZHJlc3NfbGlzdAk9IG5vcm1hbF9pMmMsCiB9OwogCi1zdGF0aWMg aW50IF9faW5pdCBzZW5zb3JzX2xtOTBfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2Ry aXZlcigmbG05MF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc2Vuc29yc19sbTkw X2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbG05MF9kcml2ZXIpOwotfQorbW9kdWxl X2kyY19kcml2ZXIobG05MF9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJKZWFuIERlbHZhcmUg PGtoYWxpQGxpbnV4LWZyLm9yZz4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiTE05MC9BRE0xMDMy IGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChzZW5zb3Jz X2xtOTBfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5zb3JzX2xtOTBfZXhpdCk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2h3bW9uL2xtOTIuYyBiL2RyaXZlcnMvaHdtb24vbG05Mi5jCmluZGV4IDk1Y2Rh NDEuLjBmZTJmMzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbG05Mi5jCisrKyBiL2RyaXZl cnMvaHdtb24vbG05Mi5jCkBAIC00MzIsMTkgKzQzMiw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2Ry aXZlciBsbTkyX2RyaXZlciA9IHsKIAkuYWRkcmVzc19saXN0CT0gbm9ybWFsX2kyYywKIH07CiAK LXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfbG05Ml9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGky Y19hZGRfZHJpdmVyKCZsbTkyX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5z b3JzX2xtOTJfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZsbTkyX2RyaXZlcik7Ci19 Cittb2R1bGVfaTJjX2RyaXZlcihsbTkyX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkplYW4g RGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3JnPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJMTTky L01BWDY2MzUgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0 KHNlbnNvcnNfbG05Ml9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfbG05Ml9leGl0KTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbG05My5jIGIvZHJpdmVycy9od21vbi9sbTkzLmMKaW5k ZXggZDJmYzRhYy4uMjJhZTVmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sbTkzLmMKKysr IGIvZHJpdmVycy9od21vbi9sbTkzLmMKQEAgLTI3NjEsMjAgKzI3NjEsOSBAQCBzdGF0aWMgc3Ry dWN0IGkyY19kcml2ZXIgbG05M19kcml2ZXIgPSB7CiAJLmFkZHJlc3NfbGlzdAk9IG5vcm1hbF9p MmMsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBsbTkzX2luaXQodm9pZCkKLXsKLQlyZXR1cm4g aTJjX2FkZF9kcml2ZXIoJmxtOTNfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGxt OTNfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZsbTkzX2RyaXZlcik7Ci19Cittb2R1 bGVfaTJjX2RyaXZlcihsbTkzX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIk1hcmsgTS4gSG9m Zm1hbiA8bWhvZmZtYW5AbGlnaHRsaW5rLmNvbT4sICIKIAkJIkhhbnMgSi4gS29jaCA8aGprQGhh bnNqa29jaC5kZT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiTE05MyBkcml2ZXIiKTsKIE1PRFVM RV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQobG05M19pbml0KTsKLW1vZHVsZV9leGl0 KGxtOTNfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2xtOTUyNDEuYyBiL2RyaXZl cnMvaHdtb24vbG05NTI0MS5jCmluZGV4IDcwYmNhNjcuLmJkOGNkYjcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvaHdtb24vbG05NTI0MS5jCisrKyBiL2RyaXZlcnMvaHdtb24vbG05NTI0MS5jCkBAIC00 NTUsMTkgKzQ1NSw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBsbTk1MjQxX2RyaXZlciA9 IHsKIAkuYWRkcmVzc19saXN0CT0gbm9ybWFsX2kyYywKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0 IHNlbnNvcnNfbG05NTI0MV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZs bTk1MjQxX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX2xtOTUyNDFf ZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZsbTk1MjQxX2RyaXZlcik7Ci19Cittb2R1 bGVfaTJjX2RyaXZlcihsbTk1MjQxX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkRhdmlkZSBS aXp6byA8ZWxwYS5yaXp6b0BnbWFpbC5jb20+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkxNOTUy NDEgc2Vuc29yIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5p dChzZW5zb3JzX2xtOTUyNDFfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5zb3JzX2xtOTUyNDFfZXhp dCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2xtOTUyNDUuYyBiL2RyaXZlcnMvaHdtb24v bG05NTI0NS5jCmluZGV4IDVlNWZjMWIuLjlhNDZjMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdt b24vbG05NTI0NS5jCisrKyBiL2RyaXZlcnMvaHdtb24vbG05NTI0NS5jCkBAIC01MjUsMTkgKzUy NSw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBsbTk1MjQ1X2RyaXZlciA9IHsKIAkuYWRk cmVzc19saXN0CT0gbm9ybWFsX2kyYywKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNf bG05NTI0NV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZsbTk1MjQ1X2Ry aXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX2xtOTUyNDVfZXhpdCh2b2lk KQotewotCWkyY19kZWxfZHJpdmVyKCZsbTk1MjQ1X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2Ry aXZlcihsbTk1MjQ1X2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkFsZXhhbmRlciBTdGVpbiA8 YWxleGFuZGVyLnN0ZWluQHN5c3RlYy1lbGVjdHJvbmljLmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQ VElPTigiTE05NTI0NSBzZW5zb3IgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0K LW1vZHVsZV9pbml0KHNlbnNvcnNfbG05NTI0NV9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNf bG05NTI0NV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbHRjNDE1MS5jIGIvZHJp dmVycy9od21vbi9sdGM0MTUxLmMKaW5kZXggNGFjMDZiNy4uZjY0NmI0NSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9od21vbi9sdGM0MTUxLmMKKysrIGIvZHJpdmVycy9od21vbi9sdGM0MTUxLmMKQEAg LTIzOCwxOSArMjM4LDggQEAgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGx0YzQxNTFfZHJpdmVy ID0gewogCS5pZF90YWJsZQk9IGx0YzQxNTFfaWQsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBs dGM0MTUxX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmx0YzQxNTFfZHJp dmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGx0YzQxNTFfZXhpdCh2b2lkKQotewotCWky Y19kZWxfZHJpdmVyKCZsdGM0MTUxX2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihsdGM0 MTUxX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIlBlciBEYWxlbiA8cGVyLmRhbGVuQGFwcGVh cnR2LmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiTFRDNDE1MSBkcml2ZXIiKTsKIE1PRFVM RV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQobHRjNDE1MV9pbml0KTsKLW1vZHVsZV9l eGl0KGx0YzQxNTFfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2x0YzQyMTUuYyBi L2RyaXZlcnMvaHdtb24vbHRjNDIxNS5jCmluZGV4IGM3ZTZkOGUuLjA3ODliNjMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvaHdtb24vbHRjNDIxNS5jCisrKyBiL2RyaXZlcnMvaHdtb24vbHRjNDIxNS5j CkBAIC0zMDksMTkgKzMwOSw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBsdGM0MjE1X2Ry aXZlciA9IHsKIAkuaWRfdGFibGUJPSBsdGM0MjE1X2lkLAogfTsKIAotc3RhdGljIGludCBfX2lu aXQgbHRjNDIxNV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZsdGM0MjE1 X2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBsdGM0MjE1X2V4aXQodm9pZCkKLXsK LQlpMmNfZGVsX2RyaXZlcigmbHRjNDIxNV9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIo bHRjNDIxNV9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJJcmEgVy4gU255ZGVyIDxpd3NAb3Zy by5jYWx0ZWNoLmVkdT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiTFRDNDIxNSBkcml2ZXIiKTsK IE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQobHRjNDIxNV9pbml0KTsKLW1v ZHVsZV9leGl0KGx0YzQyMTVfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2x0YzQy NDUuYyBiL2RyaXZlcnMvaHdtb24vbHRjNDI0NS5jCmluZGV4IDY1OTMwODMuLjY5M2E2YmQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbHRjNDI0NS5jCisrKyBiL2RyaXZlcnMvaHdtb24vbHRj NDI0NS5jCkBAIC01NzgsMTkgKzU3OCw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBsdGM0 MjQ1X2RyaXZlciA9IHsKIAkuaWRfdGFibGUJPSBsdGM0MjQ1X2lkLAogfTsKIAotc3RhdGljIGlu dCBfX2luaXQgbHRjNDI0NV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZs dGM0MjQ1X2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBsdGM0MjQ1X2V4aXQodm9p ZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbHRjNDI0NV9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19k cml2ZXIobHRjNDI0NV9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJJcmEgVy4gU255ZGVyIDxp d3NAb3Zyby5jYWx0ZWNoLmVkdT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiTFRDNDI0NSBkcml2 ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQobHRjNDI0NV9pbml0 KTsKLW1vZHVsZV9leGl0KGx0YzQyNDVfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9u L2x0YzQyNjEuYyBiL2RyaXZlcnMvaHdtb24vbHRjNDI2MS5jCmluZGV4IGNlNTIzNTUuLmFiMWJm YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbHRjNDI2MS5jCisrKyBiL2RyaXZlcnMvaHdt b24vbHRjNDI2MS5jCkBAIC0yOTcsMTkgKzI5Nyw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZl ciBsdGM0MjYxX2RyaXZlciA9IHsKIAkuaWRfdGFibGUgPSBsdGM0MjYxX2lkLAogfTsKIAotc3Rh dGljIGludCBfX2luaXQgbHRjNDI2MV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJp dmVyKCZsdGM0MjYxX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBsdGM0MjYxX2V4 aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbHRjNDI2MV9kcml2ZXIpOwotfQorbW9kdWxl X2kyY19kcml2ZXIobHRjNDI2MV9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJHdWVudGVyIFJv ZWNrIDxndWVudGVyLnJvZWNrQGVyaWNzc29uLmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigi TFRDNDI2MSBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQo bHRjNDI2MV9pbml0KTsKLW1vZHVsZV9leGl0KGx0YzQyNjFfZXhpdCk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2h3bW9uL21heDE2MDY1LmMgYi9kcml2ZXJzL2h3bW9uL21heDE2MDY1LmMKaW5kZXgg ZjhlMzIzYS4uNTFlZGFlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9tYXgxNjA2NS5jCisr KyBiL2RyaXZlcnMvaHdtb24vbWF4MTYwNjUuYwpAQCAtNjk5LDE5ICs2OTksOCBAQCBzdGF0aWMg c3RydWN0IGkyY19kcml2ZXIgbWF4MTYwNjVfZHJpdmVyID0gewogCS5pZF90YWJsZSA9IG1heDE2 MDY1X2lkLAogfTsKIAotc3RhdGljIGludCBfX2luaXQgbWF4MTYwNjVfaW5pdCh2b2lkKQotewot CXJldHVybiBpMmNfYWRkX2RyaXZlcigmbWF4MTYwNjVfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZv aWQgX19leGl0IG1heDE2MDY1X2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbWF4MTYw NjVfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKG1heDE2MDY1X2RyaXZlcik7CiAKIE1P RFVMRV9BVVRIT1IoIkd1ZW50ZXIgUm9lY2sgPGd1ZW50ZXIucm9lY2tAZXJpY3Nzb24uY29tPiIp OwogTU9EVUxFX0RFU0NSSVBUSU9OKCJNQVgxNjA2NSBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNF KCJHUEwiKTsKLQotbW9kdWxlX2luaXQobWF4MTYwNjVfaW5pdCk7Ci1tb2R1bGVfZXhpdChtYXgx NjA2NV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbWF4MTYxOS5jIGIvZHJpdmVy cy9od21vbi9tYXgxNjE5LmMKaW5kZXggZjE5NTk5Zi4uZWNhYzA0YSAxMDA2NDQKLS0tIGEvZHJp dmVycy9od21vbi9tYXgxNjE5LmMKKysrIGIvZHJpdmVycy9od21vbi9tYXgxNjE5LmMKQEAgLTM2 MCwyMCArMzYwLDkgQEAgc3RhdGljIHN0cnVjdCBtYXgxNjE5X2RhdGEgKm1heDE2MTlfdXBkYXRl X2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAKLXN0YXRpYyBp bnQgX19pbml0IHNlbnNvcnNfbWF4MTYxOV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRf ZHJpdmVyKCZtYXgxNjE5X2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3Jz X21heDE2MTlfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZtYXgxNjE5X2RyaXZlcik7 Ci19Cittb2R1bGVfaTJjX2RyaXZlcihtYXgxNjE5X2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1Io IkFsZXhleSBGaXNoZXIgPGZpc2hvckBtYWlsLnJ1PiBhbmQgIgogCSJKZWFuIERlbHZhcmUgPGto YWxpQGxpbnV4LWZyLm9yZz4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiTUFYMTYxOSBzZW5zb3Ig ZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNf bWF4MTYxOV9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfbWF4MTYxOV9leGl0KTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvaHdtb24vbWF4MTY2OC5jIGIvZHJpdmVycy9od21vbi9tYXgxNjY4LmMK aW5kZXggODg5NTNmOS4uMTIyNDlmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9tYXgxNjY4 LmMKKysrIGIvZHJpdmVycy9od21vbi9tYXgxNjY4LmMKQEAgLTQ4NCwxOSArNDg0LDggQEAgc3Rh dGljIHN0cnVjdCBpMmNfZHJpdmVyIG1heDE2NjhfZHJpdmVyID0gewogCS5hZGRyZXNzX2xpc3Qg PSBtYXgxNjY4X2FkZHJfbGlzdCwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfbWF4 MTY2OF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZtYXgxNjY4X2RyaXZl cik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX21heDE2NjhfZXhpdCh2b2lkKQot ewotCWkyY19kZWxfZHJpdmVyKCZtYXgxNjY4X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZl cihtYXgxNjY4X2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkRhdmlkIEdlb3JnZSA8ZGF2aWQu Z2VvcmdlQHNrYS5hYy56YT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiTUFYMTY2OCByZW1vdGUg dGVtcGVyYXR1cmUgc2Vuc29yIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1t b2R1bGVfaW5pdChzZW5zb3JzX21heDE2NjhfaW5pdCkKLW1vZHVsZV9leGl0KHNlbnNvcnNfbWF4 MTY2OF9leGl0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9tYXg2NjM5LmMgYi9kcml2ZXJz L2h3bW9uL21heDY2MzkuYwppbmRleCBlMTBhMDkyLi5kMjAzZWIxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2h3bW9uL21heDY2MzkuYworKysgYi9kcml2ZXJzL2h3bW9uL21heDY2MzkuYwpAQCAtNjM1 LDE5ICs2MzUsOCBAQCBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgbWF4NjYzOV9kcml2ZXIgPSB7 CiAJLmFkZHJlc3NfbGlzdCA9IG5vcm1hbF9pMmMsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBt YXg2NjM5X2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJm1heDY2MzlfZHJp dmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IG1heDY2MzlfZXhpdCh2b2lkKQotewotCWky Y19kZWxfZHJpdmVyKCZtYXg2NjM5X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihtYXg2 NjM5X2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIlJvbGFuZCBTdGlnZ2UgPHN0aWdnZUBhbnRj b20uZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIm1heDY2MzkgZHJpdmVyIik7CiBNT0RVTEVf TElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KG1heDY2MzlfaW5pdCk7Ci1tb2R1bGVfZXhp dChtYXg2NjM5X2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9tYXg2NjQyLmMgYi9k cml2ZXJzL2h3bW9uL21heDY2NDIuYwppbmRleCAyMDllOGE1Li40Mjk4OTA5IDEwMDY0NAotLS0g YS9kcml2ZXJzL2h3bW9uL21heDY2NDIuYworKysgYi9kcml2ZXJzL2h3bW9uL21heDY2NDIuYwpA QCAtMzUyLDE5ICszNTIsOCBAQCBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgbWF4NjY0Ml9kcml2 ZXIgPSB7CiAJLmFkZHJlc3NfbGlzdAk9IG5vcm1hbF9pMmMsCiB9OwogCi1zdGF0aWMgaW50IF9f aW5pdCBtYXg2NjQyX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJm1heDY2 NDJfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IG1heDY2NDJfZXhpdCh2b2lkKQot ewotCWkyY19kZWxfZHJpdmVyKCZtYXg2NjQyX2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZl cihtYXg2NjQyX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIlBlciBEYWxlbiA8cGVyLmRhbGVu QGFwcGVhcnR2LmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiTUFYNjY0MiBzZW5zb3IgZHJp dmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KG1heDY2NDJfaW5p dCk7Ci1tb2R1bGVfZXhpdChtYXg2NjQyX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21v bi9tYXg2NjUwLmMgYi9kcml2ZXJzL2h3bW9uL21heDY2NTAuYwppbmRleCAxNTljZTAyLi4zMjk2 ZTZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL21heDY2NTAuYworKysgYi9kcml2ZXJzL2h3 bW9uL21heDY2NTAuYwpAQCAtNzI2LDE5ICs3MjYsOCBAQCBzdGF0aWMgc3RydWN0IG1heDY2NTBf ZGF0YSAqbWF4NjY1MF91cGRhdGVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlyZXR1cm4g ZGF0YTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgc2Vuc29yc19tYXg2NjUwX2luaXQodm9pZCkK LXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJm1heDY2NTBfZHJpdmVyKTsKLX0KLQotc3RhdGlj IHZvaWQgX19leGl0IHNlbnNvcnNfbWF4NjY1MF9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2 ZXIoJm1heDY2NTBfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKG1heDY2NTBfZHJpdmVy KTsKIAogTU9EVUxFX0FVVEhPUigiSGFucyBKLiBLb2NoIik7CiBNT0RVTEVfREVTQ1JJUFRJT04o Ik1BWDY2NTAgc2Vuc29yIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1 bGVfaW5pdChzZW5zb3JzX21heDY2NTBfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5zb3JzX21heDY2 NTBfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL3BtYnVzL2FkbTEyNzUuYyBiL2Ry aXZlcnMvaHdtb24vcG1idXMvYWRtMTI3NS5jCmluZGV4IDgxYzdjMmUuLmZlNTJjM2MgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvaHdtb24vcG1idXMvYWRtMTI3NS5jCisrKyBiL2RyaXZlcnMvaHdtb24v cG1idXMvYWRtMTI3NS5jCkBAIC0zMjYsMTggKzMyNiw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2Ry aXZlciBhZG0xMjc1X2RyaXZlciA9IHsKIAkuaWRfdGFibGUgPSBhZG0xMjc1X2lkLAogfTsKIAot c3RhdGljIGludCBfX2luaXQgYWRtMTI3NV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRf ZHJpdmVyKCZhZG0xMjc1X2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBhZG0xMjc1 X2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmYWRtMTI3NV9kcml2ZXIpOwotfQorbW9k dWxlX2kyY19kcml2ZXIoYWRtMTI3NV9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJHdWVudGVy IFJvZWNrIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlBNQnVzIGRyaXZlciBmb3IgQW5hbG9nIERl dmljZXMgQURNMTI3NSBhbmQgY29tcGF0aWJsZXMiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsK LW1vZHVsZV9pbml0KGFkbTEyNzVfaW5pdCk7Ci1tb2R1bGVfZXhpdChhZG0xMjc1X2V4aXQpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9wbWJ1cy9sbTI1MDY2LmMgYi9kcml2ZXJzL2h3bW9u L3BtYnVzL2xtMjUwNjYuYwppbmRleCA4NGEzN2YwLi44NmFjMTVhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2h3bW9uL3BtYnVzL2xtMjUwNjYuYworKysgYi9kcml2ZXJzL2h3bW9uL3BtYnVzL2xtMjUw NjYuYwpAQCAtMzM0LDE4ICszMzQsOCBAQCBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgbG0yNTA2 Nl9kcml2ZXIgPSB7CiAJLmlkX3RhYmxlID0gbG0yNTA2Nl9pZCwKIH07CiAKLXN0YXRpYyBpbnQg X19pbml0IGxtMjUwNjZfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmbG0y NTA2Nl9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgbG0yNTA2Nl9leGl0KHZvaWQp Ci17Ci0JaTJjX2RlbF9kcml2ZXIoJmxtMjUwNjZfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJp dmVyKGxtMjUwNjZfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiR3VlbnRlciBSb2VjayIpOwog TU9EVUxFX0RFU0NSSVBUSU9OKCJQTUJ1cyBkcml2ZXIgZm9yIExNMjUwNjYvTE01MDY0L0xNNTA2 NiIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotbW9kdWxlX2luaXQobG0yNTA2Nl9pbml0KTsK LW1vZHVsZV9leGl0KGxtMjUwNjZfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL3Bt YnVzL2x0YzI5NzguYyBiL2RyaXZlcnMvaHdtb24vcG1idXMvbHRjMjk3OC5jCmluZGV4IDgyMGZm ZjQuLmM5ZTRkZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vcG1idXMvbHRjMjk3OC5jCisr KyBiL2RyaXZlcnMvaHdtb24vcG1idXMvbHRjMjk3OC5jCkBAIC0zOTEsMTggKzM5MSw4IEBAIHN0 YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBsdGMyOTc4X2RyaXZlciA9IHsKIAkuaWRfdGFibGUgPSBs dGMyOTc4X2lkLAogfTsKIAotc3RhdGljIGludCBfX2luaXQgbHRjMjk3OF9pbml0KHZvaWQpCi17 Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZsdGMyOTc4X2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2 b2lkIF9fZXhpdCBsdGMyOTc4X2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbHRjMjk3 OF9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIobHRjMjk3OF9kcml2ZXIpOwogCiBNT0RV TEVfQVVUSE9SKCJHdWVudGVyIFJvZWNrIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlBNQnVzIGRy aXZlciBmb3IgTFRDMjk3OCBhbmQgTFRDMzg4MCIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwot bW9kdWxlX2luaXQobHRjMjk3OF9pbml0KTsKLW1vZHVsZV9leGl0KGx0YzI5NzhfZXhpdCk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL3BtYnVzL21heDE2MDY0LmMgYi9kcml2ZXJzL2h3bW9u L3BtYnVzL21heDE2MDY0LmMKaW5kZXggMWQ3N2NmNC4uNWNmZTIwZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9od21vbi9wbWJ1cy9tYXgxNjA2NC5jCisrKyBiL2RyaXZlcnMvaHdtb24vcG1idXMvbWF4 MTYwNjQuYwpAQCAtMTI2LDE4ICsxMjYsOCBAQCBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgbWF4 MTYwNjRfZHJpdmVyID0gewogCS5pZF90YWJsZSA9IG1heDE2MDY0X2lkLAogfTsKIAotc3RhdGlj IGludCBfX2luaXQgbWF4MTYwNjRfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZl cigmbWF4MTYwNjRfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IG1heDE2MDY0X2V4 aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbWF4MTYwNjRfZHJpdmVyKTsKLX0KK21vZHVs ZV9pMmNfZHJpdmVyKG1heDE2MDY0X2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkd1ZW50ZXIg Um9lY2siKTsKIE1PRFVMRV9ERVNDUklQVElPTigiUE1CdXMgZHJpdmVyIGZvciBNYXhpbSBNQVgx NjA2NCIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotbW9kdWxlX2luaXQobWF4MTYwNjRfaW5p dCk7Ci1tb2R1bGVfZXhpdChtYXgxNjA2NF9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdt b24vcG1idXMvbWF4MzQ0NDAuYyBiL2RyaXZlcnMvaHdtb24vcG1idXMvbWF4MzQ0NDAuYwppbmRl eCBiZWFmNWE4Li44OWFlMzAzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL3BtYnVzL21heDM0 NDQwLmMKKysrIGIvZHJpdmVycy9od21vbi9wbWJ1cy9tYXgzNDQ0MC5jCkBAIC0yNDgsMTggKzI0 OCw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBtYXgzNDQ0MF9kcml2ZXIgPSB7CiAJLmlk X3RhYmxlID0gbWF4MzQ0NDBfaWQsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBtYXgzNDQ0MF9p bml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZtYXgzNDQ0MF9kcml2ZXIpOwot fQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgbWF4MzQ0NDBfZXhpdCh2b2lkKQotewotCWkyY19kZWxf ZHJpdmVyKCZtYXgzNDQ0MF9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIobWF4MzQ0NDBf ZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiR3VlbnRlciBSb2VjayIpOwogTU9EVUxFX0RFU0NS SVBUSU9OKCJQTUJ1cyBkcml2ZXIgZm9yIE1heGltIE1BWDM0NDQwL01BWDM0NDQxIik7CiBNT0RV TEVfTElDRU5TRSgiR1BMIik7Ci1tb2R1bGVfaW5pdChtYXgzNDQ0MF9pbml0KTsKLW1vZHVsZV9l eGl0KG1heDM0NDQwX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9wbWJ1cy9tYXg4 Njg4LmMgYi9kcml2ZXJzL2h3bW9uL3BtYnVzL21heDg2ODguYwppbmRleCBlMmI3NGJiLi44MmM1 OThkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL3BtYnVzL21heDg2ODguYworKysgYi9kcml2 ZXJzL2h3bW9uL3BtYnVzL21heDg2ODguYwpAQCAtMjAzLDE4ICsyMDMsOCBAQCBzdGF0aWMgc3Ry dWN0IGkyY19kcml2ZXIgbWF4ODY4OF9kcml2ZXIgPSB7CiAJLmlkX3RhYmxlID0gbWF4ODY4OF9p ZCwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IG1heDg2ODhfaW5pdCh2b2lkKQotewotCXJldHVy biBpMmNfYWRkX2RyaXZlcigmbWF4ODY4OF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4 aXQgbWF4ODY4OF9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJm1heDg2ODhfZHJpdmVy KTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKG1heDg2ODhfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhP UigiR3VlbnRlciBSb2VjayIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJQTUJ1cyBkcml2ZXIgZm9y IE1heGltIE1BWDg2ODgiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLW1vZHVsZV9pbml0KG1h eDg2ODhfaW5pdCk7Ci1tb2R1bGVfZXhpdChtYXg4Njg4X2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9od21vbi9wbWJ1cy9wbWJ1cy5jIGIvZHJpdmVycy9od21vbi9wbWJ1cy9wbWJ1cy5jCmlu ZGV4IDE4YTM4NWUuLmRhNWZlMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vcG1idXMvcG1i dXMuYworKysgYi9kcml2ZXJzL2h3bW9uL3BtYnVzL3BtYnVzLmMKQEAgLTIyNCwxOCArMjI0LDgg QEAgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHBtYnVzX2RyaXZlciA9IHsKIAkuaWRfdGFibGUg PSBwbWJ1c19pZCwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHBtYnVzX2luaXQodm9pZCkKLXsK LQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJnBtYnVzX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lk IF9fZXhpdCBwbWJ1c19leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJnBtYnVzX2RyaXZl cik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihwbWJ1c19kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9S KCJHdWVudGVyIFJvZWNrIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkdlbmVyaWMgUE1CdXMgZHJp dmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci1tb2R1bGVfaW5pdChwbWJ1c19pbml0KTsK LW1vZHVsZV9leGl0KHBtYnVzX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9wbWJ1 cy91Y2Q5MDAwLmMgYi9kcml2ZXJzL2h3bW9uL3BtYnVzL3VjZDkwMDAuYwppbmRleCA0ZmY2Y2Yy Li43NTlhNTYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL3BtYnVzL3VjZDkwMDAuYworKysg Yi9kcml2ZXJzL2h3bW9uL3BtYnVzL3VjZDkwMDAuYwpAQCAtMjU4LDE4ICsyNTgsOCBAQCBzdGF0 aWMgc3RydWN0IGkyY19kcml2ZXIgdWNkOTAwMF9kcml2ZXIgPSB7CiAJLmlkX3RhYmxlID0gdWNk OTAwMF9pZCwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHVjZDkwMDBfaW5pdCh2b2lkKQotewot CXJldHVybiBpMmNfYWRkX2RyaXZlcigmdWNkOTAwMF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9p ZCBfX2V4aXQgdWNkOTAwMF9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJnVjZDkwMDBf ZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKHVjZDkwMDBfZHJpdmVyKTsKIAogTU9EVUxF X0FVVEhPUigiR3VlbnRlciBSb2VjayIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJQTUJ1cyBkcml2 ZXIgZm9yIFRJIFVDRDkweHh4Iik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci1tb2R1bGVfaW5p dCh1Y2Q5MDAwX2luaXQpOwotbW9kdWxlX2V4aXQodWNkOTAwMF9leGl0KTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvaHdtb24vcG1idXMvdWNkOTIwMC5jIGIvZHJpdmVycy9od21vbi9wbWJ1cy91Y2Q5 MjAwLmMKaW5kZXggNmUxYzFhOC4uNjI5ZDBjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9w bWJ1cy91Y2Q5MjAwLmMKKysrIGIvZHJpdmVycy9od21vbi9wbWJ1cy91Y2Q5MjAwLmMKQEAgLTE5 MCwxOCArMTkwLDggQEAgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHVjZDkyMDBfZHJpdmVyID0g ewogCS5pZF90YWJsZSA9IHVjZDkyMDBfaWQsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCB1Y2Q5 MjAwX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJnVjZDkyMDBfZHJpdmVy KTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHVjZDkyMDBfZXhpdCh2b2lkKQotewotCWkyY19k ZWxfZHJpdmVyKCZ1Y2Q5MjAwX2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcih1Y2Q5MjAw X2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkd1ZW50ZXIgUm9lY2siKTsKIE1PRFVMRV9ERVND UklQVElPTigiUE1CdXMgZHJpdmVyIGZvciBUSSBVQ0Q5MjJ4LCBVQ0Q5MjR4Iik7CiBNT0RVTEVf TElDRU5TRSgiR1BMIik7Ci1tb2R1bGVfaW5pdCh1Y2Q5MjAwX2luaXQpOwotbW9kdWxlX2V4aXQo dWNkOTIwMF9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vcG1idXMvemw2MTAwLmMg Yi9kcml2ZXJzL2h3bW9uL3BtYnVzL3psNjEwMC5jCmluZGV4IDQ4YzdiNGEuLjBiYjdiYmEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vcG1idXMvemw2MTAwLmMKKysrIGIvZHJpdmVycy9od21v bi9wbWJ1cy96bDYxMDAuYwpAQCAtMjY4LDE4ICsyNjgsOCBAQCBzdGF0aWMgc3RydWN0IGkyY19k cml2ZXIgemw2MTAwX2RyaXZlciA9IHsKIAkuaWRfdGFibGUgPSB6bDYxMDBfaWQsCiB9OwogCi1z dGF0aWMgaW50IF9faW5pdCB6bDYxMDBfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2Ry aXZlcigmemw2MTAwX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCB6bDYxMDBfZXhp dCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZ6bDYxMDBfZHJpdmVyKTsKLX0KK21vZHVsZV9p MmNfZHJpdmVyKHpsNjEwMF9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJHdWVudGVyIFJvZWNr Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlBNQnVzIGRyaXZlciBmb3IgWkw2MTAwIGFuZCBjb21w YXRpYmxlcyIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotbW9kdWxlX2luaXQoemw2MTAwX2lu aXQpOwotbW9kdWxlX2V4aXQoemw2MTAwX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21v bi9zaHQyMS5jIGIvZHJpdmVycy9od21vbi9zaHQyMS5jCmluZGV4IDE1Mzk4NzguLjZjMmRlZGUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vc2h0MjEuYworKysgYi9kcml2ZXJzL2h3bW9uL3No dDIxLmMKQEAgLTI2MSwyOCArMjYxLDcgQEAgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHNodDIx X2RyaXZlciA9IHsKIAkuaWRfdGFibGUgICAgPSBzaHQyMV9pZCwKIH07CiAKLS8qKgotICogc2h0 MjFfaW5pdCgpIC0gaW5pdGlhbGl6ZSBkcml2ZXIKLSAqCi0gKiBDYWxsZWQgd2hlbiBrZXJuZWwg aXMgYm9vdGVkIG9yIG1vZHVsZSBpcyBpbnNlcnRlZC4KLSAqIFJldHVybnMgMCBvbiBzdWNjZXNz LgotICovCi1zdGF0aWMgaW50IF9faW5pdCBzaHQyMV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGky Y19hZGRfZHJpdmVyKCZzaHQyMV9kcml2ZXIpOwotfQotbW9kdWxlX2luaXQoc2h0MjFfaW5pdCk7 Ci0KLS8qKgotICogc2h0MjFfaW5pdCgpIC0gY2xlYW4gdXAgZHJpdmVyCi0gKgotICogQ2FsbGVk IHdoZW4gbW9kdWxlIGlzIHJlbW92ZWQuCi0gKi8KLXN0YXRpYyB2b2lkIF9fZXhpdCBzaHQyMV9l eGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJnNodDIxX2RyaXZlcik7Ci19Ci1tb2R1bGVf ZXhpdChzaHQyMV9leGl0KTsKK21vZHVsZV9pMmNfZHJpdmVyKHNodDIxX2RyaXZlcik7CiAKIE1P RFVMRV9BVVRIT1IoIlVycyBGbGVpc2NoIDx1cnMuZmxlaXNjaEBzZW5zaXJpb24uY29tPiIpOwog TU9EVUxFX0RFU0NSSVBUSU9OKCJTZW5zaXJpb24gU0hUMjEgaHVtaWRpdHkgYW5kIHRlbXBlcmF0 dXJlIHNlbnNvciBkcml2ZXIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vc21tNjY1LmMg Yi9kcml2ZXJzL2h3bW9uL3NtbTY2NS5jCmluZGV4IDFiNDMwMWYuLjI0MzgyYzcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvaHdtb24vc21tNjY1LmMKKysrIGIvZHJpdmVycy9od21vbi9zbW02NjUuYwpA QCAtNzE4LDE5ICs3MTgsOCBAQCBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgc21tNjY1X2RyaXZl ciA9IHsKIAkuaWRfdGFibGUgPSBzbW02NjVfaWQsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBz bW02NjVfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmc21tNjY1X2RyaXZl cik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzbW02NjVfZXhpdCh2b2lkKQotewotCWkyY19k ZWxfZHJpdmVyKCZzbW02NjVfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKHNtbTY2NV9k cml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJHdWVudGVyIFJvZWNrIik7CiBNT0RVTEVfREVTQ1JJ UFRJT04oIlNNTTY2NSBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxl X2luaXQoc21tNjY1X2luaXQpOwotbW9kdWxlX2V4aXQoc21tNjY1X2V4aXQpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9od21vbi9zbXNjNDdtMTkyLmMgYi9kcml2ZXJzL2h3bW9uL3Ntc2M0N20xOTIu YwppbmRleCA5NTc2MWJkLi4zMDdlNmE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL3Ntc2M0 N20xOTIuYworKysgYi9kcml2ZXJzL2h3bW9uL3Ntc2M0N20xOTIuYwpAQCAtNjY5LDE5ICs2Njks OCBAQCBzdGF0aWMgc3RydWN0IHNtc2M0N20xOTJfZGF0YSAqc21zYzQ3bTE5Ml91cGRhdGVfZGV2 aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlyZXR1cm4gZGF0YTsKIH0KIAotc3RhdGljIGludCBf X2luaXQgc21zYzQ3bTE5Ml9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZz bXNjNDdtMTkyX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzbXNjNDdtMTkyX2V4 aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmc21zYzQ3bTE5Ml9kcml2ZXIpOwotfQorbW9k dWxlX2kyY19kcml2ZXIoc21zYzQ3bTE5Ml9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJIYXJ0 bXV0IFJpY2sgPGxpbnV4QHJpY2suY2xhcmFuZXQuZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04o IlNNU0M0N00xOTIgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9p bml0KHNtc2M0N20xOTJfaW5pdCk7Ci1tb2R1bGVfZXhpdChzbXNjNDdtMTkyX2V4aXQpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9od21vbi90aG1jNTAuYyBiL2RyaXZlcnMvaHdtb24vdGhtYzUwLmMK aW5kZXggYTE5NTkxNC4uNTFkZGIzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi90aG1jNTAu YworKysgYi9kcml2ZXJzL2h3bW9uL3RobWM1MC5jCkBAIC00ODIsMTggKzQ4Miw3IEBAIHN0YXRp YyBzdHJ1Y3QgdGhtYzUwX2RhdGEgKnRobWM1MF91cGRhdGVfZGV2aWNlKHN0cnVjdCBkZXZpY2Ug KmRldikKIAlyZXR1cm4gZGF0YTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgc21fdGhtYzUwX2lu aXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJnRobWM1MF9kcml2ZXIpOwotfQot Ci1zdGF0aWMgdm9pZCBfX2V4aXQgc21fdGhtYzUwX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2Ry aXZlcigmdGhtYzUwX2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcih0aG1jNTBfZHJpdmVy KTsKIAogTU9EVUxFX0FVVEhPUigiS3J6eXN6dG9mIEhlbHQgPGtyenlzenRvZi5oMUB3cC5wbD4i KTsKIE1PRFVMRV9ERVNDUklQVElPTigiVEhNQzUwIGRyaXZlciIpOwotCi1tb2R1bGVfaW5pdChz bV90aG1jNTBfaW5pdCk7Ci1tb2R1bGVfZXhpdChzbV90aG1jNTBfZXhpdCk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2h3bW9uL3RtcDEwMi5jIGIvZHJpdmVycy9od21vbi90bXAxMDIuYwppbmRleCBj MDhlZWUyLi4wZDQ2NmI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL3RtcDEwMi5jCisrKyBi L2RyaXZlcnMvaHdtb24vdG1wMTAyLmMKQEAgLTI5MiwxNyArMjkyLDcgQEAgc3RhdGljIHN0cnVj dCBpMmNfZHJpdmVyIHRtcDEwMl9kcml2ZXIgPSB7CiAJLmlkX3RhYmxlCT0gdG1wMTAyX2lkLAog fTsKIAotc3RhdGljIGludCBfX2luaXQgdG1wMTAyX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJj X2FkZF9kcml2ZXIoJnRtcDEwMl9kcml2ZXIpOwotfQotbW9kdWxlX2luaXQodG1wMTAyX2luaXQp OwotCi1zdGF0aWMgdm9pZCBfX2V4aXQgdG1wMTAyX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2Ry aXZlcigmdG1wMTAyX2RyaXZlcik7Ci19Ci1tb2R1bGVfZXhpdCh0bXAxMDJfZXhpdCk7Cittb2R1 bGVfaTJjX2RyaXZlcih0bXAxMDJfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiU3RldmVuIEtp bmcgPHNma2luZ0BmZHdkYy5jb20+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlRleGFzIEluc3Ry dW1lbnRzIFRNUDEwMiB0ZW1wZXJhdHVyZSBzZW5zb3IgZHJpdmVyIik7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2h3bW9uL3RtcDQwMS5jIGIvZHJpdmVycy9od21vbi90bXA0MDEuYwppbmRleCA4Yjlh Nzc0Li45MmI3ZjFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL3RtcDQwMS5jCisrKyBiL2Ry aXZlcnMvaHdtb24vdG1wNDAxLmMKQEAgLTY2MiwxOSArNjYyLDggQEAgc3RhdGljIHN0cnVjdCBp MmNfZHJpdmVyIHRtcDQwMV9kcml2ZXIgPSB7CiAJLmFkZHJlc3NfbGlzdAk9IG5vcm1hbF9pMmMs CiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCB0bXA0MDFfaW5pdCh2b2lkKQotewotCXJldHVybiBp MmNfYWRkX2RyaXZlcigmdG1wNDAxX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCB0 bXA0MDFfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZ0bXA0MDFfZHJpdmVyKTsKLX0K K21vZHVsZV9pMmNfZHJpdmVyKHRtcDQwMV9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJIYW5z IGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJU ZXhhcyBJbnN0cnVtZW50cyBUTVA0MDEgdGVtcGVyYXR1cmUgc2Vuc29yIGRyaXZlciIpOwogTU9E VUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdCh0bXA0MDFfaW5pdCk7Ci1tb2R1bGVf ZXhpdCh0bXA0MDFfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL3RtcDQyMS5jIGIv ZHJpdmVycy9od21vbi90bXA0MjEuYwppbmRleCBjNDgzODFmLi44ZmFjODdhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2h3bW9uL3RtcDQyMS5jCisrKyBiL2RyaXZlcnMvaHdtb24vdG1wNDIxLmMKQEAg LTMyNCwyMCArMzI0LDkgQEAgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHRtcDQyMV9kcml2ZXIg PSB7CiAJLmFkZHJlc3NfbGlzdCA9IG5vcm1hbF9pMmMsCiB9OwogCi1zdGF0aWMgaW50IF9faW5p dCB0bXA0MjFfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmdG1wNDIxX2Ry aXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCB0bXA0MjFfZXhpdCh2b2lkKQotewotCWky Y19kZWxfZHJpdmVyKCZ0bXA0MjFfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKHRtcDQy MV9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJBbmRyZSBQcmVuZGVsIDxhbmRyZS5wcmVuZGVs QGdteC5kZT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiVGV4YXMgSW5zdHJ1bWVudHMgVE1QNDIx LzQyMi80MjMgdGVtcGVyYXR1cmUgc2Vuc29yIgogCQkgICAiIGRyaXZlciIpOwogTU9EVUxFX0xJ Q0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdCh0bXA0MjFfaW5pdCk7Ci1tb2R1bGVfZXhpdCh0 bXA0MjFfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL3c4Mzc5MWQuYyBiL2RyaXZl cnMvaHdtb24vdzgzNzkxZC5jCmluZGV4IDY3OTE0NmQuLmI5MmYwMWYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvaHdtb24vdzgzNzkxZC5jCisrKyBiL2RyaXZlcnMvaHdtb24vdzgzNzkxZC5jCkBAIC0x NjY4LDE5ICsxNjY4LDggQEAgc3RhdGljIHZvaWQgdzgzNzkxZF9wcmludF9kZWJ1ZyhzdHJ1Y3Qg dzgzNzkxZF9kYXRhICpkYXRhLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiB9CiAjZW5kaWYKIAotc3Rh dGljIGludCBfX2luaXQgc2Vuc29yc193ODM3OTFkX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJj X2FkZF9kcml2ZXIoJnc4Mzc5MWRfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHNl bnNvcnNfdzgzNzkxZF9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJnc4Mzc5MWRfZHJp dmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKHc4Mzc5MWRfZHJpdmVyKTsKIAogTU9EVUxFX0FV VEhPUigiQ2hhcmxlcyBTcGlyYWtpcyA8YmV6YXVyQGdtYWlsLmNvbT4iKTsKIE1PRFVMRV9ERVND UklQVElPTigiVzgzNzkxRCBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9k dWxlX2luaXQoc2Vuc29yc193ODM3OTFkX2luaXQpOwotbW9kdWxlX2V4aXQoc2Vuc29yc193ODM3 OTFkX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi93ODM3OTJkLmMgYi9kcml2ZXJz L2h3bW9uL3c4Mzc5MmQuYwppbmRleCBlMzU2NjE4Li4xMTc1ZGNmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2h3bW9uL3c4Mzc5MmQuYworKysgYi9kcml2ZXJzL2h3bW9uL3c4Mzc5MmQuYwpAQCAtMTcw OCwyMiArMTcwOCw4IEBAIHN0YXRpYyB2b2lkIHc4Mzc5MmRfcHJpbnRfZGVidWcoc3RydWN0IHc4 Mzc5MmRfZGF0YSAqZGF0YSwgc3RydWN0IGRldmljZSAqZGV2KQogfQogI2VuZGlmCiAKLXN0YXRp YyBpbnQgX19pbml0Ci1zZW5zb3JzX3c4Mzc5MmRfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNf YWRkX2RyaXZlcigmdzgzNzkyZF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQKLXNl bnNvcnNfdzgzNzkyZF9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJnc4Mzc5MmRfZHJp dmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKHc4Mzc5MmRfZHJpdmVyKTsKIAogTU9EVUxFX0FV VEhPUigiQ2h1bmhhbyBIdWFuZyBAIFdpbmJvbmQgPERaU2hlbkBXaW5ib25kLmNvbS50dz4iKTsK IE1PRFVMRV9ERVNDUklQVElPTigiVzgzNzkyQUQvRCBkcml2ZXIgZm9yIGxpbnV4LTIuNiIpOwog TU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX3c4Mzc5MmRfaW5p dCk7Ci1tb2R1bGVfZXhpdChzZW5zb3JzX3c4Mzc5MmRfZXhpdCk7Ci0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaHdtb24vdzgzNzkzLmMgYi9kcml2ZXJzL2h3bW9uL3c4Mzc5My5jCmluZGV4IDU5Mjlk NDQuLjQ3Zjk3NWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vdzgzNzkzLmMKKysrIGIvZHJp dmVycy9od21vbi93ODM3OTMuYwpAQCAtMjE2OSwxOSArMjE2OSw4IEBAIEVORDoKIAlyZXR1cm4g cmVzOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3JzX3c4Mzc5M19pbml0KHZvaWQpCi17 Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZ3ODM3OTNfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZv aWQgX19leGl0IHNlbnNvcnNfdzgzNzkzX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigm dzgzNzkzX2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcih3ODM3OTNfZHJpdmVyKTsKIAog TU9EVUxFX0FVVEhPUigiWXVhbiBNdSwgU3ZlbiBBbmRlcnMiKTsKIE1PRFVMRV9ERVNDUklQVElP TigidzgzNzkzIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5p dChzZW5zb3JzX3c4Mzc5M19pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfdzgzNzkzX2V4aXQp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi93ODM3OTUuYyBiL2RyaXZlcnMvaHdtb24vdzgz Nzk1LmMKaW5kZXggYWE1OGIyNS4uZGViMTJjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi93 ODM3OTUuYworKysgYi9kcml2ZXJzL2h3bW9uL3c4Mzc5NS5jCkBAIC0yMjQ0LDE5ICsyMjQ0LDgg QEAgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHc4Mzc5NV9kcml2ZXIgPSB7CiAJLmFkZHJlc3Nf bGlzdAk9IG5vcm1hbF9pMmMsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3JzX3c4Mzc5 NV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZ3ODM3OTVfZHJpdmVyKTsK LX0KLQotc3RhdGljIHZvaWQgX19leGl0IHNlbnNvcnNfdzgzNzk1X2V4aXQodm9pZCkKLXsKLQlp MmNfZGVsX2RyaXZlcigmdzgzNzk1X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcih3ODM3 OTVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiV2VpIFNvbmcsIEplYW4gRGVsdmFyZSA8a2hh bGlAbGludXgtZnIub3JnPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJXODM3OTVHL0FERyBoYXJk d2FyZSBtb25pdG9yaW5nIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1 bGVfaW5pdChzZW5zb3JzX3c4Mzc5NV9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfdzgzNzk1 X2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi93ODNsNzg1dHMuYyBiL2RyaXZlcnMv aHdtb24vdzgzbDc4NXRzLmMKaW5kZXggZWRmYzFlYy4uYmMwNzE0NCAxMDA2NDQKLS0tIGEvZHJp dmVycy9od21vbi93ODNsNzg1dHMuYworKysgYi9kcml2ZXJzL2h3bW9uL3c4M2w3ODV0cy5jCkBA IC0zMDIsMTkgKzMwMiw4IEBAIHN0YXRpYyBzdHJ1Y3QgdzgzbDc4NXRzX2RhdGEgKnc4M2w3ODV0 c191cGRhdGVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlyZXR1cm4gZGF0YTsKIH0KIAot c3RhdGljIGludCBfX2luaXQgc2Vuc29yc193ODNsNzg1dHNfaW5pdCh2b2lkKQotewotCXJldHVy biBpMmNfYWRkX2RyaXZlcigmdzgzbDc4NXRzX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9f ZXhpdCBzZW5zb3JzX3c4M2w3ODV0c19leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJnc4 M2w3ODV0c19kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIodzgzbDc4NXRzX2RyaXZlcik7 CiAKIE1PRFVMRV9BVVRIT1IoIkplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3JnPiIpOwog TU9EVUxFX0RFU0NSSVBUSU9OKCJXODNMNzg1VFMtUyBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNF KCJHUEwiKTsKLQotbW9kdWxlX2luaXQoc2Vuc29yc193ODNsNzg1dHNfaW5pdCk7Ci1tb2R1bGVf ZXhpdChzZW5zb3JzX3c4M2w3ODV0c19leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24v dzgzbDc4Nm5nLmMgYi9kcml2ZXJzL2h3bW9uL3c4M2w3ODZuZy5jCmluZGV4IDZlYWM1ZDkuLmE2 MzEwYjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vdzgzbDc4Nm5nLmMKKysrIGIvZHJpdmVy cy9od21vbi93ODNsNzg2bmcuYwpAQCAtODA2LDIxICs4MDYsOCBAQCBzdGF0aWMgc3RydWN0IHc4 M2w3ODZuZ19kYXRhICp3ODNsNzg2bmdfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYp CiAJcmV0dXJuIGRhdGE7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0Ci1zZW5zb3JzX3c4M2w3ODZu Z19pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZ3ODNsNzg2bmdfZHJpdmVy KTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0Ci1zZW5zb3JzX3c4M2w3ODZuZ19leGl0KHZvaWQp Ci17Ci0JaTJjX2RlbF9kcml2ZXIoJnc4M2w3ODZuZ19kcml2ZXIpOwotfQorbW9kdWxlX2kyY19k cml2ZXIodzgzbDc4Nm5nX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIktldmluIExvIik7CiBN T0RVTEVfREVTQ1JJUFRJT04oInc4M2w3ODZuZyBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJH UEwiKTsKLQotbW9kdWxlX2luaXQoc2Vuc29yc193ODNsNzg2bmdfaW5pdCk7Ci1tb2R1bGVfZXhp dChzZW5zb3JzX3c4M2w3ODZuZ19leGl0KTsKLS0gCjEuNy41LjQKCgoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxtLXNlbnNvcnMgbWFpbGluZyBsaXN0 CmxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKaHR0cDovL2xpc3RzLmxtLXNlbnNvcnMub3JnL21h aWxtYW4vbGlzdGluZm8vbG0tc2Vuc29ycw= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752118Ab2ATHij (ORCPT ); Fri, 20 Jan 2012 02:38:39 -0500 Received: from mail-yx0-f174.google.com ([209.85.213.174]:42587 "EHLO mail-yx0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751743Ab2ATHig (ORCPT ); Fri, 20 Jan 2012 02:38:36 -0500 Message-ID: <1327045098.29773.0.camel@phoenix> Subject: [PATCH 1/2] hwmon: convert drivers/hwmon/* to use module_i2c_driver() From: Axel Lin To: linux-kernel@vger.kernel.org Cc: Jean Delvare , Guenter Roeck , Corentin Labbe , Dirk Eibach , "Mark M. Hoffman" , Steve Glendinning , Riku Voipio , Guillaume Ligneul , David George , "Hans J. Koch" , Marc Hulsman , Rudolf Marek , lm-sensors@lm-sensors.org Date: Fri, 20 Jan 2012 15:38:18 +0800 Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.1- Content-Transfer-Encoding: 8bit Mime-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch converts the drivers in drivers/hwmon/* to use the module_i2c_driver() macro which makes the code smaller and a bit simpler. Signed-off-by: Axel Lin Cc: Corentin Labbe Cc: Dirk Eibach Cc: "Mark M. Hoffman" Cc: Steve Glendinning Cc: Riku Voipio Cc: Guillaume Ligneul Cc: David George Cc: "Hans J. Koch" Cc: Marc Hulsman Cc: Rudolf Marek --- drivers/hwmon/ad7414.c | 12 +----------- drivers/hwmon/ad7418.c | 13 +------------ drivers/hwmon/adm1021.c | 13 +------------ drivers/hwmon/adm1025.c | 13 +------------ drivers/hwmon/adm1026.c | 13 +------------ drivers/hwmon/adm1029.c | 18 +----------------- drivers/hwmon/adm1031.c | 13 +------------ drivers/hwmon/adm9240.c | 14 +------------- drivers/hwmon/ads1015.c | 13 +------------ drivers/hwmon/adt7411.c | 12 +----------- drivers/hwmon/adt7462.c | 13 +------------ drivers/hwmon/adt7470.c | 13 +------------ drivers/hwmon/adt7475.c | 13 +------------ drivers/hwmon/amc6821.c | 15 +-------------- drivers/hwmon/asb100.c | 13 +------------ drivers/hwmon/atxp1.c | 13 +------------ drivers/hwmon/ds1621.c | 14 +------------- drivers/hwmon/ds620.c | 13 +------------ drivers/hwmon/emc1403.c | 13 +------------ drivers/hwmon/emc2103.c | 13 +------------ drivers/hwmon/emc6w201.c | 12 +----------- drivers/hwmon/f75375s.c | 13 +------------ drivers/hwmon/fschmd.c | 13 +------------ drivers/hwmon/g760a.c | 15 +-------------- drivers/hwmon/gl518sm.c | 13 +------------ drivers/hwmon/gl520sm.c | 15 +-------------- drivers/hwmon/jc42.c | 13 +------------ drivers/hwmon/lineage-pem.c | 13 +------------ drivers/hwmon/lm63.c | 13 +------------ drivers/hwmon/lm73.c | 15 +-------------- drivers/hwmon/lm75.c | 17 +---------------- drivers/hwmon/lm77.c | 13 +------------ drivers/hwmon/lm80.c | 13 +------------ drivers/hwmon/lm83.c | 13 +------------ drivers/hwmon/lm85.c | 14 +------------- drivers/hwmon/lm87.c | 13 +------------ drivers/hwmon/lm90.c | 13 +------------ drivers/hwmon/lm92.c | 13 +------------ drivers/hwmon/lm93.c | 13 +------------ drivers/hwmon/lm95241.c | 13 +------------ drivers/hwmon/lm95245.c | 13 +------------ drivers/hwmon/ltc4151.c | 13 +------------ drivers/hwmon/ltc4215.c | 13 +------------ drivers/hwmon/ltc4245.c | 13 +------------ drivers/hwmon/ltc4261.c | 13 +------------ drivers/hwmon/max16065.c | 13 +------------ drivers/hwmon/max1619.c | 13 +------------ drivers/hwmon/max1668.c | 13 +------------ drivers/hwmon/max6639.c | 13 +------------ drivers/hwmon/max6642.c | 13 +------------ drivers/hwmon/max6650.c | 13 +------------ drivers/hwmon/pmbus/adm1275.c | 12 +----------- drivers/hwmon/pmbus/lm25066.c | 12 +----------- drivers/hwmon/pmbus/ltc2978.c | 12 +----------- drivers/hwmon/pmbus/max16064.c | 12 +----------- drivers/hwmon/pmbus/max34440.c | 12 +----------- drivers/hwmon/pmbus/max8688.c | 12 +----------- drivers/hwmon/pmbus/pmbus.c | 12 +----------- drivers/hwmon/pmbus/ucd9000.c | 12 +----------- drivers/hwmon/pmbus/ucd9200.c | 12 +----------- drivers/hwmon/pmbus/zl6100.c | 12 +----------- drivers/hwmon/sht21.c | 23 +---------------------- drivers/hwmon/smm665.c | 13 +------------ drivers/hwmon/smsc47m192.c | 13 +------------ drivers/hwmon/thmc50.c | 13 +------------ drivers/hwmon/tmp102.c | 12 +----------- drivers/hwmon/tmp401.c | 13 +------------ drivers/hwmon/tmp421.c | 13 +------------ drivers/hwmon/w83791d.c | 13 +------------ drivers/hwmon/w83792d.c | 16 +--------------- drivers/hwmon/w83793.c | 13 +------------ drivers/hwmon/w83795.c | 13 +------------ drivers/hwmon/w83l785ts.c | 13 +------------ drivers/hwmon/w83l786ng.c | 15 +-------------- 74 files changed, 74 insertions(+), 909 deletions(-) diff --git a/drivers/hwmon/ad7414.c b/drivers/hwmon/ad7414.c index edbdb6d..3646500 100644 --- a/drivers/hwmon/ad7414.c +++ b/drivers/hwmon/ad7414.c @@ -256,17 +256,7 @@ static struct i2c_driver ad7414_driver = { .id_table = ad7414_id, }; -static int __init ad7414_init(void) -{ - return i2c_add_driver(&ad7414_driver); -} -module_init(ad7414_init); - -static void __exit ad7414_exit(void) -{ - i2c_del_driver(&ad7414_driver); -} -module_exit(ad7414_exit); +module_i2c_driver(ad7414_driver); MODULE_AUTHOR("Stefan Roese , " "Frank Edelhaeuser "); diff --git a/drivers/hwmon/ad7418.c b/drivers/hwmon/ad7418.c index 42461d1..a50a6be 100644 --- a/drivers/hwmon/ad7418.c +++ b/drivers/hwmon/ad7418.c @@ -295,20 +295,9 @@ static int ad7418_remove(struct i2c_client *client) return 0; } -static int __init ad7418_init(void) -{ - return i2c_add_driver(&ad7418_driver); -} - -static void __exit ad7418_exit(void) -{ - i2c_del_driver(&ad7418_driver); -} +module_i2c_driver(ad7418_driver); MODULE_AUTHOR("Alessandro Zummo "); MODULE_DESCRIPTION("AD7416/17/18 driver"); MODULE_LICENSE("GPL"); MODULE_VERSION(DRV_VERSION); - -module_init(ad7418_init); -module_exit(ad7418_exit); diff --git a/drivers/hwmon/adm1021.c b/drivers/hwmon/adm1021.c index e6fc006..ec84331 100644 --- a/drivers/hwmon/adm1021.c +++ b/drivers/hwmon/adm1021.c @@ -471,15 +471,7 @@ static struct adm1021_data *adm1021_update_device(struct device *dev) return data; } -static int __init sensors_adm1021_init(void) -{ - return i2c_add_driver(&adm1021_driver); -} - -static void __exit sensors_adm1021_exit(void) -{ - i2c_del_driver(&adm1021_driver); -} +module_i2c_driver(adm1021_driver); MODULE_AUTHOR("Frodo Looijaard and " "Philip Edelbrock "); @@ -488,6 +480,3 @@ MODULE_LICENSE("GPL"); module_param(read_only, bool, 0); MODULE_PARM_DESC(read_only, "Don't set any values, read only mode"); - -module_init(sensors_adm1021_init) -module_exit(sensors_adm1021_exit) diff --git a/drivers/hwmon/adm1025.c b/drivers/hwmon/adm1025.c index 14d8997..efbc9c9 100644 --- a/drivers/hwmon/adm1025.c +++ b/drivers/hwmon/adm1025.c @@ -618,19 +618,8 @@ static struct adm1025_data *adm1025_update_device(struct device *dev) return data; } -static int __init sensors_adm1025_init(void) -{ - return i2c_add_driver(&adm1025_driver); -} - -static void __exit sensors_adm1025_exit(void) -{ - i2c_del_driver(&adm1025_driver); -} +module_i2c_driver(adm1025_driver); MODULE_AUTHOR("Jean Delvare "); MODULE_DESCRIPTION("ADM1025 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_adm1025_init); -module_exit(sensors_adm1025_exit); diff --git a/drivers/hwmon/adm1026.c b/drivers/hwmon/adm1026.c index cd773ce..1f4f5de 100644 --- a/drivers/hwmon/adm1026.c +++ b/drivers/hwmon/adm1026.c @@ -1881,20 +1881,9 @@ static int adm1026_remove(struct i2c_client *client) return 0; } -static int __init sm_adm1026_init(void) -{ - return i2c_add_driver(&adm1026_driver); -} - -static void __exit sm_adm1026_exit(void) -{ - i2c_del_driver(&adm1026_driver); -} +module_i2c_driver(adm1026_driver); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Philip Pokorny , " "Justin Thiessen "); MODULE_DESCRIPTION("ADM1026 driver"); - -module_init(sm_adm1026_init); -module_exit(sm_adm1026_exit); diff --git a/drivers/hwmon/adm1029.c b/drivers/hwmon/adm1029.c index d789c33..c6531a8 100644 --- a/drivers/hwmon/adm1029.c +++ b/drivers/hwmon/adm1029.c @@ -450,24 +450,8 @@ static struct adm1029_data *adm1029_update_device(struct device *dev) return data; } -/* - Common module stuff -*/ -static int __init sensors_adm1029_init(void) -{ - - return i2c_add_driver(&adm1029_driver); -} - -static void __exit sensors_adm1029_exit(void) -{ - - i2c_del_driver(&adm1029_driver); -} +module_i2c_driver(adm1029_driver); MODULE_AUTHOR("Corentin LABBE "); MODULE_DESCRIPTION("adm1029 driver"); MODULE_LICENSE("GPL v2"); - -module_init(sensors_adm1029_init); -module_exit(sensors_adm1029_exit); diff --git a/drivers/hwmon/adm1031.c b/drivers/hwmon/adm1031.c index 97e2cfb..71b5ec3 100644 --- a/drivers/hwmon/adm1031.c +++ b/drivers/hwmon/adm1031.c @@ -1131,19 +1131,8 @@ static struct adm1031_data *adm1031_update_device(struct device *dev) return data; } -static int __init sensors_adm1031_init(void) -{ - return i2c_add_driver(&adm1031_driver); -} - -static void __exit sensors_adm1031_exit(void) -{ - i2c_del_driver(&adm1031_driver); -} +module_i2c_driver(adm1031_driver); MODULE_AUTHOR("Alexandre d'Alton "); MODULE_DESCRIPTION("ADM1031/ADM1030 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_adm1031_init); -module_exit(sensors_adm1031_exit); diff --git a/drivers/hwmon/adm9240.c b/drivers/hwmon/adm9240.c index 2de4511..340b842 100644 --- a/drivers/hwmon/adm9240.c +++ b/drivers/hwmon/adm9240.c @@ -821,21 +821,9 @@ static struct adm9240_data *adm9240_update_device(struct device *dev) return data; } -static int __init sensors_adm9240_init(void) -{ - return i2c_add_driver(&adm9240_driver); -} - -static void __exit sensors_adm9240_exit(void) -{ - i2c_del_driver(&adm9240_driver); -} +module_i2c_driver(adm9240_driver); MODULE_AUTHOR("Michiel Rook , " "Grant Coady and others"); MODULE_DESCRIPTION("ADM9240/DS1780/LM81 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_adm9240_init); -module_exit(sensors_adm9240_exit); - diff --git a/drivers/hwmon/ads1015.c b/drivers/hwmon/ads1015.c index eedca3c..60be358 100644 --- a/drivers/hwmon/ads1015.c +++ b/drivers/hwmon/ads1015.c @@ -306,19 +306,8 @@ static struct i2c_driver ads1015_driver = { .id_table = ads1015_id, }; -static int __init sensors_ads1015_init(void) -{ - return i2c_add_driver(&ads1015_driver); -} - -static void __exit sensors_ads1015_exit(void) -{ - i2c_del_driver(&ads1015_driver); -} +module_i2c_driver(ads1015_driver); MODULE_AUTHOR("Dirk Eibach "); MODULE_DESCRIPTION("ADS1015 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_ads1015_init); -module_exit(sensors_ads1015_exit); diff --git a/drivers/hwmon/adt7411.c b/drivers/hwmon/adt7411.c index ffe64f8..71bacc5 100644 --- a/drivers/hwmon/adt7411.c +++ b/drivers/hwmon/adt7411.c @@ -348,17 +348,7 @@ static struct i2c_driver adt7411_driver = { .class = I2C_CLASS_HWMON, }; -static int __init sensors_adt7411_init(void) -{ - return i2c_add_driver(&adt7411_driver); -} -module_init(sensors_adt7411_init) - -static void __exit sensors_adt7411_exit(void) -{ - i2c_del_driver(&adt7411_driver); -} -module_exit(sensors_adt7411_exit) +module_i2c_driver(adt7411_driver); MODULE_AUTHOR("Sascha Hauer and " "Wolfram Sang "); diff --git a/drivers/hwmon/adt7462.c b/drivers/hwmon/adt7462.c index 3df331a..e4b1cc9 100644 --- a/drivers/hwmon/adt7462.c +++ b/drivers/hwmon/adt7462.c @@ -1974,19 +1974,8 @@ static int adt7462_remove(struct i2c_client *client) return 0; } -static int __init adt7462_init(void) -{ - return i2c_add_driver(&adt7462_driver); -} - -static void __exit adt7462_exit(void) -{ - i2c_del_driver(&adt7462_driver); -} +module_i2c_driver(adt7462_driver); MODULE_AUTHOR("Darrick J. Wong "); MODULE_DESCRIPTION("ADT7462 driver"); MODULE_LICENSE("GPL"); - -module_init(adt7462_init); -module_exit(adt7462_exit); diff --git a/drivers/hwmon/adt7470.c b/drivers/hwmon/adt7470.c index b23efd9..54ec890 100644 --- a/drivers/hwmon/adt7470.c +++ b/drivers/hwmon/adt7470.c @@ -1317,19 +1317,8 @@ static int adt7470_remove(struct i2c_client *client) return 0; } -static int __init adt7470_init(void) -{ - return i2c_add_driver(&adt7470_driver); -} - -static void __exit adt7470_exit(void) -{ - i2c_del_driver(&adt7470_driver); -} +module_i2c_driver(adt7470_driver); MODULE_AUTHOR("Darrick J. Wong "); MODULE_DESCRIPTION("ADT7470 driver"); MODULE_LICENSE("GPL"); - -module_init(adt7470_init); -module_exit(adt7470_exit); diff --git a/drivers/hwmon/adt7475.c b/drivers/hwmon/adt7475.c index 71e9ac4..522cb76 100644 --- a/drivers/hwmon/adt7475.c +++ b/drivers/hwmon/adt7475.c @@ -1600,19 +1600,8 @@ static struct adt7475_data *adt7475_update_device(struct device *dev) return data; } -static int __init sensors_adt7475_init(void) -{ - return i2c_add_driver(&adt7475_driver); -} - -static void __exit sensors_adt7475_exit(void) -{ - i2c_del_driver(&adt7475_driver); -} +module_i2c_driver(adt7475_driver); MODULE_AUTHOR("Advanced Micro Devices, Inc"); MODULE_DESCRIPTION("adt7475 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_adt7475_init); -module_exit(sensors_adt7475_exit); diff --git a/drivers/hwmon/amc6821.c b/drivers/hwmon/amc6821.c index 4a4bfef..5298855 100644 --- a/drivers/hwmon/amc6821.c +++ b/drivers/hwmon/amc6821.c @@ -1095,20 +1095,7 @@ static struct amc6821_data *amc6821_update_device(struct device *dev) return data; } - -static int __init amc6821_init(void) -{ - return i2c_add_driver(&amc6821_driver); -} - -static void __exit amc6821_exit(void) -{ - i2c_del_driver(&amc6821_driver); -} - -module_init(amc6821_init); -module_exit(amc6821_exit); - +module_i2c_driver(amc6821_driver); MODULE_LICENSE("GPL"); MODULE_AUTHOR("T. Mertelj "); diff --git a/drivers/hwmon/asb100.c b/drivers/hwmon/asb100.c index a5f1642..573fff5 100644 --- a/drivers/hwmon/asb100.c +++ b/drivers/hwmon/asb100.c @@ -1002,19 +1002,8 @@ static struct asb100_data *asb100_update_device(struct device *dev) return data; } -static int __init asb100_init(void) -{ - return i2c_add_driver(&asb100_driver); -} - -static void __exit asb100_exit(void) -{ - i2c_del_driver(&asb100_driver); -} +module_i2c_driver(asb100_driver); MODULE_AUTHOR("Mark M. Hoffman "); MODULE_DESCRIPTION("ASB100 Bach driver"); MODULE_LICENSE("GPL"); - -module_init(asb100_init); -module_exit(asb100_exit); diff --git a/drivers/hwmon/atxp1.c b/drivers/hwmon/atxp1.c index d4a589b..5a671ca 100644 --- a/drivers/hwmon/atxp1.c +++ b/drivers/hwmon/atxp1.c @@ -390,15 +390,4 @@ static int atxp1_remove(struct i2c_client *client) return 0; }; -static int __init atxp1_init(void) -{ - return i2c_add_driver(&atxp1_driver); -}; - -static void __exit atxp1_exit(void) -{ - i2c_del_driver(&atxp1_driver); -}; - -module_init(atxp1_init); -module_exit(atxp1_exit); +module_i2c_driver(atxp1_driver); diff --git a/drivers/hwmon/ds1621.c b/drivers/hwmon/ds1621.c index e23a8ab..5dc5489 100644 --- a/drivers/hwmon/ds1621.c +++ b/drivers/hwmon/ds1621.c @@ -311,20 +311,8 @@ static struct i2c_driver ds1621_driver = { .address_list = normal_i2c, }; -static int __init ds1621_init(void) -{ - return i2c_add_driver(&ds1621_driver); -} - -static void __exit ds1621_exit(void) -{ - i2c_del_driver(&ds1621_driver); -} - +module_i2c_driver(ds1621_driver); MODULE_AUTHOR("Christian W. Zuckschwerdt "); MODULE_DESCRIPTION("DS1621 driver"); MODULE_LICENSE("GPL"); - -module_init(ds1621_init); -module_exit(ds1621_exit); diff --git a/drivers/hwmon/ds620.c b/drivers/hwmon/ds620.c index 300c3d4..50663ef 100644 --- a/drivers/hwmon/ds620.c +++ b/drivers/hwmon/ds620.c @@ -297,19 +297,8 @@ static struct i2c_driver ds620_driver = { .id_table = ds620_id, }; -static int __init ds620_init(void) -{ - return i2c_add_driver(&ds620_driver); -} - -static void __exit ds620_exit(void) -{ - i2c_del_driver(&ds620_driver); -} +module_i2c_driver(ds620_driver); MODULE_AUTHOR("Roland Stigge "); MODULE_DESCRIPTION("DS620 driver"); MODULE_LICENSE("GPL"); - -module_init(ds620_init); -module_exit(ds620_exit); diff --git a/drivers/hwmon/emc1403.c b/drivers/hwmon/emc1403.c index 270ffab..99ac141 100644 --- a/drivers/hwmon/emc1403.c +++ b/drivers/hwmon/emc1403.c @@ -366,18 +366,7 @@ static struct i2c_driver sensor_emc1403 = { .address_list = emc1403_address_list, }; -static int __init sensor_emc1403_init(void) -{ - return i2c_add_driver(&sensor_emc1403); -} - -static void __exit sensor_emc1403_exit(void) -{ - i2c_del_driver(&sensor_emc1403); -} - -module_init(sensor_emc1403_init); -module_exit(sensor_emc1403_exit); +module_i2c_driver(sensor_emc1403); MODULE_AUTHOR("Kalhan Trisal "); MODULE_DESCRIPTION("SMSC EMC2103 hwmon driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_emc2103_init); -module_exit(sensors_emc2103_exit); diff --git a/drivers/hwmon/emc6w201.c b/drivers/hwmon/emc6w201.c index 6ebb9b7..840f511 100644 --- a/drivers/hwmon/emc6w201.c +++ b/drivers/hwmon/emc6w201.c @@ -552,17 +552,7 @@ static struct i2c_driver emc6w201_driver = { .address_list = normal_i2c, }; -static int __init sensors_emc6w201_init(void) -{ - return i2c_add_driver(&emc6w201_driver); -} -module_init(sensors_emc6w201_init); - -static void __exit sensors_emc6w201_exit(void) -{ - i2c_del_driver(&emc6w201_driver); -} -module_exit(sensors_emc6w201_exit); +module_i2c_driver(emc6w201_driver); MODULE_AUTHOR("Jean Delvare "); MODULE_DESCRIPTION("SMSC EMC6W201 hardware monitoring driver"); diff --git a/drivers/hwmon/f75375s.c b/drivers/hwmon/f75375s.c index eedf574..398dbc8 100644 --- a/drivers/hwmon/f75375s.c +++ b/drivers/hwmon/f75375s.c @@ -858,19 +858,8 @@ static int f75375_detect(struct i2c_client *client, return 0; } -static int __init sensors_f75375_init(void) -{ - return i2c_add_driver(&f75375_driver); -} - -static void __exit sensors_f75375_exit(void) -{ - i2c_del_driver(&f75375_driver); -} +module_i2c_driver(f75375_driver); MODULE_AUTHOR("Riku Voipio"); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("F75373/F75375/F75387 hardware monitoring driver"); - -module_init(sensors_f75375_init); -module_exit(sensors_f75375_exit); diff --git a/drivers/hwmon/fschmd.c b/drivers/hwmon/fschmd.c index 06cbf77..35ddf6d 100644 --- a/drivers/hwmon/fschmd.c +++ b/drivers/hwmon/fschmd.c @@ -1341,20 +1341,9 @@ static struct fschmd_data *fschmd_update_device(struct device *dev) return data; } -static int __init fschmd_init(void) -{ - return i2c_add_driver(&fschmd_driver); -} - -static void __exit fschmd_exit(void) -{ - i2c_del_driver(&fschmd_driver); -} +module_i2c_driver(fschmd_driver); MODULE_AUTHOR("Hans de Goede "); MODULE_DESCRIPTION("FSC Poseidon, Hermes, Scylla, Heracles, Heimdall, Hades " "and Syleus driver"); MODULE_LICENSE("GPL"); - -module_init(fschmd_init); -module_exit(fschmd_exit); diff --git a/drivers/hwmon/g760a.c b/drivers/hwmon/g760a.c index 81b6e35..052e304 100644 --- a/drivers/hwmon/g760a.c +++ b/drivers/hwmon/g760a.c @@ -250,21 +250,8 @@ static int g760a_remove(struct i2c_client *client) return 0; } -/* module management */ - -static int __init g760a_init(void) -{ - return i2c_add_driver(&g760a_driver); -} - -static void __exit g760a_exit(void) -{ - i2c_del_driver(&g760a_driver); -} +module_i2c_driver(g760a_driver); MODULE_AUTHOR("Herbert Valerio Riedel "); MODULE_DESCRIPTION("GMT G760A driver"); MODULE_LICENSE("GPL"); - -module_init(g760a_init); -module_exit(g760a_exit); diff --git a/drivers/hwmon/gl518sm.c b/drivers/hwmon/gl518sm.c index 8d0f71d..ae193f0 100644 --- a/drivers/hwmon/gl518sm.c +++ b/drivers/hwmon/gl518sm.c @@ -710,21 +710,10 @@ static struct gl518_data *gl518_update_device(struct device *dev) return data; } -static int __init sensors_gl518sm_init(void) -{ - return i2c_add_driver(&gl518_driver); -} - -static void __exit sensors_gl518sm_exit(void) -{ - i2c_del_driver(&gl518_driver); -} +module_i2c_driver(gl518_driver); MODULE_AUTHOR("Frodo Looijaard , " "Kyosti Malkki and " "Hong-Gunn Chew "); MODULE_DESCRIPTION("GL518SM driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_gl518sm_init); -module_exit(sensors_gl518sm_exit); diff --git a/drivers/hwmon/gl520sm.c b/drivers/hwmon/gl520sm.c index 1909097..52dadb2 100644 --- a/drivers/hwmon/gl520sm.c +++ b/drivers/hwmon/gl520sm.c @@ -979,23 +979,10 @@ static struct gl520_data *gl520_update_device(struct device *dev) return data; } - -static int __init sensors_gl520sm_init(void) -{ - return i2c_add_driver(&gl520_driver); -} - -static void __exit sensors_gl520sm_exit(void) -{ - i2c_del_driver(&gl520_driver); -} - +module_i2c_driver(gl520_driver); MODULE_AUTHOR("Frodo Looijaard , " "Kyösti Mälkki , " "Maarten Deprez "); MODULE_DESCRIPTION("GL520SM driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_gl520sm_init); -module_exit(sensors_gl520sm_exit); diff --git a/drivers/hwmon/jc42.c b/drivers/hwmon/jc42.c index 28c09ee..308346c 100644 --- a/drivers/hwmon/jc42.c +++ b/drivers/hwmon/jc42.c @@ -588,19 +588,8 @@ abort: return ret; } -static int __init sensors_jc42_init(void) -{ - return i2c_add_driver(&jc42_driver); -} - -static void __exit sensors_jc42_exit(void) -{ - i2c_del_driver(&jc42_driver); -} +module_i2c_driver(jc42_driver); MODULE_AUTHOR("Guenter Roeck "); MODULE_DESCRIPTION("JC42 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_jc42_init); -module_exit(sensors_jc42_exit); diff --git a/drivers/hwmon/lineage-pem.c b/drivers/hwmon/lineage-pem.c index 58eded2..5b8c9ae 100644 --- a/drivers/hwmon/lineage-pem.c +++ b/drivers/hwmon/lineage-pem.c @@ -568,19 +568,8 @@ static struct i2c_driver pem_driver = { .id_table = pem_id, }; -static int __init pem_init(void) -{ - return i2c_add_driver(&pem_driver); -} - -static void __exit pem_exit(void) -{ - i2c_del_driver(&pem_driver); -} +module_i2c_driver(pem_driver); MODULE_AUTHOR("Guenter Roeck "); MODULE_DESCRIPTION("Lineage CPL PEM hardware monitoring driver"); MODULE_LICENSE("GPL"); - -module_init(pem_init); -module_exit(pem_exit); diff --git a/drivers/hwmon/lm63.c b/drivers/hwmon/lm63.c index 5e6457a..15c05cc 100644 --- a/drivers/hwmon/lm63.c +++ b/drivers/hwmon/lm63.c @@ -1119,19 +1119,8 @@ static struct lm63_data *lm63_update_device(struct device *dev) return data; } -static int __init sensors_lm63_init(void) -{ - return i2c_add_driver(&lm63_driver); -} - -static void __exit sensors_lm63_exit(void) -{ - i2c_del_driver(&lm63_driver); -} +module_i2c_driver(lm63_driver); MODULE_AUTHOR("Jean Delvare "); MODULE_DESCRIPTION("LM63 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_lm63_init); -module_exit(sensors_lm63_exit); diff --git a/drivers/hwmon/lm73.c b/drivers/hwmon/lm73.c index 9c8093c..8fa2632 100644 --- a/drivers/hwmon/lm73.c +++ b/drivers/hwmon/lm73.c @@ -194,21 +194,8 @@ static struct i2c_driver lm73_driver = { .address_list = normal_i2c, }; -/* module glue */ - -static int __init sensors_lm73_init(void) -{ - return i2c_add_driver(&lm73_driver); -} - -static void __exit sensors_lm73_exit(void) -{ - i2c_del_driver(&lm73_driver); -} +module_i2c_driver(lm73_driver); MODULE_AUTHOR("Guillaume Ligneul "); MODULE_DESCRIPTION("LM73 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_lm73_init); -module_exit(sensors_lm73_exit); diff --git a/drivers/hwmon/lm75.c b/drivers/hwmon/lm75.c index b3311b1..a83f206 100644 --- a/drivers/hwmon/lm75.c +++ b/drivers/hwmon/lm75.c @@ -438,23 +438,8 @@ abort: return ret; } -/*-----------------------------------------------------------------------*/ - -/* module glue */ - -static int __init sensors_lm75_init(void) -{ - return i2c_add_driver(&lm75_driver); -} - -static void __exit sensors_lm75_exit(void) -{ - i2c_del_driver(&lm75_driver); -} +module_i2c_driver(lm75_driver); MODULE_AUTHOR("Frodo Looijaard "); MODULE_DESCRIPTION("LM75 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_lm75_init); -module_exit(sensors_lm75_exit); diff --git a/drivers/hwmon/lm77.c b/drivers/hwmon/lm77.c index 08f7ffe..d8c1f35 100644 --- a/drivers/hwmon/lm77.c +++ b/drivers/hwmon/lm77.c @@ -443,19 +443,8 @@ static struct lm77_data *lm77_update_device(struct device *dev) return data; } -static int __init sensors_lm77_init(void) -{ - return i2c_add_driver(&lm77_driver); -} - -static void __exit sensors_lm77_exit(void) -{ - i2c_del_driver(&lm77_driver); -} +module_i2c_driver(lm77_driver); MODULE_AUTHOR("Andras BALI "); MODULE_DESCRIPTION("LM77 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_lm77_init); -module_exit(sensors_lm77_exit); diff --git a/drivers/hwmon/lm80.c b/drivers/hwmon/lm80.c index dc6df4e..6a2a777 100644 --- a/drivers/hwmon/lm80.c +++ b/drivers/hwmon/lm80.c @@ -697,20 +697,9 @@ done: return ret; } -static int __init sensors_lm80_init(void) -{ - return i2c_add_driver(&lm80_driver); -} - -static void __exit sensors_lm80_exit(void) -{ - i2c_del_driver(&lm80_driver); -} +module_i2c_driver(lm80_driver); MODULE_AUTHOR("Frodo Looijaard and " "Philip Edelbrock "); MODULE_DESCRIPTION("LM80 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_lm80_init); -module_exit(sensors_lm80_exit); diff --git a/drivers/hwmon/lm83.c b/drivers/hwmon/lm83.c index 1fed265..cd45b9d 100644 --- a/drivers/hwmon/lm83.c +++ b/drivers/hwmon/lm83.c @@ -430,19 +430,8 @@ static struct lm83_data *lm83_update_device(struct device *dev) return data; } -static int __init sensors_lm83_init(void) -{ - return i2c_add_driver(&lm83_driver); -} - -static void __exit sensors_lm83_exit(void) -{ - i2c_del_driver(&lm83_driver); -} +module_i2c_driver(lm83_driver); MODULE_AUTHOR("Jean Delvare "); MODULE_DESCRIPTION("LM83 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_lm83_init); -module_exit(sensors_lm83_exit); diff --git a/drivers/hwmon/lm85.c b/drivers/hwmon/lm85.c index 240b7f9..7e46ebb 100644 --- a/drivers/hwmon/lm85.c +++ b/drivers/hwmon/lm85.c @@ -1695,22 +1695,10 @@ static struct lm85_data *lm85_update_device(struct device *dev) return data; } - -static int __init sm_lm85_init(void) -{ - return i2c_add_driver(&lm85_driver); -} - -static void __exit sm_lm85_exit(void) -{ - i2c_del_driver(&lm85_driver); -} +module_i2c_driver(lm85_driver); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Philip Pokorny , " "Margit Schubert-While , " "Justin Thiessen "); MODULE_DESCRIPTION("LM85-B, LM85-C driver"); - -module_init(sm_lm85_init); -module_exit(sm_lm85_exit); diff --git a/drivers/hwmon/lm87.c b/drivers/hwmon/lm87.c index ebf4efd..090f5ef 100644 --- a/drivers/hwmon/lm87.c +++ b/drivers/hwmon/lm87.c @@ -1054,19 +1054,8 @@ static struct lm87_data *lm87_update_device(struct device *dev) return data; } -static int __init sensors_lm87_init(void) -{ - return i2c_add_driver(&lm87_driver); -} - -static void __exit sensors_lm87_exit(void) -{ - i2c_del_driver(&lm87_driver); -} +module_i2c_driver(lm87_driver); MODULE_AUTHOR("Jean Delvare and others"); MODULE_DESCRIPTION("LM87 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_lm87_init); -module_exit(sensors_lm87_exit); diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c index d2dd5f9..248f2b4 100644 --- a/drivers/hwmon/lm90.c +++ b/drivers/hwmon/lm90.c @@ -1514,19 +1514,8 @@ static struct i2c_driver lm90_driver = { .address_list = normal_i2c, }; -static int __init sensors_lm90_init(void) -{ - return i2c_add_driver(&lm90_driver); -} - -static void __exit sensors_lm90_exit(void) -{ - i2c_del_driver(&lm90_driver); -} +module_i2c_driver(lm90_driver); MODULE_AUTHOR("Jean Delvare "); MODULE_DESCRIPTION("LM90/ADM1032 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_lm90_init); -module_exit(sensors_lm90_exit); diff --git a/drivers/hwmon/lm92.c b/drivers/hwmon/lm92.c index 95cda41..0fe2f37 100644 --- a/drivers/hwmon/lm92.c +++ b/drivers/hwmon/lm92.c @@ -432,19 +432,8 @@ static struct i2c_driver lm92_driver = { .address_list = normal_i2c, }; -static int __init sensors_lm92_init(void) -{ - return i2c_add_driver(&lm92_driver); -} - -static void __exit sensors_lm92_exit(void) -{ - i2c_del_driver(&lm92_driver); -} +module_i2c_driver(lm92_driver); MODULE_AUTHOR("Jean Delvare "); MODULE_DESCRIPTION("LM92/MAX6635 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_lm92_init); -module_exit(sensors_lm92_exit); diff --git a/drivers/hwmon/lm93.c b/drivers/hwmon/lm93.c index d2fc4ac..22ae5f0 100644 --- a/drivers/hwmon/lm93.c +++ b/drivers/hwmon/lm93.c @@ -2761,20 +2761,9 @@ static struct i2c_driver lm93_driver = { .address_list = normal_i2c, }; -static int __init lm93_init(void) -{ - return i2c_add_driver(&lm93_driver); -} - -static void __exit lm93_exit(void) -{ - i2c_del_driver(&lm93_driver); -} +module_i2c_driver(lm93_driver); MODULE_AUTHOR("Mark M. Hoffman , " "Hans J. Koch "); MODULE_DESCRIPTION("LM93 driver"); MODULE_LICENSE("GPL"); - -module_init(lm93_init); -module_exit(lm93_exit); diff --git a/drivers/hwmon/lm95241.c b/drivers/hwmon/lm95241.c index 70bca67..bd8cdb7 100644 --- a/drivers/hwmon/lm95241.c +++ b/drivers/hwmon/lm95241.c @@ -455,19 +455,8 @@ static struct i2c_driver lm95241_driver = { .address_list = normal_i2c, }; -static int __init sensors_lm95241_init(void) -{ - return i2c_add_driver(&lm95241_driver); -} - -static void __exit sensors_lm95241_exit(void) -{ - i2c_del_driver(&lm95241_driver); -} +module_i2c_driver(lm95241_driver); MODULE_AUTHOR("Davide Rizzo "); MODULE_DESCRIPTION("LM95241 sensor driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_lm95241_init); -module_exit(sensors_lm95241_exit); diff --git a/drivers/hwmon/lm95245.c b/drivers/hwmon/lm95245.c index 5e5fc1b..9a46c10 100644 --- a/drivers/hwmon/lm95245.c +++ b/drivers/hwmon/lm95245.c @@ -525,19 +525,8 @@ static struct i2c_driver lm95245_driver = { .address_list = normal_i2c, }; -static int __init sensors_lm95245_init(void) -{ - return i2c_add_driver(&lm95245_driver); -} - -static void __exit sensors_lm95245_exit(void) -{ - i2c_del_driver(&lm95245_driver); -} +module_i2c_driver(lm95245_driver); MODULE_AUTHOR("Alexander Stein "); MODULE_DESCRIPTION("LM95245 sensor driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_lm95245_init); -module_exit(sensors_lm95245_exit); diff --git a/drivers/hwmon/ltc4151.c b/drivers/hwmon/ltc4151.c index 4ac06b7..f646b45 100644 --- a/drivers/hwmon/ltc4151.c +++ b/drivers/hwmon/ltc4151.c @@ -238,19 +238,8 @@ static struct i2c_driver ltc4151_driver = { .id_table = ltc4151_id, }; -static int __init ltc4151_init(void) -{ - return i2c_add_driver(<c4151_driver); -} - -static void __exit ltc4151_exit(void) -{ - i2c_del_driver(<c4151_driver); -} +module_i2c_driver(ltc4151_driver); MODULE_AUTHOR("Per Dalen "); MODULE_DESCRIPTION("LTC4151 driver"); MODULE_LICENSE("GPL"); - -module_init(ltc4151_init); -module_exit(ltc4151_exit); diff --git a/drivers/hwmon/ltc4215.c b/drivers/hwmon/ltc4215.c index c7e6d8e..0789b63 100644 --- a/drivers/hwmon/ltc4215.c +++ b/drivers/hwmon/ltc4215.c @@ -309,19 +309,8 @@ static struct i2c_driver ltc4215_driver = { .id_table = ltc4215_id, }; -static int __init ltc4215_init(void) -{ - return i2c_add_driver(<c4215_driver); -} - -static void __exit ltc4215_exit(void) -{ - i2c_del_driver(<c4215_driver); -} +module_i2c_driver(ltc4215_driver); MODULE_AUTHOR("Ira W. Snyder "); MODULE_DESCRIPTION("LTC4215 driver"); MODULE_LICENSE("GPL"); - -module_init(ltc4215_init); -module_exit(ltc4215_exit); diff --git a/drivers/hwmon/ltc4245.c b/drivers/hwmon/ltc4245.c index 6593083..693a6bd 100644 --- a/drivers/hwmon/ltc4245.c +++ b/drivers/hwmon/ltc4245.c @@ -578,19 +578,8 @@ static struct i2c_driver ltc4245_driver = { .id_table = ltc4245_id, }; -static int __init ltc4245_init(void) -{ - return i2c_add_driver(<c4245_driver); -} - -static void __exit ltc4245_exit(void) -{ - i2c_del_driver(<c4245_driver); -} +module_i2c_driver(ltc4245_driver); MODULE_AUTHOR("Ira W. Snyder "); MODULE_DESCRIPTION("LTC4245 driver"); MODULE_LICENSE("GPL"); - -module_init(ltc4245_init); -module_exit(ltc4245_exit); diff --git a/drivers/hwmon/ltc4261.c b/drivers/hwmon/ltc4261.c index ce52355..ab1bfbf 100644 --- a/drivers/hwmon/ltc4261.c +++ b/drivers/hwmon/ltc4261.c @@ -297,19 +297,8 @@ static struct i2c_driver ltc4261_driver = { .id_table = ltc4261_id, }; -static int __init ltc4261_init(void) -{ - return i2c_add_driver(<c4261_driver); -} - -static void __exit ltc4261_exit(void) -{ - i2c_del_driver(<c4261_driver); -} +module_i2c_driver(ltc4261_driver); MODULE_AUTHOR("Guenter Roeck "); MODULE_DESCRIPTION("LTC4261 driver"); MODULE_LICENSE("GPL"); - -module_init(ltc4261_init); -module_exit(ltc4261_exit); diff --git a/drivers/hwmon/max16065.c b/drivers/hwmon/max16065.c index f8e323a..51edae9 100644 --- a/drivers/hwmon/max16065.c +++ b/drivers/hwmon/max16065.c @@ -699,19 +699,8 @@ static struct i2c_driver max16065_driver = { .id_table = max16065_id, }; -static int __init max16065_init(void) -{ - return i2c_add_driver(&max16065_driver); -} - -static void __exit max16065_exit(void) -{ - i2c_del_driver(&max16065_driver); -} +module_i2c_driver(max16065_driver); MODULE_AUTHOR("Guenter Roeck "); MODULE_DESCRIPTION("MAX16065 driver"); MODULE_LICENSE("GPL"); - -module_init(max16065_init); -module_exit(max16065_exit); diff --git a/drivers/hwmon/max1619.c b/drivers/hwmon/max1619.c index f19599f..ecac04a 100644 --- a/drivers/hwmon/max1619.c +++ b/drivers/hwmon/max1619.c @@ -360,20 +360,9 @@ static struct max1619_data *max1619_update_device(struct device *dev) return data; } -static int __init sensors_max1619_init(void) -{ - return i2c_add_driver(&max1619_driver); -} - -static void __exit sensors_max1619_exit(void) -{ - i2c_del_driver(&max1619_driver); -} +module_i2c_driver(max1619_driver); MODULE_AUTHOR("Alexey Fisher and " "Jean Delvare "); MODULE_DESCRIPTION("MAX1619 sensor driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_max1619_init); -module_exit(sensors_max1619_exit); diff --git a/drivers/hwmon/max1668.c b/drivers/hwmon/max1668.c index 88953f9..12249f7 100644 --- a/drivers/hwmon/max1668.c +++ b/drivers/hwmon/max1668.c @@ -484,19 +484,8 @@ static struct i2c_driver max1668_driver = { .address_list = max1668_addr_list, }; -static int __init sensors_max1668_init(void) -{ - return i2c_add_driver(&max1668_driver); -} - -static void __exit sensors_max1668_exit(void) -{ - i2c_del_driver(&max1668_driver); -} +module_i2c_driver(max1668_driver); MODULE_AUTHOR("David George "); MODULE_DESCRIPTION("MAX1668 remote temperature sensor driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_max1668_init) -module_exit(sensors_max1668_exit) diff --git a/drivers/hwmon/max6639.c b/drivers/hwmon/max6639.c index e10a092..d203eb1 100644 --- a/drivers/hwmon/max6639.c +++ b/drivers/hwmon/max6639.c @@ -635,19 +635,8 @@ static struct i2c_driver max6639_driver = { .address_list = normal_i2c, }; -static int __init max6639_init(void) -{ - return i2c_add_driver(&max6639_driver); -} - -static void __exit max6639_exit(void) -{ - i2c_del_driver(&max6639_driver); -} +module_i2c_driver(max6639_driver); MODULE_AUTHOR("Roland Stigge "); MODULE_DESCRIPTION("max6639 driver"); MODULE_LICENSE("GPL"); - -module_init(max6639_init); -module_exit(max6639_exit); diff --git a/drivers/hwmon/max6642.c b/drivers/hwmon/max6642.c index 209e8a5..4298909 100644 --- a/drivers/hwmon/max6642.c +++ b/drivers/hwmon/max6642.c @@ -352,19 +352,8 @@ static struct i2c_driver max6642_driver = { .address_list = normal_i2c, }; -static int __init max6642_init(void) -{ - return i2c_add_driver(&max6642_driver); -} - -static void __exit max6642_exit(void) -{ - i2c_del_driver(&max6642_driver); -} +module_i2c_driver(max6642_driver); MODULE_AUTHOR("Per Dalen "); MODULE_DESCRIPTION("MAX6642 sensor driver"); MODULE_LICENSE("GPL"); - -module_init(max6642_init); -module_exit(max6642_exit); diff --git a/drivers/hwmon/max6650.c b/drivers/hwmon/max6650.c index 159ce02..3296e6e 100644 --- a/drivers/hwmon/max6650.c +++ b/drivers/hwmon/max6650.c @@ -726,19 +726,8 @@ static struct max6650_data *max6650_update_device(struct device *dev) return data; } -static int __init sensors_max6650_init(void) -{ - return i2c_add_driver(&max6650_driver); -} - -static void __exit sensors_max6650_exit(void) -{ - i2c_del_driver(&max6650_driver); -} +module_i2c_driver(max6650_driver); MODULE_AUTHOR("Hans J. Koch"); MODULE_DESCRIPTION("MAX6650 sensor driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_max6650_init); -module_exit(sensors_max6650_exit); diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c index 81c7c2e..fe52c3c 100644 --- a/drivers/hwmon/pmbus/adm1275.c +++ b/drivers/hwmon/pmbus/adm1275.c @@ -326,18 +326,8 @@ static struct i2c_driver adm1275_driver = { .id_table = adm1275_id, }; -static int __init adm1275_init(void) -{ - return i2c_add_driver(&adm1275_driver); -} - -static void __exit adm1275_exit(void) -{ - i2c_del_driver(&adm1275_driver); -} +module_i2c_driver(adm1275_driver); MODULE_AUTHOR("Guenter Roeck"); MODULE_DESCRIPTION("PMBus driver for Analog Devices ADM1275 and compatibles"); MODULE_LICENSE("GPL"); -module_init(adm1275_init); -module_exit(adm1275_exit); diff --git a/drivers/hwmon/pmbus/lm25066.c b/drivers/hwmon/pmbus/lm25066.c index 84a37f0..86ac15a 100644 --- a/drivers/hwmon/pmbus/lm25066.c +++ b/drivers/hwmon/pmbus/lm25066.c @@ -334,18 +334,8 @@ static struct i2c_driver lm25066_driver = { .id_table = lm25066_id, }; -static int __init lm25066_init(void) -{ - return i2c_add_driver(&lm25066_driver); -} - -static void __exit lm25066_exit(void) -{ - i2c_del_driver(&lm25066_driver); -} +module_i2c_driver(lm25066_driver); MODULE_AUTHOR("Guenter Roeck"); MODULE_DESCRIPTION("PMBus driver for LM25066/LM5064/LM5066"); MODULE_LICENSE("GPL"); -module_init(lm25066_init); -module_exit(lm25066_exit); diff --git a/drivers/hwmon/pmbus/ltc2978.c b/drivers/hwmon/pmbus/ltc2978.c index 820fff4..c9e4dd2 100644 --- a/drivers/hwmon/pmbus/ltc2978.c +++ b/drivers/hwmon/pmbus/ltc2978.c @@ -391,18 +391,8 @@ static struct i2c_driver ltc2978_driver = { .id_table = ltc2978_id, }; -static int __init ltc2978_init(void) -{ - return i2c_add_driver(<c2978_driver); -} - -static void __exit ltc2978_exit(void) -{ - i2c_del_driver(<c2978_driver); -} +module_i2c_driver(ltc2978_driver); MODULE_AUTHOR("Guenter Roeck"); MODULE_DESCRIPTION("PMBus driver for LTC2978 and LTC3880"); MODULE_LICENSE("GPL"); -module_init(ltc2978_init); -module_exit(ltc2978_exit); diff --git a/drivers/hwmon/pmbus/max16064.c b/drivers/hwmon/pmbus/max16064.c index 1d77cf4..5cfe20f 100644 --- a/drivers/hwmon/pmbus/max16064.c +++ b/drivers/hwmon/pmbus/max16064.c @@ -126,18 +126,8 @@ static struct i2c_driver max16064_driver = { .id_table = max16064_id, }; -static int __init max16064_init(void) -{ - return i2c_add_driver(&max16064_driver); -} - -static void __exit max16064_exit(void) -{ - i2c_del_driver(&max16064_driver); -} +module_i2c_driver(max16064_driver); MODULE_AUTHOR("Guenter Roeck"); MODULE_DESCRIPTION("PMBus driver for Maxim MAX16064"); MODULE_LICENSE("GPL"); -module_init(max16064_init); -module_exit(max16064_exit); diff --git a/drivers/hwmon/pmbus/max34440.c b/drivers/hwmon/pmbus/max34440.c index beaf5a8..89ae303 100644 --- a/drivers/hwmon/pmbus/max34440.c +++ b/drivers/hwmon/pmbus/max34440.c @@ -248,18 +248,8 @@ static struct i2c_driver max34440_driver = { .id_table = max34440_id, }; -static int __init max34440_init(void) -{ - return i2c_add_driver(&max34440_driver); -} - -static void __exit max34440_exit(void) -{ - i2c_del_driver(&max34440_driver); -} +module_i2c_driver(max34440_driver); MODULE_AUTHOR("Guenter Roeck"); MODULE_DESCRIPTION("PMBus driver for Maxim MAX34440/MAX34441"); MODULE_LICENSE("GPL"); -module_init(max34440_init); -module_exit(max34440_exit); diff --git a/drivers/hwmon/pmbus/max8688.c b/drivers/hwmon/pmbus/max8688.c index e2b74bb..82c598d 100644 --- a/drivers/hwmon/pmbus/max8688.c +++ b/drivers/hwmon/pmbus/max8688.c @@ -203,18 +203,8 @@ static struct i2c_driver max8688_driver = { .id_table = max8688_id, }; -static int __init max8688_init(void) -{ - return i2c_add_driver(&max8688_driver); -} - -static void __exit max8688_exit(void) -{ - i2c_del_driver(&max8688_driver); -} +module_i2c_driver(max8688_driver); MODULE_AUTHOR("Guenter Roeck"); MODULE_DESCRIPTION("PMBus driver for Maxim MAX8688"); MODULE_LICENSE("GPL"); -module_init(max8688_init); -module_exit(max8688_exit); diff --git a/drivers/hwmon/pmbus/pmbus.c b/drivers/hwmon/pmbus/pmbus.c index 18a385e..da5fe36 100644 --- a/drivers/hwmon/pmbus/pmbus.c +++ b/drivers/hwmon/pmbus/pmbus.c @@ -224,18 +224,8 @@ static struct i2c_driver pmbus_driver = { .id_table = pmbus_id, }; -static int __init pmbus_init(void) -{ - return i2c_add_driver(&pmbus_driver); -} - -static void __exit pmbus_exit(void) -{ - i2c_del_driver(&pmbus_driver); -} +module_i2c_driver(pmbus_driver); MODULE_AUTHOR("Guenter Roeck"); MODULE_DESCRIPTION("Generic PMBus driver"); MODULE_LICENSE("GPL"); -module_init(pmbus_init); -module_exit(pmbus_exit); diff --git a/drivers/hwmon/pmbus/ucd9000.c b/drivers/hwmon/pmbus/ucd9000.c index 4ff6cf2..759a563 100644 --- a/drivers/hwmon/pmbus/ucd9000.c +++ b/drivers/hwmon/pmbus/ucd9000.c @@ -258,18 +258,8 @@ static struct i2c_driver ucd9000_driver = { .id_table = ucd9000_id, }; -static int __init ucd9000_init(void) -{ - return i2c_add_driver(&ucd9000_driver); -} - -static void __exit ucd9000_exit(void) -{ - i2c_del_driver(&ucd9000_driver); -} +module_i2c_driver(ucd9000_driver); MODULE_AUTHOR("Guenter Roeck"); MODULE_DESCRIPTION("PMBus driver for TI UCD90xxx"); MODULE_LICENSE("GPL"); -module_init(ucd9000_init); -module_exit(ucd9000_exit); diff --git a/drivers/hwmon/pmbus/ucd9200.c b/drivers/hwmon/pmbus/ucd9200.c index 6e1c1a8..629d0c9 100644 --- a/drivers/hwmon/pmbus/ucd9200.c +++ b/drivers/hwmon/pmbus/ucd9200.c @@ -190,18 +190,8 @@ static struct i2c_driver ucd9200_driver = { .id_table = ucd9200_id, }; -static int __init ucd9200_init(void) -{ - return i2c_add_driver(&ucd9200_driver); -} - -static void __exit ucd9200_exit(void) -{ - i2c_del_driver(&ucd9200_driver); -} +module_i2c_driver(ucd9200_driver); MODULE_AUTHOR("Guenter Roeck"); MODULE_DESCRIPTION("PMBus driver for TI UCD922x, UCD924x"); MODULE_LICENSE("GPL"); -module_init(ucd9200_init); -module_exit(ucd9200_exit); diff --git a/drivers/hwmon/pmbus/zl6100.c b/drivers/hwmon/pmbus/zl6100.c index 48c7b4a..0bb7bba 100644 --- a/drivers/hwmon/pmbus/zl6100.c +++ b/drivers/hwmon/pmbus/zl6100.c @@ -268,18 +268,8 @@ static struct i2c_driver zl6100_driver = { .id_table = zl6100_id, }; -static int __init zl6100_init(void) -{ - return i2c_add_driver(&zl6100_driver); -} - -static void __exit zl6100_exit(void) -{ - i2c_del_driver(&zl6100_driver); -} +module_i2c_driver(zl6100_driver); MODULE_AUTHOR("Guenter Roeck"); MODULE_DESCRIPTION("PMBus driver for ZL6100 and compatibles"); MODULE_LICENSE("GPL"); -module_init(zl6100_init); -module_exit(zl6100_exit); diff --git a/drivers/hwmon/sht21.c b/drivers/hwmon/sht21.c index 1539878..6c2dede 100644 --- a/drivers/hwmon/sht21.c +++ b/drivers/hwmon/sht21.c @@ -261,28 +261,7 @@ static struct i2c_driver sht21_driver = { .id_table = sht21_id, }; -/** - * sht21_init() - initialize driver - * - * Called when kernel is booted or module is inserted. - * Returns 0 on success. - */ -static int __init sht21_init(void) -{ - return i2c_add_driver(&sht21_driver); -} -module_init(sht21_init); - -/** - * sht21_init() - clean up driver - * - * Called when module is removed. - */ -static void __exit sht21_exit(void) -{ - i2c_del_driver(&sht21_driver); -} -module_exit(sht21_exit); +module_i2c_driver(sht21_driver); MODULE_AUTHOR("Urs Fleisch "); MODULE_DESCRIPTION("Sensirion SHT21 humidity and temperature sensor driver"); diff --git a/drivers/hwmon/smm665.c b/drivers/hwmon/smm665.c index 1b4301f..24382c7 100644 --- a/drivers/hwmon/smm665.c +++ b/drivers/hwmon/smm665.c @@ -718,19 +718,8 @@ static struct i2c_driver smm665_driver = { .id_table = smm665_id, }; -static int __init smm665_init(void) -{ - return i2c_add_driver(&smm665_driver); -} - -static void __exit smm665_exit(void) -{ - i2c_del_driver(&smm665_driver); -} +module_i2c_driver(smm665_driver); MODULE_AUTHOR("Guenter Roeck"); MODULE_DESCRIPTION("SMM665 driver"); MODULE_LICENSE("GPL"); - -module_init(smm665_init); -module_exit(smm665_exit); diff --git a/drivers/hwmon/smsc47m192.c b/drivers/hwmon/smsc47m192.c index 95761bd..307e6a6 100644 --- a/drivers/hwmon/smsc47m192.c +++ b/drivers/hwmon/smsc47m192.c @@ -669,19 +669,8 @@ static struct smsc47m192_data *smsc47m192_update_device(struct device *dev) return data; } -static int __init smsc47m192_init(void) -{ - return i2c_add_driver(&smsc47m192_driver); -} - -static void __exit smsc47m192_exit(void) -{ - i2c_del_driver(&smsc47m192_driver); -} +module_i2c_driver(smsc47m192_driver); MODULE_AUTHOR("Hartmut Rick "); MODULE_DESCRIPTION("SMSC47M192 driver"); MODULE_LICENSE("GPL"); - -module_init(smsc47m192_init); -module_exit(smsc47m192_exit); diff --git a/drivers/hwmon/thmc50.c b/drivers/hwmon/thmc50.c index a195914..51ddb37 100644 --- a/drivers/hwmon/thmc50.c +++ b/drivers/hwmon/thmc50.c @@ -482,18 +482,7 @@ static struct thmc50_data *thmc50_update_device(struct device *dev) return data; } -static int __init sm_thmc50_init(void) -{ - return i2c_add_driver(&thmc50_driver); -} - -static void __exit sm_thmc50_exit(void) -{ - i2c_del_driver(&thmc50_driver); -} +module_i2c_driver(thmc50_driver); MODULE_AUTHOR("Krzysztof Helt "); MODULE_DESCRIPTION("THMC50 driver"); - -module_init(sm_thmc50_init); -module_exit(sm_thmc50_exit); diff --git a/drivers/hwmon/tmp102.c b/drivers/hwmon/tmp102.c index c08eee2..0d466b9 100644 --- a/drivers/hwmon/tmp102.c +++ b/drivers/hwmon/tmp102.c @@ -292,17 +292,7 @@ static struct i2c_driver tmp102_driver = { .id_table = tmp102_id, }; -static int __init tmp102_init(void) -{ - return i2c_add_driver(&tmp102_driver); -} -module_init(tmp102_init); - -static void __exit tmp102_exit(void) -{ - i2c_del_driver(&tmp102_driver); -} -module_exit(tmp102_exit); +module_i2c_driver(tmp102_driver); MODULE_AUTHOR("Steven King "); MODULE_DESCRIPTION("Texas Instruments TMP102 temperature sensor driver"); diff --git a/drivers/hwmon/tmp401.c b/drivers/hwmon/tmp401.c index 8b9a774..92b7f1b 100644 --- a/drivers/hwmon/tmp401.c +++ b/drivers/hwmon/tmp401.c @@ -662,19 +662,8 @@ static struct i2c_driver tmp401_driver = { .address_list = normal_i2c, }; -static int __init tmp401_init(void) -{ - return i2c_add_driver(&tmp401_driver); -} - -static void __exit tmp401_exit(void) -{ - i2c_del_driver(&tmp401_driver); -} +module_i2c_driver(tmp401_driver); MODULE_AUTHOR("Hans de Goede "); MODULE_DESCRIPTION("Texas Instruments TMP401 temperature sensor driver"); MODULE_LICENSE("GPL"); - -module_init(tmp401_init); -module_exit(tmp401_exit); diff --git a/drivers/hwmon/tmp421.c b/drivers/hwmon/tmp421.c index c48381f..8fac87a 100644 --- a/drivers/hwmon/tmp421.c +++ b/drivers/hwmon/tmp421.c @@ -324,20 +324,9 @@ static struct i2c_driver tmp421_driver = { .address_list = normal_i2c, }; -static int __init tmp421_init(void) -{ - return i2c_add_driver(&tmp421_driver); -} - -static void __exit tmp421_exit(void) -{ - i2c_del_driver(&tmp421_driver); -} +module_i2c_driver(tmp421_driver); MODULE_AUTHOR("Andre Prendel "); MODULE_DESCRIPTION("Texas Instruments TMP421/422/423 temperature sensor" " driver"); MODULE_LICENSE("GPL"); - -module_init(tmp421_init); -module_exit(tmp421_exit); diff --git a/drivers/hwmon/w83791d.c b/drivers/hwmon/w83791d.c index 679146d..b92f01f 100644 --- a/drivers/hwmon/w83791d.c +++ b/drivers/hwmon/w83791d.c @@ -1668,19 +1668,8 @@ static void w83791d_print_debug(struct w83791d_data *data, struct device *dev) } #endif -static int __init sensors_w83791d_init(void) -{ - return i2c_add_driver(&w83791d_driver); -} - -static void __exit sensors_w83791d_exit(void) -{ - i2c_del_driver(&w83791d_driver); -} +module_i2c_driver(w83791d_driver); MODULE_AUTHOR("Charles Spirakis "); MODULE_DESCRIPTION("W83791D driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_w83791d_init); -module_exit(sensors_w83791d_exit); diff --git a/drivers/hwmon/w83792d.c b/drivers/hwmon/w83792d.c index e356618..1175dcf 100644 --- a/drivers/hwmon/w83792d.c +++ b/drivers/hwmon/w83792d.c @@ -1708,22 +1708,8 @@ static void w83792d_print_debug(struct w83792d_data *data, struct device *dev) } #endif -static int __init -sensors_w83792d_init(void) -{ - return i2c_add_driver(&w83792d_driver); -} - -static void __exit -sensors_w83792d_exit(void) -{ - i2c_del_driver(&w83792d_driver); -} +module_i2c_driver(w83792d_driver); MODULE_AUTHOR("Chunhao Huang @ Winbond "); MODULE_DESCRIPTION("W83792AD/D driver for linux-2.6"); MODULE_LICENSE("GPL"); - -module_init(sensors_w83792d_init); -module_exit(sensors_w83792d_exit); - diff --git a/drivers/hwmon/w83793.c b/drivers/hwmon/w83793.c index 5929d44..47f975c 100644 --- a/drivers/hwmon/w83793.c +++ b/drivers/hwmon/w83793.c @@ -2169,19 +2169,8 @@ END: return res; } -static int __init sensors_w83793_init(void) -{ - return i2c_add_driver(&w83793_driver); -} - -static void __exit sensors_w83793_exit(void) -{ - i2c_del_driver(&w83793_driver); -} +module_i2c_driver(w83793_driver); MODULE_AUTHOR("Yuan Mu, Sven Anders"); MODULE_DESCRIPTION("w83793 driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_w83793_init); -module_exit(sensors_w83793_exit); diff --git a/drivers/hwmon/w83795.c b/drivers/hwmon/w83795.c index aa58b25..deb12c9 100644 --- a/drivers/hwmon/w83795.c +++ b/drivers/hwmon/w83795.c @@ -2244,19 +2244,8 @@ static struct i2c_driver w83795_driver = { .address_list = normal_i2c, }; -static int __init sensors_w83795_init(void) -{ - return i2c_add_driver(&w83795_driver); -} - -static void __exit sensors_w83795_exit(void) -{ - i2c_del_driver(&w83795_driver); -} +module_i2c_driver(w83795_driver); MODULE_AUTHOR("Wei Song, Jean Delvare "); MODULE_DESCRIPTION("W83795G/ADG hardware monitoring driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_w83795_init); -module_exit(sensors_w83795_exit); diff --git a/drivers/hwmon/w83l785ts.c b/drivers/hwmon/w83l785ts.c index edfc1ec..bc07144 100644 --- a/drivers/hwmon/w83l785ts.c +++ b/drivers/hwmon/w83l785ts.c @@ -302,19 +302,8 @@ static struct w83l785ts_data *w83l785ts_update_device(struct device *dev) return data; } -static int __init sensors_w83l785ts_init(void) -{ - return i2c_add_driver(&w83l785ts_driver); -} - -static void __exit sensors_w83l785ts_exit(void) -{ - i2c_del_driver(&w83l785ts_driver); -} +module_i2c_driver(w83l785ts_driver); MODULE_AUTHOR("Jean Delvare "); MODULE_DESCRIPTION("W83L785TS-S driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_w83l785ts_init); -module_exit(sensors_w83l785ts_exit); diff --git a/drivers/hwmon/w83l786ng.c b/drivers/hwmon/w83l786ng.c index 6eac5d9..a6310b8 100644 --- a/drivers/hwmon/w83l786ng.c +++ b/drivers/hwmon/w83l786ng.c @@ -806,21 +806,8 @@ static struct w83l786ng_data *w83l786ng_update_device(struct device *dev) return data; } -static int __init -sensors_w83l786ng_init(void) -{ - return i2c_add_driver(&w83l786ng_driver); -} - -static void __exit -sensors_w83l786ng_exit(void) -{ - i2c_del_driver(&w83l786ng_driver); -} +module_i2c_driver(w83l786ng_driver); MODULE_AUTHOR("Kevin Lo"); MODULE_DESCRIPTION("w83l786ng driver"); MODULE_LICENSE("GPL"); - -module_init(sensors_w83l786ng_init); -module_exit(sensors_w83l786ng_exit); -- 1.7.5.4