Rev 1129 | Rev 1221 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1129 | Rev 1179 | ||
---|---|---|---|
Line 33... | Line 33... | ||
33 | /* |
33 | /* |
34 | * BIOS. |
34 | * BIOS. |
35 | */ |
35 | */ |
36 | static bool radeon_read_bios(struct radeon_device *rdev) |
36 | static bool radeon_read_bios(struct radeon_device *rdev) |
37 | { |
37 | { |
38 | uint8_t *bios; |
38 | uint8_t __iomem *bios; |
39 | size_t size; |
39 | size_t size; |
Line 40... | Line 40... | ||
40 | 40 | ||
41 | rdev->bios = NULL; |
41 | rdev->bios = NULL; |
42 | bios = (uint8_t*)pci_map_rom(rdev->pdev, &size); |
42 | bios = (uint8_t*)pci_map_rom(rdev->pdev, &size); |
Line 46... | Line 46... | ||
46 | 46 | ||
47 | if (size == 0 || bios[0] != 0x55 || bios[1] != 0xaa) { |
47 | if (size == 0 || bios[0] != 0x55 || bios[1] != 0xaa) { |
48 | // pci_unmap_rom(rdev->pdev, bios); |
48 | // pci_unmap_rom(rdev->pdev, bios); |
49 | return false; |
49 | return false; |
50 | } |
50 | } |
51 | rdev->bios = malloc(size); |
51 | rdev->bios = kmalloc(size, GFP_KERNEL); |
52 | if (rdev->bios == NULL) { |
52 | if (rdev->bios == NULL) { |
53 | // pci_unmap_rom(rdev->pdev, bios); |
53 | // pci_unmap_rom(rdev->pdev, bios); |
54 | return false; |
54 | return false; |
55 | } |
55 | } |
56 | memcpy(rdev->bios, bios, size); |
56 | memcpy(rdev->bios, bios, size); |
57 | // pci_unmap_rom(rdev->pdev, bios); |
57 | // pci_unmap_rom(rdev->pdev, bios); |
58 | return true; |
58 | return true; |
Line 59... | Line -... | ||
59 | } |
- | |
60 | 59 | } |
|
61 | 60 | ||
62 | static bool r700_read_disabled_bios(struct radeon_device *rdev) |
61 | static bool r700_read_disabled_bios(struct radeon_device *rdev) |
63 | { |
62 | { |
64 | uint32_t viph_control; |
63 | uint32_t viph_control; |
Line 350... | Line 349... | ||
350 | return avivo_read_disabled_bios(rdev); |
349 | return avivo_read_disabled_bios(rdev); |
351 | else |
350 | else |
352 | return legacy_read_disabled_bios(rdev); |
351 | return legacy_read_disabled_bios(rdev); |
353 | } |
352 | } |
Line 354... | Line -... | ||
354 | - | ||
355 | 353 | ||
356 | bool radeon_get_bios(struct radeon_device *rdev) |
354 | bool radeon_get_bios(struct radeon_device *rdev) |
357 | { |
355 | { |
358 | bool r; |
356 | bool r; |
Line 359... | Line -... | ||
359 | uint16_t tmp; |
- | |
360 | - | ||
361 | dbgprintf("%s\n\r",__FUNCTION__); |
357 | uint16_t tmp; |
362 | 358 | ||
363 | r = radeon_read_bios(rdev); |
359 | r = radeon_read_bios(rdev); |
364 | if (r == false) { |
360 | if (r == false) { |
365 | r = radeon_read_disabled_bios(rdev); |
361 | r = radeon_read_disabled_bios(rdev); |
Line 383... | Line 379... | ||
383 | rdev->is_atom_bios = true; |
379 | rdev->is_atom_bios = true; |
384 | } else { |
380 | } else { |
385 | rdev->is_atom_bios = false; |
381 | rdev->is_atom_bios = false; |
386 | } |
382 | } |
Line 387... | Line 383... | ||
387 | 383 | ||
388 | dbgprintf("%sBIOS detected\n", rdev->is_atom_bios ? "ATOM" : "COM"); |
384 | DRM_DEBUG("%sBIOS detected\n", rdev->is_atom_bios ? "ATOM" : "COM"); |
389 | return true; |
385 | return true; |
390 | free_bios: |
386 | free_bios: |
391 | kfree(rdev->bios); |
387 | kfree(rdev->bios); |
392 | rdev->bios = NULL; |
388 | rdev->bios = NULL; |