diff options
author | Fredrik Allansson <fredrik.allansson@stericsson.com> | 2010-10-15 16:07:53 +0200 |
---|---|---|
committer | Robert Marklund <robert.marklund@stericsson.com> | 2011-10-05 12:54:29 +0200 |
commit | 2e97044bf2d90d1d9fad3f63724583a8b661e1e4 (patch) | |
tree | 257edad25924a00402e830ad18079044bad66924 /arch/arm/mach-ux500/board-u5500-mcde.c | |
parent | 94f109a677d05fb7b6a664e5fb43334379986fda (diff) |
misc: dispdev: Migrate to kernel 3.0
apply below mcde mach-ux500 patches for kernel3.0 migration
ce479ee [ANDROID] misc: dispdev: Add dispdev driver
f499637 misc: dispdev: Enable dispdev in U5500
b07b4c [ANDROID] misc: dispdev: Disable UI overlay
ST-Ericsson ID: 352334
ST-Ericsson Linux next: NA
ST-Ericsson FOSS-OUT ID: NA
Signed-off-by: Rajagopala V <rajagopala.v@stericsson.com>
Change-Id: I4afae8f61b28754cb0380d44c9b2273c958572a9
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/29655
Diffstat (limited to 'arch/arm/mach-ux500/board-u5500-mcde.c')
-rw-r--r-- | arch/arm/mach-ux500/board-u5500-mcde.c | 78 |
1 files changed, 13 insertions, 65 deletions
diff --git a/arch/arm/mach-ux500/board-u5500-mcde.c b/arch/arm/mach-ux500/board-u5500-mcde.c index c74c4995d48..68ddc3e1f7b 100644 --- a/arch/arm/mach-ux500/board-u5500-mcde.c +++ b/arch/arm/mach-ux500/board-u5500-mcde.c @@ -10,6 +10,7 @@ #include <linux/kernel.h> #include <linux/gpio.h> #include <linux/delay.h> +#include <linux/dispdev.h> #include <video/av8100.h> #include <asm/mach-types.h> #include <video/mcde_display.h> @@ -341,6 +342,7 @@ static int display_postregistered_callback(struct notifier_block *nb, else #endif /* CONFIG_DISPLAY_AV8100_TERTIARY */ { + struct mcde_fb *mfb; /* Create frame buffer */ fbi = mcde_fb_create(ddev, width, height, @@ -356,6 +358,17 @@ static int display_postregistered_callback(struct notifier_block *nb, } else dev_info(&ddev->dev, "Framebuffer created (%s)\n", ddev->name); +#ifdef CONFIG_DISPDEV + mfb = to_mcde_fb(fbi); + /* Create a dispdev overlay for this display */ + if (dispdev_create(ddev, true, mfb->ovlys[0]) < 0) + dev_warn(&ddev->dev, + "Failed to create disp for display %s\n", + ddev->name); + else + dev_info(&ddev->dev, "Disp dev created for (%s)\n", + ddev->name); +#endif } return 0; @@ -528,70 +541,5 @@ struct mcde_display_device *mcde_get_main_display(void) } EXPORT_SYMBOL(mcde_get_main_display); -void hdmi_fb_onoff(struct mcde_display_device *ddev, - bool enable, u8 cea, u8 vesa_cea_nr) -{ - u16 w, h; - u16 vw, vh; - u32 rotate = FB_ROTATE_UR; - struct display_driver_data *driver_data = dev_get_drvdata(&ddev->dev); - - dev_dbg(&ddev->dev, "%s\n", __func__); - dev_dbg(&ddev->dev, "en:%d cea:%d nr:%d\n", enable, cea, vesa_cea_nr); - - if (enable) { - struct fb_info *fbi; - if (ddev->enabled) { - dev_dbg(&ddev->dev, "Display is already enabled.\n"); - return; - } - - /* Create fb */ - if (ddev->fbi == NULL) { -#ifdef CONFIG_DISPLAY_AV8100_TRIPPLE_BUFFER - int buffering = 3; -#else - int buffering = 2; -#endif - - /* Get default values */ - mcde_dss_get_native_resolution(ddev, &w, &h); - vw = w; - vh = h * buffering; - - if (vesa_cea_nr != 0) - ddev->ceanr_convert(ddev, cea, vesa_cea_nr, - buffering, &w, &h, &vw, &vh); - - fbi = mcde_fb_create(ddev, w, h, vw, vh, - ddev->default_pixel_format, rotate); - - if (IS_ERR(fbi)) { - dev_warn(&ddev->dev, - "Failed to create fb for display %s\n", - ddev->name); - goto hdmi_fb_onoff_end; - } else { - dev_info(&ddev->dev, - "Framebuffer created (%s)\n", - ddev->name); - } - driver_data->fbdevname = (char *)dev_name(fbi->dev); - } - } else { - if (!ddev->enabled) { - dev_dbg(&ddev->dev, "Display %s is already disabled.\n", - ddev->name); - return; - } - - mcde_fb_destroy(ddev); - } - -hdmi_fb_onoff_end: - return; -} -EXPORT_SYMBOL(hdmi_fb_onoff); - module_init(init_display_devices_u5500); #endif |