Lines Matching defs:vpd
952 cfg->vpd.vpd_reg = ptr;
1027 WREG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, reg, 2);
1029 while ((REG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, 2) & 0x8000) != 0x8000) {
1034 *data = (REG(cfg->vpd.vpd_reg + PCIR_VPD_DATA, 4));
1047 WREG(cfg->vpd.vpd_reg + PCIR_VPD_DATA, data, 4);
1048 WREG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, reg | 0x8000, 2);
1049 while ((REG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, 2) & 0x8000) == 0x8000) {
1217 struct pcicfg_vpd *vpd;
1223 vpd = &cfg->vpd;
1227 vpd->vpd_ros = alloc_buffer(vpd->vpd_ros, sizeof(*vpd->vpd_ros), vpd->vpd_rocnt);
1228 vpd_ros = &vpd->vpd_ros[vpd->vpd_rocnt];
1242 vpd->vpd_rocnt++;
1251 struct pcicfg_vpd *vpd;
1257 vpd = &cfg->vpd;
1261 vpd->vpd_w = alloc_buffer(vpd->vpd_w, sizeof(*vpd->vpd_w), vpd->vpd_wcnt);
1262 if (vpd->vpd_w == NULL) {
1266 vpd_w = &vpd->vpd_w[vpd->vpd_wcnt];
1273 vpd->vpd_wcnt++;
1280 vpd_free(struct pcicfg_vpd *vpd)
1284 free(vpd->vpd_ident, M_DEVBUF);
1285 for (i = 0; i < vpd->vpd_rocnt; i++)
1286 free(vpd->vpd_ros[i].value, M_DEVBUF);
1287 free(vpd->vpd_ros, M_DEVBUF);
1288 vpd->vpd_rocnt = 0;
1289 for (i = 0; i < vpd->vpd_wcnt; i++)
1290 free(vpd->vpd_w[i].value, M_DEVBUF);
1291 free(vpd->vpd_w, M_DEVBUF);
1292 vpd->vpd_wcnt = 0;
1307 /* init vpd reader */
1320 cfg->vpd.vpd_ident = vpd_read_value(&vrs, size);
1321 if (cfg->vpd.vpd_ident == NULL) {
1372 vpd_free(&cfg->vpd);
1373 cfg->vpd.vpd_cached = 1;
1384 if (!cfg->vpd.vpd_cached && cfg->vpd.vpd_reg != 0)
1387 *identptr = cfg->vpd.vpd_ident;
1403 if (!cfg->vpd.vpd_cached && cfg->vpd.vpd_reg != 0)
1406 for (i = 0; i < cfg->vpd.vpd_rocnt; i++)
1407 if (memcmp(kw, cfg->vpd.vpd_ros[i].keyword,
1408 sizeof(cfg->vpd.vpd_ros[i].keyword)) == 0) {
1409 *vptr = cfg->vpd.vpd_ros[i].value;
1423 if (!cfg->vpd.vpd_cached && cfg->vpd.vpd_reg != 0)
1425 return (&cfg->vpd);
2775 if (dinfo->cfg.vpd.vpd_reg)
2776 vpd_free(&dinfo->cfg.vpd);