aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2012-12-06 00:32:56 -0500
committerBen Skeggs <bskeggs@redhat.com>2013-02-20 01:00:26 -0500
commite84e4b67ddd6fcbfe5ab39c7aed1d490a8c6283c (patch)
tree8dca768aa070dae2ec4c800fa87acbbe5de6ed7e /drivers/gpu/drm/nouveau
parent5e90a88cb37b665cc0609f1236d6099421139449 (diff)
drm/nouveau: remove legacy vbios type detection
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bios.c62
1 files changed, 20 insertions, 42 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
index 865eddfa30a7..9a69e0b131bf 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bios.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
@@ -2052,45 +2052,27 @@ uint8_t *nouveau_bios_embedded_edid(struct drm_device *dev)
2052static bool NVInitVBIOS(struct drm_device *dev) 2052static bool NVInitVBIOS(struct drm_device *dev)
2053{ 2053{
2054 struct nouveau_drm *drm = nouveau_drm(dev); 2054 struct nouveau_drm *drm = nouveau_drm(dev);
2055 struct nvbios *bios = &drm->vbios; 2055 struct nouveau_bios *bios = nouveau_bios(drm->device);
2056 2056 struct nvbios *legacy = &drm->vbios;
2057 memset(bios, 0, sizeof(struct nvbios)); 2057
2058 spin_lock_init(&bios->lock); 2058 memset(legacy, 0, sizeof(struct nvbios));
2059 bios->dev = dev; 2059 spin_lock_init(&legacy->lock);
2060 2060 legacy->dev = dev;
2061 bios->data = nouveau_bios(drm->device)->data; 2061
2062 bios->length = nouveau_bios(drm->device)->size; 2062 legacy->data = bios->data;
2063 return true; 2063 legacy->length = bios->size;
2064} 2064 if (bios->bit_offset) {
2065 legacy->type = NVBIOS_BIT;
2066 legacy->offset = bios->bit_offset;
2067 return !parse_bit_structure(legacy, legacy->offset + 6);
2068 } else
2069 if (bios->bmp_offset) {
2070 legacy->type = NVBIOS_BMP;
2071 legacy->offset = bios->bmp_offset;
2072 return !parse_bmp_structure(dev, legacy, legacy->offset);
2073 }
2065 2074
2066static int nouveau_parse_vbios_struct(struct drm_device *dev) 2075 return false;
2067{
2068 struct nouveau_drm *drm = nouveau_drm(dev);
2069 struct nvbios *bios = &drm->vbios;
2070 const uint8_t bit_signature[] = { 0xff, 0xb8, 'B', 'I', 'T' };
2071 const uint8_t bmp_signature[] = { 0xff, 0x7f, 'N', 'V', 0x0 };
2072 int offset;
2073
2074 offset = findstr(bios->data, bios->length,
2075 bit_signature, sizeof(bit_signature));
2076 if (offset) {
2077 NV_INFO(drm, "BIT BIOS found\n");
2078 bios->type = NVBIOS_BIT;
2079 bios->offset = offset;
2080 return parse_bit_structure(bios, offset + 6);
2081 }
2082
2083 offset = findstr(bios->data, bios->length,
2084 bmp_signature, sizeof(bmp_signature));
2085 if (offset) {
2086 NV_INFO(drm, "BMP BIOS found\n");
2087 bios->type = NVBIOS_BMP;
2088 bios->offset = offset;
2089 return parse_bmp_structure(dev, bios, offset);
2090 }
2091
2092 NV_ERROR(drm, "No known BIOS signature found\n");
2093 return -ENODEV;
2094} 2076}
2095 2077
2096int 2078int
@@ -2146,10 +2128,6 @@ nouveau_bios_init(struct drm_device *dev)
2146 if (!NVInitVBIOS(dev)) 2128 if (!NVInitVBIOS(dev))
2147 return -ENODEV; 2129 return -ENODEV;
2148 2130
2149 ret = nouveau_parse_vbios_struct(dev);
2150 if (ret)
2151 return ret;
2152
2153 ret = parse_dcb_table(dev, bios); 2131 ret = parse_dcb_table(dev, bios);
2154 if (ret) 2132 if (ret)
2155 return ret; 2133 return ret;