Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
that we don't accidentally complete any other outstanding commands.
This introduces wrappers around get_ccb and put_ccb that can temporarily
stash our outstanding command state while we are issuing recovery commands.
This is just the first step in NCQ recovery - for now we will reset the port
on error which will permit further commands to be issued after a NCQ error.
ok dlg@
|
|
successfully and not the ones that had actually failed to complete when unable
to recover from an NCQ error.
ok dlg@
|
|
|
|
|
|
|
|
|
|
|
|
list of pci devices.
WARNING: this will cause your disks to change name (wd -> sd) on a
supported controller.
|
|
G5, might work a lot better soon)
|
|
|
|
|
|
Instead, keep the proc pointer in it and put the selinfo on a list
in struct proc in selrecord. Then clean up the list when leaving
sys_select and sys_poll.
miod@ ok, testing by many, including Bobs spamd boxes.
|
|
out or erroring around the cache flush time.
|
|
are seeing a panic at halt time.
|
|
of new fields in the future is less disruptive. This is done similar
to how struct proc is handled for ps(1). ok jmc (man page changes)
tested fkr simon, and more suggestions from millert
|
|
|
|
but defer the remainder of their initialisation until after the other devices
on their PCI bus have attached. This ensures that any USB2 controller has also
completed its initialisation before we start to initialise the USB1 parts.
This minimises the chance that a nasty SMM implementation will trash the USB1
controller's config when it performs legacy emulation handover of the USB2 part.
This time without accidentally leaving the OHCI controller shutdown, and with
some cosmetic fixes.
ok dlg@, OHCI tests mglocker@
|
|
This includes a nasty hack to reduce openings and throw away command slots
if the device supports a lower queue depth than the host controller does.
Yes, we're thinking about a better solution.
|
|
silicon image 3124/3132/3531 sata chipsets eventually.
so far this is the autoconf glue, an actual match routine for the 3124, and
interrupt establishment code. it is split up between pci and ic cos there
are cardbus variants of these controllers that we can support in the
future.
thanks to jolan@ for the name, it was better liked than my initial
suggestion of siisl(4).
|
|
generation of interrupts when they arrive.
|
|
Because you cannot have NCQ commands active at the same time as standard
(non-queued) commands, we must introduce a queueing scheme into the driver.
This scheme ensures that a standard command is only issued to the drive when
all currently active NCQ commands have finished, and that NCQ command issue
is delayed when we have a pending standard command.
Additionally, the queueing scheme adds a constraint to ensure that there are
never more than two standard commands issued on a port at once. This should
ensure that commands become active in the order they were submitted (regardless
of their command slot number) both initially and when the port is reactivated
after error recovery.
These points mean that issuing a standard command effectively serialises the
port, which may help us implement meaningful I/O barriers in the future.
|
|
JMB368 supported for now, multi port cards
that share PATA/SATA need to do a complicated
internal channel mapping dance I plan to look into next.
ok grange@
|
|
seeing things attach to the scsibus.
ok pascoe@
|
|
it a bit easier to read. there are variations on this, but they can be
defined later.
|
|
reset with during error recovery. Also, ensure that that CCB has been
stopped on the chip before putting it back in the pool.
|
|
error handling.
|
|
always return ATA_COMPLETE in the polled transfer case. Also, respect the
passed in timeout value when polling.
|
|
these since last year, but i didnt see the point till the code would be
useful anywhere.
|
|
etc, just work.
|
|
so that atascsi can deal with it.
|
|
|
|
before we enable AHCI, so enable it before resetting saved capabilities.
|
|
|
|
etc), and request that the D2H FIS at the completion of all (DMA) commands
generate an interrupt.
This makes each data transfer generate one interrupt instead of two and
should guarantee that the interrupt that is generated actually arrives
after the command has completed.
|
|
works.
From dlg@
|
|
|
|
simply include a pointer to the command FIS that we will issue to the device.
Include another space where we can copy back an error register set from a
failed command.
This means that we can now build and issue arbitrary commands from atascsi,
and retrieve errors back.
|
|
atascsi will be driving, and add it to the AHCI CCB.
This effectively gives us all the resources we need for a transfer in one
hit, meaning that we don't need to worry about whether we will have a pool
shortage or not enough CCBs. The SCSI mid layer should take care to never
exceed the number of CCBs we have available, based on our sc_link.openings.
|
|
BCM5756). They still don't work but when they do they won't use an
inappropriate Jitter bug workaround. No effect on other chips.
From Michael Chan of Broadcom, via Linux tg3 via Brad.
ok reyk@
|
|
time.
Chris; Get your shiz fixed and tested for the next time. We have
better todo then wasting our time by backing out untested stuff.
OK deraadt, OK ckuethe
|
|
|
|
|
|
but defer the remainder of their initialisation until after the other devices
on their PCI bus have attached. This ensures that any USB2 controller has also
completed its initialisation before we start to initialise the USB1 parts.
This minimises the chance that a nasty SMM implementation will trash the USB1
controller's config when it performs legacy emulation handover of the USB2 part.
|
|
|
|
reported by brad
|
|
one for all SPI controllers. krw has a sun machine with a 1030 that gets
the bus width wrong too, so since vmware emulates that type of hardware
too, we can just limit the lot of them and forget about it.
|
|
|