175a6faf6SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 2*ab3518acSMark Starovoytov /* Atlantic Network Driver 3*ab3518acSMark Starovoytov * 4*ab3518acSMark Starovoytov * Copyright (C) 2014-2019 aQuantia Corporation 5*ab3518acSMark Starovoytov * Copyright (C) 2019-2020 Marvell International Ltd. 6a4d36e20SDavid VomLehn */ 7a4d36e20SDavid VomLehn 8a4d36e20SDavid VomLehn /* File aq_pci_func.h: Declaration of PCI functions. */ 9a4d36e20SDavid VomLehn 10a4d36e20SDavid VomLehn #ifndef AQ_PCI_FUNC_H 11a4d36e20SDavid VomLehn #define AQ_PCI_FUNC_H 12a4d36e20SDavid VomLehn 13a4d36e20SDavid VomLehn #include "aq_common.h" 141a713f87SIgor Russkikh #include "aq_nic.h" 15a4d36e20SDavid VomLehn 164948293fSIgor Russkikh struct aq_board_revision_s { 174948293fSIgor Russkikh unsigned short devid; 184948293fSIgor Russkikh unsigned short revision; 194948293fSIgor Russkikh const struct aq_hw_ops *ops; 204948293fSIgor Russkikh const struct aq_hw_caps_s *caps; 214948293fSIgor Russkikh }; 224948293fSIgor Russkikh 2323ee07adSIgor Russkikh int aq_pci_func_alloc_irq(struct aq_nic_s *self, unsigned int i, 244c83f170SIgor Russkikh char *name, irq_handler_t irq_handler, 254c83f170SIgor Russkikh void *irq_arg, cpumask_t *affinity_mask); 2623ee07adSIgor Russkikh void aq_pci_func_free_irqs(struct aq_nic_s *self); 2723ee07adSIgor Russkikh unsigned int aq_pci_func_get_irq_type(struct aq_nic_s *self); 28a4d36e20SDavid VomLehn 2958608082SNikita Danilov int aq_pci_func_register_driver(void); 3058608082SNikita Danilov void aq_pci_func_unregister_driver(void); 3158608082SNikita Danilov 32a4d36e20SDavid VomLehn #endif /* AQ_PCI_FUNC_H */ 33