Lines Matching refs:ether

179 	struct w90p910_ether *ether = netdev_priv(dev);  in update_linkspeed_register()  local
182 val = __raw_readl(ether->reg + REG_MCMDR); in update_linkspeed_register()
202 __raw_writel(val, ether->reg + REG_MCMDR); in update_linkspeed_register()
207 struct w90p910_ether *ether = netdev_priv(dev); in update_linkspeed() local
211 pdev = ether->pdev; in update_linkspeed()
213 if (!mii_link_ok(&ether->mii)) { in update_linkspeed()
214 ether->linkflag = 0x0; in update_linkspeed()
220 if (ether->linkflag == 1) in update_linkspeed()
223 bmsr = w90p910_mdio_read(dev, ether->mii.phy_id, MII_BMSR); in update_linkspeed()
224 bmcr = w90p910_mdio_read(dev, ether->mii.phy_id, MII_BMCR); in update_linkspeed()
230 lpa = w90p910_mdio_read(dev, ether->mii.phy_id, MII_LPA); in update_linkspeed()
251 ether->linkflag = 0x01; in update_linkspeed()
258 struct w90p910_ether *ether = from_timer(ether, t, check_timer); in w90p910_check_link() local
259 struct net_device *dev = ether->mii.dev; in w90p910_check_link()
262 mod_timer(&ether->check_timer, jiffies + msecs_to_jiffies(1000)); in w90p910_check_link()
268 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_write_cam() local
275 __raw_writel(lsw, ether->reg + REG_CAML_BASE + x * CAM_ENTRY_SIZE); in w90p910_write_cam()
276 __raw_writel(msw, ether->reg + REG_CAMM_BASE + x * CAM_ENTRY_SIZE); in w90p910_write_cam()
281 struct w90p910_ether *ether; in w90p910_init_desc() local
287 ether = netdev_priv(dev); in w90p910_init_desc()
288 pdev = ether->pdev; in w90p910_init_desc()
290 ether->tdesc = dma_alloc_coherent(&pdev->dev, sizeof(struct tran_pdesc), in w90p910_init_desc()
291 &ether->tdesc_phys, GFP_KERNEL); in w90p910_init_desc()
292 if (!ether->tdesc) in w90p910_init_desc()
295 ether->rdesc = dma_alloc_coherent(&pdev->dev, sizeof(struct recv_pdesc), in w90p910_init_desc()
296 &ether->rdesc_phys, GFP_KERNEL); in w90p910_init_desc()
297 if (!ether->rdesc) { in w90p910_init_desc()
299 ether->tdesc, ether->tdesc_phys); in w90p910_init_desc()
306 tdesc = &(ether->tdesc->desclist[i]); in w90p910_init_desc()
313 tdesc->next = ether->tdesc_phys + offset; in w90p910_init_desc()
314 tdesc->buffer = ether->tdesc_phys + in w90p910_init_desc()
320 ether->start_tx_ptr = ether->tdesc_phys; in w90p910_init_desc()
325 rdesc = &(ether->rdesc->desclist[i]); in w90p910_init_desc()
332 rdesc->next = ether->rdesc_phys + offset; in w90p910_init_desc()
334 rdesc->buffer = ether->rdesc_phys + in w90p910_init_desc()
338 ether->start_rx_ptr = ether->rdesc_phys; in w90p910_init_desc()
345 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_set_fifo_threshold() local
349 __raw_writel(val, ether->reg + REG_FFTCR); in w90p910_set_fifo_threshold()
354 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_return_default_idle() local
357 val = __raw_readl(ether->reg + REG_MCMDR); in w90p910_return_default_idle()
359 __raw_writel(val, ether->reg + REG_MCMDR); in w90p910_return_default_idle()
364 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_trigger_rx() local
366 __raw_writel(ENSTART, ether->reg + REG_RSDR); in w90p910_trigger_rx()
371 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_trigger_tx() local
373 __raw_writel(ENSTART, ether->reg + REG_TSDR); in w90p910_trigger_tx()
378 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_enable_mac_interrupt() local
384 __raw_writel(val, ether->reg + REG_MIEN); in w90p910_enable_mac_interrupt()
390 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_get_and_clear_int() local
392 *val = __raw_readl(ether->reg + REG_MISTA); in w90p910_get_and_clear_int()
393 __raw_writel(*val, ether->reg + REG_MISTA); in w90p910_get_and_clear_int()
398 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_set_global_maccmd() local
401 val = __raw_readl(ether->reg + REG_MCMDR); in w90p910_set_global_maccmd()
403 __raw_writel(val, ether->reg + REG_MCMDR); in w90p910_set_global_maccmd()
408 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_enable_cam() local
413 val = __raw_readl(ether->reg + REG_CAMEN); in w90p910_enable_cam()
415 __raw_writel(val, ether->reg + REG_CAMEN); in w90p910_enable_cam()
420 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_enable_cam_command() local
424 __raw_writel(val, ether->reg + REG_CAMCMR); in w90p910_enable_cam_command()
429 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_enable_tx() local
432 val = __raw_readl(ether->reg + REG_MCMDR); in w90p910_enable_tx()
439 __raw_writel(val, ether->reg + REG_MCMDR); in w90p910_enable_tx()
444 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_enable_rx() local
447 val = __raw_readl(ether->reg + REG_MCMDR); in w90p910_enable_rx()
454 __raw_writel(val, ether->reg + REG_MCMDR); in w90p910_enable_rx()
459 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_set_curdest() local
461 __raw_writel(ether->start_rx_ptr, ether->reg + REG_RXDLSA); in w90p910_set_curdest()
462 __raw_writel(ether->start_tx_ptr, ether->reg + REG_TXDLSA); in w90p910_set_curdest()
467 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_reset_mac() local
480 ether->cur_tx = 0x0; in w90p910_reset_mac()
481 ether->finish_tx = 0x0; in w90p910_reset_mac()
482 ether->cur_rx = 0x0; in w90p910_reset_mac()
502 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_mdio_write() local
506 pdev = ether->pdev; in w90p910_mdio_write()
508 __raw_writel(data, ether->reg + REG_MIID); in w90p910_mdio_write()
512 __raw_writel(val, ether->reg + REG_MIIDA); in w90p910_mdio_write()
515 if ((__raw_readl(ether->reg + REG_MIIDA) & PHYBUSY) == 0) in w90p910_mdio_write()
525 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_mdio_read() local
529 pdev = ether->pdev; in w90p910_mdio_read()
533 __raw_writel(val, ether->reg + REG_MIIDA); in w90p910_mdio_read()
536 if ((__raw_readl(ether->reg + REG_MIIDA) & PHYBUSY) == 0) in w90p910_mdio_read()
544 data = __raw_readl(ether->reg + REG_MIID); in w90p910_mdio_read()
565 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_ether_close() local
568 pdev = ether->pdev; in w90p910_ether_close()
571 ether->rdesc, ether->rdesc_phys); in w90p910_ether_close()
573 ether->tdesc, ether->tdesc_phys); in w90p910_ether_close()
577 del_timer_sync(&ether->check_timer); in w90p910_ether_close()
578 clk_disable(ether->rmiiclk); in w90p910_ether_close()
579 clk_disable(ether->clk); in w90p910_ether_close()
581 free_irq(ether->txirq, dev); in w90p910_ether_close()
582 free_irq(ether->rxirq, dev); in w90p910_ether_close()
590 struct w90p910_ether *ether; in w90p910_send_frame() local
595 ether = netdev_priv(dev); in w90p910_send_frame()
596 pdev = ether->pdev; in w90p910_send_frame()
598 txbd = &ether->tdesc->desclist[ether->cur_tx]; in w90p910_send_frame()
599 buffer = ether->tdesc->tran_buf[ether->cur_tx]; in w90p910_send_frame()
616 if (++ether->cur_tx >= TX_DESC_SIZE) in w90p910_send_frame()
617 ether->cur_tx = 0; in w90p910_send_frame()
619 txbd = &ether->tdesc->desclist[ether->cur_tx]; in w90p910_send_frame()
629 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_ether_start_xmit() local
632 ether->skb = skb; in w90p910_ether_start_xmit()
641 struct w90p910_ether *ether; in w90p910_tx_interrupt() local
648 ether = netdev_priv(dev); in w90p910_tx_interrupt()
649 pdev = ether->pdev; in w90p910_tx_interrupt()
653 cur_entry = __raw_readl(ether->reg + REG_CTXDSA); in w90p910_tx_interrupt()
655 entry = ether->tdesc_phys + in w90p910_tx_interrupt()
656 offsetof(struct tran_pdesc, desclist[ether->finish_tx]); in w90p910_tx_interrupt()
659 txbd = &ether->tdesc->desclist[ether->finish_tx]; in w90p910_tx_interrupt()
661 if (++ether->finish_tx >= TX_DESC_SIZE) in w90p910_tx_interrupt()
662 ether->finish_tx = 0; in w90p910_tx_interrupt()
677 entry = ether->tdesc_phys + in w90p910_tx_interrupt()
678 offsetof(struct tran_pdesc, desclist[ether->finish_tx]); in w90p910_tx_interrupt()
696 struct w90p910_ether *ether; in netdev_rx() local
703 ether = netdev_priv(dev); in netdev_rx()
704 pdev = ether->pdev; in netdev_rx()
706 rxbd = &ether->rdesc->desclist[ether->cur_rx]; in netdev_rx()
709 val = __raw_readl(ether->reg + REG_CRXDSA); in netdev_rx()
711 entry = ether->rdesc_phys + in netdev_rx()
712 offsetof(struct recv_pdesc, desclist[ether->cur_rx]); in netdev_rx()
721 data = ether->rdesc->recv_buf[ether->cur_rx]; in netdev_rx()
756 if (++ether->cur_rx >= RX_DESC_SIZE) in netdev_rx()
757 ether->cur_rx = 0; in netdev_rx()
759 rxbd = &ether->rdesc->desclist[ether->cur_rx]; in netdev_rx()
767 struct w90p910_ether *ether; in w90p910_rx_interrupt() local
772 ether = netdev_priv(dev); in w90p910_rx_interrupt()
773 pdev = ether->pdev; in w90p910_rx_interrupt()
793 struct w90p910_ether *ether; in w90p910_ether_open() local
796 ether = netdev_priv(dev); in w90p910_ether_open()
797 pdev = ether->pdev; in w90p910_ether_open()
808 clk_enable(ether->rmiiclk); in w90p910_ether_open()
809 clk_enable(ether->clk); in w90p910_ether_open()
811 ether->rx_packets = 0x0; in w90p910_ether_open()
812 ether->rx_bytes = 0x0; in w90p910_ether_open()
814 if (request_irq(ether->txirq, w90p910_tx_interrupt, in w90p910_ether_open()
820 if (request_irq(ether->rxirq, w90p910_rx_interrupt, in w90p910_ether_open()
823 free_irq(ether->txirq, dev); in w90p910_ether_open()
827 mod_timer(&ether->check_timer, jiffies + msecs_to_jiffies(1000)); in w90p910_ether_open()
838 struct w90p910_ether *ether; in w90p910_ether_set_multicast_list() local
841 ether = netdev_priv(dev); in w90p910_ether_set_multicast_list()
849 __raw_writel(rx_mode, ether->reg + REG_CAMCMR); in w90p910_ether_set_multicast_list()
855 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_ether_ioctl() local
858 return generic_mii_ioctl(&ether->mii, data, cmd, NULL); in w90p910_ether_ioctl()
871 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_get_link_ksettings() local
873 mii_ethtool_get_link_ksettings(&ether->mii, cmd); in w90p910_get_link_ksettings()
881 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_set_link_ksettings() local
882 return mii_ethtool_set_link_ksettings(&ether->mii, cmd); in w90p910_set_link_ksettings()
887 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_nway_reset() local
888 return mii_nway_restart(&ether->mii); in w90p910_nway_reset()
893 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_get_link() local
894 return mii_link_ok(&ether->mii); in w90p910_get_link()
917 struct w90p910_ether *ether = netdev_priv(dev); in get_mac_address() local
921 pdev = ether->pdev; in get_mac_address()
938 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_ether_setup() local
949 ether->cur_tx = 0x0; in w90p910_ether_setup()
950 ether->cur_rx = 0x0; in w90p910_ether_setup()
951 ether->finish_tx = 0x0; in w90p910_ether_setup()
952 ether->linkflag = 0x0; in w90p910_ether_setup()
953 ether->mii.phy_id = 0x01; in w90p910_ether_setup()
954 ether->mii.phy_id_mask = 0x1f; in w90p910_ether_setup()
955 ether->mii.reg_num_mask = 0x1f; in w90p910_ether_setup()
956 ether->mii.dev = dev; in w90p910_ether_setup()
957 ether->mii.mdio_read = w90p910_mdio_read; in w90p910_ether_setup()
958 ether->mii.mdio_write = w90p910_mdio_write; in w90p910_ether_setup()
960 timer_setup(&ether->check_timer, w90p910_check_link, 0); in w90p910_ether_setup()
967 struct w90p910_ether *ether; in w90p910_ether_probe() local
975 ether = netdev_priv(dev); in w90p910_ether_probe()
977 ether->res = platform_get_resource(pdev, IORESOURCE_MEM, 0); in w90p910_ether_probe()
978 if (ether->res == NULL) { in w90p910_ether_probe()
984 if (!request_mem_region(ether->res->start, in w90p910_ether_probe()
985 resource_size(ether->res), pdev->name)) { in w90p910_ether_probe()
991 ether->reg = ioremap(ether->res->start, resource_size(ether->res)); in w90p910_ether_probe()
992 if (ether->reg == NULL) { in w90p910_ether_probe()
998 ether->txirq = platform_get_irq(pdev, 0); in w90p910_ether_probe()
999 if (ether->txirq < 0) { in w90p910_ether_probe()
1005 ether->rxirq = platform_get_irq(pdev, 1); in w90p910_ether_probe()
1006 if (ether->rxirq < 0) { in w90p910_ether_probe()
1014 ether->clk = clk_get(&pdev->dev, NULL); in w90p910_ether_probe()
1015 if (IS_ERR(ether->clk)) { in w90p910_ether_probe()
1017 error = PTR_ERR(ether->clk); in w90p910_ether_probe()
1021 ether->rmiiclk = clk_get(&pdev->dev, "RMII"); in w90p910_ether_probe()
1022 if (IS_ERR(ether->rmiiclk)) { in w90p910_ether_probe()
1024 error = PTR_ERR(ether->rmiiclk); in w90p910_ether_probe()
1028 ether->pdev = pdev; in w90p910_ether_probe()
1041 clk_put(ether->rmiiclk); in w90p910_ether_probe()
1043 clk_put(ether->clk); in w90p910_ether_probe()
1045 iounmap(ether->reg); in w90p910_ether_probe()
1047 release_mem_region(ether->res->start, resource_size(ether->res)); in w90p910_ether_probe()
1056 struct w90p910_ether *ether = netdev_priv(dev); in w90p910_ether_remove() local
1060 clk_put(ether->rmiiclk); in w90p910_ether_remove()
1061 clk_put(ether->clk); in w90p910_ether_remove()
1063 iounmap(ether->reg); in w90p910_ether_remove()
1064 release_mem_region(ether->res->start, resource_size(ether->res)); in w90p910_ether_remove()
1066 del_timer_sync(&ether->check_timer); in w90p910_ether_remove()