• Home
  • Raw
  • Download

Lines Matching +full:resource +full:- +full:files

1 // SPDX-License-Identifier: GPL-2.0
3 * (C) Copyright 2002-2004 Greg Kroah-Hartman <greg@kroah.com>
4 * (C) Copyright 2002-2004 IBM Corp.
6 * (C) Copyright 2003 Hewlett-Packard
42 return sprintf(buf, format_string, pdev->field); \
59 return sprintf(buf, "%u\n", pdev->broken_parity_status); in broken_parity_status_show()
70 return -EINVAL; in broken_parity_status_store()
72 pdev->broken_parity_status = !!val; in broken_parity_status_store()
84 mask = (dev_to_node(dev) == -1) ? cpu_online_mask : in pci_dev_show_local_cpu()
87 mask = cpumask_of_pcibus(to_pci_dev(dev)->bus); in pci_dev_show_local_cpu()
137 if (pci_dev->subordinate) in resource_show()
143 struct resource *res = &pci_dev->resource[i]; in resource_show()
148 (unsigned long long)res->flags); in resource_show()
150 return (str - buf); in resource_show()
152 static DEVICE_ATTR_RO(resource);
183 return -EINVAL; in current_link_speed_show()
200 return -EINVAL; in current_link_width_show()
217 return -EINVAL; in secondary_bus_number_show()
233 return -EINVAL; in subordinate_bus_number_show()
245 return sprintf(buf, "%u\n", pci_ari_enabled(pci_dev->bus)); in ari_enabled_show()
255 pci_dev->vendor, pci_dev->device, in modalias_show()
256 pci_dev->subsystem_vendor, pci_dev->subsystem_device, in modalias_show()
257 (u8)(pci_dev->class >> 16), (u8)(pci_dev->class >> 8), in modalias_show()
258 (u8)(pci_dev->class)); in modalias_show()
274 return -EPERM; in enable_store()
277 if (dev->driver) in enable_store()
278 result = -EBUSY; in enable_store()
284 result = -EIO; in enable_store()
296 return sprintf(buf, "%u\n", atomic_read(&pdev->enable_cnt)); in enable_show()
309 return -EPERM; in numa_node_store()
316 return -EINVAL; in numa_node_store()
319 return -EINVAL; in numa_node_store()
325 dev->numa_node = node; in numa_node_store()
332 return sprintf(buf, "%d\n", dev->numa_node); in numa_node_show()
342 return sprintf(buf, "%d\n", fls64(pdev->dma_mask)); in dma_mask_bits_show()
350 return sprintf(buf, "%d\n", fls64(dev->coherent_dma_mask)); in consistent_dma_mask_bits_show()
358 struct pci_bus *subordinate = pdev->subordinate; in msi_bus_show()
361 !(subordinate->bus_flags & PCI_BUS_FLAGS_NO_MSI) in msi_bus_show()
362 : !pdev->no_msi); in msi_bus_show()
369 struct pci_bus *subordinate = pdev->subordinate; in msi_bus_store()
373 return -EINVAL; in msi_bus_store()
376 return -EPERM; in msi_bus_store()
380 * requests MSI or MSI-X. They don't affect any drivers that have in msi_bus_store()
381 * already requested MSI or MSI-X. in msi_bus_store()
384 pdev->no_msi = !val; in msi_bus_store()
385 pci_info(pdev, "MSI/MSI-X %s for future drivers\n", in msi_bus_store()
391 subordinate->bus_flags &= ~PCI_BUS_FLAGS_NO_MSI; in msi_bus_store()
393 subordinate->bus_flags |= PCI_BUS_FLAGS_NO_MSI; in msi_bus_store()
395 dev_info(&subordinate->dev, "MSI/MSI-X %s for future drivers of devices on this bus\n", in msi_bus_store()
407 return -EINVAL; in rescan_store()
441 return -EINVAL; in dev_rescan_store()
445 pci_rescan_bus(pdev->bus); in dev_rescan_store()
459 return -EINVAL; in remove_store()
476 return -EINVAL; in bus_rescan_store()
480 if (!pci_is_root_bus(bus) && list_empty(&bus->devices)) in bus_rescan_store()
481 pci_rescan_bus_bridge_resize(bus->self); in bus_rescan_store()
500 return -EINVAL; in d3cold_allowed_store()
502 pdev->d3cold_allowed = !!val; in d3cold_allowed_store()
514 return sprintf(buf, "%u\n", pdev->d3cold_allowed); in d3cold_allowed_show()
541 if (count >= (PAGE_SIZE - 1)) in driver_override_store()
542 return -EINVAL; in driver_override_store()
546 return -ENOMEM; in driver_override_store()
553 old = pdev->driver_override; in driver_override_store()
555 pdev->driver_override = driver_override; in driver_override_store()
558 pdev->driver_override = NULL; in driver_override_store()
574 len = scnprintf(buf, PAGE_SIZE, "%s\n", pdev->driver_override); in driver_override_show()
651 !!(pdev->resource[PCI_ROM_RESOURCE].flags & in boot_vga_show()
667 size = dev->cfg_size; in pci_read_config()
668 else if (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) in pci_read_config()
674 size -= off; in pci_read_config()
685 data[off - init_off] = val; in pci_read_config()
687 size--; in pci_read_config()
693 data[off - init_off] = val & 0xff; in pci_read_config()
694 data[off - init_off + 1] = (val >> 8) & 0xff; in pci_read_config()
696 size -= 2; in pci_read_config()
702 data[off - init_off] = val & 0xff; in pci_read_config()
703 data[off - init_off + 1] = (val >> 8) & 0xff; in pci_read_config()
704 data[off - init_off + 2] = (val >> 16) & 0xff; in pci_read_config()
705 data[off - init_off + 3] = (val >> 24) & 0xff; in pci_read_config()
707 size -= 4; in pci_read_config()
714 data[off - init_off] = val & 0xff; in pci_read_config()
715 data[off - init_off + 1] = (val >> 8) & 0xff; in pci_read_config()
717 size -= 2; in pci_read_config()
723 data[off - init_off] = val; in pci_read_config()
725 --size; in pci_read_config()
747 if (off > dev->cfg_size) in pci_write_config()
749 if (off + count > dev->cfg_size) { in pci_write_config()
750 size = dev->cfg_size - off; in pci_write_config()
757 pci_user_write_config_byte(dev, off, data[off - init_off]); in pci_write_config()
759 size--; in pci_write_config()
763 u16 val = data[off - init_off]; in pci_write_config()
764 val |= (u16) data[off - init_off + 1] << 8; in pci_write_config()
767 size -= 2; in pci_write_config()
771 u32 val = data[off - init_off]; in pci_write_config()
772 val |= (u32) data[off - init_off + 1] << 8; in pci_write_config()
773 val |= (u32) data[off - init_off + 2] << 16; in pci_write_config()
774 val |= (u32) data[off - init_off + 3] << 24; in pci_write_config()
777 size -= 4; in pci_write_config()
781 u16 val = data[off - init_off]; in pci_write_config()
782 val |= (u16) data[off - init_off + 1] << 8; in pci_write_config()
785 size -= 2; in pci_write_config()
789 pci_user_write_config_byte(dev, off, data[off - init_off]); in pci_write_config()
791 --size; in pci_write_config()
801 * pci_read_legacy_io - read byte(s) from legacy I/O port space
820 return -EINVAL; in pci_read_legacy_io()
826 * pci_write_legacy_io - write byte(s) to legacy I/O port space
845 return -EINVAL; in pci_write_legacy_io()
851 * pci_mmap_legacy_mem - map legacy PCI memory into user memory space
871 * pci_mmap_legacy_io - map legacy PCI IO into user memory space
879 * memory space. Returns -ENOSYS if the operation isn't supported
891 * pci_adjust_legacy_attr - adjustment of legacy file attributes
892 * @b: bus to create files under
903 * pci_create_legacy_files - create legacy I/O port and memory files
904 * @b: bus to create files under
907 * a per-bus basis. This routine creates the files and ties them into
908 * their associated read, write and mmap files from pci-sysfs.c
911 * as it is ok to set up the PCI bus without these files.
917 b->legacy_io = kcalloc(2, sizeof(struct bin_attribute), in pci_create_legacy_files()
919 if (!b->legacy_io) in pci_create_legacy_files()
922 sysfs_bin_attr_init(b->legacy_io); in pci_create_legacy_files()
923 b->legacy_io->attr.name = "legacy_io"; in pci_create_legacy_files()
924 b->legacy_io->size = 0xffff; in pci_create_legacy_files()
925 b->legacy_io->attr.mode = 0600; in pci_create_legacy_files()
926 b->legacy_io->read = pci_read_legacy_io; in pci_create_legacy_files()
927 b->legacy_io->write = pci_write_legacy_io; in pci_create_legacy_files()
928 b->legacy_io->mmap = pci_mmap_legacy_io; in pci_create_legacy_files()
930 error = device_create_bin_file(&b->dev, b->legacy_io); in pci_create_legacy_files()
935 b->legacy_mem = b->legacy_io + 1; in pci_create_legacy_files()
936 sysfs_bin_attr_init(b->legacy_mem); in pci_create_legacy_files()
937 b->legacy_mem->attr.name = "legacy_mem"; in pci_create_legacy_files()
938 b->legacy_mem->size = 1024*1024; in pci_create_legacy_files()
939 b->legacy_mem->attr.mode = 0600; in pci_create_legacy_files()
940 b->legacy_mem->mmap = pci_mmap_legacy_mem; in pci_create_legacy_files()
942 error = device_create_bin_file(&b->dev, b->legacy_mem); in pci_create_legacy_files()
949 device_remove_bin_file(&b->dev, b->legacy_io); in pci_create_legacy_files()
951 kfree(b->legacy_io); in pci_create_legacy_files()
952 b->legacy_io = NULL; in pci_create_legacy_files()
954 dev_warn(&b->dev, "could not create legacy I/O port and ISA memory resources in sysfs\n"); in pci_create_legacy_files()
959 if (b->legacy_io) { in pci_remove_legacy_files()
960 device_remove_bin_file(&b->dev, b->legacy_io); in pci_remove_legacy_files()
961 device_remove_bin_file(&b->dev, b->legacy_mem); in pci_remove_legacy_files()
962 kfree(b->legacy_io); /* both are allocated here */ in pci_remove_legacy_files()
978 start = vma->vm_pgoff; in pci_mmap_fits()
979 size = ((pci_resource_len(pdev, resno) - 1) >> PAGE_SHIFT) + 1; in pci_mmap_fits()
981 pci_resource_to_user(pdev, resno, &pdev->resource[resno], in pci_mmap_fits()
992 * pci_mmap_resource - map a PCI resource into user memory space
998 * Use the regular PCI mapping routines to map a PCI resource into userspace.
1004 int bar = (unsigned long)attr->private; in pci_mmap_resource()
1006 struct resource *res = &pdev->resource[bar]; in pci_mmap_resource()
1013 if (res->flags & IORESOURCE_MEM && iomem_is_exclusive(res->start)) in pci_mmap_resource()
1014 return -EINVAL; in pci_mmap_resource()
1017 return -EINVAL; in pci_mmap_resource()
1019 mmap_type = res->flags & IORESOURCE_MEM ? pci_mmap_mem : pci_mmap_io; in pci_mmap_resource()
1043 int bar = (unsigned long)attr->private; in pci_resource_io()
1051 if (port + count - 1 > pci_resource_end(pdev, bar)) in pci_resource_io()
1052 return -EINVAL; in pci_resource_io()
1074 return -EINVAL; in pci_resource_io()
1098 * pci_remove_resource_files - cleanup resource files
1101 * If we created resource files for @pdev, remove them from sysfs and
1111 res_attr = pdev->res_attr[i]; in pci_remove_resource_files()
1113 sysfs_remove_bin_file(&pdev->dev.kobj, res_attr); in pci_remove_resource_files()
1117 res_attr = pdev->res_attr_wc[i]; in pci_remove_resource_files()
1119 sysfs_remove_bin_file(&pdev->dev.kobj, res_attr); in pci_remove_resource_files()
1135 return -ENOMEM; in pci_create_attr()
1141 sprintf(res_attr_name, "resource%d_wc", num); in pci_create_attr()
1142 res_attr->mmap = pci_mmap_resource_wc; in pci_create_attr()
1144 sprintf(res_attr_name, "resource%d", num); in pci_create_attr()
1146 res_attr->read = pci_read_resource_io; in pci_create_attr()
1147 res_attr->write = pci_write_resource_io; in pci_create_attr()
1149 res_attr->mmap = pci_mmap_resource_uc; in pci_create_attr()
1151 res_attr->mmap = pci_mmap_resource_uc; in pci_create_attr()
1154 res_attr->attr.name = res_attr_name; in pci_create_attr()
1155 res_attr->attr.mode = 0600; in pci_create_attr()
1156 res_attr->size = pci_resource_len(pdev, num); in pci_create_attr()
1157 res_attr->private = (void *)(unsigned long)num; in pci_create_attr()
1158 retval = sysfs_create_bin_file(&pdev->dev.kobj, res_attr); in pci_create_attr()
1165 pdev->res_attr_wc[num] = res_attr; in pci_create_attr()
1167 pdev->res_attr[num] = res_attr; in pci_create_attr()
1173 * pci_create_resource_files - create resource files in sysfs for @dev
1176 * Walk the resources in @pdev creating files for each resource available.
1183 /* Expose the PCI resources from this device as files */ in pci_create_resource_files()
1193 pdev->resource[i].flags & IORESOURCE_PREFETCH) in pci_create_resource_files()
1208 * pci_write_rom - used to enable access to the PCI ROM display
1225 pdev->rom_attr_enabled = 0; in pci_write_rom()
1227 pdev->rom_attr_enabled = 1; in pci_write_rom()
1233 * pci_read_rom - read a PCI ROM
1252 if (!pdev->rom_attr_enabled) in pci_read_rom()
1253 return -EINVAL; in pci_read_rom()
1257 return -EIO; in pci_read_rom()
1263 count = size - off; in pci_read_rom()
1303 return -EINVAL; in reset_store()
1322 if (dev->reset_fn) { in pci_create_capabilities_sysfs()
1323 retval = device_create_file(&dev->dev, &dev_attr_reset); in pci_create_capabilities_sysfs()
1341 return -EACCES; in pci_create_sysfs_dev_files()
1343 if (pdev->cfg_size > PCI_CFG_SPACE_SIZE) in pci_create_sysfs_dev_files()
1344 retval = sysfs_create_bin_file(&pdev->dev.kobj, &pcie_config_attr); in pci_create_sysfs_dev_files()
1346 retval = sysfs_create_bin_file(&pdev->dev.kobj, &pci_config_attr); in pci_create_sysfs_dev_files()
1359 retval = -ENOMEM; in pci_create_sysfs_dev_files()
1363 attr->size = rom_size; in pci_create_sysfs_dev_files()
1364 attr->attr.name = "rom"; in pci_create_sysfs_dev_files()
1365 attr->attr.mode = 0600; in pci_create_sysfs_dev_files()
1366 attr->read = pci_read_rom; in pci_create_sysfs_dev_files()
1367 attr->write = pci_write_rom; in pci_create_sysfs_dev_files()
1368 retval = sysfs_create_bin_file(&pdev->dev.kobj, attr); in pci_create_sysfs_dev_files()
1373 pdev->rom_attr = attr; in pci_create_sysfs_dev_files()
1386 if (pdev->rom_attr) { in pci_create_sysfs_dev_files()
1387 sysfs_remove_bin_file(&pdev->dev.kobj, pdev->rom_attr); in pci_create_sysfs_dev_files()
1388 kfree(pdev->rom_attr); in pci_create_sysfs_dev_files()
1389 pdev->rom_attr = NULL; in pci_create_sysfs_dev_files()
1394 if (pdev->cfg_size > PCI_CFG_SPACE_SIZE) in pci_create_sysfs_dev_files()
1395 sysfs_remove_bin_file(&pdev->dev.kobj, &pcie_config_attr); in pci_create_sysfs_dev_files()
1397 sysfs_remove_bin_file(&pdev->dev.kobj, &pci_config_attr); in pci_create_sysfs_dev_files()
1405 if (dev->reset_fn) { in pci_remove_capabilities_sysfs()
1406 device_remove_file(&dev->dev, &dev_attr_reset); in pci_remove_capabilities_sysfs()
1407 dev->reset_fn = 0; in pci_remove_capabilities_sysfs()
1412 * pci_remove_sysfs_dev_files - cleanup PCI specific sysfs files
1424 if (pdev->cfg_size > PCI_CFG_SPACE_SIZE) in pci_remove_sysfs_dev_files()
1425 sysfs_remove_bin_file(&pdev->dev.kobj, &pcie_config_attr); in pci_remove_sysfs_dev_files()
1427 sysfs_remove_bin_file(&pdev->dev.kobj, &pci_config_attr); in pci_remove_sysfs_dev_files()
1431 if (pdev->rom_attr) { in pci_remove_sysfs_dev_files()
1432 sysfs_remove_bin_file(&pdev->dev.kobj, pdev->rom_attr); in pci_remove_sysfs_dev_files()
1433 kfree(pdev->rom_attr); in pci_remove_sysfs_dev_files()
1434 pdev->rom_attr = NULL; in pci_remove_sysfs_dev_files()
1470 if ((pdev->class >> 8) != PCI_CLASS_DISPLAY_VGA) in pci_dev_attrs_are_visible()
1473 return a->mode; in pci_dev_attrs_are_visible()
1488 if (pdev->is_virtfn) in pci_dev_hp_attrs_are_visible()
1491 return a->mode; in pci_dev_hp_attrs_are_visible()
1501 return a->mode; in pci_bridge_attrs_are_visible()
1513 return a->mode; in pcie_dev_attrs_are_visible()