*last = sky2_read16(hw, Y2_QADDR(q, PREF_UNIT_PUT_IDX));
*last = idx;
static inline void sky2_put_idx(struct sky2_hw *hw, unsigned q,				u16 idx, u16 *last, u16 size){	if (is_ec_a1(hw) && idx < *last) {		u16 hwget = sky2_read16(hw, Y2_QADDR(q, PREF_UNIT_GET_IDX));		if (hwget == 0) {			/* Start prefetching again */			sky2_write8(hw, Y2_QADDR(q, PREF_UNIT_FIFO_WM), 0xe0);			goto setnew;		}		if (hwget == size - 1) {			/* set watermark to one list element */			sky2_write8(hw, Y2_QADDR(q, PREF_UNIT_FIFO_WM), 8);			/* set put index to first list element */			sky2_write16(hw, Y2_QADDR(q, PREF_UNIT_PUT_IDX), 0);		} else		/* have hardware go to end of list */			sky2_write16(hw, Y2_QADDR(q, PREF_UNIT_PUT_IDX),				     size - 1);	} else {setnew:		sky2_write16(hw, Y2_QADDR(q, PREF_UNIT_PUT_IDX), idx);	}	*last = sky2_read16(hw, Y2_QADDR(q, PREF_UNIT_PUT_IDX));}