}
 IWL_EXPORT_SYMBOL(iwl_sar_geo_init);
 
-u32 iwl_acpi_eval_dsm_11ax_enablement(struct device *dev)
+static u32 iwl_acpi_eval_dsm_func(struct device *dev, enum iwl_dsm_funcs_rev_0 eval_func)
 {
        union acpi_object *obj;
        u32 ret;
 
        obj = iwl_acpi_get_dsm_object(dev, 0,
-                                     DSM_FUNC_11AX_ENABLEMENT, NULL,
+                                     eval_func, NULL,
                                      &iwl_guid);
-       if (IS_ERR(obj))
+
+       if (IS_ERR(obj)) {
+               IWL_DEBUG_DEV_RADIO(dev,
+                                   "ACPI: DSM func '%d': Got Error in obj = %ld\n",
+                                   eval_func,
+                                   PTR_ERR(obj));
                return 0;
+       }
 
        if (obj->type != ACPI_TYPE_INTEGER) {
                IWL_DEBUG_DEV_RADIO(dev,
-                                   "ACPI: DSM method did not return a valid object, type=%d\n",
+                                   "ACPI: DSM func '%d' did not return a valid object, type=%d\n",
+                                   eval_func,
                                    obj->type);
                ret = 0;
                goto out;
 
        ret = obj->integer.value;
        IWL_DEBUG_DEV_RADIO(dev,
-                           "ACPI: DSM method evaluated: func=DSM_FUNC_11AX_ENABLEMENT, ret=%d\n",
+                           "ACPI: DSM method evaluated: func='%d', ret=%d\n",
+                           eval_func,
                            ret);
 out:
        ACPI_FREE(obj);
        return ret;
 }
-IWL_EXPORT_SYMBOL(iwl_acpi_eval_dsm_11ax_enablement);
+
+__le32 iwl_acpi_get_lari_config_bitmap(struct iwl_fw_runtime *fwrt)
+{
+       u32 ret;
+       __le32 config_bitmap = 0;
+
+       /*
+        ** Evaluate func 'DSM_FUNC_ENABLE_INDONESIA_5G2'
+        */
+       ret = iwl_acpi_eval_dsm_func(fwrt->dev, DSM_FUNC_ENABLE_INDONESIA_5G2);
+
+       if (ret == DSM_VALUE_INDONESIA_ENABLE)
+               config_bitmap |=
+                       cpu_to_le32(LARI_CONFIG_ENABLE_5G2_IN_INDONESIA_MSK);
+
+       /*
+        ** Evaluate func 'DSM_FUNC_DISABLE_SRD'
+        */
+       ret = iwl_acpi_eval_dsm_func(fwrt->dev, DSM_FUNC_DISABLE_SRD);
+
+       if (ret == DSM_VALUE_SRD_PASSIVE)
+               config_bitmap |=
+                       cpu_to_le32(LARI_CONFIG_CHANGE_ETSI_TO_PASSIVE_MSK);
+
+       else if (ret == DSM_VALUE_SRD_DISABLE)
+               config_bitmap |=
+                       cpu_to_le32(LARI_CONFIG_CHANGE_ETSI_TO_DISABLED_MSK);
+
+       /*
+        ** Evaluate func 'DSM_FUNC_11AX_ENABLEMENT'
+        */
+       ret = iwl_acpi_eval_dsm_func(fwrt->dev, DSM_FUNC_11AX_ENABLEMENT);
+
+       config_bitmap |=
+               cpu_to_le32((ret &= IWL_11AX_UKRAINE_MASK) << IWL_11AX_UKRAINE_SHIFT);
+
+       return config_bitmap;
+}
+IWL_EXPORT_SYMBOL(iwl_acpi_get_lari_config_bitmap);
 
                IWL_DEBUG_RADIO(mvm, "failed to send TAS_CONFIG (%d)\n", ret);
 }
 
-static u8 iwl_mvm_eval_dsm_indonesia_5g2(struct iwl_mvm *mvm)
-{
-       u8 value;
-
-       int ret = iwl_acpi_get_dsm_u8((&mvm->fwrt)->dev, 0,
-                                     DSM_FUNC_ENABLE_INDONESIA_5G2,
-                                     &iwl_guid, &value);
-
-       if (ret < 0)
-               IWL_DEBUG_RADIO(mvm,
-                               "Failed to evaluate DSM function ENABLE_INDONESIA_5G2, ret=%d\n",
-                               ret);
-
-       else if (value >= DSM_VALUE_INDONESIA_MAX)
-               IWL_DEBUG_RADIO(mvm,
-                               "DSM function ENABLE_INDONESIA_5G2 return invalid value, value=%d\n",
-                               value);
-
-       else if (value == DSM_VALUE_INDONESIA_ENABLE) {
-               IWL_DEBUG_RADIO(mvm,
-                               "Evaluated DSM function ENABLE_INDONESIA_5G2: Enabling 5g2\n");
-               return DSM_VALUE_INDONESIA_ENABLE;
-       }
-       /* default behaviour is disabled */
-       return DSM_VALUE_INDONESIA_DISABLE;
-}
-
 static u8 iwl_mvm_eval_dsm_rfi(struct iwl_mvm *mvm)
 {
        u8 value;
        return DSM_VALUE_RFI_DISABLE;
 }
 
-static u8 iwl_mvm_eval_dsm_disable_srd(struct iwl_mvm *mvm)
-{
-       u8 value;
-       int ret = iwl_acpi_get_dsm_u8((&mvm->fwrt)->dev, 0,
-                                     DSM_FUNC_DISABLE_SRD,
-                                     &iwl_guid, &value);
-
-       if (ret < 0)
-               IWL_DEBUG_RADIO(mvm,
-                               "Failed to evaluate DSM function DISABLE_SRD, ret=%d\n",
-                               ret);
-
-       else if (value >= DSM_VALUE_SRD_MAX)
-               IWL_DEBUG_RADIO(mvm,
-                               "DSM function DISABLE_SRD return invalid value, value=%d\n",
-                               value);
-
-       else if (value == DSM_VALUE_SRD_PASSIVE) {
-               IWL_DEBUG_RADIO(mvm,
-                               "Evaluated DSM function DISABLE_SRD: setting SRD to passive\n");
-               return DSM_VALUE_SRD_PASSIVE;
-
-       } else if (value == DSM_VALUE_SRD_DISABLE) {
-               IWL_DEBUG_RADIO(mvm,
-                               "Evaluated DSM function DISABLE_SRD: disabling SRD\n");
-               return DSM_VALUE_SRD_DISABLE;
-       }
-       /* default behaviour is active */
-       return DSM_VALUE_SRD_ACTIVE;
-}
-
 static void iwl_mvm_lari_cfg(struct iwl_mvm *mvm)
 {
-       u8 ret;
        int cmd_ret;
        struct iwl_lari_config_change_cmd_v2 cmd = {};
 
-       if (iwl_mvm_eval_dsm_indonesia_5g2(mvm) == DSM_VALUE_INDONESIA_ENABLE)
-               cmd.config_bitmap |=
-                       cpu_to_le32(LARI_CONFIG_ENABLE_5G2_IN_INDONESIA_MSK);
-
-       ret = iwl_mvm_eval_dsm_disable_srd(mvm);
-       if (ret == DSM_VALUE_SRD_PASSIVE)
-               cmd.config_bitmap |=
-                       cpu_to_le32(LARI_CONFIG_CHANGE_ETSI_TO_PASSIVE_MSK);
-
-       else if (ret == DSM_VALUE_SRD_DISABLE)
-               cmd.config_bitmap |=
-                       cpu_to_le32(LARI_CONFIG_CHANGE_ETSI_TO_DISABLED_MSK);
-
-       ret = iwl_acpi_eval_dsm_11ax_enablement((&mvm->fwrt)->dev);
-       cmd.config_bitmap |=
-               cpu_to_le32((ret &= IWL_11AX_UKRAINE_MASK) << IWL_11AX_UKRAINE_SHIFT);
+       cmd.config_bitmap = iwl_acpi_get_lari_config_bitmap(&mvm->fwrt);
 
        /* apply more config masks here */