免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: alonglkj
打印 上一主题 下一主题

[驱动] dm9000 双网卡 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2014-03-28 18:00 |只看该作者
static irqreturn_t dm9000_interrupt(int irq, void *dev_id)
{
        struct net_device *dev = dev_id;
        board_info_t *db = netdev_priv(dev);
        int int_status;
        unsigned long flags;
        u8 reg_save;
   
        dm9000_dbg(db, 3, "entering %s\n", __func__);

        /* A real interrupt coming */

        /* holders of db->lock must always block IRQs */
        spin_lock_irqsave(&db->lock, flags);

        /* Save previous register address */
        reg_save = readb(db->io_addr);

        /* Disable all interrupts */
        iow(db, DM9000_IMR, IMR_PAR);

        /* Got DM9000 interrupt status */
        int_status = ior(db, DM9000_ISR);        /* Got ISR */
        iow(db, DM9000_ISR, int_status);        /* Clear ISR status */

        if (netif_msg_intr(db))
                dev_dbg(db->dev, "interrupt status %02x\n", int_status);

        /* Received the coming packet */
        if (int_status & ISR_PRS)
                dm9000_rx(dev);

        /* Trnasmit Interrupt check */
        if (int_status & ISR_PTS)
                dm9000_tx_done(dev, db);

        if (db->type != TYPE_DM9000E) {
                if (int_status & ISR_LNKCHNG) {
                        /* fire a link-change request */
                        schedule_delayed_work(&db->phy_poll, 1);
                }
        }

        /* Re-enable interrupt mask */
        iow(db, DM9000_IMR, db->imr_all);

        /* Restore previous register address */
        writeb(reg_save, db->io_addr);

        spin_unlock_irqrestore(&db->lock, flags);

        return IRQ_HANDLED;
}
当把网线插上(不通)的网口的时候,会不停的进入这个中断函数但是不会进入dm9000_rx,int_status的值等于0,但是当网线插上能通的那个网口上的时候,也进这个中断函数,但是int_status=1;然后进入dm9000_rx函数,怎么会这样呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP