Commit Graph

8527 Commits

Author SHA1 Message Date
iwasaki
723c83e3b4 Add `if (!cold)' checkings for functions which is called via SYSINIT.
Loading acpi.ko with kldload is disallowed, however some
functions were executed unexpectedly.

Approved by:	re
2002-11-24 02:27:07 +00:00
imp
6051661649 Remove a comple of bogus debug printfs that snuck in during some
debugging I was doing 3 months ago :-(.

Noticed by: scottl
Aproved by: the re blanket (different than the security blanket).
2002-11-23 23:09:45 +00:00
njl
d3c6d000f7 Allow acd(4) and cd(4) to support old behavior for CDRIOC*SPEED ioctls.
If the value from the user is less than 177, assume it is a multiple of
a single speed CDROM and convert to KB/sec.

No complaints from:	sos
Reviewed by:	ken
Approved by:	re
MFC after:	1 day
2002-11-23 22:51:50 +00:00
jhb
5e7f195b7c According to the ACPI spec, the bus number of the child PCI bus of a host
to PCI bridge can be read be evaluating the _BBN method of the host to PCI
device.  Unfortunately, there appear to be some lazy/ignorant/moronic/
whatever BIOS writers that return 0 for _BBN for all host to PCI bridges in
the system.  On a system with a single host to PCI bridge this is not a
problem as the child bus of that single bridge will be bus 0 anyway.
However, on systems with multiple host to PCI bridges and l/i/m/w BIOS
writers this is a major problem resulting in all but the first host to
PCI bridge failing to attach.  So, this adds a workaround.

If the _BBN of a host to PCI bridge is zero and pcib0 already exists
and is not us, the we use _ADR to look up our PCI function and slot
(we currently assume we are on bus 0) and use that to call
host_pcib_get_busno() to try and extract our bus number from config
registers on the host to PCI bridge device.  If that fails, then we make
an evil assumption that ACPI's _SB_ namespace lays out the host to PCI
bridges in ascending order and use our pcib unit number as our bus
number.

Approved by:	re
2002-11-22 18:11:13 +00:00
jhb
c532e9c104 Add a function host_pcib_get_bnsno() that attempts to determine the bus
number of the child bus of a host to PCI bridge by reading from proprietary
configuration registers in the host to PCI bridge devices.

Approved by:	re
2002-11-22 17:50:47 +00:00
emoore
1475ef66e0 Added support for DELL Perc4/DI.
Reviewed by: ps
Approved by: jhb
MFC after: 5 days
2002-11-21 16:06:10 +00:00
jake
4656497567 Create the ofwcons device at SI_SUB_CONFIGURE instead of SI_SUB_DRIVERS,
after configure() has run.  Only create the device if ofwcons is the
highest priority console.  Make a dev alias with the same name as the
firmware output-device property.
2002-11-18 06:19:12 +00:00
jake
a5dc43bc55 Setup a default tty mode even if the device is not the console. Don't
reset the chip on open if we're not the console.

This fixes running a getty on ttya or ttyb if console input and output
devices are screen.
2002-11-18 05:56:43 +00:00
jake
bfe1b13adf Remove some unnecessary code. Make the device description nicer. Add a
delay in the right place to flush output before switching consoles.
2002-11-18 04:02:42 +00:00
jake
67c42884ec - Add support for ALT_BREAK_TO_DEBUGGER; this is the only reliable way to
trigger a breakpoint with this chip.
- Fiddle the right bits in the cn input and output routines to disable port
  interrupts and enable visibility of the masked interrupt status bits.
- Register a shutdown final event handler to put the chip back in the mode
  that the prom expects.
2002-11-17 16:00:51 +00:00
joe
2a39e4d9df Apply some fixups in the driver_t's.
Submitted by:	akiyama
MFC after:	3 days
2002-11-17 14:22:37 +00:00
joe
0108ac9770 Use a sysctl for controlling the debugging output.
Submitted by:	akiyama
2002-11-17 14:08:48 +00:00
joe
53f6e9ca99 Fix a typo in a console message.
Submitted by:	akiyama
MFC after:	3 days
2002-11-17 13:33:55 +00:00
imp
fc2660e346 DETACH_FORCE was removed recently. Remove it here, even though this
isn't supported.
2002-11-17 04:52:37 +00:00
mux
a090ac4048 Catch up with sam's changes to network interfaces. 2002-11-15 14:36:33 +00:00
sam
14c32b5f40 network interface driver changes:
o don't strip the Ethernet header from inbound packets; pass packets
  up the stack intact (required significant changes to some drivers)
o reference common definitions in net/ethernet.h (e.g. ETHER_ALIGN)
o track ether_ifattach/ether_ifdetach API changes
o track bpf changes (use BPF_TAP and BPF_MTAP)
o track vlan changes (ifnet capabilities, revised processing scheme, etc.)
o use if_input to pass packets "up"
o call ether_ioctl for default handling of ioctls

Reviewed by:	many
Approved by:	re
2002-11-14 23:54:55 +00:00
sam
10eb947d27 o track either_ifattach/ether_ifdetach API changes
o use if_input for input packet processing
o don't strip the Ethernet header for input packets
o use BPF_* macros bpf tapping
o call ether_ioctl to handle default ioctl case
o track vlan changes

Reviewed by:	many
Approved by:	re
2002-11-14 23:49:09 +00:00
cognet
f38cf8f61b Remove the remaining calls to free(), they are not needed anymore now
device_get_softc() is used.
2002-11-14 19:54:33 +00:00
mux
e428fcdb38 Fix printf() format errors.
Reviewed by:	imp
2002-11-14 14:02:32 +00:00
mux
ea51ce165d Pass correct parameters to bus_space_barrier() instead of 0
so that this code compiles on alpha.
2002-11-14 13:25:53 +00:00
imp
7e20f49bf6 MFp4:
o Add support for bus_child_present call by implementing that method for cbb.
2002-11-14 05:20:39 +00:00
imp
7ed8f6e719 MFp4:
o Make this code a little easier to understand by using simpler if
  statements, but nesting them.
2002-11-14 05:18:53 +00:00
imp
01eae78096 MFp4:
o Use 32-bit unsigned types for things that really are 32-bit quantities,
  not bus_addr_t.  These are not the same as a bus_addr_t, so don't use
  that here.  Harmless on i386, introduced problems on sparc64.

Submitted by: jhb
2002-11-14 05:15:50 +00:00
imp
36d61097ba Remove an impossible condition. pf->dev is always non-null here. 2002-11-14 05:13:52 +00:00
imp
8eb26d8733 MFp4:
o Add a diagnostic for an 'impossible' condition.
o Collapse common code.
2002-11-14 05:12:02 +00:00
imp
c35b7acf66 minor correction to comment 2002-11-14 05:10:16 +00:00
imp
33cb79e0fa Add second and thrid bus-toaster IDs 2002-11-14 05:08:22 +00:00
imp
99afd075e5 regen to 1.37 2002-11-14 05:07:20 +00:00
imp
bd7ef5583b Add a third aic-based bustoaster. 2002-11-14 05:06:25 +00:00
scottl
87416e10ed When parsing the CIS, if a BAR tuple is encountered, enable the corresponding
bit in the PCI command register for the device.  Otherwise, device drivers
that look at this register to see which types of BARs are usable will think
that none of them are.
This allows my Adaptec 1480A cardbus card to finally work.

Reviewed by:	imp
2002-11-13 22:53:48 +00:00
mux
4068f70fba Remove a bunch of #include "opt_pci.h". 2002-11-13 17:40:15 +00:00
mux
3c348eda15 Unbreak kernel build.
Submitted by:	Hiten Pandya <hiten@angelica.unixdaemons.com>
2002-11-13 17:34:12 +00:00
mdodd
a119655a5e Convert kernel compile option PCI_ALLOW_UNSUPPORTED_IO_RANGE to
a loader tunable hw.pci.allow_unsupported_io_range.

Submitted by:	 Hiten Pandya <hiten@angelica.unixdaemons.com>
Approved by:	 re (murray)
2002-11-13 09:42:25 +00:00
mdodd
3a3ea4b9da Staticize local variable.
Submitted by:	 Hiten Pandya <hiten@angelica.unixdaemons.com>
Obtained from:	 re (murray)
2002-11-13 09:40:09 +00:00
simokawa
36297badba - Add fwmem_xfer_req() and use this in other functions. 2002-11-12 17:19:21 +00:00
simokawa
8595cb5b46 - Remove unused code.
- Fix style.
2002-11-12 17:16:20 +00:00
simokawa
86aed55239 fix wording. 2002-11-12 17:11:32 +00:00
simokawa
b445a4b51a Split userland services to fwdev.c. 2002-11-12 15:22:19 +00:00
simokawa
f4a7469d8f Use struct fw_device in fwmem.c
- specify fwmem target by EUI64.
- fw_noderesolve returns struct fw_device rather than dst.
- include struct firewire_comm in struct fw_device.
2002-11-12 13:49:17 +00:00
simokawa
6262082ff1 Add a prototype for suspend/resume. 2002-11-12 13:46:09 +00:00
simokawa
7c6dbbe64b Change interface of fwmem_read_*() functions to be usable from other part
of the module.
2002-11-12 11:15:01 +00:00
simokawa
664569e8ec Change interface of fwmem_read_*() functions to be usable from other part
of the module.
2002-11-12 11:08:50 +00:00
scottl
18271b238a Use better return types and a couple of casts to eliminate warnings on
alpha.  This will take the file out of sync with the private version
that we maintain, but alpha tinderbox has been broken for too long.

Tested on: i386, sparc64, alpha
2002-11-12 10:22:49 +00:00
simokawa
3b7ac3a4f9 - clean up 2002-11-12 10:02:50 +00:00
scottl
55d3589a83 Fix two typos from the previous commit. This code is definitely infectious. 2002-11-12 09:45:59 +00:00
scottl
57f021e104 Step one of cleaning and fixing cardbus:
- Fix some especially bad style in the CIS BAR tuple parsing code.
 - activate Option ROMS correctly.
 - de-obfuscate the Option ROM image selection code.
 - Fix mis-interpretation of the PCI spec that prevented Option ROMs whose
   CIS section wasn't in the first image from working.
 - Fix mis-interpretation of the PCI spec that prevented CIS's mapped into
   MEMIO space from working at all.
 - Reject invalid CIS pointers.

Reviewed by:	imp
2002-11-12 08:23:27 +00:00
simokawa
faf37223df - Remove unused code.
- Style fixes.
2002-11-12 05:52:01 +00:00
simokawa
af05a61150 Restrict process count in fwohci_arcv() and fwohci_ircv(). 2002-11-12 04:54:30 +00:00
mux
873c175b8f Capitalize the first letter of device descriptions
for consistency with the rest of the drivers.
2002-11-11 15:26:08 +00:00
tmm
1d05c95940 Declare the snp ioctl()s to work on udev_t, since that is what they
really do and dev_t is defined differently in kernel and userland.
Return a correctly formed udev from SNPGTTY.

Reviewed by:	dd
2002-11-11 10:45:31 +00:00
mux
b45f2ba21c Warning fixes. 2002-11-11 10:28:44 +00:00
mux
cff6ce6fdb Warning fix. 2002-11-11 10:17:01 +00:00
mdodd
55c878faa1 Replace {disable,enable}_intr() with critical_{enter,exit}(). 2002-11-10 03:45:49 +00:00
alfred
533541c47b Fix instances of macros with improperly parenthasized arguments.
Verified by: md5
2002-11-09 12:55:07 +00:00
jhb
686416bfa5 Fix some sizeof(int) != sizeof(void *) warnings. 2002-11-08 21:30:26 +00:00
jhb
eb9c5b7d92 - Move opt_fb.h earlier so it covers included headers.
- Update cdevsw.  Block majors are out, kqfilters are in.
- No need to bzero softc's that we get from new-bus.  They come that way to
  begin with.
2002-11-08 21:10:53 +00:00
jhb
f47ce099d4 Move include of opt_fb.h earlier so that FB_INSTALL_CDEV is defined in
included headers.
2002-11-08 21:04:44 +00:00
jhb
7dbfeb6da1 Fix printf warnings with %j and uintmax_t. 2002-11-08 20:59:23 +00:00
jhb
32c37d4a13 Use critical_enter/exit instead of disable/enable_intr to make this
driver more portable.
2002-11-08 18:32:57 +00:00
jhb
b72917b520 - Change the ATM stack functions to use intptr_t instead of int for opaque
arguments.
- Fix a few other places that assumed that sizeof(int) == sizeof(void *).

Reviewed by:	mdodd
2002-11-08 18:27:30 +00:00
pdeuskar
9918575c8a - Set RS (Report Status) bit on all descriptors of a packet instead of just the last one.
- Set RDTR to zero by default instead of 28.
- Fixed a problem with TX hangs with jumbo frames when number of fragments in the mbuf chain
is large.
- Added support for 82540EP based cards.

MFC after:	3 days
2002-11-08 18:14:17 +00:00
jhb
d102d4721a Use %z to print a size_t value. 2002-11-08 14:58:35 +00:00
mr
10ff71fdf9 Reviewed by: n_hibma
MFC after:	2 weeks
fix XPT_CALC_GEOMETRY to fill in some reasonable values.
Inspired by aic/sbp.
2002-11-08 07:57:42 +00:00
jhb
6a62fdc1c9 - Use %p to print pointers instead of casting pointers to an int and using
0x%x.
- Add a cast to quiet a warning.
2002-11-07 22:25:13 +00:00
jhb
ddccbcba68 Use [u]intmax_t and %j instead of long long and %ll to better fix warnings
I fixed earlier.

Requested by:	mux, jake
2002-11-07 22:23:46 +00:00
jhb
4f451155dc Make 'rclk' a uintptr_t to quiet warnings. 2002-11-07 22:22:10 +00:00
jhb
c792b17a1a Use %z and %j to quiet warnings. 2002-11-07 22:21:38 +00:00
jhb
acd06c3cb3 Cast a pointer to a uintptr_t instead of a u_int. 2002-11-07 22:21:10 +00:00
jhb
8120d9e4ea Fix the rest of the 64-bit warnings for the sr(4) driver. 2002-11-07 22:20:22 +00:00
jhb
5195107f71 Explicitly cast daddr_t's to long long's when printing them since daddr_t
is not long long on all archs.  (They happen to be long's on 64-bit arch's
and gcc considers that significant enough to warn about it.)  These should
probably be uintmax_t but I didn't feel like adding all the extra includes.
2002-11-07 21:52:51 +00:00
jhb
11dab05328 Cast a ptrdiff_t value to an int to quiet a warning since we don't support
%t in the kernel printf yet.
2002-11-07 21:34:21 +00:00
jhb
6675ed5b5a Quiet some DIAGNOSTIC printf warnings with band-aid casts. 2002-11-07 21:25:49 +00:00
jhb
03fe039475 Print pointers with %p instead of casting them to an unsigned int and
then printing them with 0x%x which doesn't work when sizeof(void *) >
sizeof(int).
2002-11-07 21:19:47 +00:00
jhb
b79b5c3b55 Fix lots of places that assume sizeof(int) == sizeof(void *). Most of
these were cosmetic.  However, at least two of these changes fix bugs
where a (fake) pointer to a RX descriptor was added to the physical
memory start address with the cast in the wrong place resulting in
rxdesc[pmem_start] instead of (uintptr_t)rxdesc + pmem_start.
2002-11-07 21:13:15 +00:00
jhb
be0579f238 Cast a pointer to uintptr_t instead ot u_int. 2002-11-07 19:56:21 +00:00
jhb
dc0f20a3d2 d_read_t functions return an int, not a ssize_t. (Considering the fact
that read(2) returns a ssize_t perhaps this is a bug in d_read_t?)
2002-11-07 17:26:38 +00:00
jhb
feb5060448 Warning fixes for sizeof(int) != sizeof(void *). 2002-11-07 17:25:33 +00:00
jhb
89f9d57a60 - Make 'irq' intptr_t instead of uintptr_t so it handles a value of -1
properly.
- Add a cast to quiet a printf warning.
2002-11-07 17:20:58 +00:00
iedowse
92eb830a35 Properly fix the occassional random crash issue that revision 1.142
just limited to the DEVICE_POLLING case. This removes the FXP_RFA_RNRMARK
hack, and replaces it with a softc flag that is used to record when
the handling of a no-resource condition was deferred due to running
out of DEVICE_POLLING cycles. This was tested on -stable, but the
code is essentially the same as in -current. It should only affect
the case where DEVICE_POLLING is defined.

The details of the mechanism behind the crashes are still uncertain
but the most likely cause seems to be some kind of hardware confusion
when the no-resource recovery code is accidentally invoked while
the receiver is still active. This could have happened if the
hardware left the 0x4000 bit of the RFA status word set. The comments
in the commit log for revision 1.142 stating that the driver could
clash with the hardware writing to this status word were not correct.

Tested by:	Guy Helmer <ghelmer@palisadesys.com>
2002-11-07 16:04:07 +00:00
simokawa
2d6271e925 - Fix printf warnings on 64bit plathome.
- Disable fw_vmaccess() because it's not used and unuseful 64bit plathome.
2002-11-07 02:13:40 +00:00
jhb
22de9969b0 Adjust some casts to quiet warnings.
Reviewed by:	mdodd
2002-11-06 22:58:55 +00:00
jhb
323d135eb0 Use long long to print out a bus_addr_t again. 2002-11-06 22:42:45 +00:00
jhb
50f4905075 Cast a bus_addr_t to a long long to make printf happy. 2002-11-06 22:40:01 +00:00
joe
7a3b87e1c5 Packed structures are defined differently in older gcc's, like the one
currently in -stable.  Put the exception into usb.h instead of having it
hard coded in the sound code.
2002-11-06 21:37:21 +00:00
jhb
5203196b0a Use bus_addr_t instead of u_int32_t in functions to convert between
physical and virtual addresses.
2002-11-06 21:19:17 +00:00
jhb
534622e551 Use the explicit value 0xffffffff instead of assuming that is what ~0UL
equals.

Approved by:	imp
2002-11-06 20:40:29 +00:00
jhb
5f80d8bbe2 Add some band-aid casts to quiet warnings. This driver still assumes
that sizeof(int) == sizeof(void *) == 4.  However, it also seems that the
hardware assumes this.
2002-11-06 20:34:38 +00:00
jhb
a956a28e35 More int != pointer stuff. 2002-11-06 20:16:39 +00:00
jhb
fd412ae82b Repeat after me: sizeof(int) != sizeof(void *). 2002-11-06 20:04:41 +00:00
jhb
59eda164d2 Use some long long casts to quiet warnings in debug printf's on alpha. 2002-11-06 19:52:13 +00:00
jhb
6c4cc56664 Use a bandaid to fix a warning. However, this driver is very, very far
from being MI in any fashion.  It currently "assumes" that it can get
a kernel virtual address for a phyiscal address by adding KERNBASE to the
physical address.  It also tries to read values out of a the PC BIOS on
all archs.  It also uses "manual" inb() and outb()'s to talk to the mcclock
device which just happens to be at that location on both i386 and alpha.
This driver should likely be i386-only.
2002-11-06 19:42:59 +00:00
jhb
292fe1c0a4 Fix warning where sizeof(size_t) != sizeof(int). 2002-11-06 18:55:24 +00:00
simokawa
131fe3293a Add support for DEVICE_POLLING.
PR: kern/44772
Submitted by: Takashi Oono <takashi@yha.att.ne.jp>
MFC after: 1 week
2002-11-06 15:50:32 +00:00
simokawa
e6dea8f633 Minor clean up on cdb handling. 2002-11-06 15:34:52 +00:00
joe
e47c241892 There's no need for a locally defined usb_proc_t when we've got
usb_proc_ptr that does the same thing.
2002-11-06 14:29:27 +00:00
mdodd
a349f5fa5c Whitespace, style fixes. 2002-11-06 08:08:55 +00:00
simokawa
58b83e0c52 - Let the PCI code try to route interrupt in -current
- Print warning in -stable.
2002-11-06 04:07:05 +00:00
mdodd
700f038d71 Remove undefined variable.
Somehow this didn't make it in the last commits.
2002-11-05 10:56:14 +00:00
mdodd
da2dfb243f Style/whitespace changes. 2002-11-05 10:12:03 +00:00
mdodd
313e62ce9c Fix for GEOM.
Tested on:	 i386
2002-11-05 09:50:15 +00:00
mdodd
a7a5118115 - Convert to newbus, bus_space etc.
- Move to MI space.

Tested on:	 i386
2002-11-05 09:37:32 +00:00
simokawa
0c6061a847 Sony CXD3222 OHCI i.LINK chips needs more DELAY before starting SCLK
when no devices are connected.
2002-11-05 02:42:28 +00:00
cognet
2b19845e44 Call pcm_chn_destroy() in pcm_killchan() so that channel mutexes are destroyed and struct pcm_channel freed.
Reviewed by:	cg
MFC after:	3 days
2002-11-04 19:12:02 +00:00
imp
c3a4aaf573 Detach the pccard bus children when we eject a 16-bit card, not the
32-bit ones.  This was introduced in the last commit.
2002-11-04 03:01:56 +00:00
iwasaki
d978848622 Add status initialization code for acpi_cmbat and acpi_acad,
acpi_cmbat_init_battery() and acpi_cmbat_init_acline() respectively.
Call acpi_cmbat_init_battery() from acpi_cmbat_resume() too just in
case.
This is a workaround for embedded controller operations which is
unstable for about a minute (typically 30 or 40 sec.) at boot time.
2002-11-03 10:49:24 +00:00
imp
fd4399a908 MFp4:
o Always release the resources on device detach.
o Attach resources the same with driver added as we do we do in the insert
  case (maybe this should be a routine).
o signal the wakeup of the thread on resume instead of trying to force an
  interrupt.
o Minor debug hacks.
o use 0xffffffff instead of -1 for uint32_t items.
o Don't complain when we're asked to detach no cards.  This is normal.
o Eliminate the now worthless second parameter to card_detach_card.
o minor style(9)isms

Some of these patches may be from: iwasaki-san, jhb, iadowse
2002-11-02 23:00:28 +00:00
mdodd
3dfe105e7a Merge PC98 changes. 2002-11-02 04:18:10 +00:00
iedowse
ab4014bff8 Specify the correct protocol for the Olympus C-1 camera. It appears
that this entry was accidentally given the wrong protocol in revision
1.61.

PR:		kern/42417
Submitted by:	"Moriki, Toshiomi" <toshiomi@whi.m-net.ne.jp>
2002-11-01 01:13:20 +00:00
iwasaki
e85ea23a6d Don't examine ACPI_STA_ENABLE bit of device's_STA object on initial
state.  Instead, use ACPI_STA_PRESENT and ACPI_STA_FUNCTIONAL for it.
In some ACPI BIOS implementations, boot disabled devices don't have
ACPI_STA_ENABLE bit in _STA object.
Also it is not fatal if getting current IRQ of boot disabled devices
is failed in initial state.

And minor fixes.
2002-10-31 20:43:02 +00:00
iwasaki
400e1f5e97 Interpret new loader tunable "hw.acpi.verbose" to turn
verbose mode on at boot time.
2002-10-31 20:23:41 +00:00
iwasaki
c16ad03604 Invoke 3 ACPI task threads as default if option ACPI_MAX_THREADS is
not defined.
To make previous default behavior (ACPI_MAX_THREADS undefined), define
option ACPI_MAX_THREADS as 0.
2002-10-31 17:58:39 +00:00
emoore
b461de566a Incorrect typecast. 2002-10-31 14:10:00 +00:00
peter
7037f5c5b1 Add tunable "hw.eisa_slots" to allow overriding the default number
of slots (10).
2002-10-31 00:45:49 +00:00
emoore
179f0b4ddc amr.c,
amr_cam.c,
amrreg.h,
amrvar.h:
- added support for 12/16 byte cdb's, effecting CAM branch only ( non-disk support )

amrreg.h:
- increased number of scatter gather elements from 16 to 26.

amr_pci.c:
- amr_pci_free(), incorrect bus tag meant for 'amr_mailbox_dmat' was being freed

all:
- copyright change requested by scottl

Reviewed by:	ps,scottl
MFC after:	1 week
2002-10-30 22:00:11 +00:00
iedowse
d7097cadfd Save and restore the interrupt Edge/Level Control Registers (ELCR)
across system suspends on the Intel 82371AB PCI-ISA bridge. On a
Sony Vaio C1XD that I have, these registers are not set correctly
after an ACPI resume. The result is that after resuming, a shared
IRQ is left in edge-triggered mode so the interrupt can later become
jammed in a state where the line remains asserted, but the handler
is never called.

Reviewed by:	jhb
2002-10-30 19:55:06 +00:00
iedowse
94318a914f Revision 1.136 introduced two features that may cause undefined
behaviour of the hardware: a possibly reserved bit of the receive
descriptor (RFA) `status' field is borrowed to record no-resource
(RNR) events, and the same status field is read and written to at
a time that may clash with the hardware updating this field.

There is no hardware documentation available to determine if these
things are safe to do; the second issue almost certainly isn't, and
the first is only safe if there is documentation saying that this
bit is free to be used by the driver. The PR referenced below
provides extremely convincing evidence that the changes cause random
crashes on some (unusual) hardware.

Since these features are only required by the DEVICE_POLLING case,
this commit makes their use conditional on that option. It does not
change the DEVICE_POLLING case, but at least people with the rare
hardware on which this code causes problems can now avoid the crashes
by not enabling DEVICE_POLLING.

PR:		kern/42260
Reviewed by:	luigi
Problem revision found by: Pawel Malachowski <pawmal@unia.3lo.lublin.pl>
Tested by:	Pawel Malachowski <pawmal@unia.3lo.lublin.pl>
MFC after:	1 week
2002-10-30 19:08:56 +00:00
iedowse
792310e769 Check for errors and zero-length transfers in the ulpt_input() input
pipe callback function, and just return if these cases are detected.
Without these checks, the ulpt driver may cause an infinite loop
of failing USB transfers that can hang the whole machine. This makes
printing work for me on a HP DJ950C printer.
2002-10-30 01:18:58 +00:00
jhb
13f1045bf9 Add a missing newline to the end of a device_printf().
Reported by:	Michael G. Petry <petry@NetMasters.Com>
2002-10-29 19:08:55 +00:00
semenu
51ffa1e8b1 Remove unnecessary <sys/malloc.h> include.
Submitted by:	marius@alchemy.franken.de
MFC after:	1 week
2002-10-29 00:20:47 +00:00
scottl
7895420367 Reduce namespace pollution to userland.
Spotted-by:	bde
2002-10-28 17:08:07 +00:00
mdodd
9c8acae4f7 Handle hints for the atspeaker device.
Document same.
2002-10-28 02:00:09 +00:00
mux
0ef4b48b32 Fix a bunch of warnings on 64 bit platforms in the
CISS_DEBUG case by appropriately using %z and %j.
2002-10-27 12:27:04 +00:00
mux
a6b93b4e90 Fix a warning when CISS_DEBUG is defined. 2002-10-27 12:05:11 +00:00
mux
d2ac0d86f6 Add a missing destroy_dev(). 2002-10-26 18:09:30 +00:00
tmm
d0b6b7a6ad Call bpf_mtap() on outgoing packets. 2002-10-26 12:32:07 +00:00
sam
3859ed1230 o m_adj rx buffer so IP header is 32-bit aligned
o replace EPIC_MGETCLUSER with m_getcl

MFC after:	1 week
2002-10-25 22:06:03 +00:00
jhb
70f2b22f03 Cast si_drv2 to intptr_t instead of int to quiet warnings.
Tested on:	alpha
Reported by:	marcel (on an ia64)
2002-10-25 20:49:24 +00:00
iwasaki
4e82bade9f Add new loader tunable hw.acpi.ec.event_driven so that we control
EcWaitEventIntr()'s behavior.
Some EC controllers require this for working properly (including
sleep/wakeup).
2002-10-24 10:56:33 +00:00
jhb
5fb412a107 - New-bussify the rc(4) device driver.
- Add detach support to the driver so that you can kldunload the module.
  Note that currently rc_detach() fails to detach a unit if any of its
  child devices are open, thus a kldunload will fail if any of the tty
  devices are currently open.
- sys/i386/isa/ic/cd180.h was moved to sys/dev/ic/cd180.h as part of
  this change.

Requested by:	rwatson
Tested by:	rwatson
2002-10-23 15:53:09 +00:00
simokawa
97ccd4c7eb - Dequeue OCBs more safely in sbp_abort_all_ocbs(). 2002-10-23 13:04:02 +00:00
markm
b729fd6d31 Very minor whitespace/style nit. 2002-10-23 10:14:30 +00:00
thomas
8caec9a500 Fill in missing parts of the ATAPI/CAM XPT: implement XPT_RESET_BUS
and XPT_RESET_DEV.

In order to properly handle reset requests whether they originate in the
ATA layer (atacontrol reinit) or from the CAM layer (camcontrol reset)
ata_reinit does not cause the SIM to be deallocated anymore. The SIM
is now unconditionnally created for each ATAPI bus.

This change may cause existing bus ids to change on some setups.

Reviewed by:	roberto
Approved by:	sos
2002-10-22 20:18:51 +00:00
semenu
44d9c31ef8 Remove the OpenBSD comatibility stuff. Many changes to be more style(9)
compilant. Split two pieces if code into separate functions to do not
exceed line length due to indentation.
2002-10-22 00:57:51 +00:00
phk
9cf59043a1 We want /dev/md0 for ramdisk roots, not /dev/md0c.
Sponsored by:	DARPA & NAI Labs
2002-10-21 20:08:28 +00:00
simokawa
ee934c85cb - Abort all OCBs for timeout.
- Improve warning message.
2002-10-21 15:36:59 +00:00
simokawa
7228ba2873 fix prototype of asyreqq(). 2002-10-21 10:21:49 +00:00
simokawa
b52cd7f4bd These (userland) files shouldn't be here. 2002-10-21 10:14:26 +00:00
robert
f3c329d265 Do not try to work around ``poor (un)sign extension code''
creation by GCC-2.6.3.  Casting pointers to unsigned char
to volatile pointers to unsigned char seemed to produce
better results on the ia32 architecture with old versions
of GCC.
The current FreeBSD system compiler GCC-3.2.1 emits
better sign extension code for non-volatile variables:

volatile char c;
int i = c;

is compiled to:
...
movb	-1(%ebp), %al
movbsl	%al, %eax
movl	%eax, -8(%ebp)
...

char c;
int i = c;

is compiled to:
...
movbsl	-1(%ebp), %eax
movl	%eax, -8(%ebp)
...

The same holds for zero-extension of dereferenced pointers
to volatile unsigned char.
When compiled on alpha or sparc64, the code produced for the
two examples above does not differ.
2002-10-20 22:50:13 +00:00
phk
d9cf8d5478 Use ENOSPC error return, not ENOMEM.
Use %jd rather than %lld.
2002-10-20 20:50:31 +00:00
phk
12498a44e8 '&' is not needed to pointerize functions.
Spotted by:	FlexeLint
2002-10-20 20:42:25 +00:00
tegge
8516a6e929 Fix data corruption caused by last byte in oddly sized transfers being read
to wrong location in RxBuf and written from wrong location in TxBuf.
2002-10-20 18:43:11 +00:00
phk
241a8a9818 Fix mis-indentation.
Approved by:	scottl
2002-10-20 16:00:43 +00:00
phk
973cbe0d43 Fix mis-indentation.
Spotted by:	FlexeLint
2002-10-20 08:46:56 +00:00
scottl
710948de69 After much delay and anticipation, welcome RAIDFrame into the FreeBSD
world.  This should be considered highly experimental.

Approved-by:	re
2002-10-20 08:17:39 +00:00
kan
59d5e4480c Whitespace fixes per style(9)
Approved by:	obrien
2002-10-19 21:58:11 +00:00
njl
1813115081 * Add CDRIOC{READ,WRITE}SPEED ioctls to cd(4). Units are in KB/sec.
* Change atapi-cd ioctls to use the same units.
* Change burncd, cdcontrol to convert CDROM speed to KB/sec before
calling the ioctl.  Add a "max" speed option for their command lines.

This change does not break ABI but does change the units passed through
the ioctl so 3rd party software that uses cdrio.h will have to convert
(most likely by multiplying CDROM speed by 177 to get KB/s).

PR:		kern/36845
Submitted by:	Philipp Mergenthaler <p@i609a.hadiko.de> (CAM ioctls)
Reviewed by:	sos, ken
MFC after:	1 month
2002-10-18 22:03:39 +00:00
emoore
b9279f6877 (1) added LSI Logic copyright, and legal line 3 in license, and string
changes for "LSILogic"
(2) enabled non-disk support through CAM interface
(3) HA_INQ (a) enabled tagged queuing (b) disable reset during
	driver loading (b) renamed BSDi string to LSI
(4) disabled detecting disk devices during SCSI INQUIRY
(5) changed dcdb single element sglist to send one entire buffer chunk
(6) nsgelem not set in sglist
(7) ap_data_transfer_length not set for dcdb
(8) changed "struct thread" to "d_thread_t" for compatibliity { xxx_open,
	xxx_close, xxx_ioctl }
(9) miscellaneous compatiblity fixes
(10) bug fix for 0x0409/0x1000 card
(11) added compiling amr_cam.c in sys/conf/files
(12) added compiling amr_cam.c in sys/modules/amr/Makefile

Reviewed by:ps
MFC after:1 week
1 week
2002-10-18 21:29:14 +00:00
tmm
930f46e30b Add a pseudo device which allows to access the OpenFirmware device tree
via ioctl()s. This was ported from NetBSD and adapted a bit to better
match our OpenFirmware support code.
2002-10-18 15:23:43 +00:00
tmm
c68dcf7b48 Add an #ifdef _KERNEL to make it possible to include this file from
userland (to get the typedefs).
2002-10-18 15:21:09 +00:00
nyan
9247d17937 typo.
Submitted by:	SAWADA Hodaka <hoda@tail.gr.jp>
MFC after:	1 day
2002-10-18 12:06:01 +00:00
kbyanc
35c72bc070 Make kqueue(2) work for virtual terminals.
PR:		40486
Submitted by:	Jilles Tjoelker <jilles+fbsd-bugs@stack.nl>
2002-10-17 05:48:56 +00:00
marcel
ea23c70af4 Suppress the uninitialized variable warning on ia64 introduced by
the previous commit by initializing i and j. These initializations
will normally be eliminated by the compiler.
2002-10-17 03:45:34 +00:00
jhb
68c67aa0ed Whitespace. 2002-10-16 19:11:59 +00:00
jhb
4cd3dda291 Catch up to changes in acpivar.h to add support for using ACPI on
4-stable systems.

Sponsored by:	The Weather Channel
2002-10-16 17:28:53 +00:00
jhb
a307d11408 struct timecounter is defined in sys/time.h on 4-stable.
Sponsored by:	The Weather Channel
2002-10-16 17:27:40 +00:00
jhb
c4f2612994 - Include lock headers on current in this header instead of putting
#if's in all the other ACPI source files.
- Use splhigh() for the ACPI subsystem lock on 4-stable.

Sponsored by:	The Weather Channel
2002-10-16 17:27:11 +00:00
jhb
e2a2be0fbb - In AcpiOsGetThreadId(), allow for curproc to be NULL on 4-stable systems.
In that case use proc0's pid to return the thread ID.
- For 4-stable, use the generic swi taskqueue for ACPI events rather than
  implementing our own.

Sponsored by:	The Weather Channel
2002-10-16 17:25:29 +00:00
jhb
bce0ae714f Implement the internal locks of an ACPI semaphore with splhigh() on
4-stable.  -current uses a mutex for this purpose.

Sponsored by:	The Weather Channel
2002-10-16 17:23:34 +00:00
sam
edece5adc2 whitespace/indentation fix from phk 2002-10-16 17:07:41 +00:00
iwasaki
fd83d9633e Fix a possible bug about freeing non-malloc'ed pointer.
Suggested by:	jhb (in -current ML)
2002-10-16 15:42:27 +00:00
markm
658a7ab8f2 Module-ize the 'core' crypto stuff. This may still need to be compiled
into the kernel by default (if required), but other modules can now
depend() on this.

Fix inter-module dependancy.

Earlier version OK'ed by:	sam
2002-10-16 14:31:34 +00:00
robert
1ff9dd778b Cast the first argument to bzero() to `void *' after casting it to
`uintptr_t' to pass it as the type bzero() expects.
2002-10-16 11:15:35 +00:00
phk
ef17fed2cc Be consistent about funtions being static.
Spotte by:	FlexeLint.
2002-10-16 10:16:17 +00:00
phk
32fb67c36b Be consistent about functions being static.
Properly put macro args in ().

Spotted by:	FlexeLint.
2002-10-16 09:14:59 +00:00
phk
1e787bca2f Be consistent about functions being static.
Spotted by:	FlexeLint.
2002-10-16 09:04:52 +00:00
phk
32a73ad530 Be consistent about functions being static.
Spotted by:	FlexeLint.
2002-10-16 08:48:39 +00:00
phk
11d2dcbede Fix misindentation.
Spotted by:	FlexeLint
2002-10-16 08:45:34 +00:00
gibbs
5e3507cec0 Never allow memory mapped I/O in PCI-X mode on controllers that
do not support that configuration.  This should fix problems with
embedded 7902 controllers running in PCI-X mode.
2002-10-16 02:59:03 +00:00
sam
2a86be217a Replace aux mbufs with packet tags:
o instead of a list of mbufs use a list of m_tag structures a la openbsd
o for netgraph et. al. extend the stock openbsd m_tag to include a 32-bit
  ABI/module number cookie
o for openbsd compatibility define a well-known cookie MTAG_ABI_COMPAT and
  use this in defining openbsd-compatible m_tag_find and m_tag_get routines
o rewrite KAME use of aux mbufs in terms of packet tags
o eliminate the most heavily used aux mbufs by adding an additional struct
  inpcb parameter to ip_output and ip6_output to allow the IPsec code to
  locate the security policy to apply to outbound packets
o bump __FreeBSD_version so code can be conditionalized
o fixup ipfilter's call to ip_output based on __FreeBSD_version

Reviewed by:	julian, luigi (silent), -arch, -net, darren
Approved by:	julian, silence from everyone else
Obtained from:	openbsd (mostly)
MFC after:	1 month
2002-10-16 01:54:46 +00:00
sam
4cf0d79421 missed additional callout that can run w/o Giant locked 2002-10-15 23:25:56 +00:00
phk
b7ae862a6d Include "opt_kbd.h" since certain structures size depend on the value
of KBDIO_DEBUG which may be defined in the kernel config (as it is in NOTES).

This kind of bug is a _really_ horribly thing as we end up with one bit
of code thinking a particular structure is 136 bytes and another that it
is only 112 bytes.

Ideally all places would remember to #include the right "opt_foo.h" file,
but I think in practice file containing the variable sized struct should
#include it explicitly as a precaution.

Detected by:	FlexeLint
2002-10-15 21:35:01 +00:00
marcel
4b884ea067 Fix previous commit: Don't cast integral types to pointers to
print them with %p. Cast to unsigned long and print with %#lx.

Discussed with: bde
2002-10-15 01:50:09 +00:00
alfred
9693ff7295 Put function return types on a line by themselves.
Cleanup my earlier de-__P sweep and remove whitespace between function
names and paramters.
2002-10-14 22:31:52 +00:00
mjacob
29308350ed LINT related fixes (as noticed by bde) 2002-10-14 22:13:51 +00:00
jhb
af2f721bc3 This file doesn't need opt_bus.h. 2002-10-14 19:11:19 +00:00
cognet
6fa5a2e248 Fix support for the ALi M5451 (rev 0.2) chip.
Reviewed by:	orion, mux
Approved by:	mux (mentor)
MFC after:	1 week
2002-10-14 11:47:37 +00:00
imp
2cf51225e1 o Comment out the symbol download code for 4.x.
o Add hooks for doing power management of the output signal.
o Minor hacks to make flexlint happy wrt staticness of functions.
2002-10-14 01:59:57 +00:00
cognet
20c51b1bbd Import of the trm(4) driver (for Tekram DC395U/UW/F and DC315U SCSI adapters).
Reviewed by:	mux, scottl
Approved by:	mux, scottl
2002-10-13 18:32:39 +00:00
jake
99f37adfdd MODINFO_SIZE metadata has type size_t, not unsigned. This makes preloaded
md root work on sparc64.
2002-10-13 18:19:22 +00:00
marcel
f3bd8dcc22 Make this compile on 64-bit architectures (e.g. ia64) by not assuming
pointers (but more precisely vm_offset_t) can be printed with %x. Use
%p instead and cast the argument to caddr_t.
2002-10-12 20:40:36 +00:00
mjacob
f9b32393e1 Know that a 10160 is the same as a 12160.
MFC after:	0 days
2002-10-12 00:12:31 +00:00
imp
1998745943 s/modunload/kldunload 2002-10-11 20:22:20 +00:00
sam
adba3a4380 No need to hold Giant will harvesting RNG data; change callout_init so
this no longer happens for callbacks.
2002-10-11 17:34:00 +00:00
mjacob
4c7b07a1ef This should enable 10160 support. As best as I can tell, the same
f/w as 12160 is used, and otherwise, this is just a single channel
variant of the 10160.

MFC after:	0 days
2002-10-11 17:28:01 +00:00
mjacob
89ee3553f8 Fix the code so that it no longer on alpha refers to the now nonexistent
pci_cvt_to_bwx.

This doesn't necessarily make bge(4) now actually *work* on an alpha.
It loads, configures, and then about 30 seconds later, my XP1000 hard
freezes. But, hey, it's a start.

Obtained from:	gallatin@freebsd.org
2002-10-11 17:18:54 +00:00
imp
3339dd55d9 add some devices from NetBSD 2002-10-11 07:03:09 +00:00
imp
8f1b4d8ab7 Some renamings from pccarddevs
Add Linksys WCF11
Bay eMobility 11B
2002-10-11 07:02:31 +00:00
imp
e89d464126 sync to 1.36 of pccarddevs 2002-10-11 07:00:53 +00:00
imp
fb7adefd2d Merge from NetBSD plus diff reduction to netbsd's pcmciadevs 1.177 file:
o NETGEAR2 -> NETGEAR_2
o PLANEX2 -> PLANEX_2
o ACTIONTEC HWC01170 -> ACTIONTEC PRISM
o linksys iwn2 -> iwn3
o Add: Ositech, DLINK_3, BAY emobility, buffalo lpc3_clt, netgear fa410TX.
  dynalink accton EN2216, corega ether II PCC TD, dlink dfe670TXD,
  dynalink l10c

Obtained from: NetBSD
2002-10-11 07:00:30 +00:00
imp
164fbccb93 Add Planex GWNS11H
Submitted by: hanai-san
2002-10-11 05:43:38 +00:00
imp
0005d653fc sync to 1.35 of pccarddevs 2002-10-11 05:40:45 +00:00
imp
2eec8fe31f Add a new NewMedia BUSTOASTER that I bought on ebay (sadly w/o scsi dongle).
Add PLANEX GWNS11H submitted by hanai-san.
2002-10-11 05:40:13 +00:00
imp
23099be287 o Set CBB_CARD_OK just before CARD_ATTACH_CARD. If ATTACH_CARD fails, then
clear the bit.  This allows ata driver to attach its children because
  it needs the interrupts enabled to succeed.

Submitted by: iwasaki-san

o Spell CardBus as CardBus, not Cardbus or CardBUS while I'm here.
2002-10-11 04:30:59 +00:00
mjacob
ffa0658041 Get the most recent 2300 f/w that's on the QLogic intranet- fixes lots
of buglets and quite a few bugs.

MFC after:	1 day
2002-10-10 17:30:06 +00:00
mjacob
e879d17197 From PHK's flex tool- we can get -1 returned from xpt_path_target_id,
so don't index off of it.

MFC after:	1 day
2002-10-10 17:29:05 +00:00
jhb
c7f1a97230 Use d_thread_t for cdevsw functions instead of struct thread * so that it
is easier to share this code with 4-stable.
2002-10-09 20:39:26 +00:00
jhb
405e3dcfbf Include <dev/acpica/acpivar.h> instead of <acpica/acpivar.h> like all the
other sys/dev/acpica files.
2002-10-09 20:38:21 +00:00
peter
36126b0ba6 Fix build on alpha. It used to case an int to a pointer in order to do
pointer arithmetic.  Detour via uintptr_t, since we're generating an
offset not dereferencing them.
2002-10-09 09:30:57 +00:00
peter
9a5a0eace4 Change BUS_SPACE_UNRESTRICTED (~0ul) to plain ~0 when used in the
'int nsegments' argument to bus_dma_tag_create().  ~0ul does not fit in
an int on machines with 64 bit longs.
2002-10-09 08:54:32 +00:00
peter
483d6181f7 Change BUS_SPACE_UNRESTRICTED (~0ul) to plain ~0 when used in the
'int nsegments' argument to bus_dma_tag_create().  ~0ul does not fit in
an int.
2002-10-09 08:50:26 +00:00
sos
bc46f827dc Fix for the panic when using a Promise TX2.
The problem is that the code does a check for the granparent of
the Promise chip, if this is a bridge of the right type, we have
a TX4 on our hands, and need to handle that ones "issues".
Now the grandparent check cause subtle bugs in the newbus system,
mainly that pci_get_devid doesn't return an error value.
This patch works around the issue by using BUS_READ_IVAR() instead.
2002-10-08 18:25:10 +00:00
jhb
bda41137cf Don't panic for a bad ivar request, just return ENOENT. 2002-10-08 15:44:35 +00:00
imp
2af88da4a8 Make kldunload cbb work:
o Implement the thread killing interlock as described by jhb in arch@
  while talking to markm.
o Hold Giant around cbb_insert()/cbb_remove().  Deep in the belly of
  the vm code we panic if we don't hold this when we activate the memory
  for reading the CIS.
o If we had to do the kludge alloc, then do a kludge free.
2002-10-08 03:53:52 +00:00
kan
cb71b7bb07 Add device driver for Belkin F5U103 and compatible USB-to-serial adapters.
Reviewed by:	n_hibma
Approved by:	obrien
2002-10-08 03:09:57 +00:00
kan
10814c1dc0 Regen after usbdevs rev. 1.102.
Reviewed by:	n_hibma
Approved by:	obrien
2002-10-08 03:04:14 +00:00
kan
7c3444e142 Add entries for:
Belkin F5U103
	Belkin F5U120-PC Hub
	GoHubs GoCOM232
	Peracom single port
USB-to-serial adapters.

Reviewed by:	n_hibma
Approved by:	obrien
2002-10-08 03:00:37 +00:00
imp
7ef36b2111 MFp4:
o Better resume code.  Move the comments around.  Force the socket state to
  be querried.  Ack the interrupts properly.
o Intercept the interrupt requests and keep a list of interrupts to service
  ourselves.  When the card attaches, set its OK bit.  When we get a card
  status change interrupt for that card, clear the OK bit.  Don't call the
  ISR if the OK bit is cleared.  Iwasaki-san and yamamoto-san have both
  sent me patches that fix the same problem this fixes, but at the pccard
  level.
o Try to get the signalling of the thread to actually die.  This might not be
  100% right, but it is less wrong than before.
o Add a SIC next to a TI type that looks like it could be wrong, but isn't.
2002-10-07 23:11:29 +00:00
imp
a08ac34c17 o Add a nomatch routine so we whine when we don't know what to attach to
the card.
o Add comments about how we're doing the CIS activation.
o Add location and pnp info functions.
o Add better code to hopefully deal with ata cards better (and other drivers
  that allocate resources that we didn't preallocate from the CIS).  OLDCARD
  used to allow it, but NEWCARD was pickier.  I'm not 100% sure this works,
  but it doesn't break anything.
2002-10-07 23:05:33 +00:00
imp
61ae73678b Merge changes from NetBSD through version 1.17 of this file. These
give us slightly better error checking than before and interpret what
default bits mean better.  See the NetBSD CVS tree for the authors of
these changes (revs 1.10 .. 1.17).
2002-10-07 23:03:17 +00:00
imp
f7540bad93 o Add routines to return the location and pnpinfo for this card.
Note, we return the PCI pnp info, but in fact that's wrong to do
  since that data is not defined for CardBus cards.  CardBus says that
  these registers are undefined and one should use the CIS to do
  device matching.  To date, all CardBus cards have had these
  registered defined, no doubt because they are using common silicon
  to produce both the PCI cards and the CardBus cards.  However, it isn't
  any worse than the rest of the system, so just note it in passing and
  move on.
o Also sort prototypes while I'm here.
2002-10-07 23:00:51 +00:00
imp
2046d1c9de Don't abuse the fact that -a == ~a + 1. Signed vs unsigned checkers
complain when a is a unsigned type.  So instead use the latter here
and be on our way.

Spotted by: flexlint by way of phk
2002-10-07 22:58:24 +00:00
imp
79238a644f Add extra set of parens around the barbit macro to make it clear what
we're intending to shift.

Spotted by: flexlint by way of phk (should fix about 40 messages)
2002-10-07 22:57:07 +00:00
sam
ee6c62e3fe Track openbsd changes that don't affect us yet (PK supoprt is
currently disabled):

o Don't use constants for the output parameter, use the iparam count as a
  pointer to the first result location.
o Fix bits vs bytes counting problems.
o Split out the hardware and software normalization versions of modexp.
o Enable hardware normalization for chips that support it.
o On reset, disable hardware normalization for 582x and make sure the
  chip is in little endian mode.
o Since sw normalization is now the only option, simplify normalization
  handling.

Also fix RNG harvesting: disabling PK support (for the moment) had disabled
the MCR2 interrupt; consider both KEY support and RNG support when deciding
whether or not to enable it.

Obtained from:	openbsd
2002-10-07 20:02:34 +00:00
imp
365f3d65f1 MFp4:
o Return the right string for CIS4_STR
	o kill obsolete comment about not doing something that we now do.
2002-10-07 07:18:32 +00:00
imp
5c300d06bb Better comment for the product ID thing. 2002-10-07 06:35:04 +00:00
imp
d0cb388eea Update comments to remind me about power bugs in oldcard. 2002-10-07 06:18:50 +00:00
imp
2afad356a8 Ooops. Need to free dc_srom on detach to not leak memory.
Pointy Hat to: The Mad Redhead of Niwot
2002-10-07 05:29:13 +00:00
imp
3c13760e8a Dynamically configure the width of the srom. This code comes from
OpenBSD who got the code (or the idea) from the NetBSD tlp driver.

This gets some cardbus dc cards working (either completely or nearly
so).  It also appears to get additional pci cards working, without
breaking working ones.

# Maybe some additional work is needed here.  Also, the cardbus attachment
# might need to match on the CIS rather than on the vendor/device so we have
# a finer level of detail as to what the card is.  Technically, the
# vendor/device fields are undefined for CardBus (even though most cards are
# using common silicon with pci models).
2002-10-07 05:26:35 +00:00
bde
b07b696b73 INclude <sys/mutex.h>'s prerequisite <sys/lock.h> instead of depending on
namespace pollution 2 layers deep in <sys/eventhandler.h>.
2002-10-06 03:18:14 +00:00
mdodd
f2ac31e2ec Make this work under GEOM. 2002-10-06 00:19:38 +00:00
phk
951c3e53b2 NB: This commit does *NOT* make GEOM the default in FreeBSD
NB: But it will enable it in all kernels not having options "NO_GEOM"

Put the GEOM related options into the intended order.

Add "options NO_GEOM" to all kernel configs apart from NOTES.

In some order of controlled fashion, the NO_GEOM options will be
removed, architecture by architecture in the coming days.

There are currently three known issues which may force people to
need the NO_GEOM option:

boot0cfg/fdisk:
        Tries to update the MBR while it is being used to control
        slices.  GEOM does not allow this as a direct operation.

SCSI floppy drives:
        Appearantly the scsi-da driver return "EBUSY" if no media
        is inserted.  This is wrong, it should return ENXIO.

PC98:
        It is unclear if GEOM correctly recognizes all variants of
        PC98 disklabels.  (Help Wanted!  I have neither docs nor HW)

These issues are all being worked.

Sponsored by:	DARPA & NAI Labs.
2002-10-05 16:35:33 +00:00
rwatson
722fc75788 Get Vinum up and running with GEOM:
(1) Use namei() and devfs to discover devices rather than a hard-coded
    MAKEDEV implementation.  Once rootfs is in place, this will allow
    Vinum to be used for the root file system partition.

(2) Pass FREAD to device opens so that GEOM will return sector size
    rather than an error on attempts to read label data.

(3) Avoid clobbering return values from close_drive() and masking this
    failure, resulting in a later divide by zero due to not having
    updated the Vinum-cached sector size.

(4) Ignore failures from DIOCWLABEL as that appears not to be required
    in the GEOM environment.

We've done testing in simple Vinum environments, but those with more
complex environments might want to give this a spin in DP2 and make
sure everything is up to speed.

Fixes in collaboration with:	iedowse
Reviewed by:			grog
2002-10-05 03:44:00 +00:00
rwatson
fc6cf98e79 Refinement on previous fix for mutex destruction: make sure we don't
release the mutex multiple times for multi-plex volumes.

Following further consultation with:	grog
2002-10-05 03:33:38 +00:00
rwatson
a648bd3f53 Remove a panic on vinum module unload: make sure to destroy all mutexes
before freeing so that WITNESS doesn't dereference mutex data pointers
and page fault.  It's now possible to unload vinum.ko with a GENERIC
kernel on 5.0-CURRENT without panic.

Debugged/fixed with the aid of:	jake, grog
2002-10-05 03:07:23 +00:00
iwasaki
be995d42bc Make sure that ACPI PCI driver probe routine call pci_cfgregopen()
before start accessing PCI config space.

Reviewed by:	jhb
2002-10-05 02:16:49 +00:00
iwasaki
479e7dd9d8 Oops, forgot to add main file for my previous commit :-) 2002-10-05 02:06:00 +00:00
iwasaki
8db9ba4b9e Add code for ACPI PCI link object manipulation.
This allocate the best IRQ to boot-disable devices (have IRQ 0).
Allocated IRQ will be used for PCI interrupt routing when ACPI is
enabled.

Note that verbose messaging enabled for the time being so that
people can easily notice the strange behavior if it happened.
2002-10-05 02:01:05 +00:00
sam
3a935a95e3 Crypto device driver for Broadcom-based cards. Known to work with 582x-based
cards.  Supposed to work with several others.

Obtained from:	openbsd
2002-10-04 20:33:20 +00:00
sam
7e497f5bab Crypto device driver for hifn-based cards. Tested with 7951-, and 7811-based
cards.  Claimed to support many others.

Obtained from:	 openbsd
2002-10-04 20:32:37 +00:00
mdodd
3bf276fb33 Remove duplicate make_dev() calls. 2002-10-04 08:33:10 +00:00
mdodd
664ecf2686 newbus & bus_space the mcd(4) driver. 2002-10-04 07:14:19 +00:00
mdodd
99055665a7 Minor style(9) changes. 2002-10-04 02:21:26 +00:00
mdodd
c475cde7a9 Remove duplicate calls to make_dev(). 2002-10-04 01:58:55 +00:00
peter
cfe8b263a0 Oops, missed this one. Fix a printf format error on 64 bit systems
where sizes are long instead of int.
2002-10-04 00:35:22 +00:00
peter
21201253d2 Fix printf format errors on 64 bit systems where sizes are long
instead of just int.
2002-10-04 00:33:46 +00:00
peter
f5c77557fc Display the name of the acpi node that we do not find the pci interrupt
routing table for.
2002-10-04 00:32:09 +00:00
alfred
eba16f8d01 Static'ify a variable.
Submitted by: Matt Emmerton <matt@gsicomp.on.ca>
2002-10-03 06:44:01 +00:00
anholt
fb0cbb0771 Correct an indentation.
Noticed by:	phk
2002-10-03 06:10:54 +00:00
truckman
da2757cbc5 In an SMP environment post-Giant it is no longer safe to blindly
dereference the struct sigio pointer without any locking.  Change
fgetown() to take a reference to the pointer instead of a copy of the
pointer and call SIGIO_LOCK() before copying the pointer and
dereferencing it.

Reviewed by:	rwatson
2002-10-03 02:13:00 +00:00
phk
fed0841394 Fix rare and probably inconsequential memory leak.
Spotted by:	FlexeLint
2002-10-02 20:34:23 +00:00
phk
f4c70e659f Fix a probably rare and inconsequential memory leak.
Spotted by:	FlexeLint
2002-10-02 20:29:54 +00:00
phk
76d8452fbf Fix mis-indentation.
Spotted by:	FlexeLint
2002-10-02 09:09:25 +00:00
scottl
3a150bca9c Some kernel threads try to do significant work, and the default KSTACK_PAGES
doesn't give them enough stack to do much before blowing away the pcb.
This adds MI and MD code to allow the allocation of an alternate kstack
who's size can be speficied when calling kthread_create.  Passing the
value 0 prevents the alternate kstack from being created.  Note that the
ia64 MD code is missing for now, and PowerPC was only partially written
due to the pmap.c being incomplete there.
Though this patch does not modify anything to make use of the alternate
kstack, acpi and usb are good candidates.

Reviewed by:	jake, peter, jhb
2002-10-02 07:44:29 +00:00
mdodd
8c002c3888 Use more standard variable names for modevent functions. 2002-10-02 04:47:52 +00:00
mdodd
f005de54e0 Create/destroy memory zones on module load/unload, not on device
attach/detach.
2002-10-02 04:42:24 +00:00
jake
081769570b Fix a typo in BGE_BIGENDIAN_INIT. 2002-10-01 22:33:40 +00:00
mdodd
4f0de203e7 Add a field to struct cmn_unit to hold a pointer to the driver's softc. 2002-10-01 22:04:31 +00:00
sos
731099ce45 Misc cleanups.
Pointed out by: phk/flexelint
2002-10-01 15:21:57 +00:00
sos
137f3cd2e3 Add yet another Promise PCI id. 2002-10-01 15:21:09 +00:00
bde
16e3d2e21e Removed the only PCI_DEBUG ifdef in the kernel. PCI_DEBUG was not a
supported option and it disabled a whole 2 lines of bootverbose messages.
I wanted to see 1 of the messages (about the latency timers).  This
is a wrong place to decode pci configurations, but the code is already
here and handles more details than pciconf(8).
2002-10-01 13:28:24 +00:00