找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 2173|回复: 7

有没有谁移植了mt7620的WiFi驱动到18.06

[复制链接]
openwrt自带驱动经常出现WiFi死掉的情况,想用官方驱动试试。
我的恩山、我的无线 The best wifi forum is right here.
来自手机 | 显示全部楼层
请使用最新 snapshot 或 19.07
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

现在开源驱动做的蛮好了,你可以试试,

还有一个经典补丁,打不打上随便你了,

  1. --- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
  2. +++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
  3. @@ -700,7 +700,7 @@ void rt2800mmio_queue_init(struct data_queue *queue)

  4.         switch (queue->qid) {
  5.         case QID_RX:
  6. -                queue->limit = 128;
  7. +                queue->limit = 256;
  8.                 queue->data_size = AGGREGATION_SIZE;
  9.                 queue->desc_size = RXD_DESC_SIZE;
  10.                 queue->winfo_size = rxwi_size;
  11. @@ -711,7 +711,7 @@ void rt2800mmio_queue_init(struct data_queue *queue)
  12.         case QID_AC_VI:
  13.         case QID_AC_BE:
  14.         case QID_AC_BK:
  15. -                queue->limit = 64;
  16. +                queue->limit = 128;
  17.                 queue->data_size = AGGREGATION_SIZE;
  18.                 queue->desc_size = TXD_DESC_SIZE;
  19.                 queue->winfo_size = txwi_size;
  20. --- a/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
  21. +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c
  22. @@ -26,6 +26,7 @@

  23. #include "rt2x00.h"
  24. #include "rt2x00lib.h"
  25. +#include "rt2x00queue.h"

  26. static int rt2x00mac_tx_rts_cts(struct rt2x00_dev *rt2x00dev,
  27.                                 struct data_queue *queue,
  28. @@ -115,6 +116,26 @@ void rt2x00mac_tx(struct ieee80211_hw *hw,
  29.         if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
  30.                 goto exit_free_skb;

  31. +        /* Dirty hack for Queue overrun protection,
  32. +         * if AC_VO/AC_VI/AC_BE is full, use next queue.
  33. +         * if AC_BK is full use previous queue.
  34. +         */
  35. +        if (qid < 4) {
  36. +                queue = rt2x00queue_get_tx_queue(rt2x00dev, qid);
  37. +                if (unlikely(rt2x00queue_full(queue))) {
  38. +                        switch (qid) {
  39. +                                case 0: /* QID_AC_VO */
  40. +                                case 1: /* QID_AC_VI */
  41. +                                case 2: /* QID_AC_BE */
  42. +                                        qid ++;
  43. +                                        break;
  44. +                                case 3: /* QID_AC_BK */
  45. +                                        qid --;
  46. +                                        break;
  47. +                        }
  48. +                }
  49. +        }
  50. +
  51.         /*
  52.          * Use the ATIM queue if appropriate and present.
  53.          */
  54. --- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
  55. +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
  56. @@ -1211,16 +1211,40 @@ void rt2x00queue_uninitialize(struct rt2x00_dev *rt2x00dev)
  57. static void rt2x00queue_init(struct rt2x00_dev *rt2x00dev,
  58.                              struct data_queue *queue, enum data_queue_qid qid)
  59. {
  60. +        /* Use default values for each queue type */
  61. +        unsigned short cwmin = 5, cwmax = 10, aifs = 2, txop = 0;
  62. +
  63. +        switch (qid) {
  64. +                case QID_AC_VO:
  65. +                        cwmin = 2;
  66. +                        cwmax = 3;
  67. +                        txop = 47;
  68. +                        break;
  69. +                case QID_AC_VI:
  70. +                        cwmin = 3;
  71. +                        cwmax = 4;
  72. +                        txop = 94;
  73. +                        break;
  74. +                case QID_AC_BE:
  75. +                        cwmin = 4;
  76. +                        aifs = 3;
  77. +                        break;
  78. +                case QID_AC_BK:
  79. +                        cwmin = 4;
  80. +                        aifs = 7;
  81. +                        break;
  82. +        }
  83. +
  84.         mutex_init(&queue->status_lock);
  85.         spin_lock_init(&queue->tx_lock);
  86.         spin_lock_init(&queue->index_lock);

  87.         queue->rt2x00dev = rt2x00dev;
  88.         queue->qid = qid;
  89. -        queue->txop = 0;
  90. -        queue->aifs = 2;
  91. -        queue->cw_min = 5;
  92. -        queue->cw_max = 10;
  93. +        queue->txop = txop;
  94. +        queue->aifs = aifs;
  95. +        queue->cw_min = cwmin;
  96. +        queue->cw_max = cwmax;

  97.         rt2x00dev->ops->queue_init(queue);
复制代码

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
同问,想知道闭源驱动怎么移植

点评

snapshot 早修复这个问题了,我用了很久很稳定  详情 回复 发表于 2019-8-4 23:06
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
7620的5G应该没问题,非常稳定,信号强度也差球不多

点评

7620 不带 5G,外挂芯片的  详情 回复 发表于 2019-8-4 23:06
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

chengkong 发表于 2019-8-4 22:19
同问,想知道闭源驱动怎么移植

snapshot 早修复这个问题了,我用了很久很稳定
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

hcyme 发表于 2019-8-4 22:44
7620的5G应该没问题,非常稳定,信号强度也差球不多

7620 不带 5G,外挂芯片的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

原厂驱动用新内核坑更多。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-29 17:05

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表