drm/cirrus: kick out conflicting framebuffers earlier
It appears that grub2 will pass framebuffer info via EFI, this causes the vram reserve to fail, so kick out efifb earlier before cirrus loads. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=826983 Signed-off-by: Dave Airlie <airlied@redhat.com>
这个提交包含在:
@@ -35,9 +35,28 @@ static DEFINE_PCI_DEVICE_TABLE(pciidlist) = {
|
||||
{0,}
|
||||
};
|
||||
|
||||
|
||||
static void cirrus_kick_out_firmware_fb(struct pci_dev *pdev)
|
||||
{
|
||||
struct apertures_struct *ap;
|
||||
bool primary = false;
|
||||
|
||||
ap = alloc_apertures(1);
|
||||
ap->ranges[0].base = pci_resource_start(pdev, 0);
|
||||
ap->ranges[0].size = pci_resource_len(pdev, 0);
|
||||
|
||||
#ifdef CONFIG_X86
|
||||
primary = pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
|
||||
#endif
|
||||
remove_conflicting_framebuffers(ap, "cirrusdrmfb", primary);
|
||||
kfree(ap);
|
||||
}
|
||||
|
||||
static int __devinit
|
||||
cirrus_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
{
|
||||
cirrus_kick_out_firmware_fb(pdev);
|
||||
|
||||
return drm_get_pci_dev(pdev, ent, &driver);
|
||||
}
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户