iwlwifi: fix build for CONFIG_INPUT=n
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / iwlwifi / iwl-rfkill.c
index 5f098747cf95cfc99a1e1bf877b08ffef0340d18..4624ac7b49806926fa6d83245fdcaccc5a40e6ae 100644 (file)
@@ -95,6 +95,7 @@ int iwl_rfkill_init(struct iwl_priv *priv)
        priv->rfkill_mngr.rfkill->dev.class->suspend = NULL;
        priv->rfkill_mngr.rfkill->dev.class->resume = NULL;
 
+#if defined(CONFIG_RFKILL_INPUT) || defined(CONFIG_RFKILL_INPUT_MODULE)
        priv->rfkill_mngr.input_dev = input_allocate_device();
        if (!priv->rfkill_mngr.input_dev) {
                IWL_ERROR("Unable to allocate rfkill input device.\n");
@@ -109,6 +110,7 @@ int iwl_rfkill_init(struct iwl_priv *priv)
        priv->rfkill_mngr.input_dev->dev.parent = device;
        priv->rfkill_mngr.input_dev->evbit[0] = BIT(EV_KEY);
        set_bit(KEY_WLAN, priv->rfkill_mngr.input_dev->keybit);
+#endif
 
        ret = rfkill_register(priv->rfkill_mngr.rfkill);
        if (ret) {
@@ -116,11 +118,13 @@ int iwl_rfkill_init(struct iwl_priv *priv)
                goto free_input_dev;
        }
 
+#if defined(CONFIG_RFKILL_INPUT) || defined(CONFIG_RFKILL_INPUT_MODULE)
        ret = input_register_device(priv->rfkill_mngr.input_dev);
        if (ret) {
                IWL_ERROR("Unable to register rfkill input device: %d\n", ret);
                goto unregister_rfkill;
        }
+#endif
 
        IWL_DEBUG_RF_KILL("RFKILL initialization complete.\n");
        return ret;
@@ -130,8 +134,10 @@ unregister_rfkill:
        priv->rfkill_mngr.rfkill = NULL;
 
 free_input_dev:
+#if defined(CONFIG_RFKILL_INPUT) || defined(CONFIG_RFKILL_INPUT_MODULE)
        input_free_device(priv->rfkill_mngr.input_dev);
        priv->rfkill_mngr.input_dev = NULL;
+#endif
 
 freed_rfkill:
        if (priv->rfkill_mngr.rfkill != NULL)
@@ -147,13 +153,16 @@ EXPORT_SYMBOL(iwl_rfkill_init);
 void iwl_rfkill_unregister(struct iwl_priv *priv)
 {
 
+#if defined(CONFIG_RFKILL_INPUT) || defined(CONFIG_RFKILL_INPUT_MODULE)
        if (priv->rfkill_mngr.input_dev)
                input_unregister_device(priv->rfkill_mngr.input_dev);
+       input_free_device(priv->rfkill_mngr.input_dev);
+       priv->rfkill_mngr.input_dev = NULL;
+#endif
 
        if (priv->rfkill_mngr.rfkill)
                rfkill_unregister(priv->rfkill_mngr.rfkill);
 
-       priv->rfkill_mngr.input_dev = NULL;
        priv->rfkill_mngr.rfkill = NULL;
 }
 EXPORT_SYMBOL(iwl_rfkill_unregister);