Manfred Spraul wrote:
Ayaz Abdulla wrote:

+
+    NvRegPowerState2 = 0x600,
+#define NVREG_POWERSTATE2_POWERUP_MASK        0x0F11
+#define NVREG_POWERSTATE2_POWERUP_REV_A3    0x0001
};
If the nic has a register 0x600, then we should
- ioremap enough memory. Right now, the code only remaps 0x270
- report all registers for ethtool, right now only 0x400 bytes are dumped.


Sounds good.


+static void nv_mac_reset(struct net_device *dev)
+{
+    struct fe_priv *np = netdev_priv(dev);
+    u8 __iomem *base = get_hwbase(dev);
+
+    dprintk(KERN_DEBUG "%s: nv_mac_reset\n", dev->name);
+ writel(NVREG_TXRXCTL_BIT2 | NVREG_TXRXCTL_RESET | np->txrxctl_bits, base + NvRegTxRxControl);
+    pci_push(base);
+    writel(NVREG_MAC_RESET_ASSERT, base + NvRegMacReset);
+    udelay(NV_MAC_RESET_DELAY);
Do not add udelay's after writel without a pci_push:
Nothing guarantees that the writel won't wait in the pci bridge - writes can be posted. And that would break the timing. Just add a pci_push() before the udelay. It reads from the nic, that forces the pci bridge to send the write command to the device.


Thanks.

--
   Manfred

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may 
contain
confidential information.  Any unauthorized review, use, disclosure or 
distribution
is prohibited.  If you are not the intended recipient, please contact the 
sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to