| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
and amd64. The optimization is a trivial on recent machines.
Reviewed by: -arch (imp, marcel, dfr)
|
| |
|
|
|
|
| |
Submitted by: Coverity Prevent analysis tool
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
eg. if the firmware load fails. Shortish MFC timeout so this can be merged
before the 4.11 freeze.
PR: kern/34306
Submitted by: gibbs
Approved by: gibbs, imp (mentor)
MFC after: 5 days
|
| |
|
|
|
|
|
| |
Submitted by: Mark Santcroos <marks@ripe.net>
Reviewed by: imp, dfr, bde
|
|
|
|
| |
probably unendiansafely used as u_int16_t.
|
|
|
|
|
| |
Glanced over by: imp, gibbs
Tested by: i386 LINT
|
|
|
|
| |
Also some minor style cleanups.
|
|
|
|
|
| |
tree for two or more years now), except in a few places where there's
code to be compatible with older versions of FreeBSD.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg.
Lockfunc allows a driver to provide a function for managing its locking
semantics while using busdma. At the moment, this is used for the
asynchronous busdma_swi and callback mechanism. Two lockfunc implementations
are provided: busdma_lock_mutex() performs standard mutex operations on the
mutex that is specified from lockfuncarg. dftl_lock() is a panic
implementation and is defaulted to when NULL, NULL are passed to
bus_dma_tag_create(). The only time that NULL, NULL should ever be used is
when the driver ensures that bus_dmamap_load() will not be deferred.
Drivers that do not provide their own locking can pass
busdma_lock_mutex,&Giant args in order to preserve the former behaviour.
sparc64 and powerpc do not provide real busdma_swi functions, so this is
largely a noop on those platforms. The busdma_swi on is64 is not properly
locked yet, so warnings will be emitted on this platform when busdma
callback deferrals happen.
If anyone gets panics or warnings from dflt_lock() being called, please
let me know right away.
Reviewed by: tmm, gibbs
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Devices below may experience a change in geometry.
* Due to a bug, aic(4) never used extended geometry. Changes all drives
>1G to now use extended translation.
* sbp(4) drives exactly 1 GB in size now no longer use extended geometry.
* umass(4) drives exactly 1 GB in size now no longer use extended geometry.
For all other controllers in this commit, this should be a no-op.
Looked over by: scottl
|
|
|
|
|
|
|
|
| |
BUS_DMASYNC_ definitions remain as before. The does not change the ABI,
and reverts the API to be a bit more compatible and flexible. This has
survived a full 'make universe'.
Approved by: re (bmah)
|
|
|
|
| |
to bus_dmasync_op_t in my last commit.
|
| |
|
| |
|
|
|
|
| |
so this at least compiles on big-endian machines.
|
|
|
|
| |
Submitted by: Hiten Pandya <hiten@unixdaemons.com>
|
|
|
|
|
|
|
| |
'int nsegments' argument to bus_dma_tag_create(). ~0ul does not fit in
an int on machines with 64 bit longs.
Noticed by: alpha tinderbox
|
|
|
|
|
| |
'int nsegments' argument to bus_dma_tag_create(). ~0ul does not fit in
an int.
|
|
|
|
|
|
| |
static in its prototype, mark it static at the definition too.
Inspired by: FlexeLint warning #512
|
|
|
|
|
|
| |
called.
Submitted by: yokota
|
| |
|
|
|
|
|
|
|
| |
I could find. I have no doubt missed a couple.
Interrupt entropy harvesting is still conditional on the
kern.random.sys.harvest_interrupt sysctl.
|
|
|
|
|
|
|
|
| |
adv_free() as the ISA probe routine doesn't malloc() ccb_infos but does
call adv_free().
- Release the ISA-only overrun DMA tags, bufs, and maps if the probe fails.
Tested by: rwatson
|
| |
|
|
|
|
|
|
| |
Submitted by: josh@zipperup.org
Submitted by: Robert Drehmel <robd@gmx.net>
Approved by: gibbs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
because it only takes a struct tag which makes it impossible to
use unions, typedefs etc.
Define __offsetof() in <machine/ansi.h>
Define offsetof() in terms of __offsetof() in <stddef.h> and <sys/types.h>
Remove myriad of local offsetof() definitions.
Remove includes of <stddef.h> in kernel code.
NB: Kernelcode should *never* include from /usr/include !
Make <sys/queue.h> include <machine/ansi.h> to avoid polluting the API.
Deprecate <struct.h> with a warning. The warning turns into an error on
01-12-2000 and the file gets removed entirely on 01-01-2001.
Paritials reviews by: various.
Significant brucifications by: bde
|
| |
|
|
|
|
|
|
| |
PR: 18588
Submitted by: Anatoly Vorobey <mellon@pobox.com>
Reviewed by: asmodai
|
| |
|
| |
|
|
|
|
|
|
| |
It was not discussed and should probably not happen.
Requested by: msmith and others
|
|
|
|
|
|
|
|
| |
the type argument to *_HEAD and *_ENTRY is a struct.
Suggested by: phk
Reviewed by: phk
Approved by: mdodd
|
|
|
|
| |
Submitted by: Oleg Sharoiko <os@rsu.ru>
|
|
|
|
|
|
|
| |
Fix Typo.
Approved by: nyan
Also: PR-18172
|
|
|
|
|
| |
Due to some interesting cpp tricks in lockmgr, the LINT kernel shrinks
by 924 bytes.
|
|
|
|
|
|
| |
Reported by YAMAMOTO Shigeru <shigeru@iij.ad.jp>
- Clean up some code.
- Set the value of rid variable to PCI_BASEADR0(== 0x10) (adv_pci.c).
|
|
|
|
| |
Reviewed by: imp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
adw_pci.c:
Update comments describing supported chips/cards.
adwcam.c:
adwlib.c:
adwlib.h:
Handle more error return codes from the firmware.
Break out the bus reset code into its own function.
Usa a constant for the bus reset hold delay.
Fix an interrupt race problem in adw_idle_cmd_send by
incorporating the poll loop for command completion.
Approved by: jkh@FreeBSDorg
|
|
|
|
| |
Overlooked by: n_himba@FreeBSD.org but not bde@FreeBSD.org
|
|
|
|
| |
Broken by: gibbs
|
|
|
|
|
|
|
| |
support is also included for the ASC38C1600 Ultra160 chipset, but
as firmware is not yet available for this chip, it is disabled.
Approved by: jkh@FreeBSD.org
|
|
|
|
| |
PR: 16642
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Collect together the components of several drivers and export eisa from
the i386-only area (It's not, it's on some alphas too). The code hasn't
been updated to work on the Alpha yet, but that can come later.
Repository copies were done a while ago.
Moving these now keeps them in consistant place across the 4.x series
as the newbusification progresses.
Submitted by: mdodd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update list of supported products.
Adjust probe message to include the ASC3030.
advansys.c:
Fix a long standing bug in the error recovery strategy. In order
to keep recovery simple, we freeze the SIMQ, stopping the XPT from
submitting new requests. Unfortunately, we also will freeze the
SIMQ if bus_dmamap_load blocks or we run out of controller resources.
On cards with limited resources it was possible to freeze the
SIM a second time and never unfreeze it. Now we more carefully
track our exception state so we never freeze the SIMQ more than
once.
Don't rely on pointers fitting in a 32bit field stored in the
per-transaction data structures on the card. Use an index to
an array of transaction mapping structures instead. This should
allow this driver to work on the Alpha.
Deal with the ASC3030 which is almost idistinguishable from the
ASC3050. Unfortunately the ASC3030 does not work at Ultra speeds,
so if we can't find an eeprom, we must assume that ultra is disabled.
The SIIG cards using the 3030 do not have eeproms. As a side effect,
we now honor the ultra disable bit in the eeprom if it is present.
Don't bother attempting to write corrected eeprom data back to the
eeprom. We can function just fine if the data is corrupted and
I'd rather not risk messing up the user's eeprom.
Modify the interrupt handler to catch latched external bus rests.
Dynamically determine the maximum number of S/G elements we can
map at a single time. The nature of the firmware interface for
these cards makes this value dependent on the number of "queues"
the card can support.
advlib.c:
advlib.h:
advmcode.c:
advmcode.h:
Synchronize with the latest firmware image released in the
Linux Advansys driver.
|