- Free resources in all the possible attachment failure cases.
One critical bugfix:
- Fix a race where it was possible to get out of synch with the log
messages from the controller, if the controller hung up for any
period of time (eg. while resetting a SCSI bus). This would result
in an endless string of console errors, bringing the machine to a
halt.
o Modify xe driver to use this.
There's still some issues with this code, so xe can't map the cis just
yet. I'm thinking about how to resolve the issue. pccard_nbk's
pccard_alloc_resource is getting in the way.
I've done this by having requests to allocate memory propigate up the
tree. We'll see how well this works and reevaluate if it isn't
working well. Also initialize ptr in the tuple. As well as minor
reorg of memory allocation. Likely need to do similar things for I/O
when the time comes.
I've move all defines from pccardchip.h into pccardvar.h and
eliminated pccardchip.h.
source address when receiving frames (and keep using address 2 when in
pseudo-IBSS mode). This is apparently necessary in order to obtain the
true MAC address of the sending station which is needed for PPPoE.
Patch supplied by: Blaz Zupan <blaz@amis.net>
multi-firmware support. This patch just changes
numerous names in the driver sources and is actually
nilpotent. This has been checked by comparing the
generated assembly code.
The names that have been changed are related to the
script names. They were named `script' and `script H'.
They are now named respectively `script A' and
`script B'.
before I rip out the scheduler - whilst v. nice 'n all, it is doing the
wrong job. We need something that sends commands to the card atomically
so dhcp etc. works right.
I've renamed and moved a lot of the scheduler code so that it is all
in one place and all starts with ray_cmd_
ray_stop has some debugging crap left in - to be deleted rsn
support. Changes are rather simplifications of the SCRIPTS
interface (prior to complexifying it again;) ), dead code
removes and comment fixes.
Code removed:
- Handling of kernel variables referenced from SCRIPTS.
- Handling of selection without ATN.
Slightly rewritten:
- Handling of illegal phase (4/5) and data overrun conditions.
Simplifications:
- Extended error flag and bits now only set from the C code.
- Move the extended error status (xerr_status) and nego
status (nego_status) outside the data structure accessed
by SCRIPTS (struct dsb).
- Get rid of the script status field (scr_st).
- Only patch SCR_NO_OP SCRIPTS instructions to adapt SCRIPTS
to actual chip capabilities.
Cosmetic changes:
- Miscellaneous comments in SCRIPTS.
- FreeBSD_4_Bus define replaced by FreeBSD_Bus_Io_Abstraction.
Exceptions:
Vinum untouched. This means that it cannot be compiled.
Greg Lehey is on the case.
CCD not converted yet, casts to struct buf (still safe)
atapi-cd casts to struct buf to examine B_PHYS
incorrectly attach itself to ThunderLAN adapters which happen to have
a PHY who's model number happens out to be 0.
Problem reported by: Peter L. Thomas <Pete@painless-computing.com>
(which is actually a CATC Netmate).
Gee. I don't know why people make such a fuss over supporting USB ethernet
NICs. This is easier than collecting graft.
in attach.
- Change a EISA_CHANNEL_CLEAR to EISA_CHANNEL_BUSY in ida_v1_submit().
This may fix the problem with EISA IDA adapters though we have not heard
back from testers yet.
Reviewed by: jlemon
o Eliminate cross calls between the devices. Instead move to using the
newbus messaging system. Added three new card calls: attach_card,
detach_card, get_type.
o Eliminate interrupt routine in pccard we never use.
o Move from deactivate to detach for removing cards.
o Start mapping CIS memory, but it is broken and causes panics. At least
it is closer to working than before.
o Eliminate struct device everywhere. It was bogus.
o Initialize softc for pccard device so we have valid pointers to
ourselves.
o Implement routine to find the pcic ivar for a child device of the pccard so
we can use it to talk to the pcic hardware.
o Lots of minor tiding up.
This version now panics when we try to read the CIS. The next batch
of work to make this work is what was outlined in my posting to mobile
about resource allocation and such.
- implement user-initiated background drive rebuild
- implement user-initiated background consistency check
- log controller-initiated background rebuild/check operations
Try to fix the elusive "invalid log operation" bug, and panic if we do
hit this one in the hopes of getting better information.
Tidy up diagnostic messages.
Try to use disk_create/disk_destroy correctly. This isn't working
properly yet, but it's not clear whose fault that is.
robust enough to work with dhcp. Essentially the driver returns to userland
before certain commands have been completed by the card. I'm trying to
work out the best way to fix this. There are very minor functional changes,
most of this is debugging.
Rework of debugging so a bit mask is used and re-allocation around the place.
Tried to protect ray_init with a tsleep until the network has been joined. I think this is only a partial fix as we also update the mcast and promisc
values.
Update the license in the rio_usb.h (now rio500_usb.h) to not be GPL.
Sorry for committing that file in the first place. The change of license
was agreed to by the original author.
non-device code.
* Re-implement the method dispatch to improve efficiency. The new system
takes about 40ns for a method dispatch on a 300Mhz PII which is only
10ns slower than a direct function call on the same hardware.
This changes the new-bus ABI slightly so make sure you re-compile any
driver modules which you use.
- Add support for ISA based DPT adapters (this doesn't quite work yet).
- Sync dpt_eisa.c with my local copy.
- Simplify how EISA IDs are matched.
- Prototype.
- Formatting nits.
- Conform to how I do things in dpt_pci.c/dpt_isa.c.
- Modify dpt_scsi.c:dpt_alloc() to DTRT with newbus.
- Add some comments to dpt_scsi.c:dpt_pio_get_conf().
- Add additional check to dpt_scsi.c:dpt_get_conf().
- Add some useful error messages to dpt_scsi.c:dpt_init().