aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-ux500/board-u5500-mcde.c
diff options
context:
space:
mode:
authorFredrik Allansson <fredrik.allansson@stericsson.com>2010-10-15 16:07:53 +0200
committerRobert Marklund <robert.marklund@stericsson.com>2011-10-05 12:54:29 +0200
commit2e97044bf2d90d1d9fad3f63724583a8b661e1e4 (patch)
tree257edad25924a00402e830ad18079044bad66924 /arch/arm/mach-ux500/board-u5500-mcde.c
parent94f109a677d05fb7b6a664e5fb43334379986fda (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.c78
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