@@ -1246,7 +1246,11 @@ static int pci_enable_msix(FAR struct pci_device_s *dev, FAR int *irq,
1246
1246
/* Map MSI-X table */
1247
1247
1248
1248
tblend = tbladdr + tblsize * PCI_MSIX_ENTRY_SIZE ;
1249
- tbladdr = dev -> bus -> ctrl -> ops -> map (dev -> bus , tbladdr , tblend );
1249
+
1250
+ if (dev -> bus -> ctrl -> ops -> map )
1251
+ {
1252
+ tbladdr = dev -> bus -> ctrl -> ops -> map (dev -> bus , tbladdr , tblend );
1253
+ }
1250
1254
1251
1255
/* Limit tblsize */
1252
1256
@@ -1772,7 +1776,12 @@ int pci_get_irq(FAR struct pci_device_s *dev)
1772
1776
1773
1777
int pci_alloc_irq (FAR struct pci_device_s * dev , FAR int * irq , int num )
1774
1778
{
1775
- return dev -> bus -> ctrl -> ops -> alloc_irq (dev -> bus , irq , num );
1779
+ if (dev -> bus -> ctrl -> ops -> alloc_irq )
1780
+ {
1781
+ return dev -> bus -> ctrl -> ops -> alloc_irq (dev -> bus , irq , num );
1782
+ }
1783
+
1784
+ return - ENOTSUP ;
1776
1785
}
1777
1786
1778
1787
/****************************************************************************
@@ -1793,7 +1802,10 @@ int pci_alloc_irq(FAR struct pci_device_s *dev, FAR int *irq, int num)
1793
1802
1794
1803
void pci_release_irq (FAR struct pci_device_s * dev , FAR int * irq , int num )
1795
1804
{
1796
- dev -> bus -> ctrl -> ops -> release_irq (dev -> bus , irq , num );
1805
+ if (dev -> bus -> ctrl -> ops -> release_irq )
1806
+ {
1807
+ dev -> bus -> ctrl -> ops -> release_irq (dev -> bus , irq , num );
1808
+ }
1797
1809
}
1798
1810
1799
1811
/****************************************************************************
@@ -1817,6 +1829,11 @@ int pci_connect_irq(FAR struct pci_device_s *dev, FAR int *irq, int num)
1817
1829
uint8_t msi = 0 ;
1818
1830
uint8_t msix = 0 ;
1819
1831
1832
+ if (dev -> bus -> ctrl -> ops -> connect_irq )
1833
+ {
1834
+ return - ENOTSUP ;
1835
+ }
1836
+
1820
1837
/* Get MSI base */
1821
1838
1822
1839
pci_get_msi_base (dev , & msi , & msix );
0 commit comments