Date: Mon, 24 Jun 2002 14:59:21 +0200 From: Willem van Engen <wvengen@stack.nl> To: freebsd-hackers@freebsd.org Subject: smbalert# hook for smbus childs Message-ID: <20020624145921.463108fc.wvengen@stack.nl>
next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --Multipart_Mon__24_Jun_2002_14:59:21_+0200_0843ac00 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hello, there already is some code for smbalert# handling on intpm (ENABLE_ALART), but there is no support for handling it in a driver. O2 AudioDJ (OZ162) chips use this signal to indicate that a button was pressed. So I need a way for a driver to be notified when smbalert# occurs. Of course I thought immediately about bus_(setup|teardown)_intr. I wrote something like that for smbus: bus_(setup|teardown)_alart (see patch), that works now. But is this The Right Way to do it? I do have some thoughts on it, but maybe someone more knowledgeable than me could comment on it. It might be better to use bus_*_intr instead of bus_*_alart, but one would need to bus_alloc_resource a slave address and pass that to bus_setup_intr. But then it makes sense to use those slave address resources to send smbus commands, right? But how would that fit into the bus_space_* functions? - Willem p.s. I hope I'm clear, english isn't my native language. --Multipart_Mon__24_Jun_2002_14:59:21_+0200_0843ac00 Content-Type: text/plain; name="smbus_alart.diff" Content-Disposition: attachment; filename="smbus_alart.diff" Content-Transfer-Encoding: base64 LS0tIHN5cy9kZXYvc21idXMvc21iY29uZi5jLm9yaWcJTW9uIEp1biAyNCAwMjozNjoyNSAyMDAy CisrKyBzeXMvZGV2L3NtYnVzL3NtYmNvbmYuYwlNb24gSnVuIDI0IDExOjAwOjExIDIwMDIKQEAg LTI4LDYgKzI4LDkgQEAKICAqLwogI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogI2luY2x1ZGUgPHN5 cy9zeXN0bS5oPgorI2luY2x1ZGUgPHN5cy9tYWxsb2MuaD4KKyNpbmNsdWRlIDxzeXMva2VybmVs Lmg+CisjaW5jbHVkZSA8c3lzL2t0aHJlYWQuaD4KICNpbmNsdWRlIDxzeXMvbW9kdWxlLmg+CiAj aW5jbHVkZSA8c3lzL2J1cy5oPgogCkBAIC0zNSw2ICszOCwxMiBAQAogI2luY2x1ZGUgPGRldi9z bWJ1cy9zbWJ1cy5oPgogI2luY2x1ZGUgInNtYnVzX2lmLmgiCiAKKyNpZmRlZiBFTkFCTEVfQUxB UlQKKy8qIExpc3QgZm9yIGFsYXJ0IGhvb2tzIHBlciBzbGF2ZSAqLworZXh0ZXJuIFNMSVNUX0hF QUQoYWxhcnRob29rX2hlYWQsIGFsYXJ0aG9va19lbnRyeSkgYWxhcnRob29rczsKKyNlbmRpZgor CisKIC8qCiAgKiBzbWJ1c19pbnRyKCkKICAqLwpAQCAtMTc0LDMgKzE4Myw3MCBAQAogCiAJcmV0 dXJuICgwKTsKIH0KKworI2lmZGVmIEVOQUJMRV9BTEFSVAorCitNQUxMT0NfREVGSU5FKE1fU01C VVNfQUxBUlQsICJzbWJ1c2FsYXJ0IiwgIlNNQnVzIGFsYXJ0IGhvb2sgbGlzdCIpOworCisvKgor ICogc21idXNfc2V0dXBfYWxhcnQoKQorICovCitpbnQKK3NtYnVzX3NldHVwX2FsYXJ0KGRldmlj ZV90IGRldiwgdV9jaGFyIHNsYXZlLCBpbnQgZmxhZ3MsCisJCQlkcml2ZXJfaW50cl90ICpoYW5k bGVyLCB2b2lkICphcmcpCit7CisJc3RydWN0IGFsYXJ0aG9va19lbnRyeSAqZW50cnk7CisKKwkv KiBDaGVjayBpZiBzYW1lIGhvb2sgYWxyZWFkeSBleGlzdHMgKi8KKwlTTElTVF9GT1JFQUNIKGVu dHJ5LCAmYWxhcnRob29rcywgZW50cmllcykKKwkJaWYgKGVudHJ5LT5kZXYgPT0gZGV2ICYmIGVu dHJ5LT5zbGF2ZSA9PSBzbGF2ZSkKKwkJCXJldHVybiAoRUFERFJJTlVTRSk7CisKKwkvKiBBZGQg dGhpcyBvbmUgdG8gdGhlIGxpc3QgKi8KKwlNQUxMT0MoZW50cnksIHN0cnVjdCBhbGFydGhvb2tf ZW50cnkqLAorCQlzaXplb2Yoc3RydWN0IGFsYXJ0aG9va19lbnRyeSksIE1fU01CVVNfQUxBUlQs IE1fV0FJVE9LKTsKKwllbnRyeS0+ZGV2PWRldjsKKwllbnRyeS0+c2xhdmU9c2xhdmU7CisJZW50 cnktPmhhbmRsZXI9aGFuZGxlcjsKKwllbnRyeS0+YXJnPWFyZzsKKwlTTElTVF9JTlNFUlRfSEVB RCgmYWxhcnRob29rcywgZW50cnksIGVudHJpZXMpOworCQorCXJldHVybiAoMCk7Cit9CisKKy8q CisgKiBzbWJ1c190ZWFyZG93bl9hbGFydCgpCisgKi8KK2ludAorc21idXNfdGVhcmRvd25fYWxh cnQoZGV2aWNlX3QgZGV2LCB1X2NoYXIgc2xhdmUpIHsKKwlzdHJ1Y3QgYWxhcnRob29rX2VudHJ5 ICpjdXJlbnRyeSwgKmZvdW5kZW50cnk9TlVMTDsKKworCVNMSVNUX0ZPUkVBQ0goY3VyZW50cnks ICZhbGFydGhvb2tzLCBlbnRyaWVzKQorCQlpZiAoY3VyZW50cnktPmRldiA9PSBkZXYgJiYgY3Vy ZW50cnktPnNsYXZlID09IHNsYXZlKQorCQkJZm91bmRlbnRyeT1jdXJlbnRyeTsKKworCWlmICgh Zm91bmRlbnRyeSkKKwkJcmV0dXJuIChFTlhJTyk7CisKKwlTTElTVF9SRU1PVkUoJmFsYXJ0aG9v a3MsIGZvdW5kZW50cnksIGFsYXJ0aG9va19lbnRyeSwgZW50cmllcyk7CisJRlJFRShmb3VuZGVu dHJ5LE1fU01CVVNfQUxBUlQpOworCisJcmV0dXJuICgwKTsKK30KKworLyoKKyAqIHNtYnVzX2Fs YXJ0X2ludHIoKQorICovCit2b2lkCitzbWJ1c19hbGFydF9pbnRyKGRldmljZV90IGRldiwgdV9j aGFyIGRldmFkZHIpCit7CisJc3RydWN0IGFsYXJ0aG9va19lbnRyeSAqZW50cnk7CisKKwkvKiBD YWxsIGVhY2ggY2hpbGRmdW5jdGlvbiB3aXRoIG1hdGNoaW5nIHNsYXZlIGFkZHJlc3MgKi8KKwlT TElTVF9GT1JFQUNIKGVudHJ5LCAmYWxhcnRob29rcywgZW50cmllcykKKwkJaWYgKGVudHJ5LT5z bGF2ZT09ZGV2YWRkciAmJiBlbnRyeS0+aGFuZGxlcikKKwkJCWVudHJ5LT5oYW5kbGVyKGVudHJ5 LT5hcmcpOworCisJcmV0dXJuOworfQorI2VuZGlmIC8qIEVOQUJMRV9BTEFSVCAqLwotLS0gc3lz L2Rldi9zbWJ1cy9zbWJjb25mLmgub3JpZwlNb24gSnVuIDI0IDAyOjM3OjMyIDIwMDIKKysrIHN5 cy9kZXYvc21idXMvc21iY29uZi5oCU1vbiBKdW4gMjQgMDM6NDM6NTggMjAwMgpAQCAtODAsNiAr ODAsMTIgQEAKIAogZXh0ZXJuIHVfY2hhciBzbWJ1c19nZXRfYWRkcihkZXZpY2VfdCk7CiAKKyNp ZmRlZiBFTkFCTEVfQUxBUlQKK2V4dGVybiBpbnQgc21idXNfc2V0dXBfYWxhcnQoZGV2aWNlX3Qs IHVfY2hhciwgaW50LCBkcml2ZXJfaW50cl90Kiwgdm9pZCopOworZXh0ZXJuIGludCBzbWJ1c190 ZWFyZG93bl9hbGFydChkZXZpY2VfdCwgdV9jaGFyKTsKK2V4dGVybiB2b2lkIHNtYnVzX2FsYXJ0 X2ludHIoZGV2aWNlX3QsIHVfY2hhcik7CisjZW5kaWYKKwogI2RlZmluZSBzbWJ1c19xdWljayhi dXMsc2xhdmUsaG93KSBcCiAJKFNNQlVTX1FVSUNLKGRldmljZV9nZXRfcGFyZW50KGJ1cyksIHNs YXZlLCBob3cpKQogI2RlZmluZSBzbWJ1c19zZW5kYihidXMsc2xhdmUsYnl0ZSkgXAotLS0gc3lz L2Rldi9zbWJ1cy9zbWJ1cy5jLm9yaWcJTW9uIEp1biAyNCAwMjoxNzo1NSAyMDAyCisrKyBzeXMv ZGV2L3NtYnVzL3NtYnVzLmMJTW9uIEp1biAyNCAxMzoxMzozMyAyMDAyCkBAIC0zMSw2ICszMSw3 IEBACiAjaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgogI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4KICNp bmNsdWRlIDxzeXMvYnVzLmg+IAorI2luY2x1ZGUgPHN5cy9tYWxsb2MuaD4KIAogI2luY2x1ZGUg PGRldi9zbWJ1cy9zbWJjb25mLmg+CiAjaW5jbHVkZSA8ZGV2L3NtYnVzL3NtYnVzLmg+CkBAIC00 OCwxMyArNDksMTQgQEAKICAqLwogc3RhdGljIGludCBzbWJ1c19wcm9iZShkZXZpY2VfdCk7CiBz dGF0aWMgaW50IHNtYnVzX2F0dGFjaChkZXZpY2VfdCk7CitzdGF0aWMgaW50IHNtYnVzX2RldGFj aChkZXZpY2VfdCk7CiBzdGF0aWMgaW50IHNtYnVzX2FkZF9jaGlsZChkZXZpY2VfdCBkZXYsIGlu dCBvcmRlciwgY29uc3QgY2hhciAqbmFtZSwgaW50IHVuaXQpOwogCiBzdGF0aWMgZGV2aWNlX21l dGhvZF90IHNtYnVzX21ldGhvZHNbXSA9IHsKICAgICAgICAgLyogZGV2aWNlIGludGVyZmFjZSAq LwogICAgICAgICBERVZNRVRIT0QoZGV2aWNlX3Byb2JlLCAgICAgICAgIHNtYnVzX3Byb2JlKSwK ICAgICAgICAgREVWTUVUSE9EKGRldmljZV9hdHRhY2gsICAgICAgICBzbWJ1c19hdHRhY2gpLAot ICAgICAgICBERVZNRVRIT0QoZGV2aWNlX2RldGFjaCwgICAgICAgIGJ1c19nZW5lcmljX2RldGFj aCksCisgICAgICAgIERFVk1FVEhPRChkZXZpY2VfZGV0YWNoLCAgICAgICAgc21idXNfZGV0YWNo KSwKIAogICAgICAgICAvKiBidXMgaW50ZXJmYWNlICovCiAgICAgICAgIERFVk1FVEhPRChidXNf YWRkX2NoaWxkLAlzbWJ1c19hZGRfY2hpbGQpLApAQCAtNjksNiArNzEsMTIgQEAKICAgICAgICAg c2l6ZW9mKHN0cnVjdCBzbWJ1c19zb2Z0YyksCiB9OwogCisjaWZkZWYgRU5BQkxFX0FMQVJUCisv KiBMaXN0IGZvciBhbGFydCBob29rcyBwZXIgc2xhdmUgKi8KK1NMSVNUX0hFQUQoYWxhcnRob29r X2hlYWQsIGFsYXJ0aG9va19lbnRyeSkgYWxhcnRob29rcyA9CisJU0xJU1RfSEVBRF9JTklUSUFM SVpFUihhbGFydGhvb2tzKTsKKyNlbmRpZgorCiAvKgogICogQXQgJ3Byb2JlJyB0aW1lLCB3ZSBh ZGQgYWxsIHRoZSBkZXZpY2VzIHdoaWNoIHdlIGtub3cgYWJvdXQgdG8gdGhlCiAgKiBidXMuICBU aGUgZ2VuZXJpYyBhdHRhY2ggcm91dGluZSB3aWxsIHByb2JlIGFuZCBhdHRhY2ggdGhlbSBpZiB0 aGV5CkBAIC04Nyw4ICs5NSwzMCBAQAogewogCWRldmljZV9hZGRfY2hpbGQoZGV2LCBOVUxMLCAt MSk7CiAJYnVzX2dlbmVyaWNfYXR0YWNoKGRldik7CisKKyNpZmRlZiBFTkFCTEVfQUxBUlQKKwkv KiBJbml0IGxpc3QgZm9yIGFsYXJ0IGhvb2tzICovCisJU0xJU1RfSU5JVCgmYWxhcnRob29rcyk7 CisjZW5kaWYKICAgICAgICAgIAogICAgICAgICByZXR1cm4gKDApOworfQorCitzdGF0aWMgaW50 CitzbWJ1c19kZXRhY2goZGV2aWNlX3QgZGV2KQoreworI2lmZGVmIEVOQUJMRV9BTEFSVAorCXN0 cnVjdCBhbGFydGhvb2tfZW50cnkgKmVudHJ5OworCisJLyogUmVtb3ZlIGFsYXJ0IGhvb2sgbGlz dCAqLworCXdoaWxlICghU0xJU1RfRU1QVFkoJmFsYXJ0aG9va3MpKSB7CisJCWVudHJ5ID0gU0xJ U1RfRklSU1QoJmFsYXJ0aG9va3MpOworCQlTTElTVF9SRU1PVkVfSEVBRCgmYWxhcnRob29rcywg ZW50cmllcyk7CisJCUZSRUUoZW50cnksIE1fU01CVVNfQUxBUlQpOworCX0KKyNlbmRpZgorCisJ cmV0dXJuIGJ1c19nZW5lcmljX2RldGFjaChkZXYpOwogfQogCiBzdGF0aWMgaW50Ci0tLSBzeXMv ZGV2L3NtYnVzL3NtYnVzLmgub3JpZwlNb24gSnVuIDI0IDAyOjE3OjMyIDIwMDIKKysrIHN5cy9k ZXYvc21idXMvc21idXMuaAlNb24gSnVuIDI0IDEwOjQ0OjUyIDIwMDIKQEAgLTM4LDQgKzM4LDE2 IEBACiAKIGV4dGVybiB2b2lkIHNtYnVzX2dlbmVyaWNfaW50cihkZXZpY2VfdCBkZXYsIHVfY2hh ciBkZXZhZGRyLCBjaGFyIGxvdywgY2hhciBoaWdoKTsKIAorI2lmZGVmIEVOQUJMRV9BTEFSVAor c3RydWN0IGFsYXJ0aG9va19lbnRyeSB7CisJZGV2aWNlX3QgZGV2OworCXVfY2hhciBzbGF2ZTsK Kwlkcml2ZXJfaW50cl90ICpoYW5kbGVyOworCXZvaWQgKmFyZzsKKwlTTElTVF9FTlRSWShhbGFy dGhvb2tfZW50cnkpIGVudHJpZXM7Cit9OworCitNQUxMT0NfREVDTEFSRShNX1NNQlVTX0FMQVJU KTsKKyNlbmRpZiAvKiBFTkFCTEVfQUxBUlQgKi8KKwogI2VuZGlmCi0tLSBzeXMvcGNpL2ludHBt LmMub3JpZwlTYXQgSnVuIDIyIDE2OjA0OjE2IDIwMDIKKysrIHN5cy9wY2kvaW50cG0uYwlNb24g SnVuIDI0IDAyOjQ2OjE5IDIwMDIKQEAgLTI5NywxMCArMjk3LDE1IEBACiAJCQl1X2ludDhfdCBh ZGRyOwogCQkJYWRkcj1idXNfc3BhY2VfcmVhZF8xKHNjLT5zdCxzYy0+c2gsCiAJCQkJCSAgICAg IFBJSVg0X1NNQkhTVERBVDApOworI2lmZGVmIEVOQUJMRV9BTEFSVF9WRVJCT1NFCiAJCQlwcmlu dGYoIkFMQVJUX1JFU1BPTlNFOiAweCV4XG4iLCBhZGRyKTsKKyNlbmRpZgorCQkJc21idXNfYWxh cnRfaW50cihkZXYsIGFkZHIpOwogCQl9CiAJfWVsc2V7CisjaWZkZWYgRU5BQkxFX0FMQVJUX1ZF UkJPU0UKIAkgICAgICAgIHByaW50ZigiRVJST1JcbiIpOworI2VuZGlmCiAJfQogCiAJLypSZS1l bmFibGUgSU5UUiBmcm9tIEFMQVJUKi8K --Multipart_Mon__24_Jun_2002_14:59:21_+0200_0843ac00-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020624145921.463108fc.wvengen>