drivers/gpu/drm/openchrome/openchrome_drv.c |   16 +++++++++++-
 drivers/gpu/drm/openchrome/openchrome_drv.h |    8 +++---
 drivers/gpu/drm/openchrome/openchrome_fb.c  |   37 +++++++++++++++++++++++++++-
 drivers/gpu/drm/openchrome/openchrome_ttm.c |   15 -----------
 4 files changed, 56 insertions(+), 20 deletions(-)

New commits:
commit fc6b318ed29de6c3361ca286014b54734bac71df
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Fri Oct 12 12:59:28 2018 -0700

    drm/openchrome: Version bumped to 3.0.88
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.h 
b/drivers/gpu/drm/openchrome/openchrome_drv.h
index b5a7e1c99cfb..312f659efb63 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.h
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.h
@@ -31,11 +31,11 @@
 #define DRIVER_AUTHOR          "OpenChrome Project"
 #define DRIVER_NAME            "openchrome"
 #define DRIVER_DESC            "OpenChrome DRM for VIA Technologies Chrome IGP"
-#define DRIVER_DATE            "20181011"
+#define DRIVER_DATE            "20181012"
 
 #define DRIVER_MAJOR           3
 #define DRIVER_MINOR           0
-#define DRIVER_PATCHLEVEL      87
+#define DRIVER_PATCHLEVEL      88
 #include <linux/module.h>
 
 #include "ttm/ttm_bo_api.h"
commit e7297defa29aabe360208400407e636e2617195c
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Fri Oct 12 12:55:29 2018 -0700

    drm/openchrome: Change how VRAM is mapped and unmapped
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.c 
b/drivers/gpu/drm/openchrome/openchrome_drv.c
index df6fbe355420..505e546d7375 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.c
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.c
@@ -447,6 +447,15 @@ static int via_device_init(struct via_device *dev_priv)
                goto exit;
        }
 
+       /*
+        * Map VRAM.
+        */
+       ret = openchrome_vram_init(dev_priv);
+       if (ret) {
+               DRM_ERROR("Failed to initialize video RAM.\n");
+               goto exit;
+       }
+
        ret = openchrome_mmio_init(dev_priv);
        if (ret) {
                DRM_ERROR("Failed to initialize MMIO.\n");
@@ -499,6 +508,11 @@ static void via_driver_unload(struct drm_device *dev)
 
        via_mm_fini(dev);
 
+       /*
+        * Unmap VRAM.
+        */
+       openchrome_vram_fini(dev_priv);
+
        openchrome_mmio_fini(dev_priv);
 
 #if IS_ENABLED(CONFIG_AGP)
diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.h 
b/drivers/gpu/drm/openchrome/openchrome_drv.h
index d7622876e64e..b5a7e1c99cfb 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.h
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.h
@@ -330,6 +330,8 @@ extern int via_wait_irq(struct drm_device *dev, void *data,
 extern int via_wait_idle(struct via_device *dev_priv);
 
 extern int via_vram_detect(struct via_device *dev_priv);
+extern int openchrome_vram_init(struct via_device *dev_priv);
+extern void openchrome_vram_fini(struct via_device *dev_priv);
 
 extern int via_enable_vblank(struct drm_crtc *crtc);
 extern void via_disable_vblank(struct drm_crtc *crtc);
diff --git a/drivers/gpu/drm/openchrome/openchrome_fb.c 
b/drivers/gpu/drm/openchrome/openchrome_fb.c
index 9a6382eb7002..18e4a3bcf202 100644
--- a/drivers/gpu/drm/openchrome/openchrome_fb.c
+++ b/drivers/gpu/drm/openchrome/openchrome_fb.c
@@ -911,6 +911,41 @@ out_err:
        return ret;
 }
 
+int openchrome_vram_init(struct via_device *dev_priv)
+{
+       int ret = 0;
+
+       DRM_DEBUG_KMS("Entered %s.\n", __func__);
+
+       /* Add an MTRR for the video RAM. */
+       dev_priv->vram_mtrr = arch_phys_wc_add(dev_priv->vram_start,
+                                               dev_priv->vram_size);
+
+       DRM_INFO("VIA Technologies Chrome IGP VRAM "
+                       "Physical Address: 0x%08llx\n",
+                       dev_priv->vram_start);
+       DRM_INFO("VIA Technologies Chrome IGP VRAM "
+                       "Size: %llu\n",
+                       (unsigned long long) dev_priv->vram_size >> 20);
+
+       DRM_DEBUG_KMS("Exiting %s.\n", __func__);
+       return ret;
+}
+
+void openchrome_vram_fini(struct via_device *dev_priv)
+{
+       DRM_DEBUG_KMS("Entered %s.\n", __func__);
+
+       if (dev_priv->vram_mtrr) {
+               arch_phys_wc_del(dev_priv->vram_mtrr);
+               arch_io_free_memtype_wc(dev_priv->vram_start,
+                                       dev_priv->vram_size);
+               dev_priv->vram_mtrr = 0;
+       }
+
+       DRM_DEBUG_KMS("Exiting %s.\n", __func__);
+}
+
 static int
 via_user_framebuffer_create_handle(struct drm_framebuffer *fb,
                                        struct drm_file *file_priv,
diff --git a/drivers/gpu/drm/openchrome/openchrome_ttm.c 
b/drivers/gpu/drm/openchrome/openchrome_ttm.c
index 29ccfd9e1ff0..b9d449a99e32 100644
--- a/drivers/gpu/drm/openchrome/openchrome_ttm.c
+++ b/drivers/gpu/drm/openchrome/openchrome_ttm.c
@@ -612,14 +612,6 @@ int via_mm_init(struct via_device *dev_priv)
                goto exit;
        }
 
-       /* Add an MTRR for the video RAM. */
-       dev_priv->vram_mtrr = arch_phys_wc_add(dev_priv->vram_start,
-                                               dev_priv->vram_size);
-
-       DRM_INFO("Mapped %llu MB of video RAM at physical "
-               "address 0x%08llx.\n",
-               (unsigned long long) dev_priv->vram_size >> 20,
-               dev_priv->vram_start);
 exit:
        DRM_DEBUG_KMS("Exiting %s.\n", __func__);
        return ret;
@@ -637,13 +629,6 @@ void via_mm_fini(struct drm_device *dev)
                                &dev_priv->ttm.bo_global_ref,
                                &dev_priv->ttm.bdev);
 
-       /* mtrr delete the vram */
-       if (dev_priv->vram_mtrr >= 0) {
-               arch_phys_wc_del(dev_priv->vram_mtrr);
-       }
-
-       dev_priv->vram_mtrr = 0;
-
        DRM_DEBUG_KMS("Exiting %s.\n", __func__);
 }
 
commit 12b07c52087e59fdcb90a408ed910160a1de45c4
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Fri Oct 12 12:45:09 2018 -0700

    drm/openchrome: Rename via_vram_init to via_vram_detect
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.c 
b/drivers/gpu/drm/openchrome/openchrome_drv.c
index d5899ed20506..df6fbe355420 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.c
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.c
@@ -441,9 +441,9 @@ static int via_device_init(struct via_device *dev_priv)
 
        openchrome_flag_init(dev_priv);
 
-       ret = via_vram_init(dev_priv);
+       ret = via_vram_detect(dev_priv);
        if (ret) {
-               DRM_ERROR("Failed to initialize video RAM.\n");
+               DRM_ERROR("Failed to detect video RAM.\n");
                goto exit;
        }
 
diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.h 
b/drivers/gpu/drm/openchrome/openchrome_drv.h
index 5bde11a83947..d7622876e64e 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.h
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.h
@@ -329,7 +329,7 @@ extern int via_wait_irq(struct drm_device *dev, void *data,
                        struct drm_file *file_priv);
 extern int via_wait_idle(struct via_device *dev_priv);
 
-extern int via_vram_init(struct via_device *dev_priv);
+extern int via_vram_detect(struct via_device *dev_priv);
 
 extern int via_enable_vblank(struct drm_crtc *crtc);
 extern void via_disable_vblank(struct drm_crtc *crtc);
diff --git a/drivers/gpu/drm/openchrome/openchrome_fb.c 
b/drivers/gpu/drm/openchrome/openchrome_fb.c
index ca122c71535f..9a6382eb7002 100644
--- a/drivers/gpu/drm/openchrome/openchrome_fb.c
+++ b/drivers/gpu/drm/openchrome/openchrome_fb.c
@@ -688,7 +688,7 @@ vx900_mem_type(struct via_device *dev_priv, struct pci_dev 
*fn3)
        return ret;
 }
 
-int via_vram_init(struct via_device *dev_priv)
+int via_vram_detect(struct via_device *dev_priv)
 {
        struct drm_device *dev = dev_priv->dev;
        struct pci_dev *bridge = NULL;
_______________________________________________
openchrome-devel mailing list
openchrome-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/openchrome-devel

Reply via email to