Commit Graph

2863 Commits

Author SHA1 Message Date
bouyer 84b0f1e37d Adapt for script "wait MSG_OUT after select" change: now, when we get
selection timeout, SCRATCHE points to the slot which triggered the timeout,
not the next one.
2002-04-22 20:47:20 +00:00
bouyer 8ba368a0b6 Really, don't set siop_cmd->tag in setup_table() 2002-04-22 20:31:49 +00:00
bouyer 4cda08fb6e Add support for tagged queuing to esiop (256 tags per device).
For this add another indirecton: the DSA in the LUN table points to
a table of DSA indexed by the tag number when tagged command is in use.
For non tagged command, the LUN DSA still points to the tables describing the
xfer directly.
2002-04-22 15:53:39 +00:00
bouyer e3f96dde51 Fix last change: assign siop_cmd->tag in callers instead of siop_setuptables(),
and use siop_cmd->tag instead of xs->xs_tag_id. This way siop can use
xs->xs_tag_id + 1 without interferences with esiop.
2002-04-22 15:48:55 +00:00
augustss d32b5e84cc Add a driver for the Sony SPIC that handles jog dials etc.
This driver works on my SRX77, but probably little else.
It makes the jog dial appear as a wsmouse.
2002-04-22 12:42:11 +00:00
bouyer 72906f4578 In siop_setuptables(), use the proposed tag_id, not tag_id +1.
In siop.c bump siop_cmd->tag by one as tag id 0 is reserved for untagged cmds.
2002-04-22 09:43:44 +00:00
bouyer 8cfc41f9ed First cut at a esiop driver (enhanced siop). Doesn't implement tagged queuing
yet.
If is restricted to SIOP which implement the load/store instruction, and
has 10 scratch registers (basically, 825 and newer, possibly 770).
It implements a different interface between host and script, using a real
ring for command starts, and improved support for reconnect which will allow
256 tag per device. It uses interrupt on the fly to signal complete command,
which allows several commands to be serviced per interrupt and doesn't require
the script to stop to signal command completion.
2002-04-21 22:52:05 +00:00
bouyer 0852b37f15 Note that if siop_common_xfer is changed, the scripts need to be changed too. 2002-04-20 15:25:53 +00:00
mjacob acfd588eca Number of luns supported for SCC-2 is actually really 16384- top
3 bits are lun address modifiers.

Remove code that (incorrectly) thought it was asking the f/w to only
PLOGI if not already PLOGI'd. The current f/w documentation tells us
that we have this backwards.
2002-04-20 05:05:56 +00:00
bouyer 97fe8b91c5 Move a few things around, so that ic/siop_common.c and pci/siop_pci_common.c
can be compiled without including siopvar.h.
2002-04-20 00:15:54 +00:00
thorpej 46a2773ba8 * Fix the CS_IS_ENABLED() logic so that it actually evaluates to
"true" at the appropriate times for non-PCMCIA interfaces.  This
  means that the ENETRESET path in cs_ioctl() now runs, thus fixing
  multicast (and IPv6) on my Shark.  Yay.

* Simplify cs_hash_index(): Rather than taking the bottom 6 bits of
  a big-endian CRC32 and reversing them, just take the top 6 bits of
  a little-endian CRC32.
2002-04-18 21:58:02 +00:00
thorpej 036066e625 Define the Symbios Logic and Tekram NVRAM contents. 2002-04-18 21:08:43 +00:00
martin ff434a1201 Handle unexpected interrupts better. 2002-04-18 12:19:05 +00:00
bouyer 52cdca5f88 If SIOP_SYMLED is defined, drive the activity LED though GPIO pin 1. 2002-04-18 12:03:15 +00:00
onoe 86920876dd (force commit: no changes in the code)
WI_RID_SCAN_APS in previous commit works for Intel Pro/Wirelss 2011
with firmware 2.51.1.
It seems that the firmware automatically updated after the card runs on
Windows 2000 with 2011_2011B_CD_3.0 in Intel web site.
2002-04-18 05:24:28 +00:00
martin c8b77487a2 When clearing interrupts, clear IPAC interrupts for cards that have
one.
2002-04-17 17:34:48 +00:00
onoe fa97a362d4 Support WI_RID_SCAN_APS (wiconfig -D) for Symbol CF Card.
It apparently requires newer firmware (3.10.4), and doesn't work on
Intel PRO/Wireless 2011 (2.0.11).
2002-04-16 07:24:06 +00:00
onoe a40f47b098 Add support to Symbol Wireless Networker CF card.
The card is Type 1 CF card and it doesn't have firmware in.
So we need to download the firmware image into the card before
touching it.
XXX downloading code should be written in generic (bus independent),
    but I don't have enough information for now.
2002-04-15 15:05:58 +00:00
onoe dd80e6d577 Some fixes for Symbol card.
- The version string doesn't need to start with 'V'.
- Symbol firmware also support CREATE_IBSS.
- But it doesn't support ROAMING_MODE nor MICROWAVE_OVEN.
2002-04-14 19:55:23 +00:00
mycroft f00c3c2e40 tm_gpctl and tm_gpdata must be shifted right 16 bits. DOH.
This makes another CardBus tlp card work...
2002-04-14 19:10:18 +00:00
martin e4998611e9 Fix copyright notice. 2002-04-14 12:24:26 +00:00
christos db29511727 PR/16058: Tero Kivinen: Don't free rbuf or detach tty if rbuf allocation
failed during attach phase.
2002-04-13 17:05:16 +00:00
isaki 9ee0a509cd Fix minor typo in adpcm_estim[]. 2002-04-13 12:40:50 +00:00
martin 8d2451d1be When pruning state at interrupt enable time, also call the clearirq
routine for cards that provide it.
2002-04-13 11:03:54 +00:00
martin 0cdadad2cd Defer initialization of the ISAC chip until we enable interrupts - it gets
into a strange failure mode if we do it with disabled interrupt. When
(re-)enabling interrupts reset transmitter and receiver and clear any
pending state.
2002-04-13 10:28:36 +00:00
thorpej ff7306cf44 * Add a new hwflag, COM_HW_NO_TXPRELOAD, which tells comstart() to
not pre-load the chip's Tx buffer, but instead waits for the Tx Ready
  interrupt to transmit the first chunk of data.
* On the IOP310, set COM_HW_NO_TXPRELOAD, rather than COM_HW_TXFIFO_DISABLE.

This solves the "UART hangs" problem on the Npwr in a nicer way (i.e. we
get to use the FIFO, whee).  The COM_HW_NO_TXPRELOAD happens to match the
Linux 16550 driver's Tx algorithm, and the "UART hang" was never observed
on the Npwr running Linux.

Eventually, we might want to eliminate the COM_HW_NO_TXPRELOAD, and simply
always use its algorithm.  But it should be tested on more 16x50 variants
before we do that.

Kudos to Valeriy Ushakov <uwe@netbsd.org> for pointing out this solution
(which also happens to fix the stray UART interrupt issue on the Krups
Javastation), and to Allen Briggs <briggs@netbsd.org> for experimenting
with various methods of fixing this.
2002-04-12 19:32:30 +00:00
augustss d0c3f994ea Put device name at start of line. 2002-04-11 11:21:26 +00:00
mjacob 31045afa8c Clean up a bit from the last checkin so that the correct result pointers
are used- didn't make a difference, but hey...

Put in commented out GFF_ID code- for use in future attempts to search
the fabric- this probably has to go thru the management server path.

Don't whine about handles we can't find if these are aborted commands
(we know we can't find the handles because we destroy handles after
a successful mailbox abort- we don't wait for the F/W to decide whether
it wants to return a status IOCB after this happens).
2002-04-11 02:32:03 +00:00
martin f12d3f51e7 Remove some redundant tries to disable interupts. We already avoided enabling
them.
Fix a stupid typo when enabling/disabling interrupts: we clear pending
interrupts when enabling, not disbling isac interrupts.
2002-04-10 23:51:06 +00:00
ichiro 9d3869cb7c more description of Chips was added 2002-04-10 04:01:27 +00:00
bouyer 10b49b13b9 In wdc_exec_command(), for data commands, read the status register after
the data transfer. This is mandatory for data out commands (although none are
used for now), and not forbiddend for data in commands. Also record if we
did transfers any data.
May solve kern/16159 by making the probe more robust in face of fake identify.
2002-04-09 21:17:53 +00:00
chs 110d16d5ae add support for built-in NWay autonegotiation on 2114[23], Macronix
98713A, 98715, 98715A, 98725, and Lite-On 82C115.
2002-04-09 05:57:20 +00:00
martin 58502ab93e Combine sc_enabled and sc_dying into one field sc_intr_valid, they are used
for the same purpose (ignoring invalid interrupts).

For cards that are not able to stop all interrupts (or we don't know a way
to do that in software, at least) run the clearirq callback even when
ignoring an interrupt because we are not enabled. Otherwise the card would
stop interrupting.

Reserve a driver specific callout handle and an int value in the generic
isic_softc to allow card drivers to implement fancy blinkenlights.
2002-04-08 12:20:49 +00:00
isaki 485575c0fe Rewrite encode/decode algorithm completely.
It improves playing/recording quality greatly
and it was almost done by Yosuke Sugahara <penta@fuchu.or.jp>.
Thanks a lot!

Add support of slinear8, slinear16_le, slinear16_be.
2002-04-07 14:51:40 +00:00
martin 87b8f8f259 Remove leftover from my first, incomplete attempt to cope with detaching
pcmcia cards. Now that pcmcia attachements properly handle the activate
callback, this is no longer needed (and is suspect to cause completely
unrelated problems.)
2002-04-06 21:46:51 +00:00
mhitch d410426604 Interface byte counts are counted in ether_input() and ether_output(). Don't
count them when reading the NIC counters - it doubles the count.  Read the
NIC counters to prevent counter overflow interrupts, but don't add them to
the interface counters.  Don't bother reading the upper counts because they
are just latched when reading the totals.

Fixes final part of PR#11549.
2002-04-06 19:28:01 +00:00
thorpej 60e2bbd09a Add support for the "CPUSaver" receive interrupt mitigating microcode
on the following PRO/100 chips:

	* i82558 step A4
	* i82558 step B0
	* i82559 step A0
	* i82559S step A
	* i82550
	* i82550 step C

The interrupt delay is configurable on all microcodable chips.  The
maximum "bundle" size (packet count) is configurable on all but the
i82558.

The microcode is enabled by setting IFF_LINK0 on the interface.

Derived from code in FreeBSD.
2002-04-05 19:51:04 +00:00
bouyer e5727031fb Implement mstohz() as discussed on tech-kern, and use it in SCSI drivers
to convert xs->timeout to callout() parameter.
2002-04-05 18:27:45 +00:00
bouyer f6ef011e7e Properly identify LM81. From Sergey Svishchev in PR kern/13420. 2002-04-05 16:11:47 +00:00
thorpej f4f37ed5f5 Define the command block used for loading microcode into the chip. 2002-04-05 05:29:05 +00:00
mycroft cdb5a13a85 With certain 21140 and 21143 SROM formats, OPMODE_FD was never being set when
the interface was wired to full-duplex mode.  Duh.
Also, add OPMODE_TTM to OPMODE_MEDIA_BITS, to insure that it is changed when
we switch between 10 and 100.
2002-04-05 04:48:40 +00:00
uwe 6142b898f3 Clean up includes. 2002-04-05 03:29:05 +00:00
mjacob 83f4603dc7 Correct put of fc4_types to 32 bits, which is what it is. 2002-04-05 02:09:39 +00:00
ichiro 1fb4491ea4 Upps, fix typo 2002-04-05 00:59:38 +00:00
ichiro 7d1236beff fix minor bugs for lucent cards. (point out from Warner Losh) 2002-04-05 00:54:51 +00:00
mjacob c8513a96b0 Redo fabric evaluation to not use GET ALL NEXT (GA_NXT). Switches seem
to be trying to wriggle out of supporting this well. Instead, use
GID_FT to get a list of Port IDs and then use GPN_ID/GNN_ID to find the
port and node wwn. This should make working on fabrics a bit cleaner and
more stable.

This also caused some cleanup of SNS subcommand canonicalization so that
we can actually check for FS_ACC and FS_RJT, and if we get an FS_RJT,
print out the reason and explanation codes.

We'll keep the old GA_NXT method around if people want to uncomment a
controlling definition in ispvar.h.

This also had us clean up ISPASYNC_FABRICDEV to use a local lportdb argument
and to have the caller explicitly say that a device is at the end of the
fabric list.
2002-04-04 23:38:43 +00:00
thorpej 769ca97e2b Address Intel 82801BA/82801BAM Specification Update, Errata #30:
The ICH on-board Ethernet and some i82559 chips have a bug which
will cause a PCI protocol violation if the chip receives a CU_RESUME
command as it is entering the IDLE state by deasserting #CLKRUN.
(This is the so-called "resume bug" that we previously had an incomplete
work-around for on ICH chipsets.)

The work-around is to disable Dynamic Standby Mode, such that the
chip will never deasert #CLKRUN.  Dynamic Standby Mode is disabled
by clearing a bit in the EEPROM and updating the EEPROM (and EEPROM
checksum).

Unfortunately, the chip will only consult the EEPROM setting after
a PCI bus reset, so a system reboot is required once the EEPROM
has been updated (the EEPROM update only needs to happen once,
and the driver usses a warning instructing the user to reboot the
system once the work-around has been applied).

Issue pointed out by David Brownlee, and code more-or-less lifted
from FreeBSD.
2002-04-04 23:15:43 +00:00
thorpej 4a9f5c0fc7 Move the code which shifts bits into the EEPROM into its own function. 2002-04-04 21:11:16 +00:00
jdolecek 46d335a320 move wi_pci_reset() from ic/wi.c to pci/if_wi_pci.c, where is belongs 2002-04-04 17:43:31 +00:00
jdolecek e9ee3f796e fix sligh confusion on whether or not to supply dv_xname to printf() in
error cases of attach
Noticed in kern/16197 by George E Sollish.
2002-04-04 17:30:32 +00:00
hannken 747c45e3e4 Avoid dereferencing null pointer. `data->name == NULL' means default font. 2002-04-04 13:08:35 +00:00
ichiro ed93d4f3b5 space/TAB cosmetics 2002-04-04 07:15:17 +00:00
ichiro 7fadd48a2f using table driven for Prism2 family IDs/Names. 2002-04-04 07:06:16 +00:00
chs e340f273c4 add support for Cogent EM100 (aka Adaptec ANA-6910) TX and FX. 2002-04-04 05:45:54 +00:00
ichiro ff941b5271 s/WI_NIC_3842/WI_NIC_3842_EVA 2002-04-03 15:43:14 +00:00
ichiro a07b331747 add more IDs of PRISM family 2002-04-03 15:33:20 +00:00
isaki 677cd20c7f initialize codec variables every open(). 2002-04-02 15:22:37 +00:00
isaki fec379f5cd Correct ADPCM -> linear8 conversion routine.
Now, we can record on vs0 (but it's very noisy)
2002-04-02 15:19:00 +00:00
petrov 71419e9eb9 Return from interrupt handler after chip init(reset). 2002-04-02 09:48:27 +00:00
martin bf8b82a971 Move isic_intr_enable to a file not depending on the HSCX driver, so
ifpci-only configurations build again.

Remove the now unused controller enable function from the passive drivers
l2<->l1 interface.
2002-04-01 12:14:26 +00:00
martin 71b6502920 Do not bother to enable interrupts at attach time - we are going to disable
them again imediately
2002-04-01 12:12:26 +00:00
ichiro 2288447a2e add more IDs of PRISM family 2002-04-01 02:46:47 +00:00
bouyer bf5fb91f9c Fix typo in a comment. Reported by Alexander Yurchenko in private e-mail. 2002-03-31 19:47:39 +00:00
mjacob 9fff4c6833 Thanks to Jason Wright of OpenBSD- spotted that the offsets were all wrong
for bus_dmamap_sync calls. They'd been blindly ported from Solaris which
had *one* dma map for the entire control space, so offset was incremented
for the Request, Response and FC Scratch spaces. Tsk. There are three maps
in NetBSD. I should probably make them one anyway.
2002-03-31 17:56:54 +00:00
jdolecek 3679b97e61 add some bound checking
patch submitted by IWAMOTO Toshihiro in kern/13112
2002-03-31 10:44:44 +00:00
ichiro cf8b4530ef add more description of "Connection control characteristics" in Prism2 2002-03-31 06:09:37 +00:00
ichiro 42d7147fe3 typo fixed 2002-03-31 05:54:19 +00:00
ichiro 53f97402c6 Dont use magic number.
added parameter of WEP flags
2002-03-31 05:51:47 +00:00
ichiro 17a3f4351a delete incorrect register 2002-03-31 05:22:26 +00:00
ichiro 94e7948a7e add rx/tx status register 2002-03-31 05:12:55 +00:00
ichiro 5cebe8a050 mistake 2002-03-31 04:06:29 +00:00
ichiro d68d2ca3ec add more frame structure register 2002-03-31 03:36:15 +00:00
uwe 782296b588 First cut at framebuffer driver for Integraphics Systems IGA1682.
It's not finished yet, but it can do enough to get wscons working for
Krups JavaStation.
2002-03-30 19:48:55 +00:00
martin e5c92d53f8 Be a nice citizen, enable interrupts only when we are ready to talk
to the ISDN (i.e. when userland has /dev/isdn open).
2002-03-30 19:13:44 +00:00
martin ed4ba39c75 Add a command to layer 1 drivers to update LED state for controllers that
have status LEDs.
2002-03-30 17:54:17 +00:00
ichiro 7cd9648d72 added sc_pri_firmware_ver, and print Primary/Station firmware versions.
cosmetic change.
2002-03-30 16:44:59 +00:00
ichiro c05f3dd312 the kind of "firmware" was clarified.
firmware -> station firmware
2002-03-30 15:58:45 +00:00
ichiro 20417d89e0 add WI_RID_PRI_IDENTITY rid , (0xFD02)
Reflects the primary funcs firmware Identification number
2002-03-30 15:53:26 +00:00
tron 92ca7a2bc8 Apply changes provided by Thilo Manske in PR kern/16118:
1. Fix setting of nominal fan speeds with ENVSYS_STREINFO.
2. Treat Winbond 83781D specially because it has a programmable divisor for
   FAN3 unlike generic devices.
3. Set nominal RPMs.
4. Fix a typo in the code for setting FAN3's divisor for W83782 type
   hardware monitors.
2002-03-30 13:37:41 +00:00
martin e14f4779db Avoid duplicate expensive lookups by passing a pointer to the call
descriptor/a pointer to the layer 3 state directly to driver functions,
instead of their ID/index.
2002-03-30 11:15:41 +00:00
martin f5e2c967fc Split BRI attaching into two phases, so lower layer drivers can get their
BRI identifier and L3 driver state early on, then finish initializing and
announce the controller to userland when it's ready.
2002-03-29 20:29:53 +00:00
matt 8a30192c27 Correct a comment and cleanup slightly how the local ethernet is programmed
into the chip.
2002-03-29 00:00:10 +00:00
bouyer da0cf38ed5 In wdcintr(), it !WDCF_IRQ_WAIT, read the status register anyway to clear a
possible pending interrupt. This should avoid the interrupt loop described
in PR kern/15841.
It is safe to read status here, because if we're not waiting for an interrupt
we have no command pending, so the device should be idle.
2002-03-28 22:51:58 +00:00
onoe 45a8f0749c Fix to work Symbol firmware card, which cannot be initialized more than once.
Tested with 3Com 3CRWE737A and Intel Pro/Wireless 2011.
2002-03-27 08:01:22 +00:00
chs 150665fbb1 91C96 has the same chip ID as 91C94, list both in attach output. PR 11413. 2002-03-27 07:50:54 +00:00
martin ebd73ccd11 After Jason Thorpe explained to me how it is supposed to work, implement
(de)activate for pcmcia cards.
Implement detach/(de)activate for PCI cards.
Clean up internal state (free call-descriptors) if a controller is
detached while it has open connections.
2002-03-27 07:39:35 +00:00
chs 23825982c3 add support for SMC 9332DST. 2002-03-26 07:57:16 +00:00
chs 99b5d17961 move some prototypes from tulip.c to tulipvar.h so they can
be used by bus-specific code.
2002-03-26 07:41:40 +00:00
martin 0db68b667b Now that we have all pieces in place (and enough granularity to specify
B-channel and D-channel drivers separately) split the Fritz!PCI card
driver out of the isic driver.

The new device is called "ifpci" and uses the same D-channel driver as the
isic devices, but has it's own B-channel driver.
2002-03-25 16:39:52 +00:00
martin 909e313a80 Remove a leftover from the BRI registry at layer 2.
Initialize layer 2's idea of it's BRI id after attaching.
2002-03-25 14:44:46 +00:00
martin a994533d0a Make pcmcia cards detach properly.
Notify userland of attaching/detaching cards.
This partly fixes PR 15951.
2002-03-25 12:07:33 +00:00
dbj ea44522489 changes from Warner Losh to read firmware version for non prism2 cards 2002-03-25 09:10:54 +00:00
martin 8a2d9422bd Fix confusion about the return value from the internal MI probe routine.
Make the ISA probe actually (silently) fail if no card is found.

XXX - need to aquire the SBUS variant of this card some day or have
Jaromir find an MCA one.
2002-03-25 09:08:09 +00:00
martin 0bc69b6498 Now that we have all the pieces of the puzzle available start to unriddle
and move them in their proper places.

Move the BRI registry from layer 2 (duh!) to layer 4, so active cards
(which don't have layer 3 or layer 2 in their driver). Remove all remaining
hard coded controller and driver types. Remove any arbitrary hard coded
limits, at least those that show up in the internal API.

This fixes PR 15950.
2002-03-24 20:35:43 +00:00
jdolecek 9977ae0589 ncr53c9x_attach(): if sc_rev is NCR53C90_86C01, set it to ESP100 once
the variant name is printed.
This fixes a problem that the card would be treated as ESP100 in
ncr53c9x_reset(), but not on couple other places (pointed out by
Andy Doran in private e-mail).

g/c now redundant case entry in ncr53c9x_reset()
2002-03-24 17:16:19 +00:00
bjh21 cc685cb13e __arm26__ -> acorn26. This has the advantage of actually being defined. 2002-03-24 15:52:33 +00:00
bjh21 a90a7a1ab7 Mention the DS2401 Silicon Serial Number. 2002-03-24 15:51:45 +00:00
itohy 78b5427b7e Add wait-for-ready code between setting MCE and changing data format,
which is required by OPL3-SA2 (YMF711) chip.
Fixes PR kern/14819.
2002-03-23 23:40:32 +00:00
gmcgarry 4c3affa3f6 Remove FreeBSD RCSID. 2002-03-23 03:40:24 +00:00
martin 9cea4a0ab0 Bring the daic driver into the new ISDN world order.
Enable active card support in the ISDN subsystem. (Had been disabled since
it couldn't be tested before.)
2002-03-22 09:54:15 +00:00
mjacob d76d04685a Handle Port Unavailable the same as Port Logout (i.e., send a LIP).
Unconst pointer to f/w in the ispdv structure. Too many compilers get
unhappy over our walking the array. Make casts as appropriate so that
initialization in structure is still happy.

Limit length of fabric to 256. This will all go away soon.

Do a cleaner case of keeping multiple CPUs/threads from reading the
same response queue entries.
2002-03-22 02:34:05 +00:00
fredette d564a038af Fixed a possible overflow bug in the timeout calculation. 2002-03-22 00:15:21 +00:00
itohy a56d289043 I have Prism2 with 0.8.2 firmware, and have no problem
using WEP without promisc on the device.
2002-03-21 07:31:37 +00:00
thorpej 1a69060597 When getting the packet off the interface, make sure the payload is
aligned after the Ethernet header.

kern/15982, Hiroyuki Bessho <bsh@grotto.jp>
2002-03-20 17:42:23 +00:00
martin e2c42aeaa8 Remove all knowledge about specific application (layer 4) drivers from
the generic layer 4 and layer 3 management system.

This should make the layer 4 driver API LKM clean - finaly.

Make the Fritz!PCI driver work again after resent changes (oops!),
noted by Frank Kardel (PR 15948) and Matthias Scheeler.
2002-03-17 20:54:04 +00:00
atatat 31144d9976 Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command".  ERESTART is -1, which can lead to
confusion.  ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4.  No ioctl code should now return -1 anywhere.  The
ioctl() system call is now properly restartable.
2002-03-17 19:40:26 +00:00
martin 1e802e7eba Clean up the application (layer 4) driver vs. B channel driver interface.
One step further on the way to make layer 4 drivers LKMable.
2002-03-17 09:45:58 +00:00
dbj 28819987b7 don't set prism2 bit when WI_NIC_LUCENT is detected 2002-03-17 02:52:59 +00:00
chs 9846849435 in the TULIP_ROM_MB_21142_MII case of tlp_2114x_isv_tmsw_init(),
use "cp" instead of "ncp" as a temporary pointer into the SROM.
we still need the value of ncp here, it points to the next media block.
(update the copy of this code in tlp_21142_reset() just 'cause.)
this makes the BNC port on the Adaptec ANA-6911A work.
2002-03-16 17:38:35 +00:00
isaki 81b3e9fb81 Fix mis-increment bug in converter msm6258_ulinear8_to_adpcm().
This fix needs factor_denom.
2002-03-16 09:00:42 +00:00
martin f4be3308da Psssst, don't tell anybody I commited this.
Add an ugly hack, #ifdef WI_AT_BIGENDIAN_BUS_HACK, to make the wi driver
access the underlying bus in big endian byte order.

This makes it possible to use this driver (probably one of the most
interesting ones) in the pcmcia slot of a stp4020 (nell) adapter at sbus. The
sparc ports bus_space_{read,write}_* macros do not provide a way to do this
cleanly now as they ignore the bus_space_tag_t parameter.

XXX - make bus_space_{read,write}_* on sparc do the right thing.
2002-03-15 13:15:36 +00:00
tsutsui f54d57e135 Remove an arg name in prototype declaration. 2002-03-15 12:57:21 +00:00
chs 1ba402084f assume that 21143 SROM info blocks are in extended format (as the spec
requires), even if the bit to indicate this is not set.
this makes Phobos P430 4-port cards work.
2002-03-14 04:44:34 +00:00
ad 5d95c4499b Fix botch in previous. 2002-03-13 23:17:18 +00:00
ad b89e39b91a Reorganise the wsfont stuff slightly so that multiple display adapters
with different bit/byte order requirements can co-exist happily.
2002-03-13 15:05:13 +00:00
uwe a05702eaac Rework the driver to add EBus DMA support and improve APC DMA support.
Audio-related stuff is left almost intact.

* support audiocs at ebus playback and capture
    tested on krups and u5 (thanks, martin)
* make first attempt at supporting audiocs at sbus capture
* nb: full-duplex is not tested
* while here, fix CSAUDIO_MONITOR_MUTE to be of CSAUDIO_MONITOR_CLASS
    i.e. outputs.monitor.mute -> monitor.monitor.mute

Ok by pk, eeh.
2002-03-12 04:48:28 +00:00
ichiro 8596bfd754 fix 128bit WEP work with Prism2 Card.
from FreeBSD
2002-03-10 14:43:38 +00:00
itohy d5f39a2d9c Add explicit support of OPL3-SA2 (YMF711).
Not well tested....
2002-03-10 13:57:10 +00:00
augustss c93a7a4d14 Add a nic I don't really know much about, but it's used on my D-Link card. 2002-03-10 00:16:47 +00:00
thorpej a180cee23b Pool deals fairly well with physical memory shortage, but it doesn't
deal with shortages of the VM maps where the backing pages are mapped
(usually kmem_map).  Try to deal with this:

* Group all information about the backend allocator for a pool in a
  separate structure.  The pool references this structure, rather than
  the individual fields.
* Change the pool_init() API accordingly, and adjust all callers.
* Link all pools using the same backend allocator on a list.
* The backend allocator is responsible for waiting for physical memory
  to become available, but will still fail if it cannot callocate KVA
  space for the pages.  If this happens, carefully drain all pools using
  the same backend allocator, so that some KVA space can be freed.
* Change pool_reclaim() to indicate if it actually succeeded in freeing
  some pages, and use that information to make draining easier and more
  efficient.
* Get rid of PR_URGENT.  There was only one use of it, and it could be
  dealt with by the caller.

From art@openbsd.org.
2002-03-08 20:48:27 +00:00
mjacob 1d228ae84c Disable RIO (reduced interrupt operation) for 2200 boards- it seemed like
it worked- but I ran into a case with a 2204 where commands were being lost
right and left. Best be safe.

For target mode, or things called if we call isp_handle_other response- note
that we might have dropped locks by changing the output pointer so we bail
from the loop. It's the responsibility of the entity dropping the lock to
make sure that we let the f/w know we've read thus far into the response
queue (else we begin processing the same entries again- blech!).
2002-03-07 00:14:04 +00:00
dbj 5c7e9abe49 return EINPROGRESS instead of EINVAL when trying to read
the results of an AP scan that is not finished
2002-03-06 14:41:39 +00:00
itohy 1990961dc9 Fix ADPCM playback/recording. 2002-03-06 07:12:02 +00:00
itojun ac36f7cb2c bring in latest ALTQ from kjc. ALTQify some of the drivers. 2002-03-05 04:12:57 +00:00
simonb 64c7743a05 Don't "extern int cold;" - this is in <sys/kernel.h>. 2002-03-04 02:19:07 +00:00
dbj 47b3797fe7 Don't attempt to gather unrequested statistics.
Allow SIOCSWAVELAN with WI_RID_IFACE_STATS to request
an immediate statistics update.

We might in the future want to have SIOCGWAVELAN with
WI_RID_IFACE_STATS return an error if a statistics gathering is in
progress.  Then the caller could request fresh statistics and gather
them when they are done.  Instead, we currently just return whatever
statistics are available, which may be up to 60 seconds old.
2002-03-04 01:56:12 +00:00
dbj e9d22f79b0 fix byte swapping when gathering statistics
this should complete the fix to pr 14385
AP scanning and statistic gathering should work on le hosts now
2002-03-04 01:33:17 +00:00
dbj 918b9d4dec correctly handle AP scanning result when there are no APs 2002-03-04 01:30:04 +00:00
dbj 0dca7b4f6d used %02x instead of %x when printing out BSS ids 2002-03-04 01:21:07 +00:00
dbj 0812667818 s/Faild/Failed/ 2002-03-04 01:19:24 +00:00
bouyer 5d5c5c0ddd As siop_morecbd() is called from the kernel thread, protect access to the
queues with splbio.
2002-03-01 21:37:03 +00:00
dbj 2622b21584 use #ifdef WI_DEBUG instead of #if WI_DEBUG 2002-02-26 09:29:18 +00:00
dbj 44ab750650 avoid walking full length of unknown stats structure.
this partially addresses pr14385.
there is still a byte swapping bug retrieving the
stats structure.  Since both the type and the length
are incorrectly swapped, we would timeout while reading
an extra long section (caused by the byteswapped length)
of garbage data.
turning on WI_DEBUG now just reports the unknown info type
which can be seen to be obviously incorrectly swapped
on macppc
2002-02-26 09:18:54 +00:00
kleink 9e8cc352a9 Update datasheet URLs. 2002-02-25 17:37:47 +00:00
scw c4dbe1a160 Allow MD code to provide functions for reading/writing NVRAM/RTC
locations. If passed NULL, the old behaviour using bus_space_{read,write}_1()
is used. Otherwise, all access to the chip goes via the MD functions.

This is necessary for mvmeppc boards where the mk48txx NVRAM/RTC is not
directly addressable.
2002-02-23 17:18:54 +00:00
mjacob 91f80cf3fc Implement F/W crashdumps for 2200 && 2300 cards (kernel compile option).
Distinguish between 2312 and 2300 cards (they *are* different). Enable
RIO (Reduced Interrupt Operation) for the LVD cards (hey- I've seen
batched completions of the 30 commands at a time with this,....)...

If we get a Port Logout on local loop topologies, we have to force the
f/w to log back in. The easiest way (for us) to do this is to force
a LIP. This also will wake up the disk that probably just had a f/w crash.

Implement mailbox 'continuations'- this allows interrupts to re-drive
a mailbox command if it's one that just essentially repeats the previous
mailbox command (e.g., f/w download). This saves a boatload of sleep/wakeup
twitches.

If we're not a 2300 and we're about to return with a 'bogus interrupt'- check
the semaphore register to be non-zero at all and outgoing mailbox 0- this
seems to be where some of the lost ISP1080 commands came from.
2002-02-21 22:32:40 +00:00
yamt e3f53c00e2 fix indent 2002-02-18 14:45:56 +00:00
yamt 1486b3d395 add a missing splx in the case of error. 2002-02-18 14:41:50 +00:00
bjh21 00994a7564 Add prototypes for static functions. 2002-02-17 20:08:34 +00:00
martin 387b55cc79 Protect calls to wi_cmd() from callout handlers by proper splnet()/splx()
pairs. Without this, the interrupt handler will steal the "command completed"
status and wi_cmd will busy loop until it times out.

Add some error output to make failure modes like this more prominent.

This should fix PR 14559.
2002-02-17 19:24:18 +00:00
chs b744097a5f allow writing to write-only mappings. fixes PR 3493. 2002-02-14 07:08:02 +00:00
itojun 75777b6533 make the driver even more silent; print state change messages only if IFF_DEBUG. 2002-02-13 22:06:17 +00:00
kleink db48366eb0 Forgot to mention two reserved bits. 2002-02-11 19:01:28 +00:00
wiz 9baadd8ee5 "doesn't" should have an 's'. 2002-02-11 11:19:26 +00:00
wiz b231fd7631 explicitly, with two l. 2002-02-11 11:01:52 +00:00
pooka 80b8890265 point sequioa.h to new location 2002-02-10 11:48:56 +00:00
tsutsui 0f5d20e20b - rename struct iha_scsi_req_q -> struct iha_scb
- reorder some functions
- some more cosmetics
2002-02-09 15:13:00 +00:00
pooka 8c1a2832b7 Remove inclusion of unused machine/cpufunc.h, it doesn't belong here anyways. 2002-02-06 14:50:42 +00:00
pooka f323b44887 remove include of <machine/cpufunc.h>, it's not used here
fixes compile (at least) on arm32
2002-02-03 23:32:10 +00:00
jdolecek f32b3f4f89 Reduce the massive code duplication regarding joy(4). Split it into
MI and MD parts, and make ISA/ISAPNP/PCI joy(4) attachments MI.
2002-02-02 18:37:38 +00:00
augustss e16f901581 Make auich support variable rate codec, and suspend/resume.
From URA Hiroshi in PR kern/15431 (partly from OpenBSD).
2002-02-02 11:13:44 +00:00
martin 0b57fdbf9d Don't display some (non-exceptional) events unless IFF_DEBUG is set.
I have a card that fires a continuos stream of "connected" events (one
every 30 seconds) while it hasn't found any peer.
2002-02-01 13:35:41 +00:00
uwe 13d8e231d8 Fix KBS_WARM comment. 2002-01-31 13:25:20 +00:00
simonb 5d591d8020 White-space niggle. 2002-01-31 06:37:30 +00:00
ad 49849b4d3a - Always validate the return value read from the outbound FIFO.
- Copy access method info into the softc so we don't double dereference.
- Remove static on functions.
2002-01-25 16:10:35 +00:00
lukem 93e58d97ac Add support for WSCONS screenblank ioctls. From Phil Budne in [kern/15213]. 2002-01-23 17:11:38 +00:00
ichiro ed09e8d901 It corrected forgetting to attach "," 2002-01-23 14:50:45 +00:00
ichiro 8d5e7bd872 if AP is nothing, FrameLen is 3 or less. 2002-01-21 21:55:05 +00:00
ichiro 65967c6704 Print Association status changes to the console. 2002-01-21 11:29:22 +00:00
ichiro e08ec84292 "Association Faild" was added to "Link Stat" messages.
;
Implement wi_scan into wi.c.
forces if_wi to initiate one round of access point scan.
This code was written by jrb@cs.pdx.edu, modified and bug-fixed by ichiro@netbsd.org
2002-01-21 11:28:18 +00:00
ichiro 93c743cc3b mistake bit number of tx_rate
case 4 -> case 5
2002-01-20 07:26:14 +00:00
ichiro 19ae79a0b6 Upps
Garbage was removed.
2002-01-20 06:49:32 +00:00
ichiro f62afb33a0 add few Information frame types 2002-01-20 06:45:22 +00:00
ichiro c1a93623bd When the length of the key of WEP was 5 or less octets, WEP was set to 40Bit.
5.5MBps were added to ifmedia.
2002-01-20 05:39:52 +00:00
ichiro c9cdd04709 add scan req/result RIDs 2002-01-20 04:37:04 +00:00
eeh 160abd5faf Remove some obsolete code. 2002-01-19 03:16:38 +00:00
ichiro 0c0bcf42a6 to use 104bit WEP key 2002-01-18 11:41:49 +00:00
ichiro da39bf6c59 some resources was released at the time of detach. 2002-01-16 03:27:37 +00:00
ichiro f855f38bdd add detach/activate routine 2002-01-16 02:11:20 +00:00
bouyer 8bf0d659b0 Don't use chp->wdc if it's NULL. 2002-01-14 21:51:35 +00:00
christos f9b7ffe292 Add LBA48 support based on patches from Keisuke YOSHIDA. KNF a bit while
I am there.
2002-01-13 17:24:28 +00:00
tsutsui 84926576f1 Call malloc(9) with M_ZERO flag instead of memset() after malloc(). 2002-01-12 16:03:11 +00:00
drochner 5e6cfa6a09 print link status changes to the console 2002-01-09 19:37:02 +00:00
dbj f629228e87 Changes to the wdc(4) mi driver that add the WDC_CAPABILITY_SELECT
flag and a callback function which gets called whenever a target is
selected on a channel.

The macppc wdc driver needs to reprogram its timing register
differently for each target on a channel each time that target is
selected.  I also changed the ATA4_TIME_TO_TICK to use a divisor of
15, which brings our timing calculations consistent with darwin.

These patches fix problems on my dual usb ibook with combo dvd/cdrw
drive because the hard drive supports udma and the combo drive does
not.  Without turning off the udma timings in the configuration
register, I cannot access the non-udma combo drive.
2002-01-07 22:11:17 +00:00
jmcneill 4e14c9fb3f For cosmetic reasons, add 'ESS Technology ES1921' to the table of codec Ids. 2002-01-06 17:03:17 +00:00
explorer a40b01901f revert changes I made a long time ago. This should undo the changes which are causing problems on some non-x86 platforms. I'll probsably redo some of these changes, but after the next release branch. 2002-01-05 20:10:53 +00:00
mjacob d9a0044d29 Implement REDUCED INTERRUPT OPERATION usage for FC cards- this allows the
firmware to delay completion of commands so that it can attempt to batch
a bunch of completions at once- either returning 16 bit handles in mailbox
registers, or in a resposne queue entry that has a whole wad of 16 bit handles.

Distinguish between 2300 and 2312 chipsets- if only because the revisions
on the chips have different meanings.

Add more instrumentation plus ISP_GET_STATS and ISP_CLR_STATS ioctls.
Run up the maximum number of response queue entities we'll look at
per interrupt.

If we haven't set HBA role yet, always return success from isp_fc_runstate.
2002-01-03 21:45:06 +00:00
augustss 1c06f6a40f Add support for radio cards. Written by Maxim Tsyplakov and Vladimir Popov
for OpenBSD, from where it was imported.
2002-01-01 21:51:38 +00:00
thorpej aedf82267c Move the declaration of an enum to avoid an "unnamed field not allowed"
warning in gcc 3.1.
2001-12-31 21:30:01 +00:00
junyoung a6a57e7b6f Registers are of u_int8_t type. 2001-12-30 13:13:04 +00:00
junyoung 0d2905f4fc - Add a structure needed for access to CRTC registers.
- Add definitions for misc output register.
- Add defintions for the number of registers.
2001-12-29 17:44:35 +00:00
junyoung dde1e51a31 Add functions needed for access to CRTC registers. 2001-12-29 17:40:35 +00:00
junyoung ea3be41a59 KNF. 2001-12-29 17:06:50 +00:00
christos 49b8e36112 Clean up the C_ and S_ constants. We don't really need two sets of them.
Also make the interrupt handler for older 3com cards look like the xl one.
I.e. don't ack the interrupt latch bit before checking if it is set.
At the same time, introduce constants for the watched interrupts, so that
we don't copy them all over the place.
2001-12-28 20:35:46 +00:00
ichiro 766857df86 add FUJITSU MBH10302 specific Registers 2001-12-23 09:21:00 +00:00
elric bfa5b70752 Hmmm. These were done this year, not 3 years ago. 2001-12-22 01:38:20 +00:00
matt 7ddce9880c When mapping the consumer assignment, assign db_seg[0] to cb_seg[0] so any
private fields are copied as well.  Then adjust cb_seq[0] public fields.
This make the DEFPA come up on sparc64.
2001-12-21 23:21:47 +00:00
soren 95c864d4f6 Previous was committed by mistake; revert. 2001-12-18 15:50:23 +00:00
tsutsui 7d563fd40e malloc() + memset() -> malloc() with M_ZERO flag 2001-12-16 04:17:02 +00:00
bjh21 7f32875295 if_media support for the DP83905 AT/LANTIC (a souped-up DP8390). 2001-12-16 00:22:43 +00:00
bjh21 c72d5d40dd Add code to support the bugged Macronix MX98905 chip, as used in several
podulebus Ethernet cards.  This replaces the NE2000 memory-access routines
with ones that don't try to transfer more than 255 bytes at a time.

This code should perhaps be merged into ne2000.c, but presumably most NE2000
clones won't need it.
2001-12-15 17:47:34 +00:00
soren 875bff0962 To make dev/pcmcia work on platforms with 64-bit bus_addr_t and
32-bit bus_size_t (sparc), change the pcmcia_mem_map(9) offsetp
argument to bus_size_t as it is used as a bus_space offset.
2001-12-15 13:23:20 +00:00
soren df984ecc52 Use bus_size_t's for bus space read/write offsets. 2001-12-15 11:41:09 +00:00
bjh21 2ee0431a3d Register definitions for the NatSemi DP83905 AT/LANTIC, as used in many
podulebus Ethernet cards.
2001-12-14 10:16:03 +00:00
mjacob 219d22404b Major restructuring for swizzling to the request queue and unswizzling from
the response queue. Instead of the ad hoc ISP_SWIZZLE_REQUEST, we now have
a complete set of inline functions in isp_inline.h. Each platform is
responsible for providing just one of a set of ISP_IOX_{GET,PUT}{8,16,32}
macros.

The reason this needs to be done is that we need to have a single set of
functions that will work correctly on multiple architectures for both little
and big endian machines. It also needs to work correctly in the case that
we have the request or response queues in memory that has to be treated
specially (e.g., have ddi_dma_sync called on it for Solaris after we update
it or before we read from it).

One thing that falls out of this is that we no longer build requests in the
request queue itself. Instead, we build the request locally (e.g., on the
stack) and then as part of the swizzling operation, copy it to the request
queue entry we've allocated. I thought long and hard about whether this was
too expensive a change to make as it in a lot of cases requires an extra
copy. On balance, the flexbility is worth it. With any luck, the entry that
we build locally stays in a processor writeback cache (after all, it's only
64 bytes) so that the cost of actually flushing it to the memory area that is
the shared queue with the PCI device is not all that expensive. We may examine
this again and try to get clever in the future to try and avoid copies.

Another change that falls out of this is that MEMORYBARRIER should be taken
a lot more seriously. The macro ISP_ADD_REQUEST does a MEMORYBARRIER on the
entry being added. But there had been many other places this had been missing.
It's now very important that it be done.

For NetBSD, it does a ddi_dmamap_sync as appropriate. This gets us out of
the explicit ddi_dmamap_sync on the whole response queue that we did for SBus
cards at each interrupt.

Set things up so that platforms that cannot have an SBus don't get a lot of
the SBus code checks (dead coded out).

Additional changes:

Fix a longstanding buglet of sorts. When we get an entry via isp_getrqentry,
the iptr value that gets returned is the value we intend to eventually plug
into the ISP registers as the entry *one past* the last one we've written-
*not* the current entry we're updating. All along we've been calling sync
functions on the wrong index value. Argh. The 'fix' here is to rename all
'iptr' variables as 'nxti' to remember that this is the 'next' pointer-
not the current pointer.

Devote a single bit to mboxbsy- and set aside bits for output mbox registers
that we need to pick up- we can have at least one command which does not
have any defined output registers (MBOX_EXECUTE_FIRMWARE).

Explicitly decode GetAllNext SNS Response back *as* a GetAllNext response.
Otherwise, we won't unswizzle it correctly.

Nuke some additional __P macros.
2001-12-14 00:13:44 +00:00
junyoung f075aa60ac ANSIfication & cosmetic changes. 2001-12-13 08:35:38 +00:00
junyoung 9ff2a7a76d ANSIfy. 2001-12-13 08:34:55 +00:00
junyoung d5decae4e0 ANSIfication & cosmetic changes. 2001-12-13 08:31:39 +00:00
elric 94448f7e52 Update the ramdac interface to be allow the setting of dotclocks. This is
required to support the driver in ibm561.c.
2001-12-12 07:47:46 +00:00
elric 8ffabd82eb Initial support for the IBM RGB561 RAMDAC. This uses the same interface
as the Bt463 and Bt485 drivers.
2001-12-12 07:46:48 +00:00