Page MenuHomeFreeBSD

D60081.diff
No OneTemporary

D60081.diff

diff --git a/sys/dev/iwm/if_iwm.c b/sys/dev/iwm/if_iwm.c
--- a/sys/dev/iwm/if_iwm.c
+++ b/sys/dev/iwm/if_iwm.c
@@ -1455,7 +1455,7 @@
iwm_nic_config(struct iwm_softc *sc)
{
uint8_t radio_cfg_type, radio_cfg_step, radio_cfg_dash;
- uint32_t reg_val = 0;
+ uint32_t mask, val, reg_val = 0;
uint32_t phy_config = iwm_get_phy_config(sc);
radio_cfg_type = (phy_config & IWM_FW_PHY_CFG_RADIO_TYPE) >>
@@ -1476,15 +1476,18 @@
reg_val |= radio_cfg_step << IWM_CSR_HW_IF_CONFIG_REG_POS_PHY_STEP;
reg_val |= radio_cfg_dash << IWM_CSR_HW_IF_CONFIG_REG_POS_PHY_DASH;
- IWM_WRITE(sc, IWM_CSR_HW_IF_CONFIG_REG,
- IWM_CSR_HW_IF_CONFIG_REG_MSK_MAC_DASH |
+ mask = IWM_CSR_HW_IF_CONFIG_REG_MSK_MAC_DASH |
IWM_CSR_HW_IF_CONFIG_REG_MSK_MAC_STEP |
IWM_CSR_HW_IF_CONFIG_REG_MSK_PHY_STEP |
IWM_CSR_HW_IF_CONFIG_REG_MSK_PHY_DASH |
IWM_CSR_HW_IF_CONFIG_REG_MSK_PHY_TYPE |
IWM_CSR_HW_IF_CONFIG_REG_BIT_RADIO_SI |
- IWM_CSR_HW_IF_CONFIG_REG_BIT_MAC_SI |
- reg_val);
+ IWM_CSR_HW_IF_CONFIG_REG_BIT_MAC_SI;
+
+ val = IWM_READ(sc, IWM_CSR_HW_IF_CONFIG_REG);
+ val &= ~mask;
+ val |= reg_val;
+ IWM_WRITE(sc, IWM_CSR_HW_IF_CONFIG_REG, val);
IWM_DPRINTF(sc, IWM_DEBUG_RESET,
"Radio type=0x%x-0x%x-0x%x\n", radio_cfg_type,

File Metadata

Mime Type
text/plain
Expires
Mon, Sep 28, 11:37 PM (3 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39830589
Default Alt Text
D60081.diff (1 KB)

Event Timeline