Skip to content

Commit

Permalink
drm/nouveau: remove legacy vbios type detection
Browse files Browse the repository at this point in the history
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  • Loading branch information
Ben Skeggs committed Feb 20, 2013
1 parent 5e90a88 commit e84e4b6
Showing 1 changed file with 20 additions and 42 deletions.
62 changes: 20 additions & 42 deletions drivers/gpu/drm/nouveau/nouveau_bios.c
Original file line number Diff line number Diff line change
Expand Up @@ -2052,45 +2052,27 @@ uint8_t *nouveau_bios_embedded_edid(struct drm_device *dev)
static bool NVInitVBIOS(struct drm_device *dev)
{
struct nouveau_drm *drm = nouveau_drm(dev);
struct nvbios *bios = &drm->vbios;

memset(bios, 0, sizeof(struct nvbios));
spin_lock_init(&bios->lock);
bios->dev = dev;

bios->data = nouveau_bios(drm->device)->data;
bios->length = nouveau_bios(drm->device)->size;
return true;
}
struct nouveau_bios *bios = nouveau_bios(drm->device);
struct nvbios *legacy = &drm->vbios;

memset(legacy, 0, sizeof(struct nvbios));
spin_lock_init(&legacy->lock);
legacy->dev = dev;

legacy->data = bios->data;
legacy->length = bios->size;
if (bios->bit_offset) {
legacy->type = NVBIOS_BIT;
legacy->offset = bios->bit_offset;
return !parse_bit_structure(legacy, legacy->offset + 6);
} else
if (bios->bmp_offset) {
legacy->type = NVBIOS_BMP;
legacy->offset = bios->bmp_offset;
return !parse_bmp_structure(dev, legacy, legacy->offset);
}

static int nouveau_parse_vbios_struct(struct drm_device *dev)
{
struct nouveau_drm *drm = nouveau_drm(dev);
struct nvbios *bios = &drm->vbios;
const uint8_t bit_signature[] = { 0xff, 0xb8, 'B', 'I', 'T' };
const uint8_t bmp_signature[] = { 0xff, 0x7f, 'N', 'V', 0x0 };
int offset;

offset = findstr(bios->data, bios->length,
bit_signature, sizeof(bit_signature));
if (offset) {
NV_INFO(drm, "BIT BIOS found\n");
bios->type = NVBIOS_BIT;
bios->offset = offset;
return parse_bit_structure(bios, offset + 6);
}

offset = findstr(bios->data, bios->length,
bmp_signature, sizeof(bmp_signature));
if (offset) {
NV_INFO(drm, "BMP BIOS found\n");
bios->type = NVBIOS_BMP;
bios->offset = offset;
return parse_bmp_structure(dev, bios, offset);
}

NV_ERROR(drm, "No known BIOS signature found\n");
return -ENODEV;
return false;
}

int
Expand Down Expand Up @@ -2146,10 +2128,6 @@ nouveau_bios_init(struct drm_device *dev)
if (!NVInitVBIOS(dev))
return -ENODEV;

ret = nouveau_parse_vbios_struct(dev);
if (ret)
return ret;

ret = parse_dcb_table(dev, bios);
if (ret)
return ret;
Expand Down

0 comments on commit e84e4b6

Please sign in to comment.