mv_phy_reset(ap); 
mv_stop_and_reset(ap); 
static void mv_err_intr(struct ata_port *ap){	void __iomem *port_mmio = mv_ap_base(ap);	u32 edma_err_cause, serr = 0;	edma_err_cause = readl(port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);	if (EDMA_ERR_SERR & edma_err_cause) {		serr = scr_read(ap, SCR_ERROR);		scr_write_flush(ap, SCR_ERROR, serr);	}	if (EDMA_ERR_SELF_DIS & edma_err_cause) {		struct mv_port_priv *pp	= ap->private_data;		pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;	}	DPRINTK(KERN_ERR "ata%u: port error; EDMA err cause: 0x%08x "		"SERR: 0x%08x\n", ap->id, edma_err_cause, serr);	/* Clear EDMA now that SERR cleanup done */	writelfl(0, port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);	/* check for fatal here and recover if needed */	if (EDMA_ERR_FATAL & edma_err_cause) {		mv_phy_reset(ap);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/c9d39130123238ac18478a42e25cb7996eacfcc0/sata_mv.c/buggy/drivers/scsi/sata_mv.c