aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/kexecboot/linux-kexecboot-2.6.29/dss2/0023-DSS2-pass-the-default-FB-color-format-through-board.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/kexecboot/linux-kexecboot-2.6.29/dss2/0023-DSS2-pass-the-default-FB-color-format-through-board.patch')
-rw-r--r--recipes/kexecboot/linux-kexecboot-2.6.29/dss2/0023-DSS2-pass-the-default-FB-color-format-through-board.patch214
1 files changed, 0 insertions, 214 deletions
diff --git a/recipes/kexecboot/linux-kexecboot-2.6.29/dss2/0023-DSS2-pass-the-default-FB-color-format-through-board.patch b/recipes/kexecboot/linux-kexecboot-2.6.29/dss2/0023-DSS2-pass-the-default-FB-color-format-through-board.patch
deleted file mode 100644
index 45045c4b4b..0000000000
--- a/recipes/kexecboot/linux-kexecboot-2.6.29/dss2/0023-DSS2-pass-the-default-FB-color-format-through-board.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-From c02b843c2732bc7b15a3e35b5dd715d68225bbd1 Mon Sep 17 00:00:00 2001
-From: Imre Deak <imre.deak@nokia.com>
-Date: Wed, 8 Apr 2009 12:51:46 +0200
-Subject: [PATCH 23/69] DSS2: pass the default FB color format through board info
-
-Add a field to the FB memory region platform data, so that board
-init code can pass a default color format to the driver. Set this
-format as an initial setting for the given FB.
-
-This is needed for an upcoming patch that adds detection of the
-color format set by the bootloader.
-
-Signed-off-by: Imre Deak <imre.deak@nokia.com>
----
- drivers/video/omap2/omapfb/omapfb-main.c | 121 +++++++++++++++++++++++++++---
- drivers/video/omap2/omapfb/omapfb.h | 2 +
- include/linux/omapfb.h | 5 +
- 3 files changed, 117 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c
-index 12ce0c3..67c67c2 100644
---- a/drivers/video/omap2/omapfb/omapfb-main.c
-+++ b/drivers/video/omap2/omapfb/omapfb-main.c
-@@ -370,6 +370,21 @@ static enum omap_color_mode fb_mode_to_dss_mode(struct fb_var_screeninfo *var)
- return -EINVAL;
- }
-
-+static int dss_mode_to_fb_mode(enum omap_color_mode dssmode,
-+ struct fb_var_screeninfo *var)
-+{
-+ int i;
-+
-+ for (i = 0; i < ARRAY_SIZE(omapfb_colormodes); ++i) {
-+ struct omapfb_colormode *mode = &omapfb_colormodes[i];
-+ if (dssmode == mode->dssmode) {
-+ assign_colormode_to_var(var, mode);
-+ return 0;
-+ }
-+ }
-+ return -ENOENT;
-+}
-+
- void set_fb_fix(struct fb_info *fbi)
- {
- struct fb_fix_screeninfo *fix = &fbi->fix;
-@@ -1267,6 +1282,60 @@ static int omapfb_alloc_fbmem_display(struct fb_info *fbi, unsigned long size,
- return omapfb_alloc_fbmem(fbi, size, paddr);
- }
-
-+static enum omap_color_mode fb_format_to_dss_mode(enum omapfb_color_format format)
-+{
-+ enum omap_color_mode mode;
-+
-+ switch (format) {
-+ case OMAPFB_COLOR_RGB565:
-+ mode = OMAP_DSS_COLOR_RGB16;
-+ break;
-+ case OMAPFB_COLOR_YUV422:
-+ mode = OMAP_DSS_COLOR_YUV2;
-+ break;
-+ case OMAPFB_COLOR_CLUT_8BPP:
-+ mode = OMAP_DSS_COLOR_CLUT8;
-+ break;
-+ case OMAPFB_COLOR_CLUT_4BPP:
-+ mode = OMAP_DSS_COLOR_CLUT4;
-+ break;
-+ case OMAPFB_COLOR_CLUT_2BPP:
-+ mode = OMAP_DSS_COLOR_CLUT2;
-+ break;
-+ case OMAPFB_COLOR_CLUT_1BPP:
-+ mode = OMAP_DSS_COLOR_CLUT1;
-+ break;
-+ case OMAPFB_COLOR_RGB444:
-+ mode = OMAP_DSS_COLOR_RGB12U;
-+ break;
-+ case OMAPFB_COLOR_YUY422:
-+ mode = OMAP_DSS_COLOR_UYVY;
-+ break;
-+ case OMAPFB_COLOR_ARGB16:
-+ mode = OMAP_DSS_COLOR_ARGB16;
-+ break;
-+ case OMAPFB_COLOR_RGB24U:
-+ mode = OMAP_DSS_COLOR_RGB24U;
-+ break;
-+ case OMAPFB_COLOR_RGB24P:
-+ mode = OMAP_DSS_COLOR_RGB24P;
-+ break;
-+ case OMAPFB_COLOR_ARGB32:
-+ mode = OMAP_DSS_COLOR_ARGB32;
-+ break;
-+ case OMAPFB_COLOR_RGBA32:
-+ mode = OMAP_DSS_COLOR_RGBA32;
-+ break;
-+ case OMAPFB_COLOR_RGBX32:
-+ mode = OMAP_DSS_COLOR_RGBX32;
-+ break;
-+ default:
-+ mode = -EINVAL;
-+ }
-+
-+ return mode;
-+}
-+
- static int omapfb_parse_vram_param(const char *param, int max_entries,
- unsigned long *sizes, unsigned long *paddrs)
- {
-@@ -1483,9 +1552,36 @@ int omapfb_fb_init(struct omapfb2_device *fbdev, struct fb_info *fbi)
- }
-
- var->nonstd = 0;
-+ var->bits_per_pixel = 0;
-
- var->rotate = ofbi->rotation;
-
-+ /*
-+ * Check if there is a default color format set in the board file,
-+ * and use this format instead the default deducted from the
-+ * display bpp.
-+ */
-+ if (fbdev->dev->platform_data) {
-+ struct omapfb_platform_data *opd;
-+ int id = ofbi->id;
-+
-+ opd = fbdev->dev->platform_data;
-+ if (opd->mem_desc.region[id].format_used) {
-+ enum omap_color_mode mode;
-+ enum omapfb_color_format format;
-+
-+ format = opd->mem_desc.region[id].format;
-+ mode = fb_format_to_dss_mode(format);
-+ if (mode < 0) {
-+ r = mode;
-+ goto err;
-+ }
-+ r = dss_mode_to_fb_mode(mode, var);
-+ if (r < 0)
-+ goto err;
-+ }
-+ }
-+
- if (display) {
- u16 w, h;
- display->get_resolution(display, &w, &h);
-@@ -1502,16 +1598,18 @@ int omapfb_fb_init(struct omapfb2_device *fbdev, struct fb_info *fbi)
- var->xres_virtual = var->xres;
- var->yres_virtual = var->yres;
-
-- switch (display->get_recommended_bpp(display)) {
-- case 16:
-- var->bits_per_pixel = 16;
-- break;
-- case 24:
-- var->bits_per_pixel = 32;
-- break;
-- default:
-- dev_err(fbdev->dev, "illegal display bpp\n");
-- return -EINVAL;
-+ if (!var->bits_per_pixel) {
-+ switch (display->get_recommended_bpp(display)) {
-+ case 16:
-+ var->bits_per_pixel = 16;
-+ break;
-+ case 24:
-+ var->bits_per_pixel = 32;
-+ break;
-+ default:
-+ dev_err(fbdev->dev, "illegal display bpp\n");
-+ return -EINVAL;
-+ }
- }
- } else {
- /* if there's no display, let's just guess some basic values */
-@@ -1519,7 +1617,8 @@ int omapfb_fb_init(struct omapfb2_device *fbdev, struct fb_info *fbi)
- var->yres = 240;
- var->xres_virtual = var->xres;
- var->yres_virtual = var->yres;
-- var->bits_per_pixel = 16;
-+ if (!var->bits_per_pixel)
-+ var->bits_per_pixel = 16;
- }
-
- r = check_fb_var(fbi, var);
-diff --git a/drivers/video/omap2/omapfb/omapfb.h b/drivers/video/omap2/omapfb/omapfb.h
-index 65e9e6e..2607def 100644
---- a/drivers/video/omap2/omapfb/omapfb.h
-+++ b/drivers/video/omap2/omapfb/omapfb.h
-@@ -27,6 +27,8 @@
- #define DEBUG
- #endif
-
-+#include <mach/display.h>
-+
- #ifdef DEBUG
- extern unsigned int omapfb_debug;
- #define DBG(format, ...) \
-diff --git a/include/linux/omapfb.h b/include/linux/omapfb.h
-index 96190b2..7a34f22 100644
---- a/include/linux/omapfb.h
-+++ b/include/linux/omapfb.h
-@@ -298,6 +298,11 @@ struct omapfb_mem_region {
- void __iomem *vaddr;
- unsigned long size;
- u8 type; /* OMAPFB_PLANE_MEM_* */
-+ enum omapfb_color_format format;/* OMAPFB_COLOR_* */
-+ unsigned format_used:1; /* Must be set when format is set.
-+ * Needed b/c of the badly chosen 0
-+ * base for OMAPFB_COLOR_* values
-+ */
- unsigned alloc:1; /* allocated by the driver */
- unsigned map:1; /* kernel mapped by the driver */
- };
---
-1.6.2.4
-