Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/cxgbe/common/t4_hw.c
Show First 20 Lines • Show All 7,638 Lines • ▼ Show 20 Lines | |||||
* @adapter: the adapter | * @adapter: the adapter | ||||
* | * | ||||
* Initialize various fields of the adapter's SGE Parameters structure. | * Initialize various fields of the adapter's SGE Parameters structure. | ||||
*/ | */ | ||||
int t4_init_sge_params(struct adapter *adapter) | int t4_init_sge_params(struct adapter *adapter) | ||||
{ | { | ||||
u32 r; | u32 r; | ||||
struct sge_params *sp = &adapter->params.sge; | struct sge_params *sp = &adapter->params.sge; | ||||
unsigned i; | |||||
r = t4_read_reg(adapter, A_SGE_INGRESS_RX_THRESHOLD); | r = t4_read_reg(adapter, A_SGE_INGRESS_RX_THRESHOLD); | ||||
sp->counter_val[0] = G_THRESHOLD_0(r); | sp->counter_val[0] = G_THRESHOLD_0(r); | ||||
sp->counter_val[1] = G_THRESHOLD_1(r); | sp->counter_val[1] = G_THRESHOLD_1(r); | ||||
sp->counter_val[2] = G_THRESHOLD_2(r); | sp->counter_val[2] = G_THRESHOLD_2(r); | ||||
sp->counter_val[3] = G_THRESHOLD_3(r); | sp->counter_val[3] = G_THRESHOLD_3(r); | ||||
r = t4_read_reg(adapter, A_SGE_TIMER_VALUE_0_AND_1); | r = t4_read_reg(adapter, A_SGE_TIMER_VALUE_0_AND_1); | ||||
Show All 26 Lines | int t4_init_sge_params(struct adapter *adapter) | ||||
sp->iq_s_qpp = r & M_QUEUESPERPAGEPF0; | sp->iq_s_qpp = r & M_QUEUESPERPAGEPF0; | ||||
r = t4_read_reg(adapter, A_SGE_HOST_PAGE_SIZE); | r = t4_read_reg(adapter, A_SGE_HOST_PAGE_SIZE); | ||||
r >>= S_HOSTPAGESIZEPF0 + | r >>= S_HOSTPAGESIZEPF0 + | ||||
(S_HOSTPAGESIZEPF1 - S_HOSTPAGESIZEPF0) * adapter->pf; | (S_HOSTPAGESIZEPF1 - S_HOSTPAGESIZEPF0) * adapter->pf; | ||||
sp->page_shift = (r & M_HOSTPAGESIZEPF0) + 10; | sp->page_shift = (r & M_HOSTPAGESIZEPF0) + 10; | ||||
r = t4_read_reg(adapter, A_SGE_CONTROL); | r = t4_read_reg(adapter, A_SGE_CONTROL); | ||||
sp->sge_control = r; | |||||
sp->spg_len = r & F_EGRSTATUSPAGESIZE ? 128 : 64; | sp->spg_len = r & F_EGRSTATUSPAGESIZE ? 128 : 64; | ||||
sp->fl_pktshift = G_PKTSHIFT(r); | sp->fl_pktshift = G_PKTSHIFT(r); | ||||
sp->pad_boundary = 1 << (G_INGPADBOUNDARY(r) + 5); | sp->pad_boundary = 1 << (G_INGPADBOUNDARY(r) + 5); | ||||
if (is_t4(adapter)) | if (is_t4(adapter)) | ||||
sp->pack_boundary = sp->pad_boundary; | sp->pack_boundary = sp->pad_boundary; | ||||
else { | else { | ||||
r = t4_read_reg(adapter, A_SGE_CONTROL2); | r = t4_read_reg(adapter, A_SGE_CONTROL2); | ||||
if (G_INGPACKBOUNDARY(r) == 0) | if (G_INGPACKBOUNDARY(r) == 0) | ||||
sp->pack_boundary = 16; | sp->pack_boundary = 16; | ||||
else | else | ||||
sp->pack_boundary = 1 << (G_INGPACKBOUNDARY(r) + 5); | sp->pack_boundary = 1 << (G_INGPACKBOUNDARY(r) + 5); | ||||
} | } | ||||
for (i = 0; i < SGE_FLBUF_SIZES; i++) | |||||
sp->sge_fl_buffer_size[i] = t4_read_reg(adapter, | |||||
A_SGE_FL_BUFFER_SIZE0 + (4 * i)); | |||||
return 0; | return 0; | ||||
} | } | ||||
/* | /* | ||||
* Read and cache the adapter's compressed filter mode and ingress config. | * Read and cache the adapter's compressed filter mode and ingress config. | ||||
*/ | */ | ||||
static void read_filter_mode_and_ingress_config(struct adapter *adap) | static void read_filter_mode_and_ingress_config(struct adapter *adap) | ||||
▲ Show 20 Lines • Show All 1,466 Lines • Show Last 20 Lines |