Lines Matching refs:cfg

76 	for (i = 0; i < snet->cfg->vq_num; i++) {
220 for (i = 0; i < snet->cfg->vq_num; i++) {
259 return (size_t)snet->cfg->cfg_size;
266 return snet->cfg->features;
273 snet->negotiated_features = snet->cfg->features & features;
288 return (u16)snet->cfg->vq_size;
303 return snet->cfg->virtio_id;
345 off = snet->psnet->cfg.host_cfg_off;
353 snet_write32(snet, off, snet->cfg->vq_num);
362 for (i = 0 ; i < snet->cfg->vq_num ; i++) {
384 snet_write32(snet, snet->psnet->cfg.host_cfg_off, SNET_SIGNATURE);
387 ret = readx_poll_timeout(ioread32, snet->bar + snet->psnet->cfg.host_cfg_off,
415 for (i = 0; i < snet->cfg->vq_num; i++) {
468 void __iomem *cfg_ptr = snet->cfg->virtio_cfg + offset;
473 if (offset + len > snet->cfg->cfg_size)
485 void __iomem *cfg_ptr = snet->cfg->virtio_cfg + offset;
490 if (offset + len > snet->cfg->cfg_size)
598 ret = pcim_iomap_regions(pdev, BIT(snet->psnet->cfg.vf_bar), name);
604 snet->bar = pcim_iomap_table(pdev)[snet->psnet->cfg.vf_bar];
609 static void snet_free_cfg(struct snet_cfg *cfg)
613 if (!cfg->devs)
617 for (i = 0; i < cfg->devices_num; i++) {
618 if (!cfg->devs[i])
621 kfree(cfg->devs[i]);
624 kfree(cfg->devs);
667 struct snet_cfg *cfg = &psnet->cfg;
688 cfg->key = psnet_read32(psnet, off);
690 cfg->cfg_size = psnet_read32(psnet, off);
692 cfg->cfg_ver = psnet_read32(psnet, off);
697 psnet->negotiated_cfg_ver = min_t(u32, cfg->cfg_ver, SNET_CFG_VERSION);
700 cfg->vf_num = psnet_read32(psnet, off);
702 cfg->vf_bar = psnet_read32(psnet, off);
704 cfg->host_cfg_off = psnet_read32(psnet, off);
706 cfg->max_size_host_cfg = psnet_read32(psnet, off);
708 cfg->virtio_cfg_off = psnet_read32(psnet, off);
710 cfg->kick_off = psnet_read32(psnet, off);
712 cfg->hwmon_off = psnet_read32(psnet, off);
714 cfg->ctrl_off = psnet_read32(psnet, off);
716 cfg->flags = psnet_read32(psnet, off);
719 off += sizeof(cfg->rsvd);
721 cfg->devices_num = psnet_read32(psnet, off);
724 cfg->devs = kcalloc(cfg->devices_num, sizeof(void *), GFP_KERNEL);
725 if (!cfg->devs)
729 for (i = 0; i < cfg->devices_num; i++) {
730 cfg->devs[i] = kzalloc(sizeof(*cfg->devs[i]), GFP_KERNEL);
731 if (!cfg->devs[i]) {
732 snet_free_cfg(cfg);
736 cfg->devs[i]->virtio_id = psnet_read32(psnet, off);
738 cfg->devs[i]->vq_num = psnet_read32(psnet, off);
740 cfg->devs[i]->vq_size = psnet_read32(psnet, off);
742 cfg->devs[i]->vfid = psnet_read32(psnet, off);
744 cfg->devs[i]->features = psnet_read64(psnet, off);
747 off += sizeof(cfg->devs[i]->rsvd);
749 cfg->devs[i]->cfg_size = psnet_read32(psnet, off);
753 if (SNET_GENERAL_CFG_LEN + SNET_GENERAL_CFG_VQ_LEN * cfg->devs[i]->vq_num >
754 cfg->max_size_host_cfg) {
756 snet_free_cfg(cfg);
769 for (i = 0; i < psnet->cfg.devices_num; i++)
770 irq_num += psnet->cfg.devs[i]->vq_num + 1;
806 for (i = 0 ; i < snet->cfg->vq_num ; i++) {
819 snet->vqs = kcalloc(snet->cfg->vq_num, sizeof(void *), GFP_KERNEL);
824 for (i = 0; i < snet->cfg->vq_num; i++) {
835 snet->vqs[i]->kick_ptr = snet->bar + snet->psnet->cfg.kick_off +
861 snprintf(snet->cfg_irq_name, SNET_NAME_SIZE, "snet[%s]-cfg[%d]",
864 for (i = 0; i < snet->cfg->vq_num; i++) {
874 static struct snet_dev_cfg *snet_find_dev_cfg(struct snet_cfg *cfg, u32 vfid)
878 for (i = 0; i < cfg->devices_num; i++) {
879 if (cfg->devs[i]->vfid == vfid)
880 return cfg->devs[i];
931 SNET_DBG(pdev, "Enable %u virtual functions\n", psnet->cfg.vf_num);
932 ret = pci_enable_sriov(pdev, psnet->cfg.vf_num);
953 snet_free_cfg(&psnet->cfg);
981 dev_cfg = snet_find_dev_cfg(&psnet->cfg, vfid);
1021 snet->cfg = dev_cfg;
1032 snet->cfg->virtio_cfg = snet->bar + snet->psnet->cfg.virtio_cfg_off;
1054 ret = vdpa_register_device(&snet->vdpa, snet->cfg->vq_num);
1089 snet_free_cfg(&psnet->cfg);