mt7615: mcu: unify __mt7615_mcu_set_dev_info and mt7615_mcu_set_dev_info
authorLorenzo Bianconi <lorenzo@kernel.org>
Sat, 4 May 2019 15:29:03 +0000 (17:29 +0200)
committerFelix Fietkau <nbd@nbd.name>
Tue, 25 Jun 2019 10:55:26 +0000 (12:55 +0200)
Unify mt7615_mcu_set_dev_info and __mt7615_mcu_set_dev_info since the
latter is run just by mt7615_mcu_set_dev_info

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h

index 39fc36a..0e82fcb 100644 (file)
@@ -633,68 +633,49 @@ int mt7615_mcu_ctrl_pm_state(struct mt7615_dev *dev, int enter)
        return mt7615_mcu_msg_send(dev, skb, MCU_EXT_CMD_PM_STATE_CTRL);
 }
 
-static int __mt7615_mcu_set_dev_info(struct mt7615_dev *dev,
-                                    struct dev_info *dev_info)
+int mt7615_mcu_set_dev_info(struct mt7615_dev *dev,
+                           struct ieee80211_vif *vif, bool enable)
 {
-       struct req_hdr {
-               u8 omac_idx;
-               u8 band_idx;
-               __le16 tlv_num;
-               u8 is_tlv_append;
-               u8 rsv[3];
-       } __packed req_hdr = {0};
-       struct req_tlv {
-               __le16 tag;
-               __le16 len;
-               u8 active;
-               u8 band_idx;
-               u8 omac_addr[ETH_ALEN];
-       } __packed;
-       struct sk_buff *skb;
-       u16 tlv_num = 0;
-
-       skb = mt7615_mcu_msg_alloc(NULL, sizeof(req_hdr) +
-                                  sizeof(struct req_tlv));
-       skb_reserve(skb, sizeof(req_hdr));
-
-       if (dev_info->feature & BIT(DEV_INFO_ACTIVE)) {
-               struct req_tlv req_tlv = {
+       struct mt7615_vif *mvif = (struct mt7615_vif *)vif->drv_priv;
+       struct {
+               struct req_hdr {
+                       u8 omac_idx;
+                       u8 band_idx;
+                       __le16 tlv_num;
+                       u8 is_tlv_append;
+                       u8 rsv[3];
+               } __packed hdr;
+               struct req_tlv {
+                       __le16 tag;
+                       __le16 len;
+                       u8 active;
+                       u8 band_idx;
+                       u8 omac_addr[ETH_ALEN];
+               } __packed tlv;
+       } data = {
+               .hdr = {
+                       .omac_idx = mvif->omac_idx,
+                       .band_idx = mvif->band_idx,
+                       .tlv_num = cpu_to_le16(1),
+                       .is_tlv_append = 1,
+               },
+               .tlv = {
                        .tag = cpu_to_le16(DEV_INFO_ACTIVE),
-                       .len = cpu_to_le16(sizeof(req_tlv)),
-                       .active = dev_info->enable,
-                       .band_idx = dev_info->band_idx,
-               };
-               memcpy(req_tlv.omac_addr, dev_info->omac_addr, ETH_ALEN);
-               memcpy(skb_put(skb, sizeof(req_tlv)), &req_tlv,
-                      sizeof(req_tlv));
-               tlv_num++;
-       }
-
-       req_hdr.omac_idx = dev_info->omac_idx;
-       req_hdr.band_idx = dev_info->band_idx;
-       req_hdr.tlv_num = cpu_to_le16(tlv_num);
-       req_hdr.is_tlv_append = tlv_num ? 1 : 0;
+                       .len = cpu_to_le16(sizeof(struct req_tlv)),
+                       .active = enable,
+                       .band_idx = mvif->band_idx,
+               },
+       };
+       struct sk_buff *skb;
 
-       memcpy(skb_push(skb, sizeof(req_hdr)), &req_hdr, sizeof(req_hdr));
+       memcpy(data.tlv.omac_addr, vif->addr, ETH_ALEN);
+       skb = mt7615_mcu_msg_alloc(&data, sizeof(data));
+       if (!skb)
+               return -ENOMEM;
 
        return mt7615_mcu_msg_send(dev, skb, MCU_EXT_CMD_DEV_INFO_UPDATE);
 }
 
-int mt7615_mcu_set_dev_info(struct mt7615_dev *dev, struct ieee80211_vif *vif,
-                           int en)
-{
-       struct mt7615_vif *mvif = (struct mt7615_vif *)vif->drv_priv;
-       struct dev_info dev_info = {0};
-
-       dev_info.omac_idx = mvif->omac_idx;
-       memcpy(dev_info.omac_addr, vif->addr, ETH_ALEN);
-       dev_info.band_idx = mvif->band_idx;
-       dev_info.enable = en;
-       dev_info.feature = BIT(DEV_INFO_ACTIVE);
-
-       return __mt7615_mcu_set_dev_info(dev, &dev_info);
-}
-
 static void bss_info_omac_handler (struct mt7615_dev *dev,
                                   struct bss_info *bss_info,
                                   struct sk_buff *skb)
index 81501cb..e19739f 100644 (file)
@@ -108,8 +108,8 @@ int mt7615_eeprom_init(struct mt7615_dev *dev);
 int mt7615_dma_init(struct mt7615_dev *dev);
 void mt7615_dma_cleanup(struct mt7615_dev *dev);
 int mt7615_mcu_init(struct mt7615_dev *dev);
-int mt7615_mcu_set_dev_info(struct mt7615_dev *dev, struct ieee80211_vif *vif,
-                           int en);
+int mt7615_mcu_set_dev_info(struct mt7615_dev *dev,
+                           struct ieee80211_vif *vif, bool enable);
 int mt7615_mcu_set_bss_info(struct mt7615_dev *dev, struct ieee80211_vif *vif,
                            int en);
 int mt7615_mcu_set_wtbl_key(struct mt7615_dev *dev, int wcid,