drivers/gpu/drm/via/via_drv.c |   32 +++++---------------------------
 drivers/gpu/drm/via/via_drv.h |    2 +-
 drivers/gpu/drm/via/via_ttm.c |   31 +++++++++++++++++++++++++++++--
 3 files changed, 35 insertions(+), 30 deletions(-)

New commits:
commit 564119fc1c18918135668854b6ba42542a890927
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Mon Jan 23 20:25:09 2017 -0600

    Version bumped to 3.0.19
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h
index 2c8f0ac..ff27c21 100644
--- a/drivers/gpu/drm/via/via_drv.h
+++ b/drivers/gpu/drm/via/via_drv.h
@@ -34,7 +34,7 @@
 
 #define DRIVER_MAJOR           3
 #define DRIVER_MINOR           0
-#define DRIVER_PATCHLEVEL      18
+#define DRIVER_PATCHLEVEL      19
 
 #include <linux/module.h>
 
commit af3cbf673e1f0c417b4cdf0fd91de8da0ec99a25
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Mon Jan 23 20:22:29 2017 -0600

    Moving MMIO memory mapping code to via_mm_init
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/drivers/gpu/drm/via/via_drv.c b/drivers/gpu/drm/via/via_drv.c
index e9f8fb5..5f4a7a51 100644
--- a/drivers/gpu/drm/via/via_drv.c
+++ b/drivers/gpu/drm/via/via_drv.c
@@ -121,15 +121,14 @@ static void via_agp_engine_init(struct via_device 
*dev_priv)
 }
 #endif
 
-static int
+static void
 via_mmio_setup(struct drm_device *dev)
 {
-       struct via_device *dev_priv = dev->dev_private;
-       int ret, len = pci_resource_len(dev->pdev, 1);
        void __iomem *regs = ioport_map(0x3c0, 100);
-       struct ttm_buffer_object *bo;
        u8 val;
 
+       DRM_INFO("Entered via_mmio_setup.\n");
+
        val = ioread8(regs + 0x03);
        iowrite8(val | 0x1, regs + 0x03);
        val = ioread8(regs + 0x0C);
@@ -146,24 +145,7 @@ via_mmio_setup(struct drm_device *dev)
        val = ioread8(regs + 0x05);
        iowrite8(val | 0x38, regs + 0x05);
 
-       ret = ttm_bo_init_mm(&dev_priv->bdev, TTM_PL_PRIV0,
-                               len >> PAGE_SHIFT);
-       if (ret)
-               return ret;
-
-       ret = via_bo_create(&dev_priv->bdev, VIA_MMIO_REGSIZE, 
ttm_bo_type_kernel,
-                             TTM_PL_FLAG_PRIV0, 1, PAGE_SIZE, false, NULL, 
NULL, &bo);
-       if (ret)
-               goto err;
-
-       ret = via_bo_pin(bo, &dev_priv->mmio);
-err:
-       if (!ret)
-               DRM_INFO("Detected MMIO at physical address 0x%08llx.\n",
-                       (unsigned long long) pci_resource_start(dev->pdev, 1));
-       else
-               ttm_bo_clean_mm(&dev_priv->bdev, TTM_PL_PRIV0);
-       return ret;
+    DRM_INFO("Exiting via_mmio_setup.\n");
 }
 
 static void
@@ -343,11 +325,7 @@ via_driver_load(struct drm_device *dev, unsigned long 
chipset)
                goto init_error;
        }
 
-       ret = via_mmio_setup(dev);
-       if (ret) {
-               DRM_ERROR("Failed to map Chrome IGP MMIO region.\n");
-               goto init_error;
-       }
+       via_mmio_setup(dev);
 
        chip_revision_info(dev);
 
diff --git a/drivers/gpu/drm/via/via_ttm.c b/drivers/gpu/drm/via/via_ttm.c
index 8cd1f72..49df2af 100644
--- a/drivers/gpu/drm/via/via_ttm.c
+++ b/drivers/gpu/drm/via/via_ttm.c
@@ -556,8 +556,11 @@ static struct ttm_bo_driver via_bo_driver = {
 
 int via_mm_init(struct via_device *dev_priv)
 {
-    int ret;
     struct drm_device *dev = dev_priv->dev;
+    struct ttm_buffer_object *bo;
+    unsigned long long start;
+    int len;
+    int ret;
 
     DRM_DEBUG("Entered via_mm_init.\n");
 
@@ -586,12 +589,36 @@ int via_mm_init(struct via_device *dev_priv)
         goto exit;
     }
 
-    /* Add an MTRR for the VRAM. */
+    /* 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);
 
+    start = (unsigned long long) pci_resource_start(dev->pdev, 1);
+    len = pci_resource_len(dev->pdev, 1);
+    ret = ttm_bo_init_mm(&dev_priv->bdev, TTM_PL_PRIV0, len >> PAGE_SHIFT);
+    if (ret) {
+        DRM_ERROR("Failed to map MMIO: %d\n", ret);
+        goto exit;
+    }
+
+    ret = via_bo_create(&dev_priv->bdev, VIA_MMIO_REGSIZE, ttm_bo_type_kernel,
+                        TTM_PL_FLAG_PRIV0, 1, PAGE_SIZE, false, NULL, NULL, 
&bo);
+    if (ret) {
+        DRM_ERROR("Failed to create a buffer object for MMIO: %d\n", ret);
+        goto exit;
+    }
+
+    ret = via_bo_pin(bo, &dev_priv->mmio);
+    if (ret) {
+        DRM_ERROR("Failed to map a buffer object for MMIO: %d\n", ret);
+        ttm_bo_clean_mm(&dev_priv->bdev, TTM_PL_PRIV0);
+        goto exit;
+    }
+
+    DRM_INFO("Mapped MMIO at physical address 0x%08llx.\n",
+                start);
 exit:
     DRM_DEBUG("Exiting via_mm_init.\n");
        return ret;
_______________________________________________
Openchrome-devel mailing list
Openchrome-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/openchrome-devel

Reply via email to