bool MACbPSWakeup(struct vnt_private *priv) { void __iomem *io_base = priv->PortOffset; unsigned int ww; /* Read PSCTL */ if (MACbIsRegBitsOff(priv, MAC_REG_PSCTL, PSCTL_PS)) return true; /* Disable PS */ MACvRegBitsOff(io_base, MAC_REG_PSCTL, PSCTL_PSEN); /* Check if SyncFlushOK */ for (ww = 0; ww < W_MAX_TIMEOUT; ww++) { if (ioread8(io_base + MAC_REG_PSCTL) & PSCTL_WAKEDONE) break; } if (ww == W_MAX_TIMEOUT) { pr_debug(" DBG_PORT80(0x33)\n"); return false; } return true; }
bool MACbPSWakeup(void __iomem *dwIoBase) { unsigned char byOrgValue; unsigned int ww; /* Read PSCTL */ if (MACbIsRegBitsOff(dwIoBase, MAC_REG_PSCTL, PSCTL_PS)) return true; /* Disable PS */ MACvRegBitsOff(dwIoBase, MAC_REG_PSCTL, PSCTL_PSEN); /* Check if SyncFlushOK */ for (ww = 0; ww < W_MAX_TIMEOUT; ww++) { VNSvInPortB(dwIoBase + MAC_REG_PSCTL, &byOrgValue); if (byOrgValue & PSCTL_WAKEDONE) break; } if (ww == W_MAX_TIMEOUT) { pr_debug(" DBG_PORT80(0x33)\n"); return false; } return true; }