rem: uint16 sr = ich_reg_read_16(chan_po->regbase + (config->swap_reg ? ICH_REG_X_PICB : ICH_REG_X_SR));
add: uint16 sr = ich_reg_read_16(chan_po->regbase + GET_REG_X_SR(config));
context: int32 ich_test_int(void *check){	/*	 * This interrupt handler is used once to test if interrupt handling is working.	 * If it gets executed and the interrupt is from pcm-out, it will set the bool	 * pointed to by check to true.	 */	uint32 sta = ich_reg_read_32(ICH_REG_GLOB_STA);	uint16 sr = ich_reg_read_16(chan_po->regbase + (config->swap_reg ? ICH_REG_X_PICB : ICH_REG_X_SR));	if ((sta & STA_INTMASK) == 0)		return B_UNHANDLED_INTERRUPT;	if ((sta & STA_POINT) && (sr & SR_BCIS)) // pcm-out buffer completed		*(bool *)check = true; // notify	sr &= SR_FIFOE | SR_BCIS | SR_LVBCI;	ich_reg_write_16(chan_po->regbase + (config->swap_reg ? ICH_REG_X_PICB : ICH_REG_X_SR),sr);	return B_HANDLED_INTERRUPT;}