memset(filter->bssid, ~0, ETH_ALEN);
        else
                memcpy(filter->bssid, bssid, ETH_ALEN);
-
        filter->rx_antenna = priv->rx_antenna;
-
        if (priv->fw_var < 0x500) {
                data_len = P54_TX_CONTROL_FILTER_V1_LEN;
-               filter->v1.basic_rate_mask = cpu_to_le32(0x15F);
+               filter->v1.basic_rate_mask = cpu_to_le32(0x15f);
                filter->v1.rx_addr = cpu_to_le32(priv->rx_end);
                filter->v1.max_rx = cpu_to_le16(priv->rx_mtu);
                filter->v1.rxhw = cpu_to_le16(priv->rxhw);
                filter->v2.rxhw = cpu_to_le16(priv->rxhw);
                filter->v2.timer = cpu_to_le16(1000);
        }
-
        hdr->len = cpu_to_le16(data_len);
        p54_assign_address(dev, NULL, hdr, sizeof(*hdr) + data_len);
        priv->tx(dev, hdr, sizeof(*hdr) + data_len, 1);
 
        vdcf = (struct p54_tx_control_vdcf *) hdr->data;
 
-       if (dev->conf.flags & IEEE80211_CONF_SHORT_SLOT_TIME) {
+       if (priv->use_short_slot) {
                vdcf->slottime = 9;
                vdcf->magic1 = 0x10;
                vdcf->magic2 = 0x00;
                priv->mode = NL80211_IFTYPE_MONITOR;
 
        p54_init_vdcf(dev);
-
        mod_timer(&priv->stats_timer, jiffies + HZ);
        return err;
 }
        return 0;
 }
 
+static void p54_bss_info_changed(struct ieee80211_hw *dev,
+                                struct ieee80211_vif *vif,
+                                struct ieee80211_bss_conf *info,
+                                u32 changed)
+{
+       struct p54_common *priv = dev->priv;
+
+       if (changed & BSS_CHANGED_ERP_SLOT) {
+               priv->use_short_slot = info->use_short_slot;
+               p54_set_vdcf(dev);
+       }
+}
+
 static const struct ieee80211_ops p54_ops = {
        .tx                     = p54_tx,
        .start                  = p54_start,
        .remove_interface       = p54_remove_interface,
        .config                 = p54_config,
        .config_interface       = p54_config_interface,
+       .bss_info_changed       = p54_bss_info_changed,
        .configure_filter       = p54_configure_filter,
        .conf_tx                = p54_conf_tx,
        .get_stats              = p54_get_stats,
        dev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION);
 
        dev->channel_change_time = 1000;        /* TODO: find actual value */
-
        priv->tx_stats[0].limit = 1;
        priv->tx_stats[1].limit = 1;
        priv->tx_stats[2].limit = 1;