FreeBSD/sys/dev/cxgb/common/cxgb_t3_hw.c
/**
 *	tp_wr_bits_indirect - set/clear bits in an indirect TP register
 *	@adap: the adapter
 *	@addr: the indirect TP register address
 *	@mask: specifies the field within the register to modify
 *	@val: new value for the field
 *
 *	Sets a field of an indirect TP register to the given value.
 */
set/clear bits in an indirect TP register
@adap: the adapter
@addr: the indirect TP register address
@mask: specifies the field within the register to modify
@val: new value for the field

Sets a field of an indirect TP register to the given value.
set / clear bits in an indirect TP register @adap : the adapter @addr : the indirect TP register address @mask : specifies the field within the register to modify @val : new value for the field Sets a field of an indirect TP register to the given value .
static void tp_wr_bits_indirect(adapter_t *adap, unsigned int addr,
				unsigned int mask, unsigned int val)
{
	t3_write_reg(adap, A_TP_PIO_ADDR, addr);
	val |= t3_read_reg(adap, A_TP_PIO_DATA) & ~mask;
	t3_write_reg(adap, A_TP_PIO_DATA, val);
}
static void tp_wr_bits_indirect ( adapter_t * adap , unsigned int addr , unsigned int mask , unsigned int val ) { t3_write_reg ( adap , A_TP_PIO_ADDR , addr ) ; val |= t3_read_reg ( adap , A_TP_PIO_DATA ) & ~ mask ; t3_write_reg ( adap , A_TP_PIO_DATA , val ) ; }
tp_wr_bits_indirect - set/clear bits in an indirect TP register
      @adap: the adapter
      @addr: the indirect TP register address
      @mask: specifies the field within the register to modify
      @val: new value for the field
tp_wr_bits_indirect - set / clear bits in an indirect TP register @adap : the adapter @addr : the indirect TP register address @mask : specifies the field within the register to modify @val : new value for the field