ZF MachZ Watchdog driver

Fernando Fuganti (fuganti@conectiva.com.br)
Thu, 1 Mar 2001 19:37:46 -0300 (EST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--663313-242575627-983485804=:991
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.21.0103011930201.991@ze.distro.conectiva>

Hi !

This is the driver for the builtin watchdog device on the embedded MachZ
processor made by ZFmicro. The patch is against 2.2.19pre16 and the
driver is based on sbc60xxwdt.c.

Fernando Fuganti

--663313-242575627-983485804=:991
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="zfmachzwdt.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0103011930040.991@ze.distro.conectiva>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME="zfmachzwdt.patch"

ZGlmZiAtTnJ1IGxpbnV4LTIuMi4xOXByZTE2Lm9yaWcvRG9jdW1lbnRhdGlv
bi9Db25maWd1cmUuaGVscCBsaW51eC0yLjIuMTlwcmUxNi9Eb2N1bWVudGF0
aW9uL0NvbmZpZ3VyZS5oZWxwDQotLS0gbGludXgtMi4yLjE5cHJlMTYub3Jp
Zy9Eb2N1bWVudGF0aW9uL0NvbmZpZ3VyZS5oZWxwCVRodSBNYXIgIDEgMTI6
NDQ6MDkgMjAwMQ0KKysrIGxpbnV4LTIuMi4xOXByZTE2L0RvY3VtZW50YXRp
b24vQ29uZmlndXJlLmhlbHAJVGh1IE1hciAgMSAxNzoyMTozNiAyMDAxDQpA
QCAtMTA1MzUsNiArMTA1MzUsMTkgQEANCiAgWW91IGNhbiBjb21waWxlIHRo
aXMgZHJpdmVyIGRpcmVjdGx5IGludG8gdGhlIGtlcm5lbCwgb3IgdXNlDQog
IGl0IGFzIGEgbW9kdWxlLiAgVGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBz
YmM2MHh4d2R0Lm8uDQogDQorWkYgTWFjaFogV2F0Y2hkb2cNCitDT05GSUdf
TUFDSFpfV0RUDQorICBJZiB5b3UgYXJlIHVzaW5nIGEgWkYgTWljcm8gTWFj
aFogcHJvY2Vzc29yLCBzYXkgWSBoZXJlLCBvdGhlcndpc2UgTi4NCisgIFRo
aXMgaXMgdGhlIGRyaXZlciBmb3IgdGhlIHdhdGNoZG9nIHRpbWVyIGJ1aWx0
aW4gb24gdGhhdCBwcm9jZXNzb3INCisgIHVzaW5nIFpGLUxvZ2ljIGludGVy
ZmFjZS4gVGhpcyB3YXRjaGRvZyBzaW1wbHkgd2F0Y2hlcyB5b3VyIGtlcm5l
bCB0byANCisgIG1ha2Ugc3VyZSBpdCBkb2Vzbid0IGZyZWV6ZSwgYW5kIGlm
IGl0IGRvZXMsIGl0IHJlYm9vdHMgeW91ciBjb21wdXRlciANCisgIGFmdGVy
IGEgY2VydGFpbiBhbW91bnQgb2YgdGltZS4gDQorDQorICBUaGlzIGRyaXZl
ciBpcyBhbHNvIGF2YWlsYWJsZSBhcyBhIG1vZHVsZSAoID0gY29kZSB3aGlj
aCBjYW4gYmUNCisgIGluc2VydGVkIGluIGFuZCByZW1vdmVkIGZyb20gdGhl
IHJ1bm5pbmcga2VybmVsIHdoZW5ldmVyIHlvdSB3YW50KS4NCisgIFRoZSBt
b2R1bGUgaXMgY2FsbGVkIG1hY2h6d2Quby4gSWYgeW91IHdhbnQgdG8gY29t
cGlsZSBpdCBhcyBhIG1vZHVsZSwNCisgIHNheSBNIGhlcmUgYW5kIHJlYWQg
RG9jdW1lbnRhdGlvbi9tb2R1bGVzLnR4dC4NCisNCiBDT05GSUdfTUlDUk9D
T0RFDQogICAvZGV2L2NwdS9taWNyb2NvZGUgLSBJbnRlbCBJQTMyIENQVSBt
aWNyb2NvZGUgc3VwcG9ydA0KIA0KZGlmZiAtTnJ1IGxpbnV4LTIuMi4xOXBy
ZTE2Lm9yaWcvZHJpdmVycy9jaGFyL0NvbmZpZy5pbiBsaW51eC0yLjIuMTlw
cmUxNi9kcml2ZXJzL2NoYXIvQ29uZmlnLmluDQotLS0gbGludXgtMi4yLjE5
cHJlMTYub3JpZy9kcml2ZXJzL2NoYXIvQ29uZmlnLmluCVRodSBNYXIgIDEg
MTI6NDQ6MTEgMjAwMQ0KKysrIGxpbnV4LTIuMi4xOXByZTE2L2RyaXZlcnMv
Y2hhci9Db25maWcuaW4JVGh1IE1hciAgMSAxNzoyMTozNiAyMDAxDQpAQCAt
MTE0LDYgKzExNCw3IEBADQogICAgICBmaQ0KICAgZmkNCiAgIHRyaXN0YXRl
ICcgICBXRFQgUENJIFdhdGNoZG9nIHRpbWVyJyBDT05GSUdfV0RUUENJDQor
ICB0cmlzdGF0ZSAnICAgWkYgTWFjaFogV2F0Y2hkb2cnIENPTkZJR19NQUNI
Wl9XRFQNCiAgIGVuZG1lbnUNCiBmaQ0KIA0KZGlmZiAtTnJ1IGxpbnV4LTIu
Mi4xOXByZTE2Lm9yaWcvZHJpdmVycy9jaGFyL01ha2VmaWxlIGxpbnV4LTIu
Mi4xOXByZTE2L2RyaXZlcnMvY2hhci9NYWtlZmlsZQ0KLS0tIGxpbnV4LTIu
Mi4xOXByZTE2Lm9yaWcvZHJpdmVycy9jaGFyL01ha2VmaWxlCVRodSBNYXIg
IDEgMTI6NDQ6MTEgMjAwMQ0KKysrIGxpbnV4LTIuMi4xOXByZTE2L2RyaXZl
cnMvY2hhci9NYWtlZmlsZQlUaHUgTWFyICAxIDE3OjIxOjM2IDIwMDENCkBA
IC0zNjcsNiArMzY3LDE0IEBADQogICBlbmRpZg0KIGVuZGlmDQogDQoraWZl
cSAoJChDT05GSUdfTUFDSFpfV0RUKSx5KQ0KK09fT0JKUyArPSBtYWNoendk
Lm8NCitlbHNlDQorICBpZmVxICgkKENPTkZJR19NQUNIWl9XRFQpLG0pDQor
ICAgIE1fT0JKUyArPSBtYWNoendkLm8NCisgIGVuZGlmDQorZW5kaWYNCisN
CiBpZmVxICgkKENPTkZJR19SVEMpLHkpDQogT19PQkpTICs9IHJ0Yy5vDQog
ZW5kaWYNCmRpZmYgLU5ydSBsaW51eC0yLjIuMTlwcmUxNi5vcmlnL2RyaXZl
cnMvY2hhci9tYWNoendkLmMgbGludXgtMi4yLjE5cHJlMTYvZHJpdmVycy9j
aGFyL21hY2h6d2QuYw0KLS0tIGxpbnV4LTIuMi4xOXByZTE2Lm9yaWcvZHJp
dmVycy9jaGFyL21hY2h6d2QuYwlXZWQgRGVjIDMxIDIxOjAwOjAwIDE5NjkN
CisrKyBsaW51eC0yLjIuMTlwcmUxNi9kcml2ZXJzL2NoYXIvbWFjaHp3ZC5j
CVRodSBNYXIgIDEgMTc6MjE6MzYgMjAwMQ0KQEAgLTAsMCArMSw1NDUgQEAN
CisvKg0KKyAqICBNYWNoWiBaRi1Mb2dpYyBXYXRjaGRvZyBUaW1lciBkcml2
ZXIgZm9yIExpbnV4DQorICogIA0KKyAqIA0KKyAqICBUaGlzIHByb2dyYW0g
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yDQorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQorICogIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv
bg0KKyAqICAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLg0KKyAqDQorICogIFRoZSBhdXRob3IgZG9l
cyBOT1QgYWRtaXQgbGlhYmlsaXR5IG5vciBwcm92aWRlIHdhcnJhbnR5IGZv
cg0KKyAqICBhbnkgb2YgdGhpcyBzb2Z0d2FyZS4gVGhpcyBtYXRlcmlhbCBp
cyBwcm92aWRlZCAiQVMtSVMiIGluDQorICogIHRoZSBob3BlIHRoYXQgaXQg
bWF5IGJlIHVzZWZ1bCBmb3Igb3RoZXJzLg0KKyAqDQorICogIEF1dGhvcjog
RmVybmFuZG8gRnVnYW50aSA8ZnVnYW50aUBjb25lY3RpdmEuY29tLmJyPg0K
KyAqDQorICogIEJhc2VkIG9uIHNiYzYweHh3ZHQuYyBieSBKYWtvYiBPZXN0
ZXJnYWFyZA0KKyAqIA0KKyAqDQorICogIFdlIGhhdmUgdHdvIHRpbWVycyAo
d2QjMSwgd2QjMikgZHJpdmVuIGJ5IGEgMzIgS0h6IGNsb2NrIHdpdGggdGhl
IA0KKyAqICBmb2xsb3dpbmcgcGVyaW9kczoNCisgKiAgICAgIHdkIzEgLSAy
IHNlY29uZHM7DQorICogICAgICB3ZCMyIC0gNy4yIG1zOw0KKyAqICBBZnRl
ciB0aGUgZXhwaXJhdGlvbiBvZiB3ZCMxLCBpdCBjYW4gZ2VuZXJhdGUgYSBO
TUksIFNDSSwgU01JLCBvciANCisgKiAgYSBzeXN0ZW0gUkVTRVQgYW5kIGl0
IHN0YXJ0cyB3ZCMyIHRoYXQgdW5jb25kaXRpb25hbHkgd2lsbCBSRVNFVCAN
CisgKiAgdGhlIHN5c3RlbSB3aGVuIHRoZSBjb3VudGVyIHJlYWNoZXMgemVy
by4NCisgKg0KKyAqLw0KKw0KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4N
CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPg0KKyNpbmNsdWRlIDxsaW51
eC90eXBlcy5oPg0KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPg0KKyNpbmNs
dWRlIDxsaW51eC9rZXJuZWwuaD4NCisjaW5jbHVkZSA8bGludXgvdGltZXIu
aD4NCisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4NCisjaW5jbHVkZSA8bGlu
dXgvbWlzY2RldmljZS5oPg0KKyNpbmNsdWRlIDxsaW51eC93YXRjaGRvZy5o
Pg0KKyNpbmNsdWRlIDxsaW51eC9tYWxsb2MuaD4NCisjaW5jbHVkZSA8bGlu
dXgvaW9wb3J0Lmg+DQorI2luY2x1ZGUgPGxpbnV4L2ZjbnRsLmg+DQorI2lu
Y2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2luY2x1ZGUgPGFzbS9pby5o
Pg0KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPg0KKyNpbmNsdWRlIDxhc20v
c3lzdGVtLmg+DQorI2luY2x1ZGUgPGxpbnV4L25vdGlmaWVyLmg+DQorI2lu
Y2x1ZGUgPGxpbnV4L3JlYm9vdC5oPg0KKyNpbmNsdWRlIDxsaW51eC9pbml0
Lmg+DQorDQorDQorLyogcG9ydHMgKi8NCisjZGVmaW5lIFpGX0lPQkFTRQkw
eDIxOA0KKyNkZWZpbmUgSU5ERVgJCTB4MjE4DQorI2RlZmluZSBEQVRBX0IJ
CTB4MjE5DQorI2RlZmluZSBEQVRBX1cJCTB4MjFBDQorI2RlZmluZSBEQVRB
X0QJCTB4MjFBDQorDQorLyogaW5kZXhlcyAqLwkJCS8qIHNpemUgKi8NCisj
ZGVmaW5lIFpGTF9WRVJTSU9OCTB4MDIJLyogMTYgICAqLw0KKyNkZWZpbmUg
Q09OVFJPTCAJMHgxMAkvKiAxNiAgICovCQ0KKyNkZWZpbmUgU1RBVFVTCQkw
eDEyCS8qIDggICAgKi8NCisjZGVmaW5lIENPVU5URVJfMQkweDBDCS8qIDE2
ICAgKi8NCisjZGVmaW5lIENPVU5URVJfMgkweDBFCS8qIDggICAgKi8NCisj
ZGVmaW5lIFBVTFNFX0xFTgkweDBGCS8qIDggICAgKi8NCisNCisvKiBjb250
cm9scyAqLw0KKyNkZWZpbmUgRU5BQkxFX1dEMQkweDAwMDENCisjZGVmaW5l
IEVOQUJMRV9XRDIJMHgwMDAyDQorI2RlZmluZSBSRVNFVF9XRDEJMHgwMDEw
DQorI2RlZmluZSBSRVNFVF9XRDIJMHgwMDIwDQorI2RlZmluZSBHRU5fU0NJ
CQkweDAxMDANCisjZGVmaW5lIEdFTl9OTUkJCTB4MDIwMA0KKyNkZWZpbmUg
R0VOX1NNSQkJMHgwNDAwDQorI2RlZmluZSBHRU5fUkVTRVQJMHgwODAwDQor
DQorDQorLyogdXRpbGl0aWVzICovDQorDQorI2RlZmluZSBXRDEJMA0KKyNk
ZWZpbmUgV0QyCTENCisNCisjZGVmaW5lIHpmX3dyaXRldyhwb3J0LCBkYXRh
KSAgeyBvdXRiKHBvcnQsIElOREVYKTsgb3V0dyhkYXRhLCBEQVRBX1cpOyB9
DQorI2RlZmluZSB6Zl93cml0ZWIocG9ydCwgZGF0YSkgIHsgb3V0Yihwb3J0
LCBJTkRFWCk7IG91dGIoZGF0YSwgREFUQV9CKTsgfQ0KKyNkZWZpbmUgemZf
Z2V0X1pGTF92ZXJzaW9uKCkgICB6Zl9yZWFkdyhaRkxfVkVSU0lPTikNCisN
CisNCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgemZfcmVhZHcodW5zaWduZWQg
Y2hhciBwb3J0KQ0KK3sNCisJb3V0Yihwb3J0LCBJTkRFWCk7DQorCXJldHVy
biBpbncoREFUQV9XKTsNCit9DQorDQorc3RhdGljIHVuc2lnbmVkIHNob3J0
IHpmX3JlYWRiKHVuc2lnbmVkIGNoYXIgcG9ydCkNCit7DQorCW91dGIocG9y
dCwgSU5ERVgpOw0KKwlyZXR1cm4gaW5iKERBVEFfQik7DQorfQ0KKw0KKw0K
K01PRFVMRV9BVVRIT1IoIkZlcm5hbmRvIEZ1Z2FudGkgPGZ1Z2FudGlAY29u
ZWN0aXZhLmNvbS5icj4iKTsNCitNT0RVTEVfREVTQ1JJUFRJT04oIk1hY2ha
IFpGLUxvZ2ljIFdhdGNoZG9nIGRyaXZlciIpOw0KK01PRFVMRV9QQVJNKGFj
dGlvbiwgImkiKTsNCitNT0RVTEVfUEFSTV9ERVNDKGFjdGlvbiwgImFmdGVy
IHdhdGNoZG9nIHJlc2V0cywgZ2VuZXJhdGU6IDAgPSBSRVNFVCgqKSAgMSA9
IFNNSSAgMiA9IE5NSSAgMyA9IFNDSSIpOw0KKw0KKyNkZWZpbmUgUEZYICJt
YWNoendkIg0KKw0KK3N0YXRpYyBzdHJ1Y3Qgd2F0Y2hkb2dfaW5mbyB6Zl9p
bmZvID0gew0KKwlvcHRpb25zOgkJV0RJT0ZfS0VFUEFMSVZFUElORywgDQor
CWZpcm13YXJlX3ZlcnNpb246CTEsIA0KKwlpZGVudGl0eToJCSJaRi1Mb2dp
YyB3YXRjaGRvZyINCit9Ow0KKw0KKw0KKy8qDQorICogYWN0aW9uIHJlZmVy
cyB0byBhY3Rpb24gdGFrZW4gd2hlbiB3YXRjaGRvZyByZXNldHMNCisgKiAw
ID0gR0VOX1JFU0VUDQorICogMSA9IEdFTl9TTUkNCisgKiAyID0gR0VOX05N
SQ0KKyAqIDMgPSBHRU5fU0NJDQorICogZGVmYXVsdHMgdG8gR0VOX1JFU0VU
ICgwKQ0KKyAqLw0KK3N0YXRpYyBpbnQgYWN0aW9uID0gMDsNCitzdGF0aWMg
aW50IHpmX2FjdGlvbiA9IEdFTl9SRVNFVDsNCitzdGF0aWMgaW50IHpmX2lz
X29wZW4gPSAwOw0KK3N0YXRpYyBpbnQgemZfZXhwZWN0X2Nsb3NlID0gMDsN
CitzdGF0aWMgc3BpbmxvY2tfdCB6Zl9sb2NrOw0KK3N0YXRpYyBzdHJ1Y3Qg
dGltZXJfbGlzdCB6Zl90aW1lcjsNCitzdGF0aWMgdW5zaWduZWQgbG9uZyBu
ZXh0X2hlYXJ0YmVhdCA9IDA7DQorDQorDQorLyogdGltZW91dCBmb3IgdXNl
ciBsYW5kIGhlYXJ0IGJlYXQgKDEwIHNlY29uZHMpICovDQorI2RlZmluZSBa
Rl9VU0VSX1RJTUVPIChIWioxMCkNCisNCisvKiB0aW1lb3V0IGZvciBoYXJk
d2FyZSB3YXRjaGRvZyAofjUwMG1zKSAqLw0KKyNkZWZpbmUgWkZfSFdfVElN
RU8gKEhaLzIpDQorDQorLyogbnVtYmVyIG9mIHRpY2tzIG9uIFdEIzEgKGRy
aXZlbiBieSBhIDMyS0h6IGNsb2NrLCAycykgKi8NCisjZGVmaW5lIFpGX0NU
SU1FT1VUIDB4ZmZmZg0KKw0KKyNpZm5kZWYgWkZfREVCVUcNCisjCWRlZmlu
ZSBkcHJpbnRrKGZvcm1hdCwgYXJncy4uLikNCisjZWxzZQ0KKyMJZGVmaW5l
IGRwcmludGsoZm9ybWF0LCBhcmdzLi4uKSBwcmludGsoS0VSTl9ERUJVRyBQ
RlggIjoiIF9fRlVOQ1RJT05fXyAiOiVkOiAiIGZvcm1hdCwgX19MSU5FX18g
LCAjIyBhcmdzKQ0KKyNlbmRpZg0KKw0KKw0KKy8qIFNUQVRVUyByZWdpc3Rl
ciBmdW5jdGlvbnMgKi8NCisNCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNo
YXIgemZfZ2V0X3N0YXR1cyh2b2lkKQ0KK3sNCisJcmV0dXJuIHpmX3JlYWRi
KFNUQVRVUyk7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCB6Zl9zZXRf
c3RhdHVzKHVuc2lnbmVkIGNoYXIgbmV3KQ0KK3sNCisJemZfd3JpdGViKFNU
QVRVUywgbmV3KTsNCit9DQorDQorDQorLyogQ09OVFJPTCByZWdpc3RlciBm
dW5jdGlvbnMgKi8NCisNCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHNob3J0
IHpmX2dldF9jb250cm9sKHZvaWQpDQorew0KKwlyZXR1cm4gemZfcmVhZHco
Q09OVFJPTCk7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCB6Zl9zZXRf
Y29udHJvbCh1bnNpZ25lZCBzaG9ydCBuZXcpDQorew0KKwl6Zl93cml0ZXco
Q09OVFJPTCwgbmV3KTsNCit9DQorDQorDQorLyogV0QjPyBjb3VudGVyIGZ1
bmN0aW9ucyAqLw0KKy8qDQorICoJSnVzdCBnZXQgY3VycmVudCBjb3VudGVy
IHZhbHVlDQorICovDQorDQoraW5saW5lIHVuc2lnbmVkIHNob3J0IHpmX2dl
dF90aW1lcih1bnNpZ25lZCBjaGFyIG4pDQorew0KKwlzd2l0Y2gobil7DQor
CQljYXNlIFdEMToNCisJCQlyZXR1cm4gemZfcmVhZHcoQ09VTlRFUl8xKTsN
CisJCWNhc2UgV0QyOg0KKwkJCXJldHVybiB6Zl9yZWFkYihDT1VOVEVSXzIp
Ow0KKwkJZGVmYXVsdDoNCisJCQlyZXR1cm4gMDsNCisJfQ0KK30NCisNCisv
Kg0KKyAqCUp1c3Qgc2V0IGNvdW50ZXIgdmFsdWUNCisgKi8NCisNCitzdGF0
aWMgaW5saW5lIHZvaWQgemZfc2V0X3RpbWVyKHVuc2lnbmVkIHNob3J0IG5l
dywgdW5zaWduZWQgY2hhciBuKQ0KK3sNCisJc3dpdGNoKG4pew0KKwkJY2Fz
ZSBXRDE6DQorCQkJemZfd3JpdGV3KENPVU5URVJfMSwgbmV3KTsNCisJCWNh
c2UgV0QyOg0KKwkJCXpmX3dyaXRlYihDT1VOVEVSXzIsIG5ldyA+IDB4ZmYg
PyAweGZmIDogbmV3KTsNCisJCWRlZmF1bHQ6DQorCQkJcmV0dXJuOw0KKwl9
DQorfQ0KKw0KKy8qDQorICogc3RvcCBoYXJkd2FyZSB0aW1lcg0KKyAqLw0K
K3N0YXRpYyB2b2lkIHpmX3RpbWVyX29mZih2b2lkKQ0KK3sNCisJdW5zaWdu
ZWQgaW50IGN0cmxfcmVnID0gMDsNCisNCisJLyogc3RvcCBpbnRlcm5hbCBw
aW5nICovDQorCWRlbF90aW1lcigmemZfdGltZXIpOw0KKw0KKwkvKiBzdG9w
IHdhdGNoZG9nIHRpbWVyICovCQ0KKwljdHJsX3JlZyA9IHpmX2dldF9jb250
cm9sKCk7DQorCWN0cmxfcmVnIHw9IChFTkFCTEVfV0QxfEVOQUJMRV9XRDIp
OwkvKiBkaXNhYmxlIHdkMSBhbmQgd2QyICovDQorCWN0cmxfcmVnICY9IH4o
RU5BQkxFX1dEMXxFTkFCTEVfV0QyKTsNCisJemZfc2V0X2NvbnRyb2woY3Ry
bF9yZWcpOw0KKw0KKwlwcmludGsoUEZYICI6IFdhdGNoZG9nIHRpbWVyIGlz
IG5vdyBkaXNhYmxlZFxuIik7DQorfQ0KKw0KKw0KKy8qDQorICogc3RhcnQg
aGFyZHdhcmUgdGltZXIgDQorICovDQorc3RhdGljIHZvaWQgemZfdGltZXJf
b24odm9pZCkNCit7DQorCXVuc2lnbmVkIGludCBjdHJsX3JlZyA9IDA7DQor
DQorCXpmX3dyaXRlYihQVUxTRV9MRU4sIDB4ZmYpOw0KKw0KKwl6Zl9zZXRf
dGltZXIoWkZfQ1RJTUVPVVQsIFdEMSk7DQorDQorCS8qIHVzZXIgbGFuZCBw
aW5nICovDQorCW5leHRfaGVhcnRiZWF0ID0gamlmZmllcyArIFpGX1VTRVJf
VElNRU87DQorDQorCS8qIHN0YXJ0IHRoZSB0aW1lciBmb3IgaW50ZXJuYWwg
cGluZyAqLw0KKwl6Zl90aW1lci5leHBpcmVzID0gamlmZmllcyArIFpGX0hX
X1RJTUVPOw0KKw0KKwlhZGRfdGltZXIoJnpmX3RpbWVyKTsNCisNCisJLyog
c3RhcnQgd2F0Y2hkb2cgdGltZXIgKi8NCisJY3RybF9yZWcgPSB6Zl9nZXRf
Y29udHJvbCgpOw0KKwljdHJsX3JlZyB8PSAoRU5BQkxFX1dEMXx6Zl9hY3Rp
b24pOw0KKwl6Zl9zZXRfY29udHJvbChjdHJsX3JlZyk7DQorDQorCXByaW50
ayhQRlggIjogV2F0Y2hkb2cgdGltZXIgaXMgbm93IGVuYWJsZWRcbiIpOw0K
K30NCisNCisNCitzdGF0aWMgdm9pZCB6Zl9waW5nKHVuc2lnbmVkIGxvbmcg
ZGF0YSkNCit7DQorCXVuc2lnbmVkIGludCBjdHJsX3JlZyA9IDA7DQorDQor
CXpmX3dyaXRlYihDT1VOVEVSXzIsIDB4ZmYpOw0KKw0KKwlpZih0aW1lX2Jl
Zm9yZShqaWZmaWVzLCBuZXh0X2hlYXJ0YmVhdCkpew0KKw0KKwkJZHByaW50
aygidGltZV9iZWZvcmU6ICVsZFxuIiwgbmV4dF9oZWFydGJlYXQgLSBqaWZm
aWVzKTsNCisJCQ0KKwkJLyogDQorCQkgKiByZXNldCBldmVudCBpcyBhY3Rp
dmF0ZWQgYnkgdHJhbnNpdGlvbiBmcm9tIDAgdG8gMSBvbg0KKwkJICogUkVT
RVRfV0QxIGJpdCBhbmQgd2UgYXNzdW1lIHRoYXQgaXQgaXMgYWxyZWFkeSB6
ZXJvLi4uDQorCQkgKi8NCisJCWN0cmxfcmVnID0gemZfZ2V0X2NvbnRyb2wo
KTsgICAgDQorCQljdHJsX3JlZyB8PSBSRVNFVF9XRDE7CQkNCisJCXpmX3Nl
dF9jb250cm9sKGN0cmxfcmVnKTsJDQorCQkNCisJCS8qIC4uLmFuZCBub3Ro
aW5nIGNoYW5nZXMgdW50aWwgaGVyZSAqLw0KKwkJY3RybF9yZWcgJj0gfihS
RVNFVF9XRDEpOw0KKwkJemZfc2V0X2NvbnRyb2woY3RybF9yZWcpOwkJDQor
DQorCQl6Zl90aW1lci5leHBpcmVzID0gamlmZmllcyArIFpGX0hXX1RJTUVP
Ow0KKwkJYWRkX3RpbWVyKCZ6Zl90aW1lcik7DQorCX1lbHNlew0KKwkJcHJp
bnRrKFBGWCAiOiBJIHdpbGwgcmVzZXQgeW91ciBtYWNoaW5lXG4iKTsNCisJ
fQ0KK30NCisNCitzdGF0aWMgc3NpemVfdCB6Zl93cml0ZShzdHJ1Y3QgZmls
ZSAqZmlsZSwgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQsIA0KKwkJ
CQkJCQkJbG9mZl90ICpwcG9zKQ0KK3sNCisJLyogIENhbid0IHNlZWsgKHB3
cml0ZSkgb24gdGhpcyBkZXZpY2UgICovDQorCWlmIChwcG9zICE9ICZmaWxl
LT5mX3BvcykNCisJCXJldHVybiAtRVNQSVBFOw0KKw0KKwkvKiBTZWUgaWYg
d2UgZ290IHRoZSBtYWdpYyBjaGFyYWN0ZXIgKi8NCisJaWYoY291bnQpew0K
Kw0KKy8qDQorICogbm8gbmVlZCB0byBjaGVjayBmb3IgY2xvc2UgY29uZmly
bWF0aW9uDQorICogbm8gd2F5IHRvIGRpc2FibGUgd2F0Y2hkb2cgOykNCisg
Ki8NCisjaWZuZGVmIENPTkZJR19XQVRDSERPR19OT1dBWU9VVA0KKwkJc2l6
ZV90IG9mczsNCisNCisJCS8qIA0KKwkJICogbm90ZToganVzdCBpbiBjYXNl
IHNvbWVvbmUgd3JvdGUgdGhlIG1hZ2ljIGNoYXJhY3Rlcg0KKwkJICogZml2
ZSBtb250aHMgYWdvLi4uDQorCQkgKi8NCisJCXpmX2V4cGVjdF9jbG9zZSA9
IDA7DQorDQorCQkvKiBub3cgc2NhbiAqLw0KKwkJZm9yKG9mcyA9IDA7IG9m
cyAhPSBjb3VudDsgb2ZzKyspew0KKwkJCWlmKGJ1ZltvZnNdID09ICdWJyl7
DQorCQkJCXpmX2V4cGVjdF9jbG9zZSA9IDE7DQorCQkJCWRwcmludGsoInpm
X2V4cGVjdF9jbG9zZSAxXG4iKTsNCisJCQl9DQorCQl9DQorI2VuZGlmDQor
CQkvKg0KKwkJICogV2VsbCwgYW55aG93IHNvbWVvbmUgd3JvdGUgdG8gdXMs
DQorCQkgKiB3ZSBzaG91bGQgcmV0dXJuIHRoYXQgZmF2b3VyDQorCQkgKi8N
CisJCW5leHRfaGVhcnRiZWF0ID0gamlmZmllcyArIFpGX1VTRVJfVElNRU87
DQorCQlkcHJpbnRrKCJ1c2VyIHBpbmcgYXQgJWxkXG4iLCBqaWZmaWVzKTsN
CisJCQ0KKwkJcmV0dXJuIDE7DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0K
Kw0KK3N0YXRpYyBzc2l6ZV90IHpmX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUs
IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCANCisJCQkJCQkJbG9mZl90ICpw
cG9zKQ0KK3sNCisJcmV0dXJuIC1FSU5WQUw7DQorfQ0KKw0KKw0KKw0KK3N0
YXRpYyBpbnQgemZfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0
IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsDQorCXVuc2lnbmVkIGxv
bmcgYXJnKQ0KK3sNCisJaW50IHJldDsNCisJCQ0KKwlzd2l0Y2goY21kKXsN
CisJCWNhc2UgV0RJT0NfR0VUU1VQUE9SVDoNCisJCQlyZXQgPSBjb3B5X3Rv
X3VzZXIoKHN0cnVjdCB3YXRjaGRvZ19pbmZvICopYXJnLCANCisJCQkJCQkm
emZfaW5mbywgc2l6ZW9mKHpmX2luZm8pKTsNCisJCQlpZihyZXQpDQorCQkJ
CXJldHVybiAtRUZBVUxUOw0KKwkJCWJyZWFrOw0KKwkgIA0KKwkJY2FzZSBX
RElPQ19HRVRTVEFUVVM6DQorCQkJcmV0ID0gY29weV90b191c2VyKChpbnQg
KilhcmcsICZ6Zl9pc19vcGVuLA0KKwkJCQkJCQkJc2l6ZW9mKGludCkpOw0K
KwkJCWlmKHJldCkNCisJCQkJcmV0dXJuIC1FRkFVTFQ7DQorCQkJYnJlYWs7
DQorDQorCQljYXNlIFdESU9DX0tFRVBBTElWRToNCisJCQl6Zl9waW5nKDAp
Ow0KKwkJCWJyZWFrOw0KKw0KKwkJZGVmYXVsdDoNCisJCQlyZXR1cm4gLUVO
T0lPQ1RMQ01EOw0KKwl9DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0
aWMgaW50IHpmX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZp
bGUgKmZpbGUpDQorew0KKwlzd2l0Y2goTUlOT1IoaW5vZGUtPmlfcmRldikp
ew0KKwkJY2FzZSBXQVRDSERPR19NSU5PUjoNCisJCQlzcGluX2xvY2soJnpm
X2xvY2spOw0KKwkJCWlmKHpmX2lzX29wZW4pew0KKwkJCQlzcGluX3VubG9j
aygmemZfbG9jayk7DQorCQkJCXJldHVybiAtRUJVU1k7DQorCQkJfQ0KKw0K
KyNpZmRlZiBDT05GSUdfV0FUQ0hET0dfTk9XQVlPVVQNCisJCQlNT0RfSU5D
X1VTRV9DT1VOVDsNCisjZW5kaWYNCisJCQl6Zl9pc19vcGVuID0gMTsNCisN
CisJCQlzcGluX3VubG9jaygmemZfbG9jayk7DQorDQorCQkJemZfdGltZXJf
b24oKTsNCisNCisJCQlyZXR1cm4gMDsNCisJCWRlZmF1bHQ6DQorCQkJcmV0
dXJuIC1FTk9ERVY7DQorCX0NCit9DQorDQorc3RhdGljIGludCB6Zl9jbG9z
ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkNCit7
DQorCWlmKE1JTk9SKGlub2RlLT5pX3JkZXYpID09IFdBVENIRE9HX01JTk9S
KXsNCisNCisJCWlmKHpmX2V4cGVjdF9jbG9zZSl7DQorCQkJemZfdGltZXJf
b2ZmKCk7DQorCQl9IGVsc2Ugew0KKwkJCWRlbF90aW1lcigmemZfdGltZXIp
Ow0KKwkJCXByaW50ayhQRlggIjogZGV2aWNlIGZpbGUgY2xvc2VkIHVuZXhw
ZWN0ZWRseS4gV2lsbCBub3Qgc3RvcCB0aGUgV0RUIVxuIik7DQorCQl9DQor
CQkNCisJCXNwaW5fbG9jaygmemZfbG9jayk7DQorCQl6Zl9pc19vcGVuID0g
MDsNCisJCXNwaW5fdW5sb2NrKCZ6Zl9sb2NrKTsNCisNCisJCXpmX2V4cGVj
dF9jbG9zZSA9IDA7DQorCX0NCisJDQorCXJldHVybiAwOw0KK30NCisNCisv
Kg0KKyAqIE5vdGlmaWVyIGZvciBzeXN0ZW0gZG93bg0KKyAqLw0KKw0KK3N0
YXRpYyBpbnQgemZfbm90aWZ5X3N5cyhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sg
KnRoaXMsIHVuc2lnbmVkIGxvbmcgY29kZSwNCisJCQkJCQkJCXZvaWQgKnVu
dXNlZCkNCit7DQorCWlmKGNvZGUgPT0gU1lTX0RPV04gfHwgY29kZSA9PSBT
WVNfSEFMVCl7DQorCQl6Zl90aW1lcl9vZmYoKTsJCQ0KKwl9DQorCQ0KKwly
ZXR1cm4gTk9USUZZX0RPTkU7DQorfQ0KKw0KKw0KKw0KKw0KK3N0YXRpYyBz
dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHpmX2ZvcHMgPSB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDMsMzQpDQorCW93
bmVyOiAgICAgICAgICBUSElTX01PRFVMRSwNCisjZW5kaWYNCisJcmVhZDog
ICAgICAgICAgIHpmX3JlYWQsDQorCXdyaXRlOiAgICAgICAgICB6Zl93cml0
ZSwNCisJaW9jdGw6ICAgICAgICAgIHpmX2lvY3RsLA0KKwlvcGVuOiAgICAg
ICAgICAgemZfb3BlbiwNCisJcmVsZWFzZTogICAgICAgIHpmX2Nsb3NlLA0K
K307DQorDQorc3RhdGljIHN0cnVjdCBtaXNjZGV2aWNlIHpmX21pc2NkZXYg
PSB7DQorCVdBVENIRE9HX01JTk9SLA0KKwkid2F0Y2hkb2ciLA0KKwkmemZf
Zm9wcw0KK307DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorDQor
LyoNCisgKiBUaGUgZGV2aWNlIG5lZWRzIHRvIGxlYXJuIGFib3V0IHNvZnQg
c2h1dGRvd25zIGluIG9yZGVyIHRvDQorICogdHVybiB0aGUgdGltZWJvbWIg
cmVnaXN0ZXJzIG9mZi4NCisgKi8NCitzdGF0aWMgc3RydWN0IG5vdGlmaWVy
X2Jsb2NrIHpmX25vdGlmaWVyID0gew0KKwl6Zl9ub3RpZnlfc3lzLA0KKwlO
VUxMLA0KKwkwDQorfTsNCisNCitzdGF0aWMgdm9pZCBfX2luaXQgemZfc2hv
d19hY3Rpb24oaW50IGFjdCkNCit7DQorCWNoYXIgKnN0cltdID0geyAiUkVT
RVQiLCAiU01JIiwgIk5NSSIsICJTQ0kiIH07DQorCQ0KKwlwcmludGsoUEZY
ICI6IFdhdGNoZG9nIHVzaW5nIGFjdGlvbiA9ICVzXG4iLCBzdHJbYWN0XSk7
DQorfQ0KKw0KK2ludCBfX2luaXQgemZfaW5pdCh2b2lkKQ0KK3sNCisJaW50
IHJldDsNCisJDQorCXByaW50ayhQRlggIjogTWFjaFogWkYtTG9naWMgV2F0
Y2hkb2cgZHJpdmVyIGluaXRpYWxpemluZy5cbiIpOw0KKw0KKwlyZXQgPSB6
Zl9nZXRfWkZMX3ZlcnNpb24oKTsNCisJcHJpbnRrKCIlI3hcbiIsIHJldCk7
DQorCWlmKCghcmV0KSB8fCAocmV0ICE9IDB4ZmZmZikpew0KKwkJcHJpbnRr
KFBGWCAiOiBubyBaRi1Mb2dpYyBmb3VuZFxuIik7DQorCQlyZXR1cm4gLUVO
T0RFVjsNCisJfQ0KKw0KKwlpZigoYWN0aW9uIDw9IDMpICYmIChhY3Rpb24g
Pj0gMCkpew0KKwkJemZfYWN0aW9uID0gemZfYWN0aW9uPj5hY3Rpb247DQor
CX0gZWxzZQ0KKwkJYWN0aW9uID0gMDsNCisJDQorCXpmX3Nob3dfYWN0aW9u
KGFjdGlvbik7DQorDQorCXNwaW5fbG9ja19pbml0KCZ6Zl9sb2NrKTsNCisJ
DQorCXJldCA9IG1pc2NfcmVnaXN0ZXIoJnpmX21pc2NkZXYpOw0KKwlpZiAo
cmV0KXsNCisJCXByaW50ayhLRVJOX0VSUiAiY2FuJ3QgbWlzY19yZWdpc3Rl
ciBvbiBtaW5vcj0lZFxuIiwNCisJCQkJCQkJV0FUQ0hET0dfTUlOT1IpOw0K
KwkJZ290byBvdXQ7DQorCX0NCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiwzLDMpDQorCWlmKGNoZWNrX3JlZ2lvbiha
Rl9JT0JBU0UsIDMpKXsNCisjZWxzZQ0KKwlpZighcmVxdWVzdF9yZWdpb24o
WkZfSU9CQVNFLCAzLCAiTWFjaFogWkZMIFdEVCIpKXsNCisjZW5kaWYNCisN
CisJCXByaW50ayhLRVJOX0VSUiAiY2Fubm90IHJlc2VydmUgSS9PIHBvcnRz
IGF0ICVkXG4iLA0KKwkJCQkJCQlaRl9JT0JBU0UpOw0KKwkJcmV0ID0gLUVC
VVNZOw0KKwkJZ290byBub19yZWdpb247DQorCX0NCisNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiwzLDMpDQorCXJlcXVl
c3RfcmVnaW9uKFpGX0lPQkFTRSwgMywgIk1hY2haIFpGTCBXRFQiKTsNCisj
ZGVmaW5lIF9fZXhpdA0KKyNlbmRpZg0KKw0KKwlyZXQgPSByZWdpc3Rlcl9y
ZWJvb3Rfbm90aWZpZXIoJnpmX25vdGlmaWVyKTsNCisJaWYocmV0KXsNCisJ
CXByaW50ayhLRVJOX0VSUiAiY2FuJ3QgcmVnaXN0ZXIgcmVib290IG5vdGlm
aWVyIChlcnI9JWQpXG4iLA0KKwkJCQkJCQkJCXJldCk7DQorCQlnb3RvIG5v
X3JlYm9vdDsNCisJfQ0KKwkNCisJemZfc2V0X3N0YXR1cygwKTsNCisJemZf
c2V0X2NvbnRyb2woMCk7DQorDQorCS8qIHRoaXMgaXMgdGhlIHRpbWVyIHRo
YXQgd2lsbCBkbyB0aGUgaGFyZCB3b3JrICovDQorCWluaXRfdGltZXIoJnpm
X3RpbWVyKTsNCisJemZfdGltZXIuZnVuY3Rpb24gPSB6Zl9waW5nOw0KKwl6
Zl90aW1lci5kYXRhID0gMDsNCisJDQorCXJldHVybiAwOw0KKw0KK25vX3Jl
Ym9vdDoNCisJcmVsZWFzZV9yZWdpb24oWkZfSU9CQVNFLCAzKTsNCitub19y
ZWdpb246DQorCW1pc2NfZGVyZWdpc3RlcigmemZfbWlzY2Rldik7DQorb3V0
Og0KKwlyZXR1cm4gcmV0Ow0KK30NCisNCisJDQordm9pZCBfX2V4aXQgemZf
ZXhpdCh2b2lkKQ0KK3sNCisJemZfdGltZXJfb2ZmKCk7DQorCQ0KKwltaXNj
X2RlcmVnaXN0ZXIoJnpmX21pc2NkZXYpOw0KKwl1bnJlZ2lzdGVyX3JlYm9v
dF9ub3RpZmllcigmemZfbm90aWZpZXIpOw0KKwlyZWxlYXNlX3JlZ2lvbiha
Rl9JT0JBU0UsIDMpOw0KK30NCisNCittb2R1bGVfaW5pdCh6Zl9pbml0KTsN
Cittb2R1bGVfZXhpdCh6Zl9leGl0KTsNCg==
--663313-242575627-983485804=:991--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/