linux3.0.8 io 中断,qf9700 linux 3.0.8驱动补丁

diff -ur b/qf9700.c a/qf9700.c--- b/qf9700.c 2011-01-21 17:59:58.000000000 +0800+++ a/qf9700.c 2014-04-15 18:37:50.000000000 +0800@@ -353,14 +353,13 @@

if (net->flags & IFF_PROMISC) {

rx_ctl |= 0x02;

- } else if (net->flags & IFF_ALLMULTI || net->mc_count > QF_MCAST_MAX) {+ } else if (net->flags & IFF_ALLMULTI || netdev_mc_count(net) > QF_MCAST_MAX) { rx_ctl |= 0x04;

- } else if (net->mc_count) {

- struct dev_mc_list *mc_list = net->mc_list;

- int i;+ } else if (netdev_mc_count(net)) {

+ struct netdev_hw_addr *hw_addr;

- for (i = 0; i < net->mc_count; i++, mc_list = mc_list->next) {

- u32 crc = ether_crc(ETH_ALEN, mc_list->dmi_addr) >> 26;+ netdev_for_each_mc_addr(hw_addr, net) {

+ u32 crc = ether_crc(ETH_ALEN, hw_addr->addr) >> 26; hashes[crc >> 3] |= 1 << (crc & 0x7);

}

}

@@ -413,9 +412,9 @@

/* power up and reset phy */

qf_write_reg(dev, PRR, 1);

- udelay(20 * 1000); // at least 10ms, here 20ms for safe+ mdelay(20); // at least 10ms, here 20ms for safe qf_write_reg(dev, PRR, 0);

- udelay(2 * 1000); // at least 1ms, here 2ms for reading right register+ mdelay(2); // at least 1ms, here 2ms for reading right register

/* receive broadcast packets */

qf9700_set_multicast(dev->net);

diff -ur b/qf9700.h a/qf9700.h--- b/qf9700.h 2010-10-09 16:51:00.000000000 +0800+++ a/qf9700.h 2014-04-15 17:20:23.000000000 +0800@@ -150,4 +150,21 @@ #define QF_TX_OVERHEAD 2 // 2bytes header

#define QF_RX_OVERHEAD 7 // 3bytes header + 4crc tail

+#ifdef DEBUG

+#define devdbg(usbnet, fmt, arg...)

+ printk(KERN_DEBUG "%s: " fmt "n" , (usbnet)->net->name , ## arg)

+#else

+#define devdbg(usbnet, fmt, arg...)

+ ({ if (0) printk(KERN_DEBUG "%s: " fmt "n" , (usbnet)->net->name ,

+ ## arg); 0; })

+#endif

+

+#define deverr(usbnet, fmt, arg...)

+ printk(KERN_ERR "%s: " fmt "n" , (usbnet)->net->name , ## arg)

+#define devwarn(usbnet, fmt, arg...)

+ printk(KERN_WARNING "%s: " fmt "n" , (usbnet)->net->name , ## arg)

+

+#define devinfo(usbnet, fmt, arg...)

+ printk(KERN_INFO "%s: " fmt "n" , (usbnet)->net->name , ## arg);

+ /*----------------------------------------------------------------------------------------------*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值