bios_reader: Allow forcing the device ID with DEVICE=0xNNNN

As a pleasant side effect you can now feed it an opregion dump and it'll
decode without crashing.

Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Adam Jackson 2011-10-11 18:25:26 -04:00
parent 1708580217
commit eaaddc794b

View File

@ -38,7 +38,7 @@
#include "intel_bios.h" #include "intel_bios.h"
#include "intel_gpu_tools.h" #include "intel_gpu_tools.h"
static uint32_t devid; static uint32_t devid = -1;
/* no bother to include "edid.h" */ /* no bother to include "edid.h" */
#define _H_ACTIVE(x) (x[2] + ((x[4] & 0xF0) << 4)) #define _H_ACTIVE(x) (x[2] + ((x[4] & 0xF0) << 4))
@ -833,12 +833,16 @@ int main(int argc, char **argv)
struct stat finfo; struct stat finfo;
struct bdb_block *block; struct bdb_block *block;
char signature[17]; char signature[17];
char *devid_string;
if (argc != 2) { if (argc != 2) {
printf("usage: %s <rom file>\n", argv[0]); printf("usage: %s <rom file>\n", argv[0]);
return 1; return 1;
} }
if ((devid_string = getenv("DEVICE")))
devid = strtoul(devid_string, NULL, 0);
filename = argv[1]; filename = argv[1];
fd = open(filename, O_RDONLY); fd = open(filename, O_RDONLY);
@ -911,7 +915,8 @@ int main(int argc, char **argv)
} }
printf("\n"); printf("\n");
devid = get_device_id(VBIOS); if (devid == -1)
devid = get_device_id(VBIOS);
if (devid == -1) if (devid == -1)
printf("Warning: could not find PCI device ID!\n"); printf("Warning: could not find PCI device ID!\n");