Lines Matching refs:db

94 	struct emac_board_info *db = netdev_priv(dev);
98 reg_val = readl(db->membase + EMAC_MAC_SUPP_REG);
100 if (db->speed == SPEED_100)
102 writel(reg_val, db->membase + EMAC_MAC_SUPP_REG);
107 struct emac_board_info *db = netdev_priv(dev);
111 reg_val = readl(db->membase + EMAC_MAC_CTL1_REG);
113 if (db->duplex)
115 writel(reg_val, db->membase + EMAC_MAC_CTL1_REG);
120 struct emac_board_info *db = netdev_priv(dev);
126 if (db->speed != phydev->speed) {
127 spin_lock_irqsave(&db->lock, flags);
128 db->speed = phydev->speed;
130 spin_unlock_irqrestore(&db->lock, flags);
134 if (db->duplex != phydev->duplex) {
135 spin_lock_irqsave(&db->lock, flags);
136 db->duplex = phydev->duplex;
138 spin_unlock_irqrestore(&db->lock, flags);
143 if (phydev->link != db->link) {
145 db->speed = 0;
146 db->duplex = -1;
148 db->link = phydev->link;
159 struct emac_board_info *db = netdev_priv(dev);
165 phydev = of_phy_connect(db->ndev, db->phy_node,
167 db->phy_interface);
169 netdev_err(db->ndev, "could not find the PHY\n");
176 db->link = 0;
177 db->speed = 0;
178 db->duplex = -1;
188 static void emac_reset(struct emac_board_info *db)
190 dev_dbg(db->dev, "resetting device\n");
193 writel(0, db->membase + EMAC_CTL_REG);
195 writel(EMAC_CTL_RESET, db->membase + EMAC_CTL_REG);
219 struct emac_board_info *db = netdev_priv(dev);
221 return db->msg_enable;
226 struct emac_board_info *db = netdev_priv(dev);
228 db->msg_enable = value;
242 struct emac_board_info *db = netdev_priv(ndev);
246 reg_val = readl(db->membase + EMAC_TX_MODE_REG);
249 db->membase + EMAC_TX_MODE_REG);
253 reg_val = readl(db->membase + EMAC_MAC_CTL0_REG);
256 db->membase + EMAC_MAC_CTL0_REG);
259 reg_val = readl(db->membase + EMAC_MAC_CTL1_REG);
263 writel(reg_val, db->membase + EMAC_MAC_CTL1_REG);
266 writel(EMAC_MAC_IPGT_FULL_DUPLEX, db->membase + EMAC_MAC_IPGT_REG);
270 db->membase + EMAC_MAC_IPGR_REG);
274 db->membase + EMAC_MAC_CLRT_REG);
278 db->membase + EMAC_MAC_MAXF_REG);
285 struct emac_board_info *db = netdev_priv(ndev);
289 reg_val = readl(db->membase + EMAC_RX_CTL_REG);
300 db->membase + EMAC_RX_CTL_REG);
305 struct emac_board_info *db = netdev_priv(ndev);
310 reg_val = readl(db->membase + EMAC_RX_CTL_REG);
312 writel(reg_val, db->membase + EMAC_RX_CTL_REG);
317 reg_val = readl(db->membase + EMAC_MAC_CTL0_REG);
319 writel(reg_val, db->membase + EMAC_MAC_CTL0_REG);
322 reg_val = readl(db->membase + EMAC_MAC_MCFG_REG);
325 writel(reg_val, db->membase + EMAC_MAC_MCFG_REG);
328 writel(0x0, db->membase + EMAC_RX_FBC_REG);
331 writel(0, db->membase + EMAC_INT_CTL_REG);
332 reg_val = readl(db->membase + EMAC_INT_STA_REG);
333 writel(reg_val, db->membase + EMAC_INT_STA_REG);
342 dev_addr[2], db->membase + EMAC_MAC_A1_REG);
344 dev_addr[5], db->membase + EMAC_MAC_A0_REG);
354 struct emac_board_info *db = netdev_priv(dev);
362 dev_addr[2], db->membase + EMAC_MAC_A1_REG);
364 dev_addr[5], db->membase + EMAC_MAC_A0_REG);
372 struct emac_board_info *db = netdev_priv(dev);
376 spin_lock_irqsave(&db->lock, flags);
382 reg_val = readl(db->membase + EMAC_CTL_REG);
384 db->membase + EMAC_CTL_REG);
387 reg_val = readl(db->membase + EMAC_INT_CTL_REG);
389 writel(reg_val, db->membase + EMAC_INT_CTL_REG);
391 spin_unlock_irqrestore(&db->lock, flags);
397 struct emac_board_info *db = netdev_priv(dev);
400 if (netif_msg_timer(db))
401 dev_err(db->dev, "tx time out.\n");
404 spin_lock_irqsave(&db->lock, flags);
407 emac_reset(db);
414 spin_unlock_irqrestore(&db->lock, flags);
422 struct emac_board_info *db = netdev_priv(dev);
426 channel = db->tx_fifo_stat & 3;
432 spin_lock_irqsave(&db->lock, flags);
434 writel(channel, db->membase + EMAC_TX_INS_REG);
436 emac_outblk_32bit(db->membase + EMAC_TX_IO_DATA_REG,
440 db->tx_fifo_stat |= 1 << channel;
444 writel(skb->len, db->membase + EMAC_TX_PL0_REG);
446 writel(readl(db->membase + EMAC_TX_CTL0_REG) | 1,
447 db->membase + EMAC_TX_CTL0_REG);
453 writel(skb->len, db->membase + EMAC_TX_PL1_REG);
455 writel(readl(db->membase + EMAC_TX_CTL1_REG) | 1,
456 db->membase + EMAC_TX_CTL1_REG);
462 if ((db->tx_fifo_stat & 3) == 3) {
467 spin_unlock_irqrestore(&db->lock, flags);
478 static void emac_tx_done(struct net_device *dev, struct emac_board_info *db,
482 db->tx_fifo_stat &= ~(tx_status & 3);
488 if (netif_msg_tx_done(db))
489 dev_dbg(db->dev, "tx done, NSR %02x\n", tx_status);
498 struct emac_board_info *db = netdev_priv(dev);
512 rxcount = readl(db->membase + EMAC_RX_FBC_REG);
514 if (netif_msg_rx_status(db))
515 dev_dbg(db->dev, "RXCount: %x\n", rxcount);
517 if ((db->skb_last != NULL) && (rxlen_last > 0)) {
521 db->skb_last->protocol = eth_type_trans(db->skb_last,
523 netif_rx(db->skb_last);
525 db->skb_last = NULL;
528 reg_val = readl(db->membase + EMAC_RX_CTL_REG);
530 writel(reg_val, db->membase + EMAC_RX_CTL_REG);
534 db->emacrx_completed_flag = 1;
535 reg_val = readl(db->membase + EMAC_INT_CTL_REG);
537 writel(reg_val, db->membase + EMAC_INT_CTL_REG);
540 rxcount = readl(db->membase + EMAC_RX_FBC_REG);
545 reg_val = readl(db->membase + EMAC_RX_IO_DATA_REG);
546 if (netif_msg_rx_status(db))
547 dev_dbg(db->dev, "receive header: %x\n", reg_val);
550 reg_val = readl(db->membase + EMAC_CTL_REG);
552 db->membase + EMAC_CTL_REG);
555 reg_val = readl(db->membase + EMAC_RX_CTL_REG);
557 db->membase + EMAC_RX_CTL_REG);
560 reg_val = readl(db->membase + EMAC_RX_CTL_REG);
564 reg_val = readl(db->membase + EMAC_CTL_REG);
566 db->membase + EMAC_CTL_REG);
567 reg_val = readl(db->membase + EMAC_INT_CTL_REG);
569 writel(reg_val, db->membase + EMAC_INT_CTL_REG);
571 db->emacrx_completed_flag = 1;
579 rxhdr = readl(db->membase + EMAC_RX_IO_DATA_REG);
581 if (netif_msg_rx_status(db))
582 dev_dbg(db->dev, "rxhdr: %x\n", *((int *)(&rxhdr)));
587 if (netif_msg_rx_status(db))
588 dev_dbg(db->dev, "RX: status %02x, length %04x\n",
594 if (netif_msg_rx_err(db))
595 dev_dbg(db->dev, "RX: Bad Packet (runt)\n");
602 if (netif_msg_rx_err(db))
603 dev_dbg(db->dev, "crc error\n");
608 if (netif_msg_rx_err(db))
609 dev_dbg(db->dev, "length error\n");
623 if (netif_msg_rx_status(db))
624 dev_dbg(db->dev, "RxLen %x\n", rxlen);
626 emac_inblk_32bit(db->membase + EMAC_RX_IO_DATA_REG,
641 struct emac_board_info *db = netdev_priv(dev);
647 spin_lock(&db->lock);
650 writel(0, db->membase + EMAC_INT_CTL_REG);
654 int_status = readl(db->membase + EMAC_INT_STA_REG);
656 writel(int_status, db->membase + EMAC_INT_STA_REG);
658 if (netif_msg_intr(db))
659 dev_dbg(db->dev, "emac interrupt %02x\n", int_status);
662 if ((int_status & 0x100) && (db->emacrx_completed_flag == 1)) {
664 db->emacrx_completed_flag = 0;
670 emac_tx_done(dev, db, int_status);
676 if (db->emacrx_completed_flag == 1) {
677 reg_val = readl(db->membase + EMAC_INT_CTL_REG);
679 writel(reg_val, db->membase + EMAC_INT_CTL_REG);
681 spin_unlock(&db->lock);
703 struct emac_board_info *db = netdev_priv(dev);
706 if (netif_msg_ifup(db))
707 dev_dbg(db->dev, "enabling %s\n", dev->name);
713 emac_reset(db);
732 struct emac_board_info *db = netdev_priv(dev);
735 writel(0, db->membase + EMAC_INT_CTL_REG);
738 reg_val = readl(db->membase + EMAC_INT_STA_REG);
739 writel(reg_val, db->membase + EMAC_INT_STA_REG);
742 reg_val = readl(db->membase + EMAC_CTL_REG);
744 writel(reg_val, db->membase + EMAC_CTL_REG);
752 struct emac_board_info *db = netdev_priv(ndev);
754 if (netif_msg_ifdown(db))
755 dev_dbg(db->dev, "shutting down %s\n", ndev->name);
790 struct emac_board_info *db;
803 db = netdev_priv(ndev);
805 db->dev = &pdev->dev;
806 db->ndev = ndev;
807 db->pdev = pdev;
808 db->msg_enable = netif_msg_init(debug, EMAC_DEFAULT_MSG_ENABLE);
810 spin_lock_init(&db->lock);
812 db->membase = of_iomap(np, 0);
813 if (!db->membase) {
820 ndev->base_addr = (unsigned long)db->membase;
828 db->clk = devm_clk_get(&pdev->dev, NULL);
829 if (IS_ERR(db->clk)) {
830 ret = PTR_ERR(db->clk);
834 ret = clk_prepare_enable(db->clk);
846 db->phy_node = of_parse_phandle(np, "phy-handle", 0);
847 if (!db->phy_node)
848 db->phy_node = of_parse_phandle(np, "phy", 0);
849 if (!db->phy_node) {
867 db->emacrx_completed_flag = 1;
869 emac_reset(db);
888 ndev->name, db->membase, ndev->irq, ndev->dev_addr);
895 clk_disable_unprepare(db->clk);
899 iounmap(db->membase);
901 dev_err(db->dev, "not found (%d).\n", ret);
911 struct emac_board_info *db = netdev_priv(ndev);
915 clk_disable_unprepare(db->clk);
917 iounmap(db->membase);
938 struct emac_board_info *db = netdev_priv(ndev);
940 emac_reset(db);