igb: Implement MSI-X single vector mode

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
Akihiko Odaki 2023-05-23 11:43:25 +09:00 committed by Jason Wang
parent c6e33a2c52
commit 191e8bde88

View file

@ -1873,7 +1873,7 @@ igb_update_interrupt_state(IGBCore *core)
icr = core->mac[ICR] & core->mac[IMS];
if (msix_enabled(core->owner)) {
if (core->mac[GPIE] & E1000_GPIE_MSIX_MODE) {
if (icr) {
causes = 0;
if (icr & E1000_ICR_DRSTA) {
@ -1908,7 +1908,12 @@ igb_update_interrupt_state(IGBCore *core)
trace_e1000e_irq_pending_interrupts(core->mac[ICR] & core->mac[IMS],
core->mac[ICR], core->mac[IMS]);
if (msi_enabled(core->owner)) {
if (msix_enabled(core->owner)) {
if (icr) {
trace_e1000e_irq_msix_notify_vec(0);
msix_notify(core->owner, 0);
}
} else if (msi_enabled(core->owner)) {
if (icr) {
msi_notify(core->owner, 0);
}