/* Return Value: ADV_TRUE(1) - All requests are purged and SCSI Bus is reset. ADV_FALSE(0) - Microcode command failed. ADV_ERROR(-1) - Microcode command timed-out. Microcode or IC may be hung which requires driver recovery.  */
static int AdvResetSB(ADV_DVC_VAR *asc_dvc)
/* Return Value: ADV_TRUE(1) - All requests are purged and SCSI Bus is reset. ADV_FALSE(0) - Microcode command failed. ADV_ERROR(-1) - Microcode command timed-out. Microcode or IC may be hung which requires driver recovery.  */
static int AdvResetSB(ADV_DVC_VAR *asc_dvc)
{
	int status;
	status = AdvSendIdleCmd(asc_dvc, (ushort)IDLE_CMD_SCSI_RESET_START, 0L);
	if (status != ADV_TRUE) {
		return status;
	}
	udelay(ASC_SCSI_RESET_HOLD_TIME_US);
	status = AdvSendIdleCmd(asc_dvc, (ushort)IDLE_CMD_SCSI_RESET_END, 0L);
	if (status != ADV_TRUE) {
		return status;
	}
	mdelay(asc_dvc->scsi_reset_wait * 1000);
	return status;
}