Subject: Re: PMU - VIA communication
To: None <port-macppc@netbsd.org>
From: Cherry G. Mathew <cherry.g.mathew@gmail.com>
List: port-macppc
Date: 07/17/2006 13:53:21
------=_Part_14144_31040614.1153124601948
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 7/14/06, Cherry G. Mathew <cherry.g.mathew@gmail.com> wrote:
> Hi,
>
> I was looking at macppc/dev/pm_direct.c
>

And discovered I was barking up the wrong tree. Thanks to Benjamin
Herrenschmidt for pointing this out.

So here's a pure Open Firmware wrapper, unworthy to be called a
driver, until Garrett works out the ati licensing issues.

Try hitting the brightness control keys on your ibook/Powerbook. If it
works, you should get debug messages, followed by panel brightness
being adjusted.

I don't know if it will work on other models. User Feedback is very welcome.

Thanks,
-- 
~Cherry

------=_Part_14144_31040614.1153124601948
Content-Type: text/x-patch; name=ofbrt.diff; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ofbrt.diff"

SW5kZXg6IGNvbmYvR0VORVJJQwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9zcmMvc3lz
L2FyY2gvbWFjcHBjL2NvbmYvR0VORVJJQyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMjkKZGlm
ZiAtdSAtcjEuMjI5IEdFTkVSSUMKLS0tIGNvbmYvR0VORVJJQwkyOCBNYXIgMjAwNiAyMDo1ODo0
MCAtMDAwMAkxLjIyOQorKysgY29uZi9HRU5FUklDCTE3IEp1bCAyMDA2IDA4OjEzOjM3IC0wMDAw
CkBAIC0zMzMsNyArMzMzLDggQEAKIGFlZCoJYXQgYWRiPwkJCQkjIEFEQiBFdmVudCBEZXZpY2UK
IGFrYmQqCWF0IGFkYj8JCQkJIyBBREIga2V5Ym9hcmQKIGFtcyoJYXQgYWRiPwkJCQkjIEFEQiBt
b3VzZQotYWJ0bioJYXQgYWRiPworI2FidG4qCWF0IGFkYj8KK29mYnJ0KglhdCBhZGI/CiB6c2Mq
CWF0IG9iaW8/CiB6c3R0eSoJYXQgenNjPyBjaGFubmVsID8KIG1lZGlhYmF5KiBhdCBvYmlvPwpJ
bmRleDogY29uZi9maWxlcy5tYWNwcGMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3Qvc3Jj
L3N5cy9hcmNoL21hY3BwYy9jb25mL2ZpbGVzLm1hY3BwYyx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS43MwpkaWZmIC11IC1yMS43MyBmaWxlcy5tYWNwcGMKLS0tIGNvbmYvZmlsZXMubWFjcHBjCTQg
QXByIDIwMDYgMDM6MTM6MTIgLTAwMDAJMS43MworKysgY29uZi9maWxlcy5tYWNwcGMJMTcgSnVs
IDIwMDYgMDg6MTM6MzcgLTAwMDAKQEAgLTE2Nyw2ICsxNjcsMTAgQEAKIGF0dGFjaCBhYnRuIGF0
IGFkYgogZmlsZSBhcmNoL21hY3BwYy9kZXYvYWJ0bi5jCQkJYWJ0bgogCitkZXZpY2Ugb2ZicnQg
CithdHRhY2ggb2ZicnQgYXQgYWRiCitmaWxlIGFyY2gvbWFjcHBjL2Rldi9vZmJydC5jCQkJb2Zi
CisKIGRldmljZSBudnJhbQogYXR0YWNoIG52cmFtIGF0IG9iaW8KIGZpbGUgYXJjaC9tYWNwcGMv
ZGV2L252cmFtLmMJCQludnJhbSBuZWVkcy1mbGFnCg==
------=_Part_14144_31040614.1153124601948
Content-Type: text/x-csrc; name=ofbrt.c; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ofbrt.c"

LyogJE5ldEJTRCQgKi8KCi8qLQogKiBDb3B5cmlnaHQgKGMpIDIwMDYgVGhlIE5ldEJTRCBGb3Vu
ZGF0aW9uLCBJbmMuCiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKICogYXJlIG1ldDoKICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCiAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAqIDMuIEFsbCBhZHZlcnRpc2lu
ZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQog
KiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CiAqCVRoaXMg
cHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIE5ldEJTRAogKglGb3Vu
ZGF0aW9uLCBJbmMuIGFuZCBpdHMgY29udHJpYnV0b3JzLgogKiA0LiBOZWl0aGVyIHRoZSBuYW1l
IG9mIFRoZSBOZXRCU0QgRm91bmRhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cwogKiAgICBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKICogICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgogKgogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBORVRC
U0QgRk9VTkRBVElPTiwgSU5DLiBBTkQgQ09OVFJJQlVUT1JTCiAqIGBgQVMgSVMnJyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RAogKiBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgogKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIEZPVU5EQVRJT04gT1IgQ09OVFJJQlVUT1JTCiAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCiAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCiAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCiAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCiAqIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogKi8KCiNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KX19LRVJORUxfUkNTSUQoMCwg
IiROZXRCU0QkIik7CgojaW5jbHVkZSA8c3lzL3BhcmFtLmg+CiNpbmNsdWRlIDxzeXMvY29uZi5o
PgoKI2luY2x1ZGUgPGRldi9vZncvb3BlbmZpcm0uaD4KCiNpbmNsdWRlIDxtYWNoaW5lL2F1dG9j
b25mLmg+CgojaW5jbHVkZSA8bWFjcHBjL2Rldi9ha2JkdmFyLmg+CiNpbmNsdWRlIDxtYWNwcGMv
ZGV2L2FkYnZhci5oPgoKI2RlZmluZSBBREJfQlJUX0lEIDMxCgoKLyogICAgICAkT3BlbkJTRDog
b2Z3X21hY2hkZXAuaCx2IDEuMyAyMDAzLzA2LzAyIDE2OjE2OjI3IG1pb2QgRXhwICQgICAgKi8K
LyoKICogRm9yIHNvbWUgcmVhc29uLCBzZXR0aW5nIHRoZSBicmlnaHRuZXNzIHVuZGVyIDB4Mjkg
ZnJvbSBPRiBzd2l0Y2hlcyB0aGUKICogYmFja2xpZ2h0IG9mZiwgYW5kIGl0IHdvbid0IGJlIHN3
aXRjaGVkIG9uIGFnYWluIHVudGlsIHlvdSBzZXQgdGhlCiAqIGJyaWdodG5lc3MgYWJvdmUgMHgz
My4gIEFsbCBoYWlsIGh5c3RlcmVzaXMhIC0tIG1pb2QKICovCgojZGVmaW5lIE1JTl9CUklHSFRO
RVNTICAgICAgICAgIDB4MzQKI2RlZmluZSBNQVhfQlJJR0hUTkVTUyAgICAgICAgICAweGZmCiNk
ZWZpbmUgU1RFUF9CUklHSFRORVNTICAgICAgICAgOAojZGVmaW5lIERFRkFVTFRfQlJJR0hUTkVT
UyAgICAgIDB4ODAKCgovKgkkTmV0QlNEOiBhYnRuLmMsdiAxLjExIDIwMDUvMTIvMTEgMTI6MTg6
MDMgY2hyaXN0b3MgRXhwICQJKi8KCiNkZWZpbmUgQlVUVE9OX0JSSUdIVEVSCTB4MDkKI2RlZmlu
ZSBCVVRUT05fRElNTUVSCTB4MGEKCgpzdHJ1Y3Qgb2ZicnRfc29mdGMgewoJc3RydWN0IGRldmlj
ZSBzY19kZXY7CgoJaW50IHNjX2loOwkJLyogT0ZXIGRldmljZSBoYW5kbGUgKi8KCglpbnQgb3Jp
Z2FkZHI7CQkvKiBBREIgZGV2aWNlIHR5cGUgKi8KCWludCBhZGJhZGRyOwkJLyogY3VycmVudCBB
REIgYWRkcmVzcyAqLwoJaW50IGhhbmRsZXJfaWQ7CgoJaW50IGJyaWdodG5lc3M7CQkvKiBiYWNr
bGlnaHQgYnJpZ2h0bmVzcyAqLwoKfTsKCgpzdGF0aWMgaW50CW9mYnJ0X21hdGNoKHN0cnVjdCBk
ZXZpY2UgKiwgc3RydWN0IGNmZGF0YSAqLCB2b2lkICopOwpzdGF0aWMgdm9pZAlvZmJydF9hdHRh
Y2goc3RydWN0IGRldmljZSAqLCBzdHJ1Y3QgZGV2aWNlICosIHZvaWQgKik7CgpDRkFUVEFDSF9E
RUNMKG9mYnJ0LCBzaXplb2Yoc3RydWN0IG9mYnJ0X3NvZnRjKSwKICAgIG9mYnJ0X21hdGNoLCBv
ZmJydF9hdHRhY2gsIE5VTEwsIE5VTEwpOwoKc3RhdGljIGludAlvZl9oYXNfYnJ0KHZvaWQpOwpz
dGF0aWMgdm9pZAlvZl9zZXRfYnJpZ2h0bmVzcyhpbnQsIGludCk7CnN0YXRpYyBpbnQJb2ZfZ2V0
X2JyaWdodG5lc3MoaW50KTsKCnN0YXRpYyB2b2lkIG9mYnJ0X2FkYmNvbXBsZXRlKGNhZGRyX3Qs
IGNhZGRyX3QsIGludCk7CgoKc3RhdGljIGludApvZmJydF9tYXRjaChzdHJ1Y3QgZGV2aWNlICpw
YXJlbnQsIHN0cnVjdCBjZmRhdGEgKm1hdGNoLCB2b2lkICphdXgpCnsKCXN0cnVjdCBhZGJfYXR0
YWNoX2FyZ3MgKmFhID0gYXV4OwoKCS8qIElmIHdlJ3JlIHRoZSByaWdodCBkcml2ZXIsIGFuZCB0
aGUgbWFjaGluZSBoYXMgT0ZXIHN1cHBvcnQKCSAqIGZvciBicmlnaHRuZXNzIGNvbnRyb2wsIGFu
ZCB0aGUgY29uc29sZSBvdXRwdXQgaXMgb24gdGhlCgkgKiBwYW5lbC4gCgkgKi8KCgoJaWYgKGFh
LT5vcmlnYWRkciA9PSBBREJBRERSX01JU0MgJiYKCSAgICBhYS0+aGFuZGxlcl9pZCA9PSBBREJf
QlJUX0lEICYmCgkgICAgb2ZfaGFzX2JydCgpICYmIG9mYl9pc19jb25zb2xlKCkpCgkJcmV0dXJu
IDE7CgoKCXJldHVybiAwOwp9CgpzdGF0aWMgdm9pZApvZmJydF9hdHRhY2goc3RydWN0IGRldmlj
ZSAqcGFyZW50LCBzdHJ1Y3QgZGV2aWNlICpzZWxmLCB2b2lkICphdXgpCnsKCXN0cnVjdCBvZmJy
dF9zb2Z0YyAqc2MgPQoJCShzdHJ1Y3Qgb2ZicnRfc29mdGMgKilzZWxmOwoJc3RydWN0IGFkYl9h
dHRhY2hfYXJncyAqYWEgPSBhdXg7CglBREJTZXRJbmZvQmxvY2sgYWRiaW5mbzsKCWludCBicmln
aHQ7CgoJaW50IGNob3Nlbiwgc3Rkb3V0OwoKCgoJLyogR2V0IGhhbmRsZSB0byBkaXNwbGF5IGRl
dmljZSBoYW5kbGUgLiAqLwoKCS8qIEhvbWUgYnJld2VkIE9GIG5vZGUgbG9jYXRvciAqLwoJY2hv
c2VuID0gT0ZfZmluZGRldmljZSgiL2Nob3NlbiIpOwoJaWYgKCBjaG9zZW4gPT0gLTEgKQoJCXBy
aW50ZigiQ291bGRuJ3QgZmluZCAvY2hvc2VuIFxuIik7IC8qIFhYWDogcmVwcm9iZQoJCQkJCQkg
ICAgICAgUENJICovCglpZiAoT0ZfZ2V0cHJvcChjaG9zZW4sICJzdGRvdXQiLCAmc3Rkb3V0LCA0
KSA9PSAtMSkKCQlwcmludGYoIiBjb3VsZG4ndCBmaW5kIHByb3BlcnR5IC9jaG9zZW46IHN0ZG91
dCBcbiIpOwoKCQoJc2MtPnNjX2loID0gc3Rkb3V0OwoKCXNjLT5icmlnaHRuZXNzID0gYnJpZ2h0
ID0gb2ZfZ2V0X2JyaWdodG5lc3Moc2MtPnNjX2loKTsKCW9mX3NldF9icmlnaHRuZXNzKHNjLT5z
Y19paCwgYnJpZ2h0KTsKCglzYy0+b3JpZ2FkZHIgPSBhYS0+b3JpZ2FkZHI7CglzYy0+YWRiYWRk
ciA9IGFhLT5hZGJhZGRyOwoJc2MtPmhhbmRsZXJfaWQgPSBhYS0+aGFuZGxlcl9pZDsKCglhZGJp
bmZvLnNpU2VydmljZVJ0UHRyID0gKFB0cilvZmJydF9hZGJjb21wbGV0ZTsKCWFkYmluZm8uc2lE
YXRhQXJlYUFkZHIgPSAoY2FkZHJfdClzYzsKCglTZXRBREJJbmZvKCZhZGJpbmZvLCBzYy0+YWRi
YWRkcik7CglwcmludGYoIk9wZW4gRmlybXdhcmUgYnJpZ2h0bmVzcyBjb250cm9sIFxuIik7Cn0K
CgoKaW50Cm9mX2hhc19icnQoKQp7CglpbnQgb2Zub2RlOwoJY2hhciB0eXBlWzE2XTsKCQoKCS8q
IExvb2sgZm9yIHRoZSBiYWNrbGlnaHQgbm9kZSAqLwoKCW9mbm9kZSA9IGdldG5vZGVieW5hbWUo
MCwgImJhY2tsaWdodCIpOwoJaWYgKG9mbm9kZSA9PSAtMSkKCQlyZXR1cm4gMDsKCgkvKiBPay4g
VGhpcyBpcyBhIGJpdCBwYXJhbm9pZC4gKi8KCglPRl9nZXRwcm9wKG9mbm9kZSwgImRldmljZV90
eXBlIiwgdHlwZSwgc2l6ZW9mKHR5cGUpKTsKCWlmIChzdHJjbXAodHlwZSwgImJhY2tsaWdodCIp
ID09IDApCgkJcmV0dXJuIDE7CgoJcmV0dXJuIDA7Cgp9Cgp2b2lkCm9mX3NldF9icmlnaHRuZXNz
KGludCBpaGFuZGxlLCBpbnQgYnJpZ2h0bmVzcykKewoJaWYgKGJyaWdodG5lc3MgPCBNSU5fQlJJ
R0hUTkVTUykKCQlicmlnaHRuZXNzID0gTUlOX0JSSUdIVE5FU1M7CgllbHNlIGlmIChicmlnaHRu
ZXNzID4gTUFYX0JSSUdIVE5FU1MpCgkJYnJpZ2h0bmVzcyA9IE1BWF9CUklHSFRORVNTOwoKCS8q
CiAgICAgICAgICogVGhlIE9GIG1ldGhvZCBpcyBjYWxsZWQgInNldC1jb250cmFzdCIgYnV0IGFm
ZmVjdHMgYnJpZ2h0bmVzcy4KCSAqIERvbid0IGFzay4KCSAqLwoKCU9GX2NhbGxfbWV0aG9kXzEo
InNldC1jb250cmFzdCIsIGloYW5kbGUsIDEsIGJyaWdodG5lc3MpOwp9CgppbnQKb2ZfZ2V0X2Jy
aWdodG5lc3MoaW50IGloYW5kbGUpCnsKCXJldHVybiAwOwp9CgpleHRlcm4gc3RydWN0IGNmZHJp
dmVyIGFrYmRfY2Q7CgovKiBhZGIga2V5Ym9hcmQgZHJpdmVyIGhvb2suIFByb2Nlc3MgYnJpZ2h0
bmVzcyBob3RrZXlzLiAqLwoKdm9pZApvZmJydF9hZGJjb21wbGV0ZShidWZmZXIsIGRhdGEsIGFk
Yl9jb21tYW5kKQoJY2FkZHJfdCBidWZmZXIsIGRhdGE7CglpbnQgYWRiX2NvbW1hbmQ7CnsKCXN0
cnVjdCBvZmJydF9zb2Z0YyAqc2MgPSAoc3RydWN0IG9mYnJ0X3NvZnRjICopZGF0YTsKCXVfaW50
IGNtZDsKCgljbWQgPSBidWZmZXJbMV07CgoKCXN3aXRjaCAoY21kKSB7CgljYXNlIEJVVFRPTl9E
SU1NRVI6CgkJc2MtPmJyaWdodG5lc3MgLT0gODsKCQlpZiAoc2MtPmJyaWdodG5lc3MgPCBNSU5f
QlJJR0hUTkVTUykKCQkJc2MtPmJyaWdodG5lc3MgPSBNSU5fQlJJR0hUTkVTUzsKCQlvZl9zZXRf
YnJpZ2h0bmVzcyhzYy0+c2NfaWgsIHNjLT5icmlnaHRuZXNzKTsKCQlwcmludGYoIm9mYnJ0OiBC
VVRUT05fRElNTUVSIHByZXNzZWQgXG4iKTsKCQlicmVhazsKCgljYXNlIEJVVFRPTl9CUklHSFRF
UjoKCQlzYy0+YnJpZ2h0bmVzcyArPSA4OwoJCWlmIChzYy0+YnJpZ2h0bmVzcyA+IE1BWF9CUklH
SFRORVNTKQoJCQlzYy0+YnJpZ2h0bmVzcyA9IE1BWF9CUklHSFRORVNTOwoJCW9mX3NldF9icmln
aHRuZXNzKHNjLT5zY19paCwgc2MtPmJyaWdodG5lc3MpOwoJCXByaW50Zigib2ZicnQ6IEJVVFRP
Tl9CUklHSFRFUiBwcmVzc2VkIFxuIik7CgkJYnJlYWs7CgoKCWRlZmF1bHQ6CgkJYnJlYWs7Cgl9
CgoKCS8qIFBhc3MgdXAgdGhlIGtleXN0cm9rZSBpbiBhbnkgY2FzZS4gKi8KCi8vCWtiZF9wYXNz
dXAoYWtiZF9jZC5jZF9kZXZzWzBdLGNtZCk7Cgp9Cgo=
------=_Part_14144_31040614.1153124601948--