Lines Matching refs:pdev
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()
190 struct pci_dev *pdev = to_pci_dev(dev); in pcim_addr_resource_release() local
195 __pcim_release_region(pdev, res->bar); in pcim_addr_resource_release()
198 pci_iounmap(pdev, res->baseaddr); in pcim_addr_resource_release()
199 __pcim_release_region(pdev, res->bar); in pcim_addr_resource_release()
202 pci_iounmap(pdev, res->baseaddr); in pcim_addr_resource_release()
209 static struct pcim_addr_devres *pcim_addr_devres_alloc(struct pci_dev *pdev) in pcim_addr_devres_alloc() argument
214 GFP_KERNEL, dev_to_node(&pdev->dev)); in pcim_addr_devres_alloc()
380 struct pci_dev *pdev = pdev_raw; in __pcim_clear_mwi() local
382 pci_clear_mwi(pdev); in __pcim_clear_mwi()
393 int pcim_set_mwi(struct pci_dev *pdev) in pcim_set_mwi() argument
397 ret = devm_add_action(&pdev->dev, __pcim_clear_mwi, pdev); in pcim_set_mwi()
401 ret = pci_set_mwi(pdev); in pcim_set_mwi()
403 devm_remove_action(&pdev->dev, __pcim_clear_mwi, pdev); in pcim_set_mwi()
418 static void __pcim_intx(struct pci_dev *pdev, int enable) in __pcim_intx() argument
422 pci_read_config_word(pdev, PCI_COMMAND, &pci_command); in __pcim_intx()
430 pci_write_config_word(pdev, PCI_COMMAND, new); in __pcim_intx()
435 struct pci_dev *pdev = to_pci_dev(dev); in pcim_intx_restore() local
438 __pcim_intx(pdev, res->orig_intx); in pcim_intx_restore()
466 int pcim_intx(struct pci_dev *pdev, int enable) in pcim_intx() argument
470 res = get_or_create_intx_devres(&pdev->dev); in pcim_intx()
475 __pcim_intx(pdev, enable); in pcim_intx()
482 struct pci_dev *pdev = pdev_raw; in pcim_disable_device() local
484 if (!pdev->pinned) in pcim_disable_device()
485 pci_disable_device(pdev); in pcim_disable_device()
487 pdev->is_managed = false; in pcim_disable_device()
499 int pcim_enable_device(struct pci_dev *pdev) in pcim_enable_device() argument
503 ret = devm_add_action(&pdev->dev, pcim_disable_device, pdev); in pcim_enable_device()
512 ret = pci_enable_device(pdev); in pcim_enable_device()
514 devm_remove_action(&pdev->dev, pcim_disable_device, pdev); in pcim_enable_device()
518 pdev->is_managed = true; in pcim_enable_device()
531 void pcim_pin_device(struct pci_dev *pdev) in pcim_pin_device() argument
533 pdev->pinned = true; in pcim_pin_device()
568 void __iomem * const *pcim_iomap_table(struct pci_dev *pdev) in pcim_iomap_table() argument
572 dr = devres_find(&pdev->dev, pcim_iomap_release, NULL, NULL); in pcim_iomap_table()
577 dev_to_node(&pdev->dev)); in pcim_iomap_table()
580 dr = devres_get(&pdev->dev, new_dr, NULL, NULL); in pcim_iomap_table()
589 static int pcim_add_mapping_to_legacy_table(struct pci_dev *pdev, in pcim_add_mapping_to_legacy_table() argument
597 legacy_iomap_table = (void __iomem **)pcim_iomap_table(pdev); in pcim_add_mapping_to_legacy_table()
613 static void pcim_remove_mapping_from_legacy_table(struct pci_dev *pdev, in pcim_remove_mapping_from_legacy_table() argument
619 legacy_iomap_table = (void __iomem **)pcim_iomap_table(pdev); in pcim_remove_mapping_from_legacy_table()
635 static void pcim_remove_bar_from_legacy_table(struct pci_dev *pdev, int bar) in pcim_remove_bar_from_legacy_table() argument
642 legacy_iomap_table = (void __iomem **)pcim_iomap_table(pdev); in pcim_remove_bar_from_legacy_table()
667 void __iomem *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen) in pcim_iomap() argument
672 res = pcim_addr_devres_alloc(pdev); in pcim_iomap()
677 mapping = pci_iomap(pdev, bar, maxlen); in pcim_iomap()
682 if (pcim_add_mapping_to_legacy_table(pdev, mapping, bar) != 0) in pcim_iomap()
685 devres_add(&pdev->dev, res); in pcim_iomap()
689 pci_iounmap(pdev, mapping); in pcim_iomap()
704 void pcim_iounmap(struct pci_dev *pdev, void __iomem *addr) in pcim_iounmap() argument
712 if (devres_release(&pdev->dev, pcim_addr_resource_release, in pcim_iounmap()
718 pcim_remove_mapping_from_legacy_table(pdev, addr); in pcim_iounmap()
733 void __iomem *pcim_iomap_region(struct pci_dev *pdev, int bar, in pcim_iomap_region() argument
739 res = pcim_addr_devres_alloc(pdev); in pcim_iomap_region()
746 ret = __pcim_request_region(pdev, bar, name, 0); in pcim_iomap_region()
750 res->baseaddr = pci_iomap(pdev, bar, 0); in pcim_iomap_region()
756 devres_add(&pdev->dev, res); in pcim_iomap_region()
760 __pcim_release_region(pdev, bar); in pcim_iomap_region()
776 static void pcim_iounmap_region(struct pci_dev *pdev, int bar) in pcim_iounmap_region() argument
784 devres_release(&pdev->dev, pcim_addr_resource_release, in pcim_iounmap_region()
801 int pcim_iomap_regions(struct pci_dev *pdev, int mask, const char *name) in pcim_iomap_regions() argument
811 mapping = pcim_iomap_region(pdev, bar, name); in pcim_iomap_regions()
816 ret = pcim_add_mapping_to_legacy_table(pdev, mapping, bar); in pcim_iomap_regions()
825 pcim_iounmap_region(pdev, bar); in pcim_iomap_regions()
826 pcim_remove_bar_from_legacy_table(pdev, bar); in pcim_iomap_regions()
833 static int _pcim_request_region(struct pci_dev *pdev, int bar, const char *name, in _pcim_request_region() argument
839 res = pcim_addr_devres_alloc(pdev); in _pcim_request_region()
845 ret = __pcim_request_region(pdev, bar, name, request_flags); in _pcim_request_region()
851 devres_add(&pdev->dev, res); in _pcim_request_region()
868 int pcim_request_region(struct pci_dev *pdev, int bar, const char *name) in pcim_request_region() argument
870 return _pcim_request_region(pdev, bar, name, 0); in pcim_request_region()
887 int pcim_request_region_exclusive(struct pci_dev *pdev, int bar, const char *name) in pcim_request_region_exclusive() argument
889 return _pcim_request_region(pdev, bar, name, IORESOURCE_EXCLUSIVE); in pcim_request_region_exclusive()
900 void pcim_release_region(struct pci_dev *pdev, int bar) in pcim_release_region() argument
908 devres_release(&pdev->dev, pcim_addr_resource_release, in pcim_release_region()
923 static void pcim_release_all_regions(struct pci_dev *pdev) in pcim_release_all_regions() argument
928 pcim_release_region(pdev, bar); in pcim_release_all_regions()
942 static int pcim_request_all_regions(struct pci_dev *pdev, const char *name) in pcim_request_all_regions() argument
948 ret = pcim_request_region(pdev, bar, name); in pcim_request_all_regions()
956 pcim_release_all_regions(pdev); in pcim_request_all_regions()
979 int pcim_iomap_regions_request_all(struct pci_dev *pdev, int mask, in pcim_iomap_regions_request_all() argument
986 ret = pcim_request_all_regions(pdev, name); in pcim_iomap_regions_request_all()
993 if (!pcim_iomap(pdev, bar, 0)) in pcim_iomap_regions_request_all()
1006 legacy_iomap_table = (void __iomem **)pcim_iomap_table(pdev); in pcim_iomap_regions_request_all()
1009 pcim_iounmap(pdev, legacy_iomap_table[bar]); in pcim_iomap_regions_request_all()
1011 pcim_release_all_regions(pdev); in pcim_iomap_regions_request_all()
1024 void pcim_iounmap_regions(struct pci_dev *pdev, int mask) in pcim_iounmap_regions() argument
1032 pcim_iounmap_region(pdev, i); in pcim_iounmap_regions()
1033 pcim_remove_bar_from_legacy_table(pdev, i); in pcim_iounmap_regions()
1053 void __iomem *pcim_iomap_range(struct pci_dev *pdev, int bar, in pcim_iomap_range() argument
1059 res = pcim_addr_devres_alloc(pdev); in pcim_iomap_range()
1063 mapping = pci_iomap_range(pdev, bar, offset, len); in pcim_iomap_range()
1077 devres_add(&pdev->dev, res); in pcim_iomap_range()