net/bnxt: refactor to properly allocate resources for PF/VF
1) Move the function reset to bnxt_dev_init.
On the same lines, setup, enable and request interrupt to init path.
Memory allocation is also being done in the init path.
2) After a function reset, configure the VFs. Distribute resources
evenly between all functions (PF and VF) for now. In the future, this
should be controllable.
3) The bnxt_vf_info and bnxt_pf_info had lot of duplication. Move the
common items to struct bnxt. And only unique items specific to PF
remain in the struct bnxt_pf_info.
4) Program the firmware to allow certain commands sent by a VF.
Disallowing these will prevent clean VF driver cleanup.
5) Since PF/VF need to allocate resources from a pool in the hardware,
use func_qcaps and func_qcfg to appropriately query the capabilities
and available resources.
6) If a PF is being initialized and no VFs are allocated, explicitly
call func_cfg to allocate the resources.
7) Once resources are requested from the firmware, update local copy
of resource count in struct bnxt only after sending the func_qcfg to
make sure the allocation request in the firmware went through.
The changes in this patch will be used by the subsequent patches
to allow proper initialization of PF/VF instance.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>