From 62115260c168a23a011cb22472020b9d45fe609a Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Mon, 8 Oct 2012 14:35:44 +0300 Subject: [PATCH] --- yaml --- r: 339635 b: refs/heads/master c: 406c8563a7b07ce91b1310536948477c7a8755de h: refs/heads/master i: 339633: b4a30d6641f4258b02aaa887057d50d527a9d273 339631: c0f6d2f0b3474f8d3ee2f8ece6d9dcd4d3fd9245 v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-omap2/display.c | 38 ------ trunk/arch/arm/plat-omap/fb.c | 61 +++++++++ trunk/drivers/video/omap2/dss/core.c | 2 +- trunk/drivers/video/omap2/dss/dispc.c | 43 +++---- trunk/drivers/video/omap2/dss/dss.c | 39 ++---- trunk/drivers/video/omap2/dss/dss_features.c | 64 +++------- trunk/drivers/video/omap2/dss/dss_features.h | 5 +- trunk/drivers/video/omap2/dss/hdmi.c | 3 +- trunk/drivers/video/omap2/vrfb.c | 124 ++++++++++++++++--- trunk/include/video/omapdss.h | 14 --- 11 files changed, 217 insertions(+), 178 deletions(-) diff --git a/[refs] b/[refs] index 901364c08cd8..3367533ec5a7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 35f70935c64ae229ebd1fc65398ec68d4d803712 +refs/heads/master: 406c8563a7b07ce91b1310536948477c7a8755de diff --git a/trunk/arch/arm/mach-omap2/display.c b/trunk/arch/arm/mach-omap2/display.c index 28f508724a56..1011995f150a 100644 --- a/trunk/arch/arm/mach-omap2/display.c +++ b/trunk/arch/arm/mach-omap2/display.c @@ -284,35 +284,6 @@ static struct platform_device *create_simple_dss_pdev(const char *pdev_name, return ERR_PTR(r); } -static enum omapdss_version __init omap_display_get_version(void) -{ - if (cpu_is_omap24xx()) - return OMAPDSS_VER_OMAP24xx; - else if (cpu_is_omap3630()) - return OMAPDSS_VER_OMAP3630; - else if (cpu_is_omap34xx()) { - if (soc_is_am35xx()) { - return OMAPDSS_VER_AM35xx; - } else { - if (omap_rev() < OMAP3430_REV_ES3_0) - return OMAPDSS_VER_OMAP34xx_ES1; - else - return OMAPDSS_VER_OMAP34xx_ES3; - } - } else if (omap_rev() == OMAP4430_REV_ES1_0) - return OMAPDSS_VER_OMAP4430_ES1; - else if (omap_rev() == OMAP4430_REV_ES2_0 || - omap_rev() == OMAP4430_REV_ES2_1 || - omap_rev() == OMAP4430_REV_ES2_2) - return OMAPDSS_VER_OMAP4430_ES2; - else if (cpu_is_omap44xx()) - return OMAPDSS_VER_OMAP4; - else if (soc_is_omap54xx()) - return OMAPDSS_VER_OMAP5; - else - return OMAPDSS_VER_UNKNOWN; -} - int __init omap_display_init(struct omap_dss_board_info *board_data) { int r = 0; @@ -320,18 +291,9 @@ int __init omap_display_init(struct omap_dss_board_info *board_data) int i, oh_count; const struct omap_dss_hwmod_data *curr_dss_hwmod; struct platform_device *dss_pdev; - enum omapdss_version ver; /* create omapdss device */ - ver = omap_display_get_version(); - - if (ver == OMAPDSS_VER_UNKNOWN) { - pr_err("DSS not supported on this SoC\n"); - return -ENODEV; - } - - board_data->version = ver; board_data->dsi_enable_pads = omap_dsi_enable_pads; board_data->dsi_disable_pads = omap_dsi_disable_pads; board_data->get_context_loss_count = omap_pm_get_dev_context_loss_count; diff --git a/trunk/arch/arm/plat-omap/fb.c b/trunk/arch/arm/plat-omap/fb.c index bcbb9d5dc293..f868caeedfd6 100644 --- a/trunk/arch/arm/plat-omap/fb.c +++ b/trunk/arch/arm/plat-omap/fb.c @@ -33,6 +33,67 @@ #include #include +#include + +#ifdef CONFIG_OMAP2_VRFB + +/* + * The first memory resource is the register region for VRFB, + * the rest are VRFB virtual memory areas for each VRFB context. + */ + +static const struct resource omap2_vrfb_resources[] = { + DEFINE_RES_MEM_NAMED(0x68008000u, 0x40, "vrfb-regs"), + DEFINE_RES_MEM_NAMED(0x70000000u, 0x4000000, "vrfb-area-0"), + DEFINE_RES_MEM_NAMED(0x74000000u, 0x4000000, "vrfb-area-1"), + DEFINE_RES_MEM_NAMED(0x78000000u, 0x4000000, "vrfb-area-2"), + DEFINE_RES_MEM_NAMED(0x7c000000u, 0x4000000, "vrfb-area-3"), +}; + +static const struct resource omap3_vrfb_resources[] = { + DEFINE_RES_MEM_NAMED(0x6C000180u, 0xc0, "vrfb-regs"), + DEFINE_RES_MEM_NAMED(0x70000000u, 0x4000000, "vrfb-area-0"), + DEFINE_RES_MEM_NAMED(0x74000000u, 0x4000000, "vrfb-area-1"), + DEFINE_RES_MEM_NAMED(0x78000000u, 0x4000000, "vrfb-area-2"), + DEFINE_RES_MEM_NAMED(0x7c000000u, 0x4000000, "vrfb-area-3"), + DEFINE_RES_MEM_NAMED(0xe0000000u, 0x4000000, "vrfb-area-4"), + DEFINE_RES_MEM_NAMED(0xe4000000u, 0x4000000, "vrfb-area-5"), + DEFINE_RES_MEM_NAMED(0xe8000000u, 0x4000000, "vrfb-area-6"), + DEFINE_RES_MEM_NAMED(0xec000000u, 0x4000000, "vrfb-area-7"), + DEFINE_RES_MEM_NAMED(0xf0000000u, 0x4000000, "vrfb-area-8"), + DEFINE_RES_MEM_NAMED(0xf4000000u, 0x4000000, "vrfb-area-9"), + DEFINE_RES_MEM_NAMED(0xf8000000u, 0x4000000, "vrfb-area-10"), + DEFINE_RES_MEM_NAMED(0xfc000000u, 0x4000000, "vrfb-area-11"), +}; + +static int __init omap_init_vrfb(void) +{ + struct platform_device *pdev; + const struct resource *res; + unsigned int num_res; + + if (cpu_is_omap24xx()) { + res = omap2_vrfb_resources; + num_res = ARRAY_SIZE(omap2_vrfb_resources); + } else if (cpu_is_omap34xx()) { + res = omap3_vrfb_resources; + num_res = ARRAY_SIZE(omap3_vrfb_resources); + } else { + return 0; + } + + pdev = platform_device_register_resndata(NULL, "omapvrfb", -1, + res, num_res, NULL, 0); + + if (IS_ERR(pdev)) + return PTR_ERR(pdev); + else + return 0; +} + +arch_initcall(omap_init_vrfb); +#endif + #if defined(CONFIG_FB_OMAP) || defined(CONFIG_FB_OMAP_MODULE) static bool omapfb_lcd_configured; diff --git a/trunk/drivers/video/omap2/dss/core.c b/trunk/drivers/video/omap2/dss/core.c index d94ef9e31a35..b2af72dc20bd 100644 --- a/trunk/drivers/video/omap2/dss/core.c +++ b/trunk/drivers/video/omap2/dss/core.c @@ -237,7 +237,7 @@ static int __init omap_dss_probe(struct platform_device *pdev) core.pdev = pdev; - dss_features_init(pdata->version); + dss_features_init(); dss_apply_init(); diff --git a/trunk/drivers/video/omap2/dss/dispc.c b/trunk/drivers/video/omap2/dss/dispc.c index a5ab354f267a..b43477a5fae8 100644 --- a/trunk/drivers/video/omap2/dss/dispc.c +++ b/trunk/drivers/video/omap2/dss/dispc.c @@ -37,6 +37,8 @@ #include #include +#include + #include