xf86drm: merge get_normal_pci_path() into get_real_pci_path()
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>main
parent
b06d71bb22
commit
564995316e
25
xf86drm.c
25
xf86drm.c
|
@ -2998,26 +2998,20 @@ static int drmParseSubsystemType(int maj, int min)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
static void
|
||||||
get_real_pci_path(int maj, int min, char *real_path)
|
get_real_pci_path(int maj, int min, char *real_path)
|
||||||
{
|
{
|
||||||
char path[PATH_MAX + 1], *term;
|
char path[PATH_MAX + 1], *term;
|
||||||
|
|
||||||
snprintf(path, sizeof(path), "/sys/dev/char/%d:%d/device", maj, min);
|
snprintf(path, sizeof(path), "/sys/dev/char/%d:%d/device", maj, min);
|
||||||
if (!realpath(path, real_path))
|
if (!realpath(path, real_path)) {
|
||||||
return NULL;
|
strcpy(real_path, path);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
term = strrchr(real_path, '/');
|
term = strrchr(real_path, '/');
|
||||||
if (term && strncmp(term, "/virtio", 7) == 0)
|
if (term && strncmp(term, "/virtio", 7) == 0)
|
||||||
*term = 0;
|
*term = 0;
|
||||||
|
|
||||||
return real_path;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
get_normal_pci_path(int maj, int min, char *normal_path)
|
|
||||||
{
|
|
||||||
snprintf(normal_path, PATH_MAX, "/sys/dev/char/%d:%d/device", maj, min);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int drmParsePciBusInfo(int maj, int min, drmPciBusInfoPtr info)
|
static int drmParsePciBusInfo(int maj, int min, drmPciBusInfoPtr info)
|
||||||
|
@ -3027,8 +3021,7 @@ static int drmParsePciBusInfo(int maj, int min, drmPciBusInfoPtr info)
|
||||||
char real_path[PATH_MAX + 1], *value;
|
char real_path[PATH_MAX + 1], *value;
|
||||||
int num;
|
int num;
|
||||||
|
|
||||||
if (get_real_pci_path(maj, min, real_path) == NULL)
|
get_real_pci_path(maj, min, real_path);
|
||||||
get_normal_pci_path(maj, min, real_path);
|
|
||||||
|
|
||||||
value = sysfs_uevent_get(real_path, "PCI_SLOT_NAME");
|
value = sysfs_uevent_get(real_path, "PCI_SLOT_NAME");
|
||||||
if (!value)
|
if (!value)
|
||||||
|
@ -3148,8 +3141,7 @@ static int parse_separate_sysfs_files(int maj, int min,
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (get_real_pci_path(maj, min, real_path) == NULL)
|
get_real_pci_path(maj, min, real_path);
|
||||||
get_normal_pci_path(maj, min, real_path);
|
|
||||||
|
|
||||||
for (unsigned i = ignore_revision ? 1 : 0; i < ARRAY_SIZE(attrs); i++) {
|
for (unsigned i = ignore_revision ? 1 : 0; i < ARRAY_SIZE(attrs); i++) {
|
||||||
snprintf(path, PATH_MAX, "%s/%s", real_path, attrs[i]);
|
snprintf(path, PATH_MAX, "%s/%s", real_path, attrs[i]);
|
||||||
|
@ -3180,8 +3172,7 @@ static int parse_config_sysfs_file(int maj, int min,
|
||||||
unsigned char config[64];
|
unsigned char config[64];
|
||||||
int fd, ret;
|
int fd, ret;
|
||||||
|
|
||||||
if (get_real_pci_path(maj, min, real_path) == NULL)
|
get_real_pci_path(maj, min, real_path);
|
||||||
get_normal_pci_path(maj, min, real_path);
|
|
||||||
|
|
||||||
snprintf(path, PATH_MAX, "%s/config", real_path);
|
snprintf(path, PATH_MAX, "%s/config", real_path);
|
||||||
fd = open(path, O_RDONLY);
|
fd = open(path, O_RDONLY);
|
||||||
|
|
Loading…
Reference in New Issue