diff options
-rw-r--r-- | arch/arm/mach-tegra/board-ventana-panel.c | 24 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ventana.c | 17 |
2 files changed, 35 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/board-ventana-panel.c b/arch/arm/mach-tegra/board-ventana-panel.c index e100af193fa1..9c0637ed2886 100644 --- a/arch/arm/mach-tegra/board-ventana-panel.c +++ b/arch/arm/mach-tegra/board-ventana-panel.c @@ -35,6 +35,8 @@ #include "devices.h" #include "gpio-names.h" +#include "board.h" + #define ventana_pnl_pwr_enb TEGRA_GPIO_PC6 #define ventana_bl_enb TEGRA_GPIO_PD4 #define ventana_lvds_shutdown TEGRA_GPIO_PB2 @@ -155,8 +157,6 @@ static struct resource ventana_disp1_resources[] = { }, { .name = "fbmem", - .start = 0x18012000, - .end = 0x18414000 - 1, /* enough for 1080P 16bpp */ .flags = IORESOURCE_MEM, }, }; @@ -177,8 +177,6 @@ static struct resource ventana_disp2_resources[] = { { .name = "fbmem", .flags = IORESOURCE_MEM, - .start = 0x18414000, - .end = 0x18BFD000 - 1, }, { .name = "hdmi_regs", @@ -288,8 +286,6 @@ static struct nvmap_platform_carveout ventana_carveouts[] = { [1] = { .name = "generic-0", .usage_mask = NVMAP_HEAP_CARVEOUT_GENERIC, - .base = 0x18C00000, - .size = SZ_128M - 0xC00000, .buddy_size = SZ_32K, }, }; @@ -336,6 +332,8 @@ static void ventana_panel_late_resume(struct early_suspend *h) int __init ventana_panel_init(void) { int err; + struct resource *res; + gpio_request(ventana_pnl_pwr_enb, "pnl_pwr_enb"); gpio_direction_output(ventana_pnl_pwr_enb, 1); tegra_gpio_enable(ventana_pnl_pwr_enb); @@ -359,9 +357,23 @@ int __init ventana_panel_init(void) register_early_suspend(&ventana_panel_early_suspender); #endif + ventana_carveouts[1].base = tegra_carveout_start; + ventana_carveouts[1].size = tegra_carveout_size; + err = platform_add_devices(ventana_gfx_devices, ARRAY_SIZE(ventana_gfx_devices)); + + res = nvhost_get_resource_byname(&ventana_disp1_device, + IORESOURCE_MEM, "fbmem"); + res->start = tegra_fb_start; + res->end = tegra_fb_start + tegra_fb_size - 1; + + res = nvhost_get_resource_byname(&ventana_disp2_device, + IORESOURCE_MEM, "fbmem"); + res->start = tegra_fb2_start; + res->end = tegra_fb2_start + tegra_fb2_size - 1; + if (!err) err = nvhost_device_register(&ventana_disp1_device); diff --git a/arch/arm/mach-tegra/board-ventana.c b/arch/arm/mach-tegra/board-ventana.c index 351f192e6e3a..281883145dd0 100644 --- a/arch/arm/mach-tegra/board-ventana.c +++ b/arch/arm/mach-tegra/board-ventana.c @@ -35,6 +35,7 @@ #include <linux/tegra_usb.h> #include <linux/usb/android_composite.h> #include <linux/mfd/tps6586x.h> +#include <linux/memblock.h> #ifdef CONFIG_TOUCHSCREEN_PANJIT_I2C #include <linux/i2c/panjit_ts.h> @@ -719,6 +720,21 @@ static void __init tegra_ventana_init(void) ventana_emc_init(); } +int __init tegra_ventana_protected_aperture_init(void) +{ + tegra_protected_aperture_init(tegra_grhost_aperture); + return 0; +} +late_initcall(tegra_ventana_protected_aperture_init); + +void __init tegra_ventana_reserve(void) +{ + if (memblock_reserve(0x0, 4096) < 0) + pr_warn("Cannot reserve first 4K of memory for safety\n"); + + tegra_reserve(SZ_256M, SZ_8M, SZ_16M); +} + MACHINE_START(VENTANA, "ventana") .boot_params = 0x00000100, .phys_io = IO_APB_PHYS, @@ -726,5 +742,6 @@ MACHINE_START(VENTANA, "ventana") .init_irq = tegra_init_irq, .init_machine = tegra_ventana_init, .map_io = tegra_map_common_io, + .reserve = tegra_ventana_reserve, .timer = &tegra_timer, MACHINE_END |