summaryrefslogtreecommitdiff
path: root/lib/igt_device.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2019-03-27 20:52:52 +0200
committerVille Syrjälä <ville.syrjala@linux.intel.com>2019-03-29 22:23:27 +0200
commite408d569973b610ba4aafdba016c48b25e563468 (patch)
treee3e1050d63918d053369c7669b62097d501a0451 /lib/igt_device.c
parent1ac3264e0370134d06e2cff211c0da4aa5c7d83b (diff)
Revert "lib/igt_device: Move intel_get_pci_device under igt_device"
One significant usecase for intel_reg/etc. is to be able to examine the hardware state *before* loading the driver. If the tool forces the driver to load we've totally lost that capability. This reverts commit 8ae86621d6fff60b6e20c6b0f9b336785c935b0f. Cc: Michał Winiarski <michal.winiarski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Acked-by: Jani Nikula <jani.nikula@intel.com> Acked-by: Michał Winiarski <michal.winiarski@intel.com>
Diffstat (limited to 'lib/igt_device.c')
-rw-r--r--lib/igt_device.c120
1 files changed, 0 insertions, 120 deletions
diff --git a/lib/igt_device.c b/lib/igt_device.c
index a2f9bb3a..08f39c8b 100644
--- a/lib/igt_device.c
+++ b/lib/igt_device.c
@@ -26,7 +26,6 @@
#include <sys/sysmacros.h>
#include "igt.h"
#include "igt_device.h"
-#include "igt_sysfs.h"
int __igt_device_set_master(int fd)
{
@@ -104,122 +103,3 @@ int igt_device_get_card_index(int fd)
return minor(st.st_rdev);
}
-
-#define IGT_DEV_PATH_LEN 80
-
-static bool igt_device_is_pci(int fd)
-{
- char path[IGT_DEV_PATH_LEN];
- char *subsystem;
- int sysfs;
- int len;
-
- sysfs = igt_sysfs_open(fd);
- if (sysfs == -1)
- return false;
-
- len = readlinkat(sysfs, "device/subsystem", path, sizeof(path) - 1);
- if (len == -1)
- return false;
- path[len] = '\0';
-
- subsystem = strrchr(path, '/');
- if (!subsystem)
- return false;
-
- return strcmp(subsystem, "/pci") == 0;
-}
-
-struct igt_pci_addr {
- unsigned int domain;
- unsigned int bus;
- unsigned int device;
- unsigned int function;
-};
-
-static int igt_device_get_pci_addr(int fd, struct igt_pci_addr *pci)
-{
- char path[IGT_DEV_PATH_LEN];
- char *buf;
- int sysfs;
- int len;
-
- if (!igt_device_is_pci(fd))
- return -ENODEV;
-
- sysfs = igt_sysfs_open(fd);
- if (sysfs == -1)
- return -ENOENT;
-
- len = readlinkat(sysfs, "device", path, sizeof(path) - 1);
- if (len == -1)
- return -ENOENT;
- path[len] = '\0';
-
- buf = strrchr(path, '/');
- if (!buf)
- return -ENOENT;
-
- if (sscanf(buf, "/%4x:%2x:%2x.%2x",
- &pci->domain, &pci->bus,
- &pci->device, &pci->function) != 4) {
- igt_warn("Unable to extract PCI device address from '%s'\n", buf);
- return -ENOENT;
- }
-
- return 0;
-}
-
-static struct pci_device *__igt_device_get_pci_device(int fd)
-{
- struct igt_pci_addr pci_addr;
- struct pci_device *pci_dev;
-
- if (igt_device_get_pci_addr(fd, &pci_addr)) {
- igt_warn("Unable to find device PCI address\n");
- return NULL;
- }
-
- if (pci_system_init()) {
- igt_warn("Couldn't initialize PCI system\n");
- return NULL;
- }
-
- pci_dev = pci_device_find_by_slot(pci_addr.domain,
- pci_addr.bus,
- pci_addr.device,
- pci_addr.function);
- if (!pci_dev) {
- igt_warn("Couldn't find PCI device %04x:%02x:%02x:%02x\n",
- pci_addr.domain, pci_addr.bus,
- pci_addr.device, pci_addr.function);
- return NULL;
- }
-
- if (pci_device_probe(pci_dev)) {
- igt_warn("Couldn't probe PCI device\n");
- return NULL;
- }
-
- return pci_dev;
-}
-
-/**
- * igt_device_get_pci_device:
- *
- * @fd: the device
- *
- * Looks up the main graphics pci device using libpciaccess.
- *
- * Returns:
- * The pci_device, skips the test on any failures.
- */
-struct pci_device *igt_device_get_pci_device(int fd)
-{
- struct pci_device *pci_dev;
-
- pci_dev = __igt_device_get_pci_device(fd);
- igt_require(pci_dev);
-
- return pci_dev;
-}