| Summary: | matcd driver worked on 3.x but doesn't work anymore on 4.0-STABLE | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Base System | Reporter: | rguyom <rguyom> | ||||
| Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> | ||||
| Status: | Closed FIXED | ||||||
| Severity: | Affects Only Me | ||||||
| Priority: | Normal | ||||||
| Version: | 4.0-STABLE | ||||||
| Hardware: | Any | ||||||
| OS: | Any | ||||||
| Attachments: |
|
||||||
|
Description
rguyom
2000-03-26 17:30:01 UTC
I had the same problem here. I don't think it's exactly a typo (see the
author's note <20> in the source file), but thanks for providing a solution.
For someone who understands this stuff better than me: I have compiled a
kernel with 'options BUS_DEBUG', and have attached some excerpts from dmesg,
(1) with Remi's patch, and (2) unmodified kernel [except for a few
additional printf's of my own]
Looking at the unmodified kernel: when device_add_child_ordered is called,
it is asking for 'matcd' rather than 'matcdc' and fails.
Regards,
Brian Candler.
---------------------------------------------------------------------------
(1) Working: FreeBSD 4.0-RELEASE plus Remi's patch ("matcdc" -> "matcd" in
line 499)
...
May 14 21:01:25 karma /kernel: device_add_child_ordered:658: isa at nexus with order 0 as unit 0
May 14 21:01:25 karma /kernel: make_device:590: isa at nexus as unit 0
May 14 21:01:25 karma /kernel: devclass_find_internal:251: looking for isa
May 14 21:01:25 karma /kernel: devclass_add_device:533: (null) in devclass isa
May 14 21:01:25 karma /kernel: devclass_alloc_unit:483: unit 0 in devclass isa
May 14 21:01:25 karma /kernel: devclass_alloc_unit:522: now: unit 0 in devclass isa
May 14 21:01:25 karma /kernel: devclass_find_driver_internal:393: isa in devclass nexus
May 14 21:01:25 karma /kernel: device_probe_child:772: Trying isa
May 14 21:01:25 karma /kernel: [Entered isa_probe]
May 14 21:01:25 karma /kernel: devclass_find_internal:251: looking for isa
May 14 21:01:25 karma /kernel: devclass_add_driver:296: matcd
May 14 21:01:25 karma /kernel: compile_methods:216: matcd has 2 methods, wasting 152 bytes
May 14 21:01:25 karma /kernel: devclass_find_internal:251: looking for matcd
May 14 21:01:25 karma /kernel: devclass_find_internal:259: matcd not found, creating
May 14 21:01:25 karma /kernel: (wrap old_driver matcd)
May 14 21:01:25 karma /kernel: isa0: <ISA bus> on motherboard
May 14 21:01:25 karma /kernel: [Entered isa_attach]
May 14 21:01:25 karma /kernel: [Entering isa_probe_children]
May 14 21:01:25 karma /kernel: device_add_child_ordered:658: fdc at isa with order 1 as unit 0
...
May 14 21:01:28 karma /kernel: devclass_alloc_unit:522: now: unit 0 in devclass ppc
May 14 21:01:28 karma /kernel: device_add_child_ordered:658: matcd at isa with order 1 as unit 0
May 14 21:01:28 karma /kernel: make_device:590: matcd at isa as unit 0
May 14 21:01:28 karma /kernel: devclass_find_internal:251: looking for matcd
May 14 21:01:28 karma /kernel: devclass_add_device:533: (null) in devclass matcd
May 14 21:01:28 karma /kernel: devclass_alloc_unit:483: unit 0 in devclass matcd
May 14 21:01:28 karma /kernel: devclass_alloc_unit:522: now: unit 0 in devclass matcd
May 14 21:01:28 karma /kernel: device_add_child_ordered:658: ex at isa with order 1 as unit -1
...
May 14 21:01:32 karma /kernel: plip0: <PLIP network interface> on ppbus0
May 14 21:01:32 karma /kernel: devclass_find_driver_internal:393: matcd in devclass isa
May 14 21:01:32 karma /kernel: device_probe_child:772: Trying matcd
May 14 21:01:32 karma /kernel: [Entering isa_compat_probe]
May 14 21:01:32 karma /kernel: [op->driver->name=matcd, dvp->id_iobase=0230]
May 14 21:01:32 karma /kernel: [Probe: Yes]
May 14 21:01:32 karma /kernel: < In matcd_probe >>
May 14 21:01:32 karma /kernel: matcdc0: In probe i 0 y 4 port 230
May 14 21:01:32 karma /kernel: matcd0: size of port_hints 32
May 14 21:01:32 karma /kernel: < In doprobe(560,0) >>
May 14 21:01:32 karma /kernel: matcdc0: Probe found something
May 14 21:01:32 karma /kernel: matcd - Matsushita (Panasonic) CD-ROM Driver by FDIV, Version 1(26) 18-Oct-95
May 14 21:01:32 karma /kernel: matcd0 at port 0x230-0x233 on isa0
May 14 21:01:32 karma /kernel: matcdc: Attach dev c06d0540 id_unit 0
May 14 21:01:32 karma /kernel: matcdc0 Host interface type 0
May 14 21:01:32 karma /kernel: matcd0: Status byte 82 matcd0: [CR-5630.75]
May 14 21:01:32 karma /kernel: matcd0: driver is using old-style compatability shims
May 14 21:01:32 karma /kernel: devclass_find_driver_internal:393: ex in devclass isa
May 14 21:01:32 karma /kernel: device_probe_child:772: Trying ex
...
---------------------------------------------------------------------------
(2) Not working: FreeBSD 4.0-RELEASE unpatched
...
May 14 21:07:50 karma /kernel: device_add_child_ordered:658: isa at nexus with order 0 as unit 0
May 14 21:07:50 karma /kernel: make_device:590: isa at nexus as unit 0
May 14 21:07:50 karma /kernel: devclass_find_internal:251: looking for isa
May 14 21:07:50 karma /kernel: devclass_add_device:533: (null) in devclass isa
May 14 21:07:50 karma /kernel: devclass_alloc_unit:483: unit 0 in devclass isa
May 14 21:07:50 karma /kernel: devclass_alloc_unit:522: now: unit 0 in devclass isa
May 14 21:07:50 karma /kernel: devclass_find_driver_internal:393: isa in devclass nexus
May 14 21:07:50 karma /kernel: device_probe_child:772: Trying isa
May 14 21:07:50 karma /kernel: [Entered isa_probe]
May 14 21:07:50 karma /kernel: devclass_find_internal:251: looking for isa
May 14 21:07:50 karma /kernel: devclass_add_driver:296: matcdc
May 14 21:07:50 karma /kernel: compile_methods:216: matcdc has 2 methods, wasting 152 bytes
May 14 21:07:50 karma /kernel: devclass_find_internal:251: looking for matcdc
May 14 21:07:50 karma /kernel: devclass_find_internal:259: matcdc not found, creating
May 14 21:07:50 karma /kernel: (wrap old_driver matcdc)
May 14 21:07:50 karma /kernel: isa0: <ISA bus> on motherboard
May 14 21:07:50 karma /kernel: [Entered isa_attach]
May 14 21:07:50 karma /kernel: [Entering isa_probe_children]
May 14 21:07:50 karma /kernel: device_add_child_ordered:658: fdc at isa with order 1 as unit 0
...
May 14 21:07:53 karma /kernel: devclass_alloc_unit:522: now: unit 0 in devclass ppc
May 14 21:07:53 karma /kernel: device_add_child_ordered:658: matcd at isa with order 1 as unit 0
May 14 21:07:53 karma /kernel: make_device:590: matcd at isa as unit 0
May 14 21:07:53 karma /kernel: devclass_find_internal:251: looking for matcd
May 14 21:07:53 karma /kernel: devclass_find_internal:259: matcd not found, creating
May 14 21:07:53 karma /kernel: devclass_add_device:533: (null) in devclass matcd
May 14 21:07:53 karma /kernel: devclass_alloc_unit:483: unit 0 in devclass matcd
May 14 21:07:53 karma /kernel: devclass_alloc_unit:522: now: unit 0 in devclass matcd
May 14 21:07:53 karma /kernel: device_add_child_ordered:658: ex at isa with order 1 as unit -1
...
May 14 21:07:57 karma /kernel: plip0: <PLIP network interface> on ppbus0
May 14 21:07:57 karma /kernel: devclass_find_driver_internal:393: matcd in devclass isa
May 14 21:07:57 karma /kernel: devclass_find_driver_internal:400: not found
May 14 21:07:57 karma /kernel: devclass_find_driver_internal:393: ex in devclass isa
May 14 21:07:57 karma /kernel: device_probe_child:772: Trying ex
...
State Changed From-To: open->closed Superseded by kern/20296. The above patch also works on FreeBSD 4.1 without modification. Apply with "patch -i matcd.c patchfile" to ignore whitespace differences. Paul Sorry, that should have been a lower case ell (NOT eye): patch -l matcd.c patchfile" to ignore whitespace differences. Paul |