udelay(400);
mdelay(1);
void __sata_phy_reset(struct ata_port *ap){	u32 sstatus;	unsigned long timeout = jiffies + (HZ * 5);	if (ap->flags & ATA_FLAG_SATA_RESET) {		/* issue phy wake/reset */		scr_write_flush(ap, SCR_CONTROL, 0x301);		udelay(400);			/* FIXME: a guess */	}	scr_write_flush(ap, SCR_CONTROL, 0x300); /* phy wake/clear reset */	/* wait for phy to become ready, if necessary */	do {		msleep(200);		sstatus = scr_read(ap, SCR_STATUS);		if ((sstatus & 0xf) != 1)			break;	} while (time_before(jiffies, timeout));	/* TODO: phy layer with polling, timeouts, etc. */	if (sata_dev_present(ap))		ata_port_probe(ap);	else {		sstatus = scr_read(ap, SCR_STATUS);		printk(KERN_INFO "ata%u: no device found (phy stat %08x)\n",		       ap->id, sstatus);		ata_port_disable(ap);	}	if (ap->flags & ATA_FLAG_PORT_DISABLED)		return;	if (ata_busy_sleep(ap, ATA_TMOUT_BOOT_QUICK, ATA_TMOUT_BOOT)) {		ata_port_disable(ap);		return;	}	ap->cbl = ATA_CBL_SATA;}