Lines Matching defs:pdev

100  * @pdev: PCI device the region belongs to
111 static int __pcim_request_region_range(struct pci_dev *pdev, int bar,
116 resource_size_t start = pci_resource_start(pdev, bar);
117 resource_size_t len = pci_resource_len(pdev, bar);
118 unsigned long dev_flags = pci_resource_flags(pdev, bar);
145 static void __pcim_release_region_range(struct pci_dev *pdev, int bar,
149 resource_size_t start = pci_resource_start(pdev, bar);
150 resource_size_t len = pci_resource_len(pdev, bar);
151 unsigned long flags = pci_resource_flags(pdev, bar);
171 static int __pcim_request_region(struct pci_dev *pdev, int bar,
175 unsigned long len = pci_resource_len(pdev, bar);
177 return __pcim_request_region_range(pdev, bar, offset, len, name, flags);
180 static void __pcim_release_region(struct pci_dev *pdev, int bar)
183 unsigned long len = pci_resource_len(pdev, bar);
185 __pcim_release_region_range(pdev, bar, offset, len);
190 struct pci_dev *pdev = to_pci_dev(dev);
195 __pcim_release_region(pdev, res->bar);
198 pci_iounmap(pdev, res->baseaddr);
199 __pcim_release_region(pdev, res->bar);
202 pci_iounmap(pdev, res->baseaddr);
209 static struct pcim_addr_devres *pcim_addr_devres_alloc(struct pci_dev *pdev)
214 GFP_KERNEL, dev_to_node(&pdev->dev));
333 * res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
334 * base = devm_pci_remap_cfg_resource(&pdev->dev, res);
380 struct pci_dev *pdev = pdev_raw;
382 pci_clear_mwi(pdev);
387 * @pdev: the PCI device for which MWI is enabled
393 int pcim_set_mwi(struct pci_dev *pdev)
397 ret = devm_add_action(&pdev->dev, __pcim_clear_mwi, pdev);
401 ret = pci_set_mwi(pdev);
403 devm_remove_action(&pdev->dev, __pcim_clear_mwi, pdev);
416 struct pci_dev *pdev = to_pci_dev(dev);
419 pci_intx(pdev, res->orig_intx);
422 static void save_orig_intx(struct pci_dev *pdev, struct pcim_intx_devres *res)
426 pci_read_config_word(pdev, PCI_COMMAND, &pci_command);
432 * @pdev: the PCI device to operate on
437 * Enable/disable PCI INTx for device @pdev.
440 int pcim_intx(struct pci_dev *pdev, int enable)
443 struct device *dev = &pdev->dev;
456 save_orig_intx(pdev, res);
460 pci_intx(pdev, enable);
468 struct pci_dev *pdev = pdev_raw;
470 if (!pdev->pinned)
471 pci_disable_device(pdev);
473 pdev->is_managed = false;
478 * @pdev: PCI device to be initialized
485 int pcim_enable_device(struct pci_dev *pdev)
489 ret = devm_add_action(&pdev->dev, pcim_disable_device, pdev);
498 ret = pci_enable_device(pdev);
500 devm_remove_action(&pdev->dev, pcim_disable_device, pdev);
504 pdev->is_managed = true;
512 * @pdev: PCI device to pin
514 * Pin managed PCI device @pdev. Pinned device won't be disabled on driver
515 * detach. @pdev must have been enabled with pcim_enable_device().
517 void pcim_pin_device(struct pci_dev *pdev)
519 pdev->pinned = true;
535 * @pdev: PCI device to access iomap table for
541 * exist and @pdev is managed, it will be allocated. All iomaps
552 * void __iomem \*mappy = pcim_iomap(pdev, bar, length);
554 void __iomem * const *pcim_iomap_table(struct pci_dev *pdev)
558 dr = devres_find(&pdev->dev, pcim_iomap_release, NULL, NULL);
563 dev_to_node(&pdev->dev));
566 dr = devres_get(&pdev->dev, new_dr, NULL, NULL);
575 static int pcim_add_mapping_to_legacy_table(struct pci_dev *pdev,
583 legacy_iomap_table = (void __iomem **)pcim_iomap_table(pdev);
599 static void pcim_remove_mapping_from_legacy_table(struct pci_dev *pdev,
605 legacy_iomap_table = (void __iomem **)pcim_iomap_table(pdev);
621 static void pcim_remove_bar_from_legacy_table(struct pci_dev *pdev, int bar)
628 legacy_iomap_table = (void __iomem **)pcim_iomap_table(pdev);
637 * @pdev: PCI device to iomap for
653 void __iomem *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen)
661 res = pcim_addr_devres_alloc(pdev);
666 mapping = pci_iomap(pdev, bar, maxlen);
671 if (pcim_add_mapping_to_legacy_table(pdev, mapping, bar) != 0)
674 devres_add(&pdev->dev, res);
678 pci_iounmap(pdev, mapping);
687 * @pdev: PCI device to iounmap for
693 void pcim_iounmap(struct pci_dev *pdev, void __iomem *addr)
701 if (devres_release(&pdev->dev, pcim_addr_resource_release,
707 pcim_remove_mapping_from_legacy_table(pdev, addr);
713 * @pdev: PCI device to map IO resources for
722 void __iomem *pcim_iomap_region(struct pci_dev *pdev, int bar,
731 res = pcim_addr_devres_alloc(pdev);
738 ret = __pcim_request_region(pdev, bar, name, 0);
742 res->baseaddr = pci_iomap(pdev, bar, 0);
748 devres_add(&pdev->dev, res);
752 __pcim_release_region(pdev, bar);
762 * @pdev: PCI device to operate on
768 void pcim_iounmap_region(struct pci_dev *pdev, int bar)
776 devres_release(&pdev->dev, pcim_addr_resource_release,
783 * @pdev: PCI device to map IO resources for
794 int pcim_iomap_regions(struct pci_dev *pdev, int mask, const char *name)
804 mapping = pcim_iomap_region(pdev, bar, name);
809 ret = pcim_add_mapping_to_legacy_table(pdev, mapping, bar);
818 pcim_iounmap_region(pdev, bar);
819 pcim_remove_bar_from_legacy_table(pdev, bar);
826 static int _pcim_request_region(struct pci_dev *pdev, int bar, const char *name,
835 res = pcim_addr_devres_alloc(pdev);
841 ret = __pcim_request_region(pdev, bar, name, request_flags);
847 devres_add(&pdev->dev, res);
853 * @pdev: PCI device to request region for
864 int pcim_request_region(struct pci_dev *pdev, int bar, const char *name)
866 return _pcim_request_region(pdev, bar, name, 0);
872 * @pdev: PCI device to request region for
883 int pcim_request_region_exclusive(struct pci_dev *pdev, int bar, const char *name)
885 return _pcim_request_region(pdev, bar, name, IORESOURCE_EXCLUSIVE);
890 * @pdev: PCI device to operate on
896 void pcim_release_region(struct pci_dev *pdev, int bar)
904 devres_release(&pdev->dev, pcim_addr_resource_release,
911 * @pdev: the PCI device
919 static void pcim_release_all_regions(struct pci_dev *pdev)
924 pcim_release_region(pdev, bar);
929 * @pdev: PCI device to map IO resources for
938 int pcim_request_all_regions(struct pci_dev *pdev, const char *name)
944 ret = pcim_request_region(pdev, bar, name);
952 pcim_release_all_regions(pdev);
960 * @pdev: PCI device to map IO resources for
968 void pcim_iounmap_regions(struct pci_dev *pdev, int mask)
976 pcim_iounmap_region(pdev, i);
977 pcim_remove_bar_from_legacy_table(pdev, i);
984 * @pdev: PCI device to map IO resources for
997 void __iomem *pcim_iomap_range(struct pci_dev *pdev, int bar,
1006 res = pcim_addr_devres_alloc(pdev);
1010 mapping = pci_iomap_range(pdev, bar, offset, len);
1024 devres_add(&pdev->dev, res);