Lines Matching refs:bar
81 int bar; member
87 res->bar = -1; in pcim_addr_devres_clear()
111 static int __pcim_request_region_range(struct pci_dev *pdev, int bar, in __pcim_request_region_range() argument
116 resource_size_t start = pci_resource_start(pdev, bar); in __pcim_request_region_range()
117 resource_size_t len = pci_resource_len(pdev, bar); in __pcim_request_region_range()
118 unsigned long dev_flags = pci_resource_flags(pdev, bar); in __pcim_request_region_range()
145 static void __pcim_release_region_range(struct pci_dev *pdev, int bar, in __pcim_release_region_range() argument
149 resource_size_t start = pci_resource_start(pdev, bar); in __pcim_release_region_range()
150 resource_size_t len = pci_resource_len(pdev, bar); in __pcim_release_region_range()
151 unsigned long flags = pci_resource_flags(pdev, bar); in __pcim_release_region_range()
171 static int __pcim_request_region(struct pci_dev *pdev, int bar, in __pcim_request_region() argument
175 unsigned long len = pci_resource_len(pdev, bar); in __pcim_request_region()
177 return __pcim_request_region_range(pdev, bar, offset, len, name, flags); in __pcim_request_region()
180 static void __pcim_release_region(struct pci_dev *pdev, int bar) in __pcim_release_region() argument
183 unsigned long len = pci_resource_len(pdev, bar); in __pcim_release_region()
185 __pcim_release_region_range(pdev, bar, offset, len); in __pcim_release_region()
195 __pcim_release_region(pdev, res->bar); in pcim_addr_resource_release()
199 __pcim_release_region(pdev, res->bar); in pcim_addr_resource_release()
243 return a->bar == b->bar; in pcim_addr_resources_match()
409 static inline bool mask_contains_bar(int mask, int bar) in mask_contains_bar() argument
411 return mask & BIT(bar); in mask_contains_bar()
576 void __iomem *mapping, int bar) in pcim_add_mapping_to_legacy_table() argument
580 if (!pci_bar_index_is_valid(bar)) in pcim_add_mapping_to_legacy_table()
588 WARN_ON(legacy_iomap_table[bar]); in pcim_add_mapping_to_legacy_table()
590 legacy_iomap_table[bar] = mapping; in pcim_add_mapping_to_legacy_table()
602 int bar; in pcim_remove_mapping_from_legacy_table() local
609 for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) { in pcim_remove_mapping_from_legacy_table()
610 if (legacy_iomap_table[bar] == addr) { in pcim_remove_mapping_from_legacy_table()
611 legacy_iomap_table[bar] = NULL; in pcim_remove_mapping_from_legacy_table()
621 static void pcim_remove_bar_from_legacy_table(struct pci_dev *pdev, int bar) in pcim_remove_bar_from_legacy_table() argument
625 if (!pci_bar_index_is_valid(bar)) in pcim_remove_bar_from_legacy_table()
632 legacy_iomap_table[bar] = NULL; in pcim_remove_bar_from_legacy_table()
653 void __iomem *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen) in pcim_iomap() argument
658 if (!pci_bar_index_is_valid(bar)) in pcim_iomap()
666 mapping = pci_iomap(pdev, bar, maxlen); in pcim_iomap()
671 if (pcim_add_mapping_to_legacy_table(pdev, mapping, bar) != 0) in pcim_iomap()
722 void __iomem *pcim_iomap_region(struct pci_dev *pdev, int bar, in pcim_iomap_region() argument
728 if (!pci_bar_index_is_valid(bar)) in pcim_iomap_region()
736 res->bar = bar; in pcim_iomap_region()
738 ret = __pcim_request_region(pdev, bar, name, 0); in pcim_iomap_region()
742 res->baseaddr = pci_iomap(pdev, bar, 0); in pcim_iomap_region()
752 __pcim_release_region(pdev, bar); in pcim_iomap_region()
768 void pcim_iounmap_region(struct pci_dev *pdev, int bar) in pcim_iounmap_region() argument
774 res_searched.bar = bar; in pcim_iounmap_region()
797 int bar; in pcim_iomap_regions() local
800 for (bar = 0; bar < DEVICE_COUNT_RESOURCE; bar++) { in pcim_iomap_regions()
801 if (!mask_contains_bar(mask, bar)) in pcim_iomap_regions()
804 mapping = pcim_iomap_region(pdev, bar, name); in pcim_iomap_regions()
809 ret = pcim_add_mapping_to_legacy_table(pdev, mapping, bar); in pcim_iomap_regions()
817 while (--bar >= 0) { in pcim_iomap_regions()
818 pcim_iounmap_region(pdev, bar); in pcim_iomap_regions()
819 pcim_remove_bar_from_legacy_table(pdev, bar); in pcim_iomap_regions()
826 static int _pcim_request_region(struct pci_dev *pdev, int bar, const char *name, in _pcim_request_region() argument
832 if (!pci_bar_index_is_valid(bar)) in _pcim_request_region()
839 res->bar = bar; in _pcim_request_region()
841 ret = __pcim_request_region(pdev, bar, name, request_flags); in _pcim_request_region()
864 int pcim_request_region(struct pci_dev *pdev, int bar, const char *name) in pcim_request_region() argument
866 return _pcim_request_region(pdev, bar, name, 0); in pcim_request_region()
883 int pcim_request_region_exclusive(struct pci_dev *pdev, int bar, const char *name) in pcim_request_region_exclusive() argument
885 return _pcim_request_region(pdev, bar, name, IORESOURCE_EXCLUSIVE); in pcim_request_region_exclusive()
896 void pcim_release_region(struct pci_dev *pdev, int bar) in pcim_release_region() argument
902 res_searched.bar = bar; in pcim_release_region()
921 int bar; in pcim_release_all_regions() local
923 for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) in pcim_release_all_regions()
924 pcim_release_region(pdev, bar); in pcim_release_all_regions()
941 int bar; in pcim_request_all_regions() local
943 for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) { in pcim_request_all_regions()
944 ret = pcim_request_region(pdev, bar, name); in pcim_request_all_regions()
997 void __iomem *pcim_iomap_range(struct pci_dev *pdev, int bar, in pcim_iomap_range() argument
1003 if (!pci_bar_index_is_valid(bar)) in pcim_iomap_range()
1010 mapping = pci_iomap_range(pdev, bar, offset, len); in pcim_iomap_range()