if (ep_stat & FIFO_UNWRITABLE) 
if (ep_stat & UDC_FIFO_UNWRITABLE) 
static int write_fifo(struct omap_ep *ep, struct omap_req *req){	u8		*buf;	unsigned	count;	int		is_last;	u16		ep_stat;	buf = req->req.buf + req->req.actual;	prefetch(buf);	/* PIO-IN isn't double buffered except for iso */	ep_stat = UDC_STAT_FLG_REG;	if (ep_stat & FIFO_UNWRITABLE)		return 0;	count = ep->ep.maxpacket;	count = write_packet(buf, req, count);	UDC_CTRL_REG = UDC_SET_FIFO_EN;	ep->ackwait = 1;	/* last packet is often short (sometimes a zlp) */	if (count != ep->ep.maxpacket)		is_last = 1;	else if (req->req.length == req->req.actual			&& !req->req.zero)		is_last = 1;	else		is_last = 0;	/* NOTE:  requests complete when all IN data is in a	 * FIFO (or sometimes later, if a zlp was needed).	 * Use usb_ep_fifo_status() where needed.	 */	if (is_last)		done(ep, req, 0);	return is_last;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/313980c92724cf42877a7bdafdef439ee9d68ccb/omap_udc.c/clean/drivers/usb/gadget/omap_udc.c