On Apr 16 Stefan Richter wrote:
> Commit af0cdf494781 "firewire: ohci: fix regression with VIA VT6315,
> disable MSI" acted upon a report against VT6315 rev 0:
> http://linux.derkeiler.com/Mailing-Lists/Kernel/2010-12/msg02301.html
> $ lspci -nn
> VIA Technologies, Inc. VT6315 Series Firewire Controller [1106:3403]
> 
> I now got a card with
> $ lspci -nn
> VIA Technologies, Inc. VT6315 Series Firewire Controller [1106:3403] (rev 01)
> and this works fine with MSI enabled.
> 
> Second, I tested this VT6315 rev 1 without CYCLE_TIMER quirk flag using
> http://me.in-berlin.de/~s5r6/linux1394/utils/test_cycle_time_v20100125.c
> and found that this chip does in fact access the cycle timer atomically.
> 
> Things I can't test because I don't have the hardware:
>   - whether VT6315 rev 0 really needs QUIRK_CYCLE_TIMER,
>   - whether the VT6320 PCI device needs QUIRK_CYCLE_TIMER,
>   - whether the VT6325 and VT6330 PCIe devices need QUIRK_CYCLE_TIMER
>     and QUIRK_NO_MSI.
> 
> Hence, just add a whitelist entry specifically for VT6315 rev >= 1
> without any quirk flags.  Before this entry we need an extra entry to
> catch VT6315 rev <= 0 due to how our ID matching logic works.
> 
> Signed-off-by: Stefan Richter <[email protected]>

Nice -- yesterday, just a few days after this patch went into the
mainline, this VT6315 card suddenly stopped to generate any interrupt
while being in use with a soundcard and jackd.  Until then it ran
perfectly for many days, with jackd+ffado's combined workload of
AT/AR/IT/IR but also with SBP-2 workloads and one or another other
application as well.

Now I apparently need to run long-term tests with MSI switched off in order
to find out whether this malfunction is MSI related.

> ---
> v2: Oops, a table entry is applied if dev->revision <= table[i].revision.
> 
>  drivers/firewire/ohci.c |    7 +++++++
>  1 file changed, 7 insertions(+)
> 
> --- a/drivers/firewire/ohci.c
> +++ b/drivers/firewire/ohci.c
> @@ -282,6 +282,7 @@ static char ohci_driver_name[] = KBUILD_
>  #define PCI_DEVICE_ID_TI_TSB82AA2    0x8025
>  #define PCI_DEVICE_ID_VIA_VT630X     0x3044
>  #define PCI_REV_ID_VIA_VT6306                0x46
> +#define PCI_DEVICE_ID_VIA_VT6315     0x3403
>  
>  #define QUIRK_CYCLE_TIMER            0x1
>  #define QUIRK_RESET_PACKET           0x2
> @@ -334,6 +335,12 @@ static const struct {
>       {PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT630X, PCI_REV_ID_VIA_VT6306,
>               QUIRK_CYCLE_TIMER | QUIRK_IR_WAKE},
>  
> +     {PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT6315, 0,
> +             QUIRK_CYCLE_TIMER | QUIRK_NO_MSI},
> +
> +     {PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT6315, PCI_ANY_ID,
> +             0},
> +
>       {PCI_VENDOR_ID_VIA, PCI_ANY_ID, PCI_ANY_ID,
>               QUIRK_CYCLE_TIMER | QUIRK_NO_MSI},
>  };
> 
> 

-- 
Stefan Richter
-=====-====- -==- -=-==
http://arcgraph.de/sr/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to