[PATCH] e1000: MSI support for PCI-e adapters
MSI support for PCI-e adapters Signed-off-by: Mallikarjuna R Chilakala <mallikarjuna.chilakala@intel.com> Signed-off-by: Ganesh Venkatesan <ganesh.venkatesan@intel.com> Signed-off-by: John Ronciak <john.ronciak@intel.com> diff -up net-drivers-2.6/drivers/net/e1000/e1000.h net-drivers-2.6/drivers/net/e1000.new/e1000.h
This commit is contained in:
Родитель
df25e16487
Коммит
fa4f7ef3aa
|
@ -257,5 +257,8 @@ struct e1000_adapter {
|
|||
|
||||
|
||||
int msg_enable;
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
boolean_t have_msi;
|
||||
#endif
|
||||
};
|
||||
#endif /* _E1000_H_ */
|
||||
|
|
|
@ -312,6 +312,16 @@ e1000_up(struct e1000_adapter *adapter)
|
|||
e1000_configure_rx(adapter);
|
||||
e1000_alloc_rx_buffers(adapter);
|
||||
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
if(adapter->hw.mac_type > e1000_82547_rev_2) {
|
||||
adapter->have_msi = TRUE;
|
||||
if((err = pci_enable_msi(adapter->pdev))) {
|
||||
DPRINTK(PROBE, ERR,
|
||||
"Unable to allocate MSI interrupt Error: %d\n", err);
|
||||
adapter->have_msi = FALSE;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if((err = request_irq(adapter->pdev->irq, &e1000_intr,
|
||||
SA_SHIRQ | SA_SAMPLE_RANDOM,
|
||||
netdev->name, netdev)))
|
||||
|
@ -333,6 +343,11 @@ e1000_down(struct e1000_adapter *adapter)
|
|||
|
||||
e1000_irq_disable(adapter);
|
||||
free_irq(adapter->pdev->irq, netdev);
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
if(adapter->hw.mac_type > e1000_82547_rev_2 &&
|
||||
adapter->have_msi == TRUE)
|
||||
pci_disable_msi(adapter->pdev);
|
||||
#endif
|
||||
del_timer_sync(&adapter->tx_fifo_stall_timer);
|
||||
del_timer_sync(&adapter->watchdog_timer);
|
||||
del_timer_sync(&adapter->phy_info_timer);
|
||||
|
|
Загрузка…
Ссылка в новой задаче