Mingyen Hsieh <mingyen.hsieh@xxxxxxxxxxxx> wrote: [...] > + struct evt { > + u8 rsv[4]; > + > + __le16 tag; > + __le16 len; > + > + __le32 ver; > + __le32 addr; > + __le32 valid; > + __le32 size; > + __le32 magic_num; > + __le32 type; > + __le32 rsv1[4]; > + u8 data[32]; > + } __packed * res; nit: no need space between * and res, i.e. "__packed *res". > + struct sk_buff *skb; > + int ret; > + > + ret = mt76_mcu_send_and_get_msg(&dev->mt76, MCU_WM_UNI_CMD_QUERY(EFUSE_CTRL), > + &req, sizeof(req), true, &skb); > + if (ret) > + return ret; > + > + res = (struct evt *)skb->data; > + *val = res->data[offset % MT7925_EEPROM_BLOCK_SIZE]; > + > + dev_kfree_skb(skb); > + > + return 0; > +} > + > static int mt7925_load_clc(struct mt792x_dev *dev, const char *fw_name) > { > const struct mt76_connac2_fw_trailer *hdr; > @@ -809,12 +857,19 @@ static int mt7925_load_clc(struct mt792x_dev *dev, const char *fw_name) > struct mt792x_phy *phy = &dev->phy; > const struct firmware *fw; > int ret, i, len, offset = 0; > - u8 *clc_base = NULL; > + u8 *clc_base = NULL, hw_encap = 0; not sure if mt76 declare local variables in reverse X'mas tree order?