Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/cxgbe/t4_sge.c
Show First 20 Lines • Show All 619 Lines • ▼ Show 20 Lines | #if MJUMPAGESIZE != MCLBYTES | ||||
MJUMPAGESIZE, | MJUMPAGESIZE, | ||||
#endif | #endif | ||||
MJUM9BYTES, | MJUM9BYTES, | ||||
MJUM16BYTES | MJUM16BYTES | ||||
}; | }; | ||||
struct sw_zone_info *swz, *safe_swz; | struct sw_zone_info *swz, *safe_swz; | ||||
struct hw_buf_info *hwb; | struct hw_buf_info *hwb; | ||||
t4_init_sge_params(sc); | |||||
m = F_RXPKTCPLMODE; | m = F_RXPKTCPLMODE; | ||||
v = F_RXPKTCPLMODE; | v = F_RXPKTCPLMODE; | ||||
r = t4_read_reg(sc, A_SGE_CONTROL); | r = sc->params.sge.sge_control; | ||||
if ((r & m) != v) { | if ((r & m) != v) { | ||||
device_printf(sc->dev, "invalid SGE_CONTROL(0x%x)\n", r); | device_printf(sc->dev, "invalid SGE_CONTROL(0x%x)\n", r); | ||||
rc = EINVAL; | rc = EINVAL; | ||||
} | } | ||||
/* | /* | ||||
* If this changes then every single use of PAGE_SHIFT in the driver | * If this changes then every single use of PAGE_SHIFT in the driver | ||||
* needs to be carefully reviewed for PAGE_SHIFT vs sp->page_shift. | * needs to be carefully reviewed for PAGE_SHIFT vs sp->page_shift. | ||||
*/ | */ | ||||
if (sp->page_shift != PAGE_SHIFT) { | if (sp->page_shift != PAGE_SHIFT) { | ||||
device_printf(sc->dev, "invalid SGE_HOST_PAGE_SIZE(0x%x)\n", r); | device_printf(sc->dev, "invalid SGE_HOST_PAGE_SIZE(0x%x)\n", r); | ||||
rc = EINVAL; | rc = EINVAL; | ||||
} | } | ||||
/* Filter out unusable hw buffer sizes entirely (mark with -2). */ | /* Filter out unusable hw buffer sizes entirely (mark with -2). */ | ||||
hwb = &s->hw_buf_info[0]; | hwb = &s->hw_buf_info[0]; | ||||
for (i = 0; i < nitems(s->hw_buf_info); i++, hwb++) { | for (i = 0; i < nitems(s->hw_buf_info); i++, hwb++) { | ||||
r = t4_read_reg(sc, A_SGE_FL_BUFFER_SIZE0 + (4 * i)); | r = sc->params.sge.sge_fl_buffer_size[i]; | ||||
hwb->size = r; | hwb->size = r; | ||||
hwb->zidx = hwsz_ok(sc, r) ? -1 : -2; | hwb->zidx = hwsz_ok(sc, r) ? -1 : -2; | ||||
hwb->next = -1; | hwb->next = -1; | ||||
} | } | ||||
/* | /* | ||||
* Create a sorted list in decreasing order of hw buffer sizes (and so | * Create a sorted list in decreasing order of hw buffer sizes (and so | ||||
* increasing order of spare area) for each software zone. | * increasing order of spare area) for each software zone. | ||||
▲ Show 20 Lines • Show All 4,323 Lines • Show Last 20 Lines |