diff options
| author | knakahara <knakahara@NetBSD.org> | 2022-05-24 08:35:47 +0000 |
|---|---|---|
| committer | knakahara <knakahara@NetBSD.org> | 2022-05-24 08:35:47 +0000 |
| commit | cc06f93dc55f339cb373771fc5c7301e12affdcb (patch) | |
| tree | ca7c4c619fb1fd56f8a725463bebfec05bd0c4f2 /sys/dev | |
| parent | 887657bc7ab847f551f112aaf393049d7596986f (diff) | |
Workaround for Atom C2000 series (Rangeley) qat, ok'ed by hikaru@n.o.
C2000 qat has two engines, however it doesn't have arbiter.
If we enable both engines, qat interrupts twice wrongly (and second
interrupt notice invalid data). So, we enable only one engine.
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/pci/qat/qat_c2xxx.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sys/dev/pci/qat/qat_c2xxx.c b/sys/dev/pci/qat/qat_c2xxx.c index f1991b9dd02..2b938a6e984 100644 --- a/sys/dev/pci/qat/qat_c2xxx.c +++ b/sys/dev/pci/qat/qat_c2xxx.c @@ -1,4 +1,4 @@ -/* $NetBSD: qat_c2xxx.c,v 1.1 2019/11/20 09:37:46 hikaru Exp $ */ +/* $NetBSD: qat_c2xxx.c,v 1.2 2022/05/24 08:35:47 knakahara Exp $ */ /* * Copyright (c) 2019 Internet Initiative Japan, Inc. @@ -57,7 +57,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: qat_c2xxx.c,v 1.1 2019/11/20 09:37:46 hikaru Exp $"); +__KERNEL_RCSID(0, "$NetBSD: qat_c2xxx.c,v 1.2 2022/05/24 08:35:47 knakahara Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -171,7 +171,16 @@ const struct qat_hw qat_hw_c2xxx = { .qhw_num_ap_banks = ETR_MAX_AP_BANKS_C2XXX, .qhw_num_rings_per_bank = ETR_MAX_RINGS_PER_BANK, .qhw_num_accel = MAX_ACCEL_C2XXX, +#if 0 .qhw_num_engines = MAX_AE_C2XXX, +#else + /* + * Workaround: + * C2xxx qat has two engines, however it doesn't have arbiter which + * C3xxx qat has. So, we don't use secondary engine for C2xxx qat. + */ + .qhw_num_engines = 1, +#endif .qhw_tx_rx_gap = ETR_TX_RX_GAP_C2XXX, .qhw_tx_rings_mask = ETR_TX_RINGS_MASK_C2XXX, .qhw_msix_ae_vec_gap = MSIX_AE_VEC_GAP_C2XXX, |
