/* In: 'off' is offset from CRB space in 128M pci map Out: 'off' is 2M pci map addr side effect: lock crb window  */
static void netxen_nic_pci_set_crbwindow_2M(struct netxen_adapter *adapter, ulong off)
/* In: 'off' is offset from CRB space in 128M pci map Out: 'off' is 2M pci map addr side effect: lock crb window  */
static void netxen_nic_pci_set_crbwindow_2M(struct netxen_adapter *adapter, ulong off)
{
	u32 window;
	void __iomem *addr = adapter->ahw.pci_base0 + CRB_WINDOW_2M;
	off -= NETXEN_PCI_CRBSPACE;
	window = CRB_HI(off);
	if (adapter->ahw.crb_win == window)
		return;
	writel(window, addr);
	if (readl(addr) != window) {
		if (printk_ratelimit())
			dev_warn(&adapter->pdev->dev,
				"failed to set CRB window to %d off 0x%lx\n",
				window, off);
	}
	adapter->ahw.crb_win = window;
}