diff mbox series

drm/gma500: Remove generic DRM drivers in probe function

Message ID 20211019080942.24356-1-tzimmermann@suse.de (mailing list archive)
State New, archived
Headers show
Series drm/gma500: Remove generic DRM drivers in probe function | expand

Commit Message

Thomas Zimmermann Oct. 19, 2021, 8:09 a.m. UTC
Gma500 currently removes generic fbdev drivers, but ignores
generic DRM drivers. Use aperture helpers to remove all generic
graphics drivers before loading gma500. Makes gma500 compatible
with simpledrm.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 drivers/gpu/drm/gma500/psb_drv.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)


base-commit: 762b53b56af425f89f892e99583dfd84c73d731c
--
2.33.0

Comments

Daniel Vetter Oct. 19, 2021, 12:26 p.m. UTC | #1
On Tue, Oct 19, 2021 at 10:09:42AM +0200, Thomas Zimmermann wrote:
> Gma500 currently removes generic fbdev drivers, but ignores
> generic DRM drivers. Use aperture helpers to remove all generic
> graphics drivers before loading gma500. Makes gma500 compatible
> with simpledrm.
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  drivers/gpu/drm/gma500/psb_drv.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
> index 7a10bb39ef0b..7ea82d7ddfcc 100644
> --- a/drivers/gpu/drm/gma500/psb_drv.c
> +++ b/drivers/gpu/drm/gma500/psb_drv.c
> @@ -19,6 +19,7 @@
>  #include <acpi/video.h>
> 
>  #include <drm/drm.h>
> +#include <drm/drm_aperture.h>
>  #include <drm/drm_drv.h>
>  #include <drm/drm_fb_helper.h>
>  #include <drm/drm_file.h>
> @@ -448,6 +449,17 @@ static int psb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  	struct drm_device *dev;
>  	int ret;
> 
> +	/*
> +	 * We cannot yet easily find the framebuffer's location in memory. So
> +	 * remove all framebuffers here.
> +	 *
> +	 * 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(true, &driver);
> +	if (ret)
> +		return ret;
> +
>  	ret = pcim_enable_device(pdev);
>  	if (ret)
>  		return ret;
> 
> base-commit: 762b53b56af425f89f892e99583dfd84c73d731c
> --
> 2.33.0
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
index 7a10bb39ef0b..7ea82d7ddfcc 100644
--- a/drivers/gpu/drm/gma500/psb_drv.c
+++ b/drivers/gpu/drm/gma500/psb_drv.c
@@ -19,6 +19,7 @@ 
 #include <acpi/video.h>

 #include <drm/drm.h>
+#include <drm/drm_aperture.h>
 #include <drm/drm_drv.h>
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_file.h>
@@ -448,6 +449,17 @@  static int psb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	struct drm_device *dev;
 	int ret;

+	/*
+	 * We cannot yet easily find the framebuffer's location in memory. So
+	 * remove all framebuffers here.
+	 *
+	 * 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(true, &driver);
+	if (ret)
+		return ret;
+
 	ret = pcim_enable_device(pdev);
 	if (ret)
 		return ret;