Lines Matching refs:adev

44 static bool igp_read_bios_from_vram(struct amdgpu_device *adev)  in igp_read_bios_from_vram()  argument
50 if (!(adev->flags & AMD_IS_APU)) in igp_read_bios_from_vram()
51 if (!amdgpu_card_posted(adev)) in igp_read_bios_from_vram()
54 adev->bios = NULL; in igp_read_bios_from_vram()
55 vram_base = pci_resource_start(adev->pdev, 0); in igp_read_bios_from_vram()
65 adev->bios = kmalloc(size, GFP_KERNEL); in igp_read_bios_from_vram()
66 if (adev->bios == NULL) { in igp_read_bios_from_vram()
70 memcpy_fromio(adev->bios, bios, size); in igp_read_bios_from_vram()
75 bool amdgpu_read_bios(struct amdgpu_device *adev) in amdgpu_read_bios() argument
80 adev->bios = NULL; in amdgpu_read_bios()
82 bios = pci_map_rom(adev->pdev, &size); in amdgpu_read_bios()
91 pci_unmap_rom(adev->pdev, bios); in amdgpu_read_bios()
94 adev->bios = kzalloc(size, GFP_KERNEL); in amdgpu_read_bios()
95 if (adev->bios == NULL) { in amdgpu_read_bios()
96 pci_unmap_rom(adev->pdev, bios); in amdgpu_read_bios()
99 memcpy_fromio(adev->bios, bios, size); in amdgpu_read_bios()
100 pci_unmap_rom(adev->pdev, bios); in amdgpu_read_bios()
104 static bool amdgpu_read_platform_bios(struct amdgpu_device *adev) in amdgpu_read_platform_bios() argument
109 adev->bios = NULL; in amdgpu_read_platform_bios()
111 bios = pci_platform_rom(adev->pdev, &size); in amdgpu_read_platform_bios()
119 adev->bios = kmemdup(bios, size, GFP_KERNEL); in amdgpu_read_platform_bios()
120 if (adev->bios == NULL) { in amdgpu_read_platform_bios()
175 static bool amdgpu_atrm_get_bios(struct amdgpu_device *adev) in amdgpu_atrm_get_bios() argument
186 if (adev->flags & AMD_IS_APU) in amdgpu_atrm_get_bios()
218 adev->bios = kmalloc(size, GFP_KERNEL); in amdgpu_atrm_get_bios()
219 if (!adev->bios) { in amdgpu_atrm_get_bios()
226 adev->bios, in amdgpu_atrm_get_bios()
233 if (i == 0 || adev->bios[0] != 0x55 || adev->bios[1] != 0xaa) { in amdgpu_atrm_get_bios()
234 kfree(adev->bios); in amdgpu_atrm_get_bios()
240 static inline bool amdgpu_atrm_get_bios(struct amdgpu_device *adev) in amdgpu_atrm_get_bios() argument
246 static bool amdgpu_read_disabled_bios(struct amdgpu_device *adev) in amdgpu_read_disabled_bios() argument
248 if (adev->flags & AMD_IS_APU) in amdgpu_read_disabled_bios()
249 return igp_read_bios_from_vram(adev); in amdgpu_read_disabled_bios()
251 return amdgpu_asic_read_disabled_bios(adev); in amdgpu_read_disabled_bios()
255 static bool amdgpu_acpi_vfct_bios(struct amdgpu_device *adev) in amdgpu_acpi_vfct_bios() argument
283 if (vhdr->PCIBus != adev->pdev->bus->number || in amdgpu_acpi_vfct_bios()
284 vhdr->PCIDevice != PCI_SLOT(adev->pdev->devfn) || in amdgpu_acpi_vfct_bios()
285 vhdr->PCIFunction != PCI_FUNC(adev->pdev->devfn) || in amdgpu_acpi_vfct_bios()
286 vhdr->VendorID != adev->pdev->vendor || in amdgpu_acpi_vfct_bios()
287 vhdr->DeviceID != adev->pdev->device) { in amdgpu_acpi_vfct_bios()
297 adev->bios = kmemdup(&vbios->VbiosContent, vhdr->ImageLength, GFP_KERNEL); in amdgpu_acpi_vfct_bios()
298 ret = !!adev->bios; in amdgpu_acpi_vfct_bios()
304 static inline bool amdgpu_acpi_vfct_bios(struct amdgpu_device *adev) in amdgpu_acpi_vfct_bios() argument
310 bool amdgpu_get_bios(struct amdgpu_device *adev) in amdgpu_get_bios() argument
315 r = amdgpu_atrm_get_bios(adev); in amdgpu_get_bios()
317 r = amdgpu_acpi_vfct_bios(adev); in amdgpu_get_bios()
319 r = igp_read_bios_from_vram(adev); in amdgpu_get_bios()
321 r = amdgpu_read_bios(adev); in amdgpu_get_bios()
323 r = amdgpu_read_disabled_bios(adev); in amdgpu_get_bios()
326 r = amdgpu_read_platform_bios(adev); in amdgpu_get_bios()
328 if (r == false || adev->bios == NULL) { in amdgpu_get_bios()
330 adev->bios = NULL; in amdgpu_get_bios()
333 if (adev->bios[0] != 0x55 || adev->bios[1] != 0xaa) { in amdgpu_get_bios()
334 printk("BIOS signature incorrect %x %x\n", adev->bios[0], adev->bios[1]); in amdgpu_get_bios()
344 adev->bios_header_start = RBIOS16(0x48); in amdgpu_get_bios()
345 if (!adev->bios_header_start) { in amdgpu_get_bios()
348 tmp = adev->bios_header_start + 4; in amdgpu_get_bios()
349 if (!memcmp(adev->bios + tmp, "ATOM", 4) || in amdgpu_get_bios()
350 !memcmp(adev->bios + tmp, "MOTA", 4)) { in amdgpu_get_bios()
351 adev->is_atom_bios = true; in amdgpu_get_bios()
353 adev->is_atom_bios = false; in amdgpu_get_bios()
356 DRM_DEBUG("%sBIOS detected\n", adev->is_atom_bios ? "ATOM" : "COM"); in amdgpu_get_bios()
359 kfree(adev->bios); in amdgpu_get_bios()
360 adev->bios = NULL; in amdgpu_get_bios()