Lines Matching refs:rdev

46 static bool igp_read_bios_from_vram(struct radeon_device *rdev)
52 if (!(rdev->flags & RADEON_IS_IGP))
53 if (!radeon_card_posted(rdev))
56 rdev->bios = NULL;
57 vram_base = pci_resource_start(rdev->pdev, 0);
67 rdev->bios = kmalloc(size, GFP_KERNEL);
68 if (rdev->bios == NULL) {
72 memcpy_fromio(rdev->bios, bios, size);
77 static bool radeon_read_bios(struct radeon_device *rdev)
82 rdev->bios = NULL;
84 bios = pci_map_rom(rdev->pdev, &size);
90 pci_unmap_rom(rdev->pdev, bios);
93 rdev->bios = kmemdup(bios, size, GFP_KERNEL);
94 if (rdev->bios == NULL) {
95 pci_unmap_rom(rdev->pdev, bios);
98 pci_unmap_rom(rdev->pdev, bios);
102 static bool radeon_read_platform_bios(struct radeon_device *rdev)
107 rdev->bios = NULL;
109 bios = pci_platform_rom(rdev->pdev, &size);
117 rdev->bios = kmemdup(bios, size, GFP_KERNEL);
118 if (rdev->bios == NULL) {
173 static bool radeon_atrm_get_bios(struct radeon_device *rdev)
184 if (rdev->flags & RADEON_IS_IGP)
216 rdev->bios = kmalloc(size, GFP_KERNEL);
217 if (!rdev->bios) {
224 rdev->bios,
231 if (i == 0 || rdev->bios[0] != 0x55 || rdev->bios[1] != 0xaa) {
232 kfree(rdev->bios);
238 static inline bool radeon_atrm_get_bios(struct radeon_device *rdev)
244 static bool ni_read_disabled_bios(struct radeon_device *rdev)
261 if (!ASIC_IS_NODCE(rdev)) {
274 r = radeon_read_bios(rdev);
278 if (!ASIC_IS_NODCE(rdev)) {
287 static bool r700_read_disabled_bios(struct radeon_device *rdev)
320 if (rdev->family == CHIP_RV730) {
336 r = radeon_read_bios(rdev);
339 if (rdev->family == CHIP_RV730) {
356 static bool r600_read_disabled_bios(struct radeon_device *rdev)
415 r = radeon_read_bios(rdev);
433 static bool avivo_read_disabled_bios(struct radeon_device *rdev)
479 r = radeon_read_bios(rdev);
494 static bool legacy_read_disabled_bios(struct radeon_device *rdev)
507 if (rdev->flags & RADEON_IS_PCIE)
516 if (rdev->ddev->pdev->device == PCI_DEVICE_ID_ATI_RADEON_QY) {
520 if (!(rdev->flags & RADEON_SINGLE_CRTC)) {
532 if (rdev->flags & RADEON_IS_PCIE)
542 if (!(rdev->flags & RADEON_SINGLE_CRTC)) {
553 if (rdev->ddev->pdev->device == PCI_DEVICE_ID_ATI_RADEON_QY) {
557 r = radeon_read_bios(rdev);
562 if (rdev->flags & RADEON_IS_PCIE)
567 if (!(rdev->flags & RADEON_SINGLE_CRTC)) {
571 if (rdev->ddev->pdev->device == PCI_DEVICE_ID_ATI_RADEON_QY) {
577 static bool radeon_read_disabled_bios(struct radeon_device *rdev)
579 if (rdev->flags & RADEON_IS_IGP)
580 return igp_read_bios_from_vram(rdev);
581 else if (rdev->family >= CHIP_BARTS)
582 return ni_read_disabled_bios(rdev);
583 else if (rdev->family >= CHIP_RV770)
584 return r700_read_disabled_bios(rdev);
585 else if (rdev->family >= CHIP_R600)
586 return r600_read_disabled_bios(rdev);
587 else if (rdev->family >= CHIP_RS600)
588 return avivo_read_disabled_bios(rdev);
590 return legacy_read_disabled_bios(rdev);
594 static bool radeon_acpi_vfct_bios(struct radeon_device *rdev)
622 if (vhdr->PCIBus != rdev->pdev->bus->number ||
623 vhdr->PCIDevice != PCI_SLOT(rdev->pdev->devfn) ||
624 vhdr->PCIFunction != PCI_FUNC(rdev->pdev->devfn) ||
625 vhdr->VendorID != rdev->pdev->vendor ||
626 vhdr->DeviceID != rdev->pdev->device) {
636 rdev->bios = kmemdup(&vbios->VbiosContent, vhdr->ImageLength, GFP_KERNEL);
637 ret = !!rdev->bios;
643 static inline bool radeon_acpi_vfct_bios(struct radeon_device *rdev)
649 bool radeon_get_bios(struct radeon_device *rdev)
654 r = radeon_atrm_get_bios(rdev);
656 r = radeon_acpi_vfct_bios(rdev);
658 r = igp_read_bios_from_vram(rdev);
660 r = radeon_read_bios(rdev);
662 r = radeon_read_disabled_bios(rdev);
664 r = radeon_read_platform_bios(rdev);
665 if (r == false || rdev->bios == NULL) {
667 rdev->bios = NULL;
670 if (rdev->bios[0] != 0x55 || rdev->bios[1] != 0xaa) {
671 printk("BIOS signature incorrect %x %x\n", rdev->bios[0], rdev->bios[1]);
681 rdev->bios_header_start = RBIOS16(0x48);
682 if (!rdev->bios_header_start) {
685 tmp = rdev->bios_header_start + 4;
686 if (!memcmp(rdev->bios + tmp, "ATOM", 4) ||
687 !memcmp(rdev->bios + tmp, "MOTA", 4)) {
688 rdev->is_atom_bios = true;
690 rdev->is_atom_bios = false;
693 DRM_DEBUG("%sBIOS detected\n", rdev->is_atom_bios ? "ATOM" : "COM");
696 kfree(rdev->bios);
697 rdev->bios = NULL;