static int pf_sriov_init(struct nitrox_device *ndev) { int err; /* allocate resources for PF */ err = nitrox_common_sw_init(ndev); if (err) return err; err = nitrox_register_interrupts(ndev); if (err) { nitrox_common_sw_cleanup(ndev); return err; } /* configure the packet queues */ nitrox_config_pkt_input_rings(ndev); nitrox_config_pkt_solicit_ports(ndev); /* set device to ready state */ atomic_set(&ndev->state, __NDEV_READY); /* register crypto algorithms */ return nitrox_crypto_register(); }
void nitrox_config_nps_unit(struct nitrox_device *ndev) { union nps_core_gbl_vfcfg core_gbl_vfcfg; /* endian control information */ nitrox_write_csr(ndev, NPS_CORE_CONTROL, 1ULL); /* disable ILK interface */ core_gbl_vfcfg.value = 0; core_gbl_vfcfg.s.ilk_disable = 1; core_gbl_vfcfg.s.cfg = PF_MODE; nitrox_write_csr(ndev, NPS_CORE_GBL_VFCFG, core_gbl_vfcfg.value); /* config input and solicit ports */ nitrox_config_pkt_input_rings(ndev); nitrox_config_pkt_solicit_ports(ndev); /* enable interrupts */ enable_nps_interrupts(ndev); }