PATCH: PnP detection in serial.c

Joe Pranevich (blue_kniggit@hotmail.com)
Mon, 06 Sep 1999 23:55:43 EDT


This is a multi-part message in MIME format.

------=_NextPart_000_72fa60fc_52045f2e$4fa92f4f
Content-Type: text/plain; format=flowed

Hello,

Apologies for using this address. My normal one is on a different computer
and I seem to have forgotten my password. Responses here are okay though.
(But cc: jpranevich@linuxtoday.com)

I have written a quick hack of sorts to the serial driver (serial.c) to
support autodetection of PnP boards. I have tested it on my mnachine, in
fact I'm using it now. It only detects my card at present, we would need to
build a list of supported devices. (I believe that there is a generic "PNP"
device classes for modems, but not all seem to adhere to it -- mine
doesn't.) At present, I've only tested it in a machine where all serial
devices were PnP. I expect it to function properly elsewhere however.

Major limitation: we're using the PnP configuration routines exclusively.
That means that it doesn't know about IRQ sharing... maybe a major
limitation to some people.

Minor limitation: we are adding 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)

In any case, here's the beginnings of something against 2.3.16's serial.c.
I'm going to defer to the maintainer (Theodore Ts'o?) but since I'm not
positive who that is, this is going to a wider than intended audience. If I
am asked (by the maintainer or someone else, or maybe even if I feel bored),
I would be more than happy to add the autoconfiguration support and support
for more modems later.

Of course, since I haven't been able to read my mail in most of a week,
someone might have added this support already. Oh well. :)

Later,

Joe Pranevich

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com
------=_NextPart_000_72fa60fc_52045f2e$4fa92f4f
Content-Type: application/octet-stream; name="serial.pnp.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="serial.pnp.patch"

LS0tIHNlcmlhbC5jLm9sZAlTYXQgU2VwICA0IDAwOjE5OjAwIDE5OTkKKysr
IHNlcmlhbC5jCU1vbiBTZXAgIDYgMjM6NDg6MjQgMTk5OQpAQCAtMzcsNyAr
MzcsMTAgQEAKICAqICA1Lzk5OiBVcGRhdGVkIHRvIGluY2x1ZGUgc3VwcG9y
dCBmb3IgdGhlIFhSMTZDODUwIGFuZCBTVDE2QzY1NAogICogICAgICAgIHVh
cnRzLiAgU3R1YXJ0IE1hY0RvbmFsZCA8c3R1YXJ0bUBjb25uZWN0dGVjaC5j
b20+CiAgKgotICogIDgvOTk6IEdlbmVyYWxpemVkIFBDSSBzdXBwb3J0IGFk
ZGVkLiAgVGhlb2RvcmUgVHMnbworICogIDgvOTk6IEdlbmVyYWxpemVkIFBD
SSBzdXBwb3J0IGFkZGVkLiAgVGhlb2RvcmUgVHMnbyAKKyAqCisgKiAgOS85
OTogQWRkZWQgdGhlIGJlZ2lubmluZ3Mgb2YgSVNBUE5QIHN1cHBvcnQuIAor
ICogCUpvZSBQcmFuZXZpY2ggLSBqcHJhbmV2aWNoQGxpbnV4dG9kYXkuY29t
CiAgKiAKICAqIFRoaXMgbW9kdWxlIGV4cG9ydHMgdGhlIGZvbGxvd2luZyBy
czIzMiBpbyBmdW5jdGlvbnM6CiAgKgpAQCAtOTEsNiArOTQsMTAgQEAKICNk
ZWZpbmUgQ09ORklHX1NFUklBTF9TSEFSRV9JUlEKICNlbmRpZgogCisjaWYg
KGRlZmluZWQoQ09ORklHX0lTQVBOUCkpCisjZGVmaW5lIEVOQUJMRV9TRVJJ
QUxfSVNBUE5QCisjZW5kaWYKKwogLyogU2V0IG9mIGRlYnVnZ2luZyBkZWZp
bmVzICovCiAKICN1bmRlZiBTRVJJQUxfREVCVUdfSU5UUgpAQCAtOTgsNiAr
MTA1LDcgQEAKICN1bmRlZiBTRVJJQUxfREVCVUdfRkxPVwogI3VuZGVmIFNF
UklBTF9ERUJVR19SU19XQUlUX1VOVElMX1NFTlQKICN1bmRlZiBTRVJJQUxf
REVCVUdfUENJCisjZGVmaW5lIFNFUklBTF9ERUJVR19JU0FQTlAKIAogLyog
U2FuaXR5IGNoZWNrcyAqLwogCkBAIC0xODksNiArMTk3LDkgQEAKICNpZmRl
ZiBFTkFCTEVfU0VSSUFMX1BDSQogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgog
I2VuZGlmCisjaWZkZWYgRU5BQkxFX1NFUklBTF9JU0FQTlAKKyNpbmNsdWRl
IDxsaW51eC9pc2FwbnAuaD4KKyNlbmRpZgogCiAjaW5jbHVkZSA8YXNtL3N5
c3RlbS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgpAQCAtMjc3LDYgKzI4OCwx
MiBAQAogI2RlZmluZSBQQ0lfQkFTRV9BRERSRVNTKGRldiwgcikgKChkZXYp
LT5yZXNvdXJjZVtyXS5zdGFydCkKICNlbmRpZgkvKiBFTkFCTEVfU0VSSUFM
X1BDSSAgKi8KIAorI2lmZGVmIEVOQUJMRV9TRVJJQUxfSVNBUE5QCisjZGVm
aW5lIE5SX0lTQVBOUF9CT0FSRFMJOAorc3RhdGljIHN0cnVjdCBpc2FwbnBf
Ym9hcmRfaW5zdCBzZXJpYWxfaXNhcG5wX2JvYXJkW05SX0lTQVBOUF9CT0FS
RFNdOworc3RhdGljIGludCBzZXJpYWxfaXNhcG5wX2JvYXJkX2lkeCA9IDA7
CisjZW5kaWYJLyogRU5BQkxFX1NFUklBTF9JU0FQTlAgICovCisKIHN0YXRp
YyBzdHJ1Y3QgdHR5X3N0cnVjdCAqc2VyaWFsX3RhYmxlW05SX1BPUlRTXTsK
IHN0YXRpYyBzdHJ1Y3QgdGVybWlvcyAqc2VyaWFsX3Rlcm1pb3NbTlJfUE9S
VFNdOwogc3RhdGljIHN0cnVjdCB0ZXJtaW9zICpzZXJpYWxfdGVybWlvc19s
b2NrZWRbTlJfUE9SVFNdOwpAQCAtMzE4OCw2ICszMjA1LDEwIEBACiAjZW5k
aWYKICNkZWZpbmUgU0VSSUFMX09QVAogI2VuZGlmCisjaWZkZWYgRU5BQkxF
X1NFUklBTF9JU0FQTlAKKwlwcmludGsoIiBTRVJJQUxfSVNBUE5QIik7Cisj
ZGVmaW5lIFNFUklBTF9PUFQKKyNlbmRpZgogI2lmZGVmIFNFUklBTF9PUFQK
IAlwcmludGsoIiBlbmFibGVkXG4iKTsKICNlbHNlCkBAIC0zODUwLDYgKzM4
NzEsMTM5IEBACiAKICNlbmRpZiAvKiBFTkFCTEVfU0VSSUFMX1BDSSAqLwog
CisjaWZkZWYgRU5BQkxFX1NFUklBTF9JU0FQTlAKKworLyoKKyAqIFRoaXMg
aXMgdGhlIGNvbmZpZ3VyYXRpb24gdGFibGUgZm9yIGFsbCBvZiB0aGUgaXNh
cG5wIHNlcmlhbCBib2FyZHMKKyAqIHdoaWNoIHdlIHN1cHBvcnQuCisgKi8K
K3N0YXRpYyBzdHJ1Y3QgaXNhcG5wX2JvYXJkIGlzYXBucF9ib2FyZHNbXSA9
IHsKKwkvKgorCSAqIFZlbmRvciBJRCwgCURldmljZSBJRCwgIEZ1bmN0aW9u
IElECisJICovCisJewlJU0FQTlBfVkVORE9SKCdCJywgJ1InLCAnSScpLAor
CQlJU0FQTlBfREVWSUNFKDB4OTQwMCksCisJCUlTQVBOUF9GVU5DVElPTigw
eDk0MDApIH0sCisJewkwLCB9Cit9OworCisvKgorICogUXVlcnkgaXNhcG5w
IGZvciBrbm93biBzZXJpYWwgYm9hcmRzCisgKiBJZiBmb3VuZCwgYWRkIHRo
ZW0gdG8gdGhlIGlzYXBucCBkZXZpY2Ugc3BhY2UgaW4gcnNfdGFibGVbXQor
ICoKKyAqIEFjY2VwdCBhIG1heGltdW0gb2YgZWlnaHQgYm9hcmRzCisgKgor
ICogV2UgYXJlIGRvaW5nIHRoZSBzY2FuIGJhc2VkIG9uIHRoZSBvcmRlciBp
biB0aGUgYWJvdmUgdGFibGUgcmF0aGVyCisgKiB0aGFuIHRoZSBidXMgb3Jk
ZXIuIFdlIG1heSB3YW50IHRvIGNoYW5nZSB0aGlzIGxhdGVyLgorICovCitz
dGF0aWMgdm9pZCBwcm9iZV9zZXJpYWxfaXNhcG5wKHZvaWQpIAoreworCWlu
dCBrLCBsaW5lLCBpdGVyID0gMDsKKwlzdHJ1Y3QgcGNpX2JvYXJkICpib2Fy
ZCA9IE5VTEw7CisJc3RydWN0IHBjaV9idXMgKmNhcmQgPSBOVUxMOworCXN0
cnVjdCBwY2lfZGV2ICpkZXYgPSBOVUxMOworCXN0cnVjdCBzZXJpYWxfc3Ry
dWN0IGZha2Vfc3RhdGU7CisJaW50IHVhcnRfb2Zmc2V0LCBiYXNlX2JhdWQs
IGJhc2VfaWR4OworCXVuc2lnbmVkIGxvbmcgcG9ydDsKKworI2lmZGVmIFNF
UklBTF9ERUJVR19JU0FQTlAKKwlwcmludGsoS0VSTl9ERUJVRyAiRW50ZXJl
ZCBwcm9iZV9zZXJpYWxfaXNhcG5wKClcbiIpOworI2VuZGlmCisgIAorCWlm
ICghaXNhcG5wX3ByZXNlbnQoKSkgeworI2lmZGVmIFNFUklBTF9ERUJVR19J
U0FQTlAKKwkJcHJpbnRrKEtFUk5fREVCVUcgIkxlYXZpbmcgcHJvYmVfc2Vy
aWFsX2lzYXBucCgpIChubyBpc2FwbnApXG4iKTsKKyNlbmRpZgorCQlyZXR1
cm47CisJfQorCisgICAgICAgIHdoaWxlIChpc2FwbnBfYm9hcmRzW2l0ZXJd
LnZlbmRvcikKKwl7CisJCWNhcmQgPSBpc2FwbnBfZmluZF9jYXJkKGlzYXBu
cF9ib2FyZHNbaXRlcl0udmVuZG9yLAorCQkJCWlzYXBucF9ib2FyZHNbaXRl
cl0uZGV2aWNlLCBOVUxMKTsKKwkJCisJCXByaW50ayhLRVJOX0RFQlVHICIt
LT4gY2FyZCA9ICVkXG4iLCBjYXJkKTsKKworCQlpZiAoIWNhcmQpIC8qIE5v
dCBmb3VuZCAqLworCQl7CisJCQlpdGVyKys7CisJCQljb250aW51ZTsKKwkJ
fQorCQorCQlkZXYgPSBpc2FwbnBfZmluZF9kZXYoY2FyZCwgaXNhcG5wX2Jv
YXJkc1tpdGVyXS52ZW5kb3IsCisJCQkJaXNhcG5wX2JvYXJkc1tpdGVyXS5m
dW5jdGlvbiwgTlVMTCk7CisKKwkJcHJpbnRrKEtFUk5fREVCVUcgIi0tPiBk
ZXYgPSAlZFxuIiwgZGV2KTsKKworCQlpZiAoIWRldikgLyogVW5rbm93biBz
dWJkZXZpY2UgKi8KKwkJeworCQkJaXRlcisrOworCQkJY29udGludWU7CisJ
CX0KKworCQlwcmludGsoS0VSTl9ERUJVRyAiSVNBUE5QIFNlcmlhbCBCb2Fy
ZCBGb3VuZCFcbiIpOworCisJCWlmIChkZXYtPnByZXBhcmUoZGV2KSA8IDAp
CisJCXsKKwkJCS8qIERldmljZSBpcyBidXN5IC0tIGlnbm9yZSAqLworCQkJ
aXRlcisrOworCQkJY29udGludWU7CisJCX0KKworCQlwcmludGsoS0VSTl9E
RUJVRyAiQm9hcmQ6ICVzICVzXG4iLCBjYXJkLT5uYW1lLCBkZXYtPm5hbWUp
OworCisJCWlmIChkZXYtPmFjdGl2YXRlKGRldikgPCAwKQorCQl7CisJCQkv
KiBDYW4ndCBjb25maWd1cmUgZGV2aWNlLi4uICovCisJCQkvKiBUaGUga2Vy
bmVsIGNvbmZpZyBzeXN0ZW0gbWlnaHQgbm90CisJCQkgICByZWFsaXplIHRo
YXQgd2UgY2FuIHNoYXJlIElSUXMsIHdlIHNob3VsZAorCQkJICAgc2NhbiB0
aGUgaXNhcG5wIGJ1cyBvdXJzZWx2ZXMgdG8gZmlndXJlIG91dAorCQkJICAg
aWYgd2UgY2FuIGNvbmZpZ3VyZSB0aGlzIGJvYXJkIHNvbWUgb3RoZXIgd2F5
LgorCQkJKi8KKwkJCXByaW50ayhLRVJOX0RFQlVHICJGYWlsZWQgdG8gY29u
ZmlndXJlIGRldmljZSFcbiIpOworCQkJaXRlcisrOworCQkJY29udGludWU7
CisJCX0KKworCQkvKgorCQkgKiBSZWdpc3RlciB0aGUgc2VyaWFsIGJvYXJk
IGluIHRoZSBhcnJheSBzbyB3ZSBjYW4KKwkJICogc2h1dGRvd24gdGhlIGJv
YXJkIGxhdGVyLCBpZiBuZWNlc3NhcnkuCisJCSAqLworCQlzZXJpYWxfaXNh
cG5wX2JvYXJkW3NlcmlhbF9pc2FwbnBfYm9hcmRfaWR4XS5ib2FyZCA9IAor
CQkJJmlzYXBucF9ib2FyZHNbaXRlcl07CisJCXNlcmlhbF9pc2FwbnBfYm9h
cmRbc2VyaWFsX2lzYXBucF9ib2FyZF9pZHhdLmRldiA9IGRldjsKKwkJc2Vy
aWFsX2lzYXBucF9ib2FyZF9pZHgrKzsKKworCQkvKgorCQkgKiBTZXQgc29t
ZSBkZWZhdWx0cyBmb3IgdGhlIGxvb3AgYmVsb3csIHdoaWNoIAorCQkgKiBh
Y3R1YWxseSByZWdpc3RlcnMgZWFjaCBzZXJpYWwgcG9ydCBiZWxvbmdpbmcg
dG8KKwkJICogdGhlIGNhcmQuCisJCSAqLworCQl1YXJ0X29mZnNldCA9IDg7
CisJCWJhc2VfYmF1ZCA9IEJBU0VfQkFVRDsKKworCQltZW1zZXQoJmZha2Vf
c3RhdGUsIDAsIHNpemVvZihmYWtlX3N0YXRlKSk7CisJCSAgICAgICAKKwkJ
ZmFrZV9zdGF0ZS5pcnEgPSBkZXYtPmlycV9yZXNvdXJjZVswXS5zdGFydDsK
KwkJZmFrZV9zdGF0ZS5wb3J0ID0gZGV2LT5yZXNvdXJjZVswXS5zdGFydDsK
KwkJcG9ydCArPSB1YXJ0X29mZnNldDsKKwkJZmFrZV9zdGF0ZS5mbGFncyA9
IEFTWU5DX1NLSVBfVEVTVCB8IEFTWU5DX1NIQVJFX0lSUTsKKwkJbGluZSA9
IHJlZ2lzdGVyX3NlcmlhbCgmZmFrZV9zdGF0ZSk7CisKKwkJaWYgKGxpbmUg
PCAwKQorCQl7CisJCQlwcmludGsoS0VSTl9ERUJVRyAiRmFpbGVkIHRvIHJl
Z2lzdGVyIGlzYXBucCIgCisJCQkJInNlcmlhbCBjYXJkLlxuIik7CisJCQlp
dGVyKys7CisJCQljb250aW51ZTsKKwkJfQorCQlyc190YWJsZVtsaW5lXS5i
YXVkX2Jhc2UgPSBiYXNlX2JhdWQ7CisJCWl0ZXIrKzsKKwl9Cit9CisKKyNl
bmRpZiAvKiBFTkFCTEVfU0VSSUFMX0lTQVBOUCAqLworCiAvKgogICogVGhl
IHNlcmlhbCBkcml2ZXIgYm9vdC10aW1lIGluaXRpYWxpemF0aW9uIGNvZGUh
CiAgKi8KQEAgLTM5OTMsNiArNDE0Nyw5IEBACiAjaWZkZWYgRU5BQkxFX1NF
UklBTF9QQ0kKIAlwcm9iZV9zZXJpYWxfcGNpKCk7CiAjZW5kaWYKKyNpZmRl
ZiBFTkFCTEVfU0VSSUFMX0lTQVBOUAorCXByb2JlX3NlcmlhbF9pc2FwbnAo
KTsKKyNlbmRpZgogCXJldHVybiAwOwogfQogCkBAIC00MTEzLDYgKzQyNzAs
MTMgQEAKIAkJCiAJCWlmIChicmQtPmJvYXJkLT5pbml0X2ZuKQogCQkJKGJy
ZC0+Ym9hcmQtPmluaXRfZm4pKGJyZC0+ZGV2LCBicmQtPmJvYXJkLCAwKTsK
Kwl9CisjZW5kaWYJCisjaWZkZWYgRU5BQkxFX1NFUklBTF9JU0FQTlAKKwlm
b3IgKGk9MDsgaSA8IHNlcmlhbF9pc2FwbnBfYm9hcmRfaWR4OyBpKyspIHsK
KwkJc3RydWN0IGlzYXBucF9ib2FyZF9pbnN0ICpicmQgPSAmc2VyaWFsX2lz
YXBucF9ib2FyZFtpXTsKKwkJCisJCWJyZC0+Ym9hcmQtPmRlYWN0aXZhdGUo
Ym9hcmQpOwogCX0KICNlbmRpZgkKIAlpZiAodG1wX2J1Zikgewo=

------=_NextPart_000_72fa60fc_52045f2e$4fa92f4f--

-
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/