 if (cp->view.dev) raw3270_activate_view(&cp->view); 
con3270_update(struct con3270 *cp){	struct raw3270_request *wrq;	char wcc, prolog[6];	unsigned long flags;	unsigned long updated;	struct string *s, *n;	int rc;	wrq = xchg(&cp->write, 0);	if (!wrq) {		con3270_set_timer(cp, 1);		return;	}	spin_lock_irqsave(&cp->view.lock, flags);	updated = 0;	if (cp->update_flags & CON_UPDATE_ERASE) {		/* Use erase write alternate to initialize display. */		raw3270_request_set_cmd(wrq, TC_EWRITEA);		updated |= CON_UPDATE_ERASE;	} else		raw3270_request_set_cmd(wrq, TC_WRITE);	wcc = TW_NONE;	raw3270_request_add_data(wrq, &wcc, 1);	/*	 * Update status line.	 */	if (cp->update_flags & CON_UPDATE_STATUS)		if (raw3270_request_add_data(wrq, cp->status->string,					     cp->status->len) == 0)			updated |= CON_UPDATE_STATUS;	if (cp->update_flags & CON_UPDATE_LIST) {		prolog[0] = TO_SBA;		prolog[3] = TO_SA;		prolog[4] = TAT_COLOR;		prolog[5] = TAC_TURQ;		raw3270_buffer_address(cp->view.dev, prolog + 1,				       cp->view.cols * cp->line_nr);		raw3270_request_add_data(wrq, prolog, 6);		/* Write strings in the update list to the screen. */		list_for_each_entry_safe(s, n, &cp->update, update) {			if (s != cp->cline)				con3270_update_string(cp, s, cp->line_nr);			if (raw3270_request_add_data(wrq, s->string,						     s->len) != 0)				break;			list_del_init(&s->update);			if (s != cp->cline)				cp->line_nr++;		}		if (list_empty(&cp->update))			updated |= CON_UPDATE_LIST;	}	wrq->callback = con3270_write_callback;	rc = raw3270_start(&cp->view, wrq);	if (rc == 0) {		cp->update_flags &= ~updated;		if (cp->update_flags)			con3270_set_timer(cp, 1);	} else {		raw3270_request_reset(wrq);		xchg(&cp->write, wrq);	}	spin_unlock_irqrestore(&cp->view.lock, flags);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/ed3cb6f039bb296457bfd2877cba6ad0287d8d54/con3270.c/clean/drivers/s390/char/con3270.c