Re: C3600, sata controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2019-05-17 1:21 p.m., Helge Deller wrote:
> Hi Carlo,
>
> On 17.05.19 17:43, Carlo Pisani wrote:
>> guys, new tests(1) with SYBA-SY-PCX40009 on C3600
>> tested on different slots: it always fails with the same behavior
>> (1) http://www.downthebunker.com/reloaded/space/viewtopic.php?f=50&t=337&p=1663
>>
>> I really do not understand the random failure, because it seems
>> working for a while, and then, it suddenly fails I don't know how to
>> investigate.
> Random failure could happen because of missing calls to DMA syncs in the driver.
> PCI device drivers on PA-RISC require that you strictly follow the rules as mentioned in:
> * https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/DMA-API-HOWTO.txt
> and
> * https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/DMA-API.txt
>
> Not following those rules may lead to the same device driver working on x86
> but failing on parisc, simply because x86 is much more relaxed regarding DMA
> and CPU caches.
>
> That said, I would not expect every device driver to work out of the box
> on parisc...
It seems likely to me that the sil24 driver depends on the card operating in PCI-X mode.  As noted
previously, PCI-X differs from PCI in interrupt handling.  The driver has this flag SIL24_FLAG_PCIX_IRQ_WOC.

There's this comment:
        /* If PCIX_IRQ_WOC, there's an inherent race window between
         * clearing IRQ pending status and reading PORT_SLOT_STAT
         * which may cause spurious interrupts afterwards.  This is
         * unavoidable and much better than losing interrupts which
         * happens if IRQ pending is cleared after reading
         * PORT_SLOT_STAT.
         */
Maybe the workaround shouldn't be applied when card is in PCI 66 MHz slot?  See drivers/ata/sata_sil24.c.
https://www.mail-archive.com/linux-ide@xxxxxxxxxxxxxxx/msg11502.html
https://www.mail-archive.com/linux-ide@xxxxxxxxxxxxxxx/msg11516.html

The card works in my c8000 PCI-X slot.

Dave

-- 
John David Anglin  dave.anglin@xxxxxxxx





[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux