------=_NextPart_000_6bae813c_2049a1dd$28c072a3
Content-Type: text/plain; format=flowed
Hello,
This is an update to my "quick hack of sorts" to the serial driver to
support PnP modem autodetection. It still only detects my serial card
(although others have expressed interest-- I don't know if this will be
accepted, it could be a waste of my time. I don't know. If you want it to
detect your modem, either make a patch or mail me your /proc/isapnp and
/proc/pci files.) but now it has been tested to work in combionation with
built-in serial ports. The device probe order is:
probe -> pci -> isapnp
although I could put up a reasonable argument to change that, it won't do me
any good until I get some feedback from the maintainer... whoever that is.
This patch is actually complete, and it cleans some things up and makes it
easier to tell the difference between PnP/PCI/etc and probed serial boards.
Known problems:
Some comments are misleading
It does not limit the user to 8 PnP boards as advertised.
It only works for my modem (I don't know the generic 'PNP'
class info)
It may have some really blantant stupidities inside
The pnp resource configuration routines actually do figure out about shared
IRQs... I don't know how. But it does seem to work for me. (I'm using it now
with three boards, the modem is on one with the shared IRQ)
Minor limitation: we are adding PnP devices based on an arbitrary order. It
may be smarter to add cards in bus order. (we would have to bypass the find
card routines and whatnot and I didn't feel that that was necessary for
sample code)
Please try this out (don't forget to add your modem to serial.c or mail me
your info...) and let me know. I'd like to roll this (or code like this)
into the "real" serial driver someday, but it probably won't go in in its
present state. (See the limitations, above.) But I would like to know what
needs to be done to get it in in some form.
Later,
Joe Pranevich
______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com
------=_NextPart_000_6bae813c_2049a1dd$28c072a3
Content-Type: application/octet-stream; name="serial.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="serial.patch"
LS0tIGRyaXZlcnMvY2hhci9zZXJpYWwuYy5vbGQJU2F0IFNlcCAgNCAwMDox
OTowMCAxOTk5CisrKyBkcml2ZXJzL2NoYXIvc2VyaWFsLmMJVHVlIFNlcCAg
NyAxOToyMDo0NyAxOTk5CkBAIC0zNyw3ICszNywxMCBAQAogICogIDUvOTk6
IFVwZGF0ZWQgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgWFIxNkM4NTAg
YW5kIFNUMTZDNjU0CiAgKiAgICAgICAgdWFydHMuICBTdHVhcnQgTWFjRG9u
YWxkIDxzdHVhcnRtQGNvbm5lY3R0ZWNoLmNvbT4KICAqCi0gKiAgOC85OTog
R2VuZXJhbGl6ZWQgUENJIHN1cHBvcnQgYWRkZWQuICBUaGVvZG9yZSBUcydv
CisgKiAgOC85OTogR2VuZXJhbGl6ZWQgUENJIHN1cHBvcnQgYWRkZWQuICBU
aGVvZG9yZSBUcydvIAorICoKKyAqICA5Lzk5OiBBZGRlZCB0aGUgYmVnaW5u
aW5ncyBvZiBJU0FQTlAgc3VwcG9ydC4gCisgKiAJSm9lIFByYW5ldmljaCAt
IGpwcmFuZXZpY2hAbGludXh0b2RheS5jb20KICAqIAogICogVGhpcyBtb2R1
bGUgZXhwb3J0cyB0aGUgZm9sbG93aW5nIHJzMjMyIGlvIGZ1bmN0aW9uczoK
ICAqCkBAIC05MSw2ICs5NCwxMCBAQAogI2RlZmluZSBDT05GSUdfU0VSSUFM
X1NIQVJFX0lSUQogI2VuZGlmCiAKKyNpZiAoZGVmaW5lZChDT05GSUdfSVNB
UE5QKSkKKyNkZWZpbmUgRU5BQkxFX1NFUklBTF9JU0FQTlAKKyNlbmRpZgor
CiAvKiBTZXQgb2YgZGVidWdnaW5nIGRlZmluZXMgKi8KIAogI3VuZGVmIFNF
UklBTF9ERUJVR19JTlRSCkBAIC05OCw2ICsxMDUsNyBAQAogI3VuZGVmIFNF
UklBTF9ERUJVR19GTE9XCiAjdW5kZWYgU0VSSUFMX0RFQlVHX1JTX1dBSVRf
VU5USUxfU0VOVAogI3VuZGVmIFNFUklBTF9ERUJVR19QQ0kKKyNkZWZpbmUg
U0VSSUFMX0RFQlVHX0lTQVBOUAogCiAvKiBTYW5pdHkgY2hlY2tzICovCiAK
QEAgLTE4OSw2ICsxOTcsOSBAQAogI2lmZGVmIEVOQUJMRV9TRVJJQUxfUENJ
CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjZW5kaWYKKyNpZmRlZiBFTkFC
TEVfU0VSSUFMX0lTQVBOUAorI2luY2x1ZGUgPGxpbnV4L2lzYXBucC5oPgor
I2VuZGlmCiAKICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAjaW5jbHVkZSA8
YXNtL2lvLmg+CkBAIC0yNzcsNiArMjg4LDEyIEBACiAjZGVmaW5lIFBDSV9C
QVNFX0FERFJFU1MoZGV2LCByKSAoKGRldiktPnJlc291cmNlW3JdLnN0YXJ0
KQogI2VuZGlmCS8qIEVOQUJMRV9TRVJJQUxfUENJICAqLwogCisjaWZkZWYg
RU5BQkxFX1NFUklBTF9JU0FQTlAKKyNkZWZpbmUgTlJfSVNBUE5QX0JPQVJE
Uwk4CitzdGF0aWMgc3RydWN0IGlzYXBucF9ib2FyZF9pbnN0IHNlcmlhbF9p
c2FwbnBfYm9hcmRbTlJfSVNBUE5QX0JPQVJEU107CitzdGF0aWMgaW50IHNl
cmlhbF9pc2FwbnBfYm9hcmRfaWR4ID0gMDsKKyNlbmRpZgkvKiBFTkFCTEVf
U0VSSUFMX0lTQVBOUCAgKi8KKwogc3RhdGljIHN0cnVjdCB0dHlfc3RydWN0
ICpzZXJpYWxfdGFibGVbTlJfUE9SVFNdOwogc3RhdGljIHN0cnVjdCB0ZXJt
aW9zICpzZXJpYWxfdGVybWlvc1tOUl9QT1JUU107CiBzdGF0aWMgc3RydWN0
IHRlcm1pb3MgKnNlcmlhbF90ZXJtaW9zX2xvY2tlZFtOUl9QT1JUU107CkBA
IC0zMTg4LDYgKzMyMDUsMTAgQEAKICNlbmRpZgogI2RlZmluZSBTRVJJQUxf
T1BUCiAjZW5kaWYKKyNpZmRlZiBFTkFCTEVfU0VSSUFMX0lTQVBOUAorCXBy
aW50aygiIFNFUklBTF9JU0FQTlAiKTsKKyNkZWZpbmUgU0VSSUFMX09QVAor
I2VuZGlmCiAjaWZkZWYgU0VSSUFMX09QVAogCXByaW50aygiIGVuYWJsZWRc
biIpOwogI2Vsc2UKQEAgLTM4MzUsNiArMzg1Niw3IEBACiAjZW5kaWYKIAkJ
CXBvcnQgKz0gdWFydF9vZmZzZXQ7CiAJCQlmYWtlX3N0YXRlLmZsYWdzID0g
QVNZTkNfU0tJUF9URVNUIHwgQVNZTkNfU0hBUkVfSVJROworCQkJZmFrZV9z
dGF0ZS5uYW1lID0gZGV2LT5uYW1lOwogCQkJbGluZSA9IHJlZ2lzdGVyX3Nl
cmlhbCgmZmFrZV9zdGF0ZSk7CiAJCQlpZiAobGluZSA8IDApCiAJCQkJYnJl
YWs7CkBAIC0zODUwLDYgKzM4NzIsMTM5IEBACiAKICNlbmRpZiAvKiBFTkFC
TEVfU0VSSUFMX1BDSSAqLwogCisjaWZkZWYgRU5BQkxFX1NFUklBTF9JU0FQ
TlAKKworLyoKKyAqIFRoaXMgaXMgdGhlIGNvbmZpZ3VyYXRpb24gdGFibGUg
Zm9yIGFsbCBvZiB0aGUgaXNhcG5wIHNlcmlhbCBib2FyZHMKKyAqIHdoaWNo
IHdlIHN1cHBvcnQuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgaXNhcG5wX2JvYXJk
IGlzYXBucF9ib2FyZHNbXSA9IHsKKwkvKgorCSAqIFZlbmRvciBJRCwgCURl
dmljZSBJRCwgIEZ1bmN0aW9uIElECisJICovCisJewlJU0FQTlBfVkVORE9S
KCdCJywgJ1InLCAnSScpLAorCQlJU0FQTlBfREVWSUNFKDB4OTQwMCksCisJ
CUlTQVBOUF9GVU5DVElPTigweDk0MDApIH0sCisJewkwLCB9Cit9OworCisv
KgorICogUXVlcnkgaXNhcG5wIGZvciBrbm93biBzZXJpYWwgYm9hcmRzCisg
KiBJZiBmb3VuZCwgYWRkIHRoZW0gdG8gdGhlIGlzYXBucCBkZXZpY2Ugc3Bh
Y2UgaW4gcnNfdGFibGVbXQorICoKKyAqIEFjY2VwdCBhIG1heGltdW0gb2Yg
ZWlnaHQgYm9hcmRzCisgKgorICogV2UgYXJlIGRvaW5nIHRoZSBzY2FuIGJh
c2VkIG9uIHRoZSBvcmRlciBpbiB0aGUgYWJvdmUgdGFibGUgcmF0aGVyCisg
KiB0aGFuIHRoZSBidXMgb3JkZXIuIFdlIG1heSB3YW50IHRvIGNoYW5nZSB0
aGlzIGxhdGVyLgorICovCitzdGF0aWMgdm9pZCBwcm9iZV9zZXJpYWxfaXNh
cG5wKHZvaWQpIAoreworCWludCBsaW5lLCBpdGVyID0gMDsKKwlzdHJ1Y3Qg
cGNpX2J1cyAqY2FyZCA9IE5VTEw7CisJc3RydWN0IHBjaV9kZXYgKmRldiA9
IE5VTEw7CisJc3RydWN0IHNlcmlhbF9zdHJ1Y3QgZmFrZV9zdGF0ZTsKKwlp
bnQgdWFydF9vZmZzZXQsIGJhc2VfYmF1ZDsKKwl1bnNpZ25lZCBsb25nIHBv
cnQ7CisKKyNpZmRlZiBTRVJJQUxfREVCVUdfSVNBUE5QCisJcHJpbnRrKEtF
Uk5fREVCVUcgIkVudGVyZWQgcHJvYmVfc2VyaWFsX2lzYXBucCgpXG4iKTsK
KyNlbmRpZgorICAKKwlpZiAoIWlzYXBucF9wcmVzZW50KCkpIHsKKyNpZmRl
ZiBTRVJJQUxfREVCVUdfSVNBUE5QCisJCXByaW50ayhLRVJOX0RFQlVHICJM
ZWF2aW5nIHByb2JlX3NlcmlhbF9pc2FwbnAoKSAobm8gaXNhcG5wKVxuIik7
CisjZW5kaWYKKwkJcmV0dXJuOworCX0KKworICAgICAgICB3aGlsZSAoaXNh
cG5wX2JvYXJkc1tpdGVyXS52ZW5kb3IpCisJeworCQljYXJkID0gaXNhcG5w
X2ZpbmRfY2FyZChpc2FwbnBfYm9hcmRzW2l0ZXJdLnZlbmRvciwKKwkJCQlp
c2FwbnBfYm9hcmRzW2l0ZXJdLmRldmljZSwgTlVMTCk7CisJCQorCQlpZiAo
IWNhcmQpIC8qIE5vdCBmb3VuZCAqLworCQl7CisJCQlpdGVyKys7CisJCQlj
b250aW51ZTsKKwkJfQorCQorCQlkZXYgPSBpc2FwbnBfZmluZF9kZXYoY2Fy
ZCwgaXNhcG5wX2JvYXJkc1tpdGVyXS52ZW5kb3IsCisJCQkJaXNhcG5wX2Jv
YXJkc1tpdGVyXS5mdW5jdGlvbiwgTlVMTCk7CisKKwkJaWYgKCFkZXYpIC8q
IFVua25vd24gc3ViZGV2aWNlICovCisJCXsKKwkJCWl0ZXIrKzsKKwkJCWNv
bnRpbnVlOworCQl9CisKKwkJaWYgKGRldi0+cHJlcGFyZShkZXYpIDwgMCkK
KwkJeworCQkJLyogRGV2aWNlIGlzIGJ1c3kgLS0gaWdub3JlICovCisJCQlp
dGVyKys7CisJCQljb250aW51ZTsKKwkJfQorCisJCXByaW50ayhLRVJOX0RF
QlVHICJQblAgU2VyaWFsIEJvYXJkOiAlcyAlc1xuIiwgY2FyZC0+bmFtZSwK
KwkJCWRldi0+bmFtZSk7CisKKwkJaWYgKGRldi0+YWN0aXZhdGUoZGV2KSA8
IDApCisJCXsKKwkJCS8qIENhbid0IGNvbmZpZ3VyZSBkZXZpY2UuLi4gKi8K
KwkJCS8qIFRoZSBrZXJuZWwgY29uZmlnIHN5c3RlbSBtaWdodCBub3QKKwkJ
CSAgIHJlYWxpemUgdGhhdCB3ZSBjYW4gc2hhcmUgSVJRcywgd2Ugc2hvdWxk
CisJCQkgICBzY2FuIHRoZSBpc2FwbnAgYnVzIG91cnNlbHZlcyB0byBmaWd1
cmUgb3V0CisJCQkgICBpZiB3ZSBjYW4gY29uZmlndXJlIHRoaXMgYm9hcmQg
c29tZSBvdGhlciB3YXkuCisJCQkqLworCQkJcHJpbnRrKEtFUk5fREVCVUcg
IkZhaWxlZCB0byBjb25maWd1cmUgZGV2aWNlIVxuIik7CisJCQlpdGVyKys7
CisJCQljb250aW51ZTsKKwkJfQorCisJCS8qCisJCSAqIFJlZ2lzdGVyIHRo
ZSBzZXJpYWwgYm9hcmQgaW4gdGhlIGFycmF5IHNvIHdlIGNhbgorCQkgKiBz
aHV0ZG93biB0aGUgYm9hcmQgbGF0ZXIsIGlmIG5lY2Vzc2FyeS4KKwkJICov
CisJCXNlcmlhbF9pc2FwbnBfYm9hcmRbc2VyaWFsX2lzYXBucF9ib2FyZF9p
ZHhdLmJvYXJkID0gCisJCQkmaXNhcG5wX2JvYXJkc1tpdGVyXTsKKwkJc2Vy
aWFsX2lzYXBucF9ib2FyZFtzZXJpYWxfaXNhcG5wX2JvYXJkX2lkeF0uZGV2
ID0gZGV2OworCQlzZXJpYWxfaXNhcG5wX2JvYXJkX2lkeCsrOworCisJCS8q
CisJCSAqIFNldCBzb21lIGRlZmF1bHRzIGZvciB0aGUgbG9vcCBiZWxvdywg
d2hpY2ggCisJCSAqIGFjdHVhbGx5IHJlZ2lzdGVycyBlYWNoIHNlcmlhbCBw
b3J0IGJlbG9uZ2luZyB0bworCQkgKiB0aGUgY2FyZC4KKwkJICovCisJCXVh
cnRfb2Zmc2V0ID0gODsKKwkJYmFzZV9iYXVkID0gQkFTRV9CQVVEOworCisJ
CW1lbXNldCgmZmFrZV9zdGF0ZSwgMCwgc2l6ZW9mKGZha2Vfc3RhdGUpKTsK
KwkJICAgICAgIAorCQlmYWtlX3N0YXRlLmlycSA9IGRldi0+aXJxX3Jlc291
cmNlWzBdLnN0YXJ0OworCQlmYWtlX3N0YXRlLnBvcnQgPSBkZXYtPnJlc291
cmNlWzBdLnN0YXJ0OworCQlwb3J0ICs9IHVhcnRfb2Zmc2V0OworCQlmYWtl
X3N0YXRlLmZsYWdzID0gQVNZTkNfU0tJUF9URVNUIHwgQVNZTkNfU0hBUkVf
SVJROworCisJCWlmICgqZGV2LT5uYW1lKQorCQkJZmFrZV9zdGF0ZS5uYW1l
ID0gZGV2LT5uYW1lOworCQllbHNlCisJCQlmYWtlX3N0YXRlLm5hbWUgPSBj
YXJkLT5uYW1lOworCisJCWxpbmUgPSByZWdpc3Rlcl9zZXJpYWwoJmZha2Vf
c3RhdGUpOworCisJCWlmIChsaW5lIDwgMCkKKwkJeworCQkJcHJpbnRrKEtF
Uk5fREVCVUcgIkZhaWxlZCB0byByZWdpc3RlciBpc2FwbnAiIAorCQkJCSJz
ZXJpYWwgY2FyZC5cbiIpOworCQkJaXRlcisrOworCQkJY29udGludWU7CisJ
CX0KKwkJcnNfdGFibGVbbGluZV0uYmF1ZF9iYXNlID0gYmFzZV9iYXVkOwor
CQlpdGVyKys7CisJfQorfQorCisjZW5kaWYgLyogRU5BQkxFX1NFUklBTF9J
U0FQTlAgKi8KKwogLyoKICAqIFRoZSBzZXJpYWwgZHJpdmVyIGJvb3QtdGlt
ZSBpbml0aWFsaXphdGlvbiBjb2RlIQogICovCkBAIC0zOTkzLDYgKzQxNDgs
OSBAQAogI2lmZGVmIEVOQUJMRV9TRVJJQUxfUENJCiAJcHJvYmVfc2VyaWFs
X3BjaSgpOwogI2VuZGlmCisjaWZkZWYgRU5BQkxFX1NFUklBTF9JU0FQTlAK
Kwlwcm9iZV9zZXJpYWxfaXNhcG5wKCk7CisjZW5kaWYKIAlyZXR1cm4gMDsK
IH0KIApAQCAtNDA0OSw4ICs0MjA3LDkgQEAKIAlpZiAoKHN0YXRlLT5mbGFn
cyAmIEFTWU5DX0FVVE9fSVJRKSAmJiBDT05GSUdVUkVEX1NFUklBTF9QT1JU
KHN0YXRlKSkKIAkJc3RhdGUtPmlycSA9IGRldGVjdF91YXJ0X2lycShzdGF0
ZSk7CiAKLSAgICAgICBwcmludGsoS0VSTl9JTkZPICJ0dHlTJTAyZCBhdCAl
cyAweCUwNGx4IChpcnEgPSAlZCkgaXMgYSAlc1xuIiwKKyAgICAgICBwcmlu
dGsoS0VSTl9JTkZPICJ0dHlTJTAyZCAoJXMpIGF0ICVzIDB4JTA0bHggKGly
cSA9ICVkKSBpcyBhICVzXG4iLAogCSAgICAgIHN0YXRlLT5saW5lICsgU0VS
SUFMX0RFVl9PRkZTRVQsCisJICAgICAgcmVxLT5uYW1lID8gcmVxLT5uYW1l
IDogInByb2JlZCIsCiAJICAgICAgc3RhdGUtPmlvbWVtX2Jhc2UgPyAiaW9t
ZW0iIDogInBvcnQiLAogCSAgICAgIHN0YXRlLT5pb21lbV9iYXNlID8gKHVu
c2lnbmVkIGxvbmcpc3RhdGUtPmlvbWVtX2Jhc2UgOgogCSAgICAgICh1bnNp
Z25lZCBsb25nKXN0YXRlLT5wb3J0LApAQCAtNDA2OCw3ICs0MjI3LDggQEAK
IAlpZiAoc3RhdGUtPmluZm8gJiYgc3RhdGUtPmluZm8tPnR0eSkKIAkJdHR5
X2hhbmd1cChzdGF0ZS0+aW5mby0+dHR5KTsKIAlzdGF0ZS0+dHlwZSA9IFBP
UlRfVU5LTk9XTjsKLQlwcmludGsoS0VSTl9JTkZPICJ0dHklMDJkIHVubG9h
ZGVkXG4iLCBzdGF0ZS0+bGluZSk7CisJcHJpbnRrKEtFUk5fSU5GTyAidHR5
JTAyZCB1bmxvYWRlZFxuIiwKKyAJCXN0YXRlLT5saW5lKTsKIAlyZXN0b3Jl
X2ZsYWdzKGZsYWdzKTsKIH0KIApAQCAtNDExMyw2ICs0MjczLDEzIEBACiAJ
CQogCQlpZiAoYnJkLT5ib2FyZC0+aW5pdF9mbikKIAkJCShicmQtPmJvYXJk
LT5pbml0X2ZuKShicmQtPmRldiwgYnJkLT5ib2FyZCwgMCk7CisJfQorI2Vu
ZGlmCQorI2lmZGVmIEVOQUJMRV9TRVJJQUxfSVNBUE5QCisJZm9yIChpPTA7
IGkgPCBzZXJpYWxfaXNhcG5wX2JvYXJkX2lkeDsgaSsrKSB7CisJCXN0cnVj
dCBpc2FwbnBfYm9hcmRfaW5zdCAqYnJkID0gJnNlcmlhbF9pc2FwbnBfYm9h
cmRbaV07CisJCQorCQlicmQtPmJvYXJkLT5kZWFjdGl2YXRlKGJvYXJkKTsK
IAl9CiAjZW5kaWYJCiAJaWYgKHRtcF9idWYpIHsKLS0tIGluY2x1ZGUvbGlu
dXgvc2VyaWFsLmgub2xkCVR1ZSBTZXAgIDcgMTk6NDQ6NDUgMTk5OQorKysg
aW5jbHVkZS9saW51eC9zZXJpYWwuaAlUdWUgU2VwICA3IDE5OjM5OjA3IDE5
OTkKQEAgLTI3LDYgKzI3LDcgQEAKIAl1bnNpZ25lZCBjaGFyCSppb21lbV9i
YXNlOwogCXVuc2lnbmVkIHNob3J0CWlvbWVtX3JlZ19zaGlmdDsKIAlpbnQJ
cmVzZXJ2ZWRbMl07CisJY2hhcgkqbmFtZTsKIH07CiAKIC8qCi0tLSBpbmNs
dWRlL2xpbnV4L3NlcmlhbFAuaC5vbGQJVHVlIFNlcCAgNyAxOTo0NTo0NCAx
OTk5CisrKyBpbmNsdWRlL2xpbnV4L3NlcmlhbFAuaAlUdWUgU2VwICA3IDE5
OjM5OjE0IDE5OTkKQEAgLTE2Nyw2ICsxNjcsMTkgQEAKIAlzdHJ1Y3QgcGNp
X2JvYXJkCSpib2FyZDsKIAlzdHJ1Y3QgcGNpX2RldgkJKmRldjsKIH07Cisv
KgorICogU3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMgZm9yIGlzYXBucCBz
dXBwb3J0CisgKi8KK3N0cnVjdCBpc2FwbnBfYm9hcmQgeworCXVuc2lnbmVk
IHNob3J0IHZlbmRvcjsKKwl1bnNpZ25lZCBzaG9ydCBkZXZpY2U7CisJdW5z
aWduZWQgc2hvcnQgZnVuY3Rpb247Cit9OworCitzdHJ1Y3QgaXNhcG5wX2Jv
YXJkX2luc3QgeworCXN0cnVjdCBpc2FwbnBfYm9hcmQJKmJvYXJkOworCXN0
cnVjdCBwY2lfZGV2CQkqZGV2OworfTsKIAogI2lmbmRlZiBQQ0lfQU5ZX0lE
CiAjZGVmaW5lIFBDSV9BTllfSUQgKH4wKQo=
------=_NextPart_000_6bae813c_2049a1dd$28c072a3--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/