• Piotr Raczynski's avatar
    ice: add dynamic interrupt allocation · 011670cc
    Piotr Raczynski authored
    Currently driver can only allocate interrupt vectors during init phase by
    calling pci_alloc_irq_vectors. Change that and make use of new
    pci_msix_alloc_irq_at/pci_msix_free_irq API and enable to allocate and free
    more interrupts after MSIX has been enabled. Since not all platforms
    supports dynamic allocation, check it with pci_msix_can_alloc_dyn.
    
    Extend the tracker to keep track how many interrupts are allocated
    initially so when all such vectors are already used, additional interrupts
    are automatically allocated dynamically. Remember each interrupt allocation
    method to then free appropriately. Since some features may require
    interrupts allocated dynamically add appropriate VSI flag and take it into
    account when allocating new interrupt.
    Reviewed-by: default avatarMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
    Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
    Signed-off-by: default avatarPiotr Raczynski <piotr.raczynski@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    011670cc
ice_base.c 28.8 KB