Then maybe we need drm_aperture_remove_conflicting_pci_framebuffers()? e.g. --- a/drivers/gpu/drm/tiny/simpledrm.c +++ b/drivers/gpu/drm/tiny/simpledrm.c @@ -626,6 +626,8 @@ static struct drm_display_mode simpledrm_mode(unsigned int width, return mode; } +static struct drm_driver simpledrm_driver; + static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv, struct platform_device *pdev) { @@ -714,6 +716,11 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv, if (!res) return ERR_PTR(-EINVAL); + ret = drm_aperture_remove_conflicting_framebuffers(res->start, resource_size(res), + true, &simpledrm_driver); + if (ret) + return ERR_PTR(ret); + ret = devm_aperture_acquire_from_firmware(dev, res->start, resource_size(res)); if (ret) { drm_err(dev, "could not acquire memory range %pr: error %d\n", res, ret); ~