Age | Commit message (Collapse) | Author |
|
kernel without the former. Also, eliminate two dead stores in
wdcattach().
ok dlg@
|
|
fifo full check has to be protected by the mutex. ok dlg@ krw@
|
|
errors if the fifo is read when the fifo is empty. Dont read an empty fifo.
ok deraaadt@ fgsch@
|
|
|
|
function, and let attachment code calls this rather than malloc(9).
This prevents re-initialization of the queue in shared queue chipsets.
Also, add wdc_free_queue() as a complementary function.
Earlier version (without wdc_free_queue()) tested by sthen@ and Amit
Kulkarni on various pciide(4) chips.
ok dlg@
|
|
that chip-specific drv_probe routines can assume they've already been
initialized.
Tested by sthen@ on i386, armish, and amd64, with both affected and
non-affected pciide(4) chips.
ok dlg@
|
|
to have a non-changing function pointer be part of an object rather
than it's virtual method table.
ok dlg@; tested on ahci(4) by Mattieu Baptiste, jasper@, and Jason
Crawford; no sili(4) testers, but identical changes to ahci(4)
|
|
WDC_CAPABILITY_ATA_NOSTREAM, and WDC_CAPABILITY_ATAPI_NOSTREAM).
ok dlg@, jsg@, krw@
|
|
|
|
issues scsi commands against that target. it might be a normal device and
the firmware is just being picky about which headers you can fetch.
tested by and ok deraadt@
|
|
yanked. we want to reschedule them down active paths rather than wait for
a minute while mpi decides that a path isnt coming back.
discussed with and tested by deraadt@
|
|
rather than the default of XS_DRIVER_STUFFUP. mpath(4) likes this better
when you unplug paths.
|
|
some fc parts dont like the header requests against missing devices with
bus addressing, so now we do the magic iteration over active ports.
the original problem was reported by deraadt@
lots of testing and debugging by deraadt@
tested on fc929 and fc949 adapters
|
|
done around the manual invocation. Prompted by dlg@.
|
|
like we do in other SCSI drivers.
|
|
ok dlg@; miod@ warns me to not hold my breath on anyone testing this
diff though...
|
|
|
|
much for them to make sense anymore.
Diff prepared with sed; no change to dpt.o on i386.
|
|
ok dlg@ matthew@
|
|
after more than a year of grovelling emails shows further effort
is pointless.
ok matthew@ dlg@
|
|
This one works. For me at least.
Botch spotted by matthew@.
ok matthew@ dlg@
|
|
Found by LLVM/Clang Static Analyzer.
ok marco@ krw@
|
|
|
|
this probably means the controller is dead -- as in, a hot plug eject
event. in that case, mark the driver dead and try harder to return -1
in the interrupt handler.
tested by many
ok dlg, miod did not object
|
|
test it now that it's in-tree. ok deraadt ("It causes no harm")
|
|
ok deraadt
|
|
|
|
argument to wdcreset(), to have it skip waiting until active channels see
their BUSY bit clear in the status register.
Use this feature in the resume path, during the first reset operation. The
first reset is supposed to only wake up the controller, and the disks don't
come back until the second reset is issued, therefore waiting for them to
report themselves as ready after the first reset, but before the second, is
moot - and as a matter of fact some controllers, such as the AMD 754 and
clones/offspring (e.g. Geode) keep the BUSY bit asserted after the first
reset.
Last, but not least, make sure wd@ata invokes wd_get_params() again before
returning from the resume code, as we will still be using polled transfers
for a short while.
This causes the Lemote Yeelong to resume within less than one second, instead
of the lousy 30 seconds wait between the two resets; and the wd_get_params()
voodoo prevents it from getting spurious ide interrupts afterwards.
wd_get_params() magic from dlg; rest of the work by yours truly after enough
prodding by dlg@ and pirofti@, among others. ok deraadt@ dlg@
|
|
RTL8103E, from FreeBSD.
ok sthen@
|
|
Discovered, narrowed down, and tested by jmc@.
"definitely commit that" deraadt@, ok miod@
|
|
ok deraadt
|
|
is 0.
ok deraadt.
|
|
|
|
|
|
prompted by deraadt
|
|
prodded and ok deraadt
|
|
ok matthew@ tedu@, also eyeballed by at least krw@ oga@ kettenis@ jsg@
|
|
ar9380_spur_mitigate_ofdm().
|
|
|
|
the siop command buffers and add dmaable buffers for sense data.
matthew@ found that siop used to try to dma to the xs->sense bufer, which
is not guaranteed to be dma safe.
tested by matthew@ kettenis@
|
|
damage kernel memory very much while doing the job. It is not very
pretty yet, but improving it will need some MI work.
ok mlarkin jsg dlg
|
|
"reads OK" claudio@
|
|
ok claudio krw
|
|
is probing, rather than every time it issues an io.
ok krw@
|
|
future) will try to dma the command buffer to the disk in some way. Use
dma_alloc() to get ahead of this potential failure path.
ok dlg krw
|
|
to before scsi_done(). This doesn't mean aac will ever enabled!
ok dlg@
|
|
also cuts the aen drain over to using an iohandler so it can be made
reliable.
this compiles, but i havent got hardware to test with. its going in as a
way to force testing. if there's a problem with the code then let me know
or back it out.
"man up" k2k11
|
|
the backing store. The state of a VT is only coherent if both the active
flag and the backing store are in order, which is not the case during VT
switches.
This fixes display glitches occuring during VT switches if one of the
VT involved is doing a lot of tty updates.
Noticed by deraadt@ on a machine too fast for mere mortals.
|
|
ok dlg@ ("miod will not object" dlg@)
|
|
it will crash with 'External Non-Linefetch Abort (S)'.
similar diff provided by drahn@. tested by jasper@, deraadt@ ok.
|