diff --git a/mt76/mcu.c b/mt76/mcu.c index 2f9034a..6c4e8cf 100644 --- a/mt76/mcu.c +++ b/mt76/mcu.c @@ -34,15 +34,26 @@ struct sk_buff *mt7902_mt76_mcu_get_response(struct mt7902_mt76_dev *dev, { unsigned long timeout; - if (!time_is_after_jiffies(expires)) + // dump_stack(); + dev_info(dev->dev, "mt7902_mt76_mcu_get_response expires: %ld\n", expires); + + if (!time_is_after_jiffies(expires)) { + dev_info(dev->dev, "mt7902_mt76_mcu_get_response time expired\n"); return NULL; + } timeout = expires - jiffies; + dev_info(dev->dev, "mt7902_mt76_mcu_get_response timeout: %ld\n", timeout); + wait_event_timeout(dev->mcu.wait, (!skb_queue_empty(&dev->mcu.res_q) || test_bit(MT76_MCU_RESET, &dev->phy.state)), timeout); - return skb_dequeue(&dev->mcu.res_q); + + struct sk_buff * ret = skb_dequeue(&dev->mcu.res_q); + dev_info(dev->dev, "mt7902_mt76_mcu_get_response ret: %p\n", ret); + dump_stack(); + return ret; } EXPORT_SYMBOL_GPL(mt7902_mt76_mcu_get_response); @@ -81,8 +92,6 @@ int mt7902_mt76_mcu_skb_send_and_get_msg(struct mt7902_mt76_dev *dev, struct sk_ unsigned long expires; int ret, seq; - dump_stack(); - if (ret_skb) *ret_skb = NULL; @@ -104,6 +113,17 @@ int mt7902_mt76_mcu_skb_send_and_get_msg(struct mt7902_mt76_dev *dev, struct sk_ do { dev_info(dev->dev, "mt7902_mt76_mcu_skb_send_and_get_msg expires: %ld\n", expires); skb = mt7902_mt76_mcu_get_response(dev, expires); + + dev_info(dev->dev, "SKB info: %p\n", skb); + // unsigned char *data_ptr; + // data_ptr = skb->data; + // // dev_info(dev->dev, "mt7902_mt76_mcu_get_response Response : %p\n", skb->data); + // + // for (int i = 0; i < skb->len; i++) { + // dev_info(dev->dev, "%02X ", data_ptr[i]); + // } + // dev_info(dev->dev, "\n"); + ret = dev->mcu_ops->mcu_parse_response(dev, cmd, skb, seq); dev_info(dev->dev, "mt7902_mt76_mcu_skb_send_and_get_msg > mcu_parse_response cmd: %d, ret: %d\n", cmd, ret); if (!ret && ret_skb) diff --git a/mt76/mt76_connac_mcu.c b/mt76/mt76_connac_mcu.c index 5b2b640..affce76 100644 --- a/mt76/mt76_connac_mcu.c +++ b/mt76/mt76_connac_mcu.c @@ -3012,7 +3012,7 @@ int mt7902_mt76_connac2_load_patch(struct mt7902_mt76_dev *dev, const char *fw_n dev_info(dev->dev, "Entering mt7902_mt76_connac_mcu_patch_sem_ctrl function\n"); sem = mt7902_mt76_connac_mcu_patch_sem_ctrl(dev, true); - dump_stack(); + // dump_stack(); switch (sem) { case PATCH_IS_DL: diff --git a/rebuild.sh b/rebuild.sh index 2ac97bd..32e2061 100755 --- a/rebuild.sh +++ b/rebuild.sh @@ -17,3 +17,10 @@ sudo dkms install --verbose -m $MODULE_NAME -v $MODULE_VERSION # Print status sudo dkms status --verbose -m $MODULE_NAME -v $MODULE_VERSION +# remove kernel modules +sudo rmmod mt7902 +sudo rmmod mt7902-common + +# reinstall kernel modules +sudo insmod ./mt76/mt7902/mt7902-common.ko +sudo insmod ./mt76/mt7902/mt7902.ko