• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/net/

Lines Matching refs:msp

1078 	struct mv643xx_eth_shared_private *msp = dev_id;
1080 if (readl(msp->base + ERR_INT_CAUSE) & ERR_INT_SMI_DONE) {
1081 writel(~ERR_INT_SMI_DONE, msp->base + ERR_INT_CAUSE);
1082 wake_up(&msp->smi_busy_wait);
1089 static int smi_is_done(struct mv643xx_eth_shared_private *msp)
1091 return !(readl(msp->base + SMI_REG) & SMI_BUSY);
1094 static int smi_wait_ready(struct mv643xx_eth_shared_private *msp)
1096 if (msp->err_interrupt == NO_IRQ) {
1099 for (i = 0; !smi_is_done(msp); i++) {
1108 if (!smi_is_done(msp)) {
1109 wait_event_timeout(msp->smi_busy_wait, smi_is_done(msp),
1111 if (!smi_is_done(msp))
1120 struct mv643xx_eth_shared_private *msp = bus->priv;
1121 void __iomem *smi_reg = msp->base + SMI_REG;
1124 if (smi_wait_ready(msp)) {
1131 if (smi_wait_ready(msp)) {
1147 struct mv643xx_eth_shared_private *msp = bus->priv;
1148 void __iomem *smi_reg = msp->base + SMI_REG;
1150 if (smi_wait_ready(msp)) {
1158 if (smi_wait_ready(msp)) {
2538 mv643xx_eth_conf_mbus_windows(struct mv643xx_eth_shared_private *msp,
2541 void __iomem *base = msp->base;
2569 msp->win_protect = win_protect;
2572 static void infer_hw_params(struct mv643xx_eth_shared_private *msp)
2579 writel(0x02000000, msp->base + 0x0400 + SDMA_CONFIG);
2580 if (readl(msp->base + 0x0400 + SDMA_CONFIG) & 0x02000000)
2581 msp->extended_rx_coal_limit = 1;
2583 msp->extended_rx_coal_limit = 0;
2590 writel(1, msp->base + 0x0400 + TX_BW_MTU_MOVED);
2591 if (readl(msp->base + 0x0400 + TX_BW_MTU_MOVED) & 1) {
2592 msp->tx_bw_control = TX_BW_CONTROL_NEW_LAYOUT;
2594 writel(7, msp->base + 0x0400 + TX_BW_RATE);
2595 if (readl(msp->base + 0x0400 + TX_BW_RATE) & 7)
2596 msp->tx_bw_control = TX_BW_CONTROL_OLD_LAYOUT;
2598 msp->tx_bw_control = TX_BW_CONTROL_ABSENT;
2606 struct mv643xx_eth_shared_private *msp;
2620 msp = kzalloc(sizeof(*msp), GFP_KERNEL);
2621 if (msp == NULL)
2624 msp->base = ioremap(res->start, res->end - res->start + 1);
2625 if (msp->base == NULL)
2632 msp->smi_bus = mdiobus_alloc();
2633 if (msp->smi_bus == NULL)
2636 msp->smi_bus->priv = msp;
2637 msp->smi_bus->name = "mv643xx_eth smi";
2638 msp->smi_bus->read = smi_bus_read;
2639 msp->smi_bus->write = smi_bus_write,
2640 snprintf(msp->smi_bus->id, MII_BUS_ID_SIZE, "%d", pdev->id);
2641 msp->smi_bus->parent = &pdev->dev;
2642 msp->smi_bus->phy_mask = 0xffffffff;
2643 if (mdiobus_register(msp->smi_bus) < 0)
2645 msp->smi = msp;
2647 msp->smi = platform_get_drvdata(pd->shared_smi);
2650 msp->err_interrupt = NO_IRQ;
2651 init_waitqueue_head(&msp->smi_busy_wait);
2661 IRQF_SHARED, "mv643xx_eth", msp);
2663 writel(ERR_INT_SMI_DONE, msp->base + ERR_INT_MASK);
2664 msp->err_interrupt = res->start;
2672 mv643xx_eth_conf_mbus_windows(msp, pd->dram);
2677 msp->t_clk = (pd != NULL && pd->t_clk != 0) ? pd->t_clk : 133000000;
2678 msp->tx_csum_limit = (pd != NULL && pd->tx_csum_limit) ?
2680 infer_hw_params(msp);
2682 platform_set_drvdata(pdev, msp);
2687 mdiobus_free(msp->smi_bus);
2689 iounmap(msp->base);
2691 kfree(msp);
2698 struct mv643xx_eth_shared_private *msp = platform_get_drvdata(pdev);
2702 mdiobus_unregister(msp->smi_bus);
2703 mdiobus_free(msp->smi_bus);
2705 if (msp->err_interrupt != NO_IRQ)
2706 free_irq(msp->err_interrupt, msp);
2707 iounmap(msp->base);
2708 kfree(msp);