Revert "drm/aperture: Remove primary argument"
This reverts commit 437e99f2a1
which is
commit 62aeaeaa1b267c5149abee6b45967a5df3feed58 upstream.
It breaks the Android ABI and can be brought back later in an abi-safe
way if needed.
Bug: 161946584
Change-Id: I04e3476f9417cb019108f2bbb3dd277691ca027d
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
parent
33b12f8e48
commit
6603cc468d
@ -290,7 +290,7 @@ static int hdlcd_drm_bind(struct device *dev)
|
||||
*/
|
||||
if (hdlcd_read(hdlcd, HDLCD_REG_COMMAND)) {
|
||||
hdlcd_write(hdlcd, HDLCD_REG_COMMAND, 0);
|
||||
drm_aperture_remove_framebuffers(&hdlcd_driver);
|
||||
drm_aperture_remove_framebuffers(false, &hdlcd_driver);
|
||||
}
|
||||
|
||||
drm_mode_config_reset(drm);
|
||||
|
@ -95,7 +95,7 @@ static int armada_drm_bind(struct device *dev)
|
||||
}
|
||||
|
||||
/* Remove early framebuffers */
|
||||
ret = drm_aperture_remove_framebuffers(&armada_drm_driver);
|
||||
ret = drm_aperture_remove_framebuffers(false, &armada_drm_driver);
|
||||
if (ret) {
|
||||
dev_err(dev, "[" DRM_NAME ":%s] can't kick out simple-fb: %d\n",
|
||||
__func__, ret);
|
||||
|
@ -32,13 +32,17 @@
|
||||
*
|
||||
* static int remove_conflicting_framebuffers(struct pci_dev *pdev)
|
||||
* {
|
||||
* bool primary = false;
|
||||
* resource_size_t base, size;
|
||||
* int ret;
|
||||
*
|
||||
* base = pci_resource_start(pdev, 0);
|
||||
* size = pci_resource_len(pdev, 0);
|
||||
* #ifdef CONFIG_X86
|
||||
* primary = pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
|
||||
* #endif
|
||||
*
|
||||
* return drm_aperture_remove_conflicting_framebuffers(base, size,
|
||||
* return drm_aperture_remove_conflicting_framebuffers(base, size, primary,
|
||||
* &example_driver);
|
||||
* }
|
||||
*
|
||||
@ -157,6 +161,7 @@ EXPORT_SYMBOL(devm_aperture_acquire_from_firmware);
|
||||
* drm_aperture_remove_conflicting_framebuffers - remove existing framebuffers in the given range
|
||||
* @base: the aperture's base address in physical memory
|
||||
* @size: aperture size in bytes
|
||||
* @primary: also kick vga16fb if present
|
||||
* @req_driver: requesting DRM driver
|
||||
*
|
||||
* This function removes graphics device drivers which use the memory range described by
|
||||
@ -166,9 +171,9 @@ EXPORT_SYMBOL(devm_aperture_acquire_from_firmware);
|
||||
* 0 on success, or a negative errno code otherwise
|
||||
*/
|
||||
int drm_aperture_remove_conflicting_framebuffers(resource_size_t base, resource_size_t size,
|
||||
const struct drm_driver *req_driver)
|
||||
bool primary, const struct drm_driver *req_driver)
|
||||
{
|
||||
return aperture_remove_conflicting_devices(base, size, false, req_driver->name);
|
||||
return aperture_remove_conflicting_devices(base, size, primary, req_driver->name);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_aperture_remove_conflicting_framebuffers);
|
||||
|
||||
|
@ -430,7 +430,7 @@ static int psb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
* TODO: Refactor psb_driver_load() to map vdc_reg earlier. Then we
|
||||
* might be able to read the framebuffer range from the device.
|
||||
*/
|
||||
ret = drm_aperture_remove_framebuffers(&driver);
|
||||
ret = drm_aperture_remove_framebuffers(false, &driver);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -75,6 +75,7 @@ static int hyperv_setup_vram(struct hyperv_drm_device *hv,
|
||||
|
||||
drm_aperture_remove_conflicting_framebuffers(screen_info.lfb_base,
|
||||
screen_info.lfb_size,
|
||||
false,
|
||||
&hyperv_driver);
|
||||
|
||||
hv->fb_size = (unsigned long)hv->mmio_megabytes * 1024 * 1024;
|
||||
|
@ -285,7 +285,7 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
|
||||
* Remove early framebuffers (ie. simplefb). The framebuffer can be
|
||||
* located anywhere in RAM
|
||||
*/
|
||||
ret = drm_aperture_remove_framebuffers(&meson_driver);
|
||||
ret = drm_aperture_remove_framebuffers(false, &meson_driver);
|
||||
if (ret)
|
||||
goto free_drm;
|
||||
|
||||
|
@ -157,7 +157,7 @@ struct drm_fb_helper *msm_fbdev_init(struct drm_device *dev)
|
||||
}
|
||||
|
||||
/* the fw fb could be anywhere in memory */
|
||||
ret = drm_aperture_remove_framebuffers(dev->driver);
|
||||
ret = drm_aperture_remove_framebuffers(false, dev->driver);
|
||||
if (ret)
|
||||
goto fini;
|
||||
|
||||
|
@ -140,7 +140,7 @@ static int rockchip_drm_bind(struct device *dev)
|
||||
int ret;
|
||||
|
||||
/* Remove existing drivers that may own the framebuffer memory. */
|
||||
ret = drm_aperture_remove_framebuffers(&rockchip_drm_driver);
|
||||
ret = drm_aperture_remove_framebuffers(false, &rockchip_drm_driver);
|
||||
if (ret) {
|
||||
DRM_DEV_ERROR(dev,
|
||||
"Failed to remove existing framebuffers - %d.\n",
|
||||
|
@ -185,7 +185,7 @@ static int stm_drm_platform_probe(struct platform_device *pdev)
|
||||
|
||||
DRM_DEBUG("%s\n", __func__);
|
||||
|
||||
ret = drm_aperture_remove_framebuffers(&drv_driver);
|
||||
ret = drm_aperture_remove_framebuffers(false, &drv_driver);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -98,7 +98,7 @@ static int sun4i_drv_bind(struct device *dev)
|
||||
goto unbind_all;
|
||||
|
||||
/* Remove early framebuffers (ie. simplefb) */
|
||||
ret = drm_aperture_remove_framebuffers(&sun4i_drv_driver);
|
||||
ret = drm_aperture_remove_framebuffers(false, &sun4i_drv_driver);
|
||||
if (ret)
|
||||
goto unbind_all;
|
||||
|
||||
|
@ -1252,7 +1252,7 @@ static int host1x_drm_probe(struct host1x_device *dev)
|
||||
|
||||
drm_mode_config_reset(drm);
|
||||
|
||||
err = drm_aperture_remove_framebuffers(&tegra_drm_driver);
|
||||
err = drm_aperture_remove_framebuffers(false, &tegra_drm_driver);
|
||||
if (err < 0)
|
||||
goto hub;
|
||||
|
||||
|
@ -351,7 +351,7 @@ static int vc4_drm_bind(struct device *dev)
|
||||
return -EPROBE_DEFER;
|
||||
}
|
||||
|
||||
ret = drm_aperture_remove_framebuffers(driver);
|
||||
ret = drm_aperture_remove_framebuffers(false, driver);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -13,13 +13,14 @@ int devm_aperture_acquire_from_firmware(struct drm_device *dev, resource_size_t
|
||||
resource_size_t size);
|
||||
|
||||
int drm_aperture_remove_conflicting_framebuffers(resource_size_t base, resource_size_t size,
|
||||
const struct drm_driver *req_driver);
|
||||
bool primary, const struct drm_driver *req_driver);
|
||||
|
||||
int drm_aperture_remove_conflicting_pci_framebuffers(struct pci_dev *pdev,
|
||||
const struct drm_driver *req_driver);
|
||||
|
||||
/**
|
||||
* drm_aperture_remove_framebuffers - remove all existing framebuffers
|
||||
* @primary: also kick vga16fb if present
|
||||
* @req_driver: requesting DRM driver
|
||||
*
|
||||
* This function removes all graphics device drivers. Use this function on systems
|
||||
@ -29,9 +30,9 @@ int drm_aperture_remove_conflicting_pci_framebuffers(struct pci_dev *pdev,
|
||||
* 0 on success, or a negative errno code otherwise
|
||||
*/
|
||||
static inline int
|
||||
drm_aperture_remove_framebuffers(const struct drm_driver *req_driver)
|
||||
drm_aperture_remove_framebuffers(bool primary, const struct drm_driver *req_driver)
|
||||
{
|
||||
return drm_aperture_remove_conflicting_framebuffers(0, (resource_size_t)-1,
|
||||
return drm_aperture_remove_conflicting_framebuffers(0, (resource_size_t)-1, primary,
|
||||
req_driver);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user