• Dan Williams's avatar
    ahci: per-port msix support · d684a90d
    Dan Williams authored
    Some AHCI controllers support per-port MSI-X vectors.  At the same time
    the Linux AHCI driver needs to support one-off architectures that
    implement a single MSI-X vector for all ports.  The heuristic for
    enabling AHCI ports becomes, in order of preference:
    
    1/ per-port multi-MSI-X
    
    2/ per-port multi-MSI
    
    3/ single MSI
    
    4/ single MSI-X
    
    5/ legacy INTX
    
    This all depends on AHCI implementations with potentially broken MSI-X
    requesting less vectors than the number of ports.  If this assumption is
    violated we will need to start explicitly white-listing AHCI-MSIX
    implementations.
    Reported-by: default avatarRicardo Neri <ricardo.neri@intel.com>
    [ricardo: fix struct msix_entry handling]
    Reported-by: default avatarkernel test robot <ying.huang@linux.intel.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    d684a90d
ahci.c 53.2 KB