video: tegra: host: Treat gk20a simulation regs normally
Lauri Peltonen [Tue, 7 Jan 2014 13:59:52 +0000 (15:59 +0200)]
We don't need to override all resources when simulation environment is
detected, rather, just include simulation resources as a normal resource
in the platform device. This is already how we do in the DTS.

Bug 1434573

Change-Id: Ia63b88031f510200c2aeb83d595b5e5670ad5c9e
Signed-off-by: Lauri Peltonen <lpeltonen@nvidia.com>
Reviewed-on: http://git-master/r/352757
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>

drivers/video/tegra/host/gk20a/gk20a.c
drivers/video/tegra/host/gk20a/gk20a.h
drivers/video/tegra/host/gk20a/platform_gk20a_tegra.c

index d3cd264..8e1c99e 100644 (file)
@@ -71,24 +71,6 @@ static struct resource gk20a_intr = {
        .flags = IORESOURCE_IRQ,
 };
 
-struct resource gk20a_resources_sim[] = {
-       {
-       .start = TEGRA_GK20A_BAR0_BASE,
-       .end   = TEGRA_GK20A_BAR0_BASE + TEGRA_GK20A_BAR0_SIZE - 1,
-       .flags = IORESOURCE_MEM,
-       },
-       {
-       .start = TEGRA_GK20A_BAR1_BASE,
-       .end   = TEGRA_GK20A_BAR1_BASE + TEGRA_GK20A_BAR1_SIZE - 1,
-       .flags = IORESOURCE_MEM,
-       },
-       {
-       .start = TEGRA_GK20A_SIM_BASE,
-       .end   = TEGRA_GK20A_SIM_BASE + TEGRA_GK20A_SIM_SIZE - 1,
-       .flags = IORESOURCE_MEM,
-       },
-};
-
 const struct file_operations tegra_gk20a_ctrl_ops = {
        .owner = THIS_MODULE,
        .release = gk20a_ctrl_dev_release,
@@ -1157,10 +1139,6 @@ static struct platform_driver gk20a_driver = {
 
 static int __init gk20a_init(void)
 {
-               if (tegra_cpu_is_asim()) {
-                       tegra_gk20a_device.resource = gk20a_resources_sim;
-                       tegra_gk20a_device.num_resources = 3;
-               }
        return platform_driver_register(&gk20a_driver);
 }
 
index 3c77cb4..8b2b860 100644 (file)
@@ -273,8 +273,6 @@ struct nvhost_hwctx_handler *nvhost_gk20a_alloc_hwctx_handler(u32 syncpt,
 #define GK20A_BAR0_IORESOURCE_MEM 0
 #define GK20A_BAR1_IORESOURCE_MEM 1
 #define GK20A_SIM_IORESOURCE_MEM 2
-#define TEGRA_GK20A_SIM_BASE 0x538F0000 /*tbd: get from iomap.h */
-#define TEGRA_GK20A_SIM_SIZE 0x1000     /*tbd: this is a high-side guess */
 
 void gk20a_busy(struct platform_device *pdev);
 void gk20a_idle(struct platform_device *pdev);
index 9db456f..28b91d5 100644 (file)
@@ -28,6 +28,9 @@
 
 #include "gk20a.h"
 
+#define TEGRA_GK20A_SIM_BASE 0x538F0000 /*tbd: get from iomap.h */
+#define TEGRA_GK20A_SIM_SIZE 0x1000     /*tbd: this is a high-side guess */
+
 static int gk20a_tegra_probe(struct platform_device *dev)
 {
        int err;
@@ -79,6 +82,11 @@ static struct resource gk20a_tegra_resources[] = {
        .end   = TEGRA_GK20A_BAR1_BASE + TEGRA_GK20A_BAR1_SIZE - 1,
        .flags = IORESOURCE_MEM,
        },
+       { /* Used on ASIM only */
+       .start = TEGRA_GK20A_SIM_BASE,
+       .end   = TEGRA_GK20A_SIM_BASE + TEGRA_GK20A_SIM_SIZE - 1,
+       .flags = IORESOURCE_MEM,
+       },
 };
 
 struct gk20a_platform gk20a_tegra_platform = {