* [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use
@ 2011-11-25 7:06 ` Axel Lin
0 siblings, 0 replies; 20+ messages in thread
From: Axel Lin @ 2011-11-25 7:06 UTC (permalink / raw)
To: linux-kernel
Cc: Corentin Labbe, Dirk Eibach, Mark M. Hoffman, Steve Glendinning,
Riku Voipio, Guillaume Ligneul, David George, Hans J. Koch,
Marc Hulsman, Rudolf Marek, Jean Delvare, Guenter Roeck,
lm-sensors
VGhpcyBwYXRjaCBjb252ZXJ0cyB0aGUgZHJpdmVycyBpbiBkcml2ZXJzL2h3bW9uLyogdG8gdXNl
IHRoZQptb2R1bGVfaTJjX2RyaXZlcigpIG1hY3JvIHdoaWNoIG1ha2VzIHRoZSBjb2RlIHNtYWxs
ZXIgYW5kIGEgYml0CnNpbXBsZXIuCgpDYzogQ29yZW50aW4gTGFiYmUgPGNvcmVudGluLmxhYmJl
QGdlb21hdHlzLmZyPgpDYzogRGlyayBFaWJhY2ggPGVpYmFjaEBnZHN5cy5kZT4KQ2M6ICJNYXJr
IE0uIEhvZmZtYW4iIDxtaG9mZm1hbkBsaWdodGxpbmsuY29tPgpDYzogU3RldmUgR2xlbmRpbm5p
bmcgPHN0ZXZlLmdsZW5kaW5uaW5nQHNtc2MuY29tPgpDYzogUmlrdSBWb2lwaW8gPHJpa3Uudm9p
cGlvQGlraS5maT4KQ2M6IEd1aWxsYXVtZSBMaWduZXVsIDxndWlsbGF1bWUubGlnbmV1bEBnbWFp
bC5jb20+CkNjOiBEYXZpZCBHZW9yZ2UgPGRhdmlkLmdlb3JnZUBza2EuYWMuemE+CkNjOiAiSGFu
cyBKLiBLb2NoIiA8aGprQGhhbnNqa29jaC5kZT4KQ2M6IE1hcmMgSHVsc21hbiA8bS5odWxzbWFu
QHR1ZGVsZnQubmw+CkNjOiBSdWRvbGYgTWFyZWsgPHIubWFyZWtAYXNzZW1ibGVyLmN6PgpTaWdu
ZWQtb2ZmLWJ5OiBBeGVsIExpbiA8YXhlbC5saW5AZ21haWwuY29tPgotLS0KIGRyaXZlcnMvaHdt
b24vYWQ3NDE0LmMgICAgICB8ICAgMTIgKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2FkNzQx
OC5jICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vYWRtMTAyMS5jICAg
ICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9hZG0xMDI1LmMgICAgIHwgICAx
MyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2FkbTEwMjYuYyAgICAgfCAgIDEzICstLS0t
LS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vYWRtMTAyOS5jICAgICB8ICAgMTggKy0tLS0tLS0tLS0t
LS0tLS0tCiBkcml2ZXJzL2h3bW9uL2FkbTEwMzEuYyAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0K
IGRyaXZlcnMvaHdtb24vYWRtOTI0MC5jICAgICB8ICAgMTQgKy0tLS0tLS0tLS0tLS0KIGRyaXZl
cnMvaHdtb24vYWRzMTAxNS5jICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21v
bi9hZHQ3NDExLmMgICAgIHwgICAxMiArLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vYWR0NzQ2
Mi5jICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9hZHQ3NDcwLmMgICAg
IHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2FkdDc0NzUuYyAgICAgfCAgIDEz
ICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vYW1jNjgyMS5jICAgICB8ICAgMTUgKy0tLS0t
LS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2FzYjEwMC5jICAgICAgfCAgIDEzICstLS0tLS0tLS0t
LS0KIGRyaXZlcnMvaHdtb24vYXR4cDEuYyAgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJp
dmVycy9od21vbi9kczE2MjEuYyAgICAgIHwgICAxNCArLS0tLS0tLS0tLS0tLQogZHJpdmVycy9o
d21vbi9kczYyMC5jICAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2Vt
YzE0MDMuYyAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vZW1jMjEwMy5j
ICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9lbWM2dzIwMS5jICAgIHwg
ICAxMiArLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vZjc1Mzc1cy5jICAgICB8ICAgMTMgKy0t
LS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9mc2NobWQuYyAgICAgIHwgICAxMyArLS0tLS0tLS0t
LS0tCiBkcml2ZXJzL2h3bW9uL2c3NjBhLmMgICAgICAgfCAgIDE1ICstLS0tLS0tLS0tLS0tLQog
ZHJpdmVycy9od21vbi9nbDUxOHNtLmMgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJz
L2h3bW9uL2dsNTIwc20uYyAgICAgfCAgIDE1ICstLS0tLS0tLS0tLS0tLQogZHJpdmVycy9od21v
bi9qYzQyLmMgICAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2xpbmVh
Z2UtcGVtLmMgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vbG02My5jICAgICAg
ICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9sbTczLmMgICAgICAgIHwgICAx
NSArLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vbG03NS5jICAgICAgICB8ICAgMTcgKy0t
LS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vbG03Ny5jICAgICAgICB8ICAgMTMgKy0tLS0t
LS0tLS0tLQogZHJpdmVycy9od21vbi9sbTgwLmMgICAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0t
CiBkcml2ZXJzL2h3bW9uL2xtODMuYyAgICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZl
cnMvaHdtb24vbG04NS5jICAgICAgICB8ICAgMTQgKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdt
b24vbG04Ny5jICAgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9sbTkw
LmMgICAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2xtOTIuYyAgICAg
ICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vbG05My5jICAgICAgICB8ICAg
MTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9sbTk1MjQxLmMgICAgIHwgICAxMyArLS0t
LS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL2xtOTUyNDUuYyAgICAgfCAgIDEzICstLS0tLS0tLS0t
LS0KIGRyaXZlcnMvaHdtb24vbHRjNDE1MS5jICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJp
dmVycy9od21vbi9sdGM0MjE1LmMgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3
bW9uL2x0YzQyNDUuYyAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vbHRj
NDI2MS5jICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9tYXgxNjA2NS5j
ICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9uL21heDE2MTkuYyAgICAgfCAg
IDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vbWF4MTY2OC5jICAgICB8ICAgMTMgKy0t
LS0tLS0tLS0tLQogZHJpdmVycy9od21vbi9tYXg2NjM5LmMgICAgIHwgICAxMyArLS0tLS0tLS0t
LS0tCiBkcml2ZXJzL2h3bW9uL21heDY2NDIuYyAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRy
aXZlcnMvaHdtb24vbWF4NjY1MC5jICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9o
d21vbi9zaHQyMS5jICAgICAgIHwgICAyMyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVy
cy9od21vbi9zbW02NjUuYyAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3bW9u
L3Ntc2M0N20xOTIuYyAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vdGhtYzUw
LmMgICAgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi90bXAxMDIuYyAgICAg
IHwgICAxMiArLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vdG1wNDAxLmMgICAgICB8ICAgMTMg
Ky0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi90bXA0MjEuYyAgICAgIHwgICAxMyArLS0tLS0t
LS0tLS0tCiBkcml2ZXJzL2h3bW9uL3c4Mzc5MWQuYyAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0K
IGRyaXZlcnMvaHdtb24vdzgzNzkyZC5jICAgICB8ICAgMTYgKy0tLS0tLS0tLS0tLS0tLQogZHJp
dmVycy9od21vbi93ODM3OTMuYyAgICAgIHwgICAxMyArLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2h3
bW9uL3c4Mzc5NS5jICAgICAgfCAgIDEzICstLS0tLS0tLS0tLS0KIGRyaXZlcnMvaHdtb24vdzgz
bDc4NXRzLmMgICB8ICAgMTMgKy0tLS0tLS0tLS0tLQogZHJpdmVycy9od21vbi93ODNsNzg2bmcu
YyAgIHwgICAxNSArLS0tLS0tLS0tLS0tLS0KIDY0IGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlv
bnMoKyksIDc5OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2FkNzQx
NC5jIGIvZHJpdmVycy9od21vbi9hZDc0MTQuYwppbmRleCBkZjI5YTdmLi4yMmMyNDIwIDEwMDY0
NAotLS0gYS9kcml2ZXJzL2h3bW9uL2FkNzQxNC5jCisrKyBiL2RyaXZlcnMvaHdtb24vYWQ3NDE0
LmMKQEAgLTI1MiwxNyArMjUyLDcgQEAgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGFkNzQxNF9k
cml2ZXIgPSB7CiAJLmlkX3RhYmxlID0gYWQ3NDE0X2lkLAogfTsKIAotc3RhdGljIGludCBfX2lu
aXQgYWQ3NDE0X2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmFkNzQxNF9k
cml2ZXIpOwotfQotbW9kdWxlX2luaXQoYWQ3NDE0X2luaXQpOwotCi1zdGF0aWMgdm9pZCBfX2V4
aXQgYWQ3NDE0X2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmYWQ3NDE0X2RyaXZlcik7
Ci19Ci1tb2R1bGVfZXhpdChhZDc0MTRfZXhpdCk7Cittb2R1bGVfaTJjX2RyaXZlcihhZDc0MTRf
ZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiU3RlZmFuIFJvZXNlIDxzciBhdCBkZW54LmRlPiwg
IgogCSAgICAgICJGcmFuayBFZGVsaGFldXNlciA8ZnJhbmsuZWRlbGhhZXVzZXIgYXQgc3BhbnNp
b24uY29tPiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hZDc0MTguYyBiL2RyaXZlcnMv
aHdtb24vYWQ3NDE4LmMKaW5kZXggOGNiNzE4Yy4uMzY3MjQ0YiAxMDA2NDQKLS0tIGEvZHJpdmVy
cy9od21vbi9hZDc0MTguYworKysgYi9kcml2ZXJzL2h3bW9uL2FkNzQxOC5jCkBAIC0yODksMjAg
KzI4OSw5IEBAIHN0YXRpYyBpbnQgYWQ3NDE4X3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xp
ZW50KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBhZDc0MThfaW5pdCh2b2lk
KQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmYWQ3NDE4X2RyaXZlcik7Ci19Ci0KLXN0YXRp
YyB2b2lkIF9fZXhpdCBhZDc0MThfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZhZDc0
MThfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGFkNzQxOF9kcml2ZXIpOwogCiBNT0RV
TEVfQVVUSE9SKCJBbGVzc2FuZHJvIFp1bW1vIDxhLnp1bW1vQHRvd2VydGVjaC5pdD4iKTsKIE1P
RFVMRV9ERVNDUklQVElPTigiQUQ3NDE2LzE3LzE4IGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0Uo
IkdQTCIpOwogTU9EVUxFX1ZFUlNJT04oRFJWX1ZFUlNJT04pOwotCi1tb2R1bGVfaW5pdChhZDc0
MThfaW5pdCk7Ci1tb2R1bGVfZXhpdChhZDc0MThfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJz
L2h3bW9uL2FkbTEwMjEuYyBiL2RyaXZlcnMvaHdtb24vYWRtMTAyMS5jCmluZGV4IDFhZDBhODgu
LjU0OThhZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vYWRtMTAyMS5jCisrKyBiL2RyaXZl
cnMvaHdtb24vYWRtMTAyMS5jCkBAIC00NTEsMTUgKzQ1MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgYWRt
MTAyMV9kYXRhICphZG0xMDIxX3VwZGF0ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJl
dHVybiBkYXRhOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3JzX2FkbTEwMjFfaW5pdCh2
b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmYWRtMTAyMV9kcml2ZXIpOwotfQotCi1z
dGF0aWMgdm9pZCBfX2V4aXQgc2Vuc29yc19hZG0xMDIxX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVs
X2RyaXZlcigmYWRtMTAyMV9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIoYWRtMTAyMV9k
cml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SICgiRnJvZG8gTG9vaWphYXJkIDxmcm9kb2xAZGRzLm5s
PiBhbmQgIgogCQkiUGhpbGlwIEVkZWxicm9jayA8cGhpbEBuZXRyb2VkZ2UuY29tPiIpOwpAQCAt
NDY4LDYgKzQ2MCwzIEBAIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIAogbW9kdWxlX3BhcmFtKHJl
YWRfb25seSwgYm9vbCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKHJlYWRfb25seSwgIkRvbid0IHNl
dCBhbnkgdmFsdWVzLCByZWFkIG9ubHkgbW9kZSIpOwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2Fk
bTEwMjFfaW5pdCkKLW1vZHVsZV9leGl0KHNlbnNvcnNfYWRtMTAyMV9leGl0KQpkaWZmIC0tZ2l0
IGEvZHJpdmVycy9od21vbi9hZG0xMDI1LmMgYi9kcml2ZXJzL2h3bW9uL2FkbTEwMjUuYwppbmRl
eCA2MGJlZmMwLi5mMDJjMzhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2FkbTEwMjUuYwor
KysgYi9kcml2ZXJzL2h3bW9uL2FkbTEwMjUuYwpAQCAtNTg5LDE5ICs1ODksOCBAQCBzdGF0aWMg
c3RydWN0IGFkbTEwMjVfZGF0YSAqYWRtMTAyNV91cGRhdGVfZGV2aWNlKHN0cnVjdCBkZXZpY2Ug
KmRldikKIAlyZXR1cm4gZGF0YTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgc2Vuc29yc19hZG0x
MDI1X2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmFkbTEwMjVfZHJpdmVy
KTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHNlbnNvcnNfYWRtMTAyNV9leGl0KHZvaWQpCi17
Ci0JaTJjX2RlbF9kcml2ZXIoJmFkbTEwMjVfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVy
KGFkbTEwMjVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiSmVhbiBEZWx2YXJlIDxraGFsaUBs
aW51eC1mci5vcmc+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkFETTEwMjUgZHJpdmVyIik7CiBN
T0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfYWRtMTAyNV9pbml0
KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfYWRtMTAyNV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZl
cnMvaHdtb24vYWRtMTAyNi5jIGIvZHJpdmVycy9od21vbi9hZG0xMDI2LmMKaW5kZXggMDUzMTg2
Ny4uYmUxNzA4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9hZG0xMDI2LmMKKysrIGIvZHJp
dmVycy9od21vbi9hZG0xMDI2LmMKQEAgLTE3NjEsMjAgKzE3NjEsOSBAQCBzdGF0aWMgaW50IGFk
bTEwMjZfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiAJcmV0dXJuIDA7CiB9CiAK
LXN0YXRpYyBpbnQgX19pbml0IHNtX2FkbTEwMjZfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNf
YWRkX2RyaXZlcigmYWRtMTAyNl9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc21f
YWRtMTAyNl9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmFkbTEwMjZfZHJpdmVyKTsK
LX0KK21vZHVsZV9pMmNfZHJpdmVyKGFkbTEwMjZfZHJpdmVyKTsKIAogTU9EVUxFX0xJQ0VOU0Uo
IkdQTCIpOwogTU9EVUxFX0FVVEhPUigiUGhpbGlwIFBva29ybnkgPHBwb2tvcm55QHBlbmd1aW5j
b21wdXRpbmcuY29tPiwgIgogCSAgICAgICJKdXN0aW4gVGhpZXNzZW4gPGp0aGllc3NlbkBwZW5n
dWluY29tcHV0aW5nLmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiQURNMTAyNiBkcml2ZXIi
KTsKLQotbW9kdWxlX2luaXQoc21fYWRtMTAyNl9pbml0KTsKLW1vZHVsZV9leGl0KHNtX2FkbTEw
MjZfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2FkbTEwMjkuYyBiL2RyaXZlcnMv
aHdtb24vYWRtMTAyOS5jCmluZGV4IDBiOGEzYjEuLjhlNWFkYjIgMTAwNjQ0Ci0tLSBhL2RyaXZl
cnMvaHdtb24vYWRtMTAyOS5jCisrKyBiL2RyaXZlcnMvaHdtb24vYWRtMTAyOS5jCkBAIC00NDYs
MjQgKzQ0Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgYWRtMTAyOV9kYXRhICphZG0xMDI5X3VwZGF0ZV9k
ZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkYXRhOwogfQogCi0vKgotCUNvbW1v
biBtb2R1bGUgc3R1ZmYKLSovCi1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3JzX2FkbTEwMjlfaW5p
dCh2b2lkKQotewotCi0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZhZG0xMDI5X2RyaXZlcik7Ci19
Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX2FkbTEwMjlfZXhpdCh2b2lkKQotewotCi0J
aTJjX2RlbF9kcml2ZXIoJmFkbTEwMjlfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGFk
bTEwMjlfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiQ29yZW50aW4gTEFCQkUgPGNvcmVudGlu
LmxhYmJlQGdlb21hdHlzLmZyPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJhZG0xMDI5IGRyaXZl
ciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2Fk
bTEwMjlfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5zb3JzX2FkbTEwMjlfZXhpdCk7CmRpZmYgLS1n
aXQgYS9kcml2ZXJzL2h3bW9uL2FkbTEwMzEuYyBiL2RyaXZlcnMvaHdtb24vYWRtMTAzMS5jCmlu
ZGV4IDA2ODNlNmIuLjcxYmU0MmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vYWRtMTAzMS5j
CisrKyBiL2RyaXZlcnMvaHdtb24vYWRtMTAzMS5jCkBAIC0xMDc4LDE5ICsxMDc4LDggQEAgc3Rh
dGljIHN0cnVjdCBhZG0xMDMxX2RhdGEgKmFkbTEwMzFfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2
aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNf
YWRtMTAzMV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZhZG0xMDMxX2Ry
aXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX2FkbTEwMzFfZXhpdCh2b2lk
KQotewotCWkyY19kZWxfZHJpdmVyKCZhZG0xMDMxX2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2Ry
aXZlcihhZG0xMDMxX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkFsZXhhbmRyZSBkJ0FsdG9u
IDxhbGV4QGFsZXhkYWx0b24ub3JnPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJBRE0xMDMxL0FE
TTEwMzAgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNl
bnNvcnNfYWRtMTAzMV9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfYWRtMTAzMV9leGl0KTsK
ZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWRtOTI0MC5jIGIvZHJpdmVycy9od21vbi9hZG05
MjQwLmMKaW5kZXggOWUyMzRiOS4uNWUzMDdiYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9h
ZG05MjQwLmMKKysrIGIvZHJpdmVycy9od21vbi9hZG05MjQwLmMKQEAgLTc5NSwyMSArNzk1LDkg
QEAgc3RhdGljIHN0cnVjdCBhZG05MjQwX2RhdGEgKmFkbTkyNDBfdXBkYXRlX2RldmljZShzdHJ1
Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IHNl
bnNvcnNfYWRtOTI0MF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZhZG05
MjQwX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX2FkbTkyNDBfZXhp
dCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZhZG05MjQwX2RyaXZlcik7Ci19Cittb2R1bGVf
aTJjX2RyaXZlcihhZG05MjQwX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIk1pY2hpZWwgUm9v
ayA8bWljaGllbEBncmVuZGVscHJvamVjdC5ubD4sICIKIAkJIkdyYW50IENvYWR5IDxnY29hZHku
bGtAZ21haWwuY29tPiBhbmQgb3RoZXJzIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkFETTkyNDAv
RFMxNzgwL0xNODEgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9p
bml0KHNlbnNvcnNfYWRtOTI0MF9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfYWRtOTI0MF9l
eGl0KTsKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hZHMxMDE1LmMgYi9kcml2ZXJzL2h3
bW9uL2FkczEwMTUuYwppbmRleCBlZWRjYTNjLi42MGJlMzU4IDEwMDY0NAotLS0gYS9kcml2ZXJz
L2h3bW9uL2FkczEwMTUuYworKysgYi9kcml2ZXJzL2h3bW9uL2FkczEwMTUuYwpAQCAtMzA2LDE5
ICszMDYsOCBAQCBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgYWRzMTAxNV9kcml2ZXIgPSB7CiAJ
LmlkX3RhYmxlID0gYWRzMTAxNV9pZCwKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNf
YWRzMTAxNV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZhZHMxMDE1X2Ry
aXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX2FkczEwMTVfZXhpdCh2b2lk
KQotewotCWkyY19kZWxfZHJpdmVyKCZhZHMxMDE1X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2Ry
aXZlcihhZHMxMDE1X2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkRpcmsgRWliYWNoIDxlaWJh
Y2hAZ2RzeXMuZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkFEUzEwMTUgZHJpdmVyIik7CiBN
T0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfYWRzMTAxNV9pbml0
KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfYWRzMTAxNV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZl
cnMvaHdtb24vYWR0NzQxMS5jIGIvZHJpdmVycy9od21vbi9hZHQ3NDExLmMKaW5kZXggNWNjM2Uz
Ny4uZTRkODZjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9hZHQ3NDExLmMKKysrIGIvZHJp
dmVycy9od21vbi9hZHQ3NDExLmMKQEAgLTM0OCwxNyArMzQ4LDcgQEAgc3RhdGljIHN0cnVjdCBp
MmNfZHJpdmVyIGFkdDc0MTFfZHJpdmVyID0gewogCS5jbGFzcyA9IEkyQ19DTEFTU19IV01PTiwK
IH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfYWR0NzQxMV9pbml0KHZvaWQpCi17Ci0J
cmV0dXJuIGkyY19hZGRfZHJpdmVyKCZhZHQ3NDExX2RyaXZlcik7Ci19Ci1tb2R1bGVfaW5pdChz
ZW5zb3JzX2FkdDc0MTFfaW5pdCkKLQotc3RhdGljIHZvaWQgX19leGl0IHNlbnNvcnNfYWR0NzQx
MV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmFkdDc0MTFfZHJpdmVyKTsKLX0KLW1v
ZHVsZV9leGl0KHNlbnNvcnNfYWR0NzQxMV9leGl0KQorbW9kdWxlX2kyY19kcml2ZXIoYWR0NzQx
MV9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0
cm9uaXguZGU+IGFuZCAiCiAJIldvbGZyYW0gU2FuZyA8dy5zYW5nQHBlbmd1dHJvbml4LmRlPiIp
OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hZHQ3NDYyLmMgYi9kcml2ZXJzL2h3bW9uL2Fk
dDc0NjIuYwppbmRleCAyYWYwYzdiLi4xYmViOGE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9u
L2FkdDc0NjIuYworKysgYi9kcml2ZXJzL2h3bW9uL2FkdDc0NjIuYwpAQCAtMTk3NSwxOSArMTk3
NSw4IEBAIHN0YXRpYyBpbnQgYWR0NzQ2Ml9yZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVu
dCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBfX2luaXQgYWR0NzQ2Ml9pbml0KHZvaWQp
Ci17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZhZHQ3NDYyX2RyaXZlcik7Ci19Ci0KLXN0YXRp
YyB2b2lkIF9fZXhpdCBhZHQ3NDYyX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmYWR0
NzQ2Ml9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIoYWR0NzQ2Ml9kcml2ZXIpOwogCiBN
T0RVTEVfQVVUSE9SKCJEYXJyaWNrIEouIFdvbmcgPGRqd29uZ0B1cy5pYm0uY29tPiIpOwogTU9E
VUxFX0RFU0NSSVBUSU9OKCJBRFQ3NDYyIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIp
OwotCi1tb2R1bGVfaW5pdChhZHQ3NDYyX2luaXQpOwotbW9kdWxlX2V4aXQoYWR0NzQ2Ml9leGl0
KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWR0NzQ3MC5jIGIvZHJpdmVycy9od21vbi9h
ZHQ3NDcwLmMKaW5kZXggYzZkMWNlMC4uZGRjYTIxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21v
bi9hZHQ3NDcwLmMKKysrIGIvZHJpdmVycy9od21vbi9hZHQ3NDcwLmMKQEAgLTEzMTcsMTkgKzEz
MTcsOCBAQCBzdGF0aWMgaW50IGFkdDc0NzBfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGll
bnQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IGFkdDc0NzBfaW5pdCh2b2lk
KQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmYWR0NzQ3MF9kcml2ZXIpOwotfQotCi1zdGF0
aWMgdm9pZCBfX2V4aXQgYWR0NzQ3MF9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmFk
dDc0NzBfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGFkdDc0NzBfZHJpdmVyKTsKIAog
TU9EVUxFX0FVVEhPUigiRGFycmljayBKLiBXb25nIDxkandvbmdAdXMuaWJtLmNvbT4iKTsKIE1P
RFVMRV9ERVNDUklQVElPTigiQURUNzQ3MCBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwi
KTsKLQotbW9kdWxlX2luaXQoYWR0NzQ3MF9pbml0KTsKLW1vZHVsZV9leGl0KGFkdDc0NzBfZXhp
dCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2FkdDc0NzUuYyBiL2RyaXZlcnMvaHdtb24v
YWR0NzQ3NS5jCmluZGV4IGI1ZmNkODcuLmM3NTM1NDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdt
b24vYWR0NzQ3NS5jCisrKyBiL2RyaXZlcnMvaHdtb24vYWR0NzQ3NS5jCkBAIC0xNjAwLDE5ICsx
NjAwLDggQEAgc3RhdGljIHN0cnVjdCBhZHQ3NDc1X2RhdGEgKmFkdDc0NzVfdXBkYXRlX2Rldmlj
ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAKLXN0YXRpYyBpbnQgX19p
bml0IHNlbnNvcnNfYWR0NzQ3NV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVy
KCZhZHQ3NDc1X2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX2FkdDc0
NzVfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZhZHQ3NDc1X2RyaXZlcik7Ci19Citt
b2R1bGVfaTJjX2RyaXZlcihhZHQ3NDc1X2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkFkdmFu
Y2VkIE1pY3JvIERldmljZXMsIEluYyIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJhZHQ3NDc1IGRy
aXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2Fk
dDc0NzVfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5zb3JzX2FkdDc0NzVfZXhpdCk7CmRpZmYgLS1n
aXQgYS9kcml2ZXJzL2h3bW9uL2FtYzY4MjEuYyBiL2RyaXZlcnMvaHdtb24vYW1jNjgyMS5jCmlu
ZGV4IDQwMzM5NzQuLmRhNmNhNGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vYW1jNjgyMS5j
CisrKyBiL2RyaXZlcnMvaHdtb24vYW1jNjgyMS5jCkBAIC0xMDk1LDIwICsxMDk1LDcgQEAgc3Rh
dGljIHN0cnVjdCBhbWM2ODIxX2RhdGEgKmFtYzY4MjFfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2
aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAKLQotc3RhdGljIGludCBfX2luaXQgYW1jNjgy
MV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZhbWM2ODIxX2RyaXZlcik7
Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBhbWM2ODIxX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVs
X2RyaXZlcigmYW1jNjgyMV9kcml2ZXIpOwotfQotCi1tb2R1bGVfaW5pdChhbWM2ODIxX2luaXQp
OwotbW9kdWxlX2V4aXQoYW1jNjgyMV9leGl0KTsKLQorbW9kdWxlX2kyY19kcml2ZXIoYW1jNjgy
MV9kcml2ZXIpOwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfQVVUSE9SKCJULiBN
ZXJ0ZWxqIDx0b21hei5tZXJ0ZWxqQGd1ZXN0LmFybmVzLnNpPiIpOwpkaWZmIC0tZ2l0IGEvZHJp
dmVycy9od21vbi9hc2IxMDAuYyBiL2RyaXZlcnMvaHdtb24vYXNiMTAwLmMKaW5kZXggZDdiZDFm
My4uMGYzMDBjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9hc2IxMDAuYworKysgYi9kcml2
ZXJzL2h3bW9uL2FzYjEwMC5jCkBAIC05NzEsMTkgKzk3MSw4IEBAIHN0YXRpYyBzdHJ1Y3QgYXNi
MTAwX2RhdGEgKmFzYjEwMF91cGRhdGVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlyZXR1
cm4gZGF0YTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgYXNiMTAwX2luaXQodm9pZCkKLXsKLQly
ZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmFzYjEwMF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBf
X2V4aXQgYXNiMTAwX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmYXNiMTAwX2RyaXZl
cik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihhc2IxMDBfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhP
UigiTWFyayBNLiBIb2ZmbWFuIDxtaG9mZm1hbkBsaWdodGxpbmsuY29tPiIpOwogTU9EVUxFX0RF
U0NSSVBUSU9OKCJBU0IxMDAgQmFjaCBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsK
LQotbW9kdWxlX2luaXQoYXNiMTAwX2luaXQpOwotbW9kdWxlX2V4aXQoYXNiMTAwX2V4aXQpOwpk
aWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hdHhwMS5jIGIvZHJpdmVycy9od21vbi9hdHhwMS5j
CmluZGV4IDMzY2MxNDMuLjcwMWJjOWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vYXR4cDEu
YworKysgYi9kcml2ZXJzL2h3bW9uL2F0eHAxLmMKQEAgLTM2NywxNSArMzY3LDQgQEAgc3RhdGlj
IGludCBhdHhwMV9yZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKIAlyZXR1cm4gMDsK
IH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGF0eHAxX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJj
X2FkZF9kcml2ZXIoJmF0eHAxX2RyaXZlcik7Ci19OwotCi1zdGF0aWMgdm9pZCBfX2V4aXQgYXR4
cDFfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZhdHhwMV9kcml2ZXIpOwotfTsKLQot
bW9kdWxlX2luaXQoYXR4cDFfaW5pdCk7Ci1tb2R1bGVfZXhpdChhdHhwMV9leGl0KTsKK21vZHVs
ZV9pMmNfZHJpdmVyKGF0eHAxX2RyaXZlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2Rz
MTYyMS5jIGIvZHJpdmVycy9od21vbi9kczE2MjEuYwppbmRleCBlZjFhYzk5Ni4uOTgzMmFjNSAx
MDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9kczE2MjEuYworKysgYi9kcml2ZXJzL2h3bW9uL2Rz
MTYyMS5jCkBAIC0zMDUsMjAgKzMwNSw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBkczE2
MjFfZHJpdmVyID0gewogCS5hZGRyZXNzX2xpc3QJPSBub3JtYWxfaTJjLAogfTsKIAotc3RhdGlj
IGludCBfX2luaXQgZHMxNjIxX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIo
JmRzMTYyMV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgZHMxNjIxX2V4aXQodm9p
ZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmZHMxNjIxX2RyaXZlcik7Ci19Ci0KK21vZHVsZV9pMmNf
ZHJpdmVyKGRzMTYyMV9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJDaHJpc3RpYW4gVy4gWnVj
a3NjaHdlcmR0IDx6YW55QHRyaXEubmV0PiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJEUzE2MjEg
ZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KGRzMTYyMV9p
bml0KTsKLW1vZHVsZV9leGl0KGRzMTYyMV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdt
b24vZHM2MjAuYyBiL2RyaXZlcnMvaHdtb24vZHM2MjAuYwppbmRleCAyMjVhZTRmLi4yZTJiNDMw
IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2RzNjIwLmMKKysrIGIvZHJpdmVycy9od21vbi9k
czYyMC5jCkBAIC0yOTcsMTkgKzI5Nyw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBkczYy
MF9kcml2ZXIgPSB7CiAJLmlkX3RhYmxlID0gZHM2MjBfaWQsCiB9OwogCi1zdGF0aWMgaW50IF9f
aW5pdCBkczYyMF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZkczYyMF9k
cml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgZHM2MjBfZXhpdCh2b2lkKQotewotCWky
Y19kZWxfZHJpdmVyKCZkczYyMF9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIoZHM2MjBf
ZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiUm9sYW5kIFN0aWdnZSA8c3RpZ2dlQGFudGNvbS5k
ZT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiRFM2MjAgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5T
RSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KGRzNjIwX2luaXQpOwotbW9kdWxlX2V4aXQoZHM2MjBf
ZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2VtYzE0MDMuYyBiL2RyaXZlcnMvaHdt
b24vZW1jMTQwMy5jCmluZGV4IGNkMmE2ZTQuLjIyM2JkM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv
aHdtb24vZW1jMTQwMy5jCisrKyBiL2RyaXZlcnMvaHdtb24vZW1jMTQwMy5jCkBAIC0zNjYsMTgg
KzM2Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBzZW5zb3JfZW1jMTQwMyA9IHsKIAku
YWRkcmVzc19saXN0ID0gZW1jMTQwM19hZGRyZXNzX2xpc3QsCiB9OwogCi1zdGF0aWMgaW50IF9f
aW5pdCBzZW5zb3JfZW1jMTQwM19pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVy
KCZzZW5zb3JfZW1jMTQwMyk7Ci19Ci0KLXN0YXRpYyB2b2lkICBfX2V4aXQgc2Vuc29yX2VtYzE0
MDNfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZzZW5zb3JfZW1jMTQwMyk7Ci19Ci0K
LW1vZHVsZV9pbml0KHNlbnNvcl9lbWMxNDAzX2luaXQpOwotbW9kdWxlX2V4aXQoc2Vuc29yX2Vt
YzE0MDNfZXhpdCk7Cittb2R1bGVfaTJjX2RyaXZlcihzZW5zb3JfZW1jMTQwMyk7CiAKIE1PRFVM
RV9BVVRIT1IoIkthbGhhbiBUcmlzYWwgPGthbGhhbi50cmlzYWxAaW50ZWwuY29tIik7CiBNT0RV
TEVfREVTQ1JJUFRJT04oImVtYzE0MDMgVGhlcm1hbCBEcml2ZXIiKTsKZGlmZiAtLWdpdCBhL2Ry
aXZlcnMvaHdtb24vZW1jMjEwMy5jIGIvZHJpdmVycy9od21vbi9lbWMyMTAzLmMKaW5kZXggYWY5
MTRhZDkuLmMyNTE0NDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vZW1jMjEwMy5jCisrKyBi
L2RyaXZlcnMvaHdtb24vZW1jMjEwMy5jCkBAIC03MjIsMTkgKzcyMiw4IEBAIHN0YXRpYyBzdHJ1
Y3QgaTJjX2RyaXZlciBlbWMyMTAzX2RyaXZlciA9IHsKIAkuYWRkcmVzc19saXN0CT0gbm9ybWFs
X2kyYywKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfZW1jMjEwM19pbml0KHZvaWQp
Ci17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZlbWMyMTAzX2RyaXZlcik7Ci19Ci0KLXN0YXRp
YyB2b2lkIF9fZXhpdCBzZW5zb3JzX2VtYzIxMDNfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJp
dmVyKCZlbWMyMTAzX2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihlbWMyMTAzX2RyaXZl
cik7CiAKIE1PRFVMRV9BVVRIT1IoIlN0ZXZlIEdsZW5kaW5uaW5nIDxzdGV2ZS5nbGVuZGlubmlu
Z0BzbXNjLmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiU01TQyBFTUMyMTAzIGh3bW9uIGRy
aXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2Vt
YzIxMDNfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5zb3JzX2VtYzIxMDNfZXhpdCk7CmRpZmYgLS1n
aXQgYS9kcml2ZXJzL2h3bW9uL2VtYzZ3MjAxLmMgYi9kcml2ZXJzL2h3bW9uL2VtYzZ3MjAxLmMK
aW5kZXggMDA2NDQzMi4uY2JlZjZlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9lbWM2dzIw
MS5jCisrKyBiL2RyaXZlcnMvaHdtb24vZW1jNncyMDEuYwpAQCAtNTUyLDE3ICs1NTIsNyBAQCBz
dGF0aWMgc3RydWN0IGkyY19kcml2ZXIgZW1jNncyMDFfZHJpdmVyID0gewogCS5hZGRyZXNzX2xp
c3QJPSBub3JtYWxfaTJjLAogfTsKIAotc3RhdGljIGludCBfX2luaXQgc2Vuc29yc19lbWM2dzIw
MV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZlbWM2dzIwMV9kcml2ZXIp
OwotfQotbW9kdWxlX2luaXQoc2Vuc29yc19lbWM2dzIwMV9pbml0KTsKLQotc3RhdGljIHZvaWQg
X19leGl0IHNlbnNvcnNfZW1jNncyMDFfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZl
bWM2dzIwMV9kcml2ZXIpOwotfQotbW9kdWxlX2V4aXQoc2Vuc29yc19lbWM2dzIwMV9leGl0KTsK
K21vZHVsZV9pMmNfZHJpdmVyKGVtYzZ3MjAxX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIkpl
YW4gRGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3JnPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJT
TVNDIEVNQzZXMjAxIGhhcmR3YXJlIG1vbml0b3JpbmcgZHJpdmVyIik7CmRpZmYgLS1naXQgYS9k
cml2ZXJzL2h3bW9uL2Y3NTM3NXMuYyBiL2RyaXZlcnMvaHdtb24vZjc1Mzc1cy5jCmluZGV4IDk1
Y2JmYjMuLjgzMjYwODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vZjc1Mzc1cy5jCisrKyBi
L2RyaXZlcnMvaHdtb24vZjc1Mzc1cy5jCkBAIC02OTksMTkgKzY5OSw4IEBAIHN0YXRpYyBpbnQg
Zjc1Mzc1X2RldGVjdChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogCXJldHVybiAwOwogfQog
Ci1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3JzX2Y3NTM3NV9pbml0KHZvaWQpCi17Ci0JcmV0dXJu
IGkyY19hZGRfZHJpdmVyKCZmNzUzNzVfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0
IHNlbnNvcnNfZjc1Mzc1X2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmZjc1Mzc1X2Ry
aXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihmNzUzNzVfZHJpdmVyKTsKIAogTU9EVUxFX0FV
VEhPUigiUmlrdSBWb2lwaW8iKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9ERVND
UklQVElPTigiRjc1MzczL0Y3NTM3NSBoYXJkd2FyZSBtb25pdG9yaW5nIGRyaXZlciIpOwotCi1t
b2R1bGVfaW5pdChzZW5zb3JzX2Y3NTM3NV9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfZjc1
Mzc1X2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9mc2NobWQuYyBiL2RyaXZlcnMv
aHdtb24vZnNjaG1kLmMKaW5kZXggYWE2ZDhiNi4uNzNiYTk0MiAxMDA2NDQKLS0tIGEvZHJpdmVy
cy9od21vbi9mc2NobWQuYworKysgYi9kcml2ZXJzL2h3bW9uL2ZzY2htZC5jCkBAIC0xMzE0LDIw
ICsxMzE0LDkgQEAgc3RhdGljIHN0cnVjdCBmc2NobWRfZGF0YSAqZnNjaG1kX3VwZGF0ZV9kZXZp
Y2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkYXRhOwogfQogCi1zdGF0aWMgaW50IF9f
aW5pdCBmc2NobWRfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmZnNjaG1k
X2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBmc2NobWRfZXhpdCh2b2lkKQotewot
CWkyY19kZWxfZHJpdmVyKCZmc2NobWRfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGZz
Y2htZF9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUBy
ZWRoYXQuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJGU0MgUG9zZWlkb24sIEhlcm1lcywg
U2N5bGxhLCBIZXJhY2xlcywgSGVpbWRhbGwsIEhhZGVzICIKIAkJCSJhbmQgU3lsZXVzIGRyaXZl
ciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChmc2NobWRfaW5pdCk7
Ci1tb2R1bGVfZXhpdChmc2NobWRfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2c3
NjBhLmMgYi9kcml2ZXJzL2h3bW9uL2c3NjBhLmMKaW5kZXggMWQ2YTZmYS4uZjhjZDVhOSAxMDA2
NDQKLS0tIGEvZHJpdmVycy9od21vbi9nNzYwYS5jCisrKyBiL2RyaXZlcnMvaHdtb24vZzc2MGEu
YwpAQCAtMjUwLDIxICsyNTAsOCBAQCBzdGF0aWMgaW50IGc3NjBhX3JlbW92ZShzdHJ1Y3QgaTJj
X2NsaWVudCAqY2xpZW50KQogCXJldHVybiAwOwogfQogCi0vKiBtb2R1bGUgbWFuYWdlbWVudCAq
LwotCi1zdGF0aWMgaW50IF9faW5pdCBnNzYwYV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19h
ZGRfZHJpdmVyKCZnNzYwYV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgZzc2MGFf
ZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZnNzYwYV9kcml2ZXIpOwotfQorbW9kdWxl
X2kyY19kcml2ZXIoZzc2MGFfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiSGVyYmVydCBWYWxl
cmlvIFJpZWRlbCA8aHZyQGdudS5vcmc+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkdNVCBHNzYw
QSBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQoZzc2MGFf
aW5pdCk7Ci1tb2R1bGVfZXhpdChnNzYwYV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdt
b24vZ2w1MThzbS5jIGIvZHJpdmVycy9od21vbi9nbDUxOHNtLmMKaW5kZXggYTEzZTJkYS4uODli
OGMwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9nbDUxOHNtLmMKKysrIGIvZHJpdmVycy9o
d21vbi9nbDUxOHNtLmMKQEAgLTY3NiwyMSArNjc2LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgZ2w1MThf
ZGF0YSAqZ2w1MThfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIGRh
dGE7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfZ2w1MThzbV9pbml0KHZvaWQpCi17
Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZnbDUxOF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9p
ZCBfX2V4aXQgc2Vuc29yc19nbDUxOHNtX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigm
Z2w1MThfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGdsNTE4X2RyaXZlcik7CiAKIE1P
RFVMRV9BVVRIT1IoIkZyb2RvIExvb2lqYWFyZCA8ZnJvZG9sQGRkcy5ubD4sICIKIAkiS3lvc3Rp
IE1hbGtraSA8a21hbGtraUBjYy5odXQuZmk+IGFuZCAiCiAJIkhvbmctR3VubiBDaGV3IDxoZ2xp
bnV4QGd1bm5ldC5vcmc+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkdMNTE4U00gZHJpdmVyIik7
CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfZ2w1MThzbV9p
bml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfZ2w1MThzbV9leGl0KTsKZGlmZiAtLWdpdCBhL2Ry
aXZlcnMvaHdtb24vZ2w1MjBzbS5jIGIvZHJpdmVycy9od21vbi9nbDUyMHNtLmMKaW5kZXggY2Q2
MDg1Yi4uZTZkY2Y2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9nbDUyMHNtLmMKKysrIGIv
ZHJpdmVycy9od21vbi9nbDUyMHNtLmMKQEAgLTkxMCwyMyArOTEwLDEwIEBAIHN0YXRpYyBzdHJ1
Y3QgZ2w1MjBfZGF0YSAqZ2w1MjBfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJ
cmV0dXJuIGRhdGE7CiB9CiAKLQotc3RhdGljIGludCBfX2luaXQgc2Vuc29yc19nbDUyMHNtX2lu
aXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmdsNTIwX2RyaXZlcik7Ci19Ci0K
LXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX2dsNTIwc21fZXhpdCh2b2lkKQotewotCWkyY19k
ZWxfZHJpdmVyKCZnbDUyMF9kcml2ZXIpOwotfQotCittb2R1bGVfaTJjX2RyaXZlcihnbDUyMF9k
cml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJGcm9kbyBMb29pamFhcmQgPGZyb2RvbEBkZHMubmw+
LCAiCiAJIkt5w7ZzdGkgTcOkbGtraSA8a21hbGtraUBjYy5odXQuZmk+LCAiCiAJIk1hYXJ0ZW4g
RGVwcmV6IDxtYWFydGVuZGVwcmV6QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4iKTsKIE1PRFVMRV9E
RVNDUklQVElPTigiR0w1MjBTTSBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQot
bW9kdWxlX2luaXQoc2Vuc29yc19nbDUyMHNtX2luaXQpOwotbW9kdWxlX2V4aXQoc2Vuc29yc19n
bDUyMHNtX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9qYzQyLmMgYi9kcml2ZXJz
L2h3bW9uL2pjNDIuYwppbmRleCAyZDNkNzI4Li5kMzNjNTkyIDEwMDY0NAotLS0gYS9kcml2ZXJz
L2h3bW9uL2pjNDIuYworKysgYi9kcml2ZXJzL2h3bW9uL2pjNDIuYwpAQCAtNTg4LDE5ICs1ODgs
OCBAQCBhYm9ydDoKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3Jz
X2pjNDJfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmamM0Ml9kcml2ZXIp
OwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc2Vuc29yc19qYzQyX2V4aXQodm9pZCkKLXsKLQlp
MmNfZGVsX2RyaXZlcigmamM0Ml9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIoamM0Ml9k
cml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJHdWVudGVyIFJvZWNrIDxndWVudGVyLnJvZWNrQGVy
aWNzc29uLmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiSkM0MiBkcml2ZXIiKTsKIE1PRFVM
RV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQoc2Vuc29yc19qYzQyX2luaXQpOwotbW9k
dWxlX2V4aXQoc2Vuc29yc19qYzQyX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9s
aW5lYWdlLXBlbS5jIGIvZHJpdmVycy9od21vbi9saW5lYWdlLXBlbS5jCmluZGV4IDU4ZWRlZDIu
LjViOGM5YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbGluZWFnZS1wZW0uYworKysgYi9k
cml2ZXJzL2h3bW9uL2xpbmVhZ2UtcGVtLmMKQEAgLTU2OCwxOSArNTY4LDggQEAgc3RhdGljIHN0
cnVjdCBpMmNfZHJpdmVyIHBlbV9kcml2ZXIgPSB7CiAJLmlkX3RhYmxlID0gcGVtX2lkLAogfTsK
IAotc3RhdGljIGludCBfX2luaXQgcGVtX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9k
cml2ZXIoJnBlbV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgcGVtX2V4aXQodm9p
ZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmcGVtX2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZl
cihwZW1fZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiR3VlbnRlciBSb2VjayA8Z3VlbnRlci5y
b2Vja0Blcmljc3Nvbi5jb20+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkxpbmVhZ2UgQ1BMIFBF
TSBoYXJkd2FyZSBtb25pdG9yaW5nIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwot
Ci1tb2R1bGVfaW5pdChwZW1faW5pdCk7Ci1tb2R1bGVfZXhpdChwZW1fZXhpdCk7CmRpZmYgLS1n
aXQgYS9kcml2ZXJzL2h3bW9uL2xtNjMuYyBiL2RyaXZlcnMvaHdtb24vbG02My5jCmluZGV4IDk2
NDIyODYuLjJlYWUxYmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbG02My5jCisrKyBiL2Ry
aXZlcnMvaHdtb24vbG02My5jCkBAIC03MjcsMTkgKzcyNyw4IEBAIHN0YXRpYyBzdHJ1Y3QgbG02
M19kYXRhICpsbTYzX3VwZGF0ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBk
YXRhOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3JzX2xtNjNfaW5pdCh2b2lkKQotewot
CXJldHVybiBpMmNfYWRkX2RyaXZlcigmbG02M19kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBf
X2V4aXQgc2Vuc29yc19sbTYzX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbG02M19k
cml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIobG02M19kcml2ZXIpOwogCiBNT0RVTEVfQVVU
SE9SKCJKZWFuIERlbHZhcmUgPGtoYWxpQGxpbnV4LWZyLm9yZz4iKTsKIE1PRFVMRV9ERVNDUklQ
VElPTigiTE02MyBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2lu
aXQoc2Vuc29yc19sbTYzX2luaXQpOwotbW9kdWxlX2V4aXQoc2Vuc29yc19sbTYzX2V4aXQpOwpk
aWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9sbTczLmMgYi9kcml2ZXJzL2h3bW9uL2xtNzMuYwpp
bmRleCA5ZTY0ZDk2Li4yYzYzZjE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2xtNzMuYwor
KysgYi9kcml2ZXJzL2h3bW9uL2xtNzMuYwpAQCAtMTk0LDIxICsxOTQsOCBAQCBzdGF0aWMgc3Ry
dWN0IGkyY19kcml2ZXIgbG03M19kcml2ZXIgPSB7CiAJLmFkZHJlc3NfbGlzdAk9IG5vcm1hbF9p
MmMsCiB9OwogCi0vKiBtb2R1bGUgZ2x1ZSAqLwotCi1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3Jz
X2xtNzNfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmbG03M19kcml2ZXIp
OwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc2Vuc29yc19sbTczX2V4aXQodm9pZCkKLXsKLQlp
MmNfZGVsX2RyaXZlcigmbG03M19kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIobG03M19k
cml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJHdWlsbGF1bWUgTGlnbmV1bCA8Z3VpbGxhdW1lLmxp
Z25ldWxAZ21haWwuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJMTTczIGRyaXZlciIpOwog
TU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2xtNzNfaW5pdCk7
Ci1tb2R1bGVfZXhpdChzZW5zb3JzX2xtNzNfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3
bW9uL2xtNzUuYyBiL2RyaXZlcnMvaHdtb24vbG03NS5jCmluZGV4IDE4ODhkZDAuLmYzYWFhMzAg
MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbG03NS5jCisrKyBiL2RyaXZlcnMvaHdtb24vbG03
NS5jCkBAIC00MjksMjMgKzQyOSw4IEBAIHN0YXRpYyBzdHJ1Y3QgbG03NV9kYXRhICpsbTc1X3Vw
ZGF0ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkYXRhOwogfQogCi0vKi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KLQotLyogbW9kdWxlIGdsdWUgKi8KLQotc3RhdGljIGludCBfX2luaXQg
c2Vuc29yc19sbTc1X2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmxtNzVf
ZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHNlbnNvcnNfbG03NV9leGl0KHZvaWQp
Ci17Ci0JaTJjX2RlbF9kcml2ZXIoJmxtNzVfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVy
KGxtNzVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiRnJvZG8gTG9vaWphYXJkIDxmcm9kb2xA
ZGRzLm5sPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJMTTc1IGRyaXZlciIpOwogTU9EVUxFX0xJ
Q0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2xtNzVfaW5pdCk7Ci1tb2R1bGVf
ZXhpdChzZW5zb3JzX2xtNzVfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2xtNzcu
YyBiL2RyaXZlcnMvaHdtb24vbG03Ny5jCmluZGV4IDhkZmM2NzguLjdjZDUxNmYgMTAwNjQ0Ci0t
LSBhL2RyaXZlcnMvaHdtb24vbG03Ny5jCisrKyBiL2RyaXZlcnMvaHdtb24vbG03Ny5jCkBAIC00
MjAsMTkgKzQyMCw4IEBAIHN0YXRpYyBzdHJ1Y3QgbG03N19kYXRhICpsbTc3X3VwZGF0ZV9kZXZp
Y2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkYXRhOwogfQogCi1zdGF0aWMgaW50IF9f
aW5pdCBzZW5zb3JzX2xtNzdfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigm
bG03N19kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc2Vuc29yc19sbTc3X2V4aXQo
dm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbG03N19kcml2ZXIpOwotfQorbW9kdWxlX2kyY19k
cml2ZXIobG03N19kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJBbmRyYXMgQkFMSSA8ZHJld2ll
QGZyZWVtYWlsLmh1PiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJMTTc3IGRyaXZlciIpOwogTU9E
VUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChzZW5zb3JzX2xtNzdfaW5pdCk7Ci1t
b2R1bGVfZXhpdChzZW5zb3JzX2xtNzdfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9u
L2xtODAuYyBiL2RyaXZlcnMvaHdtb24vbG04MC5jCmluZGV4IDE4YTBlNmMuLmRjOTgzZWMgMTAw
NjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbG04MC5jCisrKyBiL2RyaXZlcnMvaHdtb24vbG04MC5j
CkBAIC01OTUsMjAgKzU5NSw5IEBAIHN0YXRpYyBzdHJ1Y3QgbG04MF9kYXRhICpsbTgwX3VwZGF0
ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkYXRhOwogfQogCi1zdGF0aWMg
aW50IF9faW5pdCBzZW5zb3JzX2xtODBfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2Ry
aXZlcigmbG04MF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc2Vuc29yc19sbTgw
X2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbG04MF9kcml2ZXIpOwotfQorbW9kdWxl
X2kyY19kcml2ZXIobG04MF9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJGcm9kbyBMb29pamFh
cmQgPGZyb2RvbEBkZHMubmw+IGFuZCAiCiAJIlBoaWxpcCBFZGVsYnJvY2sgPHBoaWxAbmV0cm9l
ZGdlLmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiTE04MCBkcml2ZXIiKTsKIE1PRFVMRV9M
SUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQoc2Vuc29yc19sbTgwX2luaXQpOwotbW9kdWxl
X2V4aXQoc2Vuc29yc19sbTgwX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9sbTgz
LmMgYi9kcml2ZXJzL2h3bW9uL2xtODMuYwppbmRleCA4MjkwNDc2Li5lOWE4YTA2IDEwMDY0NAot
LS0gYS9kcml2ZXJzL2h3bW9uL2xtODMuYworKysgYi9kcml2ZXJzL2h3bW9uL2xtODMuYwpAQCAt
NDIzLDE5ICs0MjMsOCBAQCBzdGF0aWMgc3RydWN0IGxtODNfZGF0YSAqbG04M191cGRhdGVfZGV2
aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlyZXR1cm4gZGF0YTsKIH0KIAotc3RhdGljIGludCBf
X2luaXQgc2Vuc29yc19sbTgzX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIo
JmxtODNfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHNlbnNvcnNfbG04M19leGl0
KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmxtODNfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNf
ZHJpdmVyKGxtODNfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiSmVhbiBEZWx2YXJlIDxraGFs
aUBsaW51eC1mci5vcmc+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkxNODMgZHJpdmVyIik7CiBN
T0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfbG04M19pbml0KTsK
LW1vZHVsZV9leGl0KHNlbnNvcnNfbG04M19leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdt
b24vbG04NS5jIGIvZHJpdmVycy9od21vbi9sbTg1LmMKaW5kZXggZGE3MmRjMS4uZmQyNjk4MyAx
MDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sbTg1LmMKKysrIGIvZHJpdmVycy9od21vbi9sbTg1
LmMKQEAgLTE2MTEsMjIgKzE2MTEsMTAgQEAgc3RhdGljIHN0cnVjdCBsbTg1X2RhdGEgKmxtODVf
dXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAKLQot
c3RhdGljIGludCBfX2luaXQgc21fbG04NV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRf
ZHJpdmVyKCZsbTg1X2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzbV9sbTg1X2V4
aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbG04NV9kcml2ZXIpOwotfQorbW9kdWxlX2ky
Y19kcml2ZXIobG04NV9kcml2ZXIpOwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVf
QVVUSE9SKCJQaGlsaXAgUG9rb3JueSA8cHBva29ybnlAcGVuZ3VpbmNvbXB1dGluZy5jb20+LCAi
CiAJIk1hcmdpdCBTY2h1YmVydC1XaGlsZSA8bWFyZ2l0c3dAdC1vbmxpbmUuZGU+LCAiCiAJIkp1
c3RpbiBUaGllc3NlbiA8anRoaWVzc2VuQHBlbmd1aW5jb21wdXRpbmcuY29tPiIpOwogTU9EVUxF
X0RFU0NSSVBUSU9OKCJMTTg1LUIsIExNODUtQyBkcml2ZXIiKTsKLQotbW9kdWxlX2luaXQoc21f
bG04NV9pbml0KTsKLW1vZHVsZV9leGl0KHNtX2xtODVfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2
ZXJzL2h3bW9uL2xtODcuYyBiL2RyaXZlcnMvaHdtb24vbG04Ny5jCmluZGV4IGYxZTZlNzUuLjEy
NmQwY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbG04Ny5jCisrKyBiL2RyaXZlcnMvaHdt
b24vbG04Ny5jCkBAIC05NjMsMTkgKzk2Myw4IEBAIHN0YXRpYyBzdHJ1Y3QgbG04N19kYXRhICps
bTg3X3VwZGF0ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkYXRhOwogfQog
Ci1zdGF0aWMgaW50IF9faW5pdCBzZW5zb3JzX2xtODdfaW5pdCh2b2lkKQotewotCXJldHVybiBp
MmNfYWRkX2RyaXZlcigmbG04N19kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc2Vu
c29yc19sbTg3X2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbG04N19kcml2ZXIpOwot
fQorbW9kdWxlX2kyY19kcml2ZXIobG04N19kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJKZWFu
IERlbHZhcmUgPGtoYWxpQGxpbnV4LWZyLm9yZz4gYW5kIG90aGVycyIpOwogTU9EVUxFX0RFU0NS
SVBUSU9OKCJMTTg3IGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVf
aW5pdChzZW5zb3JzX2xtODdfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5zb3JzX2xtODdfZXhpdCk7
CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2xtOTAuYyBiL2RyaXZlcnMvaHdtb24vbG05MC5j
CmluZGV4IDYxNWJjNGYuLmU3MGNiYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbG05MC5j
CisrKyBiL2RyaXZlcnMvaHdtb24vbG05MC5jCkBAIC0xNTE0LDE5ICsxNTE0LDggQEAgc3RhdGlj
IHN0cnVjdCBpMmNfZHJpdmVyIGxtOTBfZHJpdmVyID0gewogCS5hZGRyZXNzX2xpc3QJPSBub3Jt
YWxfaTJjLAogfTsKIAotc3RhdGljIGludCBfX2luaXQgc2Vuc29yc19sbTkwX2luaXQodm9pZCkK
LXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmxtOTBfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZv
aWQgX19leGl0IHNlbnNvcnNfbG05MF9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmxt
OTBfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGxtOTBfZHJpdmVyKTsKIAogTU9EVUxF
X0FVVEhPUigiSmVhbiBEZWx2YXJlIDxraGFsaUBsaW51eC1mci5vcmc+Iik7CiBNT0RVTEVfREVT
Q1JJUFRJT04oIkxNOTAvQURNMTAzMiBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsK
LQotbW9kdWxlX2luaXQoc2Vuc29yc19sbTkwX2luaXQpOwotbW9kdWxlX2V4aXQoc2Vuc29yc19s
bTkwX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9sbTkyLmMgYi9kcml2ZXJzL2h3
bW9uL2xtOTIuYwppbmRleCA4ZmNiZDRkNC4uOTJmMmQ0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9o
d21vbi9sbTkyLmMKKysrIGIvZHJpdmVycy9od21vbi9sbTkyLmMKQEAgLTQxNiwxOSArNDE2LDgg
QEAgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGxtOTJfZHJpdmVyID0gewogCS5hZGRyZXNzX2xp
c3QJPSBub3JtYWxfaTJjLAogfTsKIAotc3RhdGljIGludCBfX2luaXQgc2Vuc29yc19sbTkyX2lu
aXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmxtOTJfZHJpdmVyKTsKLX0KLQot
c3RhdGljIHZvaWQgX19leGl0IHNlbnNvcnNfbG05Ml9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9k
cml2ZXIoJmxtOTJfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGxtOTJfZHJpdmVyKTsK
IAogTU9EVUxFX0FVVEhPUigiSmVhbiBEZWx2YXJlIDxraGFsaUBsaW51eC1mci5vcmc+Iik7CiBN
T0RVTEVfREVTQ1JJUFRJT04oIkxNOTIvTUFYNjYzNSBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNF
KCJHUEwiKTsKLQotbW9kdWxlX2luaXQoc2Vuc29yc19sbTkyX2luaXQpOwotbW9kdWxlX2V4aXQo
c2Vuc29yc19sbTkyX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9sbTkzLmMgYi9k
cml2ZXJzL2h3bW9uL2xtOTMuYwppbmRleCAzYjQzZGY0Li5jYjFiZjhjIDEwMDY0NAotLS0gYS9k
cml2ZXJzL2h3bW9uL2xtOTMuYworKysgYi9kcml2ZXJzL2h3bW9uL2xtOTMuYwpAQCAtMjYzNSwy
MCArMjYzNSw5IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBsbTkzX2RyaXZlciA9IHsKIAku
YWRkcmVzc19saXN0CT0gbm9ybWFsX2kyYywKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGxtOTNf
aW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmbG05M19kcml2ZXIpOwotfQot
Ci1zdGF0aWMgdm9pZCBfX2V4aXQgbG05M19leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIo
JmxtOTNfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGxtOTNfZHJpdmVyKTsKIAogTU9E
VUxFX0FVVEhPUigiTWFyayBNLiBIb2ZmbWFuIDxtaG9mZm1hbkBsaWdodGxpbmsuY29tPiwgIgog
CQkiSGFucyBKLiBLb2NoIDxoamtAaGFuc2prb2NoLmRlPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9O
KCJMTTkzIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChs
bTkzX2luaXQpOwotbW9kdWxlX2V4aXQobG05M19leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv
aHdtb24vbG05NTI0MS5jIGIvZHJpdmVycy9od21vbi9sbTk1MjQxLmMKaW5kZXggNTEzOTAxZC4u
NjA3NGFmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sbTk1MjQxLmMKKysrIGIvZHJpdmVy
cy9od21vbi9sbTk1MjQxLmMKQEAgLTQ1NSwxOSArNDU1LDggQEAgc3RhdGljIHN0cnVjdCBpMmNf
ZHJpdmVyIGxtOTUyNDFfZHJpdmVyID0gewogCS5hZGRyZXNzX2xpc3QJPSBub3JtYWxfaTJjLAog
fTsKIAotc3RhdGljIGludCBfX2luaXQgc2Vuc29yc19sbTk1MjQxX2luaXQodm9pZCkKLXsKLQly
ZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmxtOTUyNDFfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQg
X19leGl0IHNlbnNvcnNfbG05NTI0MV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmxt
OTUyNDFfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGxtOTUyNDFfZHJpdmVyKTsKIAog
TU9EVUxFX0FVVEhPUigiRGF2aWRlIFJpenpvIDxlbHBhLnJpenpvQGdtYWlsLmNvbT4iKTsKIE1P
RFVMRV9ERVNDUklQVElPTigiTE05NTI0MSBzZW5zb3IgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5T
RSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfbG05NTI0MV9pbml0KTsKLW1vZHVsZV9l
eGl0KHNlbnNvcnNfbG05NTI0MV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbG05
NTI0NS5jIGIvZHJpdmVycy9od21vbi9sbTk1MjQ1LmMKaW5kZXggZGNlOWU2OC4uODdkZTdkZSAx
MDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sbTk1MjQ1LmMKKysrIGIvZHJpdmVycy9od21vbi9s
bTk1MjQ1LmMKQEAgLTUyNSwxOSArNTI1LDggQEAgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGxt
OTUyNDVfZHJpdmVyID0gewogCS5hZGRyZXNzX2xpc3QJPSBub3JtYWxfaTJjLAogfTsKIAotc3Rh
dGljIGludCBfX2luaXQgc2Vuc29yc19sbTk1MjQ1X2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJj
X2FkZF9kcml2ZXIoJmxtOTUyNDVfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHNl
bnNvcnNfbG05NTI0NV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmxtOTUyNDVfZHJp
dmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKGxtOTUyNDVfZHJpdmVyKTsKIAogTU9EVUxFX0FV
VEhPUigiQWxleGFuZGVyIFN0ZWluIDxhbGV4YW5kZXIuc3RlaW5Ac3lzdGVjLWVsZWN0cm9uaWMu
Y29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJMTTk1MjQ1IHNlbnNvciBkcml2ZXIiKTsKIE1P
RFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQoc2Vuc29yc19sbTk1MjQ1X2luaXQp
OwotbW9kdWxlX2V4aXQoc2Vuc29yc19sbTk1MjQ1X2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy
cy9od21vbi9sdGM0MTUxLmMgYi9kcml2ZXJzL2h3bW9uL2x0YzQxNTEuYwppbmRleCA0YWMwNmI3
Li5mNjQ2YjQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2x0YzQxNTEuYworKysgYi9kcml2
ZXJzL2h3bW9uL2x0YzQxNTEuYwpAQCAtMjM4LDE5ICsyMzgsOCBAQCBzdGF0aWMgc3RydWN0IGky
Y19kcml2ZXIgbHRjNDE1MV9kcml2ZXIgPSB7CiAJLmlkX3RhYmxlCT0gbHRjNDE1MV9pZCwKIH07
CiAKLXN0YXRpYyBpbnQgX19pbml0IGx0YzQxNTFfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNf
YWRkX2RyaXZlcigmbHRjNDE1MV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgbHRj
NDE1MV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJmx0YzQxNTFfZHJpdmVyKTsKLX0K
K21vZHVsZV9pMmNfZHJpdmVyKGx0YzQxNTFfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiUGVy
IERhbGVuIDxwZXIuZGFsZW5AYXBwZWFydHYuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJM
VEM0MTUxIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChs
dGM0MTUxX2luaXQpOwotbW9kdWxlX2V4aXQobHRjNDE1MV9leGl0KTsKZGlmZiAtLWdpdCBhL2Ry
aXZlcnMvaHdtb24vbHRjNDIxNS5jIGIvZHJpdmVycy9od21vbi9sdGM0MjE1LmMKaW5kZXggYzdl
NmQ4ZS4uMDc4OWI2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sdGM0MjE1LmMKKysrIGIv
ZHJpdmVycy9od21vbi9sdGM0MjE1LmMKQEAgLTMwOSwxOSArMzA5LDggQEAgc3RhdGljIHN0cnVj
dCBpMmNfZHJpdmVyIGx0YzQyMTVfZHJpdmVyID0gewogCS5pZF90YWJsZQk9IGx0YzQyMTVfaWQs
CiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBsdGM0MjE1X2luaXQodm9pZCkKLXsKLQlyZXR1cm4g
aTJjX2FkZF9kcml2ZXIoJmx0YzQyMTVfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0
IGx0YzQyMTVfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZsdGM0MjE1X2RyaXZlcik7
Ci19Cittb2R1bGVfaTJjX2RyaXZlcihsdGM0MjE1X2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1Io
IklyYSBXLiBTbnlkZXIgPGl3c0BvdnJvLmNhbHRlY2guZWR1PiIpOwogTU9EVUxFX0RFU0NSSVBU
SU9OKCJMVEM0MjE1IGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVf
aW5pdChsdGM0MjE1X2luaXQpOwotbW9kdWxlX2V4aXQobHRjNDIxNV9leGl0KTsKZGlmZiAtLWdp
dCBhL2RyaXZlcnMvaHdtb24vbHRjNDI0NS5jIGIvZHJpdmVycy9od21vbi9sdGM0MjQ1LmMKaW5k
ZXggNjU5MzA4My4uNjkzYTZiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sdGM0MjQ1LmMK
KysrIGIvZHJpdmVycy9od21vbi9sdGM0MjQ1LmMKQEAgLTU3OCwxOSArNTc4LDggQEAgc3RhdGlj
IHN0cnVjdCBpMmNfZHJpdmVyIGx0YzQyNDVfZHJpdmVyID0gewogCS5pZF90YWJsZQk9IGx0YzQy
NDVfaWQsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBsdGM0MjQ1X2luaXQodm9pZCkKLXsKLQly
ZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmx0YzQyNDVfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQg
X19leGl0IGx0YzQyNDVfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZsdGM0MjQ1X2Ry
aXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihsdGM0MjQ1X2RyaXZlcik7CiAKIE1PRFVMRV9B
VVRIT1IoIklyYSBXLiBTbnlkZXIgPGl3c0BvdnJvLmNhbHRlY2guZWR1PiIpOwogTU9EVUxFX0RF
U0NSSVBUSU9OKCJMVEM0MjQ1IGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1t
b2R1bGVfaW5pdChsdGM0MjQ1X2luaXQpOwotbW9kdWxlX2V4aXQobHRjNDI0NV9leGl0KTsKZGlm
ZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbHRjNDI2MS5jIGIvZHJpdmVycy9od21vbi9sdGM0MjYx
LmMKaW5kZXggNGI1MDYwMS4uYzc4ZDMyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sdGM0
MjYxLmMKKysrIGIvZHJpdmVycy9od21vbi9sdGM0MjYxLmMKQEAgLTI5NiwxOSArMjk2LDggQEAg
c3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGx0YzQyNjFfZHJpdmVyID0gewogCS5pZF90YWJsZSA9
IGx0YzQyNjFfaWQsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBsdGM0MjYxX2luaXQodm9pZCkK
LXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmx0YzQyNjFfZHJpdmVyKTsKLX0KLQotc3RhdGlj
IHZvaWQgX19leGl0IGx0YzQyNjFfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZsdGM0
MjYxX2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihsdGM0MjYxX2RyaXZlcik7CiAKIE1P
RFVMRV9BVVRIT1IoIkd1ZW50ZXIgUm9lY2sgPGd1ZW50ZXIucm9lY2tAZXJpY3Nzb24uY29tPiIp
OwogTU9EVUxFX0RFU0NSSVBUSU9OKCJMVEM0MjYxIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0Uo
IkdQTCIpOwotCi1tb2R1bGVfaW5pdChsdGM0MjYxX2luaXQpOwotbW9kdWxlX2V4aXQobHRjNDI2
MV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbWF4MTYwNjUuYyBiL2RyaXZlcnMv
aHdtb24vbWF4MTYwNjUuYwppbmRleCAzODU4ODZhLi5jYTE4ZjUyIDEwMDY0NAotLS0gYS9kcml2
ZXJzL2h3bW9uL21heDE2MDY1LmMKKysrIGIvZHJpdmVycy9od21vbi9tYXgxNjA2NS5jCkBAIC02
OTksMTkgKzY5OSw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBtYXgxNjA2NV9kcml2ZXIg
PSB7CiAJLmlkX3RhYmxlID0gbWF4MTYwNjVfaWQsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBt
YXgxNjA2NV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZtYXgxNjA2NV9k
cml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgbWF4MTYwNjVfZXhpdCh2b2lkKQotewot
CWkyY19kZWxfZHJpdmVyKCZtYXgxNjA2NV9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIo
bWF4MTYwNjVfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiR3VlbnRlciBSb2VjayA8Z3VlbnRl
ci5yb2Vja0Blcmljc3Nvbi5jb20+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIk1BWDE2MDY1IGRy
aXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVfaW5pdChtYXgxNjA2NV9p
bml0KTsKLW1vZHVsZV9leGl0KG1heDE2MDY1X2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9o
d21vbi9tYXgxNjE5LmMgYi9kcml2ZXJzL2h3bW9uL21heDE2MTkuYwppbmRleCAwMjJkZWQwLi4x
MzU4MjJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL21heDE2MTkuYworKysgYi9kcml2ZXJz
L2h3bW9uL21heDE2MTkuYwpAQCAtMzUzLDIwICszNTMsOSBAQCBzdGF0aWMgc3RydWN0IG1heDE2
MTlfZGF0YSAqbWF4MTYxOV91cGRhdGVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlyZXR1
cm4gZGF0YTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgc2Vuc29yc19tYXgxNjE5X2luaXQodm9p
ZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJm1heDE2MTlfZHJpdmVyKTsKLX0KLQotc3Rh
dGljIHZvaWQgX19leGl0IHNlbnNvcnNfbWF4MTYxOV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9k
cml2ZXIoJm1heDE2MTlfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKG1heDE2MTlfZHJp
dmVyKTsKIAogTU9EVUxFX0FVVEhPUigiQWxleGV5IEZpc2hlciA8ZmlzaG9yQG1haWwucnU+IGFu
ZCAiCiAJIkplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3JnPiIpOwogTU9EVUxFX0RFU0NS
SVBUSU9OKCJNQVgxNjE5IHNlbnNvciBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsK
LQotbW9kdWxlX2luaXQoc2Vuc29yc19tYXgxNjE5X2luaXQpOwotbW9kdWxlX2V4aXQoc2Vuc29y
c19tYXgxNjE5X2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9tYXgxNjY4LmMgYi9k
cml2ZXJzL2h3bW9uL21heDE2NjguYwppbmRleCAyMGQxYjJkLi5kNWZiMTE3IDEwMDY0NAotLS0g
YS9kcml2ZXJzL2h3bW9uL21heDE2NjguYworKysgYi9kcml2ZXJzL2h3bW9uL21heDE2NjguYwpA
QCAtNDg0LDE5ICs0ODQsOCBAQCBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgbWF4MTY2OF9kcml2
ZXIgPSB7CiAJLmFkZHJlc3NfbGlzdCA9IG1heDE2NjhfYWRkcl9saXN0LAogfTsKIAotc3RhdGlj
IGludCBfX2luaXQgc2Vuc29yc19tYXgxNjY4X2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2Fk
ZF9kcml2ZXIoJm1heDE2NjhfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IHNlbnNv
cnNfbWF4MTY2OF9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJm1heDE2NjhfZHJpdmVy
KTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKG1heDE2NjhfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhP
UigiRGF2aWQgR2VvcmdlIDxkYXZpZC5nZW9yZ2VAc2thLmFjLnphPiIpOwogTU9EVUxFX0RFU0NS
SVBUSU9OKCJNQVgxNjY4IHJlbW90ZSB0ZW1wZXJhdHVyZSBzZW5zb3IgZHJpdmVyIik7CiBNT0RV
TEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfbWF4MTY2OF9pbml0KQot
bW9kdWxlX2V4aXQoc2Vuc29yc19tYXgxNjY4X2V4aXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3
bW9uL21heDY2MzkuYyBiL2RyaXZlcnMvaHdtb24vbWF4NjYzOS5jCmluZGV4IGYyMGQ5OTcuLjY0
ODY2YTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbWF4NjYzOS5jCisrKyBiL2RyaXZlcnMv
aHdtb24vbWF4NjYzOS5jCkBAIC02MzUsMTkgKzYzNSw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2Ry
aXZlciBtYXg2NjM5X2RyaXZlciA9IHsKIAkuYWRkcmVzc19saXN0ID0gbm9ybWFsX2kyYywKIH07
CiAKLXN0YXRpYyBpbnQgX19pbml0IG1heDY2MzlfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNf
YWRkX2RyaXZlcigmbWF4NjYzOV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgbWF4
NjYzOV9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJm1heDY2MzlfZHJpdmVyKTsKLX0K
K21vZHVsZV9pMmNfZHJpdmVyKG1heDY2MzlfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiUm9s
YW5kIFN0aWdnZSA8c3RpZ2dlQGFudGNvbS5kZT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigibWF4
NjYzOSBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQobWF4
NjYzOV9pbml0KTsKLW1vZHVsZV9leGl0KG1heDY2MzlfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2
ZXJzL2h3bW9uL21heDY2NDIuYyBiL2RyaXZlcnMvaHdtb24vbWF4NjY0Mi5jCmluZGV4IGU4NTVk
M2IuLjY2ZjBkYmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbWF4NjY0Mi5jCisrKyBiL2Ry
aXZlcnMvaHdtb24vbWF4NjY0Mi5jCkBAIC0zNTIsMTkgKzM1Miw4IEBAIHN0YXRpYyBzdHJ1Y3Qg
aTJjX2RyaXZlciBtYXg2NjQyX2RyaXZlciA9IHsKIAkuYWRkcmVzc19saXN0CT0gbm9ybWFsX2ky
YywKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IG1heDY2NDJfaW5pdCh2b2lkKQotewotCXJldHVy
biBpMmNfYWRkX2RyaXZlcigmbWF4NjY0Ml9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4
aXQgbWF4NjY0Ml9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJm1heDY2NDJfZHJpdmVy
KTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKG1heDY2NDJfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhP
UigiUGVyIERhbGVuIDxwZXIuZGFsZW5AYXBwZWFydHYuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBU
SU9OKCJNQVg2NjQyIHNlbnNvciBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQot
bW9kdWxlX2luaXQobWF4NjY0Ml9pbml0KTsKLW1vZHVsZV9leGl0KG1heDY2NDJfZXhpdCk7CmRp
ZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL21heDY2NTAuYyBiL2RyaXZlcnMvaHdtb24vbWF4NjY1
MC5jCmluZGV4IGVjZTNhYWYuLjdhMGNkYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbWF4
NjY1MC5jCisrKyBiL2RyaXZlcnMvaHdtb24vbWF4NjY1MC5jCkBAIC03MTMsMTkgKzcxMyw4IEBA
IHN0YXRpYyBzdHJ1Y3QgbWF4NjY1MF9kYXRhICptYXg2NjUwX3VwZGF0ZV9kZXZpY2Uoc3RydWN0
IGRldmljZSAqZGV2KQogCXJldHVybiBkYXRhOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBzZW5z
b3JzX21heDY2NTBfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmbWF4NjY1
MF9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc2Vuc29yc19tYXg2NjUwX2V4aXQo
dm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmbWF4NjY1MF9kcml2ZXIpOwotfQorbW9kdWxlX2ky
Y19kcml2ZXIobWF4NjY1MF9kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJIYW5zIEouIEtvY2gi
KTsKIE1PRFVMRV9ERVNDUklQVElPTigiTUFYNjY1MCBzZW5zb3IgZHJpdmVyIik7CiBNT0RVTEVf
TElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfbWF4NjY1MF9pbml0KTsKLW1v
ZHVsZV9leGl0KHNlbnNvcnNfbWF4NjY1MF9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdt
b24vc2h0MjEuYyBiL2RyaXZlcnMvaHdtb24vc2h0MjEuYwppbmRleCAxNTM5ODc4Li42YzJkZWRl
IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL3NodDIxLmMKKysrIGIvZHJpdmVycy9od21vbi9z
aHQyMS5jCkBAIC0yNjEsMjggKzI2MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBzaHQy
MV9kcml2ZXIgPSB7CiAJLmlkX3RhYmxlICAgID0gc2h0MjFfaWQsCiB9OwogCi0vKioKLSAqIHNo
dDIxX2luaXQoKSAtIGluaXRpYWxpemUgZHJpdmVyCi0gKgotICogQ2FsbGVkIHdoZW4ga2VybmVs
IGlzIGJvb3RlZCBvciBtb2R1bGUgaXMgaW5zZXJ0ZWQuCi0gKiBSZXR1cm5zIDAgb24gc3VjY2Vz
cy4KLSAqLwotc3RhdGljIGludCBfX2luaXQgc2h0MjFfaW5pdCh2b2lkKQotewotCXJldHVybiBp
MmNfYWRkX2RyaXZlcigmc2h0MjFfZHJpdmVyKTsKLX0KLW1vZHVsZV9pbml0KHNodDIxX2luaXQp
OwotCi0vKioKLSAqIHNodDIxX2luaXQoKSAtIGNsZWFuIHVwIGRyaXZlcgotICoKLSAqIENhbGxl
ZCB3aGVuIG1vZHVsZSBpcyByZW1vdmVkLgotICovCi1zdGF0aWMgdm9pZCBfX2V4aXQgc2h0MjFf
ZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZzaHQyMV9kcml2ZXIpOwotfQotbW9kdWxl
X2V4aXQoc2h0MjFfZXhpdCk7Cittb2R1bGVfaTJjX2RyaXZlcihzaHQyMV9kcml2ZXIpOwogCiBN
T0RVTEVfQVVUSE9SKCJVcnMgRmxlaXNjaCA8dXJzLmZsZWlzY2hAc2Vuc2lyaW9uLmNvbT4iKTsK
IE1PRFVMRV9ERVNDUklQVElPTigiU2Vuc2lyaW9uIFNIVDIxIGh1bWlkaXR5IGFuZCB0ZW1wZXJh
dHVyZSBzZW5zb3IgZHJpdmVyIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL3NtbTY2NS5j
IGIvZHJpdmVycy9od21vbi9zbW02NjUuYwppbmRleCA0MTE2MzgxLi4wZDM5MmQwIDEwMDY0NAot
LS0gYS9kcml2ZXJzL2h3bW9uL3NtbTY2NS5jCisrKyBiL2RyaXZlcnMvaHdtb24vc21tNjY1LmMK
QEAgLTcxOCwxOSArNzE4LDggQEAgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHNtbTY2NV9kcml2
ZXIgPSB7CiAJLmlkX3RhYmxlID0gc21tNjY1X2lkLAogfTsKIAotc3RhdGljIGludCBfX2luaXQg
c21tNjY1X2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJnNtbTY2NV9kcml2
ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc21tNjY1X2V4aXQodm9pZCkKLXsKLQlpMmNf
ZGVsX2RyaXZlcigmc21tNjY1X2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcihzbW02NjVf
ZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiR3VlbnRlciBSb2VjayIpOwogTU9EVUxFX0RFU0NS
SVBUSU9OKCJTTU02NjUgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVs
ZV9pbml0KHNtbTY2NV9pbml0KTsKLW1vZHVsZV9leGl0KHNtbTY2NV9leGl0KTsKZGlmZiAtLWdp
dCBhL2RyaXZlcnMvaHdtb24vc21zYzQ3bTE5Mi5jIGIvZHJpdmVycy9od21vbi9zbXNjNDdtMTky
LmMKaW5kZXggNDBiMjY2Ny4uOGY4ODkwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9zbXNj
NDdtMTkyLmMKKysrIGIvZHJpdmVycy9od21vbi9zbXNjNDdtMTkyLmMKQEAgLTYzNSwxOSArNjM1
LDggQEAgc3RhdGljIHN0cnVjdCBzbXNjNDdtMTkyX2RhdGEgKnNtc2M0N20xOTJfdXBkYXRlX2Rl
dmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAKLXN0YXRpYyBpbnQg
X19pbml0IHNtc2M0N20xOTJfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigm
c21zYzQ3bTE5Ml9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgc21zYzQ3bTE5Ml9l
eGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIoJnNtc2M0N20xOTJfZHJpdmVyKTsKLX0KK21v
ZHVsZV9pMmNfZHJpdmVyKHNtc2M0N20xOTJfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiSGFy
dG11dCBSaWNrIDxsaW51eEByaWNrLmNsYXJhbmV0LmRlPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9O
KCJTTVNDNDdNMTkyIGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCi1tb2R1bGVf
aW5pdChzbXNjNDdtMTkyX2luaXQpOwotbW9kdWxlX2V4aXQoc21zYzQ3bTE5Ml9leGl0KTsKZGlm
ZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vdGhtYzUwLmMgYi9kcml2ZXJzL2h3bW9uL3RobWM1MC5j
CmluZGV4IDdkZmI0ZGUuLmJkODNiYzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vdGhtYzUw
LmMKKysrIGIvZHJpdmVycy9od21vbi90aG1jNTAuYwpAQCAtNDY1LDE4ICs0NjUsNyBAQCBzdGF0
aWMgc3RydWN0IHRobWM1MF9kYXRhICp0aG1jNTBfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNl
ICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IHNtX3RobWM1MF9p
bml0KHZvaWQpCi17Ci0JcmV0dXJuIGkyY19hZGRfZHJpdmVyKCZ0aG1jNTBfZHJpdmVyKTsKLX0K
LQotc3RhdGljIHZvaWQgX19leGl0IHNtX3RobWM1MF9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9k
cml2ZXIoJnRobWM1MF9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIodGhtYzUwX2RyaXZl
cik7CiAKIE1PRFVMRV9BVVRIT1IoIktyenlzenRvZiBIZWx0IDxrcnp5c3p0b2YuaDFAd3AucGw+
Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlRITUM1MCBkcml2ZXIiKTsKLQotbW9kdWxlX2luaXQo
c21fdGhtYzUwX2luaXQpOwotbW9kdWxlX2V4aXQoc21fdGhtYzUwX2V4aXQpOwpkaWZmIC0tZ2l0
IGEvZHJpdmVycy9od21vbi90bXAxMDIuYyBiL2RyaXZlcnMvaHdtb24vdG1wMTAyLmMKaW5kZXgg
NjQzYWE4Yy4uNDBiNzQyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi90bXAxMDIuYworKysg
Yi9kcml2ZXJzL2h3bW9uL3RtcDEwMi5jCkBAIC0yOTIsMTcgKzI5Miw3IEBAIHN0YXRpYyBzdHJ1
Y3QgaTJjX2RyaXZlciB0bXAxMDJfZHJpdmVyID0gewogCS5pZF90YWJsZQk9IHRtcDEwMl9pZCwK
IH07CiAKLXN0YXRpYyBpbnQgX19pbml0IHRtcDEwMl9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGky
Y19hZGRfZHJpdmVyKCZ0bXAxMDJfZHJpdmVyKTsKLX0KLW1vZHVsZV9pbml0KHRtcDEwMl9pbml0
KTsKLQotc3RhdGljIHZvaWQgX19leGl0IHRtcDEwMl9leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9k
cml2ZXIoJnRtcDEwMl9kcml2ZXIpOwotfQotbW9kdWxlX2V4aXQodG1wMTAyX2V4aXQpOworbW9k
dWxlX2kyY19kcml2ZXIodG1wMTAyX2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIlN0ZXZlbiBL
aW5nIDxzZmtpbmdAZmR3ZGMuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJUZXhhcyBJbnN0
cnVtZW50cyBUTVAxMDIgdGVtcGVyYXR1cmUgc2Vuc29yIGRyaXZlciIpOwpkaWZmIC0tZ2l0IGEv
ZHJpdmVycy9od21vbi90bXA0MDEuYyBiL2RyaXZlcnMvaHdtb24vdG1wNDAxLmMKaW5kZXggYWQ4
ZDUzNS4uYTMyZDRkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi90bXA0MDEuYworKysgYi9k
cml2ZXJzL2h3bW9uL3RtcDQwMS5jCkBAIC02NjIsMTkgKzY2Miw4IEBAIHN0YXRpYyBzdHJ1Y3Qg
aTJjX2RyaXZlciB0bXA0MDFfZHJpdmVyID0gewogCS5hZGRyZXNzX2xpc3QJPSBub3JtYWxfaTJj
LAogfTsKIAotc3RhdGljIGludCBfX2luaXQgdG1wNDAxX2luaXQodm9pZCkKLXsKLQlyZXR1cm4g
aTJjX2FkZF9kcml2ZXIoJnRtcDQwMV9kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQg
dG1wNDAxX2V4aXQodm9pZCkKLXsKLQlpMmNfZGVsX2RyaXZlcigmdG1wNDAxX2RyaXZlcik7Ci19
Cittb2R1bGVfaTJjX2RyaXZlcih0bXA0MDFfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiSGFu
cyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigi
VGV4YXMgSW5zdHJ1bWVudHMgVE1QNDAxIHRlbXBlcmF0dXJlIHNlbnNvciBkcml2ZXIiKTsKIE1P
RFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQodG1wNDAxX2luaXQpOwotbW9kdWxl
X2V4aXQodG1wNDAxX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi90bXA0MjEuYyBi
L2RyaXZlcnMvaHdtb24vdG1wNDIxLmMKaW5kZXggMDUxN2E4Zi4uYWE1NTYyZCAxMDA2NDQKLS0t
IGEvZHJpdmVycy9od21vbi90bXA0MjEuYworKysgYi9kcml2ZXJzL2h3bW9uL3RtcDQyMS5jCkBA
IC0zMjQsMjAgKzMyNCw5IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB0bXA0MjFfZHJpdmVy
ID0gewogCS5hZGRyZXNzX2xpc3QgPSBub3JtYWxfaTJjLAogfTsKIAotc3RhdGljIGludCBfX2lu
aXQgdG1wNDIxX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJnRtcDQyMV9k
cml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgdG1wNDIxX2V4aXQodm9pZCkKLXsKLQlp
MmNfZGVsX2RyaXZlcigmdG1wNDIxX2RyaXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcih0bXA0
MjFfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiQW5kcmUgUHJlbmRlbCA8YW5kcmUucHJlbmRl
bEBnbXguZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlRleGFzIEluc3RydW1lbnRzIFRNUDQy
MS80MjIvNDIzIHRlbXBlcmF0dXJlIHNlbnNvciIKIAkJICAgIiBkcml2ZXIiKTsKIE1PRFVMRV9M
SUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQodG1wNDIxX2luaXQpOwotbW9kdWxlX2V4aXQo
dG1wNDIxX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi93ODM3OTFkLmMgYi9kcml2
ZXJzL2h3bW9uL3c4Mzc5MWQuYwppbmRleCA4YzI4NDRlLi4xNzI5ZjE0IDEwMDY0NAotLS0gYS9k
cml2ZXJzL2h3bW9uL3c4Mzc5MWQuYworKysgYi9kcml2ZXJzL2h3bW9uL3c4Mzc5MWQuYwpAQCAt
MTYyNSwxOSArMTYyNSw4IEBAIHN0YXRpYyB2b2lkIHc4Mzc5MWRfcHJpbnRfZGVidWcoc3RydWN0
IHc4Mzc5MWRfZGF0YSAqZGF0YSwgc3RydWN0IGRldmljZSAqZGV2KQogfQogI2VuZGlmCiAKLXN0
YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfdzgzNzkxZF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIGky
Y19hZGRfZHJpdmVyKCZ3ODM3OTFkX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBz
ZW5zb3JzX3c4Mzc5MWRfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZ3ODM3OTFkX2Ry
aXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcih3ODM3OTFkX2RyaXZlcik7CiAKIE1PRFVMRV9B
VVRIT1IoIkNoYXJsZXMgU3BpcmFraXMgPGJlemF1ckBnbWFpbC5jb20+Iik7CiBNT0RVTEVfREVT
Q1JJUFRJT04oIlc4Mzc5MUQgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1v
ZHVsZV9pbml0KHNlbnNvcnNfdzgzNzkxZF9pbml0KTsKLW1vZHVsZV9leGl0KHNlbnNvcnNfdzgz
NzkxZF9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vdzgzNzkyZC5jIGIvZHJpdmVy
cy9od21vbi93ODM3OTJkLmMKaW5kZXggZjNlNzEzMC4uNDMyNDZlOCAxMDA2NDQKLS0tIGEvZHJp
dmVycy9od21vbi93ODM3OTJkLmMKKysrIGIvZHJpdmVycy9od21vbi93ODM3OTJkLmMKQEAgLTE2
NDEsMjIgKzE2NDEsOCBAQCBzdGF0aWMgdm9pZCB3ODM3OTJkX3ByaW50X2RlYnVnKHN0cnVjdCB3
ODM3OTJkX2RhdGEgKmRhdGEsIHN0cnVjdCBkZXZpY2UgKmRldikKIH0KICNlbmRpZgogCi1zdGF0
aWMgaW50IF9faW5pdAotc2Vuc29yc193ODM3OTJkX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gaTJj
X2FkZF9kcml2ZXIoJnc4Mzc5MmRfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0Ci1z
ZW5zb3JzX3c4Mzc5MmRfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZ3ODM3OTJkX2Ry
aXZlcik7Ci19Cittb2R1bGVfaTJjX2RyaXZlcih3ODM3OTJkX2RyaXZlcik7CiAKIE1PRFVMRV9B
VVRIT1IoIkNodW5oYW8gSHVhbmcgQCBXaW5ib25kIDxEWlNoZW5AV2luYm9uZC5jb20udHc+Iik7
CiBNT0RVTEVfREVTQ1JJUFRJT04oIlc4Mzc5MkFEL0QgZHJpdmVyIGZvciBsaW51eC0yLjYiKTsK
IE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQoc2Vuc29yc193ODM3OTJkX2lu
aXQpOwotbW9kdWxlX2V4aXQoc2Vuc29yc193ODM3OTJkX2V4aXQpOwotCmRpZmYgLS1naXQgYS9k
cml2ZXJzL2h3bW9uL3c4Mzc5My5jIGIvZHJpdmVycy9od21vbi93ODM3OTMuYwppbmRleCA4NTRm
OTExLi43N2RkNDY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL3c4Mzc5My5jCisrKyBiL2Ry
aXZlcnMvaHdtb24vdzgzNzkzLmMKQEAgLTIxMjAsMTkgKzIxMjAsOCBAQCBFTkQ6CiAJcmV0dXJu
IHJlczsKIH0KIAotc3RhdGljIGludCBfX2luaXQgc2Vuc29yc193ODM3OTNfaW5pdCh2b2lkKQot
ewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmdzgzNzkzX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2
b2lkIF9fZXhpdCBzZW5zb3JzX3c4Mzc5M19leGl0KHZvaWQpCi17Ci0JaTJjX2RlbF9kcml2ZXIo
Jnc4Mzc5M19kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIodzgzNzkzX2RyaXZlcik7CiAK
IE1PRFVMRV9BVVRIT1IoIll1YW4gTXUsIFN2ZW4gQW5kZXJzIik7CiBNT0RVTEVfREVTQ1JJUFRJ
T04oInc4Mzc5MyBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2lu
aXQoc2Vuc29yc193ODM3OTNfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5zb3JzX3c4Mzc5M19leGl0
KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vdzgzNzk1LmMgYi9kcml2ZXJzL2h3bW9uL3c4
Mzc5NS5jCmluZGV4IDg0NTIzMmQuLjI1ZDc0MWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24v
dzgzNzk1LmMKKysrIGIvZHJpdmVycy9od21vbi93ODM3OTUuYwpAQCAtMjI0NCwxOSArMjI0NCw4
IEBAIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB3ODM3OTVfZHJpdmVyID0gewogCS5hZGRyZXNz
X2xpc3QJPSBub3JtYWxfaTJjLAogfTsKIAotc3RhdGljIGludCBfX2luaXQgc2Vuc29yc193ODM3
OTVfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmdzgzNzk1X2RyaXZlcik7
Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzZW5zb3JzX3c4Mzc5NV9leGl0KHZvaWQpCi17Ci0J
aTJjX2RlbF9kcml2ZXIoJnc4Mzc5NV9kcml2ZXIpOwotfQorbW9kdWxlX2kyY19kcml2ZXIodzgz
Nzk1X2RyaXZlcik7CiAKIE1PRFVMRV9BVVRIT1IoIldlaSBTb25nLCBKZWFuIERlbHZhcmUgPGto
YWxpQGxpbnV4LWZyLm9yZz4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiVzgzNzk1Ry9BREcgaGFy
ZHdhcmUgbW9uaXRvcmluZyBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9k
dWxlX2luaXQoc2Vuc29yc193ODM3OTVfaW5pdCk7Ci1tb2R1bGVfZXhpdChzZW5zb3JzX3c4Mzc5
NV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vdzgzbDc4NXRzLmMgYi9kcml2ZXJz
L2h3bW9uL3c4M2w3ODV0cy5jCmluZGV4IDIwNzgxZGUuLjU3ZjYzOWUgMTAwNjQ0Ci0tLSBhL2Ry
aXZlcnMvaHdtb24vdzgzbDc4NXRzLmMKKysrIGIvZHJpdmVycy9od21vbi93ODNsNzg1dHMuYwpA
QCAtMzAyLDE5ICszMDIsOCBAQCBzdGF0aWMgc3RydWN0IHc4M2w3ODV0c19kYXRhICp3ODNsNzg1
dHNfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIGRhdGE7CiB9CiAK
LXN0YXRpYyBpbnQgX19pbml0IHNlbnNvcnNfdzgzbDc4NXRzX2luaXQodm9pZCkKLXsKLQlyZXR1
cm4gaTJjX2FkZF9kcml2ZXIoJnc4M2w3ODV0c19kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBf
X2V4aXQgc2Vuc29yc193ODNsNzg1dHNfZXhpdCh2b2lkKQotewotCWkyY19kZWxfZHJpdmVyKCZ3
ODNsNzg1dHNfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNfZHJpdmVyKHc4M2w3ODV0c19kcml2ZXIp
OwogCiBNT0RVTEVfQVVUSE9SKCJKZWFuIERlbHZhcmUgPGtoYWxpQGxpbnV4LWZyLm9yZz4iKTsK
IE1PRFVMRV9ERVNDUklQVElPTigiVzgzTDc4NVRTLVMgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5T
RSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfdzgzbDc4NXRzX2luaXQpOwotbW9kdWxl
X2V4aXQoc2Vuc29yc193ODNsNzg1dHNfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9u
L3c4M2w3ODZuZy5jIGIvZHJpdmVycy9od21vbi93ODNsNzg2bmcuYwppbmRleCAwMjU0ZTE4Li44
YjEyMGViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL3c4M2w3ODZuZy5jCisrKyBiL2RyaXZl
cnMvaHdtb24vdzgzbDc4Nm5nLmMKQEAgLTc2OSwyMSArNzY5LDggQEAgc3RhdGljIHN0cnVjdCB3
ODNsNzg2bmdfZGF0YSAqdzgzbDc4Nm5nX3VwZGF0ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2
KQogCXJldHVybiBkYXRhOwogfQogCi1zdGF0aWMgaW50IF9faW5pdAotc2Vuc29yc193ODNsNzg2
bmdfaW5pdCh2b2lkKQotewotCXJldHVybiBpMmNfYWRkX2RyaXZlcigmdzgzbDc4Nm5nX2RyaXZl
cik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdAotc2Vuc29yc193ODNsNzg2bmdfZXhpdCh2b2lk
KQotewotCWkyY19kZWxfZHJpdmVyKCZ3ODNsNzg2bmdfZHJpdmVyKTsKLX0KK21vZHVsZV9pMmNf
ZHJpdmVyKHc4M2w3ODZuZ19kcml2ZXIpOwogCiBNT0RVTEVfQVVUSE9SKCJLZXZpbiBMbyIpOwog
TU9EVUxFX0RFU0NSSVBUSU9OKCJ3ODNsNzg2bmcgZHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgi
R1BMIik7Ci0KLW1vZHVsZV9pbml0KHNlbnNvcnNfdzgzbDc4Nm5nX2luaXQpOwotbW9kdWxlX2V4
aXQoc2Vuc29yc193ODNsNzg2bmdfZXhpdCk7Ci0tIAoxLjcuNS40CgoKCgpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1haWxpbmcgbGlz
dApsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5zb3JzLm9yZy9t
YWlsbWFuL2xpc3RpbmZvL2xtLXNlbnNvcnM
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH] hwmon: convert drivers/hwmon/* to use module_i2c_driver()
@ 2011-11-25 7:06 ` Axel Lin
0 siblings, 0 replies; 20+ messages in thread
From: Axel Lin @ 2011-11-25 7:06 UTC (permalink / raw)
To: linux-kernel
Cc: Corentin Labbe, Dirk Eibach, Mark M. Hoffman, Steve Glendinning,
Riku Voipio, Guillaume Ligneul, David George, Hans J. Koch,
Marc Hulsman, Rudolf Marek, Jean Delvare, Guenter Roeck,
lm-sensors
This patch converts the drivers in drivers/hwmon/* to use the
module_i2c_driver() macro which makes the code smaller and a bit
simpler.
Cc: Corentin Labbe <corentin.labbe@geomatys.fr>
Cc: Dirk Eibach <eibach@gdsys.de>
Cc: "Mark M. Hoffman" <mhoffman@lightlink.com>
Cc: Steve Glendinning <steve.glendinning@smsc.com>
Cc: Riku Voipio <riku.voipio@iki.fi>
Cc: Guillaume Ligneul <guillaume.ligneul@gmail.com>
Cc: David George <david.george@ska.ac.za>
Cc: "Hans J. Koch" <hjk@hansjkoch.de>
Cc: Marc Hulsman <m.hulsman@tudelft.nl>
Cc: Rudolf Marek <r.marek@assembler.cz>
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
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/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 +--------------
64 files changed, 64 insertions(+), 799 deletions(-)
diff --git a/drivers/hwmon/ad7414.c b/drivers/hwmon/ad7414.c
index df29a7f..22c2420 100644
--- a/drivers/hwmon/ad7414.c
+++ b/drivers/hwmon/ad7414.c
@@ -252,17 +252,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 <sr at denx.de>, "
"Frank Edelhaeuser <frank.edelhaeuser at spansion.com>");
diff --git a/drivers/hwmon/ad7418.c b/drivers/hwmon/ad7418.c
index 8cb718c..367244b 100644
--- a/drivers/hwmon/ad7418.c
+++ b/drivers/hwmon/ad7418.c
@@ -289,20 +289,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 <a.zummo@towertech.it>");
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 1ad0a88..5498aee 100644
--- a/drivers/hwmon/adm1021.c
+++ b/drivers/hwmon/adm1021.c
@@ -451,15 +451,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 <frodol@dds.nl> and "
"Philip Edelbrock <phil@netroedge.com>");
@@ -468,6 +460,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 60befc0..f02c38b 100644
--- a/drivers/hwmon/adm1025.c
+++ b/drivers/hwmon/adm1025.c
@@ -589,19 +589,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 <khali@linux-fr.org>");
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 0531867..be17083 100644
--- a/drivers/hwmon/adm1026.c
+++ b/drivers/hwmon/adm1026.c
@@ -1761,20 +1761,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 <ppokorny@penguincomputing.com>, "
"Justin Thiessen <jthiessen@penguincomputing.com>");
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 0b8a3b1..8e5adb2 100644
--- a/drivers/hwmon/adm1029.c
+++ b/drivers/hwmon/adm1029.c
@@ -446,24 +446,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 <corentin.labbe@geomatys.fr>");
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 0683e6b..71be42c 100644
--- a/drivers/hwmon/adm1031.c
+++ b/drivers/hwmon/adm1031.c
@@ -1078,19 +1078,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 <alex@alexdalton.org>");
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 9e234b9..5e307ba 100644
--- a/drivers/hwmon/adm9240.c
+++ b/drivers/hwmon/adm9240.c
@@ -795,21 +795,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 <michiel@grendelproject.nl>, "
"Grant Coady <gcoady.lk@gmail.com> 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 <eibach@gdsys.de>");
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 5cc3e37..e4d86ca 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 <s.hauer@pengutronix.de> and "
"Wolfram Sang <w.sang@pengutronix.de>");
diff --git a/drivers/hwmon/adt7462.c b/drivers/hwmon/adt7462.c
index 2af0c7b..1beb8a9 100644
--- a/drivers/hwmon/adt7462.c
+++ b/drivers/hwmon/adt7462.c
@@ -1975,19 +1975,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 <djwong@us.ibm.com>");
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 c6d1ce0..ddca215 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 <djwong@us.ibm.com>");
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 b5fcd87..c753548 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 4033974..da6ca4f 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 <tomaz.mertelj@guest.arnes.si>");
diff --git a/drivers/hwmon/asb100.c b/drivers/hwmon/asb100.c
index d7bd1f3..0f300c6 100644
--- a/drivers/hwmon/asb100.c
+++ b/drivers/hwmon/asb100.c
@@ -971,19 +971,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 <mhoffman@lightlink.com>");
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 33cc143..701bc9d 100644
--- a/drivers/hwmon/atxp1.c
+++ b/drivers/hwmon/atxp1.c
@@ -367,15 +367,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 ef1ac996..9832ac5 100644
--- a/drivers/hwmon/ds1621.c
+++ b/drivers/hwmon/ds1621.c
@@ -305,20 +305,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 <zany@triq.net>");
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 225ae4f..2e2b430 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 <stigge@antcom.de>");
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 cd2a6e4..223bd3c 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 <kalhan.trisal@intel.com");
MODULE_DESCRIPTION("emc1403 Thermal Driver");
diff --git a/drivers/hwmon/emc2103.c b/drivers/hwmon/emc2103.c
index af914ad9..c251445 100644
--- a/drivers/hwmon/emc2103.c
+++ b/drivers/hwmon/emc2103.c
@@ -722,19 +722,8 @@ static struct i2c_driver emc2103_driver = {
.address_list = normal_i2c,
};
-static int __init sensors_emc2103_init(void)
-{
- return i2c_add_driver(&emc2103_driver);
-}
-
-static void __exit sensors_emc2103_exit(void)
-{
- i2c_del_driver(&emc2103_driver);
-}
+module_i2c_driver(emc2103_driver);
MODULE_AUTHOR("Steve Glendinning <steve.glendinning@smsc.com>");
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 0064432..cbef6e1 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 <khali@linux-fr.org>");
MODULE_DESCRIPTION("SMSC EMC6W201 hardware monitoring driver");
diff --git a/drivers/hwmon/f75375s.c b/drivers/hwmon/f75375s.c
index 95cbfb3..8326084 100644
--- a/drivers/hwmon/f75375s.c
+++ b/drivers/hwmon/f75375s.c
@@ -699,19 +699,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 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 aa6d8b6..73ba942 100644
--- a/drivers/hwmon/fschmd.c
+++ b/drivers/hwmon/fschmd.c
@@ -1314,20 +1314,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 <hdegoede@redhat.com>");
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 1d6a6fa..f8cd5a9 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 <hvr@gnu.org>");
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 a13e2da..89b8c0a 100644
--- a/drivers/hwmon/gl518sm.c
+++ b/drivers/hwmon/gl518sm.c
@@ -676,21 +676,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 <frodol@dds.nl>, "
"Kyosti Malkki <kmalkki@cc.hut.fi> and "
"Hong-Gunn Chew <hglinux@gunnet.org>");
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 cd6085b..e6dcf66 100644
--- a/drivers/hwmon/gl520sm.c
+++ b/drivers/hwmon/gl520sm.c
@@ -910,23 +910,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 <frodol@dds.nl>, "
"Kyösti Mälkki <kmalkki@cc.hut.fi>, "
"Maarten Deprez <maartendeprez@users.sourceforge.net>");
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 2d3d728..d33c592 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 <guenter.roeck@ericsson.com>");
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 <guenter.roeck@ericsson.com>");
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 9642286..2eae1bc 100644
--- a/drivers/hwmon/lm63.c
+++ b/drivers/hwmon/lm63.c
@@ -727,19 +727,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 <khali@linux-fr.org>");
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 9e64d96..2c63f14 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 <guillaume.ligneul@gmail.com>");
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 1888dd0..f3aaa30 100644
--- a/drivers/hwmon/lm75.c
+++ b/drivers/hwmon/lm75.c
@@ -429,23 +429,8 @@ static struct lm75_data *lm75_update_device(struct device *dev)
return data;
}
-/*-----------------------------------------------------------------------*/
-
-/* 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 <frodol@dds.nl>");
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 8dfc678..7cd516f 100644
--- a/drivers/hwmon/lm77.c
+++ b/drivers/hwmon/lm77.c
@@ -420,19 +420,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 <drewie@freemail.hu>");
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 18a0e6c..dc983ec 100644
--- a/drivers/hwmon/lm80.c
+++ b/drivers/hwmon/lm80.c
@@ -595,20 +595,9 @@ static struct lm80_data *lm80_update_device(struct device *dev)
return data;
}
-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 <frodol@dds.nl> and "
"Philip Edelbrock <phil@netroedge.com>");
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 8290476..e9a8a06 100644
--- a/drivers/hwmon/lm83.c
+++ b/drivers/hwmon/lm83.c
@@ -423,19 +423,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 <khali@linux-fr.org>");
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 da72dc1..fd26983 100644
--- a/drivers/hwmon/lm85.c
+++ b/drivers/hwmon/lm85.c
@@ -1611,22 +1611,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 <ppokorny@penguincomputing.com>, "
"Margit Schubert-While <margitsw@t-online.de>, "
"Justin Thiessen <jthiessen@penguincomputing.com>");
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 f1e6e75..126d0cc 100644
--- a/drivers/hwmon/lm87.c
+++ b/drivers/hwmon/lm87.c
@@ -963,19 +963,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 <khali@linux-fr.org> 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 615bc4f..e70cbb9 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 <khali@linux-fr.org>");
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 8fcbd4d4..92f2d46 100644
--- a/drivers/hwmon/lm92.c
+++ b/drivers/hwmon/lm92.c
@@ -416,19 +416,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 <khali@linux-fr.org>");
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 3b43df4..cb1bf8c 100644
--- a/drivers/hwmon/lm93.c
+++ b/drivers/hwmon/lm93.c
@@ -2635,20 +2635,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 <mhoffman@lightlink.com>, "
"Hans J. Koch <hjk@hansjkoch.de>");
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 513901d..6074afd 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 <elpa.rizzo@gmail.com>");
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 dce9e68..87de7de 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 <alexander.stein@systec-electronic.com>");
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 <per.dalen@appeartv.com>");
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 <iws@ovro.caltech.edu>");
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 <iws@ovro.caltech.edu>");
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 4b50601..c78d323 100644
--- a/drivers/hwmon/ltc4261.c
+++ b/drivers/hwmon/ltc4261.c
@@ -296,19 +296,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 <guenter.roeck@ericsson.com>");
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 385886a..ca18f52 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 <guenter.roeck@ericsson.com>");
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 022ded0..135822e 100644
--- a/drivers/hwmon/max1619.c
+++ b/drivers/hwmon/max1619.c
@@ -353,20 +353,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 <fishor@mail.ru> and "
"Jean Delvare <khali@linux-fr.org>");
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 20d1b2d..d5fb117 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 <david.george@ska.ac.za>");
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 f20d997..64866a9 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 <stigge@antcom.de>");
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 e855d3b..66f0dbc 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 <per.dalen@appeartv.com>");
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 ece3aaf..7a0cdb0 100644
--- a/drivers/hwmon/max6650.c
+++ b/drivers/hwmon/max6650.c
@@ -713,19 +713,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/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 <urs.fleisch@sensirion.com>");
MODULE_DESCRIPTION("Sensirion SHT21 humidity and temperature sensor driver");
diff --git a/drivers/hwmon/smm665.c b/drivers/hwmon/smm665.c
index 4116381..0d392d0 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 40b2667..8f88908 100644
--- a/drivers/hwmon/smsc47m192.c
+++ b/drivers/hwmon/smsc47m192.c
@@ -635,19 +635,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 <linux@rick.claranet.de>");
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 7dfb4de..bd83bc0 100644
--- a/drivers/hwmon/thmc50.c
+++ b/drivers/hwmon/thmc50.c
@@ -465,18 +465,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 <krzysztof.h1@wp.pl>");
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 643aa8c..40b742c 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 <sfking@fdwdc.com>");
MODULE_DESCRIPTION("Texas Instruments TMP102 temperature sensor driver");
diff --git a/drivers/hwmon/tmp401.c b/drivers/hwmon/tmp401.c
index ad8d535..a32d4dc 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 <hdegoede@redhat.com>");
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 0517a8f..aa5562d 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 <andre.prendel@gmx.de>");
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 8c2844e..1729f14 100644
--- a/drivers/hwmon/w83791d.c
+++ b/drivers/hwmon/w83791d.c
@@ -1625,19 +1625,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 <bezaur@gmail.com>");
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 f3e7130..43246e8 100644
--- a/drivers/hwmon/w83792d.c
+++ b/drivers/hwmon/w83792d.c
@@ -1641,22 +1641,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 <DZShen@Winbond.com.tw>");
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 854f911..77dd465 100644
--- a/drivers/hwmon/w83793.c
+++ b/drivers/hwmon/w83793.c
@@ -2120,19 +2120,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 845232d..25d741d 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 <khali@linux-fr.org>");
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 20781de..57f639e 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 <khali@linux-fr.org>");
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 0254e18..8b120eb 100644
--- a/drivers/hwmon/w83l786ng.c
+++ b/drivers/hwmon/w83l786ng.c
@@ -769,21 +769,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
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use
@ 2011-11-25 7:12 ` Axel Lin
0 siblings, 0 replies; 20+ messages in thread
From: Axel Lin @ 2011-11-25 7:12 UTC (permalink / raw)
To: linux-kernel
Cc: Sonic Zhang, Marc Pignat, Paul Thomas, Eric Miao, Jean Delvare,
Guenter Roeck, lm-sensors
This patch converts the drivers in drivers/hwmon/* to use the
module_spi_driver() macro which makes the code smaller and a bit
simpler.
Cc: Sonic Zhang <sonic.zhang@analog.com>
Cc: Marc Pignat <marc.pignat@hevs.ch>
Cc: Paul Thomas <pthomas8589@gmail.com>
Cc: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/hwmon/ad7314.c | 12 +-----------
drivers/hwmon/adcxx.c | 13 +------------
drivers/hwmon/ads7871.c | 13 +------------
drivers/hwmon/lm70.c | 13 +------------
drivers/hwmon/max1111.c | 12 +-----------
5 files changed, 5 insertions(+), 58 deletions(-)
diff --git a/drivers/hwmon/ad7314.c b/drivers/hwmon/ad7314.c
index 318e38e..4207c09 100644
--- a/drivers/hwmon/ad7314.c
+++ b/drivers/hwmon/ad7314.c
@@ -168,17 +168,7 @@ static struct spi_driver ad7314_driver = {
.id_table = ad7314_id,
};
-static __init int ad7314_init(void)
-{
- return spi_register_driver(&ad7314_driver);
-}
-module_init(ad7314_init);
-
-static __exit void ad7314_exit(void)
-{
- spi_unregister_driver(&ad7314_driver);
-}
-module_exit(ad7314_exit);
+module_spi_driver(ad7314_driver);
MODULE_AUTHOR("Sonic Zhang <sonic.zhang@analog.com>");
MODULE_DESCRIPTION("Analog Devices AD7314, ADT7301 and ADT7302 digital"
diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
index b2cacbe..24f8cf4 100644
--- a/drivers/hwmon/adcxx.c
+++ b/drivers/hwmon/adcxx.c
@@ -248,18 +248,7 @@ static struct spi_driver adcxx_driver = {
.remove = __devexit_p(adcxx_remove),
};
-static int __init init_adcxx(void)
-{
- return spi_register_driver(&adcxx_driver);
-}
-
-static void __exit exit_adcxx(void)
-{
- spi_unregister_driver(&adcxx_driver);
-}
-
-module_init(init_adcxx);
-module_exit(exit_adcxx);
+module_spi_driver(adcxx_driver);
MODULE_AUTHOR("Marc Pignat");
MODULE_DESCRIPTION("National Semiconductor adcxx8sxxx Linux driver");
diff --git a/drivers/hwmon/ads7871.c b/drivers/hwmon/ads7871.c
index 5231934..6a2ce1e4 100644
--- a/drivers/hwmon/ads7871.c
+++ b/drivers/hwmon/ads7871.c
@@ -235,18 +235,7 @@ static struct spi_driver ads7871_driver = {
.remove = __devexit_p(ads7871_remove),
};
-static int __init ads7871_init(void)
-{
- return spi_register_driver(&ads7871_driver);
-}
-
-static void __exit ads7871_exit(void)
-{
- spi_unregister_driver(&ads7871_driver);
-}
-
-module_init(ads7871_init);
-module_exit(ads7871_exit);
+module_spi_driver(ads7871_driver);
MODULE_AUTHOR("Paul Thomas <pthomas8589@gmail.com>");
MODULE_DESCRIPTION("TI ADS7871 A/D driver");
diff --git a/drivers/hwmon/lm70.c b/drivers/hwmon/lm70.c
index c274ea2..b813022d 100644
--- a/drivers/hwmon/lm70.c
+++ b/drivers/hwmon/lm70.c
@@ -213,18 +213,7 @@ static struct spi_driver lm70_driver = {
.remove = __devexit_p(lm70_remove),
};
-static int __init init_lm70(void)
-{
- return spi_register_driver(&lm70_driver);
-}
-
-static void __exit cleanup_lm70(void)
-{
- spi_unregister_driver(&lm70_driver);
-}
-
-module_init(init_lm70);
-module_exit(cleanup_lm70);
+module_spi_driver(lm70_driver);
MODULE_AUTHOR("Kaiwan N Billimoria");
MODULE_DESCRIPTION("NS LM70 / TI TMP121/TMP123 Linux driver");
diff --git a/drivers/hwmon/max1111.c b/drivers/hwmon/max1111.c
index 5586cca..d0f4ef6 100644
--- a/drivers/hwmon/max1111.c
+++ b/drivers/hwmon/max1111.c
@@ -227,17 +227,7 @@ static struct spi_driver max1111_driver = {
.remove = __devexit_p(max1111_remove),
};
-static int __init max1111_init(void)
-{
- return spi_register_driver(&max1111_driver);
-}
-module_init(max1111_init);
-
-static void __exit max1111_exit(void)
-{
- spi_unregister_driver(&max1111_driver);
-}
-module_exit(max1111_exit);
+module_spi_driver(max1111_driver);
MODULE_AUTHOR("Eric Miao <eric.miao@marvell.com>");
MODULE_DESCRIPTION("MAX1111 ADC Driver");
--
1.7.5.4
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH] hwmon: convert drivers/hwmon/* to use module_spi_driver()
@ 2011-11-25 7:12 ` Axel Lin
0 siblings, 0 replies; 20+ messages in thread
From: Axel Lin @ 2011-11-25 7:12 UTC (permalink / raw)
To: linux-kernel
Cc: Sonic Zhang, Marc Pignat, Paul Thomas, Eric Miao, Jean Delvare,
Guenter Roeck, lm-sensors
This patch converts the drivers in drivers/hwmon/* to use the
module_spi_driver() macro which makes the code smaller and a bit
simpler.
Cc: Sonic Zhang <sonic.zhang@analog.com>
Cc: Marc Pignat <marc.pignat@hevs.ch>
Cc: Paul Thomas <pthomas8589@gmail.com>
Cc: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/hwmon/ad7314.c | 12 +-----------
drivers/hwmon/adcxx.c | 13 +------------
drivers/hwmon/ads7871.c | 13 +------------
drivers/hwmon/lm70.c | 13 +------------
drivers/hwmon/max1111.c | 12 +-----------
5 files changed, 5 insertions(+), 58 deletions(-)
diff --git a/drivers/hwmon/ad7314.c b/drivers/hwmon/ad7314.c
index 318e38e..4207c09 100644
--- a/drivers/hwmon/ad7314.c
+++ b/drivers/hwmon/ad7314.c
@@ -168,17 +168,7 @@ static struct spi_driver ad7314_driver = {
.id_table = ad7314_id,
};
-static __init int ad7314_init(void)
-{
- return spi_register_driver(&ad7314_driver);
-}
-module_init(ad7314_init);
-
-static __exit void ad7314_exit(void)
-{
- spi_unregister_driver(&ad7314_driver);
-}
-module_exit(ad7314_exit);
+module_spi_driver(ad7314_driver);
MODULE_AUTHOR("Sonic Zhang <sonic.zhang@analog.com>");
MODULE_DESCRIPTION("Analog Devices AD7314, ADT7301 and ADT7302 digital"
diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
index b2cacbe..24f8cf4 100644
--- a/drivers/hwmon/adcxx.c
+++ b/drivers/hwmon/adcxx.c
@@ -248,18 +248,7 @@ static struct spi_driver adcxx_driver = {
.remove = __devexit_p(adcxx_remove),
};
-static int __init init_adcxx(void)
-{
- return spi_register_driver(&adcxx_driver);
-}
-
-static void __exit exit_adcxx(void)
-{
- spi_unregister_driver(&adcxx_driver);
-}
-
-module_init(init_adcxx);
-module_exit(exit_adcxx);
+module_spi_driver(adcxx_driver);
MODULE_AUTHOR("Marc Pignat");
MODULE_DESCRIPTION("National Semiconductor adcxx8sxxx Linux driver");
diff --git a/drivers/hwmon/ads7871.c b/drivers/hwmon/ads7871.c
index 5231934..6a2ce1e4 100644
--- a/drivers/hwmon/ads7871.c
+++ b/drivers/hwmon/ads7871.c
@@ -235,18 +235,7 @@ static struct spi_driver ads7871_driver = {
.remove = __devexit_p(ads7871_remove),
};
-static int __init ads7871_init(void)
-{
- return spi_register_driver(&ads7871_driver);
-}
-
-static void __exit ads7871_exit(void)
-{
- spi_unregister_driver(&ads7871_driver);
-}
-
-module_init(ads7871_init);
-module_exit(ads7871_exit);
+module_spi_driver(ads7871_driver);
MODULE_AUTHOR("Paul Thomas <pthomas8589@gmail.com>");
MODULE_DESCRIPTION("TI ADS7871 A/D driver");
diff --git a/drivers/hwmon/lm70.c b/drivers/hwmon/lm70.c
index c274ea2..b813022d 100644
--- a/drivers/hwmon/lm70.c
+++ b/drivers/hwmon/lm70.c
@@ -213,18 +213,7 @@ static struct spi_driver lm70_driver = {
.remove = __devexit_p(lm70_remove),
};
-static int __init init_lm70(void)
-{
- return spi_register_driver(&lm70_driver);
-}
-
-static void __exit cleanup_lm70(void)
-{
- spi_unregister_driver(&lm70_driver);
-}
-
-module_init(init_lm70);
-module_exit(cleanup_lm70);
+module_spi_driver(lm70_driver);
MODULE_AUTHOR("Kaiwan N Billimoria");
MODULE_DESCRIPTION("NS LM70 / TI TMP121/TMP123 Linux driver");
diff --git a/drivers/hwmon/max1111.c b/drivers/hwmon/max1111.c
index 5586cca..d0f4ef6 100644
--- a/drivers/hwmon/max1111.c
+++ b/drivers/hwmon/max1111.c
@@ -227,17 +227,7 @@ static struct spi_driver max1111_driver = {
.remove = __devexit_p(max1111_remove),
};
-static int __init max1111_init(void)
-{
- return spi_register_driver(&max1111_driver);
-}
-module_init(max1111_init);
-
-static void __exit max1111_exit(void)
-{
- spi_unregister_driver(&max1111_driver);
-}
-module_exit(max1111_exit);
+module_spi_driver(max1111_driver);
MODULE_AUTHOR("Eric Miao <eric.miao@marvell.com>");
MODULE_DESCRIPTION("MAX1111 ADC Driver");
--
1.7.5.4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use
@ 2011-11-25 7:31 ` Axel Lin
0 siblings, 0 replies; 20+ messages in thread
From: Axel Lin @ 2011-11-25 7:31 UTC (permalink / raw)
To: linux-kernel
Cc: Donggeun Kim, Simon Guinot, Lars-Peter Clausen, MyungJoo Ham,
Ben Dooks, Hans de Goede, J Keerthy, David S. Miller, Mark Brown,
Jean Delvare, Guenter Roeck, lm-sensors
This patch converts the drivers in drivers/hwmon/* to use the
module_platform_driver() macro which makes the code smaller and a bit
simpler.
Cc: Donggeun Kim <dg77.kim@samsung.com>
Cc: Simon Guinot <sguinot@lacie.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
Cc: Ben Dooks <ben@simtec.co.uk>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: J Keerthy <j-keerthy@ti.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/hwmon/exynos4_tmu.c | 12 +-----------
drivers/hwmon/gpio-fan.c | 13 +------------
drivers/hwmon/jz4740-hwmon.c | 12 +-----------
drivers/hwmon/ntc_thermistor.c | 14 +-------------
drivers/hwmon/s3c-hwmon.c | 13 +------------
drivers/hwmon/sch5627.c | 13 +------------
drivers/hwmon/sch5636.c | 13 +------------
drivers/hwmon/twl4030-madc-hwmon.c | 14 +-------------
drivers/hwmon/ultra45_env.c | 13 +------------
drivers/hwmon/wm831x-hwmon.c | 12 +-----------
drivers/hwmon/wm8350-hwmon.c | 12 +-----------
11 files changed, 11 insertions(+), 130 deletions(-)
diff --git a/drivers/hwmon/exynos4_tmu.c b/drivers/hwmon/exynos4_tmu.c
index faa0884..f2359a0 100644
--- a/drivers/hwmon/exynos4_tmu.c
+++ b/drivers/hwmon/exynos4_tmu.c
@@ -506,17 +506,7 @@ static struct platform_driver exynos4_tmu_driver = {
.resume = exynos4_tmu_resume,
};
-static int __init exynos4_tmu_driver_init(void)
-{
- return platform_driver_register(&exynos4_tmu_driver);
-}
-module_init(exynos4_tmu_driver_init);
-
-static void __exit exynos4_tmu_driver_exit(void)
-{
- platform_driver_unregister(&exynos4_tmu_driver);
-}
-module_exit(exynos4_tmu_driver_exit);
+module_platform_driver(exynos4_tmu_driver);
MODULE_DESCRIPTION("EXYNOS4 TMU Driver");
MODULE_AUTHOR("Donggeun Kim <dg77.kim@samsung.com>");
diff --git a/drivers/hwmon/gpio-fan.c b/drivers/hwmon/gpio-fan.c
index 89aa9fb..9ba38f3 100644
--- a/drivers/hwmon/gpio-fan.c
+++ b/drivers/hwmon/gpio-fan.c
@@ -539,18 +539,7 @@ static struct platform_driver gpio_fan_driver = {
},
};
-static int __init gpio_fan_init(void)
-{
- return platform_driver_register(&gpio_fan_driver);
-}
-
-static void __exit gpio_fan_exit(void)
-{
- platform_driver_unregister(&gpio_fan_driver);
-}
-
-module_init(gpio_fan_init);
-module_exit(gpio_fan_exit);
+module_platform_driver(gpio_fan_driver);
MODULE_AUTHOR("Simon Guinot <sguinot@lacie.com>");
MODULE_DESCRIPTION("GPIO FAN driver");
diff --git a/drivers/hwmon/jz4740-hwmon.c b/drivers/hwmon/jz4740-hwmon.c
index fea292d..7a48b1e 100644
--- a/drivers/hwmon/jz4740-hwmon.c
+++ b/drivers/hwmon/jz4740-hwmon.c
@@ -212,17 +212,7 @@ struct platform_driver jz4740_hwmon_driver = {
},
};
-static int __init jz4740_hwmon_init(void)
-{
- return platform_driver_register(&jz4740_hwmon_driver);
-}
-module_init(jz4740_hwmon_init);
-
-static void __exit jz4740_hwmon_exit(void)
-{
- platform_driver_unregister(&jz4740_hwmon_driver);
-}
-module_exit(jz4740_hwmon_exit);
+module_platform_driver(jz4740_hwmon_driver);
MODULE_DESCRIPTION("JZ4740 SoC HWMON driver");
MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
diff --git a/drivers/hwmon/ntc_thermistor.c b/drivers/hwmon/ntc_thermistor.c
index eab1161..9b382ec 100644
--- a/drivers/hwmon/ntc_thermistor.c
+++ b/drivers/hwmon/ntc_thermistor.c
@@ -432,19 +432,7 @@ static struct platform_driver ntc_thermistor_driver = {
.id_table = ntc_thermistor_id,
};
-static int __init ntc_thermistor_init(void)
-{
- return platform_driver_register(&ntc_thermistor_driver);
-}
-
-module_init(ntc_thermistor_init);
-
-static void __exit ntc_thermistor_cleanup(void)
-{
- platform_driver_unregister(&ntc_thermistor_driver);
-}
-
-module_exit(ntc_thermistor_cleanup);
+module_platform_driver(ntc_thermistor_driver);
MODULE_DESCRIPTION("NTC Thermistor Driver");
MODULE_AUTHOR("MyungJoo Ham <myungjoo.ham@samsung.com>");
diff --git a/drivers/hwmon/s3c-hwmon.c b/drivers/hwmon/s3c-hwmon.c
index b39f52e..f6c26d1 100644
--- a/drivers/hwmon/s3c-hwmon.c
+++ b/drivers/hwmon/s3c-hwmon.c
@@ -393,18 +393,7 @@ static struct platform_driver s3c_hwmon_driver = {
.remove = __devexit_p(s3c_hwmon_remove),
};
-static int __init s3c_hwmon_init(void)
-{
- return platform_driver_register(&s3c_hwmon_driver);
-}
-
-static void __exit s3c_hwmon_exit(void)
-{
- platform_driver_unregister(&s3c_hwmon_driver);
-}
-
-module_init(s3c_hwmon_init);
-module_exit(s3c_hwmon_exit);
+module_platform_driver(s3c_hwmon_driver);
MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
MODULE_DESCRIPTION("S3C ADC HWMon driver");
diff --git a/drivers/hwmon/sch5627.c b/drivers/hwmon/sch5627.c
index e3b5c60..79b6dab 100644
--- a/drivers/hwmon/sch5627.c
+++ b/drivers/hwmon/sch5627.c
@@ -590,19 +590,8 @@ static struct platform_driver sch5627_driver = {
.remove = sch5627_remove,
};
-static int __init sch5627_init(void)
-{
- return platform_driver_register(&sch5627_driver);
-}
-
-static void __exit sch5627_exit(void)
-{
- platform_driver_unregister(&sch5627_driver);
-}
+module_platform_driver(sch5627_driver);
MODULE_DESCRIPTION("SMSC SCH5627 Hardware Monitoring Driver");
MODULE_AUTHOR("Hans de Goede <hdegoede@redhat.com>");
MODULE_LICENSE("GPL");
-
-module_init(sch5627_init);
-module_exit(sch5627_exit);
diff --git a/drivers/hwmon/sch5636.c b/drivers/hwmon/sch5636.c
index 244407a..9d5236f 100644
--- a/drivers/hwmon/sch5636.c
+++ b/drivers/hwmon/sch5636.c
@@ -521,19 +521,8 @@ static struct platform_driver sch5636_driver = {
.remove = sch5636_remove,
};
-static int __init sch5636_init(void)
-{
- return platform_driver_register(&sch5636_driver);
-}
-
-static void __exit sch5636_exit(void)
-{
- platform_driver_unregister(&sch5636_driver);
-}
+module_platform_driver(sch5636_driver);
MODULE_DESCRIPTION("SMSC SCH5636 Hardware Monitoring Driver");
MODULE_AUTHOR("Hans de Goede <hdegoede@redhat.com>");
MODULE_LICENSE("GPL");
-
-module_init(sch5636_init);
-module_exit(sch5636_exit);
diff --git a/drivers/hwmon/twl4030-madc-hwmon.c b/drivers/hwmon/twl4030-madc-hwmon.c
index 5724074..0018c7d 100644
--- a/drivers/hwmon/twl4030-madc-hwmon.c
+++ b/drivers/hwmon/twl4030-madc-hwmon.c
@@ -136,19 +136,7 @@ static struct platform_driver twl4030_madc_hwmon_driver = {
},
};
-static int __init twl4030_madc_hwmon_init(void)
-{
- return platform_driver_register(&twl4030_madc_hwmon_driver);
-}
-
-module_init(twl4030_madc_hwmon_init);
-
-static void __exit twl4030_madc_hwmon_exit(void)
-{
- platform_driver_unregister(&twl4030_madc_hwmon_driver);
-}
-
-module_exit(twl4030_madc_hwmon_exit);
+module_platform_driver(twl4030_madc_hwmon_driver);
MODULE_DESCRIPTION("TWL4030 ADC Hwmon driver");
MODULE_LICENSE("GPL");
diff --git a/drivers/hwmon/ultra45_env.c b/drivers/hwmon/ultra45_env.c
index 3cd07bf..b9a87e8 100644
--- a/drivers/hwmon/ultra45_env.c
+++ b/drivers/hwmon/ultra45_env.c
@@ -309,15 +309,4 @@ static struct platform_driver env_driver = {
.remove = __devexit_p(env_remove),
};
-static int __init env_init(void)
-{
- return platform_driver_register(&env_driver);
-}
-
-static void __exit env_exit(void)
-{
- platform_driver_unregister(&env_driver);
-}
-
-module_init(env_init);
-module_exit(env_exit);
+module_platform_driver(env_driver);
diff --git a/drivers/hwmon/wm831x-hwmon.c b/drivers/hwmon/wm831x-hwmon.c
index 97b1f83..9b598ed 100644
--- a/drivers/hwmon/wm831x-hwmon.c
+++ b/drivers/hwmon/wm831x-hwmon.c
@@ -209,17 +209,7 @@ static struct platform_driver wm831x_hwmon_driver = {
},
};
-static int __init wm831x_hwmon_init(void)
-{
- return platform_driver_register(&wm831x_hwmon_driver);
-}
-module_init(wm831x_hwmon_init);
-
-static void __exit wm831x_hwmon_exit(void)
-{
- platform_driver_unregister(&wm831x_hwmon_driver);
-}
-module_exit(wm831x_hwmon_exit);
+module_platform_driver(wm831x_hwmon_driver);
MODULE_AUTHOR("Mark Brown <broonie@opensource.wolfsonmicro.com>");
MODULE_DESCRIPTION("WM831x Hardware Monitoring");
diff --git a/drivers/hwmon/wm8350-hwmon.c b/drivers/hwmon/wm8350-hwmon.c
index 1329059..3ff67ed 100644
--- a/drivers/hwmon/wm8350-hwmon.c
+++ b/drivers/hwmon/wm8350-hwmon.c
@@ -133,17 +133,7 @@ static struct platform_driver wm8350_hwmon_driver = {
},
};
-static int __init wm8350_hwmon_init(void)
-{
- return platform_driver_register(&wm8350_hwmon_driver);
-}
-module_init(wm8350_hwmon_init);
-
-static void __exit wm8350_hwmon_exit(void)
-{
- platform_driver_unregister(&wm8350_hwmon_driver);
-}
-module_exit(wm8350_hwmon_exit);
+module_platform_driver(wm8350_hwmon_driver);
MODULE_AUTHOR("Mark Brown <broonie@opensource.wolfsonmicro.com>");
MODULE_DESCRIPTION("WM8350 Hardware Monitoring");
--
1.7.5.4
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH] hwmon: convert drivers/hwmon/* to use module_platform_driver()
@ 2011-11-25 7:31 ` Axel Lin
0 siblings, 0 replies; 20+ messages in thread
From: Axel Lin @ 2011-11-25 7:31 UTC (permalink / raw)
To: linux-kernel
Cc: Donggeun Kim, Simon Guinot, Lars-Peter Clausen, MyungJoo Ham,
Ben Dooks, Hans de Goede, J Keerthy, David S. Miller, Mark Brown,
Jean Delvare, Guenter Roeck, lm-sensors
This patch converts the drivers in drivers/hwmon/* to use the
module_platform_driver() macro which makes the code smaller and a bit
simpler.
Cc: Donggeun Kim <dg77.kim@samsung.com>
Cc: Simon Guinot <sguinot@lacie.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
Cc: Ben Dooks <ben@simtec.co.uk>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: J Keerthy <j-keerthy@ti.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/hwmon/exynos4_tmu.c | 12 +-----------
drivers/hwmon/gpio-fan.c | 13 +------------
drivers/hwmon/jz4740-hwmon.c | 12 +-----------
drivers/hwmon/ntc_thermistor.c | 14 +-------------
drivers/hwmon/s3c-hwmon.c | 13 +------------
drivers/hwmon/sch5627.c | 13 +------------
drivers/hwmon/sch5636.c | 13 +------------
drivers/hwmon/twl4030-madc-hwmon.c | 14 +-------------
drivers/hwmon/ultra45_env.c | 13 +------------
drivers/hwmon/wm831x-hwmon.c | 12 +-----------
drivers/hwmon/wm8350-hwmon.c | 12 +-----------
11 files changed, 11 insertions(+), 130 deletions(-)
diff --git a/drivers/hwmon/exynos4_tmu.c b/drivers/hwmon/exynos4_tmu.c
index faa0884..f2359a0 100644
--- a/drivers/hwmon/exynos4_tmu.c
+++ b/drivers/hwmon/exynos4_tmu.c
@@ -506,17 +506,7 @@ static struct platform_driver exynos4_tmu_driver = {
.resume = exynos4_tmu_resume,
};
-static int __init exynos4_tmu_driver_init(void)
-{
- return platform_driver_register(&exynos4_tmu_driver);
-}
-module_init(exynos4_tmu_driver_init);
-
-static void __exit exynos4_tmu_driver_exit(void)
-{
- platform_driver_unregister(&exynos4_tmu_driver);
-}
-module_exit(exynos4_tmu_driver_exit);
+module_platform_driver(exynos4_tmu_driver);
MODULE_DESCRIPTION("EXYNOS4 TMU Driver");
MODULE_AUTHOR("Donggeun Kim <dg77.kim@samsung.com>");
diff --git a/drivers/hwmon/gpio-fan.c b/drivers/hwmon/gpio-fan.c
index 89aa9fb..9ba38f3 100644
--- a/drivers/hwmon/gpio-fan.c
+++ b/drivers/hwmon/gpio-fan.c
@@ -539,18 +539,7 @@ static struct platform_driver gpio_fan_driver = {
},
};
-static int __init gpio_fan_init(void)
-{
- return platform_driver_register(&gpio_fan_driver);
-}
-
-static void __exit gpio_fan_exit(void)
-{
- platform_driver_unregister(&gpio_fan_driver);
-}
-
-module_init(gpio_fan_init);
-module_exit(gpio_fan_exit);
+module_platform_driver(gpio_fan_driver);
MODULE_AUTHOR("Simon Guinot <sguinot@lacie.com>");
MODULE_DESCRIPTION("GPIO FAN driver");
diff --git a/drivers/hwmon/jz4740-hwmon.c b/drivers/hwmon/jz4740-hwmon.c
index fea292d..7a48b1e 100644
--- a/drivers/hwmon/jz4740-hwmon.c
+++ b/drivers/hwmon/jz4740-hwmon.c
@@ -212,17 +212,7 @@ struct platform_driver jz4740_hwmon_driver = {
},
};
-static int __init jz4740_hwmon_init(void)
-{
- return platform_driver_register(&jz4740_hwmon_driver);
-}
-module_init(jz4740_hwmon_init);
-
-static void __exit jz4740_hwmon_exit(void)
-{
- platform_driver_unregister(&jz4740_hwmon_driver);
-}
-module_exit(jz4740_hwmon_exit);
+module_platform_driver(jz4740_hwmon_driver);
MODULE_DESCRIPTION("JZ4740 SoC HWMON driver");
MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
diff --git a/drivers/hwmon/ntc_thermistor.c b/drivers/hwmon/ntc_thermistor.c
index eab1161..9b382ec 100644
--- a/drivers/hwmon/ntc_thermistor.c
+++ b/drivers/hwmon/ntc_thermistor.c
@@ -432,19 +432,7 @@ static struct platform_driver ntc_thermistor_driver = {
.id_table = ntc_thermistor_id,
};
-static int __init ntc_thermistor_init(void)
-{
- return platform_driver_register(&ntc_thermistor_driver);
-}
-
-module_init(ntc_thermistor_init);
-
-static void __exit ntc_thermistor_cleanup(void)
-{
- platform_driver_unregister(&ntc_thermistor_driver);
-}
-
-module_exit(ntc_thermistor_cleanup);
+module_platform_driver(ntc_thermistor_driver);
MODULE_DESCRIPTION("NTC Thermistor Driver");
MODULE_AUTHOR("MyungJoo Ham <myungjoo.ham@samsung.com>");
diff --git a/drivers/hwmon/s3c-hwmon.c b/drivers/hwmon/s3c-hwmon.c
index b39f52e..f6c26d1 100644
--- a/drivers/hwmon/s3c-hwmon.c
+++ b/drivers/hwmon/s3c-hwmon.c
@@ -393,18 +393,7 @@ static struct platform_driver s3c_hwmon_driver = {
.remove = __devexit_p(s3c_hwmon_remove),
};
-static int __init s3c_hwmon_init(void)
-{
- return platform_driver_register(&s3c_hwmon_driver);
-}
-
-static void __exit s3c_hwmon_exit(void)
-{
- platform_driver_unregister(&s3c_hwmon_driver);
-}
-
-module_init(s3c_hwmon_init);
-module_exit(s3c_hwmon_exit);
+module_platform_driver(s3c_hwmon_driver);
MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
MODULE_DESCRIPTION("S3C ADC HWMon driver");
diff --git a/drivers/hwmon/sch5627.c b/drivers/hwmon/sch5627.c
index e3b5c60..79b6dab 100644
--- a/drivers/hwmon/sch5627.c
+++ b/drivers/hwmon/sch5627.c
@@ -590,19 +590,8 @@ static struct platform_driver sch5627_driver = {
.remove = sch5627_remove,
};
-static int __init sch5627_init(void)
-{
- return platform_driver_register(&sch5627_driver);
-}
-
-static void __exit sch5627_exit(void)
-{
- platform_driver_unregister(&sch5627_driver);
-}
+module_platform_driver(sch5627_driver);
MODULE_DESCRIPTION("SMSC SCH5627 Hardware Monitoring Driver");
MODULE_AUTHOR("Hans de Goede <hdegoede@redhat.com>");
MODULE_LICENSE("GPL");
-
-module_init(sch5627_init);
-module_exit(sch5627_exit);
diff --git a/drivers/hwmon/sch5636.c b/drivers/hwmon/sch5636.c
index 244407a..9d5236f 100644
--- a/drivers/hwmon/sch5636.c
+++ b/drivers/hwmon/sch5636.c
@@ -521,19 +521,8 @@ static struct platform_driver sch5636_driver = {
.remove = sch5636_remove,
};
-static int __init sch5636_init(void)
-{
- return platform_driver_register(&sch5636_driver);
-}
-
-static void __exit sch5636_exit(void)
-{
- platform_driver_unregister(&sch5636_driver);
-}
+module_platform_driver(sch5636_driver);
MODULE_DESCRIPTION("SMSC SCH5636 Hardware Monitoring Driver");
MODULE_AUTHOR("Hans de Goede <hdegoede@redhat.com>");
MODULE_LICENSE("GPL");
-
-module_init(sch5636_init);
-module_exit(sch5636_exit);
diff --git a/drivers/hwmon/twl4030-madc-hwmon.c b/drivers/hwmon/twl4030-madc-hwmon.c
index 5724074..0018c7d 100644
--- a/drivers/hwmon/twl4030-madc-hwmon.c
+++ b/drivers/hwmon/twl4030-madc-hwmon.c
@@ -136,19 +136,7 @@ static struct platform_driver twl4030_madc_hwmon_driver = {
},
};
-static int __init twl4030_madc_hwmon_init(void)
-{
- return platform_driver_register(&twl4030_madc_hwmon_driver);
-}
-
-module_init(twl4030_madc_hwmon_init);
-
-static void __exit twl4030_madc_hwmon_exit(void)
-{
- platform_driver_unregister(&twl4030_madc_hwmon_driver);
-}
-
-module_exit(twl4030_madc_hwmon_exit);
+module_platform_driver(twl4030_madc_hwmon_driver);
MODULE_DESCRIPTION("TWL4030 ADC Hwmon driver");
MODULE_LICENSE("GPL");
diff --git a/drivers/hwmon/ultra45_env.c b/drivers/hwmon/ultra45_env.c
index 3cd07bf..b9a87e8 100644
--- a/drivers/hwmon/ultra45_env.c
+++ b/drivers/hwmon/ultra45_env.c
@@ -309,15 +309,4 @@ static struct platform_driver env_driver = {
.remove = __devexit_p(env_remove),
};
-static int __init env_init(void)
-{
- return platform_driver_register(&env_driver);
-}
-
-static void __exit env_exit(void)
-{
- platform_driver_unregister(&env_driver);
-}
-
-module_init(env_init);
-module_exit(env_exit);
+module_platform_driver(env_driver);
diff --git a/drivers/hwmon/wm831x-hwmon.c b/drivers/hwmon/wm831x-hwmon.c
index 97b1f83..9b598ed 100644
--- a/drivers/hwmon/wm831x-hwmon.c
+++ b/drivers/hwmon/wm831x-hwmon.c
@@ -209,17 +209,7 @@ static struct platform_driver wm831x_hwmon_driver = {
},
};
-static int __init wm831x_hwmon_init(void)
-{
- return platform_driver_register(&wm831x_hwmon_driver);
-}
-module_init(wm831x_hwmon_init);
-
-static void __exit wm831x_hwmon_exit(void)
-{
- platform_driver_unregister(&wm831x_hwmon_driver);
-}
-module_exit(wm831x_hwmon_exit);
+module_platform_driver(wm831x_hwmon_driver);
MODULE_AUTHOR("Mark Brown <broonie@opensource.wolfsonmicro.com>");
MODULE_DESCRIPTION("WM831x Hardware Monitoring");
diff --git a/drivers/hwmon/wm8350-hwmon.c b/drivers/hwmon/wm8350-hwmon.c
index 1329059..3ff67ed 100644
--- a/drivers/hwmon/wm8350-hwmon.c
+++ b/drivers/hwmon/wm8350-hwmon.c
@@ -133,17 +133,7 @@ static struct platform_driver wm8350_hwmon_driver = {
},
};
-static int __init wm8350_hwmon_init(void)
-{
- return platform_driver_register(&wm8350_hwmon_driver);
-}
-module_init(wm8350_hwmon_init);
-
-static void __exit wm8350_hwmon_exit(void)
-{
- platform_driver_unregister(&wm8350_hwmon_driver);
-}
-module_exit(wm8350_hwmon_exit);
+module_platform_driver(wm8350_hwmon_driver);
MODULE_AUTHOR("Mark Brown <broonie@opensource.wolfsonmicro.com>");
MODULE_DESCRIPTION("WM8350 Hardware Monitoring");
--
1.7.5.4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use
2011-11-25 7:12 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_spi_driver() Axel Lin
@ 2011-11-25 9:01 ` Zhang, Sonic
-1 siblings, 0 replies; 20+ messages in thread
From: Zhang, Sonic @ 2011-11-25 9:01 UTC (permalink / raw)
To: Axel Lin, linux-kernel@vger.kernel.org
Cc: Marc Pignat, Paul Thomas, Eric Miao, Jean Delvare, Guenter Roeck,
lm-sensors@lm-sensors.org
Acked-by: Sonic Zhang <sonic.zhang@analog.com>
>-----Original Message-----
>From: Axel Lin [mailto:axel.lin@gmail.com]
>Sent: Friday, November 25, 2011 3:13 PM
>To: linux-kernel@vger.kernel.org
>Cc: Zhang, Sonic; Marc Pignat; Paul Thomas; Eric Miao; Jean
>Delvare; Guenter Roeck; lm-sensors@lm-sensors.org
>Subject: [PATCH] hwmon: convert drivers/hwmon/* to use
>module_spi_driver()
>
>This patch converts the drivers in drivers/hwmon/* to use the
>module_spi_driver() macro which makes the code smaller and a
>bit simpler.
>
>Cc: Sonic Zhang <sonic.zhang@analog.com>
>Cc: Marc Pignat <marc.pignat@hevs.ch>
>Cc: Paul Thomas <pthomas8589@gmail.com>
>Cc: Eric Miao <eric.miao@marvell.com>
>Signed-off-by: Axel Lin <axel.lin@gmail.com>
>---
> drivers/hwmon/ad7314.c | 12 +-----------
> drivers/hwmon/adcxx.c | 13 +------------
> drivers/hwmon/ads7871.c | 13 +------------
> drivers/hwmon/lm70.c | 13 +------------
> drivers/hwmon/max1111.c | 12 +-----------
> 5 files changed, 5 insertions(+), 58 deletions(-)
>
>diff --git a/drivers/hwmon/ad7314.c b/drivers/hwmon/ad7314.c
>index 318e38e..4207c09 100644
>--- a/drivers/hwmon/ad7314.c
>+++ b/drivers/hwmon/ad7314.c
>@@ -168,17 +168,7 @@ static struct spi_driver ad7314_driver = {
> .id_table = ad7314_id,
> };
>
>-static __init int ad7314_init(void)
>-{
>- return spi_register_driver(&ad7314_driver);
>-}
>-module_init(ad7314_init);
>-
>-static __exit void ad7314_exit(void)
>-{
>- spi_unregister_driver(&ad7314_driver);
>-}
>-module_exit(ad7314_exit);
>+module_spi_driver(ad7314_driver);
>
> MODULE_AUTHOR("Sonic Zhang <sonic.zhang@analog.com>");
>MODULE_DESCRIPTION("Analog Devices AD7314, ADT7301 and ADT7302 digital"
>diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
>index b2cacbe..24f8cf4 100644
>--- a/drivers/hwmon/adcxx.c
>+++ b/drivers/hwmon/adcxx.c
>@@ -248,18 +248,7 @@ static struct spi_driver adcxx_driver = {
> .remove = __devexit_p(adcxx_remove),
> };
>
>-static int __init init_adcxx(void)
>-{
>- return spi_register_driver(&adcxx_driver);
>-}
>-
>-static void __exit exit_adcxx(void)
>-{
>- spi_unregister_driver(&adcxx_driver);
>-}
>-
>-module_init(init_adcxx);
>-module_exit(exit_adcxx);
>+module_spi_driver(adcxx_driver);
>
> MODULE_AUTHOR("Marc Pignat");
> MODULE_DESCRIPTION("National Semiconductor adcxx8sxxx Linux
>driver"); diff --git a/drivers/hwmon/ads7871.c
>b/drivers/hwmon/ads7871.c index 5231934..6a2ce1e4 100644
>--- a/drivers/hwmon/ads7871.c
>+++ b/drivers/hwmon/ads7871.c
>@@ -235,18 +235,7 @@ static struct spi_driver ads7871_driver = {
> .remove = __devexit_p(ads7871_remove), };
>
>-static int __init ads7871_init(void)
>-{
>- return spi_register_driver(&ads7871_driver);
>-}
>-
>-static void __exit ads7871_exit(void)
>-{
>- spi_unregister_driver(&ads7871_driver);
>-}
>-
>-module_init(ads7871_init);
>-module_exit(ads7871_exit);
>+module_spi_driver(ads7871_driver);
>
> MODULE_AUTHOR("Paul Thomas <pthomas8589@gmail.com>");
>MODULE_DESCRIPTION("TI ADS7871 A/D driver"); diff --git
>a/drivers/hwmon/lm70.c b/drivers/hwmon/lm70.c index
>c274ea2..b813022d 100644
>--- a/drivers/hwmon/lm70.c
>+++ b/drivers/hwmon/lm70.c
>@@ -213,18 +213,7 @@ static struct spi_driver lm70_driver = {
> .remove = __devexit_p(lm70_remove),
> };
>
>-static int __init init_lm70(void)
>-{
>- return spi_register_driver(&lm70_driver);
>-}
>-
>-static void __exit cleanup_lm70(void)
>-{
>- spi_unregister_driver(&lm70_driver);
>-}
>-
>-module_init(init_lm70);
>-module_exit(cleanup_lm70);
>+module_spi_driver(lm70_driver);
>
> MODULE_AUTHOR("Kaiwan N Billimoria");
> MODULE_DESCRIPTION("NS LM70 / TI TMP121/TMP123 Linux
>driver"); diff --git a/drivers/hwmon/max1111.c
>b/drivers/hwmon/max1111.c index 5586cca..d0f4ef6 100644
>--- a/drivers/hwmon/max1111.c
>+++ b/drivers/hwmon/max1111.c
>@@ -227,17 +227,7 @@ static struct spi_driver max1111_driver = {
> .remove = __devexit_p(max1111_remove),
> };
>
>-static int __init max1111_init(void)
>-{
>- return spi_register_driver(&max1111_driver);
>-}
>-module_init(max1111_init);
>-
>-static void __exit max1111_exit(void)
>-{
>- spi_unregister_driver(&max1111_driver);
>-}
>-module_exit(max1111_exit);
>+module_spi_driver(max1111_driver);
>
> MODULE_AUTHOR("Eric Miao <eric.miao@marvell.com>");
> MODULE_DESCRIPTION("MAX1111 ADC Driver");
>--
>1.7.5.4
>
>
>
>
>
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 20+ messages in thread
* RE: [PATCH] hwmon: convert drivers/hwmon/* to use module_spi_driver()
@ 2011-11-25 9:01 ` Zhang, Sonic
0 siblings, 0 replies; 20+ messages in thread
From: Zhang, Sonic @ 2011-11-25 9:01 UTC (permalink / raw)
To: Axel Lin, linux-kernel@vger.kernel.org
Cc: Marc Pignat, Paul Thomas, Eric Miao, Jean Delvare, Guenter Roeck,
lm-sensors@lm-sensors.org
Acked-by: Sonic Zhang <sonic.zhang@analog.com>
>-----Original Message-----
>From: Axel Lin [mailto:axel.lin@gmail.com]
>Sent: Friday, November 25, 2011 3:13 PM
>To: linux-kernel@vger.kernel.org
>Cc: Zhang, Sonic; Marc Pignat; Paul Thomas; Eric Miao; Jean
>Delvare; Guenter Roeck; lm-sensors@lm-sensors.org
>Subject: [PATCH] hwmon: convert drivers/hwmon/* to use
>module_spi_driver()
>
>This patch converts the drivers in drivers/hwmon/* to use the
>module_spi_driver() macro which makes the code smaller and a
>bit simpler.
>
>Cc: Sonic Zhang <sonic.zhang@analog.com>
>Cc: Marc Pignat <marc.pignat@hevs.ch>
>Cc: Paul Thomas <pthomas8589@gmail.com>
>Cc: Eric Miao <eric.miao@marvell.com>
>Signed-off-by: Axel Lin <axel.lin@gmail.com>
>---
> drivers/hwmon/ad7314.c | 12 +-----------
> drivers/hwmon/adcxx.c | 13 +------------
> drivers/hwmon/ads7871.c | 13 +------------
> drivers/hwmon/lm70.c | 13 +------------
> drivers/hwmon/max1111.c | 12 +-----------
> 5 files changed, 5 insertions(+), 58 deletions(-)
>
>diff --git a/drivers/hwmon/ad7314.c b/drivers/hwmon/ad7314.c
>index 318e38e..4207c09 100644
>--- a/drivers/hwmon/ad7314.c
>+++ b/drivers/hwmon/ad7314.c
>@@ -168,17 +168,7 @@ static struct spi_driver ad7314_driver = {
> .id_table = ad7314_id,
> };
>
>-static __init int ad7314_init(void)
>-{
>- return spi_register_driver(&ad7314_driver);
>-}
>-module_init(ad7314_init);
>-
>-static __exit void ad7314_exit(void)
>-{
>- spi_unregister_driver(&ad7314_driver);
>-}
>-module_exit(ad7314_exit);
>+module_spi_driver(ad7314_driver);
>
> MODULE_AUTHOR("Sonic Zhang <sonic.zhang@analog.com>");
>MODULE_DESCRIPTION("Analog Devices AD7314, ADT7301 and ADT7302 digital"
>diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
>index b2cacbe..24f8cf4 100644
>--- a/drivers/hwmon/adcxx.c
>+++ b/drivers/hwmon/adcxx.c
>@@ -248,18 +248,7 @@ static struct spi_driver adcxx_driver = {
> .remove = __devexit_p(adcxx_remove),
> };
>
>-static int __init init_adcxx(void)
>-{
>- return spi_register_driver(&adcxx_driver);
>-}
>-
>-static void __exit exit_adcxx(void)
>-{
>- spi_unregister_driver(&adcxx_driver);
>-}
>-
>-module_init(init_adcxx);
>-module_exit(exit_adcxx);
>+module_spi_driver(adcxx_driver);
>
> MODULE_AUTHOR("Marc Pignat");
> MODULE_DESCRIPTION("National Semiconductor adcxx8sxxx Linux
>driver"); diff --git a/drivers/hwmon/ads7871.c
>b/drivers/hwmon/ads7871.c index 5231934..6a2ce1e4 100644
>--- a/drivers/hwmon/ads7871.c
>+++ b/drivers/hwmon/ads7871.c
>@@ -235,18 +235,7 @@ static struct spi_driver ads7871_driver = {
> .remove = __devexit_p(ads7871_remove), };
>
>-static int __init ads7871_init(void)
>-{
>- return spi_register_driver(&ads7871_driver);
>-}
>-
>-static void __exit ads7871_exit(void)
>-{
>- spi_unregister_driver(&ads7871_driver);
>-}
>-
>-module_init(ads7871_init);
>-module_exit(ads7871_exit);
>+module_spi_driver(ads7871_driver);
>
> MODULE_AUTHOR("Paul Thomas <pthomas8589@gmail.com>");
>MODULE_DESCRIPTION("TI ADS7871 A/D driver"); diff --git
>a/drivers/hwmon/lm70.c b/drivers/hwmon/lm70.c index
>c274ea2..b813022d 100644
>--- a/drivers/hwmon/lm70.c
>+++ b/drivers/hwmon/lm70.c
>@@ -213,18 +213,7 @@ static struct spi_driver lm70_driver = {
> .remove = __devexit_p(lm70_remove),
> };
>
>-static int __init init_lm70(void)
>-{
>- return spi_register_driver(&lm70_driver);
>-}
>-
>-static void __exit cleanup_lm70(void)
>-{
>- spi_unregister_driver(&lm70_driver);
>-}
>-
>-module_init(init_lm70);
>-module_exit(cleanup_lm70);
>+module_spi_driver(lm70_driver);
>
> MODULE_AUTHOR("Kaiwan N Billimoria");
> MODULE_DESCRIPTION("NS LM70 / TI TMP121/TMP123 Linux
>driver"); diff --git a/drivers/hwmon/max1111.c
>b/drivers/hwmon/max1111.c index 5586cca..d0f4ef6 100644
>--- a/drivers/hwmon/max1111.c
>+++ b/drivers/hwmon/max1111.c
>@@ -227,17 +227,7 @@ static struct spi_driver max1111_driver = {
> .remove = __devexit_p(max1111_remove),
> };
>
>-static int __init max1111_init(void)
>-{
>- return spi_register_driver(&max1111_driver);
>-}
>-module_init(max1111_init);
>-
>-static void __exit max1111_exit(void)
>-{
>- spi_unregister_driver(&max1111_driver);
>-}
>-module_exit(max1111_exit);
>+module_spi_driver(max1111_driver);
>
> MODULE_AUTHOR("Eric Miao <eric.miao@marvell.com>");
> MODULE_DESCRIPTION("MAX1111 ADC Driver");
>--
>1.7.5.4
>
>
>
>
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use
2011-11-25 7:31 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_platform_driver() Axel Lin
@ 2011-11-25 11:03 ` Mark Brown
-1 siblings, 0 replies; 20+ messages in thread
From: Mark Brown @ 2011-11-25 11:03 UTC (permalink / raw)
To: Axel Lin
Cc: linux-kernel, Donggeun Kim, Simon Guinot, Lars-Peter Clausen,
MyungJoo Ham, Ben Dooks, Hans de Goede, J Keerthy,
David S. Miller, Jean Delvare, Guenter Roeck, lm-sensors
On Fri, Nov 25, 2011 at 03:31:00PM +0800, Axel Lin wrote:
> This patch converts the drivers in drivers/hwmon/* to use the
> module_platform_driver() macro which makes the code smaller and a bit
> simpler.
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH] hwmon: convert drivers/hwmon/* to use module_platform_driver()
@ 2011-11-25 11:03 ` Mark Brown
0 siblings, 0 replies; 20+ messages in thread
From: Mark Brown @ 2011-11-25 11:03 UTC (permalink / raw)
To: Axel Lin
Cc: linux-kernel, Donggeun Kim, Simon Guinot, Lars-Peter Clausen,
MyungJoo Ham, Ben Dooks, Hans de Goede, J Keerthy,
David S. Miller, Jean Delvare, Guenter Roeck, lm-sensors
On Fri, Nov 25, 2011 at 03:31:00PM +0800, Axel Lin wrote:
> This patch converts the drivers in drivers/hwmon/* to use the
> module_platform_driver() macro which makes the code smaller and a bit
> simpler.
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use
2011-11-25 7:06 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_i2c_driver() Axel Lin
@ 2011-11-25 16:57 ` Guenter Roeck
-1 siblings, 0 replies; 20+ messages in thread
From: Guenter Roeck @ 2011-11-25 16:57 UTC (permalink / raw)
To: Axel Lin
Cc: linux-kernel@vger.kernel.org, Corentin Labbe, Dirk Eibach,
Mark M. Hoffman, Steve Glendinning, Riku Voipio,
Guillaume Ligneul, David George, Hans J. Koch, Marc Hulsman,
Rudolf Marek, Jean Delvare, lm-sensors@lm-sensors.org
On Fri, Nov 25, 2011 at 02:06:27AM -0500, Axel Lin wrote:
> This patch converts the drivers in drivers/hwmon/* to use the
> module_i2c_driver() macro which makes the code smaller and a bit
> simpler.
>
> Cc: Corentin Labbe <corentin.labbe@geomatys.fr>
> Cc: Dirk Eibach <eibach@gdsys.de>
> Cc: "Mark M. Hoffman" <mhoffman@lightlink.com>
> Cc: Steve Glendinning <steve.glendinning@smsc.com>
> Cc: Riku Voipio <riku.voipio@iki.fi>
> Cc: Guillaume Ligneul <guillaume.ligneul@gmail.com>
> Cc: David George <david.george@ska.ac.za>
> Cc: "Hans J. Koch" <hjk@hansjkoch.de>
> Cc: Marc Hulsman <m.hulsman@tudelft.nl>
> Cc: Rudolf Marek <r.marek@assembler.cz>
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>
What is the plan for those patches ? Are they expected to all go through the same tree,
or through individual trees after the necessary defines are introduced into mainline ?
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH] hwmon: convert drivers/hwmon/* to use module_i2c_driver()
@ 2011-11-25 16:57 ` Guenter Roeck
0 siblings, 0 replies; 20+ messages in thread
From: Guenter Roeck @ 2011-11-25 16:57 UTC (permalink / raw)
To: Axel Lin
Cc: linux-kernel@vger.kernel.org, Corentin Labbe, Dirk Eibach,
Mark M. Hoffman, Steve Glendinning, Riku Voipio,
Guillaume Ligneul, David George, Hans J. Koch, Marc Hulsman,
Rudolf Marek, Jean Delvare, lm-sensors@lm-sensors.org
On Fri, Nov 25, 2011 at 02:06:27AM -0500, Axel Lin wrote:
> This patch converts the drivers in drivers/hwmon/* to use the
> module_i2c_driver() macro which makes the code smaller and a bit
> simpler.
>
> Cc: Corentin Labbe <corentin.labbe@geomatys.fr>
> Cc: Dirk Eibach <eibach@gdsys.de>
> Cc: "Mark M. Hoffman" <mhoffman@lightlink.com>
> Cc: Steve Glendinning <steve.glendinning@smsc.com>
> Cc: Riku Voipio <riku.voipio@iki.fi>
> Cc: Guillaume Ligneul <guillaume.ligneul@gmail.com>
> Cc: David George <david.george@ska.ac.za>
> Cc: "Hans J. Koch" <hjk@hansjkoch.de>
> Cc: Marc Hulsman <m.hulsman@tudelft.nl>
> Cc: Rudolf Marek <r.marek@assembler.cz>
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>
What is the plan for those patches ? Are they expected to all go through the same tree,
or through individual trees after the necessary defines are introduced into mainline ?
Guenter
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use
2011-11-25 7:31 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_platform_driver() Axel Lin
@ 2011-11-27 1:37 ` Guenter Roeck
-1 siblings, 0 replies; 20+ messages in thread
From: Guenter Roeck @ 2011-11-27 1:37 UTC (permalink / raw)
To: Axel Lin
Cc: linux-kernel@vger.kernel.org, Donggeun Kim, Simon Guinot,
Lars-Peter Clausen, MyungJoo Ham, Ben Dooks, Hans de Goede,
J Keerthy, David S. Miller, Mark Brown, Jean Delvare,
lm-sensors@lm-sensors.org
On Fri, Nov 25, 2011 at 02:31:00AM -0500, Axel Lin wrote:
> This patch converts the drivers in drivers/hwmon/* to use the
> module_platform_driver() macro which makes the code smaller and a bit
> simpler.
>
> Cc: Donggeun Kim <dg77.kim@samsung.com>
> Cc: Simon Guinot <sguinot@lacie.com>
> Cc: Lars-Peter Clausen <lars@metafoo.de>
> Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
> Cc: Ben Dooks <ben@simtec.co.uk>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Cc: J Keerthy <j-keerthy@ti.com>
> Cc: David S. Miller <davem@davemloft.net>
> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
Applied. I'll let it rest in linux-next for a couple of days and send it to Linus
if there are no problems.
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH] hwmon: convert drivers/hwmon/* to use module_platform_driver()
@ 2011-11-27 1:37 ` Guenter Roeck
0 siblings, 0 replies; 20+ messages in thread
From: Guenter Roeck @ 2011-11-27 1:37 UTC (permalink / raw)
To: Axel Lin
Cc: linux-kernel@vger.kernel.org, Donggeun Kim, Simon Guinot,
Lars-Peter Clausen, MyungJoo Ham, Ben Dooks, Hans de Goede,
J Keerthy, David S. Miller, Mark Brown, Jean Delvare,
lm-sensors@lm-sensors.org
On Fri, Nov 25, 2011 at 02:31:00AM -0500, Axel Lin wrote:
> This patch converts the drivers in drivers/hwmon/* to use the
> module_platform_driver() macro which makes the code smaller and a bit
> simpler.
>
> Cc: Donggeun Kim <dg77.kim@samsung.com>
> Cc: Simon Guinot <sguinot@lacie.com>
> Cc: Lars-Peter Clausen <lars@metafoo.de>
> Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
> Cc: Ben Dooks <ben@simtec.co.uk>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Cc: J Keerthy <j-keerthy@ti.com>
> Cc: David S. Miller <davem@davemloft.net>
> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
Applied. I'll let it rest in linux-next for a couple of days and send it to Linus
if there are no problems.
Guenter
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use
2011-11-25 16:57 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_i2c_driver() Guenter Roeck
@ 2011-11-27 17:32 ` Guenter Roeck
-1 siblings, 0 replies; 20+ messages in thread
From: Guenter Roeck @ 2011-11-27 17:32 UTC (permalink / raw)
To: Axel Lin
Cc: Dirk Eibach, David George, Guillaume Ligneul, Riku Voipio,
Hans J. Koch, linux-kernel@vger.kernel.org, Mark M. Hoffman,
Steve Glendinning, lm-sensors@lm-sensors.org
On Fri, Nov 25, 2011 at 11:57:08AM -0500, Guenter Roeck wrote:
> On Fri, Nov 25, 2011 at 02:06:27AM -0500, Axel Lin wrote:
> > This patch converts the drivers in drivers/hwmon/* to use the
> > module_i2c_driver() macro which makes the code smaller and a bit
> > simpler.
> >
> > Cc: Corentin Labbe <corentin.labbe@geomatys.fr>
> > Cc: Dirk Eibach <eibach@gdsys.de>
> > Cc: "Mark M. Hoffman" <mhoffman@lightlink.com>
> > Cc: Steve Glendinning <steve.glendinning@smsc.com>
> > Cc: Riku Voipio <riku.voipio@iki.fi>
> > Cc: Guillaume Ligneul <guillaume.ligneul@gmail.com>
> > Cc: David George <david.george@ska.ac.za>
> > Cc: "Hans J. Koch" <hjk@hansjkoch.de>
> > Cc: Marc Hulsman <m.hulsman@tudelft.nl>
> > Cc: Rudolf Marek <r.marek@assembler.cz>
> > Signed-off-by: Axel Lin <axel.lin@gmail.com>
>
> Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>
>
> What is the plan for those patches ? Are they expected to all go through the same tree,
> or through individual trees after the necessary defines are introduced into mainline ?
>
My question was answered in another thread related to the misc subsystem.
The patch this one depends on will only be available in 3.3-rc1. It would have been
nice to let us know ahead of time, because I _did_ find out the hard way.
I would suggest to resubmit the i2c and spi patches against a working baseline
once it is available, to make sure it does not miss some new drivers.
On a side note, this patch does miss the drivers in hwmon/pmbus, but I can take care
of those myself.
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use module_i2c_driver()
@ 2011-11-27 17:32 ` Guenter Roeck
0 siblings, 0 replies; 20+ messages in thread
From: Guenter Roeck @ 2011-11-27 17:32 UTC (permalink / raw)
To: Axel Lin
Cc: Dirk Eibach, David George, Guillaume Ligneul, Riku Voipio,
Hans J. Koch, linux-kernel@vger.kernel.org, Mark M. Hoffman,
Steve Glendinning, lm-sensors@lm-sensors.org
On Fri, Nov 25, 2011 at 11:57:08AM -0500, Guenter Roeck wrote:
> On Fri, Nov 25, 2011 at 02:06:27AM -0500, Axel Lin wrote:
> > This patch converts the drivers in drivers/hwmon/* to use the
> > module_i2c_driver() macro which makes the code smaller and a bit
> > simpler.
> >
> > Cc: Corentin Labbe <corentin.labbe@geomatys.fr>
> > Cc: Dirk Eibach <eibach@gdsys.de>
> > Cc: "Mark M. Hoffman" <mhoffman@lightlink.com>
> > Cc: Steve Glendinning <steve.glendinning@smsc.com>
> > Cc: Riku Voipio <riku.voipio@iki.fi>
> > Cc: Guillaume Ligneul <guillaume.ligneul@gmail.com>
> > Cc: David George <david.george@ska.ac.za>
> > Cc: "Hans J. Koch" <hjk@hansjkoch.de>
> > Cc: Marc Hulsman <m.hulsman@tudelft.nl>
> > Cc: Rudolf Marek <r.marek@assembler.cz>
> > Signed-off-by: Axel Lin <axel.lin@gmail.com>
>
> Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>
>
> What is the plan for those patches ? Are they expected to all go through the same tree,
> or through individual trees after the necessary defines are introduced into mainline ?
>
My question was answered in another thread related to the misc subsystem.
The patch this one depends on will only be available in 3.3-rc1. It would have been
nice to let us know ahead of time, because I _did_ find out the hard way.
I would suggest to resubmit the i2c and spi patches against a working baseline
once it is available, to make sure it does not miss some new drivers.
On a side note, this patch does miss the drivers in hwmon/pmbus, but I can take care
of those myself.
Guenter
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use
2011-11-25 7:12 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_spi_driver() Axel Lin
@ 2011-11-27 17:48 ` Guenter Roeck
-1 siblings, 0 replies; 20+ messages in thread
From: Guenter Roeck @ 2011-11-27 17:48 UTC (permalink / raw)
To: Axel Lin
Cc: linux-kernel@vger.kernel.org, Sonic Zhang, Marc Pignat,
Paul Thomas, Eric Miao, Jean Delvare, lm-sensors@lm-sensors.org
On Fri, Nov 25, 2011 at 02:12:45AM -0500, Axel Lin wrote:
> This patch converts the drivers in drivers/hwmon/* to use the
> module_spi_driver() macro which makes the code smaller and a bit
> simpler.
>
> Cc: Sonic Zhang <sonic.zhang@analog.com>
> Cc: Marc Pignat <marc.pignat@hevs.ch>
> Cc: Paul Thomas <pthomas8589@gmail.com>
> Cc: Eric Miao <eric.miao@marvell.com>
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
module_spi_driver() is not (yet) available in mainline, so this patch
can not be applied right now.
It would probably make sense to resubmit the patch once the code necessary
to support it is available, to make sure it does not miss any new drivers.
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH] hwmon: convert drivers/hwmon/* to use module_spi_driver()
@ 2011-11-27 17:48 ` Guenter Roeck
0 siblings, 0 replies; 20+ messages in thread
From: Guenter Roeck @ 2011-11-27 17:48 UTC (permalink / raw)
To: Axel Lin
Cc: linux-kernel@vger.kernel.org, Sonic Zhang, Marc Pignat,
Paul Thomas, Eric Miao, Jean Delvare, lm-sensors@lm-sensors.org
On Fri, Nov 25, 2011 at 02:12:45AM -0500, Axel Lin wrote:
> This patch converts the drivers in drivers/hwmon/* to use the
> module_spi_driver() macro which makes the code smaller and a bit
> simpler.
>
> Cc: Sonic Zhang <sonic.zhang@analog.com>
> Cc: Marc Pignat <marc.pignat@hevs.ch>
> Cc: Paul Thomas <pthomas8589@gmail.com>
> Cc: Eric Miao <eric.miao@marvell.com>
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
module_spi_driver() is not (yet) available in mainline, so this patch
can not be applied right now.
It would probably make sense to resubmit the patch once the code necessary
to support it is available, to make sure it does not miss any new drivers.
Guenter
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use
2011-11-27 17:32 ` [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use module_i2c_driver() Guenter Roeck
@ 2011-11-27 23:58 ` Axel Lin
-1 siblings, 0 replies; 20+ messages in thread
From: Axel Lin @ 2011-11-27 23:58 UTC (permalink / raw)
To: Guenter Roeck
Cc: Dirk Eibach, David George, Guillaume Ligneul, Riku Voipio,
Hans J. Koch, linux-kernel@vger.kernel.org, Mark M. Hoffman,
Steve Glendinning, lm-sensors@lm-sensors.org
2011/11/28 Guenter Roeck <guenter.roeck@ericsson.com>:
> On Fri, Nov 25, 2011 at 11:57:08AM -0500, Guenter Roeck wrote:
>> On Fri, Nov 25, 2011 at 02:06:27AM -0500, Axel Lin wrote:
>> > This patch converts the drivers in drivers/hwmon/* to use the
>> > module_i2c_driver() macro which makes the code smaller and a bit
>> > simpler.
>> >
>> > Cc: Corentin Labbe <corentin.labbe@geomatys.fr>
>> > Cc: Dirk Eibach <eibach@gdsys.de>
>> > Cc: "Mark M. Hoffman" <mhoffman@lightlink.com>
>> > Cc: Steve Glendinning <steve.glendinning@smsc.com>
>> > Cc: Riku Voipio <riku.voipio@iki.fi>
>> > Cc: Guillaume Ligneul <guillaume.ligneul@gmail.com>
>> > Cc: David George <david.george@ska.ac.za>
>> > Cc: "Hans J. Koch" <hjk@hansjkoch.de>
>> > Cc: Marc Hulsman <m.hulsman@tudelft.nl>
>> > Cc: Rudolf Marek <r.marek@assembler.cz>
>> > Signed-off-by: Axel Lin <axel.lin@gmail.com>
>>
>> Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>
>>
>> What is the plan for those patches ? Are they expected to all go through the same tree,
>> or through individual trees after the necessary defines are introduced into mainline ?
>>
> My question was answered in another thread related to the misc subsystem.
> The patch this one depends on will only be available in 3.3-rc1. It would have been
> nice to let us know ahead of time, because I _did_ find out the hard way.
>
> I would suggest to resubmit the i2c and spi patches against a working baseline
> once it is available, to make sure it does not miss some new drivers.
I'll resend the patches once module_i2c_driver and module_spi_driver is merged.
Pls ignore this patch now.
Thanks,
Axel
>
> On a side note, this patch does miss the drivers in hwmon/pmbus, but I can take care
> of those myself.
>
> Guenter
>
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use module_i2c_driver()
@ 2011-11-27 23:58 ` Axel Lin
0 siblings, 0 replies; 20+ messages in thread
From: Axel Lin @ 2011-11-27 23:58 UTC (permalink / raw)
To: Guenter Roeck
Cc: Dirk Eibach, David George, Guillaume Ligneul, Riku Voipio,
Hans J. Koch, linux-kernel@vger.kernel.org, Mark M. Hoffman,
Steve Glendinning, lm-sensors@lm-sensors.org
2011/11/28 Guenter Roeck <guenter.roeck@ericsson.com>:
> On Fri, Nov 25, 2011 at 11:57:08AM -0500, Guenter Roeck wrote:
>> On Fri, Nov 25, 2011 at 02:06:27AM -0500, Axel Lin wrote:
>> > This patch converts the drivers in drivers/hwmon/* to use the
>> > module_i2c_driver() macro which makes the code smaller and a bit
>> > simpler.
>> >
>> > Cc: Corentin Labbe <corentin.labbe@geomatys.fr>
>> > Cc: Dirk Eibach <eibach@gdsys.de>
>> > Cc: "Mark M. Hoffman" <mhoffman@lightlink.com>
>> > Cc: Steve Glendinning <steve.glendinning@smsc.com>
>> > Cc: Riku Voipio <riku.voipio@iki.fi>
>> > Cc: Guillaume Ligneul <guillaume.ligneul@gmail.com>
>> > Cc: David George <david.george@ska.ac.za>
>> > Cc: "Hans J. Koch" <hjk@hansjkoch.de>
>> > Cc: Marc Hulsman <m.hulsman@tudelft.nl>
>> > Cc: Rudolf Marek <r.marek@assembler.cz>
>> > Signed-off-by: Axel Lin <axel.lin@gmail.com>
>>
>> Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>
>>
>> What is the plan for those patches ? Are they expected to all go through the same tree,
>> or through individual trees after the necessary defines are introduced into mainline ?
>>
> My question was answered in another thread related to the misc subsystem.
> The patch this one depends on will only be available in 3.3-rc1. It would have been
> nice to let us know ahead of time, because I _did_ find out the hard way.
>
> I would suggest to resubmit the i2c and spi patches against a working baseline
> once it is available, to make sure it does not miss some new drivers.
I'll resend the patches once module_i2c_driver and module_spi_driver is merged.
Pls ignore this patch now.
Thanks,
Axel
>
> On a side note, this patch does miss the drivers in hwmon/pmbus, but I can take care
> of those myself.
>
> Guenter
>
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2011-11-27 23:59 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-25 7:06 [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use Axel Lin
2011-11-25 7:06 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_i2c_driver() Axel Lin
2011-11-25 7:12 ` [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use Axel Lin
2011-11-25 7:12 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_spi_driver() Axel Lin
2011-11-25 9:01 ` [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use Zhang, Sonic
2011-11-25 9:01 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_spi_driver() Zhang, Sonic
2011-11-27 17:48 ` [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use Guenter Roeck
2011-11-27 17:48 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_spi_driver() Guenter Roeck
2011-11-25 7:31 ` [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use Axel Lin
2011-11-25 7:31 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_platform_driver() Axel Lin
2011-11-25 11:03 ` [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use Mark Brown
2011-11-25 11:03 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_platform_driver() Mark Brown
2011-11-27 1:37 ` [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use Guenter Roeck
2011-11-27 1:37 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_platform_driver() Guenter Roeck
2011-11-25 16:57 ` [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use Guenter Roeck
2011-11-25 16:57 ` [PATCH] hwmon: convert drivers/hwmon/* to use module_i2c_driver() Guenter Roeck
2011-11-27 17:32 ` [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use Guenter Roeck
2011-11-27 17:32 ` [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use module_i2c_driver() Guenter Roeck
2011-11-27 23:58 ` [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use Axel Lin
2011-11-27 23:58 ` [lm-sensors] [PATCH] hwmon: convert drivers/hwmon/* to use module_i2c_driver() Axel Lin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.