diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2011-10-06 10:55:04 +0300 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:49:26 -0800 |
commit | 753cdc02611cd5792dcee1b805b470aceae9f28d (patch) | |
tree | c015062fd187c3be3f41ee72990758c6daa6e6d1 /arch/arm/mach-tegra/board-cardhu-panel.c | |
parent | d229bde19ad403fb74c72ff8fb253f87c91cf714 (diff) |
arm: tegra: Make kernel buildable without nvhost
Cuts dependencies to nvhost by adding a Kconfig dependency from DC to
GRHOST and from HD Audio to DC. Configure out calls to nvhost in board
panel files if GRHOST is not present.
Bug 870898
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Change-Id: If7830528e321e951bcadc2a10515e6cab58a6cdf
Reviewed-on: http://git-master/r/56370
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: Antti Miettinen <amiettinen@nvidia.com>
Tested-by: Antti Miettinen <amiettinen@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Reviewed-by: Chris Dragan <kdragan@nvidia.com>
Rebase-Id: R16d9286d67235b0697c914476e7d6462eec7f3ac
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu-panel.c')
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu-panel.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-panel.c b/arch/arm/mach-tegra/board-cardhu-panel.c index 57076cbb7bae..1bea26d26411 100644 --- a/arch/arm/mach-tegra/board-cardhu-panel.c +++ b/arch/arm/mach-tegra/board-cardhu-panel.c @@ -56,9 +56,11 @@ #define cardhu_dsi_panel_reset TEGRA_GPIO_PD2 #endif +#ifdef CONFIG_TEGRA_DC static struct regulator *cardhu_hdmi_reg = NULL; static struct regulator *cardhu_hdmi_pll = NULL; static struct regulator *cardhu_hdmi_vddio = NULL; +#endif static atomic_t sd_brightness = ATOMIC_INIT(255); @@ -300,6 +302,7 @@ static int cardhu_panel_disable(void) } #endif +#ifdef CONFIG_TEGRA_DC static int cardhu_hdmi_vddio_enable(void) { int ret; @@ -377,6 +380,7 @@ static int cardhu_hdmi_disable(void) cardhu_hdmi_pll = NULL; return 0; } + static struct resource cardhu_disp1_resources[] = { { .name = "irq", @@ -439,6 +443,7 @@ static struct resource cardhu_disp2_resources[] = { .flags = IORESOURCE_MEM, }, }; +#endif #ifndef CONFIG_TEGRA_CARDHU_DSI static struct tegra_dc_mode cardhu_panel_modes[] = { @@ -567,6 +572,7 @@ static struct tegra_dc_sd_settings cardhu_sd_settings = { .bl_device = &cardhu_backlight_device, }; +#ifdef CONFIG_TEGRA_DC #ifndef CONFIG_TEGRA_CARDHU_DSI static struct tegra_fb_data cardhu_fb_data = { .win = 0, @@ -610,6 +616,7 @@ static struct tegra_dc_platform_data cardhu_disp2_pdata = { .fb = &cardhu_hdmi_fb_data, .emc_clk_rate = 300000000, }; +#endif #ifdef CONFIG_TEGRA_CARDHU_DSI static int cardhu_dsi_panel_enable(void) @@ -893,6 +900,8 @@ static struct tegra_dc_out cardhu_disp1_out = { .postsuspend = cardhu_dsi_panel_postsuspend, #endif }; + +#ifdef CONFIG_TEGRA_DC static struct tegra_dc_platform_data cardhu_disp1_pdata = { .flags = TEGRA_DC_FLAG_ENABLED, .default_out = &cardhu_disp1_out, @@ -903,6 +912,7 @@ static struct tegra_dc_platform_data cardhu_disp1_pdata = { .fb = &cardhu_dsi_fb_data, #endif }; + static struct nvhost_device cardhu_disp1_device = { .name = "tegradc", .id = 0, @@ -927,6 +937,12 @@ static struct nvhost_device cardhu_disp2_device = { .platform_data = &cardhu_disp2_pdata, }, }; +#else +static int cardhu_disp1_check_fb(struct device *dev, struct fb_info *info) +{ + return 0; +} +#endif static struct nvmap_platform_carveout cardhu_carveouts[] = { [0] = NVMAP_HEAP_CARVEOUT_IRAM_INIT, @@ -955,7 +971,9 @@ static struct platform_device cardhu_nvmap_device = { static struct platform_device *cardhu_gfx_devices[] __initdata = { &cardhu_nvmap_device, +#ifdef CONFIG_TEGRA_GRHOST &tegra_grhost_device, +#endif &tegra_pwfm0_device, &cardhu_backlight_device, }; @@ -964,7 +982,7 @@ static struct platform_device *cardhu_gfx_devices[] __initdata = { int __init cardhu_panel_init(void) { int err; - struct resource *res; + struct resource __maybe_unused *res; tegra_get_board_info(&board_info); @@ -998,15 +1016,18 @@ int __init cardhu_panel_init(void) err = platform_add_devices(cardhu_gfx_devices, ARRAY_SIZE(cardhu_gfx_devices)); +#if defined(CONFIG_TEGRA_GRHOST) && defined(CONFIG_TEGRA_DC) res = nvhost_get_resource_byname(&cardhu_disp1_device, IORESOURCE_MEM, "fbmem"); res->start = tegra_fb_start; res->end = tegra_fb_start + tegra_fb_size - 1; +#endif /* Copy the bootloader fb to the fb. */ tegra_move_framebuffer(tegra_fb_start, tegra_bootloader_fb_start, min(tegra_fb_size, tegra_bootloader_fb_size)); +#if defined(CONFIG_TEGRA_GRHOST) && defined(CONFIG_TEGRA_DC) if (!err) err = nvhost_device_register(&cardhu_disp1_device); @@ -1016,8 +1037,9 @@ int __init cardhu_panel_init(void) res->end = tegra_fb2_start + tegra_fb2_size - 1; if (!err) err = nvhost_device_register(&cardhu_disp2_device); +#endif -#if defined(CONFIG_TEGRA_NVAVP) +#if defined(CONFIG_TEGRA_GRHOST) && defined(CONFIG_TEGRA_NVAVP) if (!err) err = nvhost_device_register(&nvavp_device); #endif |