From bb55bb82b3dcbec5aedb5c4dbe1700f5d3ee9c1a Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Fri, 9 Nov 2012 15:41:21 +0200 Subject: [PATCH] --- yaml --- r: 344641 b: refs/heads/master c: 3f5ba55e8f3698432c65b0ef77e83d22d5f64a79 h: refs/heads/master i: 344639: e4669a84552a07f510a8fbd93ae1f4ec076cbb3e v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-omap2/display.c | 53 +- trunk/arch/arm/mach-omap2/sdrc.c | 16 + trunk/arch/arm/plat-omap/fb.c | 66 +-- trunk/arch/arm/plat-omap/include/plat/sdrc.h | 7 + .../arm/plat-omap/include/plat/vrfb.h} | 2 - trunk/drivers/media/platform/omap/omap_vout.c | 2 +- .../media/platform/omap/omap_vout_vrfb.c | 2 +- .../media/platform/omap/omap_voutdef.h | 2 +- .../video/omap2/displays/panel-acx565akm.c | 23 + .../video/omap2/displays/panel-generic-dpi.c | 36 ++ .../omap2/displays/panel-lgphilips-lb035q02.c | 34 ++ .../drivers/video/omap2/displays/panel-n8x0.c | 50 ++ .../omap2/displays/panel-nec-nl8048hl11-01b.c | 24 + .../video/omap2/displays/panel-picodlp.c | 44 ++ .../omap2/displays/panel-sharp-ls037v7dw01.c | 17 + .../drivers/video/omap2/displays/panel-taal.c | 72 +++ .../video/omap2/displays/panel-tfp410.c | 33 ++ .../omap2/displays/panel-tpo-td043mtea1.c | 20 + trunk/drivers/video/omap2/dss/Kconfig | 27 +- trunk/drivers/video/omap2/dss/Makefile | 1 - trunk/drivers/video/omap2/dss/apply.c | 85 +-- trunk/drivers/video/omap2/dss/core.c | 37 +- trunk/drivers/video/omap2/dss/dispc.c | 508 +++++++----------- trunk/drivers/video/omap2/dss/display.c | 93 +++- trunk/drivers/video/omap2/dss/dpi.c | 101 ++-- trunk/drivers/video/omap2/dss/dsi.c | 224 ++++---- trunk/drivers/video/omap2/dss/dss.c | 109 +--- trunk/drivers/video/omap2/dss/dss.h | 73 ++- trunk/drivers/video/omap2/dss/dss_features.c | 65 +-- trunk/drivers/video/omap2/dss/dss_features.h | 5 +- trunk/drivers/video/omap2/dss/hdmi.c | 153 ++---- trunk/drivers/video/omap2/dss/hdmi_panel.c | 82 ++- trunk/drivers/video/omap2/dss/rfbi.c | 2 +- trunk/drivers/video/omap2/dss/sdi.c | 2 +- trunk/drivers/video/omap2/dss/ti_hdmi.h | 3 - .../drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c | 11 +- trunk/drivers/video/omap2/dss/venc.c | 2 +- trunk/drivers/video/omap2/dss/venc_panel.c | 19 + .../drivers/video/omap2/omapfb/omapfb-ioctl.c | 2 +- .../drivers/video/omap2/omapfb/omapfb-main.c | 109 ++-- .../drivers/video/omap2/omapfb/omapfb-sysfs.c | 2 +- trunk/drivers/video/omap2/vrfb.c | 142 +---- trunk/include/video/omapdss.h | 24 +- 44 files changed, 1174 insertions(+), 1212 deletions(-) rename trunk/{include/video/omapvrfb.h => arch/arm/plat-omap/include/plat/vrfb.h} (95%) diff --git a/[refs] b/[refs] index e1758a6bec81..632704852885 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3c3dd225819112e56554162c6b37e61a31924e0c +refs/heads/master: 3f5ba55e8f3698432c65b0ef77e83d22d5f64a79 diff --git a/trunk/arch/arm/mach-omap2/display.c b/trunk/arch/arm/mach-omap2/display.c index 282c814ea2e2..1011995f150a 100644 --- a/trunk/arch/arm/mach-omap2/display.c +++ b/trunk/arch/arm/mach-omap2/display.c @@ -100,20 +100,17 @@ static const struct omap_dss_hwmod_data omap4_dss_hwmod_data[] __initconst = { { "dss_hdmi", "omapdss_hdmi", -1 }, }; -static void __init omap4_tpd12s015_mux_pads(void) +static void __init omap4_hdmi_mux_pads(enum omap_hdmi_flags flags) { + u32 reg; + u16 control_i2c_1; + omap_mux_init_signal("hdmi_cec", OMAP_PIN_INPUT_PULLUP); omap_mux_init_signal("hdmi_ddc_scl", OMAP_PIN_INPUT_PULLUP); omap_mux_init_signal("hdmi_ddc_sda", OMAP_PIN_INPUT_PULLUP); -} - -static void __init omap4_hdmi_mux_pads(enum omap_hdmi_flags flags) -{ - u32 reg; - u16 control_i2c_1; /* * CONTROL_I2C_1: HDMI_DDC_SDA_PULLUPRESX (bit 28) and @@ -164,10 +161,8 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) int __init omap_hdmi_init(enum omap_hdmi_flags flags) { - if (cpu_is_omap44xx()) { + if (cpu_is_omap44xx()) omap4_hdmi_mux_pads(flags); - omap4_tpd12s015_mux_pads(); - } return 0; } @@ -289,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; @@ -325,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/mach-omap2/sdrc.c b/trunk/arch/arm/mach-omap2/sdrc.c index 4282e6e967d6..e3d345f46409 100644 --- a/trunk/arch/arm/mach-omap2/sdrc.c +++ b/trunk/arch/arm/mach-omap2/sdrc.c @@ -160,3 +160,19 @@ void __init omap2_sdrc_init(struct omap_sdrc_params *sdrc_cs0, sdrc_write_reg(l, SDRC_POWER); omap2_sms_save_context(); } + +void omap2_sms_write_rot_control(u32 val, unsigned ctx) +{ + sms_write_reg(val, SMS_ROT_CONTROL(ctx)); +} + +void omap2_sms_write_rot_size(u32 val, unsigned ctx) +{ + sms_write_reg(val, SMS_ROT_SIZE(ctx)); +} + +void omap2_sms_write_rot_physical_ba(u32 val, unsigned ctx) +{ + sms_write_reg(val, SMS_ROT_PHYSICAL_BA(ctx)); +} + diff --git a/trunk/arch/arm/plat-omap/fb.c b/trunk/arch/arm/plat-omap/fb.c index f868caeedfd6..218963bd4bb3 100644 --- a/trunk/arch/arm/plat-omap/fb.c +++ b/trunk/arch/arm/plat-omap/fb.c @@ -29,71 +29,11 @@ #include #include #include +#include #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; @@ -106,7 +46,7 @@ static struct platform_device omap_fb_device = { .id = -1, .dev = { .dma_mask = &omap_fb_dma_mask, - .coherent_dma_mask = ~(u32)0, + .coherent_dma_mask = DMA_BIT_MASK(32), .platform_data = &omapfb_config, }, .num_resources = 0, @@ -142,7 +82,7 @@ static struct platform_device omap_fb_device = { .id = -1, .dev = { .dma_mask = &omap_fb_dma_mask, - .coherent_dma_mask = ~(u32)0, + .coherent_dma_mask = DMA_BIT_MASK(32), .platform_data = &omapfb_config, }, .num_resources = 0, diff --git a/trunk/arch/arm/plat-omap/include/plat/sdrc.h b/trunk/arch/arm/plat-omap/include/plat/sdrc.h index c68bab29cfc5..36d6a7666216 100644 --- a/trunk/arch/arm/plat-omap/include/plat/sdrc.h +++ b/trunk/arch/arm/plat-omap/include/plat/sdrc.h @@ -94,6 +94,9 @@ /* SMS register offsets - read/write with sms_{read,write}_reg() */ #define SMS_SYSCONFIG 0x010 +#define SMS_ROT_CONTROL(context) (0x180 + 0x10 * context) +#define SMS_ROT_SIZE(context) (0x184 + 0x10 * context) +#define SMS_ROT_PHYSICAL_BA(context) (0x188 + 0x10 * context) /* REVISIT: fill in other SMS registers here */ @@ -134,6 +137,10 @@ int omap2_sdrc_get_params(unsigned long r, void omap2_sms_save_context(void); void omap2_sms_restore_context(void); +void omap2_sms_write_rot_control(u32 val, unsigned ctx); +void omap2_sms_write_rot_size(u32 val, unsigned ctx); +void omap2_sms_write_rot_physical_ba(u32 val, unsigned ctx); + #ifdef CONFIG_ARCH_OMAP2 struct memory_timings { diff --git a/trunk/include/video/omapvrfb.h b/trunk/arch/arm/plat-omap/include/plat/vrfb.h similarity index 95% rename from trunk/include/video/omapvrfb.h rename to trunk/arch/arm/plat-omap/include/plat/vrfb.h index bb0bd89f8bc6..3792bdea2f6d 100644 --- a/trunk/include/video/omapvrfb.h +++ b/trunk/arch/arm/plat-omap/include/plat/vrfb.h @@ -36,7 +36,6 @@ struct vrfb { }; #ifdef CONFIG_OMAP2_VRFB -extern bool omap_vrfb_supported(void); extern int omap_vrfb_request_ctx(struct vrfb *vrfb); extern void omap_vrfb_release_ctx(struct vrfb *vrfb); extern void omap_vrfb_adjust_size(u16 *width, u16 *height, @@ -50,7 +49,6 @@ extern int omap_vrfb_map_angle(struct vrfb *vrfb, u16 height, u8 rot); extern void omap_vrfb_restore_context(void); #else -static inline bool omap_vrfb_supported(void) { return false; } static inline int omap_vrfb_request_ctx(struct vrfb *vrfb) { return 0; } static inline void omap_vrfb_release_ctx(struct vrfb *vrfb) {} static inline void omap_vrfb_adjust_size(u16 *width, u16 *height, diff --git a/trunk/drivers/media/platform/omap/omap_vout.c b/trunk/drivers/media/platform/omap/omap_vout.c index 3ff94a30fde4..a3b1a34c896d 100644 --- a/trunk/drivers/media/platform/omap/omap_vout.c +++ b/trunk/drivers/media/platform/omap/omap_vout.c @@ -46,7 +46,7 @@ #include #include -#include