DragonFly commits List (threaded) for 2009-06
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
Re: DragonFly-2.3.1.312.g12feb master sys/dev/disk/ahci ahci.c ahci.h ahci_attach.c ahci_cam.c ahci_dragonfly.c ahci_pm.c atascsi.h
On Fri, Jun 19, 2009 at 3:02 PM, Matthew
Dillon<dillon@crater.dragonflybsd.org> wrote:
>
> commit 12feb9045df619d387b9ba31534687037610fe73
> Author: Matthew Dillon <dillon@apollo.backplane.com>
> Date: Thu Jun 18 23:49:07 2009 -0700
>
> AHCI - Intel fixes, error processing fixes.
>
> * Allocate separate scratch space to enforce a reasonable alignment
> for the READ LOG page.
>
> * Fix numerous issues with READ LOG / NCQ error processing. READ LOG
> wasn't working at all before.
>
> * Intel fixes. Move the SDBE interrupt from the AsyncNotify-only
> code to the general code. Intel parts seem to use this interrupt
> (and not DPE) to signal completion for NCQ commands, so we get
> timeouts if we don't use it generally.
>
> * Rearrange a great deal of code in a manner similar to how the
> Sili driver was arranged. Primarily: ATA_F_AUTOSENSE to
> acquire D2H rfis's more reliably, and ATA_F_EXCLUSIVE. More work
> needs to be done. Also move the PM probe code to the PM source
> module.
>
> * Add code to deal with D2H ERR fises. These generate a DHRS
> interrupt but only those which post an ERR in the task file
> stop command processing. This is not well documented in the
> AHCI specs.
>
> Summary of changes:
> sys/dev/disk/ahci/ahci.c | 1223 +++++++++++++++---------------------
> sys/dev/disk/ahci/ahci.h | 30 +-
> sys/dev/disk/ahci/ahci_attach.c | 17 +
> sys/dev/disk/ahci/ahci_cam.c | 16 +-
> sys/dev/disk/ahci/ahci_dragonfly.c | 2 +-
> sys/dev/disk/ahci/ahci_pm.c | 249 +++++++-
> sys/dev/disk/ahci/atascsi.h | 4 +
> 7 files changed, 809 insertions(+), 732 deletions(-)
>
> http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/12feb9045df619d387b9ba31534687037610fe73
My screen is flooded by following kprints :P
@@ -1890,6 +1575,10 @@ ahci_unload_prdt(struct ahci_ccb *ccb)
bus_dmamap_unload(sc->sc_tag_data, dmap);
+ if (ccb->ccb_cmd_hdr->prdbc == 0) {
+ kprintf("%s: UNLOAD RESID WAS ZERO! tag=%d\n",
+ ATANAME(ap, xa->at), ccb->ccb_slot);
+ }
if (ccb->ccb_xa.flags & ATA_F_NCQ)
xa->resid = 0;
else
Best Regards,
sephe
--
Live Free or Die
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]