|
1 | 1 | // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
|
2 | 2 | /*
|
3 |
| - * Copyright (C) 2018-2023 Intel Corporation |
| 3 | + * Copyright (C) 2018-2024 Intel Corporation |
4 | 4 | */
|
| 5 | +#include <linux/dmi.h> |
5 | 6 | #include "iwl-trans.h"
|
6 | 7 | #include "iwl-fh.h"
|
7 | 8 | #include "iwl-context-info-gen3.h"
|
8 | 9 | #include "internal.h"
|
9 | 10 | #include "iwl-prph.h"
|
10 | 11 |
|
| 12 | +static const struct dmi_system_id dmi_force_scu_active_approved_list[] = { |
| 13 | + { .ident = "DELL", |
| 14 | + .matches = { |
| 15 | + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), |
| 16 | + }, |
| 17 | + }, |
| 18 | + { .ident = "DELL", |
| 19 | + .matches = { |
| 20 | + DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), |
| 21 | + }, |
| 22 | + }, |
| 23 | + /* keep last */ |
| 24 | + {} |
| 25 | +}; |
| 26 | + |
| 27 | +static bool iwl_is_force_scu_active_approved(void) |
| 28 | +{ |
| 29 | + return !!dmi_check_system(dmi_force_scu_active_approved_list); |
| 30 | +} |
| 31 | + |
11 | 32 | static void
|
12 | 33 | iwl_pcie_ctxt_info_dbg_enable(struct iwl_trans *trans,
|
13 | 34 | struct iwl_prph_scratch_hwm_cfg *dbg_cfg,
|
@@ -128,6 +149,14 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
|
128 | 149 | if (trans->trans_cfg->imr_enabled)
|
129 | 150 | control_flags |= IWL_PRPH_SCRATCH_IMR_DEBUG_EN;
|
130 | 151 |
|
| 152 | + if (CSR_HW_REV_TYPE(trans->hw_rev) == IWL_CFG_MAC_TYPE_GL && |
| 153 | + iwl_is_force_scu_active_approved()) { |
| 154 | + control_flags |= IWL_PRPH_SCRATCH_SCU_FORCE_ACTIVE; |
| 155 | + IWL_DEBUG_FW(trans, |
| 156 | + "Context Info: Set SCU_FORCE_ACTIVE (0x%x) in control_flags\n", |
| 157 | + IWL_PRPH_SCRATCH_SCU_FORCE_ACTIVE); |
| 158 | + } |
| 159 | + |
131 | 160 | /* initialize RX default queue */
|
132 | 161 | prph_sc_ctrl->rbd_cfg.free_rbd_addr =
|
133 | 162 | cpu_to_le64(trans_pcie->rxq->bd_dma);
|
|
0 commit comments