int vnic_dev_cmd_init(struct vnic_dev *vdev) { int err; void *p; p = vnic_dev_get_res(vdev, RES_TYPE_DEVCMD2, 0); if (p) { pr_err("fnic: DEVCMD2 resource found!\n"); err = vnic_dev_init_devcmd2(vdev); } else { pr_err("fnic: DEVCMD2 not found, fall back to Devcmd\n"); err = vnic_dev_init_devcmd1(vdev); } return err; }
struct vnic_dev *vnic_dev_register(struct vnic_dev *vdev, void *priv, struct pci_dev *pdev, struct vnic_dev_bar *bar, unsigned int num_bars) { vdev = vnic_dev_alloc_discover(vdev, priv, pdev, bar, num_bars); if (!vdev) goto err_out; if (vnic_dev_init_devcmd1(vdev)) goto err_free; return vdev; err_free: vnic_dev_unregister(vdev); err_out: return NULL; }
int vnic_devcmd_init(struct vnic_dev *vdev, int fallback) { #if !defined(CONFIG_MIPS) && !defined(MGMT_VNIC) int err; void *p; p = vnic_dev_get_res(vdev, RES_TYPE_DEVCMD2, 0); if (p) err = vnic_dev_init_devcmd2(vdev); else if (fallback) { pr_warning("DEVCMD2 resource not found, fall back to devcmd\n"); err = vnic_dev_init_devcmd1(vdev); } else { pr_err("DEVCMD2 resource not found, no fall back to devcmd allowed\n"); err = -ENODEV; } return err; #else return 0; #endif }
int vnic_devcmd_init(struct vnic_dev *vdev) { void __iomem *res; int err; res = vnic_dev_get_res(vdev, RES_TYPE_DEVCMD2, 0); if (res) { err = vnic_dev_init_devcmd2(vdev); if (err) vdev_warn(vdev, "DEVCMD2 init failed: %d, Using DEVCMD1\n", err); else return 0; } else { vdev_warn(vdev, "DEVCMD2 resource not found (old firmware?) Using DEVCMD1\n"); } err = vnic_dev_init_devcmd1(vdev); if (err) vdev_err(vdev, "DEVCMD1 initialization failed: %d\n", err); return err; }