Subject: CVS commit: src/sys/dev/pcmcia
To: None <source-changes@NetBSD.org>
From: Charles M. Hannum <mycroft@netbsd.org>
List: source-changes
Date: 08/08/2004 05:56:09
Module Name:	src
Committed By:	mycroft
Date:		Sun Aug  8 05:56:09 UTC 2004

Modified Files:
	src/sys/dev/pcmcia: files.pcmcia if_xi.c if_xireg.h
Added Files:
	src/sys/dev/pcmcia: if_xivar.h xirc.c

Log Message:
Split "xi" into a "xirc" frontend (similar to mhzc; it attaches two child
devices) and a "xi" backend.

My CE2 and CEM2 cards are now probed correctly.  However, there are still
some problems with one model of the CE2, and the CEM2 doesn't seem to get
any modem interrupts.

While I'm at it, fix several bugs:

* The tuple scan for the MAC address was broken in multiple ways.
* xi_intr() did not deal well with a shared interrupt.
* We were setting the wrong page number to look at the receive status.  (How
  did this work???)
* Remove the xi_full_reset() from xi_reset().  Move the parts of
  xi_full_reset() needed to undo the effect of xi_stop() into xi_init().  This
  allows a stop/init pair to DTRT, and much quicker, as used by various
  ioctl()s.
* Set the TRS register before reading the TSO register, as the Linux driver
  does.  While I'm at it, fix the name.
* Fix numerous problems with xi_set_address().  "Where do I begin?"  There's a
  chance that multicast works now, but I haven't tested it.
* Explicitly clear the MSR register, and also force SELECT_MII to 0 if we
  didn't find any PHYs.
* Clean up some cruft that appears to be bogus.

Probably needs more work, but it's a start.


To generate a diff of this commit:
cvs rdiff -r1.45 -r1.46 src/sys/dev/pcmcia/files.pcmcia
cvs rdiff -r1.38 -r1.39 src/sys/dev/pcmcia/if_xi.c
cvs rdiff -r1.4 -r1.5 src/sys/dev/pcmcia/if_xireg.h
cvs rdiff -r0 -r1.1 src/sys/dev/pcmcia/if_xivar.h src/sys/dev/pcmcia/xirc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.