aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2009-01-31 20:56:31 -0500
committerJeff Garzik <jgarzik@redhat.com>2009-02-02 23:02:38 -0500
commit8d993eaa9c3c61b8a5929a7f695078a1fcfb4869 (patch)
treebef3e657030295ad5d87510fb0348126cbe4b68b /drivers/ata
parent2999b58b795ad81f10e34bdbbfd2742172f247e4 (diff)
sata_nv: ck804 has borked hardreset too
While playing with nvraid, I found out that rmmoding and insmoding often trigger hardreset failure on the first port (the second one was always okay). Seriously, how diverse can you get with hardreset behaviors? Anyways, make ck804 use noclassify variant too. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/sata_nv.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c
index c49ad0e61b6f..444af0415ca1 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -436,11 +436,16 @@ static struct ata_port_operations nv_nf2_ops = {
436 .hardreset = nv_noclassify_hardreset, 436 .hardreset = nv_noclassify_hardreset,
437}; 437};
438 438
439/* CK804 finally gets hardreset right */ 439/* For initial probing after boot and hot plugging, hardreset mostly
440 * works fine on CK804 but curiously, reprobing on the initial port by
441 * rescanning or rmmod/insmod fails to acquire the initial D2H Reg FIS
442 * in somewhat undeterministic way. Use noclassify hardreset.
443 */
440static struct ata_port_operations nv_ck804_ops = { 444static struct ata_port_operations nv_ck804_ops = {
441 .inherits = &nv_common_ops, 445 .inherits = &nv_common_ops,
442 .freeze = nv_ck804_freeze, 446 .freeze = nv_ck804_freeze,
443 .thaw = nv_ck804_thaw, 447 .thaw = nv_ck804_thaw,
448 .hardreset = nv_noclassify_hardreset,
444 .host_stop = nv_ck804_host_stop, 449 .host_stop = nv_ck804_host_stop,
445}; 450};
446 451