diff options
-rw-r--r-- | recipes/linux/linux-omap-2.6.31/beagleboard/defconfig | 21 | ||||
-rw-r--r-- | recipes/linux/linux-omap-2.6.31/dss2/beagle-dss2-support.patch | 326 | ||||
-rw-r--r-- | recipes/linux/linux-omap-2.6.31/fix-omapfb.patch | 137 | ||||
-rw-r--r-- | recipes/linux/linux-omap-2.6.31/modedb-hd720.patch | 13 | ||||
-rw-r--r-- | recipes/linux/linux-omap_2.6.31.bb | 3 |
5 files changed, 490 insertions, 10 deletions
diff --git a/recipes/linux/linux-omap-2.6.31/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.31/beagleboard/defconfig index 629148b783..efe8e6d8dd 100644 --- a/recipes/linux/linux-omap-2.6.31/beagleboard/defconfig +++ b/recipes/linux/linux-omap-2.6.31/beagleboard/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.31-rc8-omap1 -# Fri Sep 4 15:16:17 2009 +# Linux kernel version: 2.6.31-omap1 +# Thu Sep 17 17:27:43 2009 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -216,6 +216,8 @@ CONFIG_OMAP_DM_TIMER=y # CONFIG_OMAP_LL_DEBUG_UART1 is not set # CONFIG_OMAP_LL_DEBUG_UART2 is not set CONFIG_OMAP_LL_DEBUG_UART3=y +# CONFIG_OMAP_PM_NONE is not set +CONFIG_OMAP_PM_NOOP=y CONFIG_ARCH_OMAP34XX=y CONFIG_ARCH_OMAP3430=y @@ -224,7 +226,7 @@ CONFIG_ARCH_OMAP3430=y # CONFIG_MACH_OMAP3_BEAGLE=y # CONFIG_MACH_OMAP_LDP is not set -CONFIG_MACH_OVERO=n +# CONFIG_MACH_OVERO is not set CONFIG_MACH_OMAP3EVM=y # CONFIG_MACH_OMAP3_PANDORA is not set # CONFIG_MACH_OMAP_3430SDP is not set @@ -285,6 +287,7 @@ CONFIG_PREEMPT=y CONFIG_HZ=128 CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set # CONFIG_HIGHMEM is not set @@ -1686,8 +1689,7 @@ CONFIG_DVB_USB_ANYSEE=m CONFIG_DVB_USB_DTV5100=m CONFIG_DVB_USB_AF9015=m # CONFIG_DVB_USB_CE6230 is not set -CONFIG_DVB_SIANO_SMS1XXX=m -CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y +# CONFIG_SMS_SIANO_MDTV is not set # # Supported FlexCopII (B2C2) Adapters @@ -1760,7 +1762,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set # CONFIG_FB_BACKLIGHT is not set -# CONFIG_FB_MODE_HELPERS is not set +CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set # @@ -1793,8 +1795,8 @@ CONFIG_FB_OMAP2_NUM_FBS=3 # OMAP2/3 Display Device Drivers # CONFIG_PANEL_GENERIC=y -CONFIG_PANEL_SAMSUNG_LTE430WQ_F0C=m -CONFIG_PANEL_SHARP_LS037V7DW01=m +CONFIG_PANEL_SAMSUNG_LTE430WQ_F0C=y +CONFIG_PANEL_SHARP_LS037V7DW01=y # CONFIG_PANEL_TAAL is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set @@ -1864,7 +1866,6 @@ CONFIG_SND_USB_CAIAQ_INPUT=y CONFIG_SND_SOC=y CONFIG_SND_OMAP_SOC=y CONFIG_SND_OMAP_SOC_MCBSP=y -# CONFIG_SND_OMAP_SOC_OVERO is not set # CONFIG_SND_OMAP_SOC_OMAP3EVM is not set CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y CONFIG_SND_SOC_I2C_AND_SPI=y @@ -2563,7 +2564,7 @@ CONFIG_NLS_ISO8859_8=m CONFIG_NLS_CODEPAGE_1250=m CONFIG_NLS_CODEPAGE_1251=m CONFIG_NLS_ASCII=m -CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_2=m CONFIG_NLS_ISO8859_3=m CONFIG_NLS_ISO8859_4=m diff --git a/recipes/linux/linux-omap-2.6.31/dss2/beagle-dss2-support.patch b/recipes/linux/linux-omap-2.6.31/dss2/beagle-dss2-support.patch new file mode 100644 index 0000000000..53f921e087 --- /dev/null +++ b/recipes/linux/linux-omap-2.6.31/dss2/beagle-dss2-support.patch @@ -0,0 +1,326 @@ +--- /tmp/board-omap3beagle.c 2009-09-17 17:44:58.000000000 +0200 ++++ git/arch/arm/mach-omap2/board-omap3beagle.c 2009-09-17 18:48:57.000000000 +0200 +@@ -31,6 +31,7 @@ + + #include <linux/regulator/machine.h> + #include <linux/i2c/twl4030.h> ++#include <linux/omapfb.h> + + #include <mach/hardware.h> + #include <asm/mach-types.h> +@@ -45,6 +46,7 @@ + #include <mach/mux.h> + #include <mach/usb.h> + #include <mach/timer-gp.h> ++#include <mach/display.h> + + #include "mmc-twl4030.h" + +@@ -169,15 +171,6 @@ + {} /* Terminator */ + }; + +-static struct platform_device omap3_beagle_lcd_device = { +- .name = "omap3beagle_lcd", +- .id = -1, +-}; +- +-static struct omap_lcd_config omap3_beagle_lcd_config __initdata = { +- .ctrl_name = "internal", +-}; +- + static struct regulator_consumer_supply beagle_vmmc1_supply = { + .supply = "vmmc", + }; +@@ -228,16 +221,6 @@ + .setup = beagle_twl_gpio_setup, + }; + +-static struct regulator_consumer_supply beagle_vdac_supply = { +- .supply = "vdac", +- .dev = &omap3_beagle_lcd_device.dev, +-}; +- +-static struct regulator_consumer_supply beagle_vdvi_supply = { +- .supply = "vdvi", +- .dev = &omap3_beagle_lcd_device.dev, +-}; +- + /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */ + static struct regulator_init_data beagle_vmmc1 = { + .constraints = { +@@ -268,61 +251,10 @@ + .consumer_supplies = &beagle_vsim_supply, + }; + +-/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */ +-static struct regulator_init_data beagle_vdac = { +- .constraints = { +- .min_uV = 1800000, +- .max_uV = 1800000, +- .valid_modes_mask = REGULATOR_MODE_NORMAL +- | REGULATOR_MODE_STANDBY, +- .valid_ops_mask = REGULATOR_CHANGE_MODE +- | REGULATOR_CHANGE_STATUS, +- }, +- .num_consumer_supplies = 1, +- .consumer_supplies = &beagle_vdac_supply, +-}; +- +-/* VPLL2 for digital video outputs */ +-static struct regulator_init_data beagle_vpll2 = { +- .constraints = { +- .name = "VDVI", +- .min_uV = 1800000, +- .max_uV = 1800000, +- .valid_modes_mask = REGULATOR_MODE_NORMAL +- | REGULATOR_MODE_STANDBY, +- .valid_ops_mask = REGULATOR_CHANGE_MODE +- | REGULATOR_CHANGE_STATUS, +- }, +- .num_consumer_supplies = 1, +- .consumer_supplies = &beagle_vdvi_supply, +-}; +- + static struct twl4030_usb_data beagle_usb_data = { + .usb_mode = T2_USB_MODE_ULPI, + }; + +-static struct twl4030_platform_data beagle_twldata = { +- .irq_base = TWL4030_IRQ_BASE, +- .irq_end = TWL4030_IRQ_END, +- +- /* platform_data for children goes here */ +- .usb = &beagle_usb_data, +- .gpio = &beagle_gpio_data, +- .vmmc1 = &beagle_vmmc1, +- .vsim = &beagle_vsim, +- .vdac = &beagle_vdac, +- .vpll2 = &beagle_vpll2, +-}; +- +-static struct i2c_board_info __initdata beagle_i2c1_boardinfo[] = { +- { +- I2C_BOARD_INFO("twl4030", 0x48), +- .flags = I2C_CLIENT_WAKE, +- .irq = INT_34XX_SYS_NIRQ, +- .platform_data = &beagle_twldata, +- }, +-}; +- + #if defined(CONFIG_RTC_DRV_DS1307) || \ + defined(CONFIG_RTC_DRV_DS1307_MODULE) + +@@ -335,18 +267,6 @@ + static struct i2c_board_info __initdata beagle_i2c2_boardinfo[] = {}; + #endif + +-static int __init omap3_beagle_i2c_init(void) +-{ +- omap_register_i2c_bus(1, 2600, beagle_i2c1_boardinfo, +- ARRAY_SIZE(beagle_i2c1_boardinfo)); +- omap_register_i2c_bus(2, 400, beagle_i2c2_boardinfo, +- ARRAY_SIZE(beagle_i2c2_boardinfo)); +- /* Bus 3 is attached to the DVI port where devices like the pico DLP +- * projector don't work reliably with 400kHz */ +- omap_register_i2c_bus(3, 100, NULL, 0); +- return 0; +-} +- + static struct gpio_led gpio_leds[] = { + { + .name = "beagleboard::usr0", +@@ -400,14 +320,158 @@ + }, + }; + +-static struct omap_board_config_kernel omap3_beagle_config[] __initdata = { +- { OMAP_TAG_LCD, &omap3_beagle_lcd_config }, ++/* DSS */ ++ ++static int beagle_enable_dvi(struct omap_dss_device *dssdev) ++{ ++ if (dssdev->reset_gpio != -1) ++ gpio_set_value(dssdev->reset_gpio, 1); ++ ++ return 0; ++} ++ ++static void beagle_disable_dvi(struct omap_dss_device *dssdev) ++{ ++ if (dssdev->reset_gpio != -1) ++ gpio_set_value(dssdev->reset_gpio, 0); ++} ++ ++static struct omap_dss_device beagle_dvi_device = { ++ .type = OMAP_DISPLAY_TYPE_DPI, ++ .name = "dvi", ++ .driver_name = "generic_panel", ++ .phy.dpi.data_lines = 24, ++ .reset_gpio = 170, ++ .platform_enable = beagle_enable_dvi, ++ .platform_disable = beagle_disable_dvi, + }; + ++static int beagle_panel_enable_tv(struct omap_dss_device *dssdev) ++{ ++ return 0; ++} ++ ++static void beagle_panel_disable_tv(struct omap_dss_device *dssdev) ++{ ++} ++ ++static struct omap_dss_device beagle_tv_device = { ++ .name = "tv", ++ .driver_name = "venc", ++ .type = OMAP_DISPLAY_TYPE_VENC, ++ .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO, ++ .platform_enable = beagle_panel_enable_tv, ++ .platform_disable = beagle_panel_disable_tv, ++}; ++ ++static struct omap_dss_device *beagle_dss_devices[] = { ++ &beagle_dvi_device, ++ &beagle_tv_device, ++}; ++ ++static struct omap_dss_board_info beagle_dss_data = { ++ .num_devices = ARRAY_SIZE(beagle_dss_devices), ++ .devices = beagle_dss_devices, ++ .default_device = &beagle_dvi_device, ++}; ++ ++static struct platform_device beagle_dss_device = { ++ .name = "omapdss", ++ .id = -1, ++ .dev = { ++ .platform_data = &beagle_dss_data, ++ }, ++}; ++ ++static struct regulator_consumer_supply beagle_vdda_dac_supply = { ++ .supply = "vdda_dac", ++ .dev = &beagle_dss_device.dev, ++}; ++ ++static struct regulator_consumer_supply beagle_vdds_dsi_supply = { ++ .supply = "vdds_dsi", ++ .dev = &beagle_dss_device.dev, ++}; ++ ++static void __init beagle_display_init(void) ++{ ++ int r; ++ ++ r = gpio_request(beagle_dvi_device.reset_gpio, "DVI reset"); ++ if (r < 0) { ++ printk(KERN_ERR "Unable to get DVI reset GPIO\n"); ++ return; ++ } ++ ++ gpio_direction_output(beagle_dvi_device.reset_gpio, 0); ++} ++ ++/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */ ++static struct regulator_init_data beagle_vdac = { ++ .constraints = { ++ .min_uV = 1800000, ++ .max_uV = 1800000, ++ .apply_uV = true, ++ .valid_modes_mask = REGULATOR_MODE_NORMAL ++ | REGULATOR_MODE_STANDBY, ++ .valid_ops_mask = REGULATOR_CHANGE_MODE ++ | REGULATOR_CHANGE_STATUS, ++ }, ++ .num_consumer_supplies = 1, ++ .consumer_supplies = &beagle_vdda_dac_supply, ++}; ++ ++/* VPLL2 for digital video outputs */ ++static struct regulator_init_data beagle_vpll2 = { ++ .constraints = { ++ .name = "VDVI", ++ .min_uV = 1800000, ++ .max_uV = 1800000, .valid_modes_mask = REGULATOR_MODE_NORMAL ++ | REGULATOR_MODE_STANDBY, ++ .valid_ops_mask = REGULATOR_CHANGE_MODE ++ | REGULATOR_CHANGE_STATUS, ++ }, ++ .num_consumer_supplies = 1, ++ .consumer_supplies = &beagle_vdds_dsi_supply, ++}; ++ ++static struct twl4030_platform_data beagle_twldata = { ++ .irq_base = TWL4030_IRQ_BASE, ++ .irq_end = TWL4030_IRQ_END, ++ ++ /* platform_data for children goes here */ ++ .usb = &beagle_usb_data, ++ .gpio = &beagle_gpio_data, ++ .vmmc1 = &beagle_vmmc1, ++ .vsim = &beagle_vsim, ++ .vdac = &beagle_vdac, ++ .vpll2 = &beagle_vpll2, ++}; ++ ++static struct i2c_board_info __initdata beagle_i2c1_boardinfo[] = { ++ { ++ I2C_BOARD_INFO("twl4030", 0x48), ++ .flags = I2C_CLIENT_WAKE, ++ .irq = INT_34XX_SYS_NIRQ, ++ .platform_data = &beagle_twldata, ++ }, ++}; ++ ++static int __init omap3_beagle_i2c_init(void) ++{ ++ omap_register_i2c_bus(1, 2600, beagle_i2c1_boardinfo, ++ ARRAY_SIZE(beagle_i2c1_boardinfo)); ++ omap_register_i2c_bus(2, 400, beagle_i2c2_boardinfo, ++ ARRAY_SIZE(beagle_i2c2_boardinfo)); ++ /* Bus 3 is attached to the DVI port where devices like the pico DLP ++ * projector don't work reliably with 400kHz */ ++ omap_register_i2c_bus(3, 100, NULL, 0); ++ return 0; ++} ++ ++ + static void __init omap3_beagle_init_irq(void) + { +- omap_board_config = omap3_beagle_config; +- omap_board_config_size = ARRAY_SIZE(omap3_beagle_config); + omap2_init_common_hw(mt46h32m32lf6_sdrc_params, + mt46h32m32lf6_sdrc_params); + omap_init_irq(); +@@ -418,7 +482,7 @@ + } + + static struct platform_device *omap3_beagle_devices[] __initdata = { +- &omap3_beagle_lcd_device, ++ &beagle_dss_device, + &leds_gpio, + &keys_gpio, + }; +@@ -480,11 +544,8 @@ + platform_add_devices(omap3_beagle_devices, + ARRAY_SIZE(omap3_beagle_devices)); + omap_serial_init(); +- ++ + omap_cfg_reg(J25_34XX_GPIO170); +- gpio_request(170, "DVI_nPD"); +- /* REVISIT leave DVI powered down until it's needed ... */ +- gpio_direction_output(170, true); + + omap3beagle_enc28j60_init(); + +@@ -492,6 +553,8 @@ + usb_ehci_init(&ehci_pdata); + omap3beagle_flash_init(); + ++ beagle_display_init(); ++ + /* Ensure SDRC pins are mux'd for self-refresh */ + omap_cfg_reg(H16_34XX_SDRC_CKE0); + omap_cfg_reg(H17_34XX_SDRC_CKE1); diff --git a/recipes/linux/linux-omap-2.6.31/fix-omapfb.patch b/recipes/linux/linux-omap-2.6.31/fix-omapfb.patch new file mode 100644 index 0000000000..6658bceb12 --- /dev/null +++ b/recipes/linux/linux-omap-2.6.31/fix-omapfb.patch @@ -0,0 +1,137 @@ +From linux-omap-owner@vger.kernel.org Sat Sep 12 18:36:17 2009
+Received: from localhost
+ ([127.0.0.1] helo=dominion ident=koen)
+ by dominion.dominion.void with esmtp (Exim 4.69)
+ (envelope-from <linux-omap-owner@vger.kernel.org>)
+ id 1MmVaD-0005nl-6f
+ for koen@localhost; Sat, 12 Sep 2009 18:36:17 +0200
+Received: from xs.service.utwente.nl [130.89.5.250]
+ by dominion with POP3 (fetchmail-6.3.9-rc2)
+ for <koen@localhost> (single-drop); Sat, 12 Sep 2009 18:36:17 +0200 (CEST)
+Received: from mail.service.utwente.nl ([130.89.5.254]) by exchange.service.utwente.nl with Microsoft SMTPSVC(6.0.3790.3959);
+ Sat, 12 Sep 2009 18:34:31 +0200
+Received: from mx.utwente.nl ([130.89.2.13]) by mail.service.utwente.nl with Microsoft SMTPSVC(6.0.3790.3959);
+ Sat, 12 Sep 2009 18:34:31 +0200
+Received: from vger.kernel.org (vger.kernel.org [209.132.176.167])
+ by mx.utwente.nl (8.12.10/SuSE Linux 0.7) with ESMTP id n8CGYLR7001279
+ for <k.kooi@student.utwente.nl>; Sat, 12 Sep 2009 18:34:22 +0200
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S1754253AbZILQeP (ORCPT <rfc822;k.kooi@student.utwente.nl>);
+ Sat, 12 Sep 2009 12:34:15 -0400
+Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754362AbZILQeP
+ (ORCPT <rfc822;linux-omap-outgoing>);
+ Sat, 12 Sep 2009 12:34:15 -0400
+Received: from fg-out-1718.google.com ([72.14.220.157]:62107 "EHLO
+ fg-out-1718.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S1754253AbZILQeO (ORCPT
+ <rfc822;linux-omap@vger.kernel.org>); Sat, 12 Sep 2009 12:34:14 -0400
+Received: by fg-out-1718.google.com with SMTP id 22so194962fge.1
+ for <linux-omap@vger.kernel.org>; Sat, 12 Sep 2009 09:34:17 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=gmail.com; s=gamma;
+ h=domainkey-signature:received:received:sender:from:to:cc:subject
+ :date:message-id:x-mailer;
+ bh=AAXJA19IlSONsCjIPh2mme+ulWCBhEJbyCxyyJZk4jY=;
+ b=CENOacQ7/T2g5eQKy8wvo7vClGTIOU0xNgsYWpcBl2GAwrVooMvJRMWImFJYSEaU9r
+ wZTrSIouwCoeC5J2yZII6kezDggm44Nj1eA8S+c9Hj/SSt6oU1Jqc9Ttvn7jS2SxC47i
+ 0QMLWTjaRyCHVy8jfQtObilIeTnBjDMU70FkE=
+DomainKey-Signature: a=rsa-sha1; c=nofws;
+ d=gmail.com; s=gamma;
+ h=sender:from:to:cc:subject:date:message-id:x-mailer;
+ b=TVKZoERoRk1PULFXvIXEWvDKkUb/E37Cni4zLjE4PU+5bT/zGL4a+NSkifrRx5w3ku
+ X7DR9Zc5c1NIJ0mhR5kCk6fZ6Yjp1vwo6tmzvZB9Dcy6AxWumrzjBte2EdW1Lw1l1URf
+ /QDALV74V+WT4Etn+yPAlt6Zd7WbgVcqCSEc4=
+Received: by 10.87.42.14 with SMTP id u14mr3277117fgj.28.1252773257105;
+ Sat, 12 Sep 2009 09:34:17 -0700 (PDT)
+Received: from localhost ([95.87.222.103])
+ by mx.google.com with ESMTPS id 4sm1764938fge.4.2009.09.12.09.34.12
+ (version=TLSv1/SSLv3 cipher=RC4-MD5);
+ Sat, 12 Sep 2009 09:34:13 -0700 (PDT)
+From: Sergio Aguirre <saaguirre@ti.com>
+To: Imre Deak <imre.deak@nokia.com>
+Cc: linux-fbdev-devel@lists.sourceforge.net, linux-omap@vger.kernel.org,
+ Sergio Aguirre <saaguirre@ti.com>
+Subject: [PATCH] omapfb: Reorder Register_framebuffer call
+Date: Sat, 12 Sep 2009 19:34:09 +0300
+Message-Id: <1252773249-24444-1-git-send-email-saaguirre@ti.com>
+X-Mailer: git-send-email 1.6.4.2
+Sender: linux-omap-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-omap.vger.kernel.org>
+X-Mailing-List: linux-omap@vger.kernel.org
+X-UTwente-MailScanner-Information: Scanned by MailScanner. Contact icts.servicedesk@utwente.nl for more information.
+X-UTwente-MailScanner: Found to be clean
+X-UTwente-MailScanner-From: linux-omap-owner@vger.kernel.org
+X-Spam-Status: No
+X-OriginalArrivalTime: 12 Sep 2009 16:34:31.0630 (UTC) FILETIME=[E7A3E6E0:01CA33C6]
+
+This fixes the issue in which mm_lock mutex was attempted to be
+used without initializing previously.
+
+Thanks to the testers!
+ - OMAP3430 SDP (Anand Gadiyar)
+ - OMAP3530 EVM (Vaibhav Hiremath)
+ - LogicPD's OMAP boards (Peter Brada)
+ - Beagleboard Rev. C2 (Eric Witcher)
+
+Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
+Tested-by: Vaibhav Hiremath <hvaibhav@ti.com>
+Tested-by: Anand Gadiyar <gadiyar@ti.com>
+Tested-by: Peter Barada <peterb@logicpd.com>
+Tested-by: Eric Witcher <ewitcher@mindspring.com>
+---
+ drivers/video/omap/omapfb_main.c | 20 +++++++++++---------
+ 1 files changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/video/omap/omapfb_main.c b/drivers/video/omap/omapfb_main.c
+index 125e605..60f9482 100644
+--- a/drivers/video/omap/omapfb_main.c
++++ b/drivers/video/omap/omapfb_main.c
+@@ -1503,12 +1503,21 @@ static int fbinfo_init(struct omapfb_device *fbdev, struct fb_info *info)
+ var->rotate = def_rotate;
+ var->bits_per_pixel = fbdev->panel->bpp;
+
++ r = register_framebuffer(info);
++ if (r != 0) {
++ dev_err(fbdev->dev,
++ "registering framebuffer failed\n");
++ return r;
++ }
++
+ set_fb_var(info, var);
+ set_fb_fix(info);
+
+ r = fb_alloc_cmap(&info->cmap, 16, 0);
+- if (r != 0)
++ if (r != 0) {
+ dev_err(fbdev->dev, "unable to allocate color map memory\n");
++ unregister_framebuffer(info);
++ }
+
+ return r;
+ }
+@@ -1773,15 +1782,8 @@ static int omapfb_do_probe(struct platform_device *pdev,
+ init_state++;
+
+ vram = 0;
+- for (i = 0; i < fbdev->mem_desc.region_cnt; i++) {
+- r = register_framebuffer(fbdev->fb_info[i]);
+- if (r != 0) {
+- dev_err(fbdev->dev,
+- "registering framebuffer %d failed\n", i);
+- goto cleanup;
+- }
++ for (i = 0; i < fbdev->mem_desc.region_cnt; i++)
+ vram += fbdev->mem_desc.region[i].size;
+- }
+
+ fbdev->state = OMAPFB_ACTIVE;
+
+--
+1.6.3.2
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-omap" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
diff --git a/recipes/linux/linux-omap-2.6.31/modedb-hd720.patch b/recipes/linux/linux-omap-2.6.31/modedb-hd720.patch new file mode 100644 index 0000000000..0166de651a --- /dev/null +++ b/recipes/linux/linux-omap-2.6.31/modedb-hd720.patch @@ -0,0 +1,13 @@ +--- orig/drivers/video/modedb.c.orig 2009-04-07 11:40:10.000000000 +0200 ++++ git/drivers/video/modedb.c 2009-04-07 10:35:29.000000000 +0200 +@@ -44,6 +44,10 @@ + NULL, 60, 640, 480, 39721, 40, 24, 32, 11, 96, 2, + 0, FB_VMODE_NONINTERLACED + }, { ++ /* 1280x720 @ 60 Hz, 45 kHz hsync, CEA 681-E Format 4 */ ++ "hd720", 60, 1280, 720, 13468, 220, 110, 20, 5, 40, 5, ++ 0, FB_VMODE_NONINTERLACED ++ }, { + /* 800x600 @ 56 Hz, 35.15 kHz hsync */ + NULL, 56, 800, 600, 27777, 128, 24, 22, 1, 72, 2, + 0, FB_VMODE_NONINTERLACED diff --git a/recipes/linux/linux-omap_2.6.31.bb b/recipes/linux/linux-omap_2.6.31.bb index 70bd906f55..c0f1bc4c63 100644 --- a/recipes/linux/linux-omap_2.6.31.bb +++ b/recipes/linux/linux-omap_2.6.31.bb @@ -63,6 +63,9 @@ SRC_URI_append = " \ file://usb/0014-musb-disable-PING-on-status-phase-of-control-transf.patch;patch=1 \ file://usb/0015-musb-Add-context-save-and-restore-support.patch;patch=1 \ file://usb/0016-usb-update-defconfig.patch;patch=1 \ + file://modedb-hd720.patch;patch=1 \ + file://fix-omapfb.patch;patch=1 \ + file://dss2/beagle-dss2-support.patch;patch=1 \ " SRC_URI_append_beagleboard = " file://logo_linux_clut224.ppm \ |