![]() | |||||||||||
Messages in this thread Patch in this message |
matthieu castet wrote: > Hi Albert, > > Albert Lee wrote: > >> castet.matthieu@free.fr wrote: >> >>> >>>> Could you please test the current libata-upstream tree and >>>> turn on ATA_DEBUG and ATA_VERBOSE_DEBUG in include/linux/libata.h. >>>> >>> >>> Is there a easy way to get libata-upstream tree ? >>> Do I need to install git for that or there are some snapshots >>> somewhere ? >>> >>> >> >> >> Hi Matthieu, >> >> Tejun has a patch against 2.6.17: >> http://home-tj.org/files/libata-tj-stable/libata-tj-2.6.17-20060625-1.tar.bz2 >> >> > I don't know if I did someting wrong, but it didn't apply cleanly. > So I enable the trace on lastest -mm kernel and I disable the via quirk. > > But the printk in the interrupt handler takes some times and hides the > altstatus delay. > > I will try to send you a trace, where I move the printk at the end of > the interrupt handler. > > After apllying the following patch to -mm, I got http://castet.matthieu.free.fr/tmp/ata_log Matthieu Index: linux-2.6.16/drivers/scsi/libata-core.c =================================================================== --- linux-2.6.16.orig/drivers/scsi/libata-core.c 2006-07-02 10:32:33.000000000 +0200 +++ linux-2.6.16/drivers/scsi/libata-core.c 2006-07-02 10:38:03.000000000 +0200 @@ -4722,9 +4722,6 @@ { u8 status, host_stat = 0; - VPRINTK("ata%u: protocol %d task_state %d\n", - ap->id, qc->tf.protocol, ap->hsm_task_state); - /* Check whether we are expecting interrupt in this state */ switch (ap->hsm_task_state) { case HSM_ST_FIRST: @@ -4780,6 +4777,9 @@ ap->ops->irq_clear(ap); ata_hsm_move(ap, qc, status, 0); + VPRINTK("ata%u: protocol %d task_state %d\n", + ap->id, qc->tf.protocol, ap->hsm_task_state); + return 1; /* irq handled */ idle_irq: @@ -4792,6 +4792,9 @@ return 1; } #endif + VPRINTK("ata%u: protocol %d task_state %d\n", + ap->id, qc->tf.protocol, ap->hsm_task_state); + return 0; /* irq not handled */ } Index: linux-2.6.16/drivers/scsi/pata_via.c =================================================================== --- linux-2.6.16.orig/drivers/scsi/pata_via.c 2006-07-01 19:38:41.000000000 +0200 +++ linux-2.6.16/drivers/scsi/pata_via.c 2006-07-01 19:38:54.000000000 +0200 @@ -324,7 +324,7 @@ continue; if (!(qc->flags & ATA_QCFLAG_ACTIVE)) continue; - if (qc->tf.command == ATA_CMD_SET_FEATURES && + if (0 && qc->tf.command == ATA_CMD_SET_FEATURES && qc->tf.feature == SETFEATURES_XFER) { /* * With some ATAPI devices (CDR-6S48, ...), the Index: linux-2.6.16/include/linux/libata.h =================================================================== --- linux-2.6.16.orig/include/linux/libata.h 2006-07-01 19:37:51.000000000 +0200 +++ linux-2.6.16/include/linux/libata.h 2006-07-01 19:38:24.000000000 +0200 @@ -43,6 +43,8 @@ #undef ATA_DEBUG /* debugging output */ #undef ATA_VERBOSE_DEBUG /* yet more debugging output */ #undef ATA_IRQ_TRAP /* define to ack screaming irqs */ +#define ATA_DEBUG +#define ATA_VERBOSE_DEBUG #undef ATA_NDEBUG /* define to disable quick runtime checks */ #define ATA_ENABLE_PATA /* define to enable PATA support in some * low-level drivers */ | ||||||||||
| Last update: 2006-07-02 12:35 [from the cache] ©2003-2008 | |||||||||||