const struct iwl_family_base_params *base = trans->mac_cfg->base;
        const struct iwl_rf_cfg *cfg = trans->cfg;
 
-       if (!base->ucode_api_max) {
+       /* if the MAC doesn't have range or if its range it higher than the RF's */
+       if (!base->ucode_api_max ||
+           (cfg->ucode_api_max && base->ucode_api_min > cfg->ucode_api_max)) {
                *api_min = cfg->ucode_api_min;
                *api_max = cfg->ucode_api_max;
                return;
        }
 
-       if (!cfg->ucode_api_max) {
+       /* if the RF doesn't have range or if its range it higher than the MAC's */
+       if (!cfg->ucode_api_max ||
+           (base->ucode_api_max && cfg->ucode_api_min > base->ucode_api_max)) {
                *api_min = base->ucode_api_min;
                *api_max = base->ucode_api_max;
                return;