Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 513fd370 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'davem-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6

parents 709772e6 68c28898
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -506,6 +506,7 @@ int lance_open (struct net_device *dev)

	return res;
}
EXPORT_SYMBOL_GPL(lance_open);

int lance_close (struct net_device *dev)
{
@@ -521,6 +522,7 @@ int lance_close (struct net_device *dev)

        return 0;
}
EXPORT_SYMBOL_GPL(lance_close);

void lance_tx_timeout(struct net_device *dev)
{
@@ -529,7 +531,7 @@ void lance_tx_timeout(struct net_device *dev)
	dev->trans_start = jiffies;
	netif_wake_queue (dev);
}

EXPORT_SYMBOL_GPL(lance_tx_timeout);

int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)
{
@@ -586,6 +588,7 @@ int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)

        return 0;
}
EXPORT_SYMBOL_GPL(lance_start_xmit);

/* taken from the depca driver via a2065.c */
static void lance_load_multicast (struct net_device *dev)
@@ -654,6 +657,7 @@ void lance_set_multicast (struct net_device *dev)
	if (!stopped)
		netif_start_queue (dev);
}
EXPORT_SYMBOL_GPL(lance_set_multicast);

#ifdef CONFIG_NET_POLL_CONTROLLER
void lance_poll(struct net_device *dev)
+0 −17
Original line number Diff line number Diff line
@@ -636,22 +636,6 @@ static s32 atl1_phy_leave_power_saving(struct atl1_hw *hw)
	return atl1_write_phy_reg(hw, 30, 0);
}

/*
 * Force the PHY into power saving mode using vendor magic.
 */
#ifdef CONFIG_PM
static void atl1_phy_enter_power_saving(struct atl1_hw *hw)
{
	atl1_write_phy_reg(hw, MII_DBG_ADDR, 0);
	atl1_write_phy_reg(hw, MII_DBG_DATA, 0x124E);
	atl1_write_phy_reg(hw, MII_DBG_ADDR, 2);
	atl1_write_phy_reg(hw, MII_DBG_DATA, 0x3000);
	atl1_write_phy_reg(hw, MII_DBG_ADDR, 3);
	atl1_write_phy_reg(hw, MII_DBG_DATA, 0);

}
#endif

/*
 * Resets the PHY and make all config validate
 * hw - Struct containing variables accessed by shared code
@@ -2860,7 +2844,6 @@ static int atl1_suspend(struct pci_dev *pdev, pm_message_t state)
	ctrl |= PCIE_PHYMISC_FORCE_RCV_DET;
	iowrite32(ctrl, hw->hw_addr + REG_PCIE_PHYMISC);
	ioread32(hw->hw_addr + REG_PCIE_PHYMISC);
	atl1_phy_enter_power_saving(hw);
	hw->phy_configured = false;
	pci_enable_wake(pdev, pci_choose_state(pdev, state), 0);
exit:
+10 −6
Original line number Diff line number Diff line
@@ -1766,16 +1766,20 @@ static int ehea_set_mac_addr(struct net_device *dev, void *sa)
	mutex_lock(&ehea_bcmc_regs.lock);

	/* Deregister old MAC in pHYP */
	if (port->state == EHEA_PORT_UP) {
		ret = ehea_broadcast_reg_helper(port, H_DEREG_BCMC);
		if (ret)
			goto out_upregs;
	}

	port->mac_addr = cb0->port_mac_addr << 16;

	/* Register new MAC in pHYP */
	if (port->state == EHEA_PORT_UP) {
		ret = ehea_broadcast_reg_helper(port, H_REG_BCMC);
		if (ret)
			goto out_upregs;
	}

	ret = 0;

+20 −0
Original line number Diff line number Diff line
@@ -3273,6 +3273,20 @@ static void nv_link_irq(struct net_device *dev)
	dprintk(KERN_DEBUG "%s: link change notification done.\n", dev->name);
}

static void nv_msi_workaround(struct fe_priv *np)
{

	/* Need to toggle the msi irq mask within the ethernet device,
	 * otherwise, future interrupts will not be detected.
	 */
	if (np->msi_flags & NV_MSI_ENABLED) {
		u8 __iomem *base = np->base;

		writel(0, base + NvRegMSIIrqMask);
		writel(NVREG_MSI_VECTOR_0_ENABLED, base + NvRegMSIIrqMask);
	}
}

static irqreturn_t nv_nic_irq(int foo, void *data)
{
	struct net_device *dev = (struct net_device *) data;
@@ -3295,6 +3309,8 @@ static irqreturn_t nv_nic_irq(int foo, void *data)
		if (!(events & np->irqmask))
			break;

		nv_msi_workaround(np);

		spin_lock(&np->lock);
		nv_tx_done(dev);
		spin_unlock(&np->lock);
@@ -3410,6 +3426,8 @@ static irqreturn_t nv_nic_irq_optimized(int foo, void *data)
		if (!(events & np->irqmask))
			break;

		nv_msi_workaround(np);

		spin_lock(&np->lock);
		nv_tx_done_optimized(dev, TX_WORK_PER_LOOP);
		spin_unlock(&np->lock);
@@ -3750,6 +3768,8 @@ static irqreturn_t nv_nic_irq_test(int foo, void *data)
	if (!(events & NVREG_IRQ_TIMER))
		return IRQ_RETVAL(0);

	nv_msi_workaround(np);

	spin_lock(&np->lock);
	np->intr_test = 1;
	spin_unlock(&np->lock);
+2 −2
Original line number Diff line number Diff line
@@ -58,8 +58,8 @@ static s32 ixgbe_reset_hw_82598(struct ixgbe_hw *hw);

static s32 ixgbe_get_invariants_82598(struct ixgbe_hw *hw)
{
	hw->mac.num_rx_queues = IXGBE_82598_MAX_TX_QUEUES;
	hw->mac.num_tx_queues = IXGBE_82598_MAX_RX_QUEUES;
	hw->mac.num_rx_queues = IXGBE_82598_MAX_RX_QUEUES;
	hw->mac.num_tx_queues = IXGBE_82598_MAX_TX_QUEUES;
	hw->mac.num_rx_addrs = IXGBE_82598_RAR_ENTRIES;

	/* PHY ops are filled in by default properly for Fiber only */
Loading