All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <5516B953.2050203@roeck-us.net>

diff --git a/a/1.txt b/N1/1.txt
index 8a67b49..c7f2bb8 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,141 +1,237 @@
-T24gMDMvMjgvMjAxNSAwMzoyNCBBTSwgUGFsaSBSb2jDoXIgd3JvdGU6Cj4gVGhpcyBwYXRjaCBz
-cGxpdHMgQ09ORklHX0k4SyBjb21waWxlIG9wdGlvbiB0byBTRU5TT1JTX0RFTExfU01NIGFuZCBD
-T05GSUdfSThLLgo+IE9wdGlvbiBTRU5TT1JTX0RFTExfU01NIGlzIG5vdyB1c2VkIHRvIGVuYWJs
-ZSBjb21waWxhdGlvbiBvZiBkZWxsLXNtbS1od21vbgo+IGRyaXZlciBhbmQgb2xkIENPTkZJR19J
-OEsgb3B0aW9uIHRvIGVuYWJsZSAvcHJvYy9pOGsgaW50ZXJmYWNlIGluIGRyaXZlci4KPgo+IFNv
-IHRoaXMgY2hhbmdlIGFsbG93cyB0byBjb21waWxlIGRlbGwtc21tLWh3bW9uIGRyaXZlciB3aXRo
-b3V0IGxlZ2FjeSAvcHJvYy9pOGsKPiBpbnRlcmZhY2Ugd2hpY2ggaXMgbmVlZGVkIG9ubHkgZm9y
-IG9sZCBEZWxsIEluc3BpcmlvbiBtb2RlbHMgb3IgZm9yIHVzZXJzcGFjZQo+IGk4a3V0aWxzIHBh
-Y2thZ2UuCj4KPiBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aGVuIENPTkZJR19JOEsgaXMg
-ZW5hYmxlZCB0aGVuIGFsc28gU0VOU09SU19ERUxMX1NNTQo+IGlzIGVuYWJsZWQgYW5kIHNvIGRy
-aXZlciBkZWxsLXNtbS1od21vbiAod2l0aCAvcHJvYy9pOGspIGlzIGNvbXBpbGVkLgo+Cj4gU2ln
-bmVkLW9mZi1ieTogUGFsaSBSb2jDoXIgPHBhbGkucm9oYXJAZ21haWwuY29tPgo+IC0tLQo+ICAg
-YXJjaC94ODYvS2NvbmZpZyAgICAgICAgICAgICAgIHwgICAyNSArKysrKysrKystLS0tLS0tLS0t
-LS0tLS0tCj4gICBkcml2ZXJzL2h3bW9uL0tjb25maWcgICAgICAgICAgfCAgIDExICsrKysrKysr
-KysrCj4gICBkcml2ZXJzL2h3bW9uL01ha2VmaWxlICAgICAgICAgfCAgICAyICstCj4gICBkcml2
-ZXJzL2h3bW9uL2RlbGwtc21tLWh3bW9uLmMgfCAgIDIwICsrKysrKysrKysrKysrKystLS0tCj4g
-ICA0IGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQo+Cj4g
-ZGlmZiAtLWdpdCBhL2FyY2gveDg2L0tjb25maWcgYi9hcmNoL3g4Ni9LY29uZmlnCj4gaW5kZXgg
-YjdkMzFjYS4uOGQwMjY2YiAxMDA2NDQKPiAtLS0gYS9hcmNoL3g4Ni9LY29uZmlnCj4gKysrIGIv
-YXJjaC94ODYvS2NvbmZpZwo+IEBAIC0xMDYzLDI0ICsxMDYzLDE3IEBAIGNvbmZpZyBUT1NISUJB
-Cj4gICAJICBTYXkgTiBvdGhlcndpc2UuCj4KPiAgIGNvbmZpZyBJOEsKPiAtCXRyaXN0YXRlICJE
-ZWxsIGxhcHRvcCBzdXBwb3J0Igo+IC0Jc2VsZWN0IEhXTU9OCj4gKwlib29sICJEZWxsIGk4ayBs
-ZWdhY3kgbGFwdG9wIHN1cHBvcnQiCgp0cmlzdGF0ZSBhbmQgc3RpbGwgInNlbGVjdCBIV01PTiIu
-Cgo+ICsJc2VsZWN0IFNFTlNPUlNfREVMTF9TTU0KPiAgIAktLS1oZWxwLS0tCj4gLQkgIFRoaXMg
-YWRkcyBhIGRyaXZlciB0byBzYWZlbHkgYWNjZXNzIHRoZSBTeXN0ZW0gTWFuYWdlbWVudCBNb2Rl
-Cj4gLQkgIG9mIHRoZSBDUFUgb24gdGhlIERlbGwgSW5zcGlyb24gODAwMC4gVGhlIFN5c3RlbSBN
-YW5hZ2VtZW50IE1vZGUKPiAtCSAgaXMgdXNlZCB0byByZWFkIGNwdSB0ZW1wZXJhdHVyZSBhbmQg
-Y29vbGluZyBmYW4gc3RhdHVzIGFuZCB0bwo+IC0JICBjb250cm9sIHRoZSBmYW5zIG9uIHRoZSBJ
-OEsgcG9ydGFibGVzLgo+ICsJICBUaGlzIG9wdGlvbnMgZW5hYmxlcyBsZWdhY3kgL3Byb2MvaThr
-IHVzZXJzcGFjZSBpbnRlcmZhY2UgaW4KPiArCSAgZGVsbC1zbW0taHdtb24gZHJpdmVyLiBDaGFy
-YWN0ZXIgZmlsZSAvcHJvYy9pOGsgcmVwb3J0cyBwb3dlciBhbmQKPiArCSAgaG90a2V5IHN0YXR1
-cyBvbiBvbGQgRGVsbCBsYXB0b3BzIChsaWtlIERlbGwgSW5zcGlyb24gODAwMCkgdmlhCj4gKwkg
-IFN5c3RlbSBNYW5hZ2VtZW50IE1vZGUgcHJvdmlkZWQgYnkgRGVsbCBCSU9TLiBUaGlzIC9wcm9j
-L2k4ayBpbnRlcmZhY2UKPiArCSAgaXMgYWxzbyB1c2VkIGJ5IHVzZXJzcGFjZSBwYWNrYWdlIGk4
-a3V0aWxzIHRvIGNvbnRyb2wgbGFwdG9wIGZhbnMuCj4KPiAtCSAgVGhpcyBkcml2ZXIgaGFzIGJl
-ZW4gdGVzdGVkIG9ubHkgb24gdGhlIEluc3Bpcm9uIDgwMDAgYnV0IGl0IG1heQo+IC0JICBhbHNv
-IHdvcmsgd2l0aCBvdGhlciBEZWxsIGxhcHRvcHMuIFlvdSBjYW4gZm9yY2UgbG9hZGluZyBvbiBv
-dGhlcgo+IC0JICBtb2RlbHMgYnkgcGFzc2luZyB0aGUgcGFyYW1ldGVyIGBmb3JjZT0xJyB0byB0
-aGUgbW9kdWxlLiBVc2UgYXQKPiAtCSAgeW91ciBvd24gcmlzay4KPiAtCj4gLQkgIEZvciBpbmZv
-cm1hdGlvbiBvbiB1dGlsaXRpZXMgdG8gbWFrZSB1c2Ugb2YgdGhpcyBkcml2ZXIgc2VlIHRoZQo+
-IC0JICBJOEsgTGludXggdXRpbGl0aWVzIHdlYiBzaXRlIGF0Ogo+IC0JICA8aHR0cDovL3Blb3Bs
-ZS5kZWJpYW4ub3JnL35kei9pOGsvPgo+IC0KPiAtCSAgU2F5IFkgaWYgeW91IGludGVuZCB0byBy
-dW4gdGhpcyBrZXJuZWwgb24gYSBEZWxsIEluc3Bpcm9uIDgwMDAuCj4gKwkgIFNheSBZIGlmIHlv
-dSBpbnRlbmQgdG8gcnVuIHRoaXMga2VybmVsIG9uIG9sZCBEZWxsIGxhcHRvcHMgb3Igd2FudCB0
-bwo+ICsJICB1c2UgdXNlcnNwYWNlIHBhY2thZ2UgaThrdXRpbHMuCj4gICAJICBTYXkgTiBvdGhl
-cndpc2UuCj4KPiAgIGNvbmZpZyBYODZfUkVCT09URklYVVBTCj4gZGlmZiAtLWdpdCBhL2RyaXZl
-cnMvaHdtb24vS2NvbmZpZyBiL2RyaXZlcnMvaHdtb24vS2NvbmZpZwo+IGluZGV4IDExMGZhZGUu
-Ljg2ZWViN2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9od21vbi9LY29uZmlnCj4gKysrIGIvZHJp
-dmVycy9od21vbi9LY29uZmlnCj4gQEAgLTE3MDMsNiArMTcwMywxNyBAQCBjb25maWcgU0VOU09S
-U19VTFRSQTQ1Cj4gICAJICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgVWx0
-cmE0NSB3b3Jrc3RhdGlvbiBlbnZpcm9ubWVudGFsCj4gICAJICBzZW5zb3JzLgo+Cj4gK2NvbmZp
-ZyBTRU5TT1JTX0RFTExfU01NCj4gKwl0cmlzdGF0ZSAiRGVsbCBsYXB0b3AgU01NIEJJT1MgaHdt
-b24gZHJpdmVyIgo+ICsJZGVwZW5kcyBPTiBYODYKCldvbmRlcmluZyBhcyB3ZWxsIC4uIC5kaWQg
-eW91IHRlc3QgdGhpcyA/Cgo+ICsJLS0taGVscC0tLQo+ICsJICBUaGlzIGh3bW9uIGRyaXZlciBh
-ZGRzIHN1cHBvcnQgZm9yIHJlcG9ydGluZyB0ZW1wZXJhdHVyZSBvZiBkaWZmZXJlbnQKPiArCSAg
-c2Vuc29ycyBhbmQgY29udHJvbHMgdGhlIGZhbnMgb24gRGVsbCBsYXB0b3BzIHZpYSBTeXN0ZW0g
-TWFuYWdlbWVudAo+ICsJICBNb2RlIHByb3ZpZGVkIGJ5IERlbGwgQklPUy4KPiArCj4gKwkgIFdo
-ZW4gb3B0aW9uIEk4SyBpcyBhbHNvIGVuYWJsZWQgdGhpcyBkcml2ZXIgcHJvdmlkZXMgbGVnYWN5
-IC9wcm9jL2k4awo+ICsJICB1c2Vyc3BhY2UgaW50ZXJmYWNlIGZvciBpOGt1dGlscyBwYWNrYWdl
-Lgo+ICsKUGxlYXNlIGFkZCB0aGlzIGluIGFscGhhYmV0aWMgb3JkZXIuCgo+ICAgaWYgQUNQSQo+
-Cj4gICBjb21tZW50ICJBQ1BJIGRyaXZlcnMiCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24v
-TWFrZWZpbGUgYi9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCj4gaW5kZXggMWMzZTQ1OC4uOWVlYzYx
-NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9o
-d21vbi9NYWtlZmlsZQo+IEBAIC0xNTUsNyArMTU1LDcgQEAgb2JqLSQoQ09ORklHX1NFTlNPUlNf
-VzgzTDc4NVRTKQkrPSB3ODNsNzg1dHMubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfVzgzTDc4
-Nk5HKQkrPSB3ODNsNzg2bmcubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfV004MzFYKQkrPSB3
-bTgzMXgtaHdtb24ubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfV004MzUwKQkrPSB3bTgzNTAt
-aHdtb24ubwo+IC1vYmotJChDT05GSUdfSThLKQkJKz0gZGVsbC1zbW0taHdtb24ubwo+ICtvYmot
-JChDT05GSUdfU0VOU09SU19ERUxMX1NNTSkJKz0gZGVsbC1zbW0taHdtb24ubwoKU2FtZSBoZXJl
-LgoKPgo+ICAgb2JqLSQoQ09ORklHX1BNQlVTKQkJKz0gcG1idXMvCj4KPiBkaWZmIC0tZ2l0IGEv
-ZHJpdmVycy9od21vbi9kZWxsLXNtbS1od21vbi5jIGIvZHJpdmVycy9od21vbi9kZWxsLXNtbS1o
-d21vbi5jCj4gaW5kZXggMmIwNGU0Zi4uZTk2NjFkYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2h3
-bW9uL2RlbGwtc21tLWh3bW9uLmMKPiArKysgYi9kcml2ZXJzL2h3bW9uL2RlbGwtc21tLWh3bW9u
-LmMKPiBAQCAtODEsNyArODEsNyBAQCBzdGF0aWMgdWludCBpOGtfZmFuX21heCA9IEk4S19GQU5f
-SElHSDsKPgo+ICAgTU9EVUxFX0FVVEhPUigiTWFzc2ltbyBEYWwgWm90dG8gKGR6QGRlYmlhbi5v
-cmcpIik7Cj4gICBNT0RVTEVfQVVUSE9SKCJQYWxpIFJvaMOhciA8cGFsaS5yb2hhckBnbWFpbC5j
-b20+Iik7Cj4gLU1PRFVMRV9ERVNDUklQVElPTigiRHJpdmVyIGZvciBhY2Nlc3NpbmcgU01NIEJJ
-T1Mgb24gRGVsbCBsYXB0b3BzIik7Cj4gK01PRFVMRV9ERVNDUklQVElPTigiRGVsbCBsYXB0b3Ag
-U01NIEJJT1MgaHdtb24gZHJpdmVyIik7Cj4gICBNT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4gICBN
-T0RVTEVfQUxJQVMoImk4ayIpOwo+Cj4gQEAgLTkzLDYgKzkzLDcgQEAgc3RhdGljIGJvb2wgaWdu
-b3JlX2RtaTsKPiAgIG1vZHVsZV9wYXJhbShpZ25vcmVfZG1pLCBib29sLCAwKTsKPiAgIE1PRFVM
-RV9QQVJNX0RFU0MoaWdub3JlX2RtaSwgIkNvbnRpbnVlIHByb2JpbmcgaGFyZHdhcmUgZXZlbiBp
-ZiBETUkgZGF0YSBkb2VzIG5vdCBtYXRjaCIpOwo+Cj4gKyNpZmRlZiBDT05GSUdfSThLCj4gICBz
-dGF0aWMgYm9vbCByZXN0cmljdGVkOwo+ICAgbW9kdWxlX3BhcmFtKHJlc3RyaWN0ZWQsIGJvb2ws
-IDApOwo+ICAgTU9EVUxFX1BBUk1fREVTQyhyZXN0cmljdGVkLCAiQWxsb3cgZmFuIGNvbnRyb2wg
-aWYgU1lTX0FETUlOIGNhcGFiaWxpdHkgc2V0Iik7Cj4gQEAgLTEwMCw2ICsxMDEsNyBAQCBNT0RV
-TEVfUEFSTV9ERVNDKHJlc3RyaWN0ZWQsICJBbGxvdyBmYW4gY29udHJvbCBpZiBTWVNfQURNSU4g
-Y2FwYWJpbGl0eSBzZXQiKTsKPiAgIHN0YXRpYyBib29sIHBvd2VyX3N0YXR1czsKPiAgIG1vZHVs
-ZV9wYXJhbShwb3dlcl9zdGF0dXMsIGJvb2wsIDA2MDApOwo+ICAgTU9EVUxFX1BBUk1fREVTQyhw
-b3dlcl9zdGF0dXMsICJSZXBvcnQgcG93ZXIgc3RhdHVzIGluIC9wcm9jL2k4ayIpOwo+ICsjZW5k
-aWYKPgo+ICAgc3RhdGljIHVpbnQgZmFuX211bHQ7Cj4gICBtb2R1bGVfcGFyYW0oZmFuX211bHQs
-IHVpbnQsIDApOwo+IEBAIC0xMDksNiArMTExLDcgQEAgc3RhdGljIHVpbnQgZmFuX21heDsKPiAg
-IG1vZHVsZV9wYXJhbShmYW5fbWF4LCB1aW50LCAwKTsKPiAgIE1PRFVMRV9QQVJNX0RFU0MoZmFu
-X21heCwgIk1heGltdW0gY29uZmlndXJhYmxlIGZhbiBzcGVlZCAoZGVmYXVsdDogYXV0b2RldGVj
-dCkiKTsKPgo+ICsjaWZkZWYgQ09ORklHX0k4Swo+ICAgc3RhdGljIGludCBpOGtfb3Blbl9mcyhz
-dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSk7Cj4gICBzdGF0aWMgbG9uZyBp
-OGtfaW9jdGwoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBsb25nKTsKPgo+
-IEBAIC0xMjAsNiArMTIzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMg
-aThrX2ZvcHMgPSB7Cj4gICAJLnJlbGVhc2UJPSBzaW5nbGVfcmVsZWFzZSwKPiAgIAkudW5sb2Nr
-ZWRfaW9jdGwJPSBpOGtfaW9jdGwsCj4gICB9Owo+ICsjZW5kaWYKPgo+ICAgc3RydWN0IHNtbV9y
-ZWdzIHsKPiAgIAl1bnNpZ25lZCBpbnQgZWF4Owo+IEBAIC0yMjAsNiArMjI0LDcgQEAgb3V0Ogo+
-ICAgCXJldHVybiByYzsKPiAgIH0KPgo+ICsjaWZkZWYgQ09ORklHX0k4Swo+ICAgLyoKPiAgICAq
-IFJlYWQgdGhlIEZuIGtleSBzdGF0dXMuCj4gICAgKi8KPiBAQCAtMjU4LDYgKzI2Myw3IEBAIHN0
-YXRpYyBpbnQgaThrX2dldF9wb3dlcl9zdGF0dXModm9pZCkKPgo+ICAgCXJldHVybiAocmVncy5l
-YXggJiAweGZmKSA9PSBJOEtfUE9XRVJfQUMgPyBJOEtfQUMgOiBJOEtfQkFUVEVSWTsKPiAgIH0K
-PiArI2VuZGlmCj4KPiAgIC8qCj4gICAgKiBSZWFkIHRoZSBmYW4gc3RhdHVzLgo+IEBAIC0zNzgs
-NiArMzg0LDcgQEAgc3RhdGljIGludCBpOGtfZ2V0X2RlbGxfc2lnbmF0dXJlKGludCByZXFfZm4p
-Cj4gICAJcmV0dXJuIHJlZ3MuZWF4ID09IDExNDU2NTE1MjcgJiYgcmVncy5lZHggPT0gMTE0NTM5
-MjIwNCA/IDAgOiAtMTsKPiAgIH0KPgo+ICsjaWZkZWYgQ09ORklHX0k4Swo+ICAgc3RhdGljIGlu
-dAo+ICAgaThrX2lvY3RsX3VubG9ja2VkKHN0cnVjdCBmaWxlICpmcCwgdW5zaWduZWQgaW50IGNt
-ZCwgdW5zaWduZWQgbG9uZyBhcmcpCj4gICB7Cj4gQEAgLTUyNSw2ICs1MzIsNyBAQCBzdGF0aWMg
-aW50IGk4a19vcGVuX2ZzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQo+
-ICAgewo+ICAgCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBpOGtfcHJvY19zaG93LCBOVUxMKTsK
-PiAgIH0KPiArI2VuZGlmCj4KPgo+ICAgLyoKPiBAQCAtOTc0LDE3ICs5ODIsMTcgQEAgc3RhdGlj
-IGludCBfX2luaXQgaThrX3Byb2JlKHZvaWQpCj4KPiAgIHN0YXRpYyBpbnQgX19pbml0IGk4a19p
-bml0KHZvaWQpCj4gICB7Cj4gLQlzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnByb2NfaThrOwo+ICAg
-CWludCBlcnI7Cj4KPiAgIAkvKiBBcmUgd2UgcnVubmluZyBvbiBhbiBzdXBwb3J0ZWQgbGFwdG9w
-PyAqLwo+ICAgCWlmIChpOGtfcHJvYmUoKSkKPiAgIAkJcmV0dXJuIC1FTk9ERVY7Cj4KPiArI2lm
-ZGVmIENPTkZJR19JOEsKPiAgIAkvKiBSZWdpc3RlciB0aGUgcHJvYyBlbnRyeSAqLwo+IC0JcHJv
-Y19pOGsgPSBwcm9jX2NyZWF0ZSgiaThrIiwgMCwgTlVMTCwgJmk4a19mb3BzKTsKPiAtCWlmICgh
-cHJvY19pOGspCj4gKwlpZiAoIXByb2NfY3JlYXRlKCJpOGsiLCAwLCBOVUxMLCAmaThrX2ZvcHMp
-KQo+ICAgCQlyZXR1cm4gLUVOT0VOVDsKCkkgd291bGQgcHJlZmVyIG5vdCB0byBmYWlsIGhlcmUg
-YnV0IHJlcG9ydCBhIHdhcm5pbmcuClRoaXMgaXMgbm8gbG9uZ2VyIGEgZmF0YWwgY29uZGl0aW9u
-LgoKPiArI2VuZGlmCj4KPiAgIAllcnIgPSBpOGtfaW5pdF9od21vbigpOwo+ICAgCWlmIChlcnIp
-Cj4gQEAgLTk5MywxNCArMTAwMSwxOCBAQCBzdGF0aWMgaW50IF9faW5pdCBpOGtfaW5pdCh2b2lk
-KQo+ICAgCXJldHVybiAwOwo+Cj4gICAgZXhpdF9yZW1vdmVfcHJvYzoKPiArI2lmZGVmIENPTkZJ
-R19JOEsKPiAgIAlyZW1vdmVfcHJvY19lbnRyeSgiaThrIiwgTlVMTCk7Cj4gKyNlbmRpZgo+ICAg
-CXJldHVybiBlcnI7Cj4gICB9Cj4KPiAgIHN0YXRpYyB2b2lkIF9fZXhpdCBpOGtfZXhpdCh2b2lk
-KQo+ICAgewo+ICAgCWh3bW9uX2RldmljZV91bnJlZ2lzdGVyKGk4a19od21vbl9kZXYpOwo+ICsj
-aWZkZWYgQ09ORklHX0k4Swo+ICAgCXJlbW92ZV9wcm9jX2VudHJ5KCJpOGsiLCBOVUxMKTsKPiAr
-I2VuZGlmCj4gICB9Cj4KPiAgIG1vZHVsZV9pbml0KGk4a19pbml0KTsKPgoKQ2FuIHlvdSBtb3Zl
-IGFsbCB0aGUgY29uZGl0aW9uYWwgZnVuY3Rpb25zIGFuZCBnbG9iYWwgdmFyaWFibGVzIHRvZ2V0
-aGVyCnVuZGVyIGEgc2luZ2xlICNpZmRlZiA/IFRoYXQgc2hvdWxkIGluY2x1ZGUgZnVuY3Rpb25z
-IHRvIGNyZWF0ZSB0aGUgcHJvYwplbnRyaWVzLCBhbmQgc2hpbSBmdW5jdGlvbnMgZm9yIHRoZSBz
-YW1lIGlmIEk4SyBpcyBub3QgY29uZmlndXJlZC4KCkFsc28sIHRoZSAjaWZkZWYgd291bGQgbm90
-IGNvdmVyIHRoZSBjYXNlIHdoZXJlIEk4SyBpcyBjb25maWd1cmVkIGFzIG1vZHVsZQoodGhlcmUg
-aXMgbm8gcmVhc29uIHRvIGZvcmNlIGl0IHRvIGJvb2wpLiBZb3Ugc2hvdWxkIHVzZSAiI2lmIElT
-X0VOQUJMRUQoQ09ORklHX0k4SykiCmluc3RlYWQuCgpUaGFua3MsCkd1ZW50ZXIKCgpfX19fX19f
-X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1haWxp
-bmcgbGlzdApsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5zb3Jz
-Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xtLXNlbnNvcnM
+On 03/28/2015 03:24 AM, Pali Rohár wrote:
+> This patch splits CONFIG_I8K compile option to SENSORS_DELL_SMM and CONFIG_I8K.
+> Option SENSORS_DELL_SMM is now used to enable compilation of dell-smm-hwmon
+> driver and old CONFIG_I8K option to enable /proc/i8k interface in driver.
+>
+> So this change allows to compile dell-smm-hwmon driver without legacy /proc/i8k
+> interface which is needed only for old Dell Inspirion models or for userspace
+> i8kutils package.
+>
+> For backward compatibility when CONFIG_I8K is enabled then also SENSORS_DELL_SMM
+> is enabled and so driver dell-smm-hwmon (with /proc/i8k) is compiled.
+>
+> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
+> ---
+>   arch/x86/Kconfig               |   25 +++++++++----------------
+>   drivers/hwmon/Kconfig          |   11 +++++++++++
+>   drivers/hwmon/Makefile         |    2 +-
+>   drivers/hwmon/dell-smm-hwmon.c |   20 ++++++++++++++++----
+>   4 files changed, 37 insertions(+), 21 deletions(-)
+>
+> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
+> index b7d31ca..8d0266b 100644
+> --- a/arch/x86/Kconfig
+> +++ b/arch/x86/Kconfig
+> @@ -1063,24 +1063,17 @@ config TOSHIBA
+>   	  Say N otherwise.
+>
+>   config I8K
+> -	tristate "Dell laptop support"
+> -	select HWMON
+> +	bool "Dell i8k legacy laptop support"
+
+tristate and still "select HWMON".
+
+> +	select SENSORS_DELL_SMM
+>   	---help---
+> -	  This adds a driver to safely access the System Management Mode
+> -	  of the CPU on the Dell Inspiron 8000. The System Management Mode
+> -	  is used to read cpu temperature and cooling fan status and to
+> -	  control the fans on the I8K portables.
+> +	  This options enables legacy /proc/i8k userspace interface in
+> +	  dell-smm-hwmon driver. Character file /proc/i8k reports power and
+> +	  hotkey status on old Dell laptops (like Dell Inspiron 8000) via
+> +	  System Management Mode provided by Dell BIOS. This /proc/i8k interface
+> +	  is also used by userspace package i8kutils to control laptop fans.
+>
+> -	  This driver has been tested only on the Inspiron 8000 but it may
+> -	  also work with other Dell laptops. You can force loading on other
+> -	  models by passing the parameter `force=1' to the module. Use at
+> -	  your own risk.
+> -
+> -	  For information on utilities to make use of this driver see the
+> -	  I8K Linux utilities web site at:
+> -	  <http://people.debian.org/~dz/i8k/>
+> -
+> -	  Say Y if you intend to run this kernel on a Dell Inspiron 8000.
+> +	  Say Y if you intend to run this kernel on old Dell laptops or want to
+> +	  use userspace package i8kutils.
+>   	  Say N otherwise.
+>
+>   config X86_REBOOTFIXUPS
+> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
+> index 110fade..86eeb7d 100644
+> --- a/drivers/hwmon/Kconfig
+> +++ b/drivers/hwmon/Kconfig
+> @@ -1703,6 +1703,17 @@ config SENSORS_ULTRA45
+>   	  This driver provides support for the Ultra45 workstation environmental
+>   	  sensors.
+>
+> +config SENSORS_DELL_SMM
+> +	tristate "Dell laptop SMM BIOS hwmon driver"
+> +	depends ON X86
+
+Wondering as well .. .did you test this ?
+
+> +	---help---
+> +	  This hwmon driver adds support for reporting temperature of different
+> +	  sensors and controls the fans on Dell laptops via System Management
+> +	  Mode provided by Dell BIOS.
+> +
+> +	  When option I8K is also enabled this driver provides legacy /proc/i8k
+> +	  userspace interface for i8kutils package.
+> +
+Please add this in alphabetic order.
+
+>   if ACPI
+>
+>   comment "ACPI drivers"
+> diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
+> index 1c3e458..9eec614 100644
+> --- a/drivers/hwmon/Makefile
+> +++ b/drivers/hwmon/Makefile
+> @@ -155,7 +155,7 @@ obj-$(CONFIG_SENSORS_W83L785TS)	+= w83l785ts.o
+>   obj-$(CONFIG_SENSORS_W83L786NG)	+= w83l786ng.o
+>   obj-$(CONFIG_SENSORS_WM831X)	+= wm831x-hwmon.o
+>   obj-$(CONFIG_SENSORS_WM8350)	+= wm8350-hwmon.o
+> -obj-$(CONFIG_I8K)		+= dell-smm-hwmon.o
+> +obj-$(CONFIG_SENSORS_DELL_SMM)	+= dell-smm-hwmon.o
+
+Same here.
+
+>
+>   obj-$(CONFIG_PMBUS)		+= pmbus/
+>
+> diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c
+> index 2b04e4f..e9661dc 100644
+> --- a/drivers/hwmon/dell-smm-hwmon.c
+> +++ b/drivers/hwmon/dell-smm-hwmon.c
+> @@ -81,7 +81,7 @@ static uint i8k_fan_max = I8K_FAN_HIGH;
+>
+>   MODULE_AUTHOR("Massimo Dal Zotto (dz@debian.org)");
+>   MODULE_AUTHOR("Pali Rohár <pali.rohar@gmail.com>");
+> -MODULE_DESCRIPTION("Driver for accessing SMM BIOS on Dell laptops");
+> +MODULE_DESCRIPTION("Dell laptop SMM BIOS hwmon driver");
+>   MODULE_LICENSE("GPL");
+>   MODULE_ALIAS("i8k");
+>
+> @@ -93,6 +93,7 @@ static bool ignore_dmi;
+>   module_param(ignore_dmi, bool, 0);
+>   MODULE_PARM_DESC(ignore_dmi, "Continue probing hardware even if DMI data does not match");
+>
+> +#ifdef CONFIG_I8K
+>   static bool restricted;
+>   module_param(restricted, bool, 0);
+>   MODULE_PARM_DESC(restricted, "Allow fan control if SYS_ADMIN capability set");
+> @@ -100,6 +101,7 @@ MODULE_PARM_DESC(restricted, "Allow fan control if SYS_ADMIN capability set");
+>   static bool power_status;
+>   module_param(power_status, bool, 0600);
+>   MODULE_PARM_DESC(power_status, "Report power status in /proc/i8k");
+> +#endif
+>
+>   static uint fan_mult;
+>   module_param(fan_mult, uint, 0);
+> @@ -109,6 +111,7 @@ static uint fan_max;
+>   module_param(fan_max, uint, 0);
+>   MODULE_PARM_DESC(fan_max, "Maximum configurable fan speed (default: autodetect)");
+>
+> +#ifdef CONFIG_I8K
+>   static int i8k_open_fs(struct inode *inode, struct file *file);
+>   static long i8k_ioctl(struct file *, unsigned int, unsigned long);
+>
+> @@ -120,6 +123,7 @@ static const struct file_operations i8k_fops = {
+>   	.release	= single_release,
+>   	.unlocked_ioctl	= i8k_ioctl,
+>   };
+> +#endif
+>
+>   struct smm_regs {
+>   	unsigned int eax;
+> @@ -220,6 +224,7 @@ out:
+>   	return rc;
+>   }
+>
+> +#ifdef CONFIG_I8K
+>   /*
+>    * Read the Fn key status.
+>    */
+> @@ -258,6 +263,7 @@ static int i8k_get_power_status(void)
+>
+>   	return (regs.eax & 0xff) == I8K_POWER_AC ? I8K_AC : I8K_BATTERY;
+>   }
+> +#endif
+>
+>   /*
+>    * Read the fan status.
+> @@ -378,6 +384,7 @@ static int i8k_get_dell_signature(int req_fn)
+>   	return regs.eax == 1145651527 && regs.edx == 1145392204 ? 0 : -1;
+>   }
+>
+> +#ifdef CONFIG_I8K
+>   static int
+>   i8k_ioctl_unlocked(struct file *fp, unsigned int cmd, unsigned long arg)
+>   {
+> @@ -525,6 +532,7 @@ static int i8k_open_fs(struct inode *inode, struct file *file)
+>   {
+>   	return single_open(file, i8k_proc_show, NULL);
+>   }
+> +#endif
+>
+>
+>   /*
+> @@ -974,17 +982,17 @@ static int __init i8k_probe(void)
+>
+>   static int __init i8k_init(void)
+>   {
+> -	struct proc_dir_entry *proc_i8k;
+>   	int err;
+>
+>   	/* Are we running on an supported laptop? */
+>   	if (i8k_probe())
+>   		return -ENODEV;
+>
+> +#ifdef CONFIG_I8K
+>   	/* Register the proc entry */
+> -	proc_i8k = proc_create("i8k", 0, NULL, &i8k_fops);
+> -	if (!proc_i8k)
+> +	if (!proc_create("i8k", 0, NULL, &i8k_fops))
+>   		return -ENOENT;
+
+I would prefer not to fail here but report a warning.
+This is no longer a fatal condition.
+
+> +#endif
+>
+>   	err = i8k_init_hwmon();
+>   	if (err)
+> @@ -993,14 +1001,18 @@ static int __init i8k_init(void)
+>   	return 0;
+>
+>    exit_remove_proc:
+> +#ifdef CONFIG_I8K
+>   	remove_proc_entry("i8k", NULL);
+> +#endif
+>   	return err;
+>   }
+>
+>   static void __exit i8k_exit(void)
+>   {
+>   	hwmon_device_unregister(i8k_hwmon_dev);
+> +#ifdef CONFIG_I8K
+>   	remove_proc_entry("i8k", NULL);
+> +#endif
+>   }
+>
+>   module_init(i8k_init);
+>
+
+Can you move all the conditional functions and global variables together
+under a single #ifdef ? That should include functions to create the proc
+entries, and shim functions for the same if I8K is not configured.
+
+Also, the #ifdef would not cover the case where I8K is configured as module
+(there is no reason to force it to bool). You should use "#if IS_ENABLED(CONFIG_I8K)"
+instead.
+
+Thanks,
+Guenter
diff --git a/a/content_digest b/N1/content_digest
index 6c01f2d..729c612 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,8 +1,8 @@
  "ref\01427538255-10860-1-git-send-email-pali.rohar@gmail.com\0"
  "ref\01427538255-10860-3-git-send-email-pali.rohar@gmail.com\0"
  "From\0Guenter Roeck <linux@roeck-us.net>\0"
- "Subject\0Re: [lm-sensors] [PATCH 2/2] hwmon: Allow to compile dell-smm-hwmon driver without /proc/i8k\0"
- "Date\0Sat, 28 Mar 2015 14:23:15 +0000\0"
+ "Subject\0Re: [PATCH 2/2] hwmon: Allow to compile dell-smm-hwmon driver without /proc/i8k\0"
+ "Date\0Sat, 28 Mar 2015 07:23:15 -0700\0"
  "To\0Pali Roh\303\241r <pali.rohar@gmail.com>"
   Arnd Bergmann <arnd@arndb.de>
   Greg Kroah-Hartman <gregkh@linuxfoundation.org>
@@ -15,146 +15,242 @@
  " lm-sensors@lm-sensors.org\0"
  "\00:1\0"
  "b\0"
- "T24gMDMvMjgvMjAxNSAwMzoyNCBBTSwgUGFsaSBSb2jDoXIgd3JvdGU6Cj4gVGhpcyBwYXRjaCBz\n"
- "cGxpdHMgQ09ORklHX0k4SyBjb21waWxlIG9wdGlvbiB0byBTRU5TT1JTX0RFTExfU01NIGFuZCBD\n"
- "T05GSUdfSThLLgo+IE9wdGlvbiBTRU5TT1JTX0RFTExfU01NIGlzIG5vdyB1c2VkIHRvIGVuYWJs\n"
- "ZSBjb21waWxhdGlvbiBvZiBkZWxsLXNtbS1od21vbgo+IGRyaXZlciBhbmQgb2xkIENPTkZJR19J\n"
- "OEsgb3B0aW9uIHRvIGVuYWJsZSAvcHJvYy9pOGsgaW50ZXJmYWNlIGluIGRyaXZlci4KPgo+IFNv\n"
- "IHRoaXMgY2hhbmdlIGFsbG93cyB0byBjb21waWxlIGRlbGwtc21tLWh3bW9uIGRyaXZlciB3aXRo\n"
- "b3V0IGxlZ2FjeSAvcHJvYy9pOGsKPiBpbnRlcmZhY2Ugd2hpY2ggaXMgbmVlZGVkIG9ubHkgZm9y\n"
- "IG9sZCBEZWxsIEluc3BpcmlvbiBtb2RlbHMgb3IgZm9yIHVzZXJzcGFjZQo+IGk4a3V0aWxzIHBh\n"
- "Y2thZ2UuCj4KPiBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aGVuIENPTkZJR19JOEsgaXMg\n"
- "ZW5hYmxlZCB0aGVuIGFsc28gU0VOU09SU19ERUxMX1NNTQo+IGlzIGVuYWJsZWQgYW5kIHNvIGRy\n"
- "aXZlciBkZWxsLXNtbS1od21vbiAod2l0aCAvcHJvYy9pOGspIGlzIGNvbXBpbGVkLgo+Cj4gU2ln\n"
- "bmVkLW9mZi1ieTogUGFsaSBSb2jDoXIgPHBhbGkucm9oYXJAZ21haWwuY29tPgo+IC0tLQo+ICAg\n"
- "YXJjaC94ODYvS2NvbmZpZyAgICAgICAgICAgICAgIHwgICAyNSArKysrKysrKystLS0tLS0tLS0t\n"
- "LS0tLS0tCj4gICBkcml2ZXJzL2h3bW9uL0tjb25maWcgICAgICAgICAgfCAgIDExICsrKysrKysr\n"
- "KysrCj4gICBkcml2ZXJzL2h3bW9uL01ha2VmaWxlICAgICAgICAgfCAgICAyICstCj4gICBkcml2\n"
- "ZXJzL2h3bW9uL2RlbGwtc21tLWh3bW9uLmMgfCAgIDIwICsrKysrKysrKysrKysrKystLS0tCj4g\n"
- "ICA0IGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQo+Cj4g\n"
- "ZGlmZiAtLWdpdCBhL2FyY2gveDg2L0tjb25maWcgYi9hcmNoL3g4Ni9LY29uZmlnCj4gaW5kZXgg\n"
- "YjdkMzFjYS4uOGQwMjY2YiAxMDA2NDQKPiAtLS0gYS9hcmNoL3g4Ni9LY29uZmlnCj4gKysrIGIv\n"
- "YXJjaC94ODYvS2NvbmZpZwo+IEBAIC0xMDYzLDI0ICsxMDYzLDE3IEBAIGNvbmZpZyBUT1NISUJB\n"
- "Cj4gICAJICBTYXkgTiBvdGhlcndpc2UuCj4KPiAgIGNvbmZpZyBJOEsKPiAtCXRyaXN0YXRlICJE\n"
- "ZWxsIGxhcHRvcCBzdXBwb3J0Igo+IC0Jc2VsZWN0IEhXTU9OCj4gKwlib29sICJEZWxsIGk4ayBs\n"
- "ZWdhY3kgbGFwdG9wIHN1cHBvcnQiCgp0cmlzdGF0ZSBhbmQgc3RpbGwgInNlbGVjdCBIV01PTiIu\n"
- "Cgo+ICsJc2VsZWN0IFNFTlNPUlNfREVMTF9TTU0KPiAgIAktLS1oZWxwLS0tCj4gLQkgIFRoaXMg\n"
- "YWRkcyBhIGRyaXZlciB0byBzYWZlbHkgYWNjZXNzIHRoZSBTeXN0ZW0gTWFuYWdlbWVudCBNb2Rl\n"
- "Cj4gLQkgIG9mIHRoZSBDUFUgb24gdGhlIERlbGwgSW5zcGlyb24gODAwMC4gVGhlIFN5c3RlbSBN\n"
- "YW5hZ2VtZW50IE1vZGUKPiAtCSAgaXMgdXNlZCB0byByZWFkIGNwdSB0ZW1wZXJhdHVyZSBhbmQg\n"
- "Y29vbGluZyBmYW4gc3RhdHVzIGFuZCB0bwo+IC0JICBjb250cm9sIHRoZSBmYW5zIG9uIHRoZSBJ\n"
- "OEsgcG9ydGFibGVzLgo+ICsJICBUaGlzIG9wdGlvbnMgZW5hYmxlcyBsZWdhY3kgL3Byb2MvaThr\n"
- "IHVzZXJzcGFjZSBpbnRlcmZhY2UgaW4KPiArCSAgZGVsbC1zbW0taHdtb24gZHJpdmVyLiBDaGFy\n"
- "YWN0ZXIgZmlsZSAvcHJvYy9pOGsgcmVwb3J0cyBwb3dlciBhbmQKPiArCSAgaG90a2V5IHN0YXR1\n"
- "cyBvbiBvbGQgRGVsbCBsYXB0b3BzIChsaWtlIERlbGwgSW5zcGlyb24gODAwMCkgdmlhCj4gKwkg\n"
- "IFN5c3RlbSBNYW5hZ2VtZW50IE1vZGUgcHJvdmlkZWQgYnkgRGVsbCBCSU9TLiBUaGlzIC9wcm9j\n"
- "L2k4ayBpbnRlcmZhY2UKPiArCSAgaXMgYWxzbyB1c2VkIGJ5IHVzZXJzcGFjZSBwYWNrYWdlIGk4\n"
- "a3V0aWxzIHRvIGNvbnRyb2wgbGFwdG9wIGZhbnMuCj4KPiAtCSAgVGhpcyBkcml2ZXIgaGFzIGJl\n"
- "ZW4gdGVzdGVkIG9ubHkgb24gdGhlIEluc3Bpcm9uIDgwMDAgYnV0IGl0IG1heQo+IC0JICBhbHNv\n"
- "IHdvcmsgd2l0aCBvdGhlciBEZWxsIGxhcHRvcHMuIFlvdSBjYW4gZm9yY2UgbG9hZGluZyBvbiBv\n"
- "dGhlcgo+IC0JICBtb2RlbHMgYnkgcGFzc2luZyB0aGUgcGFyYW1ldGVyIGBmb3JjZT0xJyB0byB0\n"
- "aGUgbW9kdWxlLiBVc2UgYXQKPiAtCSAgeW91ciBvd24gcmlzay4KPiAtCj4gLQkgIEZvciBpbmZv\n"
- "cm1hdGlvbiBvbiB1dGlsaXRpZXMgdG8gbWFrZSB1c2Ugb2YgdGhpcyBkcml2ZXIgc2VlIHRoZQo+\n"
- "IC0JICBJOEsgTGludXggdXRpbGl0aWVzIHdlYiBzaXRlIGF0Ogo+IC0JICA8aHR0cDovL3Blb3Bs\n"
- "ZS5kZWJpYW4ub3JnL35kei9pOGsvPgo+IC0KPiAtCSAgU2F5IFkgaWYgeW91IGludGVuZCB0byBy\n"
- "dW4gdGhpcyBrZXJuZWwgb24gYSBEZWxsIEluc3Bpcm9uIDgwMDAuCj4gKwkgIFNheSBZIGlmIHlv\n"
- "dSBpbnRlbmQgdG8gcnVuIHRoaXMga2VybmVsIG9uIG9sZCBEZWxsIGxhcHRvcHMgb3Igd2FudCB0\n"
- "bwo+ICsJICB1c2UgdXNlcnNwYWNlIHBhY2thZ2UgaThrdXRpbHMuCj4gICAJICBTYXkgTiBvdGhl\n"
- "cndpc2UuCj4KPiAgIGNvbmZpZyBYODZfUkVCT09URklYVVBTCj4gZGlmZiAtLWdpdCBhL2RyaXZl\n"
- "cnMvaHdtb24vS2NvbmZpZyBiL2RyaXZlcnMvaHdtb24vS2NvbmZpZwo+IGluZGV4IDExMGZhZGUu\n"
- "Ljg2ZWViN2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9od21vbi9LY29uZmlnCj4gKysrIGIvZHJp\n"
- "dmVycy9od21vbi9LY29uZmlnCj4gQEAgLTE3MDMsNiArMTcwMywxNyBAQCBjb25maWcgU0VOU09S\n"
- "U19VTFRSQTQ1Cj4gICAJICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgVWx0\n"
- "cmE0NSB3b3Jrc3RhdGlvbiBlbnZpcm9ubWVudGFsCj4gICAJICBzZW5zb3JzLgo+Cj4gK2NvbmZp\n"
- "ZyBTRU5TT1JTX0RFTExfU01NCj4gKwl0cmlzdGF0ZSAiRGVsbCBsYXB0b3AgU01NIEJJT1MgaHdt\n"
- "b24gZHJpdmVyIgo+ICsJZGVwZW5kcyBPTiBYODYKCldvbmRlcmluZyBhcyB3ZWxsIC4uIC5kaWQg\n"
- "eW91IHRlc3QgdGhpcyA/Cgo+ICsJLS0taGVscC0tLQo+ICsJICBUaGlzIGh3bW9uIGRyaXZlciBh\n"
- "ZGRzIHN1cHBvcnQgZm9yIHJlcG9ydGluZyB0ZW1wZXJhdHVyZSBvZiBkaWZmZXJlbnQKPiArCSAg\n"
- "c2Vuc29ycyBhbmQgY29udHJvbHMgdGhlIGZhbnMgb24gRGVsbCBsYXB0b3BzIHZpYSBTeXN0ZW0g\n"
- "TWFuYWdlbWVudAo+ICsJICBNb2RlIHByb3ZpZGVkIGJ5IERlbGwgQklPUy4KPiArCj4gKwkgIFdo\n"
- "ZW4gb3B0aW9uIEk4SyBpcyBhbHNvIGVuYWJsZWQgdGhpcyBkcml2ZXIgcHJvdmlkZXMgbGVnYWN5\n"
- "IC9wcm9jL2k4awo+ICsJICB1c2Vyc3BhY2UgaW50ZXJmYWNlIGZvciBpOGt1dGlscyBwYWNrYWdl\n"
- "Lgo+ICsKUGxlYXNlIGFkZCB0aGlzIGluIGFscGhhYmV0aWMgb3JkZXIuCgo+ICAgaWYgQUNQSQo+\n"
- "Cj4gICBjb21tZW50ICJBQ1BJIGRyaXZlcnMiCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24v\n"
- "TWFrZWZpbGUgYi9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCj4gaW5kZXggMWMzZTQ1OC4uOWVlYzYx\n"
- "NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9o\n"
- "d21vbi9NYWtlZmlsZQo+IEBAIC0xNTUsNyArMTU1LDcgQEAgb2JqLSQoQ09ORklHX1NFTlNPUlNf\n"
- "VzgzTDc4NVRTKQkrPSB3ODNsNzg1dHMubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfVzgzTDc4\n"
- "Nk5HKQkrPSB3ODNsNzg2bmcubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfV004MzFYKQkrPSB3\n"
- "bTgzMXgtaHdtb24ubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfV004MzUwKQkrPSB3bTgzNTAt\n"
- "aHdtb24ubwo+IC1vYmotJChDT05GSUdfSThLKQkJKz0gZGVsbC1zbW0taHdtb24ubwo+ICtvYmot\n"
- "JChDT05GSUdfU0VOU09SU19ERUxMX1NNTSkJKz0gZGVsbC1zbW0taHdtb24ubwoKU2FtZSBoZXJl\n"
- "LgoKPgo+ICAgb2JqLSQoQ09ORklHX1BNQlVTKQkJKz0gcG1idXMvCj4KPiBkaWZmIC0tZ2l0IGEv\n"
- "ZHJpdmVycy9od21vbi9kZWxsLXNtbS1od21vbi5jIGIvZHJpdmVycy9od21vbi9kZWxsLXNtbS1o\n"
- "d21vbi5jCj4gaW5kZXggMmIwNGU0Zi4uZTk2NjFkYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2h3\n"
- "bW9uL2RlbGwtc21tLWh3bW9uLmMKPiArKysgYi9kcml2ZXJzL2h3bW9uL2RlbGwtc21tLWh3bW9u\n"
- "LmMKPiBAQCAtODEsNyArODEsNyBAQCBzdGF0aWMgdWludCBpOGtfZmFuX21heCA9IEk4S19GQU5f\n"
- "SElHSDsKPgo+ICAgTU9EVUxFX0FVVEhPUigiTWFzc2ltbyBEYWwgWm90dG8gKGR6QGRlYmlhbi5v\n"
- "cmcpIik7Cj4gICBNT0RVTEVfQVVUSE9SKCJQYWxpIFJvaMOhciA8cGFsaS5yb2hhckBnbWFpbC5j\n"
- "b20+Iik7Cj4gLU1PRFVMRV9ERVNDUklQVElPTigiRHJpdmVyIGZvciBhY2Nlc3NpbmcgU01NIEJJ\n"
- "T1Mgb24gRGVsbCBsYXB0b3BzIik7Cj4gK01PRFVMRV9ERVNDUklQVElPTigiRGVsbCBsYXB0b3Ag\n"
- "U01NIEJJT1MgaHdtb24gZHJpdmVyIik7Cj4gICBNT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4gICBN\n"
- "T0RVTEVfQUxJQVMoImk4ayIpOwo+Cj4gQEAgLTkzLDYgKzkzLDcgQEAgc3RhdGljIGJvb2wgaWdu\n"
- "b3JlX2RtaTsKPiAgIG1vZHVsZV9wYXJhbShpZ25vcmVfZG1pLCBib29sLCAwKTsKPiAgIE1PRFVM\n"
- "RV9QQVJNX0RFU0MoaWdub3JlX2RtaSwgIkNvbnRpbnVlIHByb2JpbmcgaGFyZHdhcmUgZXZlbiBp\n"
- "ZiBETUkgZGF0YSBkb2VzIG5vdCBtYXRjaCIpOwo+Cj4gKyNpZmRlZiBDT05GSUdfSThLCj4gICBz\n"
- "dGF0aWMgYm9vbCByZXN0cmljdGVkOwo+ICAgbW9kdWxlX3BhcmFtKHJlc3RyaWN0ZWQsIGJvb2ws\n"
- "IDApOwo+ICAgTU9EVUxFX1BBUk1fREVTQyhyZXN0cmljdGVkLCAiQWxsb3cgZmFuIGNvbnRyb2wg\n"
- "aWYgU1lTX0FETUlOIGNhcGFiaWxpdHkgc2V0Iik7Cj4gQEAgLTEwMCw2ICsxMDEsNyBAQCBNT0RV\n"
- "TEVfUEFSTV9ERVNDKHJlc3RyaWN0ZWQsICJBbGxvdyBmYW4gY29udHJvbCBpZiBTWVNfQURNSU4g\n"
- "Y2FwYWJpbGl0eSBzZXQiKTsKPiAgIHN0YXRpYyBib29sIHBvd2VyX3N0YXR1czsKPiAgIG1vZHVs\n"
- "ZV9wYXJhbShwb3dlcl9zdGF0dXMsIGJvb2wsIDA2MDApOwo+ICAgTU9EVUxFX1BBUk1fREVTQyhw\n"
- "b3dlcl9zdGF0dXMsICJSZXBvcnQgcG93ZXIgc3RhdHVzIGluIC9wcm9jL2k4ayIpOwo+ICsjZW5k\n"
- "aWYKPgo+ICAgc3RhdGljIHVpbnQgZmFuX211bHQ7Cj4gICBtb2R1bGVfcGFyYW0oZmFuX211bHQs\n"
- "IHVpbnQsIDApOwo+IEBAIC0xMDksNiArMTExLDcgQEAgc3RhdGljIHVpbnQgZmFuX21heDsKPiAg\n"
- "IG1vZHVsZV9wYXJhbShmYW5fbWF4LCB1aW50LCAwKTsKPiAgIE1PRFVMRV9QQVJNX0RFU0MoZmFu\n"
- "X21heCwgIk1heGltdW0gY29uZmlndXJhYmxlIGZhbiBzcGVlZCAoZGVmYXVsdDogYXV0b2RldGVj\n"
- "dCkiKTsKPgo+ICsjaWZkZWYgQ09ORklHX0k4Swo+ICAgc3RhdGljIGludCBpOGtfb3Blbl9mcyhz\n"
- "dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSk7Cj4gICBzdGF0aWMgbG9uZyBp\n"
- "OGtfaW9jdGwoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBsb25nKTsKPgo+\n"
- "IEBAIC0xMjAsNiArMTIzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMg\n"
- "aThrX2ZvcHMgPSB7Cj4gICAJLnJlbGVhc2UJPSBzaW5nbGVfcmVsZWFzZSwKPiAgIAkudW5sb2Nr\n"
- "ZWRfaW9jdGwJPSBpOGtfaW9jdGwsCj4gICB9Owo+ICsjZW5kaWYKPgo+ICAgc3RydWN0IHNtbV9y\n"
- "ZWdzIHsKPiAgIAl1bnNpZ25lZCBpbnQgZWF4Owo+IEBAIC0yMjAsNiArMjI0LDcgQEAgb3V0Ogo+\n"
- "ICAgCXJldHVybiByYzsKPiAgIH0KPgo+ICsjaWZkZWYgQ09ORklHX0k4Swo+ICAgLyoKPiAgICAq\n"
- "IFJlYWQgdGhlIEZuIGtleSBzdGF0dXMuCj4gICAgKi8KPiBAQCAtMjU4LDYgKzI2Myw3IEBAIHN0\n"
- "YXRpYyBpbnQgaThrX2dldF9wb3dlcl9zdGF0dXModm9pZCkKPgo+ICAgCXJldHVybiAocmVncy5l\n"
- "YXggJiAweGZmKSA9PSBJOEtfUE9XRVJfQUMgPyBJOEtfQUMgOiBJOEtfQkFUVEVSWTsKPiAgIH0K\n"
- "PiArI2VuZGlmCj4KPiAgIC8qCj4gICAgKiBSZWFkIHRoZSBmYW4gc3RhdHVzLgo+IEBAIC0zNzgs\n"
- "NiArMzg0LDcgQEAgc3RhdGljIGludCBpOGtfZ2V0X2RlbGxfc2lnbmF0dXJlKGludCByZXFfZm4p\n"
- "Cj4gICAJcmV0dXJuIHJlZ3MuZWF4ID09IDExNDU2NTE1MjcgJiYgcmVncy5lZHggPT0gMTE0NTM5\n"
- "MjIwNCA/IDAgOiAtMTsKPiAgIH0KPgo+ICsjaWZkZWYgQ09ORklHX0k4Swo+ICAgc3RhdGljIGlu\n"
- "dAo+ICAgaThrX2lvY3RsX3VubG9ja2VkKHN0cnVjdCBmaWxlICpmcCwgdW5zaWduZWQgaW50IGNt\n"
- "ZCwgdW5zaWduZWQgbG9uZyBhcmcpCj4gICB7Cj4gQEAgLTUyNSw2ICs1MzIsNyBAQCBzdGF0aWMg\n"
- "aW50IGk4a19vcGVuX2ZzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQo+\n"
- "ICAgewo+ICAgCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBpOGtfcHJvY19zaG93LCBOVUxMKTsK\n"
- "PiAgIH0KPiArI2VuZGlmCj4KPgo+ICAgLyoKPiBAQCAtOTc0LDE3ICs5ODIsMTcgQEAgc3RhdGlj\n"
- "IGludCBfX2luaXQgaThrX3Byb2JlKHZvaWQpCj4KPiAgIHN0YXRpYyBpbnQgX19pbml0IGk4a19p\n"
- "bml0KHZvaWQpCj4gICB7Cj4gLQlzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnByb2NfaThrOwo+ICAg\n"
- "CWludCBlcnI7Cj4KPiAgIAkvKiBBcmUgd2UgcnVubmluZyBvbiBhbiBzdXBwb3J0ZWQgbGFwdG9w\n"
- "PyAqLwo+ICAgCWlmIChpOGtfcHJvYmUoKSkKPiAgIAkJcmV0dXJuIC1FTk9ERVY7Cj4KPiArI2lm\n"
- "ZGVmIENPTkZJR19JOEsKPiAgIAkvKiBSZWdpc3RlciB0aGUgcHJvYyBlbnRyeSAqLwo+IC0JcHJv\n"
- "Y19pOGsgPSBwcm9jX2NyZWF0ZSgiaThrIiwgMCwgTlVMTCwgJmk4a19mb3BzKTsKPiAtCWlmICgh\n"
- "cHJvY19pOGspCj4gKwlpZiAoIXByb2NfY3JlYXRlKCJpOGsiLCAwLCBOVUxMLCAmaThrX2ZvcHMp\n"
- "KQo+ICAgCQlyZXR1cm4gLUVOT0VOVDsKCkkgd291bGQgcHJlZmVyIG5vdCB0byBmYWlsIGhlcmUg\n"
- "YnV0IHJlcG9ydCBhIHdhcm5pbmcuClRoaXMgaXMgbm8gbG9uZ2VyIGEgZmF0YWwgY29uZGl0aW9u\n"
- "LgoKPiArI2VuZGlmCj4KPiAgIAllcnIgPSBpOGtfaW5pdF9od21vbigpOwo+ICAgCWlmIChlcnIp\n"
- "Cj4gQEAgLTk5MywxNCArMTAwMSwxOCBAQCBzdGF0aWMgaW50IF9faW5pdCBpOGtfaW5pdCh2b2lk\n"
- "KQo+ICAgCXJldHVybiAwOwo+Cj4gICAgZXhpdF9yZW1vdmVfcHJvYzoKPiArI2lmZGVmIENPTkZJ\n"
- "R19JOEsKPiAgIAlyZW1vdmVfcHJvY19lbnRyeSgiaThrIiwgTlVMTCk7Cj4gKyNlbmRpZgo+ICAg\n"
- "CXJldHVybiBlcnI7Cj4gICB9Cj4KPiAgIHN0YXRpYyB2b2lkIF9fZXhpdCBpOGtfZXhpdCh2b2lk\n"
- "KQo+ICAgewo+ICAgCWh3bW9uX2RldmljZV91bnJlZ2lzdGVyKGk4a19od21vbl9kZXYpOwo+ICsj\n"
- "aWZkZWYgQ09ORklHX0k4Swo+ICAgCXJlbW92ZV9wcm9jX2VudHJ5KCJpOGsiLCBOVUxMKTsKPiAr\n"
- "I2VuZGlmCj4gICB9Cj4KPiAgIG1vZHVsZV9pbml0KGk4a19pbml0KTsKPgoKQ2FuIHlvdSBtb3Zl\n"
- "IGFsbCB0aGUgY29uZGl0aW9uYWwgZnVuY3Rpb25zIGFuZCBnbG9iYWwgdmFyaWFibGVzIHRvZ2V0\n"
- "aGVyCnVuZGVyIGEgc2luZ2xlICNpZmRlZiA/IFRoYXQgc2hvdWxkIGluY2x1ZGUgZnVuY3Rpb25z\n"
- "IHRvIGNyZWF0ZSB0aGUgcHJvYwplbnRyaWVzLCBhbmQgc2hpbSBmdW5jdGlvbnMgZm9yIHRoZSBz\n"
- "YW1lIGlmIEk4SyBpcyBub3QgY29uZmlndXJlZC4KCkFsc28sIHRoZSAjaWZkZWYgd291bGQgbm90\n"
- "IGNvdmVyIHRoZSBjYXNlIHdoZXJlIEk4SyBpcyBjb25maWd1cmVkIGFzIG1vZHVsZQoodGhlcmUg\n"
- "aXMgbm8gcmVhc29uIHRvIGZvcmNlIGl0IHRvIGJvb2wpLiBZb3Ugc2hvdWxkIHVzZSAiI2lmIElT\n"
- "X0VOQUJMRUQoQ09ORklHX0k4SykiCmluc3RlYWQuCgpUaGFua3MsCkd1ZW50ZXIKCgpfX19fX19f\n"
- "X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1haWxp\n"
- "bmcgbGlzdApsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5zb3Jz\n"
- Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xtLXNlbnNvcnM
+ "On 03/28/2015 03:24 AM, Pali Roh\303\241r wrote:\n"
+ "> This patch splits CONFIG_I8K compile option to SENSORS_DELL_SMM and CONFIG_I8K.\n"
+ "> Option SENSORS_DELL_SMM is now used to enable compilation of dell-smm-hwmon\n"
+ "> driver and old CONFIG_I8K option to enable /proc/i8k interface in driver.\n"
+ ">\n"
+ "> So this change allows to compile dell-smm-hwmon driver without legacy /proc/i8k\n"
+ "> interface which is needed only for old Dell Inspirion models or for userspace\n"
+ "> i8kutils package.\n"
+ ">\n"
+ "> For backward compatibility when CONFIG_I8K is enabled then also SENSORS_DELL_SMM\n"
+ "> is enabled and so driver dell-smm-hwmon (with /proc/i8k) is compiled.\n"
+ ">\n"
+ "> Signed-off-by: Pali Roh\303\241r <pali.rohar@gmail.com>\n"
+ "> ---\n"
+ ">   arch/x86/Kconfig               |   25 +++++++++----------------\n"
+ ">   drivers/hwmon/Kconfig          |   11 +++++++++++\n"
+ ">   drivers/hwmon/Makefile         |    2 +-\n"
+ ">   drivers/hwmon/dell-smm-hwmon.c |   20 ++++++++++++++++----\n"
+ ">   4 files changed, 37 insertions(+), 21 deletions(-)\n"
+ ">\n"
+ "> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig\n"
+ "> index b7d31ca..8d0266b 100644\n"
+ "> --- a/arch/x86/Kconfig\n"
+ "> +++ b/arch/x86/Kconfig\n"
+ "> @@ -1063,24 +1063,17 @@ config TOSHIBA\n"
+ ">   \t  Say N otherwise.\n"
+ ">\n"
+ ">   config I8K\n"
+ "> -\ttristate \"Dell laptop support\"\n"
+ "> -\tselect HWMON\n"
+ "> +\tbool \"Dell i8k legacy laptop support\"\n"
+ "\n"
+ "tristate and still \"select HWMON\".\n"
+ "\n"
+ "> +\tselect SENSORS_DELL_SMM\n"
+ ">   \t---help---\n"
+ "> -\t  This adds a driver to safely access the System Management Mode\n"
+ "> -\t  of the CPU on the Dell Inspiron 8000. The System Management Mode\n"
+ "> -\t  is used to read cpu temperature and cooling fan status and to\n"
+ "> -\t  control the fans on the I8K portables.\n"
+ "> +\t  This options enables legacy /proc/i8k userspace interface in\n"
+ "> +\t  dell-smm-hwmon driver. Character file /proc/i8k reports power and\n"
+ "> +\t  hotkey status on old Dell laptops (like Dell Inspiron 8000) via\n"
+ "> +\t  System Management Mode provided by Dell BIOS. This /proc/i8k interface\n"
+ "> +\t  is also used by userspace package i8kutils to control laptop fans.\n"
+ ">\n"
+ "> -\t  This driver has been tested only on the Inspiron 8000 but it may\n"
+ "> -\t  also work with other Dell laptops. You can force loading on other\n"
+ "> -\t  models by passing the parameter `force=1' to the module. Use at\n"
+ "> -\t  your own risk.\n"
+ "> -\n"
+ "> -\t  For information on utilities to make use of this driver see the\n"
+ "> -\t  I8K Linux utilities web site at:\n"
+ "> -\t  <http://people.debian.org/~dz/i8k/>\n"
+ "> -\n"
+ "> -\t  Say Y if you intend to run this kernel on a Dell Inspiron 8000.\n"
+ "> +\t  Say Y if you intend to run this kernel on old Dell laptops or want to\n"
+ "> +\t  use userspace package i8kutils.\n"
+ ">   \t  Say N otherwise.\n"
+ ">\n"
+ ">   config X86_REBOOTFIXUPS\n"
+ "> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig\n"
+ "> index 110fade..86eeb7d 100644\n"
+ "> --- a/drivers/hwmon/Kconfig\n"
+ "> +++ b/drivers/hwmon/Kconfig\n"
+ "> @@ -1703,6 +1703,17 @@ config SENSORS_ULTRA45\n"
+ ">   \t  This driver provides support for the Ultra45 workstation environmental\n"
+ ">   \t  sensors.\n"
+ ">\n"
+ "> +config SENSORS_DELL_SMM\n"
+ "> +\ttristate \"Dell laptop SMM BIOS hwmon driver\"\n"
+ "> +\tdepends ON X86\n"
+ "\n"
+ "Wondering as well .. .did you test this ?\n"
+ "\n"
+ "> +\t---help---\n"
+ "> +\t  This hwmon driver adds support for reporting temperature of different\n"
+ "> +\t  sensors and controls the fans on Dell laptops via System Management\n"
+ "> +\t  Mode provided by Dell BIOS.\n"
+ "> +\n"
+ "> +\t  When option I8K is also enabled this driver provides legacy /proc/i8k\n"
+ "> +\t  userspace interface for i8kutils package.\n"
+ "> +\n"
+ "Please add this in alphabetic order.\n"
+ "\n"
+ ">   if ACPI\n"
+ ">\n"
+ ">   comment \"ACPI drivers\"\n"
+ "> diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile\n"
+ "> index 1c3e458..9eec614 100644\n"
+ "> --- a/drivers/hwmon/Makefile\n"
+ "> +++ b/drivers/hwmon/Makefile\n"
+ "> @@ -155,7 +155,7 @@ obj-$(CONFIG_SENSORS_W83L785TS)\t+= w83l785ts.o\n"
+ ">   obj-$(CONFIG_SENSORS_W83L786NG)\t+= w83l786ng.o\n"
+ ">   obj-$(CONFIG_SENSORS_WM831X)\t+= wm831x-hwmon.o\n"
+ ">   obj-$(CONFIG_SENSORS_WM8350)\t+= wm8350-hwmon.o\n"
+ "> -obj-$(CONFIG_I8K)\t\t+= dell-smm-hwmon.o\n"
+ "> +obj-$(CONFIG_SENSORS_DELL_SMM)\t+= dell-smm-hwmon.o\n"
+ "\n"
+ "Same here.\n"
+ "\n"
+ ">\n"
+ ">   obj-$(CONFIG_PMBUS)\t\t+= pmbus/\n"
+ ">\n"
+ "> diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c\n"
+ "> index 2b04e4f..e9661dc 100644\n"
+ "> --- a/drivers/hwmon/dell-smm-hwmon.c\n"
+ "> +++ b/drivers/hwmon/dell-smm-hwmon.c\n"
+ "> @@ -81,7 +81,7 @@ static uint i8k_fan_max = I8K_FAN_HIGH;\n"
+ ">\n"
+ ">   MODULE_AUTHOR(\"Massimo Dal Zotto (dz@debian.org)\");\n"
+ ">   MODULE_AUTHOR(\"Pali Roh\303\241r <pali.rohar@gmail.com>\");\n"
+ "> -MODULE_DESCRIPTION(\"Driver for accessing SMM BIOS on Dell laptops\");\n"
+ "> +MODULE_DESCRIPTION(\"Dell laptop SMM BIOS hwmon driver\");\n"
+ ">   MODULE_LICENSE(\"GPL\");\n"
+ ">   MODULE_ALIAS(\"i8k\");\n"
+ ">\n"
+ "> @@ -93,6 +93,7 @@ static bool ignore_dmi;\n"
+ ">   module_param(ignore_dmi, bool, 0);\n"
+ ">   MODULE_PARM_DESC(ignore_dmi, \"Continue probing hardware even if DMI data does not match\");\n"
+ ">\n"
+ "> +#ifdef CONFIG_I8K\n"
+ ">   static bool restricted;\n"
+ ">   module_param(restricted, bool, 0);\n"
+ ">   MODULE_PARM_DESC(restricted, \"Allow fan control if SYS_ADMIN capability set\");\n"
+ "> @@ -100,6 +101,7 @@ MODULE_PARM_DESC(restricted, \"Allow fan control if SYS_ADMIN capability set\");\n"
+ ">   static bool power_status;\n"
+ ">   module_param(power_status, bool, 0600);\n"
+ ">   MODULE_PARM_DESC(power_status, \"Report power status in /proc/i8k\");\n"
+ "> +#endif\n"
+ ">\n"
+ ">   static uint fan_mult;\n"
+ ">   module_param(fan_mult, uint, 0);\n"
+ "> @@ -109,6 +111,7 @@ static uint fan_max;\n"
+ ">   module_param(fan_max, uint, 0);\n"
+ ">   MODULE_PARM_DESC(fan_max, \"Maximum configurable fan speed (default: autodetect)\");\n"
+ ">\n"
+ "> +#ifdef CONFIG_I8K\n"
+ ">   static int i8k_open_fs(struct inode *inode, struct file *file);\n"
+ ">   static long i8k_ioctl(struct file *, unsigned int, unsigned long);\n"
+ ">\n"
+ "> @@ -120,6 +123,7 @@ static const struct file_operations i8k_fops = {\n"
+ ">   \t.release\t= single_release,\n"
+ ">   \t.unlocked_ioctl\t= i8k_ioctl,\n"
+ ">   };\n"
+ "> +#endif\n"
+ ">\n"
+ ">   struct smm_regs {\n"
+ ">   \tunsigned int eax;\n"
+ "> @@ -220,6 +224,7 @@ out:\n"
+ ">   \treturn rc;\n"
+ ">   }\n"
+ ">\n"
+ "> +#ifdef CONFIG_I8K\n"
+ ">   /*\n"
+ ">    * Read the Fn key status.\n"
+ ">    */\n"
+ "> @@ -258,6 +263,7 @@ static int i8k_get_power_status(void)\n"
+ ">\n"
+ ">   \treturn (regs.eax & 0xff) == I8K_POWER_AC ? I8K_AC : I8K_BATTERY;\n"
+ ">   }\n"
+ "> +#endif\n"
+ ">\n"
+ ">   /*\n"
+ ">    * Read the fan status.\n"
+ "> @@ -378,6 +384,7 @@ static int i8k_get_dell_signature(int req_fn)\n"
+ ">   \treturn regs.eax == 1145651527 && regs.edx == 1145392204 ? 0 : -1;\n"
+ ">   }\n"
+ ">\n"
+ "> +#ifdef CONFIG_I8K\n"
+ ">   static int\n"
+ ">   i8k_ioctl_unlocked(struct file *fp, unsigned int cmd, unsigned long arg)\n"
+ ">   {\n"
+ "> @@ -525,6 +532,7 @@ static int i8k_open_fs(struct inode *inode, struct file *file)\n"
+ ">   {\n"
+ ">   \treturn single_open(file, i8k_proc_show, NULL);\n"
+ ">   }\n"
+ "> +#endif\n"
+ ">\n"
+ ">\n"
+ ">   /*\n"
+ "> @@ -974,17 +982,17 @@ static int __init i8k_probe(void)\n"
+ ">\n"
+ ">   static int __init i8k_init(void)\n"
+ ">   {\n"
+ "> -\tstruct proc_dir_entry *proc_i8k;\n"
+ ">   \tint err;\n"
+ ">\n"
+ ">   \t/* Are we running on an supported laptop? */\n"
+ ">   \tif (i8k_probe())\n"
+ ">   \t\treturn -ENODEV;\n"
+ ">\n"
+ "> +#ifdef CONFIG_I8K\n"
+ ">   \t/* Register the proc entry */\n"
+ "> -\tproc_i8k = proc_create(\"i8k\", 0, NULL, &i8k_fops);\n"
+ "> -\tif (!proc_i8k)\n"
+ "> +\tif (!proc_create(\"i8k\", 0, NULL, &i8k_fops))\n"
+ ">   \t\treturn -ENOENT;\n"
+ "\n"
+ "I would prefer not to fail here but report a warning.\n"
+ "This is no longer a fatal condition.\n"
+ "\n"
+ "> +#endif\n"
+ ">\n"
+ ">   \terr = i8k_init_hwmon();\n"
+ ">   \tif (err)\n"
+ "> @@ -993,14 +1001,18 @@ static int __init i8k_init(void)\n"
+ ">   \treturn 0;\n"
+ ">\n"
+ ">    exit_remove_proc:\n"
+ "> +#ifdef CONFIG_I8K\n"
+ ">   \tremove_proc_entry(\"i8k\", NULL);\n"
+ "> +#endif\n"
+ ">   \treturn err;\n"
+ ">   }\n"
+ ">\n"
+ ">   static void __exit i8k_exit(void)\n"
+ ">   {\n"
+ ">   \thwmon_device_unregister(i8k_hwmon_dev);\n"
+ "> +#ifdef CONFIG_I8K\n"
+ ">   \tremove_proc_entry(\"i8k\", NULL);\n"
+ "> +#endif\n"
+ ">   }\n"
+ ">\n"
+ ">   module_init(i8k_init);\n"
+ ">\n"
+ "\n"
+ "Can you move all the conditional functions and global variables together\n"
+ "under a single #ifdef ? That should include functions to create the proc\n"
+ "entries, and shim functions for the same if I8K is not configured.\n"
+ "\n"
+ "Also, the #ifdef would not cover the case where I8K is configured as module\n"
+ "(there is no reason to force it to bool). You should use \"#if IS_ENABLED(CONFIG_I8K)\"\n"
+ "instead.\n"
+ "\n"
+ "Thanks,\n"
+ Guenter
 
-1e6828b1bc08b85751315088a685ab0cbb6c4c17944e1981d16207478fe2a260
+7e633bee6190d0ec776554cd384e15461c8096d6387537b78f4d98863ffb8dbb

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.