if (tinfo->curr.period == targ->last_tinfo.period && tinfo->curr.width == targ->last_tinfo.width && tinfo->curr.offset == targ->last_tinfo.offset && tinfo->curr.ppr_options == targ->last_tinfo.ppr_options) 
 target_ppr_options = (spi_dt(starget) ? MSG_EXT_PPR_DT_REQ : 0) + (spi_qas(starget) ? MSG_EXT_PPR_QAS_REQ : 0) + (spi_iu(starget) ?  MSG_EXT_PPR_IU_REQ : 0);  if (tinfo->curr.period == spi_period(starget) && tinfo->curr.width == spi_width(starget) && tinfo->curr.offset == spi_offset(starget) && tinfo->curr.ppr_options == target_ppr_options) 
ahd_send_async(struct ahd_softc *ahd, char channel,	       u_int target, u_int lun, ac_code code, void *arg){	switch (code) {	case AC_TRANSFER_NEG:	{		char	buf[80];		struct	ahd_linux_target *targ;		struct	info_str info;		struct	ahd_initiator_tinfo *tinfo;		struct	ahd_tmode_tstate *tstate;		info.buffer = buf;		info.length = sizeof(buf);		info.offset = 0;		info.pos = 0;		tinfo = ahd_fetch_transinfo(ahd, channel, ahd->our_id,					    target, &tstate);		/*		 * Don't bother reporting results while		 * negotiations are still pending.		 */		if (tinfo->curr.period != tinfo->goal.period		 || tinfo->curr.width != tinfo->goal.width		 || tinfo->curr.offset != tinfo->goal.offset		 || tinfo->curr.ppr_options != tinfo->goal.ppr_options)			if (bootverbose == 0)				break;		/*		 * Don't bother reporting results that		 * are identical to those last reported.		 */		targ = ahd->platform_data->targets[target];		if (targ == NULL)			break;		if (tinfo->curr.period == targ->last_tinfo.period		 && tinfo->curr.width == targ->last_tinfo.width		 && tinfo->curr.offset == targ->last_tinfo.offset		 && tinfo->curr.ppr_options == targ->last_tinfo.ppr_options)			if (bootverbose == 0)				break;		targ->last_tinfo.period = tinfo->curr.period;		targ->last_tinfo.width = tinfo->curr.width;		targ->last_tinfo.offset = tinfo->curr.offset;		targ->last_tinfo.ppr_options = tinfo->curr.ppr_options;		printf("(%s:%c:", ahd_name(ahd), channel);		if (target == CAM_TARGET_WILDCARD)			printf("*): ");		else			printf("%d): ", target);		ahd_format_transinfo(&info, &tinfo->curr);		if (info.pos < info.length)			*info.buffer = '\0';		else			buf[info.length - 1] = '\0';		printf("%s", buf);		break;	}        case AC_SENT_BDR:	{		WARN_ON(lun != CAM_LUN_WILDCARD);		scsi_report_device_reset(ahd->platform_data->host,					 channel - 'A', target);		break;	}        case AC_BUS_RESET:		if (ahd->platform_data->host != NULL) {			scsi_report_bus_reset(ahd->platform_data->host,					      channel - 'A');		}                break;        default:                panic("ahd_send_async: Unexpected async event");        }}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/73a25462100772b72a5d62fd66dff01b53018618/aic79xx_osm.c/buggy/drivers/scsi/aic7xxx/aic79xx_osm.c