2009-04-06 13:10:24

by Luigi Genoni

[permalink] [raw]
Subject: nvida sata controller CK804 and NCQ not working on linux-2.6.28||29.1


Hi,
to make NCQ work with nvidia sata CK804 I had to introduce this simple
change into sata-nv.c. Is there some reason I am missing why adma_enable
is not by default one, so later in the dome NCQ is not enabled?



--- linux/drivers/ata/sata_nv.c.old 2009-04-06 14:56:19.000000000
+0200
+++ linux/drivers/ata/sata_nv.c 2009-04-06 14:56:24.000000000 +0200
@@ -577,7 +577,7 @@
MODULE_DEVICE_TABLE(pci, nv_pci_tbl);
MODULE_VERSION(DRV_VERSION);

-static int adma_enabled;
+static int adma_enabled = 1;
static int swncq_enabled = 1;

static void nv_adma_register_mode(struct ata_port *ap)

regards

Luigi Genoni


2009-04-07 00:24:47

by Jeff Garzik

[permalink] [raw]
Subject: Re: nvida sata controller CK804 and NCQ not working on linux-2.6.28||29.1

[email protected] wrote:
>
> Hi,
> to make NCQ work with nvidia sata CK804 I had to introduce this simple
> change into sata-nv.c. Is there some reason I am missing why adma_enable
> is not by default one, so later in the dome NCQ is not enabled?

Yes -- too many problems in the field led us to disable ADMA by default.

Jeff



2009-04-07 02:12:45

by Robert Hancock

[permalink] [raw]
Subject: Re: nvida sata controller CK804 and NCQ not working on linux-2.6.28||29.1

[email protected] wrote:
>
> Hi,
> to make NCQ work with nvidia sata CK804 I had to introduce this simple
> change into sata-nv.c. Is there some reason I am missing why adma_enable
> is not by default one, so later in the dome NCQ is not enabled?

It's had some problems with certain hotplug scenarios and seemingly
others (like command timeouts) with different systems/drives. I use it
on my system and it seems to work fine, but others have had some issues.

NVIDIA won't release any public register specs for this controller (the
support there now was based on a partially finished version they
released), and haven't been very helpful with debugging. I suspect some
of the issues with it are related to hardware errata/bugs, which may
partially explain their silence. There definitely are hardware bugs in
this controller - just connect a SATA optical drive to it and try to
read a scratched DVD with read errors. Even under Windows, with either
NVIDIA's driver or the default Microsoft IDE driver, it'll usually
either hardlock or machine-check blue screen the system. (It's known
that the ATAPI part of ADMA is busted and unusable, but this happens
with or without it enabled.)

>
>
>
> --- linux/drivers/ata/sata_nv.c.old 2009-04-06 14:56:19.000000000 +0200
> +++ linux/drivers/ata/sata_nv.c 2009-04-06 14:56:24.000000000 +0200
> @@ -577,7 +577,7 @@
> MODULE_DEVICE_TABLE(pci, nv_pci_tbl);
> MODULE_VERSION(DRV_VERSION);
>
> -static int adma_enabled;
> +static int adma_enabled = 1;
> static int swncq_enabled = 1;
>
> static void nv_adma_register_mode(struct ata_port *ap)
>
> regards
>
> Luigi Genoni