iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG,
                    CSR_HW_IF_CONFIG_REG_BIT_HAP_WAKE_L1A);
 
-       iwl_set_bit(priv, CSR_ANA_PLL_CFG, CSR50_ANA_PLL_CFG_VAL);
+       if (priv->cfg->need_pll_cfg)
+               iwl_set_bit(priv, CSR_ANA_PLL_CFG, CSR50_ANA_PLL_CFG_VAL);
 
        /* set "initialization complete" bit to move adapter
         * D0U* --> D0A* state */
 
        /* FIXME: put here L1A -L0S w/a */
 
-       iwl_set_bit(priv, CSR_ANA_PLL_CFG, CSR50_ANA_PLL_CFG_VAL);
+       if (priv->cfg->need_pll_cfg)
+               iwl_set_bit(priv, CSR_ANA_PLL_CFG, CSR50_ANA_PLL_CFG_VAL);
 
        /* set "initialization complete" bit to move adapter
         * D0U* --> D0A* state */
        .mod_params = &iwl50_mod_params,
        .valid_tx_ant = ANT_ABC,
        .valid_rx_ant = ANT_ABC,
+       .need_pll_cfg = true,
 };
 
 struct iwl_cfg iwl5100_bg_cfg = {
        .mod_params = &iwl50_mod_params,
        .valid_tx_ant = ANT_B,
        .valid_rx_ant = ANT_AB,
+       .need_pll_cfg = true,
 };
 
 struct iwl_cfg iwl5100_abg_cfg = {
        .mod_params = &iwl50_mod_params,
        .valid_tx_ant = ANT_B,
        .valid_rx_ant = ANT_AB,
+       .need_pll_cfg = true,
 };
 
 struct iwl_cfg iwl5100_agn_cfg = {
        .mod_params = &iwl50_mod_params,
        .valid_tx_ant = ANT_B,
        .valid_rx_ant = ANT_AB,
+       .need_pll_cfg = true,
 };
 
 struct iwl_cfg iwl5350_agn_cfg = {
        .mod_params = &iwl50_mod_params,
        .valid_tx_ant = ANT_ABC,
        .valid_rx_ant = ANT_ABC,
+       .need_pll_cfg = true,
 };
 
 struct iwl_cfg iwl5150_agn_cfg = {
        .mod_params = &iwl50_mod_params,
        .valid_tx_ant = ANT_A,
        .valid_rx_ant = ANT_AB,
+       .need_pll_cfg = true,
 };
 
 MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX));
 
        .mod_params = &iwl50_mod_params,
        .valid_tx_ant = ANT_BC,
        .valid_rx_ant = ANT_BC,
+       .need_pll_cfg = false,
 };
 
 struct iwl_cfg iwl6000_2agn_cfg = {
        .mod_params = &iwl50_mod_params,
        .valid_tx_ant = ANT_BC,
        .valid_rx_ant = ANT_BC,
+       .need_pll_cfg = false,
 };
 
 struct iwl_cfg iwl6050_2agn_cfg = {
        .mod_params = &iwl50_mod_params,
        .valid_tx_ant = ANT_BC,
        .valid_rx_ant = ANT_BC,
+       .need_pll_cfg = false,
 };
 
 struct iwl_cfg iwl6000_3agn_cfg = {
        .mod_params = &iwl50_mod_params,
        .valid_tx_ant = ANT_ABC,
        .valid_rx_ant = ANT_ABC,
+       .need_pll_cfg = false,
 };
 
 struct iwl_cfg iwl6050_3agn_cfg = {
        .mod_params = &iwl50_mod_params,
        .valid_tx_ant = ANT_ABC,
        .valid_rx_ant = ANT_ABC,
+       .need_pll_cfg = false,
 };
 
 MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX));