diff options
Diffstat (limited to 'recipes/linux/linux-openmoko-2.6.32')
29 files changed, 1227 insertions, 6088 deletions
diff --git a/recipes/linux/linux-openmoko-2.6.32/0001-wm8753-fix-build-with-gcc-4.4.2-which-works-ok-with-.patch b/recipes/linux/linux-openmoko-2.6.32/0001-wm8753-fix-build-with-gcc-4.4.2-which-works-ok-with-.patch index c6a16ab4d5..52fe6262cc 100644 --- a/recipes/linux/linux-openmoko-2.6.32/0001-wm8753-fix-build-with-gcc-4.4.2-which-works-ok-with-.patch +++ b/recipes/linux/linux-openmoko-2.6.32/0001-wm8753-fix-build-with-gcc-4.4.2-which-works-ok-with-.patch @@ -1,7 +1,7 @@ -From b3b22a8f23e6b49d21bbfe70f278a0d79419e3df Mon Sep 17 00:00:00 2001 +From 16722526979959805c493deabaac8cf9ba2f8ef6 Mon Sep 17 00:00:00 2001 From: Martin Jansa <Martin.Jansa@gmail.com> Date: Sat, 7 Nov 2009 20:33:06 +0100 -Subject: [PATCH 1/9] wm8753: fix build with gcc-4.4.2, which works ok with 4.1.2 +Subject: [PATCH 01/14] wm8753: fix build with gcc-4.4.2, which works ok with 4.1.2 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- @@ -24,5 +24,5 @@ index 5ad677c..e148406 100644 K = Kpart & 0xFFFFFFFF; -- -1.6.6.1 +1.7.1 diff --git a/recipes/linux/linux-openmoko-2.6.32/0017-accels.patch.patch b/recipes/linux/linux-openmoko-2.6.32/0002-accels.patch.patch index 16f379d055..9644473eda 100644 --- a/recipes/linux/linux-openmoko-2.6.32/0017-accels.patch.patch +++ b/recipes/linux/linux-openmoko-2.6.32/0002-accels.patch.patch @@ -1,7 +1,7 @@ -From a08be3ba79daf13baca6de98249c8784ede31297 Mon Sep 17 00:00:00 2001 +From b96dbc75c274014171a53da13686bd90d239c023 Mon Sep 17 00:00:00 2001 From: Radek Polak <psonek2@seznam.cz> Date: Fri, 9 Apr 2010 09:15:40 +0200 -Subject: [PATCH 17/22] accels.patch +Subject: [PATCH 02/14] accels.patch adds support for accelerometers. You will need include/linux/lis302dl.h and drivers/input/misc/lis302dl.c from andy-tracking. The patch needs @@ -39,7 +39,7 @@ index 980a099..0ff8949 100644 diff --git a/arch/arm/mach-s3c2442/mach-gta02.c b/arch/arm/mach-s3c2442/mach-gta02.c -index b580b1b..8e3cc91 100644 +index 7965cad..0675181 100644 --- a/arch/arm/mach-s3c2442/mach-gta02.c +++ b/arch/arm/mach-s3c2442/mach-gta02.c @@ -63,6 +63,7 @@ @@ -73,7 +73,7 @@ index b580b1b..8e3cc91 100644 struct pcf50633 *gta02_pcf; /* -@@ -776,6 +793,60 @@ const struct jbt6k74_platform_data jbt6k74_pdata = { +@@ -775,6 +792,60 @@ const struct jbt6k74_platform_data jbt6k74_pdata = { .gpio_reset = GTA02_GPIO_GLAMO(4), }; @@ -134,7 +134,7 @@ index b580b1b..8e3cc91 100644 static struct spi_board_info gta02_spi_board_info[] = { { .modalias = "jbt6k74", -@@ -786,6 +857,81 @@ static struct spi_board_info gta02_spi_board_info[] = { +@@ -785,6 +856,81 @@ static struct spi_board_info gta02_spi_board_info[] = { .bus_num = 2, .chip_select = 0 }, @@ -216,7 +216,7 @@ index b580b1b..8e3cc91 100644 }; /* BQ27000 Battery */ -@@ -1136,6 +1282,7 @@ static struct platform_device *gta02_devices[] __initdata = { +@@ -1135,6 +1281,7 @@ static struct platform_device *gta02_devices[] __initdata = { static struct platform_device *gta02_devices_pmu_children[] = { &s3c_device_ts, >a02_glamo_dev, @@ -224,7 +224,7 @@ index b580b1b..8e3cc91 100644 &s3c_device_timer[2], >a02_hdq_device, >a02_gps_userspace_consumer -@@ -1362,6 +1509,16 @@ static void __init gta02_machine_init(void) +@@ -1361,6 +1508,16 @@ static void __init gta02_machine_init(void) /* Set the panic callback to make AUX LED blink at ~5Hz. */ panic_blink = gta02_panic_blink; @@ -1755,5 +1755,5 @@ index eed4254..f92de01 100644 /* start or stop queue processing */ extern int spi_bitbang_start(struct spi_bitbang *spi); -- -1.7.0.4 +1.7.1 diff --git a/recipes/linux/linux-openmoko-2.6.32/0018-usbhost.patch.patch b/recipes/linux/linux-openmoko-2.6.32/0003-usbhost.patch.patch index 16ed3746fd..80b05eac18 100644 --- a/recipes/linux/linux-openmoko-2.6.32/0018-usbhost.patch.patch +++ b/recipes/linux/linux-openmoko-2.6.32/0003-usbhost.patch.patch @@ -1,7 +1,7 @@ -From d71534de6ab5e132d0798df30408042c229cbb62 Mon Sep 17 00:00:00 2001 +From 1000aee5e65dc824e02aafe2a70ad5b3f0d44d2d Mon Sep 17 00:00:00 2001 From: Radek Polak <psonek2@seznam.cz> Date: Fri, 9 Apr 2010 09:17:28 +0200 -Subject: [PATCH 18/22] usbhost.patch +Subject: [PATCH 03/14] usbhost.patch adds support for usb host mode and adds usb host pm sysfs node. I just copied and modified how modem is powered up and backported changes in ohci-s3c2410.c. @@ -32,7 +32,7 @@ index 6247ca0..3e7145c 100644 # Machine support diff --git a/arch/arm/mach-s3c2442/mach-gta02.c b/arch/arm/mach-s3c2442/mach-gta02.c -index 8e3cc91..f1d4d51 100644 +index 0675181..779d6df 100644 --- a/arch/arm/mach-s3c2442/mach-gta02.c +++ b/arch/arm/mach-s3c2442/mach-gta02.c @@ -322,6 +322,10 @@ static struct platform_device gta02_pm_gsm_dev = { @@ -106,7 +106,7 @@ index 8e3cc91..f1d4d51 100644 static struct regulator_bulk_data gta02_gps_consumer_supply = { .supply = "GPS", }; -@@ -1332,12 +1368,17 @@ static struct platform_device* gta02_glamo_gpio_children[] = { +@@ -1331,12 +1367,17 @@ static struct platform_device* gta02_glamo_gpio_children[] = { static struct platform_device* gta02_pcf50633_gpio_children[] = { >a02_gsm_supply_device, @@ -124,7 +124,7 @@ index 8e3cc91..f1d4d51 100644 static struct platform_device* gta02_hdq_children[] = { &bq27000_battery_device, }; -@@ -1364,14 +1405,19 @@ static struct gta02_device_children gta02_device_children[] = { +@@ -1363,14 +1404,19 @@ static struct gta02_device_children gta02_device_children[] = { }, { .dev_name = "pcf50633-gpio", @@ -229,5 +229,5 @@ index a68af2d..02bd7b0 100644 s3c2410_stop_hc(dev); iounmap(hcd->regs); -- -1.7.0.4 +1.7.1 diff --git a/recipes/linux/linux-openmoko-2.6.32/0019-ar6000_delay.patch.patch b/recipes/linux/linux-openmoko-2.6.32/0004-ar6000_delay.patch.patch index 54200d558f..104a8c8951 100644 --- a/recipes/linux/linux-openmoko-2.6.32/0019-ar6000_delay.patch.patch +++ b/recipes/linux/linux-openmoko-2.6.32/0004-ar6000_delay.patch.patch @@ -1,7 +1,7 @@ -From cf93a0f8d2d61a2e13590c261dee4c4d74412db7 Mon Sep 17 00:00:00 2001 +From c9580261d79d8d1664fbd2da52dcd2148da9ef14 Mon Sep 17 00:00:00 2001 From: Radek Polak <psonek2@seznam.cz> Date: Fri, 9 Apr 2010 09:18:02 +0200 -Subject: [PATCH 19/22] ar6000_delay.patch +Subject: [PATCH 04/14] ar6000_delay.patch patch from https://docs.openmoko.org/trac/ticket/2327 - wifi is working good (100% until now) for me with this patch. @@ -207,5 +207,5 @@ index 386d96e..90178d0 100644 if (ret == A_OK) return 0; -- -1.7.0.4 +1.7.1 diff --git a/recipes/linux/linux-openmoko-2.6.32/0005-Add-JBT6k74-hook-for-use-by-KMS.patch b/recipes/linux/linux-openmoko-2.6.32/0005-Add-JBT6k74-hook-for-use-by-KMS.patch deleted file mode 100644 index 744004e7b1..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0005-Add-JBT6k74-hook-for-use-by-KMS.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 972c0a58e9e238c266adc77c88dcd8de6f123742 Mon Sep 17 00:00:00 2001 -From: Thomas White <taw@bitwiz.org.uk> -Date: Sat, 21 Nov 2009 21:42:16 +0100 -Subject: [PATCH 5/9] Add JBT6k74 hook for use by KMS - -Signed-off-by: Thomas White <taw@bitwiz.org.uk> ---- - drivers/video/backlight/jbt6k74.c | 18 ++++++++++++++++++ - 1 files changed, 18 insertions(+), 0 deletions(-) - -diff --git a/drivers/video/backlight/jbt6k74.c b/drivers/video/backlight/jbt6k74.c -index 8450904..95ca4cf 100644 ---- a/drivers/video/backlight/jbt6k74.c -+++ b/drivers/video/backlight/jbt6k74.c -@@ -698,6 +698,22 @@ static int jbt6k74_get_power(struct lcd_device *ld) - } - } - -+/* This is utterly, totally horrible. I'm REALLY sorry... */ -+struct jbt_info *jbt_global; -+void jbt6k74_action(int val) -+{ -+ if ( !jbt_global ) { -+ printk(KERN_CRIT "JBT not initialised!!!\n"); -+ return; -+ } -+ if ( val == 0 ) { -+ jbt6k74_enter_power_mode(jbt_global, JBT_POWER_MODE_SLEEP); -+ } else { -+ jbt6k74_enter_power_mode(jbt_global, JBT_POWER_MODE_NORMAL); -+ } -+} -+EXPORT_SYMBOL_GPL(jbt6k74_action); -+ - struct lcd_ops jbt6k74_lcd_ops = { - .set_power = jbt6k74_set_power, - .get_power = jbt6k74_get_power, -@@ -728,6 +744,8 @@ static int __devinit jbt_probe(struct spi_device *spi) - if (!jbt) - return -ENOMEM; - -+ jbt_global = jbt; -+ - jbt->spi = spi; - - jbt->lcd_dev = lcd_device_register("jbt6k74-lcd", &spi->dev, jbt, --- -1.6.6.1 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0020-save_regs.patch.patch b/recipes/linux/linux-openmoko-2.6.32/0005-save_regs.patch.patch index 8fc2cea326..7873f850e4 100644 --- a/recipes/linux/linux-openmoko-2.6.32/0020-save_regs.patch.patch +++ b/recipes/linux/linux-openmoko-2.6.32/0005-save_regs.patch.patch @@ -1,7 +1,7 @@ -From a9d6c115089a0a34fbca89c539de50148a2cf34e Mon Sep 17 00:00:00 2001 +From f143dfe95e9b48aebc8fad111086a25c915bf479 Mon Sep 17 00:00:00 2001 From: Radek Polak <psonek2@seznam.cz> Date: Fri, 9 Apr 2010 09:22:23 +0200 -Subject: [PATCH 20/22] save_regs.patch +Subject: [PATCH 05/14] save_regs.patch With this patch wifi can survive suspend. --- @@ -136,5 +136,5 @@ index e4898e9..b49d674 100644 extern int mmc_wait_for_cmd(struct mmc_host *, struct mmc_command *, int); extern int mmc_wait_for_app_cmd(struct mmc_host *, struct mmc_card *, -- -1.7.0.4 +1.7.1 diff --git a/recipes/linux/linux-openmoko-2.6.32/0006-glamo-drm-use-dev_set_drvdata-instead-of-setting-dri.patch b/recipes/linux/linux-openmoko-2.6.32/0006-glamo-drm-use-dev_set_drvdata-instead-of-setting-dri.patch deleted file mode 100644 index f685608253..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0006-glamo-drm-use-dev_set_drvdata-instead-of-setting-dri.patch +++ /dev/null @@ -1,29 +0,0 @@ -From be2d944c2b29b19b4cee7c64b00bd75cf7209724 Mon Sep 17 00:00:00 2001 -From: Martin Jansa <Martin.Jansa@gmail.com> -Date: Tue, 22 Dec 2009 16:11:27 +0100 -Subject: [PATCH 6/9] glamo-drm: use dev_set_drvdata instead of setting driver_data directly - -* driver_data is private since 2.6.32 - http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b4028437876866aba4747a655ede00f892089e14 - -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> ---- - drivers/mfd/glamo/glamo-drm-drv.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-drm-drv.c b/drivers/mfd/glamo/glamo-drm-drv.c -index f30097e..1907a47 100644 ---- a/drivers/mfd/glamo/glamo-drm-drv.c -+++ b/drivers/mfd/glamo/glamo-drm-drv.c -@@ -347,7 +347,7 @@ out_release_regs: - release_mem_region(gdrm->reg->start, resource_size(gdrm->reg)); - out_free: - kfree(gdrm); -- pdev->dev.driver_data = NULL; -+ dev_set_drvdata(&pdev->dev, NULL); - return rc; - } - --- -1.6.6.1 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0006-gta02-defconfigs-enable-LEDS_S3C24XX-and-dummy-batte.patch b/recipes/linux/linux-openmoko-2.6.32/0006-gta02-defconfigs-enable-LEDS_S3C24XX-and-dummy-batte.patch new file mode 100644 index 0000000000..103c06c886 --- /dev/null +++ b/recipes/linux/linux-openmoko-2.6.32/0006-gta02-defconfigs-enable-LEDS_S3C24XX-and-dummy-batte.patch @@ -0,0 +1,66 @@ +From 7e4a1fee4f08ef7ccedd4706b4890afc71f37dc4 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Mon, 17 May 2010 12:41:06 +0200 +Subject: [PATCH 06/14] gta02 defconfigs, enable LEDS_S3C24XX and dummy battery driver + +--- + arch/arm/configs/gta02_defconfig | 2 +- + arch/arm/configs/gta02_drm_defconfig | 10 +++++----- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/arch/arm/configs/gta02_defconfig b/arch/arm/configs/gta02_defconfig +index 73d26ba..55832ac 100644 +--- a/arch/arm/configs/gta02_defconfig ++++ b/arch/arm/configs/gta02_defconfig +@@ -1635,7 +1635,7 @@ CONFIG_LEDS_CLASS=y + # + # LED drivers + # +-# CONFIG_LEDS_S3C24XX is not set ++CONFIG_LEDS_S3C24XX=y + # CONFIG_LEDS_PCA9532 is not set + CONFIG_LEDS_GPIO=y + CONFIG_LEDS_GPIO_PLATFORM=y +diff --git a/arch/arm/configs/gta02_drm_defconfig b/arch/arm/configs/gta02_drm_defconfig +index 05aa130..62c1ee4 100644 +--- a/arch/arm/configs/gta02_drm_defconfig ++++ b/arch/arm/configs/gta02_drm_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.32.11 +-# Sun Apr 11 14:20:07 2010 ++# Linux kernel version: 2.6.32.13 ++# Mon May 17 14:13:35 2010 + # + CONFIG_ARM=y + CONFIG_HAVE_PWM=y +@@ -1233,7 +1233,7 @@ CONFIG_POWER_SUPPLY=y + CONFIG_CHARGER_PCF50633=y + CONFIG_BATTERY_BQ27000_HDQ=y + CONFIG_HDQ_GPIO_BITBANG=y +-# CONFIG_BATTERY_PLATFORM is not set ++CONFIG_BATTERY_PLATFORM=y + # CONFIG_HWMON is not set + # CONFIG_THERMAL is not set + CONFIG_WATCHDOG=y +@@ -1681,14 +1681,14 @@ CONFIG_LEDS_CLASS=y + # + # LED drivers + # +-# CONFIG_LEDS_S3C24XX is not set ++CONFIG_LEDS_S3C24XX=y + # CONFIG_LEDS_PCA9532 is not set + CONFIG_LEDS_GPIO=y + CONFIG_LEDS_GPIO_PLATFORM=y + # CONFIG_LEDS_LP3944 is not set + # CONFIG_LEDS_PCA955X is not set + # CONFIG_LEDS_DAC124S085 is not set +-# CONFIG_LEDS_PWM is not set ++CONFIG_LEDS_PWM=y + # CONFIG_LEDS_BD2802 is not set + + # +-- +1.7.1 + diff --git a/recipes/linux/linux-openmoko-2.6.32/0002-DRM-for-platform-devices.patch b/recipes/linux/linux-openmoko-2.6.32/0007-DRM-for-platform-devices.patch index 4e47a088d0..e16379fecf 100644 --- a/recipes/linux/linux-openmoko-2.6.32/0002-DRM-for-platform-devices.patch +++ b/recipes/linux/linux-openmoko-2.6.32/0007-DRM-for-platform-devices.patch @@ -1,7 +1,7 @@ -From 660570997a5c998aaecc94798b6ea8d60b0da053 Mon Sep 17 00:00:00 2001 +From d05d2c82e2ec110720c5c714ad18d60ef676aa1d Mon Sep 17 00:00:00 2001 From: Thomas White <taw@bitwiz.org.uk> Date: Tue, 20 Oct 2009 15:52:30 +0200 -Subject: [PATCH 2/9] DRM for platform devices +Subject: [PATCH 07/14] DRM for platform devices This modifies the DRM core in a small number of places to allow platform devices to be used for direct rendering, alongside PCI devices. @@ -454,5 +454,5 @@ index 7ad3faa..1d9a229 100644 extern int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent, struct drm_driver *driver); -- -1.6.6.1 +1.7.1 diff --git a/recipes/linux/linux-openmoko-2.6.32/0007-glamo-drm-select-DRM_KMS_HELPER-for-crtc-functions.patch b/recipes/linux/linux-openmoko-2.6.32/0007-glamo-drm-select-DRM_KMS_HELPER-for-crtc-functions.patch deleted file mode 100644 index 68751942a9..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0007-glamo-drm-select-DRM_KMS_HELPER-for-crtc-functions.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 8bb128ce2474ef10c71ea681fa01e574c1ec3114 Mon Sep 17 00:00:00 2001 -From: Martin Jansa <Martin.Jansa@gmail.com> -Date: Tue, 22 Dec 2009 16:32:57 +0100 -Subject: [PATCH 7/9] glamo-drm: select DRM_KMS_HELPER for crtc functions - ---- - drivers/mfd/glamo/Kconfig | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -diff --git a/drivers/mfd/glamo/Kconfig b/drivers/mfd/glamo/Kconfig -index 214c70e..a12ebf6 100644 ---- a/drivers/mfd/glamo/Kconfig -+++ b/drivers/mfd/glamo/Kconfig -@@ -47,6 +47,7 @@ config MFD_GLAMO_DRM - select FB_CFB_FILLRECT - select FB_CFB_COPYAREA - select FB_CFB_IMAGEBLIT -+ select DRM_KMS_HELPER - help - Direct Rendering Manager interface for the S-Media Glamo chip, as - used in Openmoko FreeRunner (GTA02). --- -1.6.6.1 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0003-Glamo-DRM-and-KMS-driver.patch b/recipes/linux/linux-openmoko-2.6.32/0008-Glamo-DRM-and-KMS-driver.patch index 6c1cc415d9..cb680f1ed5 100644 --- a/recipes/linux/linux-openmoko-2.6.32/0003-Glamo-DRM-and-KMS-driver.patch +++ b/recipes/linux/linux-openmoko-2.6.32/0008-Glamo-DRM-and-KMS-driver.patch @@ -1,30 +1,31 @@ -From eff70b6d14cc372944bbeda0dd0afe8599327f96 Mon Sep 17 00:00:00 2001 +From ee4092984dd817e3889a48c0b51c173e96c71913 Mon Sep 17 00:00:00 2001 From: Thomas White <taw@bitwiz.org.uk> Date: Tue, 20 Oct 2009 16:14:55 +0200 -Subject: [PATCH 3/9] Glamo DRM and KMS driver +Subject: [PATCH 08/14] Glamo DRM and KMS driver -This adds the Glamo DRM and KMS driver, but not the modifications needed +This adds the Glamo DRM and KMS driver, but note that modifications are needed elsewhere to support it. Signed-off-by: Thomas White <taw@bitwiz.org.uk> +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> --- - drivers/mfd/glamo/Kconfig | 15 + + drivers/mfd/glamo/Kconfig | 16 + drivers/mfd/glamo/Makefile | 5 +- - drivers/mfd/glamo/glamo-buffer.c | 372 ++++++++++++++ - drivers/mfd/glamo/glamo-buffer.h | 60 +++ - drivers/mfd/glamo/glamo-cmdq.c | 528 ++++++++++++++++++++ + drivers/mfd/glamo/glamo-buffer.c | 374 +++++++++++++ + drivers/mfd/glamo/glamo-buffer.h | 60 ++ + drivers/mfd/glamo/glamo-cmdq.c | 555 +++++++++++++++++++ drivers/mfd/glamo/glamo-cmdq.h | 49 ++ - drivers/mfd/glamo/glamo-display.c | 869 +++++++++++++++++++++++++++++++++ - drivers/mfd/glamo/glamo-display.h | 39 ++ - drivers/mfd/glamo/glamo-drm-drv.c | 444 +++++++++++++++++ - drivers/mfd/glamo/glamo-drm-private.h | 156 ++++++ - drivers/mfd/glamo/glamo-fence.c | 330 +++++++++++++ + drivers/mfd/glamo/glamo-display.c | 975 +++++++++++++++++++++++++++++++++ + drivers/mfd/glamo/glamo-display.h | 41 ++ + drivers/mfd/glamo/glamo-drm-drv.c | 423 ++++++++++++++ + drivers/mfd/glamo/glamo-drm-private.h | 166 ++++++ + drivers/mfd/glamo/glamo-fence.c | 330 +++++++++++ drivers/mfd/glamo/glamo-fence.h | 34 ++ - drivers/mfd/glamo/glamo-kms-fb.c | 540 ++++++++++++++++++++ + drivers/mfd/glamo/glamo-kms-fb.c | 493 +++++++++++++++++ drivers/mfd/glamo/glamo-kms-fb.h | 41 ++ include/drm/Kbuild | 1 + - include/drm/glamo_drm.h | 153 ++++++ - 16 files changed, 3635 insertions(+), 1 deletions(-) + include/drm/glamo_drm.h | 153 +++++ + 16 files changed, 3715 insertions(+), 1 deletions(-) create mode 100644 drivers/mfd/glamo/glamo-buffer.c create mode 100644 drivers/mfd/glamo/glamo-buffer.h create mode 100644 drivers/mfd/glamo/glamo-cmdq.c @@ -40,10 +41,10 @@ Signed-off-by: Thomas White <taw@bitwiz.org.uk> create mode 100644 include/drm/glamo_drm.h diff --git a/drivers/mfd/glamo/Kconfig b/drivers/mfd/glamo/Kconfig -index 3aa4831..214c70e 100644 +index 3aa4831..a12ebf6 100644 --- a/drivers/mfd/glamo/Kconfig +++ b/drivers/mfd/glamo/Kconfig -@@ -40,3 +40,18 @@ config MFD_GLAMO_MCI +@@ -40,3 +40,19 @@ config MFD_GLAMO_MCI neo1973 GTA-02. If unsure, say N. @@ -54,6 +55,7 @@ index 3aa4831..214c70e 100644 + select FB_CFB_FILLRECT + select FB_CFB_COPYAREA + select FB_CFB_IMAGEBLIT ++ select DRM_KMS_HELPER + help + Direct Rendering Manager interface for the S-Media Glamo chip, as + used in Openmoko FreeRunner (GTA02). @@ -83,10 +85,10 @@ index ebf26f7..d5ebf8f 100644 + glamo-display.o glamo-kms-fb.o glamo-fence.o diff --git a/drivers/mfd/glamo/glamo-buffer.c b/drivers/mfd/glamo/glamo-buffer.c new file mode 100644 -index 0000000..45500d3 +index 0000000..82ea0c0 --- /dev/null +++ b/drivers/mfd/glamo/glamo-buffer.c -@@ -0,0 +1,372 @@ +@@ -0,0 +1,374 @@ +/* + * SMedia Glamo 336x/337x memory management + * @@ -334,6 +336,8 @@ index 0000000..45500d3 + if (!gobj->mmap_offset) { + ret = glamo_gem_create_mmap_offset(obj); + if (ret) { ++ printk(KERN_CRIT "Couldn't create mmap offset\n"); ++ drm_gem_object_unreference(obj); + mutex_unlock(&dev->struct_mutex); + return ret; + } @@ -527,10 +531,10 @@ index 0000000..41f18fd +#endif /* __GLAMO_BUFFER_H */ diff --git a/drivers/mfd/glamo/glamo-cmdq.c b/drivers/mfd/glamo/glamo-cmdq.c new file mode 100644 -index 0000000..caedc27 +index 0000000..442963c --- /dev/null +++ b/drivers/mfd/glamo/glamo-cmdq.c -@@ -0,0 +1,528 @@ +@@ -0,0 +1,555 @@ +/* + * SMedia Glamo 336x/337x command queue handling + * @@ -592,6 +596,9 @@ index 0000000..caedc27 +#include "glamo-regs.h" + + ++#define GLAMO_CMDQ_SIZE (128 * 1024) /* 128k ring buffer */ ++ ++ +static inline void reg_write(struct glamodrm_handle *gdrm, + u_int16_t reg, u_int16_t val) +{ @@ -969,7 +976,7 @@ index 0000000..caedc27 + burst[0] = 1<<15 | cbuf->base; + burst[1] = data_size / 2; /* -> 2-byte words */ + if ( burst[1] & 0x01 ) { -+ printk(KERN_CRIT "Burst not aligned!\n"); ++ printk(KERN_WARNING "[glamo-drm] Burst not aligned!\n"); + goto cleanup; + } + @@ -988,7 +995,7 @@ index 0000000..caedc27 +} + + -+int glamo_cmdq_init(struct glamodrm_handle *gdrm) ++int glamo_cmdq_setup(struct glamodrm_handle *gdrm) +{ + unsigned int i; + @@ -1008,9 +1015,9 @@ index 0000000..caedc27 + + /* Set up command queue location */ + reg_write(gdrm, GLAMO_REG_CMDQ_BASE_ADDRL, -+ GLAMO_OFFSET_CMDQ & 0xffff); ++ gdrm->cmdq_offs & 0xffff); + reg_write(gdrm, GLAMO_REG_CMDQ_BASE_ADDRH, -+ (GLAMO_OFFSET_CMDQ >> 16) & 0x7f); ++ (gdrm->cmdq_offs >> 16) & 0x7f); + + /* Length of command queue in 1k blocks, minus one */ + reg_write(gdrm, GLAMO_REG_CMDQ_LEN, (GLAMO_CMDQ_SIZE >> 10)-1); @@ -1025,6 +1032,30 @@ index 0000000..caedc27 +} + + ++int glamo_cmdq_init(struct glamodrm_handle *gdrm) ++{ ++ struct drm_gem_object *obj; ++ struct drm_glamo_gem_object *gobj; ++ int ret = 0; ++ ++ obj = glamo_gem_object_alloc(dev, GLAMO_CMDQ_SIZE, 4); ++ if ( !obj ) { ++ printk(KERN_ERR "[glamo-drm] Failed to allocate CmdQ\n"); ++ ret = -ENOMEM; ++ goto out; ++ } ++ gobj = fbo->driver_private; ++ gdrm->cmdq_offs = GLAMO_OFFSET_FB + gobj->block->start; ++ gdrm->cmdq_base = ioremap(gdrm->vram->start + offs, GLAMO_CMDQ_SIZE); ++ ++ /* Set up registers */ ++ glamo_cmdq_setup(gdrm); ++ ++out: ++ return ret; ++} ++ ++ +int glamo_cmdq_shutdown(struct glamodrm_handle *gdrm) +{ + return 0; @@ -1039,7 +1070,7 @@ index 0000000..caedc27 + +void glamo_cmdq_resume(struct glamodrm_handle *gdrm) +{ -+ glamo_cmdq_init(gdrm); ++ glamo_cmdq_setup(gdrm); +} + + @@ -1116,10 +1147,10 @@ index 0000000..510d195 +#endif /* __GLAMO_CMDQ_H */ diff --git a/drivers/mfd/glamo/glamo-display.c b/drivers/mfd/glamo/glamo-display.c new file mode 100644 -index 0000000..34a665a +index 0000000..75ad734 --- /dev/null +++ b/drivers/mfd/glamo/glamo-display.c -@@ -0,0 +1,869 @@ +@@ -0,0 +1,975 @@ +/* + * SMedia Glamo 336x/337x display + * @@ -1174,19 +1205,18 @@ index 0000000..34a665a + * + */ + -+#define DEBUG 1 -+ +#include <drm/drmP.h> +#include <drm/glamo_drm.h> +#include <drm/drm_crtc_helper.h> +#include <drm/drm_crtc.h> ++#include <linux/glamofb.h> ++#include <linux/jbt6k74.h> + +#include "glamo-core.h" +#include "glamo-drm-private.h" +#include "glamo-regs.h" +#include "glamo-kms-fb.h" +#include "glamo-display.h" -+#include <linux/glamofb.h> + + +#define GLAMO_LCD_WIDTH_MASK 0x03FF @@ -1361,14 +1391,6 @@ index 0000000..34a665a +} + + -+extern void jbt6k74_action(int val); -+ -+/* Power on/off */ -+static void glamo_crtc_dpms(struct drm_crtc *crtc, int mode) -+{ -+} -+ -+ +static bool glamo_crtc_mode_fixup(struct drm_crtc *crtc, + struct drm_display_mode *mode, + struct drm_display_mode *adjusted_mode) @@ -1397,6 +1419,12 @@ index 0000000..34a665a + gcrtc = to_glamo_crtc(crtc); + gdrm = gcrtc->gdrm; /* Here it is! */ + ++ if ( !gcrtc->pixel_clock_on ) { ++ printk(KERN_WARNING "[glamo-drm] Display is off - " ++ "enabling it before setting base.\n"); ++ glamo_lcd_power(gdrm, 1); ++ } ++ + gfb = to_glamo_framebuffer(crtc->fb); + obj = gfb->obj; + gobj = obj->driver_private; @@ -1423,63 +1451,176 @@ index 0000000..34a665a + struct glamodrm_handle *gdrm; + struct glamo_crtc *gcrtc; + int retr_start, retr_end, disp_start, disp_end; ++ int rot; + + /* Dig out our handle */ + gcrtc = to_glamo_crtc(crtc); + gdrm = gcrtc->gdrm; /* Here it is! */ + ++ if ( !gcrtc->pixel_clock_on ) { ++ printk(KERN_WARNING "[glamo-drm] Display is off - " ++ "enabling it before setting mode.\n"); ++ glamo_lcd_power(gdrm, 1); ++ msleep(500); ++ } ++ ++ /* Rotate? */ ++ if ( (mode->hdisplay == 640) && (mode->vdisplay == 480) ) { ++ rot = GLAMO_LCD_ROT_MODE_90; ++ } else if ( (mode->hdisplay == 480) && (mode->vdisplay == 640) ) { ++ rot = GLAMO_LCD_ROT_MODE_0; ++ } else if ( (mode->hdisplay == 320) && (mode->vdisplay == 240) ) { ++ rot = GLAMO_LCD_ROT_MODE_90; ++ } else if ( (mode->hdisplay == 240) && (mode->vdisplay == 320) ) { ++ rot = GLAMO_LCD_ROT_MODE_0; ++ } else { ++ printk(KERN_WARNING "[glamo-drm] Couldn't choose rotation.\n"); ++ rot = GLAMO_LCD_ROT_MODE_0; ++ } ++ + glamo_lcd_cmd_mode(gdrm, 1); + -+ glamo_engine_reclock(gdrm->glamo_core, GLAMO_ENGINE_LCD, mode->clock); -+ gdrm->saved_clock = mode->clock; ++ /* Set dimensions */ ++ if ( rot == GLAMO_LCD_ROT_MODE_0 ) { ++ ++ glamo_engine_reclock(gdrm->glamo_core, GLAMO_ENGINE_LCD, ++ mode->clock); ++ ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_WIDTH, ++ GLAMO_LCD_WIDTH_MASK, mode->hdisplay); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HEIGHT, ++ GLAMO_LCD_HEIGHT_MASK, mode->vdisplay); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_PITCH, ++ GLAMO_LCD_PITCH_MASK, mode->hdisplay*2); ++ ++ /* Set rotation */ ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_WIDTH, ++ GLAMO_LCD_ROT_MODE_MASK, rot); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_MODE1, ++ GLAMO_LCD_MODE1_ROTATE_EN, ++ (rot != GLAMO_LCD_ROT_MODE_0) ? ++ GLAMO_LCD_MODE1_ROTATE_EN : 0); ++ ++ /* Convert "X modeline timings" into "Glamo timings" */ ++ retr_start = 0; ++ retr_end = retr_start + mode->hsync_end - mode->hsync_start; ++ disp_start = mode->htotal - mode->hsync_start; ++ disp_end = disp_start + mode->hdisplay; ++ ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_TOTAL, ++ GLAMO_LCD_HV_TOTAL_MASK, mode->htotal); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_START, ++ GLAMO_LCD_HV_RETR_START_MASK, retr_start); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_END, ++ GLAMO_LCD_HV_RETR_END_MASK, retr_end); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_START, ++ GLAMO_LCD_HV_RETR_DISP_START_MASK, disp_start); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_END, ++ GLAMO_LCD_HV_RETR_DISP_END_MASK, disp_end); ++ ++ /* The same in the vertical direction */ ++ retr_start = 0; ++ retr_end = retr_start + mode->vsync_end - mode->vsync_start; ++ disp_start = mode->vtotal - mode->vsync_start; ++ disp_end = disp_start + mode->vdisplay; ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_TOTAL, ++ GLAMO_LCD_HV_TOTAL_MASK, mode->vtotal); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_START, ++ GLAMO_LCD_HV_RETR_START_MASK, retr_start); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_END, ++ GLAMO_LCD_HV_RETR_END_MASK, retr_end); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_START, ++ GLAMO_LCD_HV_RETR_DISP_START_MASK, ++ disp_start); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_END, ++ GLAMO_LCD_HV_RETR_DISP_END_MASK, disp_end); ++ ++ } else { ++ ++ glamo_engine_reclock(gdrm->glamo_core, GLAMO_ENGINE_LCD, ++ mode->clock/2); ++ ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_WIDTH, ++ GLAMO_LCD_WIDTH_MASK, mode->vdisplay); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HEIGHT, ++ GLAMO_LCD_HEIGHT_MASK, mode->hdisplay); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_PITCH, ++ GLAMO_LCD_PITCH_MASK, mode->hdisplay*2); ++ ++ /* Set rotation */ ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_WIDTH, ++ GLAMO_LCD_ROT_MODE_MASK, rot); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_MODE1, ++ GLAMO_LCD_MODE1_ROTATE_EN, ++ (rot != GLAMO_LCD_ROT_MODE_0) ? ++ GLAMO_LCD_MODE1_ROTATE_EN : 0); ++ ++ /* Apply "vertical" numbers to the horizontal registers */ ++ retr_start = 0; ++ retr_end = retr_start + mode->vsync_end - mode->vsync_start; ++ disp_start = mode->vtotal - mode->vsync_start; ++ disp_end = disp_start + mode->vdisplay; ++ ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_TOTAL, ++ GLAMO_LCD_HV_TOTAL_MASK, mode->vtotal); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_START, ++ GLAMO_LCD_HV_RETR_START_MASK, retr_start); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_END, ++ GLAMO_LCD_HV_RETR_END_MASK, retr_end); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_START, ++ GLAMO_LCD_HV_RETR_DISP_START_MASK, ++ disp_start); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_END, ++ GLAMO_LCD_HV_RETR_DISP_END_MASK, disp_end); ++ ++ /* Apply "horizontal" numbers to the vertical registers */ ++ retr_start = 0; ++ retr_end = retr_start + mode->hsync_end - mode->hsync_start; ++ disp_start = mode->htotal - mode->hsync_start; ++ disp_end = disp_start + mode->hdisplay; ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_TOTAL, ++ GLAMO_LCD_HV_TOTAL_MASK, mode->htotal); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_START, ++ GLAMO_LCD_HV_RETR_START_MASK, retr_start); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_END, ++ GLAMO_LCD_HV_RETR_END_MASK, retr_end); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_START, ++ GLAMO_LCD_HV_RETR_DISP_START_MASK, ++ disp_start); ++ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_END, ++ GLAMO_LCD_HV_RETR_DISP_END_MASK, disp_end); ++ ++ } + -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_WIDTH, -+ GLAMO_LCD_WIDTH_MASK, mode->hdisplay); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HEIGHT, -+ GLAMO_LCD_HEIGHT_MASK, mode->vdisplay); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_PITCH, -+ GLAMO_LCD_PITCH_MASK, mode->hdisplay*2); -+ -+ /* Convert "X modeline timings" into "Glamo timings" */ -+ retr_start = 0; -+ retr_end = retr_start + mode->hsync_end - mode->hsync_start; -+ disp_start = mode->htotal - mode->hsync_start; -+ disp_end = disp_start + mode->hdisplay; -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_TOTAL, -+ GLAMO_LCD_HV_TOTAL_MASK, mode->htotal); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_START, -+ GLAMO_LCD_HV_RETR_START_MASK, retr_start); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_END, -+ GLAMO_LCD_HV_RETR_END_MASK, retr_end); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_START, -+ GLAMO_LCD_HV_RETR_DISP_START_MASK, disp_start); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_END, -+ GLAMO_LCD_HV_RETR_DISP_END_MASK, disp_end); -+ -+ /* The same in the vertical direction */ -+ retr_start = 0; -+ retr_end = retr_start + mode->vsync_end - mode->vsync_start; -+ disp_start = mode->vtotal - mode->vsync_start; -+ disp_end = disp_start + mode->vdisplay; -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_TOTAL, -+ GLAMO_LCD_HV_TOTAL_MASK, mode->vtotal); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_START, -+ GLAMO_LCD_HV_RETR_START_MASK, retr_start); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_END, -+ GLAMO_LCD_HV_RETR_END_MASK, retr_end); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_START, -+ GLAMO_LCD_HV_RETR_DISP_START_MASK, disp_start); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_END, -+ GLAMO_LCD_HV_RETR_DISP_END_MASK, disp_end); ++ gdrm->saved_clock = mode->clock; + + glamo_lcd_cmd_mode(gdrm, 0); + + glamo_crtc_mode_set_base(crtc, 0, 0, old_fb); + ++ if ( mode->hdisplay == 240 ) { ++ jbt6k74_finish_resolutionchange(JBT_RESOLUTION_QVGA); ++ } else { ++ jbt6k74_finish_resolutionchange(JBT_RESOLUTION_VGA); ++ } ++ ++ gcrtc->current_mode = *mode; ++ gcrtc->current_mode_set = 1; ++ gcrtc->current_fb = old_fb; ++ + return 0; +} + + ++/* This is not the right place to switch power on/off, because the helper ++ * stuff ends up calling this before/after setting the mode. We can't ++ * set modes with the display off (although backlight off would be OK) */ ++static void glamo_crtc_dpms(struct drm_crtc *crtc, int mode) ++{ ++ /* do nothing */ ++} ++ ++ +static void glamo_crtc_prepare(struct drm_crtc *crtc) +{ +} @@ -1537,43 +1678,53 @@ index 0000000..34a665a + +static int glamo_connector_get_modes(struct drm_connector *connector) +{ -+ struct drm_display_mode *mode; + struct glamo_fb_platform_data *fb_info; + struct glamo_output *goutput = to_glamo_output(connector); + struct glamodrm_handle *gdrm = goutput->gdrm; ++ int i; + + /* Dig out the record which will tell us about the hardware */ + fb_info = gdrm->glamo_core->pdata->fb_data; + -+ mode = drm_mode_create(connector->dev); -+ if (!mode) -+ return 0; -+ /* Fill in 'mode' here */ -+ mode->type = DRM_MODE_TYPE_DEFAULT | DRM_MODE_TYPE_PREFERRED; ++ for ( i=0; i<fb_info->num_modes; i++ ) { ++ ++ struct drm_display_mode *mode; ++ ++ mode = drm_mode_create(connector->dev); ++ if ( !mode ) continue; ++ ++ mode->type = DRM_MODE_TYPE_DEFAULT | DRM_MODE_TYPE_PREFERRED; ++ ++ /* Convert framebuffer timings into KMS timings. ++ * First: ps -> kHz */ ++ mode->clock = 1000000000UL / fb_info->modes[i].pixclock; ++ mode->clock *= 1000; /* then kHz -> Hz */ ++ mode->hdisplay = fb_info->modes[i].xres; ++ mode->hsync_start = fb_info->modes[i].right_margin ++ + mode->hdisplay; ++ mode->hsync_end = mode->hsync_start ++ + fb_info->modes[i].hsync_len; ++ mode->htotal = mode->hsync_end + fb_info->modes[i].left_margin; ++ mode->hskew = 0; + -+ /* Convert framebuffer timings into KMS timings */ -+ mode->clock = 1000000000UL / fb_info->modes[0].pixclock; /* ps -> kHz */ -+ mode->clock *= 1000; /* kHz -> Hz */ -+ mode->hdisplay = fb_info->modes[0].xres; -+ mode->hsync_start = fb_info->modes[0].right_margin + mode->hdisplay; -+ mode->hsync_end = mode->hsync_start + fb_info->modes[0].hsync_len; -+ mode->htotal = mode->hsync_end + fb_info->modes[0].left_margin; -+ mode->hskew = 0; ++ mode->vdisplay = fb_info->modes[i].yres; ++ mode->vsync_start = fb_info->modes[i].lower_margin ++ + mode->vdisplay; ++ mode->vsync_end = mode->vsync_start ++ + fb_info->modes[i].vsync_len; ++ mode->vtotal = mode->vsync_end + fb_info->modes[i].upper_margin; ++ mode->vscan = 0; + -+ mode->vdisplay = fb_info->modes[0].yres; -+ mode->vsync_start = fb_info->modes[0].lower_margin + mode->vdisplay; -+ mode->vsync_end = mode->vsync_start + fb_info->modes[0].vsync_len; -+ mode->vtotal = mode->vsync_end + fb_info->modes[0].upper_margin; -+ mode->vscan = 0; ++ /* Physical size */ ++ mode->width_mm = fb_info->width; ++ mode->height_mm = fb_info->height; + -+ /* Physical size */ -+ mode->width_mm = fb_info->width; -+ mode->height_mm = fb_info->height; ++ drm_mode_set_name(mode); ++ drm_mode_probed_add(connector, mode); + -+ drm_mode_set_name(mode); -+ drm_mode_probed_add(connector, mode); ++ } + -+ return 1; /* one mode, for now */ ++ return fb_info->num_modes; +} + + @@ -1612,6 +1763,7 @@ index 0000000..34a665a + struct drm_display_mode *mode, + struct drm_display_mode *adjusted_mode) +{ ++ if ( mode->clock == 0 ) return false; + return true; +} + @@ -1835,8 +1987,8 @@ index 0000000..34a665a + drm_mode_config_init(dev); + + dev->mode_config.min_width = 240; -+ dev->mode_config.min_height = 320; -+ dev->mode_config.max_width = 480; ++ dev->mode_config.min_height = 240; ++ dev->mode_config.max_width = 640; + dev->mode_config.max_height = 640; + + dev->mode_config.funcs = (void *)&glamo_mode_funcs; @@ -1847,6 +1999,8 @@ index 0000000..34a665a + + sizeof(struct drm_connector *), GFP_KERNEL); + if (glamo_crtc == NULL) return 1; + glamo_crtc->gdrm = gdrm; ++ gdrm->crtc = (struct drm_crtc *)glamo_crtc; ++ glamo_crtc->pixel_clock_on = 1; + glamo_crtc->blank_mode = DRM_MODE_DPMS_OFF; + drm_crtc_init(dev, &glamo_crtc->base, &glamo_crtc_funcs); + drm_crtc_helper_add(&glamo_crtc->base, &glamo_crtc_helper_funcs); @@ -1864,7 +2018,7 @@ index 0000000..34a665a + + /* Initialise the connector */ + drm_connector_init(dev, connector, &glamo_connector_funcs, -+ DRM_MODE_CONNECTOR_Unknown); ++ DRM_MODE_CONNECTOR_LVDS); + drm_sysfs_connector_add(connector); + connector->interlace_allowed = 0; + connector->doublescan_allowed = 0; @@ -1928,73 +2082,56 @@ index 0000000..34a665a +} + + ++void glamo_lcd_power(struct glamodrm_handle *gdrm, int mode) ++{ ++ struct drm_crtc *crtc = gdrm->crtc; ++ struct glamo_crtc *gcrtc = to_glamo_crtc(crtc); ++ ++ if ( mode ) { ++ glamo_engine_enable(gdrm->glamo_core, GLAMO_ENGINE_LCD); ++ gcrtc->pixel_clock_on = 1; ++ jbt6k74_setpower(JBT_POWER_MODE_NORMAL); ++ if ( gcrtc->current_mode_set ) { ++ glamo_crtc_mode_set(crtc, &gcrtc->current_mode, ++ &gcrtc->current_mode, 0, 0, ++ gcrtc->current_fb); ++ } ++ } else { ++ jbt6k74_setpower(JBT_POWER_MODE_OFF); ++ glamo_engine_suspend(gdrm->glamo_core, GLAMO_ENGINE_LCD); ++ gcrtc->pixel_clock_on = 0; ++ } ++} ++ ++ +void glamo_display_suspend(struct glamodrm_handle *gdrm) +{ -+ gdrm->saved_width = reg_read_lcd(gdrm, GLAMO_REG_LCD_WIDTH); -+ gdrm->saved_height = reg_read_lcd(gdrm, GLAMO_REG_LCD_HEIGHT); -+ gdrm->saved_pitch = reg_read_lcd(gdrm, GLAMO_REG_LCD_PITCH); -+ gdrm->saved_htotal = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_TOTAL); -+ gdrm->saved_hrtrst = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_START); -+ gdrm->saved_hrtren = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_END); -+ gdrm->saved_hdspst = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_START); -+ gdrm->saved_hdspen = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_END); -+ gdrm->saved_vtotal = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_TOTAL); -+ gdrm->saved_vrtrst = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_START); -+ gdrm->saved_vrtren = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_END); -+ gdrm->saved_vdspst = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_START); -+ gdrm->saved_vdspen = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_END); ++ /* do nothing */ +} + + +void glamo_display_resume(struct glamodrm_handle *gdrm) +{ ++ struct drm_crtc *crtc = gdrm->crtc; ++ struct glamo_crtc *gcrtc = to_glamo_crtc(crtc); ++ + glamo_engine_enable(gdrm->glamo_core, GLAMO_ENGINE_LCD); + glamo_engine_reset(gdrm->glamo_core, GLAMO_ENGINE_LCD); + glamo_run_lcd_script(gdrm, lcd_init_script, + ARRAY_SIZE(lcd_init_script)); + -+ /* Restore timings */ -+ glamo_lcd_cmd_mode(gdrm, 1); -+ glamo_engine_reclock(gdrm->glamo_core, GLAMO_ENGINE_LCD, -+ gdrm->saved_clock); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_WIDTH, GLAMO_LCD_WIDTH_MASK, -+ gdrm->saved_width); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HEIGHT, GLAMO_LCD_HEIGHT_MASK, -+ gdrm->saved_height); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_PITCH, GLAMO_LCD_PITCH_MASK, -+ gdrm->saved_pitch); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_TOTAL, -+ GLAMO_LCD_HV_TOTAL_MASK, gdrm->saved_htotal); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_START, -+ GLAMO_LCD_HV_RETR_START_MASK, gdrm->saved_hrtrst); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_END, -+ GLAMO_LCD_HV_RETR_END_MASK, gdrm->saved_hrtren); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_START, -+ GLAMO_LCD_HV_RETR_DISP_START_MASK, -+ gdrm->saved_hdspst); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_END, -+ GLAMO_LCD_HV_RETR_DISP_END_MASK, -+ gdrm->saved_hdspen); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_TOTAL, -+ GLAMO_LCD_HV_TOTAL_MASK, gdrm->saved_vtotal); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_START, -+ GLAMO_LCD_HV_RETR_START_MASK, gdrm->saved_vrtrst); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_END, -+ GLAMO_LCD_HV_RETR_END_MASK, gdrm->saved_vrtren); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_START, -+ GLAMO_LCD_HV_RETR_DISP_START_MASK, -+ gdrm->saved_vdspst); -+ reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_END, -+ GLAMO_LCD_HV_RETR_DISP_END_MASK, -+ gdrm->saved_vdspen); -+ glamo_lcd_cmd_mode(gdrm, 0); ++ if ( gcrtc->current_mode_set ) { ++ glamo_crtc_mode_set(crtc, &gcrtc->current_mode, ++ &gcrtc->current_mode, 0, 0, ++ gcrtc->current_fb); ++ } +} diff --git a/drivers/mfd/glamo/glamo-display.h b/drivers/mfd/glamo/glamo-display.h new file mode 100644 -index 0000000..d6f21bc +index 0000000..728bba5 --- /dev/null +++ b/drivers/mfd/glamo/glamo-display.h -@@ -0,0 +1,39 @@ +@@ -0,0 +1,41 @@ +/* Smedia Glamo 336x/337x Display + * + * Copyright (c) 2008-2009 Thomas White <taw@bitwiz.org.uk> @@ -2033,13 +2170,15 @@ index 0000000..d6f21bc +extern void glamo_display_suspend(struct glamodrm_handle *gdrm); +extern void glamo_display_resume(struct glamodrm_handle *gdrm); + ++extern void glamo_lcd_power(struct glamodrm_handle *gdrm, int mode); ++ +#endif /* __GLAMO_DISPLAY_H */ diff --git a/drivers/mfd/glamo/glamo-drm-drv.c b/drivers/mfd/glamo/glamo-drm-drv.c new file mode 100644 -index 0000000..f30097e +index 0000000..774eaff --- /dev/null +++ b/drivers/mfd/glamo/glamo-drm-drv.c -@@ -0,0 +1,444 @@ +@@ -0,0 +1,423 @@ +/* Smedia Glamo 336x/337x Graphics Driver + * + * Copyright (C) 2009 Openmoko, Inc. Jorge Luis Zapata <turran@openmoko.com> @@ -2195,6 +2334,8 @@ index 0000000..f30097e + +static struct vm_operations_struct glamodrm_gem_vm_ops = { + .fault = glamodrm_gem_fault, ++ .open = drm_gem_vm_open, ++ .close = drm_gem_vm_close, +}; + +static struct drm_driver glamodrm_drm_driver = { @@ -2271,29 +2412,6 @@ index 0000000..f30097e + goto out_release_regs; + } + -+ /* Find the command queue itself */ -+ gdrm->cmdq = platform_get_resource_byname(pdev, IORESOURCE_MEM, -+ "glamo-command-queue"); -+ if ( !gdrm->cmdq ) { -+ dev_err(&pdev->dev, "Unable to find command queue.\n"); -+ rc = -ENOENT; -+ goto out_unmap_regs; -+ } -+ gdrm->cmdq = request_mem_region(gdrm->cmdq->start, -+ resource_size(gdrm->cmdq), pdev->name); -+ if ( !gdrm->cmdq ) { -+ dev_err(&pdev->dev, "failed to request command queue region\n"); -+ rc = -ENOENT; -+ goto out_unmap_regs; -+ } -+ gdrm->cmdq_base = ioremap_nocache(gdrm->cmdq->start, -+ resource_size(gdrm->cmdq)); -+ if ( !gdrm->cmdq_base ) { -+ dev_err(&pdev->dev, "failed to ioremap() command queue\n"); -+ rc = -ENOENT; -+ goto out_release_cmdq; -+ } -+ + /* Find the VRAM */ + gdrm->vram = platform_get_resource_byname(pdev, IORESOURCE_MEM, + "glamo-fb-mem"); @@ -2389,7 +2507,7 @@ index 0000000..f30097e + release_mem_region(gdrm->reg->start, resource_size(gdrm->reg)); +out_free: + kfree(gdrm); -+ pdev->dev.driver_data = NULL; ++ dev_set_drvdata(&pdev->dev, NULL); + return rc; +} + @@ -2486,10 +2604,10 @@ index 0000000..f30097e +MODULE_LICENSE("GPL"); diff --git a/drivers/mfd/glamo/glamo-drm-private.h b/drivers/mfd/glamo/glamo-drm-private.h new file mode 100644 -index 0000000..7949a2e +index 0000000..75f2757 --- /dev/null +++ b/drivers/mfd/glamo/glamo-drm-private.h -@@ -0,0 +1,156 @@ +@@ -0,0 +1,166 @@ +/* Smedia Glamo 336x/337x DRM private bits + * + * Copyright (C) 2008-2009 Thomas White <taw@bitwiz.org.uk> @@ -2553,8 +2671,8 @@ index 0000000..7949a2e + struct resource *vram; + + /* Command queue region */ -+ struct resource *cmdq; + char __iomem *cmdq_base; ++ unsigned long cmdq_offs; + + /* LCD controller registers */ + struct resource *lcd_regs; @@ -2598,6 +2716,9 @@ index 0000000..7949a2e + + /* A scratch block */ + struct drm_mm_node *scratch; ++ ++ /* We only have one */ ++ struct drm_crtc *crtc; +}; + + @@ -2610,11 +2731,18 @@ index 0000000..7949a2e + + +struct glamo_crtc { ++ + struct drm_crtc base; + struct glamodrm_handle *gdrm; + /* a mode_set for fbdev users on this crtc */ + struct drm_mode_set mode_set; + int blank_mode; ++ ++ int pixel_clock_on; ++ ++ int current_mode_set; ++ struct drm_display_mode current_mode; ++ struct drm_framebuffer *current_fb; +}; + + @@ -3024,10 +3152,10 @@ index 0000000..deda995 +#endif /* __GLAMO_FENCE_H */ diff --git a/drivers/mfd/glamo/glamo-kms-fb.c b/drivers/mfd/glamo/glamo-kms-fb.c new file mode 100644 -index 0000000..61cd605 +index 0000000..d76dd24 --- /dev/null +++ b/drivers/mfd/glamo/glamo-kms-fb.c -@@ -0,0 +1,540 @@ +@@ -0,0 +1,493 @@ +/* + * SMedia Glamo 336x/337x KMS Framebuffer + * @@ -3207,37 +3335,35 @@ index 0000000..61cd605 + struct drm_device *dev = par->dev; + struct fb_var_screeninfo *var = &info->var; + int i; ++ struct drm_crtc *crtc; ++ int ret; + + DRM_DEBUG("%d %d\n", var->xres, var->pixclock); + + if (var->pixclock != -1) { ++ DRM_ERROR("Warning: userspace gave me a pixel clock value (%i)" ++ "- I'm ignoring it.\n", var->pixclock); ++ } + -+ DRM_ERROR("PIXEL CLOCK SET\n"); -+ return -EINVAL; -+ } else { -+ struct drm_crtc *crtc; -+ int ret; -+ -+ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { -+ struct glamo_crtc *glamo_crtc = to_glamo_crtc(crtc); ++ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { ++ struct glamo_crtc *glamo_crtc = to_glamo_crtc(crtc); + -+ for (i = 0; i < par->crtc_count; i++) -+ if (crtc->base.id == par->crtc_ids[i]) -+ break; ++ for (i = 0; i < par->crtc_count; i++) ++ if (crtc->base.id == par->crtc_ids[i]) ++ break; + -+ if (i == par->crtc_count) -+ continue; ++ if (i == par->crtc_count) ++ continue; + -+ if (crtc->fb == glamo_crtc->mode_set.fb) { -+ mutex_lock(&dev->mode_config.mutex); -+ ret = crtc->funcs->set_config(&glamo_crtc->mode_set); -+ mutex_unlock(&dev->mode_config.mutex); -+ if (ret) -+ return ret; -+ } ++ if (crtc->fb == glamo_crtc->mode_set.fb) { ++ mutex_lock(&dev->mode_config.mutex); ++ ret = crtc->funcs->set_config(&glamo_crtc->mode_set); ++ mutex_unlock(&dev->mode_config.mutex); ++ if (ret) ++ return ret; + } -+ return 0; + } ++ return 0; +} + +static int glamofb_pan_display(struct fb_var_screeninfo *var, @@ -3283,64 +3409,20 @@ index 0000000..61cd605 +{ + struct glamofb_par *par = info->par; + struct drm_device *dev = par->dev; -+ struct drm_crtc *crtc; -+ struct drm_encoder *encoder; -+ int i; -+ -+ /* -+ * For each CRTC in this fb, find all associated encoders -+ * and turn them off, then turn off the CRTC. -+ */ -+ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { -+ struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private; -+ -+ for (i = 0; i < par->crtc_count; i++) -+ if (crtc->base.id == par->crtc_ids[i]) -+ break; ++ struct glamodrm_handle *gdrm = dev->dev_private; + -+ crtc_funcs->dpms(crtc, DRM_MODE_DPMS_ON); ++ gdrm = dev->dev_private; + -+ /* Found a CRTC on this fb, now find encoders */ -+ list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { -+ if (encoder->crtc == crtc) { -+ struct drm_encoder_helper_funcs *encoder_funcs; -+ encoder_funcs = encoder->helper_private; -+ encoder_funcs->dpms(encoder, DRM_MODE_DPMS_ON); -+ } -+ } -+ } ++ glamo_lcd_power(gdrm, 1); +} + +static void glamofb_off(struct fb_info *info, int dpms_mode) +{ + struct glamofb_par *par = info->par; + struct drm_device *dev = par->dev; -+ struct drm_crtc *crtc; -+ struct drm_encoder *encoder; -+ int i; -+ -+ /* -+ * For each CRTC in this fb, find all associated encoders -+ * and turn them off, then turn off the CRTC. -+ */ -+ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { -+ struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private; -+ -+ for (i = 0; i < par->crtc_count; i++) -+ if (crtc->base.id == par->crtc_ids[i]) -+ break; ++ struct glamodrm_handle *gdrm = dev->dev_private; + -+ /* Found a CRTC on this fb, now find encoders */ -+ list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { -+ if (encoder->crtc == crtc) { -+ struct drm_encoder_helper_funcs *encoder_funcs; -+ encoder_funcs = encoder->helper_private; -+ encoder_funcs->dpms(encoder, dpms_mode); -+ } -+ } -+ if (dpms_mode == DRM_MODE_DPMS_OFF) -+ crtc_funcs->dpms(crtc, dpms_mode); -+ } ++ glamo_lcd_power(gdrm, 0); +} + +static int glamofb_blank(int blank, struct fb_info *info) @@ -3459,9 +3541,6 @@ index 0000000..61cd605 + info->fbops = &glamofb_ops; + + info->fix.line_length = fb->pitch; -+ info->fix.smem_start = dev->mode_config.fb_base -+ + (unsigned long) gdrm->vram->start; -+ info->fix.smem_len = size; + + info->flags = FBINFO_DEFAULT; + @@ -3473,6 +3552,8 @@ index 0000000..61cd605 + ret = -ENOSPC; + goto out_unref; + } ++ info->fix.smem_start = (unsigned long)gdrm->vram->start + offs; ++ info->fix.smem_len = size; + info->screen_size = size; + + info->pseudo_palette = fb->pseudo_palette; @@ -3784,5 +3865,5 @@ index 0000000..4c194dc + +#endif -- -1.6.6.1 +1.7.1 diff --git a/recipes/linux/linux-openmoko-2.6.32/0009-A-couple-of-GEM-refcounting-fixes.patch b/recipes/linux/linux-openmoko-2.6.32/0009-A-couple-of-GEM-refcounting-fixes.patch deleted file mode 100644 index 7fb2fa8762..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0009-A-couple-of-GEM-refcounting-fixes.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 75e660e406cd4941f253ddbdeaa45f59d107a014 Mon Sep 17 00:00:00 2001 -From: Thomas White <taw@bitwiz.org.uk> -Date: Sun, 7 Feb 2010 13:27:20 +0100 -Subject: [PATCH 9/9] A couple of GEM refcounting fixes - -This allows GEM objects to be freed properly, which wasn't working before. - -Signed-off-by: Thomas White <taw@bitwiz.org.uk> ---- - drivers/mfd/glamo/glamo-buffer.c | 2 ++ - drivers/mfd/glamo/glamo-drm-drv.c | 2 ++ - 2 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-buffer.c b/drivers/mfd/glamo/glamo-buffer.c -index 45500d3..82ea0c0 100644 ---- a/drivers/mfd/glamo/glamo-buffer.c -+++ b/drivers/mfd/glamo/glamo-buffer.c -@@ -245,6 +245,8 @@ int glamo_ioctl_gem_mmap(struct drm_device *dev, void *data, - if (!gobj->mmap_offset) { - ret = glamo_gem_create_mmap_offset(obj); - if (ret) { -+ printk(KERN_CRIT "Couldn't create mmap offset\n"); -+ drm_gem_object_unreference(obj); - mutex_unlock(&dev->struct_mutex); - return ret; - } -diff --git a/drivers/mfd/glamo/glamo-drm-drv.c b/drivers/mfd/glamo/glamo-drm-drv.c -index 1907a47..e7220d5 100644 ---- a/drivers/mfd/glamo/glamo-drm-drv.c -+++ b/drivers/mfd/glamo/glamo-drm-drv.c -@@ -153,6 +153,8 @@ static int glamodrm_unload(struct drm_device *dev) - - static struct vm_operations_struct glamodrm_gem_vm_ops = { - .fault = glamodrm_gem_fault, -+ .open = drm_gem_vm_open, -+ .close = drm_gem_vm_close, - }; - - static struct drm_driver glamodrm_drm_driver = { --- -1.6.6.1 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0004-Work-on-Glamo-core-for-DRM.patch b/recipes/linux/linux-openmoko-2.6.32/0009-Work-on-Glamo-core-for-DRM.patch index 2bddd1758a..79b0ea4e0f 100644 --- a/recipes/linux/linux-openmoko-2.6.32/0004-Work-on-Glamo-core-for-DRM.patch +++ b/recipes/linux/linux-openmoko-2.6.32/0009-Work-on-Glamo-core-for-DRM.patch @@ -1,24 +1,24 @@ -From eb0614d6a8a879bd3ac69050b3f5b012ef562b9e Mon Sep 17 00:00:00 2001 +From 8cdc10f17ecd42c9f71f7f4a657d979ab20f9e26 Mon Sep 17 00:00:00 2001 From: Thomas White <taw@bitwiz.org.uk> Date: Tue, 17 Nov 2009 23:45:29 +0100 -Subject: [PATCH 4/9] Work on Glamo-core for DRM +Subject: [PATCH 09/14] Work on Glamo-core for DRM This adds modifications to the core of the Glamo driver to expose functionality to support DRM and KMS. Signed-off-by: Thomas White <taw@bitwiz.org.uk> --- - drivers/mfd/glamo/glamo-core.c | 33 +++++++++++++++++++++++++++------ - drivers/mfd/glamo/glamo-core.h | 35 +++++++++++++++++++++++++---------- + drivers/mfd/glamo/glamo-core.c | 27 +++++++++++++++++++++------ + drivers/mfd/glamo/glamo-core.h | 32 ++++++++++++++++++++++---------- drivers/mfd/glamo/glamo-regs.h | 24 ++++++++++++++++++++++++ include/linux/mfd/glamo.h | 7 ++----- - 4 files changed, 78 insertions(+), 21 deletions(-) + 4 files changed, 69 insertions(+), 21 deletions(-) diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c -index 82a906a..a614d44 100644 +index 82a906a..74da668 100644 --- a/drivers/mfd/glamo/glamo-core.c +++ b/drivers/mfd/glamo/glamo-core.c -@@ -221,10 +221,31 @@ static struct resource glamo_fb_resources[] = { +@@ -221,10 +221,25 @@ static struct resource glamo_fb_resources[] = { .flags = IORESOURCE_MEM, }, { .name = "glamo-fb-mem", @@ -34,12 +34,6 @@ index 82a906a..a614d44 100644 + .end = GLAMO_REGOFS_RISC - 1, + .flags = IORESOURCE_MEM, + }, { -+ .name = "glamo-command-queue", -+ .start = GLAMO_MEM_BASE + GLAMO_OFFSET_CMDQ, -+ .end = GLAMO_MEM_BASE + GLAMO_OFFSET_CMDQ + -+ GLAMO_CMDQ_SIZE - 1, -+ .flags = IORESOURCE_MEM, -+ }, { + .name = "glamo-2d-regs", + .start = GLAMO_REGOFS_2D, + .end = GLAMO_REGOFS_3D- 1, @@ -53,7 +47,7 @@ index 82a906a..a614d44 100644 }; static struct resource glamo_mmc_resources[] = { -@@ -235,9 +256,9 @@ static struct resource glamo_mmc_resources[] = { +@@ -235,9 +250,9 @@ static struct resource glamo_mmc_resources[] = { .flags = IORESOURCE_MEM }, { .name = "glamo-mmc-mem", @@ -67,10 +61,10 @@ index 82a906a..a614d44 100644 }, { .start = GLAMO_IRQ_MMC, diff --git a/drivers/mfd/glamo/glamo-core.h b/drivers/mfd/glamo/glamo-core.h -index 17017b0..d21bdc4 100644 +index 17017b0..0adba96 100644 --- a/drivers/mfd/glamo/glamo-core.h +++ b/drivers/mfd/glamo/glamo-core.h -@@ -3,18 +3,33 @@ +@@ -3,18 +3,30 @@ #include <linux/mfd/glamo.h> @@ -80,12 +74,10 @@ index 17017b0..d21bdc4 100644 +/* Arbitrarily determined amount for the hardware cursor */ +#define GLAMO_CURSOR_SIZE (4096) +#define GLAMO_MMC_BUFFER_SIZE (64 * 1024) /* 64k MMC buffer */ -+#define GLAMO_CMDQ_SIZE (128 * 1024) /* 128k ring buffer */ +/* Remaining memory will be used for 2D and 3D graphics */ +#define GLAMO_FB_SIZE (GLAMO_INTERNAL_RAM_SIZE \ + - GLAMO_CURSOR_SIZE \ -+ - GLAMO_MMC_BUFFER_SIZE \ -+ - GLAMO_CMDQ_SIZE) ++ - GLAMO_MMC_BUFFER_SIZE) +/* A 640x480, 16bpp, double-buffered framebuffer */ +#if (GLAMO_FB_SIZE < (640 * 480 * 4)) /* == 0x12c000 */ +#error Not enough Glamo VRAM for framebuffer! @@ -110,7 +102,6 @@ index 17017b0..d21bdc4 100644 +#define GLAMO_OFFSET_FB (0x000000) +#define GLAMO_OFFSET_CURSOR (GLAMO_OFFSET_FB + GLAMO_FB_SIZE) +#define GLAMO_OFFSET_MMC (GLAMO_OFFSET_CURSOR + GLAMO_CURSOR_SIZE) -+#define GLAMO_OFFSET_CMDQ (GLAMO_OFFSET_MMC + GLAMO_MMC_BUFFER_SIZE) enum glamo_pll { GLAMO_PLL1, @@ -167,5 +158,5 @@ index 529d4f0..ea91a06 100644 + #endif -- -1.6.6.1 +1.7.1 diff --git a/recipes/linux/linux-openmoko-2.6.32/0010-JBT6k74-work-for-KMS.patch b/recipes/linux/linux-openmoko-2.6.32/0010-JBT6k74-work-for-KMS.patch new file mode 100644 index 0000000000..2105ab60aa --- /dev/null +++ b/recipes/linux/linux-openmoko-2.6.32/0010-JBT6k74-work-for-KMS.patch @@ -0,0 +1,540 @@ +From 5788c7777a6fa63dc56093277ae14c4dac4ee6cb Mon Sep 17 00:00:00 2001 +From: Thomas White <taw@bitwiz.org.uk> +Date: Sat, 21 Nov 2009 21:42:16 +0100 +Subject: [PATCH 10/14] JBT6k74 work for KMS + +This simplifies the JBT6k74 driver, and adds hooks for the Glamo driver to cooperate +more closely with it. + +Signed-off-by: Thomas White <taw@bitwiz.org.uk> +--- + drivers/video/backlight/jbt6k74.c | 252 ++++++++++++++++++------------------ + include/linux/jbt6k74.h | 17 +++- + 2 files changed, 142 insertions(+), 127 deletions(-) + +diff --git a/drivers/video/backlight/jbt6k74.c b/drivers/video/backlight/jbt6k74.c +index 8450904..91651e7 100644 +--- a/drivers/video/backlight/jbt6k74.c ++++ b/drivers/video/backlight/jbt6k74.c +@@ -101,20 +101,10 @@ enum jbt_register { + JBT_REG_HCLOCK_QVGA = 0xed, + }; + +-enum jbt_resolution { +- JBT_RESOLUTION_VGA, +- JBT_RESOLUTION_QVGA, +-}; +- +-enum jbt_power_mode { +- JBT_POWER_MODE_DEEP_STANDBY, +- JBT_POWER_MODE_SLEEP, +- JBT_POWER_MODE_NORMAL, +-}; + + static const char *jbt_power_mode_names[] = { +- [JBT_POWER_MODE_DEEP_STANDBY] = "deep-standby", +- [JBT_POWER_MODE_SLEEP] = "sleep", ++ [JBT_POWER_MODE_OFF] = "off", ++ [JBT_POWER_MODE_STANDBY] = "standby", + [JBT_POWER_MODE_NORMAL] = "normal", + }; + +@@ -123,6 +113,7 @@ static const char *jbt_resolution_names[] = { + [JBT_RESOLUTION_QVGA] = "qvga", + }; + ++ + struct jbt_info { + struct mutex lock; /* protects this structure */ + enum jbt_resolution resolution; +@@ -141,6 +132,8 @@ struct jbt_info { + uint16_t reg_cache[0xEE]; + }; + ++struct jbt_info *jbt_global; ++ + #define JBT_COMMAND 0x000 + #define JBT_DATA 0x100 + +@@ -156,6 +149,8 @@ static int jbt_reg_write_nodata(struct jbt_info *jbt, uint8_t reg) + else + dev_err(&jbt->spi->dev, "Write failed: %d\n", ret); + ++ mdelay(1); ++ + return ret; + } + +@@ -173,6 +168,8 @@ static int jbt_reg_write(struct jbt_info *jbt, uint8_t reg, uint8_t data) + else + dev_err(&jbt->spi->dev, "Write failed: %d\n", ret); + ++ mdelay(1); ++ + return ret; + } + +@@ -191,6 +188,8 @@ static int jbt_reg_write16(struct jbt_info *jbt, uint8_t reg, uint16_t data) + else + dev_err(&jbt->spi->dev, "Write failed: %d\n", ret); + ++ mdelay(1); ++ + return ret; + } + +@@ -218,7 +217,7 @@ static int jbt_init_regs(struct jbt_info *jbt) + * to avoid red / blue flicker + */ + ret |= jbt_reg_write(jbt, JBT_REG_ASW_SLEW, 0x00 | (1 << 5)); +- ret |= jbt_reg_write(jbt, JBT_REG_DUMMY_DISPLAY, 0x00); ++ ret |= jbt_reg_write(jbt, JBT_REG_DUMMY_DISPLAY, 0xff); + + ret |= jbt_reg_write(jbt, JBT_REG_SLEEP_OUT_FR_A, 0x11); + ret |= jbt_reg_write(jbt, JBT_REG_SLEEP_OUT_FR_B, 0x11); +@@ -260,14 +259,18 @@ static int jbt_init_regs(struct jbt_info *jbt) + return ret ? -EIO : 0; + } + +-static int jbt_standby_to_sleep(struct jbt_info *jbt) ++ ++static int jbt_off_to_normal(struct jbt_info *jbt) + { + int ret; ++ + struct jbt6k74_platform_data *pdata = jbt->spi->dev.platform_data; + + gpio_set_value_cansleep(pdata->gpio_reset, 1); + ret = regulator_bulk_enable(ARRAY_SIZE(jbt->supplies), jbt->supplies); + ++ mdelay(120); ++ + /* three times command zero */ + ret |= jbt_reg_write_nodata(jbt, 0x00); + mdelay(1); +@@ -279,18 +282,11 @@ static int jbt_standby_to_sleep(struct jbt_info *jbt) + /* deep standby out */ + ret |= jbt_reg_write(jbt, JBT_REG_POWER_ON_OFF, 0x11); + mdelay(1); +- ret = jbt_reg_write(jbt, JBT_REG_DISPLAY_MODE, 0x28); ++ ret |= jbt_reg_write(jbt, JBT_REG_DISPLAY_MODE, 0x28); + + /* (re)initialize register set */ + ret |= jbt_init_regs(jbt); + +- return ret ? -EIO : 0; +-} +- +-static int jbt_sleep_to_normal(struct jbt_info *jbt) +-{ +- int ret; +- + /* Make sure we are 120 ms after SLEEP_OUT */ + if (time_before(jiffies, jbt->next_sleep)) + mdelay(jiffies_to_msecs(jbt->next_sleep - jiffies)); +@@ -320,6 +316,7 @@ static int jbt_sleep_to_normal(struct jbt_info *jbt) + + /* Sleep mode off */ + ret |= jbt_reg_write_nodata(jbt, JBT_REG_SLEEP_OUT); ++ + jbt->next_sleep = jiffies + msecs_to_jiffies(120); + + /* Allow the booster and display controller to restart stably */ +@@ -328,45 +325,68 @@ static int jbt_sleep_to_normal(struct jbt_info *jbt) + return ret ? -EIO : 0; + } + +-static int jbt_normal_to_sleep(struct jbt_info *jbt) ++static int jbt_normal_to_off(struct jbt_info *jbt) + { + int ret; ++ struct jbt6k74_platform_data *pdata = jbt->spi->dev.platform_data; + +- /* Make sure we are 120 ms after SLEEP_OUT */ +- while (time_before(jiffies, jbt->next_sleep)) +- cpu_relax(); ++ /* Pull the plug! */ ++ ret = regulator_bulk_disable(ARRAY_SIZE(jbt->supplies), ++ jbt->supplies); + ++ if (!ret) ++ gpio_set_value_cansleep(pdata->gpio_reset, 0); ++ ++ return ret ? -EIO : 0; ++} ++ ++ ++static int jbt_normal_to_standby(struct jbt_info *jbt) ++{ ++ int ret; ++ ++ if ( jbt->power_mode != JBT_POWER_MODE_NORMAL ) return 0; ++ ++ /* Make sure we are 120 ms after SLEEP_{IN,OUT} */ ++ while (time_before(jiffies, jbt->next_sleep)) cpu_relax(); ++ ++ /* Sleep mode on */ + ret = jbt_reg_write_nodata(jbt, JBT_REG_DISPLAY_OFF); + ret |= jbt_reg_write16(jbt, JBT_REG_OUTPUT_CONTROL, 0x8000 | 1 << 3); ++ + ret |= jbt_reg_write_nodata(jbt, JBT_REG_SLEEP_IN); +- jbt->next_sleep = jiffies + msecs_to_jiffies(120); ++ jbt->next_sleep = jiffies + msecs_to_jiffies(150); + +- /* Allow the internal circuits to stop automatically */ +- mdelay(5); ++ jbt->power_mode = JBT_POWER_MODE_STANDBY; + + return ret ? -EIO : 0; + } + +-static int jbt_sleep_to_standby(struct jbt_info *jbt) ++ ++static int jbt_standby_to_normal(struct jbt_info *jbt) + { + int ret; +- struct jbt6k74_platform_data *pdata = jbt->spi->dev.platform_data; + +- ret = jbt_reg_write(jbt, JBT_REG_POWER_ON_OFF, 0x00); ++ if ( jbt->power_mode != JBT_POWER_MODE_STANDBY ) return 0; + +- if (!ret) +- ret = regulator_bulk_disable(ARRAY_SIZE(jbt->supplies), jbt->supplies); ++ /* Make sure we are 120 ms after SLEEP_{IN,OUT} */ ++ while (time_before(jiffies, jbt->next_sleep)) cpu_relax(); + +- if (!ret) +- gpio_set_value_cansleep(pdata->gpio_reset, 0); ++ ret = jbt_reg_write_nodata(jbt, JBT_REG_SLEEP_OUT); ++ jbt->next_sleep = jiffies + msecs_to_jiffies(150); + +- return ret; ++ ret |= jbt_reg_write_nodata(jbt, JBT_REG_DISPLAY_ON); ++ ret |= jbt_reg_write16(jbt, JBT_REG_OUTPUT_CONTROL, 0xdff9); ++ ++ jbt->power_mode = JBT_POWER_MODE_NORMAL; ++ ++ return ret ? -EIO : 0; + } + ++ + static int jbt6k74_enter_power_mode(struct jbt_info *jbt, + enum jbt_power_mode new_mode) + { +- struct jbt6k74_platform_data *pdata = jbt->spi->dev.platform_data; + int ret = -EINVAL; + + dev_dbg(&jbt->spi->dev, "entering (old_state=%s, new_state=%s)\n", +@@ -375,49 +395,17 @@ static int jbt6k74_enter_power_mode(struct jbt_info *jbt, + + mutex_lock(&jbt->lock); + +- if (jbt->suspended) { +- switch (new_mode) { +- case JBT_POWER_MODE_DEEP_STANDBY: +- case JBT_POWER_MODE_SLEEP: +- case JBT_POWER_MODE_NORMAL: +- ret = 0; +- jbt->suspend_mode = new_mode; +- break; +- default: +- break; +- } +- } else if (new_mode == JBT_POWER_MODE_NORMAL && +- pdata->enable_pixel_clock) { +- pdata->enable_pixel_clock(&jbt->spi->dev, 1); +- } +- + switch (jbt->power_mode) { +- case JBT_POWER_MODE_DEEP_STANDBY: ++ case JBT_POWER_MODE_OFF: + switch (new_mode) { +- case JBT_POWER_MODE_DEEP_STANDBY: ++ case JBT_POWER_MODE_OFF: + ret = 0; + break; +- case JBT_POWER_MODE_SLEEP: +- ret = jbt_standby_to_sleep(jbt); +- break; + case JBT_POWER_MODE_NORMAL: +- /* first transition into sleep */ +- ret = jbt_standby_to_sleep(jbt); +- /* then transition into normal */ +- ret |= jbt_sleep_to_normal(jbt); ++ ret = jbt_off_to_normal(jbt); + break; +- } +- break; +- case JBT_POWER_MODE_SLEEP: +- switch (new_mode) { +- case JBT_POWER_MODE_SLEEP: +- ret = 0; +- break; +- case JBT_POWER_MODE_DEEP_STANDBY: +- ret = jbt_sleep_to_standby(jbt); +- break; +- case JBT_POWER_MODE_NORMAL: +- ret = jbt_sleep_to_normal(jbt); ++ case JBT_POWER_MODE_STANDBY: ++ ret = -EINVAL; + break; + } + break; +@@ -426,25 +414,23 @@ static int jbt6k74_enter_power_mode(struct jbt_info *jbt, + case JBT_POWER_MODE_NORMAL: + ret = 0; + break; +- case JBT_POWER_MODE_DEEP_STANDBY: +- /* first transition into sleep */ +- ret = jbt_normal_to_sleep(jbt); +- /* then transition into deep standby */ +- ret |= jbt_sleep_to_standby(jbt); ++ case JBT_POWER_MODE_OFF: ++ ret = jbt_normal_to_off(jbt); + break; +- case JBT_POWER_MODE_SLEEP: +- ret = jbt_normal_to_sleep(jbt); ++ case JBT_POWER_MODE_STANDBY: ++ ret = -EINVAL; + break; + } ++ break; ++ case JBT_POWER_MODE_STANDBY: ++ ret = -EINVAL; ++ break; + } + + if (ret == 0) { + jbt->power_mode = new_mode; +- if (new_mode != JBT_POWER_MODE_NORMAL && +- pdata->enable_pixel_clock) +- pdata->enable_pixel_clock(&jbt->spi->dev, 0); + } else { +- dev_err(&jbt->spi->dev, "Failed enter state '%s': %d\n", ++ dev_err(&jbt->spi->dev, "Failed to enter state '%s': %d\n", + jbt_power_mode_names[new_mode], ret); + } + +@@ -456,28 +442,46 @@ static int jbt6k74_enter_power_mode(struct jbt_info *jbt, + static int jbt6k74_set_resolution(struct jbt_info *jbt, + enum jbt_resolution new_resolution) + { ++ int old_resolution; + int ret = 0; +- enum jbt_resolution old_resolution; ++ ++ if ( !jbt ) return -1; + + mutex_lock(&jbt->lock); + +- if (jbt->resolution == new_resolution) +- goto out_unlock; ++ if ( jbt->resolution == new_resolution ) goto out_unlock; ++ if ( jbt->power_mode == JBT_POWER_MODE_OFF ) goto out_unlock; + + old_resolution = jbt->resolution; + jbt->resolution = new_resolution; + +- if (jbt->power_mode == JBT_POWER_MODE_NORMAL) { ++ if ( jbt->power_mode == JBT_POWER_MODE_NORMAL ) { ++ ++ ret = jbt_normal_to_standby(jbt); ++ ++ mdelay(25); + +- /* first transition into sleep */ +- ret = jbt_normal_to_sleep(jbt); +- ret |= jbt_sleep_to_normal(jbt); ++ if (jbt->resolution == JBT_RESOLUTION_VGA) { ++ /* Quad mode off */ ++ ret |= jbt_reg_write(jbt, JBT_REG_QUAD_RATE, 0x00); ++ ret = jbt_reg_write(jbt, JBT_REG_DISPLAY_MODE, 0x80); ++ } else { ++ /* Quad mode on */ ++ ret |= jbt_reg_write(jbt, JBT_REG_QUAD_RATE, 0x22); ++ ret = jbt_reg_write(jbt, JBT_REG_DISPLAY_MODE, 0x81); ++ } ++ ++ mdelay(25); ++ ++ ret |= jbt_standby_to_normal(jbt); + + if (ret) { + jbt->resolution = old_resolution; +- dev_err(&jbt->spi->dev, "Failed to set resolution '%s')\n", ++ dev_err(&jbt->spi->dev, ++ "Failed to set resolution '%s')\n", + jbt_resolution_names[new_resolution]); + } ++ + } + + out_unlock: +@@ -589,7 +593,7 @@ static ssize_t reset_write(struct device *dev, struct device_attribute *attr, + + mutex_unlock(&jbt->lock); + +- jbt->power_mode = JBT_POWER_MODE_DEEP_STANDBY; ++ jbt->power_mode = JBT_POWER_MODE_OFF; + jbt6k74_enter_power_mode(jbt, old_power_mode); + + return count; +@@ -616,27 +620,6 @@ static struct attribute_group jbt_attr_group = { + .attrs = jbt_sysfs_entries, + }; + +-/* FIXME: This in an ugly hack to delay display blanking. +- When the jbt is in sleep mode it displays an all white screen and thus one +- will a see a short flash. +- By delaying the blanking we will give the backlight a chance to turn off and +- thus avoid getting the flash */ +-static void jbt_blank_worker(struct work_struct *work) +-{ +- struct jbt_info *jbt = container_of(work, struct jbt_info, +- blank_work.work); +- +- switch (jbt->blank_mode) { +- case FB_BLANK_NORMAL: +- jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_SLEEP); +- break; +- case FB_BLANK_POWERDOWN: +- jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_DEEP_STANDBY); +- break; +- default: +- break; +- } +-} + + static int jbt6k74_set_mode(struct lcd_device *ld, struct fb_videomode *m) + { +@@ -649,7 +632,7 @@ static int jbt6k74_set_mode(struct lcd_device *ld, struct fb_videomode *m) + ret = jbt6k74_set_resolution(jbt, JBT_RESOLUTION_VGA); + } else { + dev_err(&jbt->spi->dev, "Unknown resolution.\n"); +- jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_SLEEP); ++ jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_OFF); + } + + return ret; +@@ -671,11 +654,11 @@ static int jbt6k74_set_power(struct lcd_device *ld, int power) + break; + case FB_BLANK_NORMAL: + dev_dbg(&jbt->spi->dev, "blank\n"); +- ret = schedule_delayed_work(&jbt->blank_work, HZ); ++ ret = jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_OFF); + break; + case FB_BLANK_POWERDOWN: + dev_dbg(&jbt->spi->dev, "powerdown\n"); +- ret = schedule_delayed_work(&jbt->blank_work, HZ); ++ ret = jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_OFF); + break; + default: + break; +@@ -691,10 +674,10 @@ static int jbt6k74_get_power(struct lcd_device *ld) + switch (jbt->power_mode) { + case JBT_POWER_MODE_NORMAL: + return FB_BLANK_UNBLANK; +- case JBT_POWER_MODE_SLEEP: ++ case JBT_POWER_MODE_OFF: + return FB_BLANK_NORMAL; + default: +- return JBT_POWER_MODE_DEEP_STANDBY; ++ return JBT_POWER_MODE_OFF; + } + } + +@@ -728,6 +711,8 @@ static int __devinit jbt_probe(struct spi_device *spi) + if (!jbt) + return -ENOMEM; + ++ jbt_global = jbt; ++ + jbt->spi = spi; + + jbt->lcd_dev = lcd_device_register("jbt6k74-lcd", &spi->dev, jbt, +@@ -738,11 +723,9 @@ static int __devinit jbt_probe(struct spi_device *spi) + goto err_free_drvdata; + } + +- INIT_DELAYED_WORK(&jbt->blank_work, jbt_blank_worker); +- + jbt->resolution = JBT_RESOLUTION_VGA; +- jbt->power_mode = JBT_POWER_MODE_DEEP_STANDBY; + jbt->next_sleep = jiffies + msecs_to_jiffies(120); ++ jbt->power_mode = JBT_POWER_MODE_OFF; + mutex_init(&jbt->lock); + + dev_set_drvdata(&spi->dev, jbt); +@@ -831,6 +814,24 @@ static int __devexit jbt_remove(struct spi_device *spi) + return 0; + } + ++/* Begin horrible layering violations in the interest of making stuff work */ ++ ++int jbt6k74_finish_resolutionchange(enum jbt_resolution new_resolution) ++{ ++ if ( !jbt_global ) return 0; ++ return jbt6k74_set_resolution(jbt_global, new_resolution); ++} ++EXPORT_SYMBOL_GPL(jbt6k74_finish_resolutionchange); ++ ++void jbt6k74_setpower(enum jbt_power_mode new_power) ++{ ++ if ( !jbt_global ) return; ++ jbt6k74_enter_power_mode(jbt_global, new_power); ++} ++EXPORT_SYMBOL_GPL(jbt6k74_setpower); ++ ++/* End horrible layering violations */ ++ + #ifdef CONFIG_PM + static int jbt_suspend(struct spi_device *spi, pm_message_t state) + { +@@ -838,8 +839,7 @@ static int jbt_suspend(struct spi_device *spi, pm_message_t state) + + jbt->suspend_mode = jbt->power_mode; + +- jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_DEEP_STANDBY); +- jbt->suspended = 1; ++ jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_OFF); + + dev_info(&spi->dev, "suspended\n"); + +diff --git a/include/linux/jbt6k74.h b/include/linux/jbt6k74.h +index 75488c4..2010bdc 100644 +--- a/include/linux/jbt6k74.h ++++ b/include/linux/jbt6k74.h +@@ -3,6 +3,22 @@ + + #include <linux/spi/spi.h> + ++enum jbt_resolution { ++ JBT_RESOLUTION_VGA, ++ JBT_RESOLUTION_QVGA, ++}; ++ ++enum jbt_power_mode { ++ JBT_POWER_MODE_OFF, ++ JBT_POWER_MODE_STANDBY, ++ JBT_POWER_MODE_NORMAL, ++}; ++ ++extern void jbt6k74_setpower(enum jbt_power_mode new_power); ++extern int jbt6k74_prepare_resolutionchange(enum jbt_resolution new_resolution); ++extern int jbt6k74_finish_resolutionchange(enum jbt_resolution new_resolution); ++ ++ + /* + * struct jbt6k74_platform_data - Platform data for jbt6k74 driver + * @probe_completed: Callback to be called when the driver has been +@@ -13,7 +29,6 @@ + */ + struct jbt6k74_platform_data { + void (*probe_completed)(struct device *dev); +- void (*enable_pixel_clock)(struct device *dev, int enable); + + int gpio_reset; + }; +-- +1.7.1 + diff --git a/recipes/linux/linux-openmoko-2.6.32/0010-Simplify-the-JBT6k74-driver.patch b/recipes/linux/linux-openmoko-2.6.32/0010-Simplify-the-JBT6k74-driver.patch deleted file mode 100644 index ca0c2af15b..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0010-Simplify-the-JBT6k74-driver.patch +++ /dev/null @@ -1,667 +0,0 @@ -From cb84d543b9465a8ea48b504b1dfb745c6682a50e Mon Sep 17 00:00:00 2001 -From: Thomas White <taw@bitwiz.org.uk> -Date: Sun, 28 Feb 2010 15:20:57 +0100 -Subject: [PATCH 1/2] Simplify the JBT6k74 driver - -Simplify the JBT6k74 driver - -We don't need all the native sleep states - they just complicate things. Instead, just -use the LDO "power switch" to send it firmly to sleep and wake it up in a virgin state -each time. - -Signed-off-by: Thomas White <taw@bitwiz.org.uk> ---- - drivers/mfd/glamo/glamo-display.c | 116 ++++++++++++------------ - drivers/mfd/glamo/glamo-display.h | 2 + - drivers/mfd/glamo/glamo-drm-private.h | 10 ++ - drivers/mfd/glamo/glamo-kms-fb.c | 54 ++---------- - drivers/video/backlight/jbt6k74.c | 160 ++++++++------------------------- - include/linux/jbt6k74.h | 1 - - 6 files changed, 115 insertions(+), 228 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-display.c b/drivers/mfd/glamo/glamo-display.c -index 34a665a..a384c8b 100644 ---- a/drivers/mfd/glamo/glamo-display.c -+++ b/drivers/mfd/glamo/glamo-display.c -@@ -239,14 +239,6 @@ static int glamo_run_lcd_script(struct glamodrm_handle *gdrm, - } - - --extern void jbt6k74_action(int val); -- --/* Power on/off */ --static void glamo_crtc_dpms(struct drm_crtc *crtc, int mode) --{ --} -- -- - static bool glamo_crtc_mode_fixup(struct drm_crtc *crtc, - struct drm_display_mode *mode, - struct drm_display_mode *adjusted_mode) -@@ -275,6 +267,12 @@ static int glamo_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, - gcrtc = to_glamo_crtc(crtc); - gdrm = gcrtc->gdrm; /* Here it is! */ - -+ if ( !gcrtc->pixel_clock_on ) { -+ printk(KERN_WARNING "[glamo-drm] Refusing to set base while " -+ "pixel clock is off.\n"); -+ return -EBUSY; -+ } -+ - gfb = to_glamo_framebuffer(crtc->fb); - obj = gfb->obj; - gobj = obj->driver_private; -@@ -306,6 +304,12 @@ static int glamo_crtc_mode_set(struct drm_crtc *crtc, - gcrtc = to_glamo_crtc(crtc); - gdrm = gcrtc->gdrm; /* Here it is! */ - -+ if ( !gcrtc->pixel_clock_on ) { -+ printk(KERN_WARNING "[glamo-drm] Refusing to set mode while " -+ "pixel clock is off.\n"); -+ return -EBUSY; -+ } -+ - glamo_lcd_cmd_mode(gdrm, 1); - - glamo_engine_reclock(gdrm->glamo_core, GLAMO_ENGINE_LCD, mode->clock); -@@ -354,10 +358,47 @@ static int glamo_crtc_mode_set(struct drm_crtc *crtc, - - glamo_crtc_mode_set_base(crtc, 0, 0, old_fb); - -+ gcrtc->current_mode = *mode; -+ gcrtc->current_mode_set = 1; -+ gcrtc->current_fb = old_fb; -+ - return 0; - } - - -+extern void jbt6k74_action(int val); -+ -+/* This is not the right place to switch power on/off, because the helper -+ * stuff ends up calling this before/after setting the mode. We can't -+ * set modes with the display off (although backlight off would be OK) */ -+static void glamo_crtc_dpms(struct drm_crtc *crtc, int mode) -+{ -+ /* do nothing */ -+} -+ -+ -+void glamo_lcd_power(struct glamodrm_handle *gdrm, int mode) -+{ -+ struct drm_crtc *crtc = gdrm->crtc; -+ struct glamo_crtc *gcrtc = to_glamo_crtc(crtc); -+ -+ if ( mode ) { -+ glamo_engine_enable(gdrm->glamo_core, GLAMO_ENGINE_LCD); -+ gcrtc->pixel_clock_on = 1; -+ jbt6k74_action(1); -+ if ( gcrtc->current_mode_set ) { -+ glamo_crtc_mode_set(crtc, &gcrtc->current_mode, -+ &gcrtc->current_mode, 0, 0, -+ gcrtc->current_fb); -+ } -+ } else { -+ jbt6k74_action(0); -+ glamo_engine_suspend(gdrm->glamo_core, GLAMO_ENGINE_LCD); -+ gcrtc->pixel_clock_on = 0; -+ } -+} -+ -+ - static void glamo_crtc_prepare(struct drm_crtc *crtc) - { - } -@@ -725,6 +766,8 @@ int glamo_display_init(struct drm_device *dev) - + sizeof(struct drm_connector *), GFP_KERNEL); - if (glamo_crtc == NULL) return 1; - glamo_crtc->gdrm = gdrm; -+ gdrm->crtc = (struct drm_crtc *)glamo_crtc; -+ glamo_crtc->pixel_clock_on = 1; - glamo_crtc->blank_mode = DRM_MODE_DPMS_OFF; - drm_crtc_init(dev, &glamo_crtc->base, &glamo_crtc_funcs); - drm_crtc_helper_add(&glamo_crtc->base, &glamo_crtc_helper_funcs); -@@ -808,62 +851,23 @@ int glamo_display_init(struct drm_device *dev) - - void glamo_display_suspend(struct glamodrm_handle *gdrm) - { -- gdrm->saved_width = reg_read_lcd(gdrm, GLAMO_REG_LCD_WIDTH); -- gdrm->saved_height = reg_read_lcd(gdrm, GLAMO_REG_LCD_HEIGHT); -- gdrm->saved_pitch = reg_read_lcd(gdrm, GLAMO_REG_LCD_PITCH); -- gdrm->saved_htotal = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_TOTAL); -- gdrm->saved_hrtrst = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_START); -- gdrm->saved_hrtren = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_END); -- gdrm->saved_hdspst = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_START); -- gdrm->saved_hdspen = reg_read_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_END); -- gdrm->saved_vtotal = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_TOTAL); -- gdrm->saved_vrtrst = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_START); -- gdrm->saved_vrtren = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_END); -- gdrm->saved_vdspst = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_START); -- gdrm->saved_vdspen = reg_read_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_END); -+ /* do nothing */ - } - - - void glamo_display_resume(struct glamodrm_handle *gdrm) - { -+ struct drm_crtc *crtc = gdrm->crtc; -+ struct glamo_crtc *gcrtc = to_glamo_crtc(crtc); -+ - glamo_engine_enable(gdrm->glamo_core, GLAMO_ENGINE_LCD); - glamo_engine_reset(gdrm->glamo_core, GLAMO_ENGINE_LCD); - glamo_run_lcd_script(gdrm, lcd_init_script, - ARRAY_SIZE(lcd_init_script)); - -- /* Restore timings */ -- glamo_lcd_cmd_mode(gdrm, 1); -- glamo_engine_reclock(gdrm->glamo_core, GLAMO_ENGINE_LCD, -- gdrm->saved_clock); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_WIDTH, GLAMO_LCD_WIDTH_MASK, -- gdrm->saved_width); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HEIGHT, GLAMO_LCD_HEIGHT_MASK, -- gdrm->saved_height); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_PITCH, GLAMO_LCD_PITCH_MASK, -- gdrm->saved_pitch); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_TOTAL, -- GLAMO_LCD_HV_TOTAL_MASK, gdrm->saved_htotal); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_START, -- GLAMO_LCD_HV_RETR_START_MASK, gdrm->saved_hrtrst); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_RETR_END, -- GLAMO_LCD_HV_RETR_END_MASK, gdrm->saved_hrtren); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_START, -- GLAMO_LCD_HV_RETR_DISP_START_MASK, -- gdrm->saved_hdspst); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_HORIZ_DISP_END, -- GLAMO_LCD_HV_RETR_DISP_END_MASK, -- gdrm->saved_hdspen); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_TOTAL, -- GLAMO_LCD_HV_TOTAL_MASK, gdrm->saved_vtotal); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_START, -- GLAMO_LCD_HV_RETR_START_MASK, gdrm->saved_vrtrst); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_RETR_END, -- GLAMO_LCD_HV_RETR_END_MASK, gdrm->saved_vrtren); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_START, -- GLAMO_LCD_HV_RETR_DISP_START_MASK, -- gdrm->saved_vdspst); -- reg_set_bit_mask_lcd(gdrm, GLAMO_REG_LCD_VERT_DISP_END, -- GLAMO_LCD_HV_RETR_DISP_END_MASK, -- gdrm->saved_vdspen); -- glamo_lcd_cmd_mode(gdrm, 0); -+ if ( gcrtc->current_mode_set ) { -+ glamo_crtc_mode_set(crtc, &gcrtc->current_mode, -+ &gcrtc->current_mode, 0, 0, -+ gcrtc->current_fb); -+ } - } -diff --git a/drivers/mfd/glamo/glamo-display.h b/drivers/mfd/glamo/glamo-display.h -index d6f21bc..728bba5 100644 ---- a/drivers/mfd/glamo/glamo-display.h -+++ b/drivers/mfd/glamo/glamo-display.h -@@ -36,4 +36,6 @@ extern int glamo_framebuffer_create(struct drm_device *dev, - extern void glamo_display_suspend(struct glamodrm_handle *gdrm); - extern void glamo_display_resume(struct glamodrm_handle *gdrm); - -+extern void glamo_lcd_power(struct glamodrm_handle *gdrm, int mode); -+ - #endif /* __GLAMO_DISPLAY_H */ -diff --git a/drivers/mfd/glamo/glamo-drm-private.h b/drivers/mfd/glamo/glamo-drm-private.h -index 7949a2e..4e24019 100644 ---- a/drivers/mfd/glamo/glamo-drm-private.h -+++ b/drivers/mfd/glamo/glamo-drm-private.h -@@ -106,6 +106,9 @@ struct glamodrm_handle { - - /* A scratch block */ - struct drm_mm_node *scratch; -+ -+ /* We only have one */ -+ struct drm_crtc *crtc; - }; - - -@@ -118,11 +121,18 @@ struct drm_glamo_gem_object { - - - struct glamo_crtc { -+ - struct drm_crtc base; - struct glamodrm_handle *gdrm; - /* a mode_set for fbdev users on this crtc */ - struct drm_mode_set mode_set; - int blank_mode; -+ -+ int pixel_clock_on; -+ -+ int current_mode_set; -+ struct drm_display_mode current_mode; -+ struct drm_framebuffer *current_fb; - }; - - -diff --git a/drivers/mfd/glamo/glamo-kms-fb.c b/drivers/mfd/glamo/glamo-kms-fb.c -index 61cd605..57680ed 100644 ---- a/drivers/mfd/glamo/glamo-kms-fb.c -+++ b/drivers/mfd/glamo/glamo-kms-fb.c -@@ -253,64 +253,24 @@ static void glamofb_on(struct fb_info *info) - { - struct glamofb_par *par = info->par; - struct drm_device *dev = par->dev; -- struct drm_crtc *crtc; -- struct drm_encoder *encoder; -- int i; -+ struct glamodrm_handle *gdrm = dev->dev_private; - -- /* -- * For each CRTC in this fb, find all associated encoders -- * and turn them off, then turn off the CRTC. -- */ -- list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { -- struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private; -+ printk(KERN_CRIT "Turning on display...\n"); - -- for (i = 0; i < par->crtc_count; i++) -- if (crtc->base.id == par->crtc_ids[i]) -- break; -- -- crtc_funcs->dpms(crtc, DRM_MODE_DPMS_ON); -+ gdrm = dev->dev_private; - -- /* Found a CRTC on this fb, now find encoders */ -- list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { -- if (encoder->crtc == crtc) { -- struct drm_encoder_helper_funcs *encoder_funcs; -- encoder_funcs = encoder->helper_private; -- encoder_funcs->dpms(encoder, DRM_MODE_DPMS_ON); -- } -- } -- } -+ glamo_lcd_power(gdrm, 1); - } - - static void glamofb_off(struct fb_info *info, int dpms_mode) - { - struct glamofb_par *par = info->par; - struct drm_device *dev = par->dev; -- struct drm_crtc *crtc; -- struct drm_encoder *encoder; -- int i; -+ struct glamodrm_handle *gdrm = dev->dev_private; - -- /* -- * For each CRTC in this fb, find all associated encoders -- * and turn them off, then turn off the CRTC. -- */ -- list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { -- struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private; -- -- for (i = 0; i < par->crtc_count; i++) -- if (crtc->base.id == par->crtc_ids[i]) -- break; -+ printk(KERN_CRIT "Turning off display...\n"); - -- /* Found a CRTC on this fb, now find encoders */ -- list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { -- if (encoder->crtc == crtc) { -- struct drm_encoder_helper_funcs *encoder_funcs; -- encoder_funcs = encoder->helper_private; -- encoder_funcs->dpms(encoder, dpms_mode); -- } -- } -- if (dpms_mode == DRM_MODE_DPMS_OFF) -- crtc_funcs->dpms(crtc, dpms_mode); -- } -+ glamo_lcd_power(gdrm, 0); - } - - static int glamofb_blank(int blank, struct fb_info *info) -diff --git a/drivers/video/backlight/jbt6k74.c b/drivers/video/backlight/jbt6k74.c -index 95ca4cf..9554cb3 100644 ---- a/drivers/video/backlight/jbt6k74.c -+++ b/drivers/video/backlight/jbt6k74.c -@@ -107,14 +107,12 @@ enum jbt_resolution { - }; - - enum jbt_power_mode { -- JBT_POWER_MODE_DEEP_STANDBY, -- JBT_POWER_MODE_SLEEP, -+ JBT_POWER_MODE_OFF, - JBT_POWER_MODE_NORMAL, - }; - - static const char *jbt_power_mode_names[] = { -- [JBT_POWER_MODE_DEEP_STANDBY] = "deep-standby", -- [JBT_POWER_MODE_SLEEP] = "sleep", -+ [JBT_POWER_MODE_OFF] = "off", - [JBT_POWER_MODE_NORMAL] = "normal", - }; - -@@ -260,14 +258,18 @@ static int jbt_init_regs(struct jbt_info *jbt) - return ret ? -EIO : 0; - } - --static int jbt_standby_to_sleep(struct jbt_info *jbt) -+ -+static int jbt_off_to_normal(struct jbt_info *jbt) - { - int ret; -+ - struct jbt6k74_platform_data *pdata = jbt->spi->dev.platform_data; - - gpio_set_value_cansleep(pdata->gpio_reset, 1); - ret = regulator_bulk_enable(ARRAY_SIZE(jbt->supplies), jbt->supplies); - -+ mdelay(30); -+ - /* three times command zero */ - ret |= jbt_reg_write_nodata(jbt, 0x00); - mdelay(1); -@@ -279,18 +281,11 @@ static int jbt_standby_to_sleep(struct jbt_info *jbt) - /* deep standby out */ - ret |= jbt_reg_write(jbt, JBT_REG_POWER_ON_OFF, 0x11); - mdelay(1); -- ret = jbt_reg_write(jbt, JBT_REG_DISPLAY_MODE, 0x28); -+ ret |= jbt_reg_write(jbt, JBT_REG_DISPLAY_MODE, 0x28); - - /* (re)initialize register set */ - ret |= jbt_init_regs(jbt); - -- return ret ? -EIO : 0; --} -- --static int jbt_sleep_to_normal(struct jbt_info *jbt) --{ -- int ret; -- - /* Make sure we are 120 ms after SLEEP_OUT */ - if (time_before(jiffies, jbt->next_sleep)) - mdelay(jiffies_to_msecs(jbt->next_sleep - jiffies)); -@@ -320,53 +315,34 @@ static int jbt_sleep_to_normal(struct jbt_info *jbt) - - /* Sleep mode off */ - ret |= jbt_reg_write_nodata(jbt, JBT_REG_SLEEP_OUT); -- jbt->next_sleep = jiffies + msecs_to_jiffies(120); - -- /* Allow the booster and display controller to restart stably */ -- mdelay(5); -- -- return ret ? -EIO : 0; --} -- --static int jbt_normal_to_sleep(struct jbt_info *jbt) --{ -- int ret; -- -- /* Make sure we are 120 ms after SLEEP_OUT */ -- while (time_before(jiffies, jbt->next_sleep)) -- cpu_relax(); -- -- ret = jbt_reg_write_nodata(jbt, JBT_REG_DISPLAY_OFF); -- ret |= jbt_reg_write16(jbt, JBT_REG_OUTPUT_CONTROL, 0x8000 | 1 << 3); -- ret |= jbt_reg_write_nodata(jbt, JBT_REG_SLEEP_IN); - jbt->next_sleep = jiffies + msecs_to_jiffies(120); - -- /* Allow the internal circuits to stop automatically */ -+ /* Allow the booster and display controller to restart stably */ - mdelay(5); - - return ret ? -EIO : 0; - } - --static int jbt_sleep_to_standby(struct jbt_info *jbt) -+static int jbt_normal_to_off(struct jbt_info *jbt) - { - int ret; - struct jbt6k74_platform_data *pdata = jbt->spi->dev.platform_data; - -- ret = jbt_reg_write(jbt, JBT_REG_POWER_ON_OFF, 0x00); -- -- if (!ret) -- ret = regulator_bulk_disable(ARRAY_SIZE(jbt->supplies), jbt->supplies); -+ /* Pull the plug! */ -+ ret = regulator_bulk_disable(ARRAY_SIZE(jbt->supplies), -+ jbt->supplies); - - if (!ret) - gpio_set_value_cansleep(pdata->gpio_reset, 0); - -- return ret; -+ return ret ? -EIO : 0; - } - -+ - static int jbt6k74_enter_power_mode(struct jbt_info *jbt, - enum jbt_power_mode new_mode) - { -- struct jbt6k74_platform_data *pdata = jbt->spi->dev.platform_data; - int ret = -EINVAL; - - dev_dbg(&jbt->spi->dev, "entering (old_state=%s, new_state=%s)\n", -@@ -375,49 +351,14 @@ static int jbt6k74_enter_power_mode(struct jbt_info *jbt, - - mutex_lock(&jbt->lock); - -- if (jbt->suspended) { -- switch (new_mode) { -- case JBT_POWER_MODE_DEEP_STANDBY: -- case JBT_POWER_MODE_SLEEP: -- case JBT_POWER_MODE_NORMAL: -- ret = 0; -- jbt->suspend_mode = new_mode; -- break; -- default: -- break; -- } -- } else if (new_mode == JBT_POWER_MODE_NORMAL && -- pdata->enable_pixel_clock) { -- pdata->enable_pixel_clock(&jbt->spi->dev, 1); -- } -- - switch (jbt->power_mode) { -- case JBT_POWER_MODE_DEEP_STANDBY: -- switch (new_mode) { -- case JBT_POWER_MODE_DEEP_STANDBY: -- ret = 0; -- break; -- case JBT_POWER_MODE_SLEEP: -- ret = jbt_standby_to_sleep(jbt); -- break; -- case JBT_POWER_MODE_NORMAL: -- /* first transition into sleep */ -- ret = jbt_standby_to_sleep(jbt); -- /* then transition into normal */ -- ret |= jbt_sleep_to_normal(jbt); -- break; -- } -- break; -- case JBT_POWER_MODE_SLEEP: -+ case JBT_POWER_MODE_OFF: - switch (new_mode) { -- case JBT_POWER_MODE_SLEEP: -+ case JBT_POWER_MODE_OFF: - ret = 0; - break; -- case JBT_POWER_MODE_DEEP_STANDBY: -- ret = jbt_sleep_to_standby(jbt); -- break; - case JBT_POWER_MODE_NORMAL: -- ret = jbt_sleep_to_normal(jbt); -+ ret = jbt_off_to_normal(jbt); - break; - } - break; -@@ -426,25 +367,16 @@ static int jbt6k74_enter_power_mode(struct jbt_info *jbt, - case JBT_POWER_MODE_NORMAL: - ret = 0; - break; -- case JBT_POWER_MODE_DEEP_STANDBY: -- /* first transition into sleep */ -- ret = jbt_normal_to_sleep(jbt); -- /* then transition into deep standby */ -- ret |= jbt_sleep_to_standby(jbt); -- break; -- case JBT_POWER_MODE_SLEEP: -- ret = jbt_normal_to_sleep(jbt); -+ case JBT_POWER_MODE_OFF: -+ ret = jbt_normal_to_off(jbt); - break; - } - } - - if (ret == 0) { - jbt->power_mode = new_mode; -- if (new_mode != JBT_POWER_MODE_NORMAL && -- pdata->enable_pixel_clock) -- pdata->enable_pixel_clock(&jbt->spi->dev, 0); - } else { -- dev_err(&jbt->spi->dev, "Failed enter state '%s': %d\n", -+ dev_err(&jbt->spi->dev, "Failed to enter state '%s': %d\n", - jbt_power_mode_names[new_mode], ret); - } - -@@ -470,8 +402,8 @@ static int jbt6k74_set_resolution(struct jbt_info *jbt, - if (jbt->power_mode == JBT_POWER_MODE_NORMAL) { - - /* first transition into sleep */ -- ret = jbt_normal_to_sleep(jbt); -- ret |= jbt_sleep_to_normal(jbt); -+ ret = jbt_normal_to_off(jbt); -+ ret |= jbt_off_to_normal(jbt); - - if (ret) { - jbt->resolution = old_resolution; -@@ -589,7 +521,7 @@ static ssize_t reset_write(struct device *dev, struct device_attribute *attr, - - mutex_unlock(&jbt->lock); - -- jbt->power_mode = JBT_POWER_MODE_DEEP_STANDBY; -+ jbt->power_mode = JBT_POWER_MODE_OFF; - jbt6k74_enter_power_mode(jbt, old_power_mode); - - return count; -@@ -616,27 +548,6 @@ static struct attribute_group jbt_attr_group = { - .attrs = jbt_sysfs_entries, - }; - --/* FIXME: This in an ugly hack to delay display blanking. -- When the jbt is in sleep mode it displays an all white screen and thus one -- will a see a short flash. -- By delaying the blanking we will give the backlight a chance to turn off and -- thus avoid getting the flash */ --static void jbt_blank_worker(struct work_struct *work) --{ -- struct jbt_info *jbt = container_of(work, struct jbt_info, -- blank_work.work); -- -- switch (jbt->blank_mode) { -- case FB_BLANK_NORMAL: -- jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_SLEEP); -- break; -- case FB_BLANK_POWERDOWN: -- jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_DEEP_STANDBY); -- break; -- default: -- break; -- } --} - - static int jbt6k74_set_mode(struct lcd_device *ld, struct fb_videomode *m) - { -@@ -649,7 +560,7 @@ static int jbt6k74_set_mode(struct lcd_device *ld, struct fb_videomode *m) - ret = jbt6k74_set_resolution(jbt, JBT_RESOLUTION_VGA); - } else { - dev_err(&jbt->spi->dev, "Unknown resolution.\n"); -- jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_SLEEP); -+ jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_OFF); - } - - return ret; -@@ -671,11 +582,11 @@ static int jbt6k74_set_power(struct lcd_device *ld, int power) - break; - case FB_BLANK_NORMAL: - dev_dbg(&jbt->spi->dev, "blank\n"); -- ret = schedule_delayed_work(&jbt->blank_work, HZ); -+ ret = jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_OFF); - break; - case FB_BLANK_POWERDOWN: - dev_dbg(&jbt->spi->dev, "powerdown\n"); -- ret = schedule_delayed_work(&jbt->blank_work, HZ); -+ ret = jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_OFF); - break; - default: - break; -@@ -691,10 +602,10 @@ static int jbt6k74_get_power(struct lcd_device *ld) - switch (jbt->power_mode) { - case JBT_POWER_MODE_NORMAL: - return FB_BLANK_UNBLANK; -- case JBT_POWER_MODE_SLEEP: -+ case JBT_POWER_MODE_OFF: - return FB_BLANK_NORMAL; - default: -- return JBT_POWER_MODE_DEEP_STANDBY; -+ return JBT_POWER_MODE_OFF; - } - } - -@@ -707,7 +618,7 @@ void jbt6k74_action(int val) - return; - } - if ( val == 0 ) { -- jbt6k74_enter_power_mode(jbt_global, JBT_POWER_MODE_SLEEP); -+ jbt6k74_enter_power_mode(jbt_global, JBT_POWER_MODE_OFF); - } else { - jbt6k74_enter_power_mode(jbt_global, JBT_POWER_MODE_NORMAL); - } -@@ -756,11 +667,9 @@ static int __devinit jbt_probe(struct spi_device *spi) - goto err_free_drvdata; - } - -- INIT_DELAYED_WORK(&jbt->blank_work, jbt_blank_worker); -- - jbt->resolution = JBT_RESOLUTION_VGA; -- jbt->power_mode = JBT_POWER_MODE_DEEP_STANDBY; - jbt->next_sleep = jiffies + msecs_to_jiffies(120); -+ jbt->power_mode = JBT_POWER_MODE_OFF; - mutex_init(&jbt->lock); - - dev_set_drvdata(&spi->dev, jbt); -@@ -856,9 +765,10 @@ static int jbt_suspend(struct spi_device *spi, pm_message_t state) - - jbt->suspend_mode = jbt->power_mode; - -- jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_DEEP_STANDBY); -- jbt->suspended = 1; -+ printk(KERN_CRIT "[jbt] powering off for suspend\n"); -+ jbt6k74_enter_power_mode(jbt, JBT_POWER_MODE_OFF); - -+ printk(KERN_CRIT "[jbt] done\n"); - dev_info(&spi->dev, "suspended\n"); - - return 0; -@@ -869,11 +779,13 @@ int jbt6k74_resume(struct spi_device *spi) - struct jbt_info *jbt = dev_get_drvdata(&spi->dev); - dev_info(&spi->dev, "starting resume: %d\n", jbt->suspend_mode); - -+ printk(KERN_CRIT "[jbt] powering on for resume\n"); - mdelay(20); - - jbt->suspended = 0; - jbt6k74_enter_power_mode(jbt, jbt->suspend_mode); - -+ printk(KERN_CRIT "[jbt] done\n"); - dev_info(&spi->dev, "resumed: %d\n", jbt->suspend_mode); - - return 0; -diff --git a/include/linux/jbt6k74.h b/include/linux/jbt6k74.h -index 75488c4..4cf760c 100644 ---- a/include/linux/jbt6k74.h -+++ b/include/linux/jbt6k74.h -@@ -13,7 +13,6 @@ - */ - struct jbt6k74_platform_data { - void (*probe_completed)(struct device *dev); -- void (*enable_pixel_clock)(struct device *dev, int enable); - - int gpio_reset; - }; --- -1.7.0 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0011-Don-t-choke-if-userspace-provides-a-pixel-clock-valu.patch b/recipes/linux/linux-openmoko-2.6.32/0011-Don-t-choke-if-userspace-provides-a-pixel-clock-valu.patch deleted file mode 100644 index 0d47c1263f..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0011-Don-t-choke-if-userspace-provides-a-pixel-clock-valu.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 73abadc5bbbc94f4ca67effc5f5c3174c2a3ac48 Mon Sep 17 00:00:00 2001 -From: Thomas White <taw@bitwiz.org.uk> -Date: Sun, 28 Feb 2010 15:40:13 +0100 -Subject: [PATCH 2/2] Don't choke if userspace provides a pixel clock value - -Don't choke if userspace provides a pixel clock value - -Signed-off-by: Thomas White <taw@bitwiz.org.uk> ---- - drivers/mfd/glamo/glamo-kms-fb.c | 46 ++++++++++++++++++------------------- - 1 files changed, 22 insertions(+), 24 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-kms-fb.c b/drivers/mfd/glamo/glamo-kms-fb.c -index 57680ed..6d4b9ea 100644 ---- a/drivers/mfd/glamo/glamo-kms-fb.c -+++ b/drivers/mfd/glamo/glamo-kms-fb.c -@@ -177,37 +177,35 @@ static int glamofb_set_par(struct fb_info *info) - struct drm_device *dev = par->dev; - struct fb_var_screeninfo *var = &info->var; - int i; -+ struct drm_crtc *crtc; -+ int ret; - - DRM_DEBUG("%d %d\n", var->xres, var->pixclock); - - if (var->pixclock != -1) { -+ DRM_ERROR("Warning: userspace gave me a pixel clock value (%i)" -+ "- I'm ignoring it.\n", var->pixclock); -+ } - -- DRM_ERROR("PIXEL CLOCK SET\n"); -- return -EINVAL; -- } else { -- struct drm_crtc *crtc; -- int ret; -- -- list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { -- struct glamo_crtc *glamo_crtc = to_glamo_crtc(crtc); -- -- for (i = 0; i < par->crtc_count; i++) -- if (crtc->base.id == par->crtc_ids[i]) -- break; -- -- if (i == par->crtc_count) -- continue; -- -- if (crtc->fb == glamo_crtc->mode_set.fb) { -- mutex_lock(&dev->mode_config.mutex); -- ret = crtc->funcs->set_config(&glamo_crtc->mode_set); -- mutex_unlock(&dev->mode_config.mutex); -- if (ret) -- return ret; -- } -+ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { -+ struct glamo_crtc *glamo_crtc = to_glamo_crtc(crtc); -+ -+ for (i = 0; i < par->crtc_count; i++) -+ if (crtc->base.id == par->crtc_ids[i]) -+ break; -+ -+ if (i == par->crtc_count) -+ continue; -+ -+ if (crtc->fb == glamo_crtc->mode_set.fb) { -+ mutex_lock(&dev->mode_config.mutex); -+ ret = crtc->funcs->set_config(&glamo_crtc->mode_set); -+ mutex_unlock(&dev->mode_config.mutex); -+ if (ret) -+ return ret; - } -- return 0; - } -+ return 0; - } - - static int glamofb_pan_display(struct fb_var_screeninfo *var, --- -1.7.0 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0008-Fix-crash-when-reading-Glamo-registers-via-sysfs.patch b/recipes/linux/linux-openmoko-2.6.32/0011-Fix-crash-when-reading-Glamo-registers-via-sysfs.patch index f5da51ed95..0f5af99025 100644 --- a/recipes/linux/linux-openmoko-2.6.32/0008-Fix-crash-when-reading-Glamo-registers-via-sysfs.patch +++ b/recipes/linux/linux-openmoko-2.6.32/0011-Fix-crash-when-reading-Glamo-registers-via-sysfs.patch @@ -1,7 +1,7 @@ -From f6debba05c9f6d0337324dc0eaa8e892d2d3142b Mon Sep 17 00:00:00 2001 +From d5f07ab010afe531312874872904fe1a0348ee2b Mon Sep 17 00:00:00 2001 From: Thomas White <taw@bitwiz.org.uk> Date: Thu, 4 Feb 2010 00:07:25 +0100 -Subject: [PATCH 8/9] Fix crash when reading Glamo registers via sysfs +Subject: [PATCH 11/14] Fix crash when reading Glamo registers via sysfs glamo-core didn't ioremap() some areas, so don't try to read them. @@ -11,7 +11,7 @@ Signed-off-by: Thomas White <taw@bitwiz.org.uk> 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c -index a614d44..faaf269 100644 +index 74da668..33a7a59 100644 --- a/drivers/mfd/glamo/glamo-core.c +++ b/drivers/mfd/glamo/glamo-core.c @@ -90,14 +90,14 @@ static const struct reg_range reg_range[] = { @@ -34,5 +34,5 @@ index a614d44..faaf269 100644 }; -- -1.6.6.1 +1.7.1 diff --git a/recipes/linux/linux-openmoko-2.6.32/0012-Fix-dynamic-command-queue-allocation.patch b/recipes/linux/linux-openmoko-2.6.32/0012-Fix-dynamic-command-queue-allocation.patch new file mode 100644 index 0000000000..68e170a588 --- /dev/null +++ b/recipes/linux/linux-openmoko-2.6.32/0012-Fix-dynamic-command-queue-allocation.patch @@ -0,0 +1,131 @@ +From 3b328bfd4aef3ffc9b0192ca512fbc899148e8f5 Mon Sep 17 00:00:00 2001 +From: Thomas White <taw@bitwiz.org.uk> +Date: Thu, 6 May 2010 05:40:15 -0700 +Subject: [PATCH 12/14] Fix dynamic command queue allocation + +(Not tested...) + +Signed-off-by: Thomas White <taw@bitwiz.org.uk> +--- + drivers/mfd/glamo/glamo-cmdq.c | 10 +++++++--- + drivers/mfd/glamo/glamo-cmdq.h | 2 +- + drivers/mfd/glamo/glamo-drm-drv.c | 17 +++++++---------- + 3 files changed, 15 insertions(+), 14 deletions(-) + +diff --git a/drivers/mfd/glamo/glamo-cmdq.c b/drivers/mfd/glamo/glamo-cmdq.c +index 442963c..28c5268 100644 +--- a/drivers/mfd/glamo/glamo-cmdq.c ++++ b/drivers/mfd/glamo/glamo-cmdq.c +@@ -57,6 +57,7 @@ + #include "glamo-core.h" + #include "glamo-drm-private.h" + #include "glamo-regs.h" ++#include "glamo-buffer.h" + + + #define GLAMO_CMDQ_SIZE (128 * 1024) /* 128k ring buffer */ +@@ -495,10 +496,11 @@ int glamo_cmdq_setup(struct glamodrm_handle *gdrm) + } + + +-int glamo_cmdq_init(struct glamodrm_handle *gdrm) ++int glamo_cmdq_init(struct drm_device *dev) + { + struct drm_gem_object *obj; + struct drm_glamo_gem_object *gobj; ++ struct glamodrm_handle *gdrm = dev->dev_private; + int ret = 0; + + obj = glamo_gem_object_alloc(dev, GLAMO_CMDQ_SIZE, 4); +@@ -507,9 +509,10 @@ int glamo_cmdq_init(struct glamodrm_handle *gdrm) + ret = -ENOMEM; + goto out; + } +- gobj = fbo->driver_private; ++ gobj = obj->driver_private; + gdrm->cmdq_offs = GLAMO_OFFSET_FB + gobj->block->start; +- gdrm->cmdq_base = ioremap(gdrm->vram->start + offs, GLAMO_CMDQ_SIZE); ++ gdrm->cmdq_base = ioremap(gdrm->vram->start + gdrm->cmdq_offs, ++ GLAMO_CMDQ_SIZE); + + /* Set up registers */ + glamo_cmdq_setup(gdrm); +@@ -521,6 +524,7 @@ out: + + int glamo_cmdq_shutdown(struct glamodrm_handle *gdrm) + { ++ iounmap(gdrm->cmdq_base); + return 0; + } + +diff --git a/drivers/mfd/glamo/glamo-cmdq.h b/drivers/mfd/glamo/glamo-cmdq.h +index 510d195..6d7f184 100644 +--- a/drivers/mfd/glamo/glamo-cmdq.h ++++ b/drivers/mfd/glamo/glamo-cmdq.h +@@ -38,7 +38,7 @@ extern int glamo_ioctl_cmdburst(struct drm_device *dev, void *data, + extern void glamo_cmdq_blank(struct glamodrm_handle *gdrm, + struct drm_gem_object *obj); + +-extern int glamo_cmdq_init(struct glamodrm_handle *gdrm); ++extern int glamo_cmdq_init(struct drm_device *de); + extern int glamo_cmdq_shutdown(struct glamodrm_handle *gdrm); + extern void glamo_cmdq_suspend(struct glamodrm_handle *gdrm); + extern void glamo_cmdq_resume(struct glamodrm_handle *gdrm); +diff --git a/drivers/mfd/glamo/glamo-drm-drv.c b/drivers/mfd/glamo/glamo-drm-drv.c +index 774eaff..ee648c1 100644 +--- a/drivers/mfd/glamo/glamo-drm-drv.c ++++ b/drivers/mfd/glamo/glamo-drm-drv.c +@@ -128,7 +128,7 @@ static int glamodrm_load(struct drm_device *dev, unsigned long flags) + gdrm = dev->dev_private; + + glamo_buffer_init(gdrm); +- glamo_cmdq_init(gdrm); ++ glamo_cmdq_init(dev); + glamo_fence_init(gdrm); + glamo_display_init(dev); + +@@ -237,14 +237,14 @@ static int glamodrm_probe(struct platform_device *pdev) + if ( !gdrm->vram ) { + dev_err(&pdev->dev, "Unable to find VRAM.\n"); + rc = -ENOENT; +- goto out_unmap_cmdq; ++ goto out_unmap_regs; + } + gdrm->vram = request_mem_region(gdrm->vram->start, + resource_size(gdrm->vram), pdev->name); + if ( !gdrm->vram ) { + dev_err(&pdev->dev, "failed to request VRAM region\n"); + rc = -ENOENT; +- goto out_unmap_cmdq; ++ goto out_unmap_regs; + } + + /* Find the LCD controller */ +@@ -316,10 +316,6 @@ out_release_lcd: + resource_size(gdrm->lcd_regs)); + out_release_vram: + release_mem_region(gdrm->vram->start, resource_size(gdrm->vram)); +-out_unmap_cmdq: +- iounmap(gdrm->cmdq_base); +-out_release_cmdq: +- release_mem_region(gdrm->cmdq->start, resource_size(gdrm->cmdq)); + out_unmap_regs: + iounmap(gdrm->reg_base); + out_release_regs: +@@ -349,9 +345,10 @@ static int glamodrm_remove(struct platform_device *pdev) + /* Release VRAM */ + release_mem_region(gdrm->vram->start, resource_size(gdrm->vram)); + +- /* Release command queue */ +- iounmap(gdrm->cmdq_base); +- release_mem_region(gdrm->cmdq->start, resource_size(gdrm->cmdq)); ++ /* Release LCD registers */ ++ iounmap(gdrm->lcd_base); ++ release_mem_region(gdrm->lcd_regs->start, ++ resource_size(gdrm->lcd_regs)); + + /* Release 2D engine */ + iounmap(gdrm->twod_base); +-- +1.7.1 + diff --git a/recipes/linux/linux-openmoko-2.6.32/0012-Report-all-FB-modes-given-by-the-lower-levels.patch b/recipes/linux/linux-openmoko-2.6.32/0012-Report-all-FB-modes-given-by-the-lower-levels.patch deleted file mode 100644 index ac19dbd5d2..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0012-Report-all-FB-modes-given-by-the-lower-levels.patch +++ /dev/null @@ -1,102 +0,0 @@ -From f8448d2b08c1e2cfd0faba0e3f3c4c58e4ecaa9f Mon Sep 17 00:00:00 2001 -From: Thomas White <taw@bitwiz.org.uk> -Date: Mon, 1 Mar 2010 22:02:26 +0100 -Subject: [PATCH 12/13] Report all FB modes given by the lower levels - -Signed-off-by: Thomas White <taw@bitwiz.org.uk> -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> ---- - drivers/mfd/glamo/glamo-display.c | 70 +++++++++++++++++++++---------------- - 1 files changed, 40 insertions(+), 30 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-display.c b/drivers/mfd/glamo/glamo-display.c -index a384c8b..bc3a2ea 100644 ---- a/drivers/mfd/glamo/glamo-display.c -+++ b/drivers/mfd/glamo/glamo-display.c -@@ -456,43 +456,53 @@ static void glamo_connector_destroy(struct drm_connector *connector) - - static int glamo_connector_get_modes(struct drm_connector *connector) - { -- struct drm_display_mode *mode; - struct glamo_fb_platform_data *fb_info; - struct glamo_output *goutput = to_glamo_output(connector); - struct glamodrm_handle *gdrm = goutput->gdrm; -+ int i; - - /* Dig out the record which will tell us about the hardware */ - fb_info = gdrm->glamo_core->pdata->fb_data; - -- mode = drm_mode_create(connector->dev); -- if (!mode) -- return 0; -- /* Fill in 'mode' here */ -- mode->type = DRM_MODE_TYPE_DEFAULT | DRM_MODE_TYPE_PREFERRED; -- -- /* Convert framebuffer timings into KMS timings */ -- mode->clock = 1000000000UL / fb_info->modes[0].pixclock; /* ps -> kHz */ -- mode->clock *= 1000; /* kHz -> Hz */ -- mode->hdisplay = fb_info->modes[0].xres; -- mode->hsync_start = fb_info->modes[0].right_margin + mode->hdisplay; -- mode->hsync_end = mode->hsync_start + fb_info->modes[0].hsync_len; -- mode->htotal = mode->hsync_end + fb_info->modes[0].left_margin; -- mode->hskew = 0; -- -- mode->vdisplay = fb_info->modes[0].yres; -- mode->vsync_start = fb_info->modes[0].lower_margin + mode->vdisplay; -- mode->vsync_end = mode->vsync_start + fb_info->modes[0].vsync_len; -- mode->vtotal = mode->vsync_end + fb_info->modes[0].upper_margin; -- mode->vscan = 0; -- -- /* Physical size */ -- mode->width_mm = fb_info->width; -- mode->height_mm = fb_info->height; -- -- drm_mode_set_name(mode); -- drm_mode_probed_add(connector, mode); -- -- return 1; /* one mode, for now */ -+ for ( i=0; i<fb_info->num_modes; i++ ) { -+ -+ struct drm_display_mode *mode; -+ -+ mode = drm_mode_create(connector->dev); -+ if ( !mode ) continue; -+ -+ mode->type = DRM_MODE_TYPE_DEFAULT | DRM_MODE_TYPE_PREFERRED; -+ -+ /* Convert framebuffer timings into KMS timings. -+ * First: ps -> kHz */ -+ mode->clock = 1000000000UL / fb_info->modes[i].pixclock; -+ mode->clock *= 1000; /* then kHz -> Hz */ -+ mode->hdisplay = fb_info->modes[i].xres; -+ mode->hsync_start = fb_info->modes[i].right_margin -+ + mode->hdisplay; -+ mode->hsync_end = mode->hsync_start -+ + fb_info->modes[i].hsync_len; -+ mode->htotal = mode->hsync_end + fb_info->modes[i].left_margin; -+ mode->hskew = 0; -+ -+ mode->vdisplay = fb_info->modes[i].yres; -+ mode->vsync_start = fb_info->modes[i].lower_margin -+ + mode->vdisplay; -+ mode->vsync_end = mode->vsync_start -+ + fb_info->modes[i].vsync_len; -+ mode->vtotal = mode->vsync_end + fb_info->modes[i].upper_margin; -+ mode->vscan = 0; -+ -+ /* Physical size */ -+ mode->width_mm = fb_info->width; -+ mode->height_mm = fb_info->height; -+ -+ drm_mode_set_name(mode); -+ drm_mode_probed_add(connector, mode); -+ -+ } -+ -+ return fb_info->num_modes; - } - - --- -1.7.0 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0013-Change-connector-type-to-LVDS.patch b/recipes/linux/linux-openmoko-2.6.32/0013-Change-connector-type-to-LVDS.patch deleted file mode 100644 index 1b8c653607..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0013-Change-connector-type-to-LVDS.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 3f1154d1b763f981791ad54987e61d31bde43ec7 Mon Sep 17 00:00:00 2001 -From: Thomas White <taw@bitwiz.org.uk> -Date: Mon, 1 Mar 2010 22:07:57 +0100 -Subject: [PATCH 13/13] Change connector type to LVDS - -Not certain that this exactly describes what it is, and too lazy to check, but for sure -it's a better description than "Unknown". - -Signed-off-by: Thomas White <taw@bitwiz.org.uk> ---- - drivers/mfd/glamo/glamo-display.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-display.c b/drivers/mfd/glamo/glamo-display.c -index bc3a2ea..5f04697 100644 ---- a/drivers/mfd/glamo/glamo-display.c -+++ b/drivers/mfd/glamo/glamo-display.c -@@ -795,7 +795,7 @@ int glamo_display_init(struct drm_device *dev) - - /* Initialise the connector */ - drm_connector_init(dev, connector, &glamo_connector_funcs, -- DRM_MODE_CONNECTOR_Unknown); -+ DRM_MODE_CONNECTOR_LVDS); - drm_sysfs_connector_add(connector); - connector->interlace_allowed = 0; - connector->doublescan_allowed = 0; --- -1.7.0 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0013-Debug-statements-for-testing.patch b/recipes/linux/linux-openmoko-2.6.32/0013-Debug-statements-for-testing.patch new file mode 100644 index 0000000000..cc58d1629e --- /dev/null +++ b/recipes/linux/linux-openmoko-2.6.32/0013-Debug-statements-for-testing.patch @@ -0,0 +1,78 @@ +From fa66cc905714c94bca6580c9adf7b57fa3b1da02 Mon Sep 17 00:00:00 2001 +From: Thomas White <taw@bitwiz.org.uk> +Date: Thu, 6 May 2010 05:40:33 -0700 +Subject: [PATCH 13/14] Debug statements for testing + +Signed-off-by: Thomas White <taw@bitwiz.org.uk> +--- + drivers/mfd/glamo/glamo-display.c | 7 +++++++ + drivers/video/backlight/jbt6k74.c | 4 +++- + 2 files changed, 10 insertions(+), 1 deletions(-) + +diff --git a/drivers/mfd/glamo/glamo-display.c b/drivers/mfd/glamo/glamo-display.c +index 75ad734..57292ff 100644 +--- a/drivers/mfd/glamo/glamo-display.c ++++ b/drivers/mfd/glamo/glamo-display.c +@@ -257,6 +257,8 @@ static int glamo_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, + u32 addr; + u16 addr_low, addr_high; + ++ printk(KERN_CRIT "Setting base!\n"); ++ + if (!crtc->fb) { + DRM_DEBUG("No FB bound\n"); + return -EINVAL; +@@ -311,6 +313,8 @@ static int glamo_crtc_mode_set(struct drm_crtc *crtc, + msleep(500); + } + ++ printk(KERN_CRIT "Setting mode!\n"); ++ + /* Rotate? */ + if ( (mode->hdisplay == 640) && (mode->vdisplay == 480) ) { + rot = GLAMO_LCD_ROT_MODE_90; +@@ -935,15 +939,18 @@ void glamo_lcd_power(struct glamodrm_handle *gdrm, int mode) + struct glamo_crtc *gcrtc = to_glamo_crtc(crtc); + + if ( mode ) { ++ printk(KERN_CRIT "Power on sequence\n"); + glamo_engine_enable(gdrm->glamo_core, GLAMO_ENGINE_LCD); + gcrtc->pixel_clock_on = 1; + jbt6k74_setpower(JBT_POWER_MODE_NORMAL); + if ( gcrtc->current_mode_set ) { ++ printk(KERN_CRIT "Setting previous mode\n"); + glamo_crtc_mode_set(crtc, &gcrtc->current_mode, + &gcrtc->current_mode, 0, 0, + gcrtc->current_fb); + } + } else { ++ printk(KERN_CRIT "Power off sequence\n"); + jbt6k74_setpower(JBT_POWER_MODE_OFF); + glamo_engine_suspend(gdrm->glamo_core, GLAMO_ENGINE_LCD); + gcrtc->pixel_clock_on = 0; +diff --git a/drivers/video/backlight/jbt6k74.c b/drivers/video/backlight/jbt6k74.c +index 91651e7..56a3e3a 100644 +--- a/drivers/video/backlight/jbt6k74.c ++++ b/drivers/video/backlight/jbt6k74.c +@@ -389,7 +389,7 @@ static int jbt6k74_enter_power_mode(struct jbt_info *jbt, + { + int ret = -EINVAL; + +- dev_dbg(&jbt->spi->dev, "entering (old_state=%s, new_state=%s)\n", ++ printk(KERN_CRIT "entering (old_state=%s, new_state=%s)\n", + jbt_power_mode_names[jbt->power_mode], + jbt_power_mode_names[new_mode]); + +@@ -825,7 +825,9 @@ EXPORT_SYMBOL_GPL(jbt6k74_finish_resolutionchange); + + void jbt6k74_setpower(enum jbt_power_mode new_power) + { ++ printk(KERN_CRIT "About to set power..\n"); + if ( !jbt_global ) return; ++ printk(KERN_CRIT "Setting JBT power.. %i\n", new_power); + jbt6k74_enter_power_mode(jbt_global, new_power); + } + EXPORT_SYMBOL_GPL(jbt6k74_setpower); +-- +1.7.1 + diff --git a/recipes/linux/linux-openmoko-2.6.32/0014-Clean-up-JBT-hooks-and-allow-resolution-switching.patch b/recipes/linux/linux-openmoko-2.6.32/0014-Clean-up-JBT-hooks-and-allow-resolution-switching.patch deleted file mode 100644 index 287214b677..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0014-Clean-up-JBT-hooks-and-allow-resolution-switching.patch +++ /dev/null @@ -1,223 +0,0 @@ -From 644aab63501ebff3e819fd25d23c63da6b6e1cf5 Mon Sep 17 00:00:00 2001 -From: Thomas White <taw@bitwiz.org.uk> -Date: Mon, 8 Mar 2010 23:51:09 +0100 -Subject: [PATCH 14/15] Clean up JBT hooks, and allow resolution switching - -Signed-off-by: Thomas White <taw@bitwiz.org.uk> ---- - arch/arm/mach-s3c2442/mach-gta02.c | 2 +- - drivers/mfd/glamo/glamo-display.c | 17 ++++++---- - drivers/video/backlight/jbt6k74.c | 57 +++++++++++++++++++---------------- - include/linux/jbt6k74.h | 14 +++++++++ - 4 files changed, 56 insertions(+), 34 deletions(-) - -diff --git a/arch/arm/mach-s3c2442/mach-gta02.c b/arch/arm/mach-s3c2442/mach-gta02.c -index a969037..b580b1b 100644 ---- a/arch/arm/mach-s3c2442/mach-gta02.c -+++ b/arch/arm/mach-s3c2442/mach-gta02.c -@@ -229,7 +229,7 @@ static struct fb_videomode gta02_glamo_modes[] = { - .name = "240x320", - .xres = 240, - .yres = 320, -- .pixclock = 40816, -+ .pixclock = 100000, - .left_margin = 8, - .right_margin = 16, - .upper_margin = 2, -diff --git a/drivers/mfd/glamo/glamo-display.c b/drivers/mfd/glamo/glamo-display.c -index 5f04697..e56cdb4 100644 ---- a/drivers/mfd/glamo/glamo-display.c -+++ b/drivers/mfd/glamo/glamo-display.c -@@ -52,19 +52,18 @@ - * - */ - --#define DEBUG 1 -- - #include <drm/drmP.h> - #include <drm/glamo_drm.h> - #include <drm/drm_crtc_helper.h> - #include <drm/drm_crtc.h> -+#include <linux/glamofb.h> -+#include <linux/jbt6k74.h> - - #include "glamo-core.h" - #include "glamo-drm-private.h" - #include "glamo-regs.h" - #include "glamo-kms-fb.h" - #include "glamo-display.h" --#include <linux/glamofb.h> - - - #define GLAMO_LCD_WIDTH_MASK 0x03FF -@@ -356,6 +355,12 @@ static int glamo_crtc_mode_set(struct drm_crtc *crtc, - - glamo_lcd_cmd_mode(gdrm, 0); - -+ if ( mode->hdisplay == 240 ) { -+ jbt6k74_setresolution(JBT_RESOLUTION_QVGA); -+ } else { -+ jbt6k74_setresolution(JBT_RESOLUTION_VGA); -+ } -+ - glamo_crtc_mode_set_base(crtc, 0, 0, old_fb); - - gcrtc->current_mode = *mode; -@@ -366,8 +371,6 @@ static int glamo_crtc_mode_set(struct drm_crtc *crtc, - } - - --extern void jbt6k74_action(int val); -- - /* This is not the right place to switch power on/off, because the helper - * stuff ends up calling this before/after setting the mode. We can't - * set modes with the display off (although backlight off would be OK) */ -@@ -385,14 +388,14 @@ void glamo_lcd_power(struct glamodrm_handle *gdrm, int mode) - if ( mode ) { - glamo_engine_enable(gdrm->glamo_core, GLAMO_ENGINE_LCD); - gcrtc->pixel_clock_on = 1; -- jbt6k74_action(1); -+ jbt6k74_setpower(JBT_POWER_MODE_NORMAL); - if ( gcrtc->current_mode_set ) { - glamo_crtc_mode_set(crtc, &gcrtc->current_mode, - &gcrtc->current_mode, 0, 0, - gcrtc->current_fb); - } - } else { -- jbt6k74_action(0); -+ jbt6k74_setpower(JBT_POWER_MODE_OFF); - glamo_engine_suspend(gdrm->glamo_core, GLAMO_ENGINE_LCD); - gcrtc->pixel_clock_on = 0; - } -diff --git a/drivers/video/backlight/jbt6k74.c b/drivers/video/backlight/jbt6k74.c -index 9554cb3..40c31f6 100644 ---- a/drivers/video/backlight/jbt6k74.c -+++ b/drivers/video/backlight/jbt6k74.c -@@ -101,15 +101,6 @@ enum jbt_register { - JBT_REG_HCLOCK_QVGA = 0xed, - }; - --enum jbt_resolution { -- JBT_RESOLUTION_VGA, -- JBT_RESOLUTION_QVGA, --}; -- --enum jbt_power_mode { -- JBT_POWER_MODE_OFF, -- JBT_POWER_MODE_NORMAL, --}; - - static const char *jbt_power_mode_names[] = { - [JBT_POWER_MODE_OFF] = "off", -@@ -121,6 +112,7 @@ static const char *jbt_resolution_names[] = { - [JBT_RESOLUTION_QVGA] = "qvga", - }; - -+ - struct jbt_info { - struct mutex lock; /* protects this structure */ - enum jbt_resolution resolution; -@@ -139,6 +131,8 @@ struct jbt_info { - uint16_t reg_cache[0xEE]; - }; - -+struct jbt_info *jbt_global; -+ - #define JBT_COMMAND 0x000 - #define JBT_DATA 0x100 - -@@ -401,8 +395,9 @@ static int jbt6k74_set_resolution(struct jbt_info *jbt, - - if (jbt->power_mode == JBT_POWER_MODE_NORMAL) { - -- /* first transition into sleep */ -+ /* "Reboot" the LCM */ - ret = jbt_normal_to_off(jbt); -+ mdelay(1000); - ret |= jbt_off_to_normal(jbt); - - if (ret) { -@@ -609,22 +604,6 @@ static int jbt6k74_get_power(struct lcd_device *ld) - } - } - --/* This is utterly, totally horrible. I'm REALLY sorry... */ --struct jbt_info *jbt_global; --void jbt6k74_action(int val) --{ -- if ( !jbt_global ) { -- printk(KERN_CRIT "JBT not initialised!!!\n"); -- return; -- } -- if ( val == 0 ) { -- jbt6k74_enter_power_mode(jbt_global, JBT_POWER_MODE_OFF); -- } else { -- jbt6k74_enter_power_mode(jbt_global, JBT_POWER_MODE_NORMAL); -- } --} --EXPORT_SYMBOL_GPL(jbt6k74_action); -- - struct lcd_ops jbt6k74_lcd_ops = { - .set_power = jbt6k74_set_power, - .get_power = jbt6k74_get_power, -@@ -758,6 +737,32 @@ static int __devexit jbt_remove(struct spi_device *spi) - return 0; - } - -+/* Begin horrible layering violations (in the interest of making stuff work) */ -+ -+int jbt6k74_setresolution(enum jbt_resolution new_resolution) -+{ -+ if ( !jbt_global ) { -+ printk(KERN_CRIT "JBT not initialised!!!\n"); -+ return -1; -+ } -+ jbt6k74_set_resolution(jbt_global, new_resolution); -+ return 0; -+} -+EXPORT_SYMBOL_GPL(jbt6k74_setresolution); -+ -+/* This is utterly, totally horrible. I'm REALLY sorry... */ -+void jbt6k74_setpower(enum jbt_power_mode new_power) -+{ -+ if ( !jbt_global ) { -+ printk(KERN_CRIT "JBT not initialised!!!\n"); -+ return; -+ } -+ jbt6k74_enter_power_mode(jbt_global, new_power); -+} -+EXPORT_SYMBOL_GPL(jbt6k74_setpower); -+ -+/* End horrible layering violations */ -+ - #ifdef CONFIG_PM - static int jbt_suspend(struct spi_device *spi, pm_message_t state) - { -diff --git a/include/linux/jbt6k74.h b/include/linux/jbt6k74.h -index 4cf760c..f430e5a 100644 ---- a/include/linux/jbt6k74.h -+++ b/include/linux/jbt6k74.h -@@ -3,6 +3,20 @@ - - #include <linux/spi/spi.h> - -+enum jbt_resolution { -+ JBT_RESOLUTION_VGA, -+ JBT_RESOLUTION_QVGA, -+}; -+ -+enum jbt_power_mode { -+ JBT_POWER_MODE_OFF, -+ JBT_POWER_MODE_NORMAL, -+}; -+ -+extern void jbt6k74_setpower(enum jbt_power_mode new_power); -+extern int jbt6k74_setresolution(enum jbt_resolution new_resolution); -+ -+ - /* - * struct jbt6k74_platform_data - Platform data for jbt6k74 driver - * @probe_completed: Callback to be called when the driver has been --- -1.7.0.2 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0014-Fix-claim-of-2D-register-resource.patch b/recipes/linux/linux-openmoko-2.6.32/0014-Fix-claim-of-2D-register-resource.patch new file mode 100644 index 0000000000..8dbdb70ce2 --- /dev/null +++ b/recipes/linux/linux-openmoko-2.6.32/0014-Fix-claim-of-2D-register-resource.patch @@ -0,0 +1,27 @@ +From 8c753fc51c4954b88bacba68ee0591fb673de8fc Mon Sep 17 00:00:00 2001 +From: Thomas White <taw@bitwiz.org.uk> +Date: Thu, 6 May 2010 08:37:04 -0700 +Subject: [PATCH 14/14] Fix claim of 2D register resource + +Signed-off-by: Thomas White <taw@bitwiz.org.uk> +--- + drivers/mfd/glamo/glamo-drm-drv.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/drivers/mfd/glamo/glamo-drm-drv.c b/drivers/mfd/glamo/glamo-drm-drv.c +index ee648c1..4f982ad 100644 +--- a/drivers/mfd/glamo/glamo-drm-drv.c ++++ b/drivers/mfd/glamo/glamo-drm-drv.c +@@ -272,7 +272,8 @@ static int glamodrm_probe(struct platform_device *pdev) + } + + /* Find the 2D engine */ +- gdrm->twod_regs = platform_get_resource(pdev, IORESOURCE_MEM, 4); ++ gdrm->twod_regs = platform_get_resource_byname(pdev, IORESOURCE_MEM, ++ "glamo-2d-regs"); + if ( !gdrm->twod_regs ) { + dev_err(&pdev->dev, "Unable to find 2D registers.\n"); + rc = -ENOENT; +-- +1.7.1 + diff --git a/recipes/linux/linux-openmoko-2.6.32/0015-ar6000-send-userspace-an-event-on-disconnection.patch b/recipes/linux/linux-openmoko-2.6.32/0015-ar6000-send-userspace-an-event-on-disconnection.patch deleted file mode 100644 index fb0ede68e7..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0015-ar6000-send-userspace-an-event-on-disconnection.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 505ed5ebe6b5a296c83881e91fa7e8dd0ef021aa Mon Sep 17 00:00:00 2001 -From: Paul Fertser <fercerpav@gmail.com> -Date: Sun, 21 Feb 2010 12:52:58 +0300 -Subject: [PATCH 15/15] ar6000: send userspace an event on disconnection - -Without this userspace gets confused and might fail to obtain a DHCP -lease, bring the interface up etc etc. - -This place is definetely not the best or most intuitive to add this code -but when added to the real disconnect callback it messes wpa_supplicant -completely because hardware signals disconnection right after it was -asked to associate (and signals association the next moment). - -The particular problem this patch solves is lack of DISCONNECTED event -during suspend/resume; because of it "wpa_cli -a" doesn't relaunch its -script and the interface is not brought up automatically after resume. - -Signed-off-by: Paul Fertser <fercerpav@gmail.com> ---- - drivers/ar6000/ar6000/ar6000_drv.c | 6 ++++++ - 1 files changed, 6 insertions(+), 0 deletions(-) - -diff --git a/drivers/ar6000/ar6000/ar6000_drv.c b/drivers/ar6000/ar6000/ar6000_drv.c -index 90533ab..4e0ae72 100644 ---- a/drivers/ar6000/ar6000/ar6000_drv.c -+++ b/drivers/ar6000/ar6000/ar6000_drv.c -@@ -934,6 +934,12 @@ static void - ar6000_unavail_ev(void *Instance) - { - AR_SOFTC_T *ar = (AR_SOFTC_T *)Instance; -+ union iwreq_data wrqu; -+ -+ A_MEMZERO(&wrqu, sizeof(wrqu)); -+ wrqu.ap_addr.sa_family = ARPHRD_ETHER; -+ wireless_send_event(ar->arNetDev, SIOCGIWAP, &wrqu, NULL); -+ - /* NULL out it's entry in the global list */ - ar6000_devices[ar->arDeviceIndex] = NULL; - ar6000_destroy(ar->arNetDev, 1); --- -1.7.0.2 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0016-Enable-display-before-trying-to-set-mode-or-base.patch b/recipes/linux/linux-openmoko-2.6.32/0016-Enable-display-before-trying-to-set-mode-or-base.patch deleted file mode 100644 index 4e7a8abe10..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0016-Enable-display-before-trying-to-set-mode-or-base.patch +++ /dev/null @@ -1,103 +0,0 @@ -From 986df52e3e02a1cdbf43eafccd483f0f86c696bd Mon Sep 17 00:00:00 2001 -From: Thomas White <taw@bitwiz.org.uk> -Date: Sun, 21 Mar 2010 20:55:18 +0100 -Subject: [PATCH 16/16] Enable display before trying to set mode or base - -This makes it possible to change mode when the screen is switched off. - -Signed-off-by: Thomas White <taw@bitwiz.org.uk> ---- - drivers/mfd/glamo/glamo-display.c | 56 ++++++++++++++++++------------------ - 1 files changed, 28 insertions(+), 28 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-display.c b/drivers/mfd/glamo/glamo-display.c -index e56cdb4..24a1a31 100644 ---- a/drivers/mfd/glamo/glamo-display.c -+++ b/drivers/mfd/glamo/glamo-display.c -@@ -267,9 +267,9 @@ static int glamo_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, - gdrm = gcrtc->gdrm; /* Here it is! */ - - if ( !gcrtc->pixel_clock_on ) { -- printk(KERN_WARNING "[glamo-drm] Refusing to set base while " -- "pixel clock is off.\n"); -- return -EBUSY; -+ printk(KERN_WARNING "[glamo-drm] Display is off - " -+ "enabling it before setting base.\n"); -+ glamo_lcd_power(gdrm, 1); - } - - gfb = to_glamo_framebuffer(crtc->fb); -@@ -304,9 +304,9 @@ static int glamo_crtc_mode_set(struct drm_crtc *crtc, - gdrm = gcrtc->gdrm; /* Here it is! */ - - if ( !gcrtc->pixel_clock_on ) { -- printk(KERN_WARNING "[glamo-drm] Refusing to set mode while " -- "pixel clock is off.\n"); -- return -EBUSY; -+ printk(KERN_WARNING "[glamo-drm] Display is off - " -+ "enabling it before setting mode.\n"); -+ glamo_lcd_power(gdrm, 1); - } - - glamo_lcd_cmd_mode(gdrm, 1); -@@ -380,28 +380,6 @@ static void glamo_crtc_dpms(struct drm_crtc *crtc, int mode) - } - - --void glamo_lcd_power(struct glamodrm_handle *gdrm, int mode) --{ -- struct drm_crtc *crtc = gdrm->crtc; -- struct glamo_crtc *gcrtc = to_glamo_crtc(crtc); -- -- if ( mode ) { -- glamo_engine_enable(gdrm->glamo_core, GLAMO_ENGINE_LCD); -- gcrtc->pixel_clock_on = 1; -- jbt6k74_setpower(JBT_POWER_MODE_NORMAL); -- if ( gcrtc->current_mode_set ) { -- glamo_crtc_mode_set(crtc, &gcrtc->current_mode, -- &gcrtc->current_mode, 0, 0, -- gcrtc->current_fb); -- } -- } else { -- jbt6k74_setpower(JBT_POWER_MODE_OFF); -- glamo_engine_suspend(gdrm->glamo_core, GLAMO_ENGINE_LCD); -- gcrtc->pixel_clock_on = 0; -- } --} -- -- - static void glamo_crtc_prepare(struct drm_crtc *crtc) - { - } -@@ -862,6 +840,28 @@ int glamo_display_init(struct drm_device *dev) - } - - -+void glamo_lcd_power(struct glamodrm_handle *gdrm, int mode) -+{ -+ struct drm_crtc *crtc = gdrm->crtc; -+ struct glamo_crtc *gcrtc = to_glamo_crtc(crtc); -+ -+ if ( mode ) { -+ glamo_engine_enable(gdrm->glamo_core, GLAMO_ENGINE_LCD); -+ gcrtc->pixel_clock_on = 1; -+ jbt6k74_setpower(JBT_POWER_MODE_NORMAL); -+ if ( gcrtc->current_mode_set ) { -+ glamo_crtc_mode_set(crtc, &gcrtc->current_mode, -+ &gcrtc->current_mode, 0, 0, -+ gcrtc->current_fb); -+ } -+ } else { -+ jbt6k74_setpower(JBT_POWER_MODE_OFF); -+ glamo_engine_suspend(gdrm->glamo_core, GLAMO_ENGINE_LCD); -+ gcrtc->pixel_clock_on = 0; -+ } -+} -+ -+ - void glamo_display_suspend(struct glamodrm_handle *gdrm) - { - /* do nothing */ --- -1.7.0.2 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0021-gta02_defconfig.patch b/recipes/linux/linux-openmoko-2.6.32/0021-gta02_defconfig.patch deleted file mode 100644 index 5c78c31e90..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0021-gta02_defconfig.patch +++ /dev/null @@ -1,2143 +0,0 @@ -From a081bd86a59ed4520551f490534ceece886d087e Mon Sep 17 00:00:00 2001 -From: Radek Polak <psonek2@seznam.cz> -Date: Fri, 9 Apr 2010 09:24:43 +0200 -Subject: [PATCH 21/22] gta02_defconfig - -config used for qtmoko-v20. It has all freerunner hardware built in - so that -you can boot and your phone hardware is working even without /lib/modules. I -have (hopefully) all drivers from 2.6.29 as modules (usb keyboards etc). ---- - arch/arm/configs/gta02_defconfig | 2121 ++++++++++++++++++++++++++++++++++++++ - 1 files changed, 2121 insertions(+), 0 deletions(-) - create mode 100644 arch/arm/configs/gta02_defconfig - -diff --git a/arch/arm/configs/gta02_defconfig b/arch/arm/configs/gta02_defconfig -new file mode 100644 -index 0000000..73d26ba ---- /dev/null -+++ b/arch/arm/configs/gta02_defconfig -@@ -0,0 +1,2121 @@ -+# -+# Automatically generated make config: don't edit -+# Linux kernel version: 2.6.32 -+# Wed Apr 7 23:27:29 2010 -+# -+CONFIG_ARM=y -+CONFIG_HAVE_PWM=y -+CONFIG_SYS_SUPPORTS_APM_EMULATION=y -+CONFIG_GENERIC_GPIO=y -+CONFIG_NO_IOPORT=y -+CONFIG_GENERIC_HARDIRQS=y -+CONFIG_STACKTRACE_SUPPORT=y -+CONFIG_HAVE_LATENCYTOP_SUPPORT=y -+CONFIG_LOCKDEP_SUPPORT=y -+CONFIG_TRACE_IRQFLAGS_SUPPORT=y -+CONFIG_HARDIRQS_SW_RESEND=y -+CONFIG_GENERIC_IRQ_PROBE=y -+CONFIG_RWSEM_GENERIC_SPINLOCK=y -+CONFIG_ARCH_HAS_CPUFREQ=y -+CONFIG_GENERIC_HWEIGHT=y -+CONFIG_GENERIC_CALIBRATE_DELAY=y -+CONFIG_FIQ=y -+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -+CONFIG_VECTORS_BASE=0xffff0000 -+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -+CONFIG_CONSTRUCTORS=y -+ -+# -+# General setup -+# -+CONFIG_EXPERIMENTAL=y -+CONFIG_BROKEN_ON_SMP=y -+CONFIG_INIT_ENV_ARG_LIMIT=32 -+CONFIG_LOCALVERSION="v20" -+# CONFIG_LOCALVERSION_AUTO is not set -+CONFIG_SWAP=y -+CONFIG_SYSVIPC=y -+CONFIG_SYSVIPC_SYSCTL=y -+# CONFIG_POSIX_MQUEUE is not set -+# CONFIG_BSD_PROCESS_ACCT is not set -+# CONFIG_TASKSTATS is not set -+# CONFIG_AUDIT is not set -+ -+# -+# RCU Subsystem -+# -+CONFIG_TREE_RCU=y -+# CONFIG_TREE_PREEMPT_RCU is not set -+# CONFIG_RCU_TRACE is not set -+CONFIG_RCU_FANOUT=32 -+# CONFIG_RCU_FANOUT_EXACT is not set -+# CONFIG_TREE_RCU_TRACE is not set -+# CONFIG_IKCONFIG is not set -+CONFIG_LOG_BUF_SHIFT=18 -+# CONFIG_GROUP_SCHED is not set -+# CONFIG_CGROUPS is not set -+# CONFIG_SYSFS_DEPRECATED_V2 is not set -+# CONFIG_RELAY is not set -+CONFIG_NAMESPACES=y -+# CONFIG_UTS_NS is not set -+# CONFIG_IPC_NS is not set -+# CONFIG_USER_NS is not set -+# CONFIG_PID_NS is not set -+# CONFIG_NET_NS is not set -+CONFIG_BLK_DEV_INITRD=y -+CONFIG_INITRAMFS_SOURCE="" -+CONFIG_RD_GZIP=y -+CONFIG_RD_BZIP2=y -+CONFIG_RD_LZMA=y -+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -+CONFIG_SYSCTL=y -+CONFIG_ANON_INODES=y -+# CONFIG_EMBEDDED is not set -+CONFIG_UID16=y -+CONFIG_SYSCTL_SYSCALL=y -+CONFIG_KALLSYMS=y -+# CONFIG_KALLSYMS_EXTRA_PASS is not set -+CONFIG_HOTPLUG=y -+CONFIG_PRINTK=y -+CONFIG_BUG=y -+CONFIG_ELF_CORE=y -+CONFIG_BASE_FULL=y -+CONFIG_FUTEX=y -+CONFIG_EPOLL=y -+CONFIG_SIGNALFD=y -+CONFIG_TIMERFD=y -+CONFIG_EVENTFD=y -+CONFIG_SHMEM=y -+CONFIG_AIO=y -+ -+# -+# Kernel Performance Events And Counters -+# -+CONFIG_VM_EVENT_COUNTERS=y -+CONFIG_COMPAT_BRK=y -+CONFIG_SLAB=y -+# CONFIG_SLUB is not set -+# CONFIG_SLOB is not set -+# CONFIG_PROFILING is not set -+CONFIG_HAVE_OPROFILE=y -+# CONFIG_KPROBES is not set -+CONFIG_HAVE_KPROBES=y -+CONFIG_HAVE_KRETPROBES=y -+CONFIG_HAVE_CLK=y -+ -+# -+# GCOV-based kernel profiling -+# -+CONFIG_SLOW_WORK=y -+CONFIG_HAVE_GENERIC_DMA_COHERENT=y -+CONFIG_SLABINFO=y -+CONFIG_RT_MUTEXES=y -+CONFIG_BASE_SMALL=0 -+CONFIG_MODULES=y -+# CONFIG_MODULE_FORCE_LOAD is not set -+CONFIG_MODULE_UNLOAD=y -+CONFIG_MODULE_FORCE_UNLOAD=y -+# CONFIG_MODVERSIONS is not set -+# CONFIG_MODULE_SRCVERSION_ALL is not set -+CONFIG_BLOCK=y -+# CONFIG_LBDAF is not set -+# CONFIG_BLK_DEV_BSG is not set -+# CONFIG_BLK_DEV_INTEGRITY is not set -+ -+# -+# IO Schedulers -+# -+CONFIG_IOSCHED_NOOP=y -+CONFIG_IOSCHED_AS=m -+CONFIG_IOSCHED_DEADLINE=y -+CONFIG_IOSCHED_CFQ=m -+# CONFIG_DEFAULT_AS is not set -+CONFIG_DEFAULT_DEADLINE=y -+# CONFIG_DEFAULT_CFQ is not set -+# CONFIG_DEFAULT_NOOP is not set -+CONFIG_DEFAULT_IOSCHED="deadline" -+CONFIG_FREEZER=y -+ -+# -+# System Type -+# -+CONFIG_MMU=y -+# CONFIG_ARCH_AAEC2000 is not set -+# CONFIG_ARCH_INTEGRATOR is not set -+# CONFIG_ARCH_REALVIEW is not set -+# CONFIG_ARCH_VERSATILE is not set -+# CONFIG_ARCH_AT91 is not set -+# CONFIG_ARCH_CLPS711X is not set -+# CONFIG_ARCH_GEMINI is not set -+# CONFIG_ARCH_EBSA110 is not set -+# CONFIG_ARCH_EP93XX is not set -+# CONFIG_ARCH_FOOTBRIDGE is not set -+# CONFIG_ARCH_MXC is not set -+# CONFIG_ARCH_STMP3XXX is not set -+# CONFIG_ARCH_NETX is not set -+# CONFIG_ARCH_H720X is not set -+# CONFIG_ARCH_NOMADIK is not set -+# CONFIG_ARCH_IOP13XX is not set -+# CONFIG_ARCH_IOP32X is not set -+# CONFIG_ARCH_IOP33X is not set -+# CONFIG_ARCH_IXP23XX is not set -+# CONFIG_ARCH_IXP2000 is not set -+# CONFIG_ARCH_IXP4XX is not set -+# CONFIG_ARCH_L7200 is not set -+# CONFIG_ARCH_KIRKWOOD is not set -+# CONFIG_ARCH_LOKI is not set -+# CONFIG_ARCH_MV78XX0 is not set -+# CONFIG_ARCH_ORION5X is not set -+# CONFIG_ARCH_MMP is not set -+# CONFIG_ARCH_KS8695 is not set -+# CONFIG_ARCH_NS9XXX is not set -+# CONFIG_ARCH_W90X900 is not set -+# CONFIG_ARCH_PNX4008 is not set -+# CONFIG_ARCH_PXA is not set -+# CONFIG_ARCH_MSM is not set -+# CONFIG_ARCH_RPC is not set -+# CONFIG_ARCH_SA1100 is not set -+CONFIG_ARCH_S3C2410=y -+# CONFIG_ARCH_S3C64XX is not set -+# CONFIG_ARCH_S5PC1XX is not set -+# CONFIG_ARCH_SHARK is not set -+# CONFIG_ARCH_LH7A40X is not set -+# CONFIG_ARCH_U300 is not set -+# CONFIG_ARCH_DAVINCI is not set -+# CONFIG_ARCH_OMAP is not set -+# CONFIG_ARCH_BCMRING is not set -+CONFIG_PLAT_S3C24XX=y -+CONFIG_S3C2410_CLOCK=y -+CONFIG_CPU_S3C244X=y -+CONFIG_S3C24XX_PWM=y -+CONFIG_S3C24XX_GPIO_EXTRA=64 -+CONFIG_S3C24XX_GPIO_EXTRA64=y -+CONFIG_S3C2410_DMA=y -+# CONFIG_S3C2410_DMA_DEBUG is not set -+CONFIG_S3C24XX_ADC=y -+CONFIG_PLAT_S3C=y -+CONFIG_CPU_LLSERIAL_S3C2440_ONLY=y -+CONFIG_CPU_LLSERIAL_S3C2440=y -+ -+# -+# Boot options -+# -+# CONFIG_S3C_BOOT_WATCHDOG is not set -+# CONFIG_S3C_BOOT_ERROR_RESET is not set -+CONFIG_S3C_BOOT_UART_FORCE_FIFO=y -+ -+# -+# Power management -+# -+# CONFIG_S3C2410_PM_DEBUG is not set -+# CONFIG_S3C2410_PM_CHECK is not set -+CONFIG_S3C_LOWLEVEL_UART_PORT=2 -+CONFIG_S3C_GPIO_SPACE=0 -+CONFIG_S3C_DMA=y -+CONFIG_S3C_DEV_USB_HOST=y -+CONFIG_S3C_DEV_NAND=y -+ -+# -+# S3C2400 Machines -+# -+CONFIG_CPU_S3C2410_DMA=y -+CONFIG_S3C2410_PM=y -+CONFIG_S3C2410_GPIO=y -+ -+# -+# S3C2410 Machines -+# -+# CONFIG_ARCH_SMDK2410 is not set -+# CONFIG_ARCH_H1940 is not set -+# CONFIG_MACH_N30 is not set -+# CONFIG_ARCH_BAST is not set -+# CONFIG_MACH_OTOM is not set -+# CONFIG_MACH_AML_M5900 is not set -+# CONFIG_MACH_TCT_HAMMER is not set -+# CONFIG_MACH_VR1000 is not set -+# CONFIG_MACH_QT2410 is not set -+ -+# -+# S3C2412 Machines -+# -+# CONFIG_MACH_JIVE is not set -+# CONFIG_MACH_SMDK2413 is not set -+# CONFIG_MACH_SMDK2412 is not set -+# CONFIG_MACH_VSTMS is not set -+ -+# -+# S3C2440 Machines -+# -+# CONFIG_MACH_ANUBIS is not set -+# CONFIG_MACH_OSIRIS is not set -+# CONFIG_MACH_RX3715 is not set -+# CONFIG_ARCH_S3C2440 is not set -+# CONFIG_MACH_NEXCODER_2440 is not set -+# CONFIG_MACH_AT2440EVB is not set -+# CONFIG_MACH_MINI2440 is not set -+CONFIG_CPU_S3C2442=y -+ -+# -+# S3C2442 Machines -+# -+CONFIG_MACH_NEO1973_GTA02=y -+ -+# -+# S3C2443 Machines -+# -+# CONFIG_MACH_SMDK2443 is not set -+ -+# -+# Processor Type -+# -+CONFIG_CPU_32=y -+CONFIG_CPU_ARM920T=y -+CONFIG_CPU_32v4T=y -+CONFIG_CPU_ABRT_EV4T=y -+CONFIG_CPU_PABRT_LEGACY=y -+CONFIG_CPU_CACHE_V4WT=y -+CONFIG_CPU_CACHE_VIVT=y -+CONFIG_CPU_COPY_V4WB=y -+CONFIG_CPU_TLB_V4WBI=y -+CONFIG_CPU_CP15=y -+CONFIG_CPU_CP15_MMU=y -+ -+# -+# Processor Features -+# -+CONFIG_ARM_THUMB=y -+# CONFIG_CPU_ICACHE_DISABLE is not set -+# CONFIG_CPU_DCACHE_DISABLE is not set -+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set -+CONFIG_ARM_L1_CACHE_SHIFT=5 -+ -+# -+# Bus support -+# -+# CONFIG_PCI_SYSCALL is not set -+# CONFIG_ARCH_SUPPORTS_MSI is not set -+# CONFIG_PCCARD is not set -+ -+# -+# Kernel Features -+# -+CONFIG_VMSPLIT_3G=y -+# CONFIG_VMSPLIT_2G is not set -+# CONFIG_VMSPLIT_1G is not set -+CONFIG_PAGE_OFFSET=0xC0000000 -+CONFIG_PREEMPT_NONE=y -+# CONFIG_PREEMPT_VOLUNTARY is not set -+# CONFIG_PREEMPT is not set -+CONFIG_HZ=200 -+CONFIG_AEABI=y -+# CONFIG_OABI_COMPAT is not set -+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set -+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set -+# CONFIG_HIGHMEM is not set -+CONFIG_SELECT_MEMORY_MODEL=y -+CONFIG_FLATMEM_MANUAL=y -+# CONFIG_DISCONTIGMEM_MANUAL is not set -+# CONFIG_SPARSEMEM_MANUAL is not set -+CONFIG_FLATMEM=y -+CONFIG_FLAT_NODE_MEM_MAP=y -+CONFIG_PAGEFLAGS_EXTENDED=y -+CONFIG_SPLIT_PTLOCK_CPUS=4096 -+# CONFIG_PHYS_ADDR_T_64BIT is not set -+CONFIG_ZONE_DMA_FLAG=0 -+CONFIG_VIRT_TO_BUS=y -+CONFIG_HAVE_MLOCK=y -+CONFIG_HAVE_MLOCKED_PAGE_BIT=y -+# CONFIG_KSM is not set -+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -+CONFIG_ALIGNMENT_TRAP=y -+# CONFIG_UACCESS_WITH_MEMCPY is not set -+ -+# -+# Boot options -+# -+CONFIG_ZBOOT_ROM_TEXT=0x0 -+CONFIG_ZBOOT_ROM_BSS=0x0 -+CONFIG_CMDLINE="unused -- bootloader passes ATAG list" -+# CONFIG_XIP_KERNEL is not set -+# CONFIG_KEXEC is not set -+ -+# -+# CPU Power Management -+# -+# CONFIG_CPU_FREQ is not set -+CONFIG_CPU_IDLE=y -+CONFIG_CPU_IDLE_GOV_LADDER=y -+ -+# -+# Floating point emulation -+# -+ -+# -+# At least one emulation must be selected -+# -+ -+# -+# Userspace binary formats -+# -+CONFIG_BINFMT_ELF=y -+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -+CONFIG_HAVE_AOUT=y -+# CONFIG_BINFMT_AOUT is not set -+# CONFIG_BINFMT_MISC is not set -+ -+# -+# Power management options -+# -+CONFIG_PM=y -+# CONFIG_PM_DEBUG is not set -+CONFIG_PM_SLEEP=y -+CONFIG_SUSPEND=y -+CONFIG_SUSPEND_FREEZER=y -+# CONFIG_APM_EMULATION is not set -+# CONFIG_PM_RUNTIME is not set -+CONFIG_ARCH_SUSPEND_POSSIBLE=y -+CONFIG_NET=y -+ -+# -+# Networking options -+# -+CONFIG_PACKET=y -+CONFIG_PACKET_MMAP=y -+CONFIG_UNIX=y -+CONFIG_XFRM=y -+CONFIG_XFRM_USER=m -+# CONFIG_XFRM_SUB_POLICY is not set -+CONFIG_XFRM_MIGRATE=y -+# CONFIG_XFRM_STATISTICS is not set -+CONFIG_XFRM_IPCOMP=m -+CONFIG_NET_KEY=m -+CONFIG_NET_KEY_MIGRATE=y -+CONFIG_INET=y -+CONFIG_IP_MULTICAST=y -+CONFIG_IP_ADVANCED_ROUTER=y -+CONFIG_ASK_IP_FIB_HASH=y -+# CONFIG_IP_FIB_TRIE is not set -+CONFIG_IP_FIB_HASH=y -+CONFIG_IP_MULTIPLE_TABLES=y -+# CONFIG_IP_ROUTE_MULTIPATH is not set -+# CONFIG_IP_ROUTE_VERBOSE is not set -+CONFIG_IP_PNP=y -+# CONFIG_IP_PNP_DHCP is not set -+# CONFIG_IP_PNP_BOOTP is not set -+# CONFIG_IP_PNP_RARP is not set -+CONFIG_NET_IPIP=m -+CONFIG_NET_IPGRE=m -+# CONFIG_NET_IPGRE_BROADCAST is not set -+CONFIG_IP_MROUTE=y -+# CONFIG_IP_PIMSM_V1 is not set -+# CONFIG_IP_PIMSM_V2 is not set -+# CONFIG_ARPD is not set -+CONFIG_SYN_COOKIES=y -+CONFIG_INET_AH=m -+CONFIG_INET_ESP=m -+CONFIG_INET_IPCOMP=m -+CONFIG_INET_XFRM_TUNNEL=m -+CONFIG_INET_TUNNEL=m -+CONFIG_INET_XFRM_MODE_TRANSPORT=m -+CONFIG_INET_XFRM_MODE_TUNNEL=m -+CONFIG_INET_XFRM_MODE_BEET=m -+# CONFIG_INET_LRO is not set -+CONFIG_INET_DIAG=y -+CONFIG_INET_TCP_DIAG=y -+CONFIG_TCP_CONG_ADVANCED=y -+# CONFIG_TCP_CONG_BIC is not set -+# CONFIG_TCP_CONG_CUBIC is not set -+CONFIG_TCP_CONG_WESTWOOD=y -+# CONFIG_TCP_CONG_HTCP is not set -+# CONFIG_TCP_CONG_HSTCP is not set -+# CONFIG_TCP_CONG_HYBLA is not set -+# CONFIG_TCP_CONG_VEGAS is not set -+# CONFIG_TCP_CONG_SCALABLE is not set -+# CONFIG_TCP_CONG_LP is not set -+# CONFIG_TCP_CONG_VENO is not set -+# CONFIG_TCP_CONG_YEAH is not set -+# CONFIG_TCP_CONG_ILLINOIS is not set -+# CONFIG_DEFAULT_BIC is not set -+# CONFIG_DEFAULT_CUBIC is not set -+# CONFIG_DEFAULT_HTCP is not set -+# CONFIG_DEFAULT_VEGAS is not set -+CONFIG_DEFAULT_WESTWOOD=y -+# CONFIG_DEFAULT_RENO is not set -+CONFIG_DEFAULT_TCP_CONG="westwood" -+CONFIG_TCP_MD5SIG=y -+CONFIG_IPV6=m -+# CONFIG_IPV6_PRIVACY is not set -+# CONFIG_IPV6_ROUTER_PREF is not set -+# CONFIG_IPV6_OPTIMISTIC_DAD is not set -+CONFIG_INET6_AH=m -+CONFIG_INET6_ESP=m -+CONFIG_INET6_IPCOMP=m -+# CONFIG_IPV6_MIP6 is not set -+CONFIG_INET6_XFRM_TUNNEL=m -+CONFIG_INET6_TUNNEL=m -+CONFIG_INET6_XFRM_MODE_TRANSPORT=m -+CONFIG_INET6_XFRM_MODE_TUNNEL=m -+CONFIG_INET6_XFRM_MODE_BEET=m -+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set -+CONFIG_IPV6_SIT=m -+CONFIG_IPV6_NDISC_NODETYPE=y -+CONFIG_IPV6_TUNNEL=m -+# CONFIG_IPV6_MULTIPLE_TABLES is not set -+# CONFIG_IPV6_MROUTE is not set -+# CONFIG_NETWORK_SECMARK is not set -+CONFIG_NETFILTER=y -+# CONFIG_NETFILTER_DEBUG is not set -+CONFIG_NETFILTER_ADVANCED=y -+CONFIG_BRIDGE_NETFILTER=y -+ -+# -+# Core Netfilter Configuration -+# -+CONFIG_NETFILTER_NETLINK=m -+CONFIG_NETFILTER_NETLINK_QUEUE=m -+CONFIG_NETFILTER_NETLINK_LOG=m -+CONFIG_NF_CONNTRACK=m -+CONFIG_NF_CT_ACCT=y -+CONFIG_NF_CONNTRACK_MARK=y -+# CONFIG_NF_CONNTRACK_EVENTS is not set -+# CONFIG_NF_CT_PROTO_DCCP is not set -+CONFIG_NF_CT_PROTO_GRE=m -+CONFIG_NF_CT_PROTO_SCTP=m -+# CONFIG_NF_CT_PROTO_UDPLITE is not set -+# CONFIG_NF_CONNTRACK_AMANDA is not set -+CONFIG_NF_CONNTRACK_FTP=m -+CONFIG_NF_CONNTRACK_H323=m -+CONFIG_NF_CONNTRACK_IRC=m -+CONFIG_NF_CONNTRACK_NETBIOS_NS=m -+CONFIG_NF_CONNTRACK_PPTP=m -+CONFIG_NF_CONNTRACK_SANE=m -+CONFIG_NF_CONNTRACK_SIP=m -+CONFIG_NF_CONNTRACK_TFTP=m -+CONFIG_NF_CT_NETLINK=m -+# CONFIG_NETFILTER_TPROXY is not set -+CONFIG_NETFILTER_XTABLES=m -+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -+CONFIG_NETFILTER_XT_TARGET_DSCP=m -+CONFIG_NETFILTER_XT_TARGET_HL=m -+# CONFIG_NETFILTER_XT_TARGET_LED is not set -+CONFIG_NETFILTER_XT_TARGET_MARK=m -+CONFIG_NETFILTER_XT_TARGET_NFLOG=m -+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -+# CONFIG_NETFILTER_XT_TARGET_TRACE is not set -+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set -+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set -+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set -+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set -+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -+CONFIG_NETFILTER_XT_MATCH_DCCP=m -+CONFIG_NETFILTER_XT_MATCH_DSCP=m -+CONFIG_NETFILTER_XT_MATCH_ESP=m -+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m -+CONFIG_NETFILTER_XT_MATCH_HELPER=m -+CONFIG_NETFILTER_XT_MATCH_HL=m -+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -+CONFIG_NETFILTER_XT_MATCH_LENGTH=m -+CONFIG_NETFILTER_XT_MATCH_LIMIT=m -+CONFIG_NETFILTER_XT_MATCH_MAC=m -+CONFIG_NETFILTER_XT_MATCH_MARK=m -+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set -+CONFIG_NETFILTER_XT_MATCH_POLICY=m -+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m -+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -+CONFIG_NETFILTER_XT_MATCH_QUOTA=m -+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set -+CONFIG_NETFILTER_XT_MATCH_REALM=m -+CONFIG_NETFILTER_XT_MATCH_RECENT=m -+# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set -+CONFIG_NETFILTER_XT_MATCH_SCTP=m -+CONFIG_NETFILTER_XT_MATCH_STATE=m -+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -+CONFIG_NETFILTER_XT_MATCH_STRING=m -+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -+CONFIG_NETFILTER_XT_MATCH_TIME=m -+# CONFIG_NETFILTER_XT_MATCH_U32 is not set -+# CONFIG_NETFILTER_XT_MATCH_OSF is not set -+# CONFIG_IP_VS is not set -+ -+# -+# IP: Netfilter Configuration -+# -+CONFIG_NF_DEFRAG_IPV4=m -+CONFIG_NF_CONNTRACK_IPV4=m -+CONFIG_NF_CONNTRACK_PROC_COMPAT=y -+# CONFIG_IP_NF_QUEUE is not set -+CONFIG_IP_NF_IPTABLES=m -+CONFIG_IP_NF_MATCH_ADDRTYPE=m -+CONFIG_IP_NF_MATCH_AH=m -+CONFIG_IP_NF_MATCH_ECN=m -+CONFIG_IP_NF_MATCH_TTL=m -+CONFIG_IP_NF_FILTER=m -+CONFIG_IP_NF_TARGET_REJECT=m -+CONFIG_IP_NF_TARGET_LOG=m -+CONFIG_IP_NF_TARGET_ULOG=m -+CONFIG_NF_NAT=m -+CONFIG_NF_NAT_NEEDED=y -+CONFIG_IP_NF_TARGET_MASQUERADE=m -+CONFIG_IP_NF_TARGET_NETMAP=m -+CONFIG_IP_NF_TARGET_REDIRECT=m -+CONFIG_NF_NAT_SNMP_BASIC=m -+CONFIG_NF_NAT_PROTO_GRE=m -+CONFIG_NF_NAT_PROTO_SCTP=m -+CONFIG_NF_NAT_FTP=m -+CONFIG_NF_NAT_IRC=m -+CONFIG_NF_NAT_TFTP=m -+# CONFIG_NF_NAT_AMANDA is not set -+CONFIG_NF_NAT_PPTP=m -+CONFIG_NF_NAT_H323=m -+CONFIG_NF_NAT_SIP=m -+CONFIG_IP_NF_MANGLE=m -+CONFIG_IP_NF_TARGET_CLUSTERIP=m -+CONFIG_IP_NF_TARGET_ECN=m -+CONFIG_IP_NF_TARGET_TTL=m -+CONFIG_IP_NF_RAW=m -+# CONFIG_IP_NF_ARPTABLES is not set -+ -+# -+# IPv6: Netfilter Configuration -+# -+CONFIG_NF_CONNTRACK_IPV6=m -+# CONFIG_IP6_NF_QUEUE is not set -+CONFIG_IP6_NF_IPTABLES=m -+CONFIG_IP6_NF_MATCH_AH=m -+CONFIG_IP6_NF_MATCH_EUI64=m -+CONFIG_IP6_NF_MATCH_FRAG=m -+CONFIG_IP6_NF_MATCH_OPTS=m -+CONFIG_IP6_NF_MATCH_HL=m -+CONFIG_IP6_NF_MATCH_IPV6HEADER=m -+CONFIG_IP6_NF_MATCH_MH=m -+CONFIG_IP6_NF_MATCH_RT=m -+CONFIG_IP6_NF_TARGET_HL=m -+CONFIG_IP6_NF_TARGET_LOG=m -+CONFIG_IP6_NF_FILTER=m -+CONFIG_IP6_NF_TARGET_REJECT=m -+CONFIG_IP6_NF_MANGLE=m -+# CONFIG_IP6_NF_RAW is not set -+CONFIG_BRIDGE_NF_EBTABLES=m -+CONFIG_BRIDGE_EBT_BROUTE=m -+CONFIG_BRIDGE_EBT_T_FILTER=m -+CONFIG_BRIDGE_EBT_T_NAT=m -+CONFIG_BRIDGE_EBT_802_3=m -+CONFIG_BRIDGE_EBT_AMONG=m -+CONFIG_BRIDGE_EBT_ARP=m -+CONFIG_BRIDGE_EBT_IP=m -+# CONFIG_BRIDGE_EBT_IP6 is not set -+CONFIG_BRIDGE_EBT_LIMIT=m -+CONFIG_BRIDGE_EBT_MARK=m -+CONFIG_BRIDGE_EBT_PKTTYPE=m -+CONFIG_BRIDGE_EBT_STP=m -+CONFIG_BRIDGE_EBT_VLAN=m -+CONFIG_BRIDGE_EBT_ARPREPLY=m -+CONFIG_BRIDGE_EBT_DNAT=m -+CONFIG_BRIDGE_EBT_MARK_T=m -+CONFIG_BRIDGE_EBT_REDIRECT=m -+CONFIG_BRIDGE_EBT_SNAT=m -+CONFIG_BRIDGE_EBT_LOG=m -+CONFIG_BRIDGE_EBT_ULOG=m -+# CONFIG_BRIDGE_EBT_NFLOG is not set -+# CONFIG_IP_DCCP is not set -+# CONFIG_IP_SCTP is not set -+# CONFIG_RDS is not set -+# CONFIG_TIPC is not set -+# CONFIG_ATM is not set -+CONFIG_STP=y -+CONFIG_BRIDGE=y -+# CONFIG_NET_DSA is not set -+# CONFIG_VLAN_8021Q is not set -+# CONFIG_DECNET is not set -+CONFIG_LLC=y -+# CONFIG_LLC2 is not set -+# CONFIG_IPX is not set -+# CONFIG_ATALK is not set -+# CONFIG_X25 is not set -+# CONFIG_LAPB is not set -+# CONFIG_ECONET is not set -+# CONFIG_WAN_ROUTER is not set -+# CONFIG_PHONET is not set -+# CONFIG_IEEE802154 is not set -+CONFIG_NET_SCHED=y -+ -+# -+# Queueing/Scheduling -+# -+CONFIG_NET_SCH_CBQ=m -+CONFIG_NET_SCH_HTB=m -+CONFIG_NET_SCH_HFSC=m -+CONFIG_NET_SCH_PRIO=m -+# CONFIG_NET_SCH_MULTIQ is not set -+CONFIG_NET_SCH_RED=m -+CONFIG_NET_SCH_SFQ=m -+CONFIG_NET_SCH_TEQL=m -+CONFIG_NET_SCH_TBF=m -+CONFIG_NET_SCH_GRED=m -+CONFIG_NET_SCH_DSMARK=m -+CONFIG_NET_SCH_NETEM=m -+# CONFIG_NET_SCH_DRR is not set -+ -+# -+# Classification -+# -+CONFIG_NET_CLS=y -+CONFIG_NET_CLS_BASIC=m -+CONFIG_NET_CLS_TCINDEX=m -+CONFIG_NET_CLS_ROUTE4=m -+CONFIG_NET_CLS_ROUTE=y -+CONFIG_NET_CLS_FW=m -+CONFIG_NET_CLS_U32=m -+CONFIG_CLS_U32_PERF=y -+CONFIG_CLS_U32_MARK=y -+CONFIG_NET_CLS_RSVP=m -+CONFIG_NET_CLS_RSVP6=m -+# CONFIG_NET_CLS_FLOW is not set -+# CONFIG_NET_EMATCH is not set -+# CONFIG_NET_CLS_ACT is not set -+# CONFIG_NET_CLS_IND is not set -+CONFIG_NET_SCH_FIFO=y -+# CONFIG_DCB is not set -+ -+# -+# Network testing -+# -+# CONFIG_NET_PKTGEN is not set -+# CONFIG_HAMRADIO is not set -+# CONFIG_CAN is not set -+# CONFIG_IRDA is not set -+CONFIG_BT=y -+CONFIG_BT_L2CAP=y -+CONFIG_BT_SCO=y -+CONFIG_BT_RFCOMM=y -+CONFIG_BT_RFCOMM_TTY=y -+CONFIG_BT_BNEP=y -+CONFIG_BT_BNEP_MC_FILTER=y -+CONFIG_BT_BNEP_PROTO_FILTER=y -+CONFIG_BT_HIDP=y -+ -+# -+# Bluetooth device drivers -+# -+CONFIG_BT_HCIBTUSB=y -+# CONFIG_BT_HCIBTSDIO is not set -+# CONFIG_BT_HCIUART is not set -+# CONFIG_BT_HCIBCM203X is not set -+# CONFIG_BT_HCIBPA10X is not set -+# CONFIG_BT_HCIBFUSB is not set -+# CONFIG_BT_HCIVHCI is not set -+# CONFIG_BT_MRVL is not set -+# CONFIG_AF_RXRPC is not set -+CONFIG_FIB_RULES=y -+CONFIG_WIRELESS=y -+# CONFIG_CFG80211 is not set -+CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -+CONFIG_WIRELESS_OLD_REGULATORY=y -+CONFIG_WIRELESS_EXT=y -+CONFIG_WIRELESS_EXT_SYSFS=y -+# CONFIG_LIB80211 is not set -+ -+# -+# CFG80211 needs to be enabled for MAC80211 -+# -+# CONFIG_WIMAX is not set -+# CONFIG_RFKILL is not set -+# CONFIG_NET_9P is not set -+ -+# -+# Device Drivers -+# -+ -+# -+# Generic Driver Options -+# -+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -+CONFIG_DEVTMPFS=y -+CONFIG_DEVTMPFS_MOUNT=y -+CONFIG_STANDALONE=y -+CONFIG_PREVENT_FIRMWARE_BUILD=y -+CONFIG_FW_LOADER=y -+# CONFIG_FIRMWARE_IN_KERNEL is not set -+CONFIG_EXTRA_FIRMWARE="" -+# CONFIG_SYS_HYPERVISOR is not set -+CONFIG_CONNECTOR=m -+CONFIG_MTD=y -+# CONFIG_MTD_DEBUG is not set -+# CONFIG_MTD_TESTS is not set -+CONFIG_MTD_CONCAT=y -+CONFIG_MTD_PARTITIONS=y -+# CONFIG_MTD_REDBOOT_PARTS is not set -+CONFIG_MTD_CMDLINE_PARTS=y -+# CONFIG_MTD_AFS_PARTS is not set -+# CONFIG_MTD_AR7_PARTS is not set -+ -+# -+# User Modules And Translation Layers -+# -+CONFIG_MTD_CHAR=y -+CONFIG_MTD_BLKDEVS=y -+CONFIG_MTD_BLOCK=y -+# CONFIG_FTL is not set -+# CONFIG_NFTL is not set -+# CONFIG_INFTL is not set -+# CONFIG_RFD_FTL is not set -+# CONFIG_SSFDC is not set -+# CONFIG_MTD_OOPS is not set -+ -+# -+# RAM/ROM/Flash chip drivers -+# -+CONFIG_MTD_CFI=y -+# CONFIG_MTD_JEDECPROBE is not set -+CONFIG_MTD_GEN_PROBE=y -+# CONFIG_MTD_CFI_ADV_OPTIONS is not set -+CONFIG_MTD_MAP_BANK_WIDTH_1=y -+CONFIG_MTD_MAP_BANK_WIDTH_2=y -+CONFIG_MTD_MAP_BANK_WIDTH_4=y -+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -+CONFIG_MTD_CFI_I1=y -+CONFIG_MTD_CFI_I2=y -+# CONFIG_MTD_CFI_I4 is not set -+# CONFIG_MTD_CFI_I8 is not set -+CONFIG_MTD_CFI_INTELEXT=y -+# CONFIG_MTD_CFI_AMDSTD is not set -+# CONFIG_MTD_CFI_STAA is not set -+CONFIG_MTD_CFI_UTIL=y -+# CONFIG_MTD_RAM is not set -+CONFIG_MTD_ROM=y -+CONFIG_MTD_ABSENT=y -+ -+# -+# Mapping drivers for chip access -+# -+# CONFIG_MTD_COMPLEX_MAPPINGS is not set -+CONFIG_MTD_PHYSMAP=y -+# CONFIG_MTD_PHYSMAP_COMPAT is not set -+# CONFIG_MTD_ARM_INTEGRATOR is not set -+# CONFIG_MTD_PLATRAM is not set -+ -+# -+# Self-contained MTD device drivers -+# -+# CONFIG_MTD_DATAFLASH is not set -+# CONFIG_MTD_M25P80 is not set -+# CONFIG_MTD_SST25L is not set -+# CONFIG_MTD_SLRAM is not set -+# CONFIG_MTD_PHRAM is not set -+# CONFIG_MTD_MTDRAM is not set -+# CONFIG_MTD_BLOCK2MTD is not set -+ -+# -+# Disk-On-Chip Device Drivers -+# -+# CONFIG_MTD_DOC2000 is not set -+# CONFIG_MTD_DOC2001 is not set -+# CONFIG_MTD_DOC2001PLUS is not set -+CONFIG_MTD_NAND=y -+CONFIG_MTD_NAND_VERIFY_WRITE=y -+# CONFIG_MTD_NAND_ECC_SMC is not set -+# CONFIG_MTD_NAND_MUSEUM_IDS is not set -+# CONFIG_MTD_NAND_GPIO is not set -+CONFIG_MTD_NAND_IDS=y -+CONFIG_MTD_NAND_S3C2410=y -+# CONFIG_MTD_NAND_S3C2410_DEBUG is not set -+CONFIG_MTD_NAND_S3C2410_HWECC=y -+# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set -+# CONFIG_MTD_NAND_DISKONCHIP is not set -+# CONFIG_MTD_NAND_NANDSIM is not set -+# CONFIG_MTD_NAND_PLATFORM is not set -+# CONFIG_MTD_ALAUDA is not set -+# CONFIG_MTD_ONENAND is not set -+ -+# -+# LPDDR flash memory drivers -+# -+# CONFIG_MTD_LPDDR is not set -+ -+# -+# UBI - Unsorted block images -+# -+# CONFIG_MTD_UBI is not set -+# CONFIG_PARPORT is not set -+CONFIG_BLK_DEV=y -+# CONFIG_BLK_DEV_COW_COMMON is not set -+CONFIG_BLK_DEV_LOOP=m -+# CONFIG_BLK_DEV_CRYPTOLOOP is not set -+# CONFIG_BLK_DEV_NBD is not set -+CONFIG_BLK_DEV_UB=m -+CONFIG_BLK_DEV_RAM=y -+CONFIG_BLK_DEV_RAM_COUNT=16 -+CONFIG_BLK_DEV_RAM_SIZE=4096 -+# CONFIG_BLK_DEV_XIP is not set -+# CONFIG_CDROM_PKTCDVD is not set -+# CONFIG_ATA_OVER_ETH is not set -+# CONFIG_MG_DISK is not set -+# CONFIG_MISC_DEVICES is not set -+CONFIG_HAVE_IDE=y -+# CONFIG_IDE is not set -+ -+# -+# SCSI device support -+# -+# CONFIG_RAID_ATTRS is not set -+CONFIG_SCSI=m -+CONFIG_SCSI_DMA=y -+# CONFIG_SCSI_TGT is not set -+# CONFIG_SCSI_NETLINK is not set -+CONFIG_SCSI_PROC_FS=y -+ -+# -+# SCSI support type (disk, tape, CD-ROM) -+# -+CONFIG_BLK_DEV_SD=m -+# CONFIG_CHR_DEV_ST is not set -+# CONFIG_CHR_DEV_OSST is not set -+CONFIG_BLK_DEV_SR=m -+# CONFIG_BLK_DEV_SR_VENDOR is not set -+CONFIG_CHR_DEV_SG=m -+# CONFIG_CHR_DEV_SCH is not set -+CONFIG_SCSI_MULTI_LUN=y -+# CONFIG_SCSI_CONSTANTS is not set -+# CONFIG_SCSI_LOGGING is not set -+CONFIG_SCSI_SCAN_ASYNC=y -+CONFIG_SCSI_WAIT_SCAN=m -+ -+# -+# SCSI Transports -+# -+# CONFIG_SCSI_SPI_ATTRS is not set -+# CONFIG_SCSI_FC_ATTRS is not set -+# CONFIG_SCSI_ISCSI_ATTRS is not set -+# CONFIG_SCSI_SAS_LIBSAS is not set -+# CONFIG_SCSI_SRP_ATTRS is not set -+CONFIG_SCSI_LOWLEVEL=y -+# CONFIG_ISCSI_TCP is not set -+# CONFIG_LIBFC is not set -+# CONFIG_LIBFCOE is not set -+# CONFIG_SCSI_DEBUG is not set -+# CONFIG_SCSI_DH is not set -+# CONFIG_SCSI_OSD_INITIATOR is not set -+# CONFIG_ATA is not set -+# CONFIG_MD is not set -+CONFIG_NETDEVICES=y -+# CONFIG_DUMMY is not set -+# CONFIG_BONDING is not set -+# CONFIG_MACVLAN is not set -+# CONFIG_EQUALIZER is not set -+CONFIG_TUN=m -+# CONFIG_VETH is not set -+# CONFIG_NET_ETHERNET is not set -+CONFIG_MII=m -+# CONFIG_NETDEV_1000 is not set -+# CONFIG_NETDEV_10000 is not set -+CONFIG_WLAN=y -+# CONFIG_WLAN_PRE80211 is not set -+# CONFIG_WLAN_80211 is not set -+ -+# -+# Enable WiMAX (Networking options) to see the WiMAX drivers -+# -+ -+# -+# USB Network Adapters -+# -+CONFIG_USB_CATC=m -+CONFIG_USB_KAWETH=m -+CONFIG_USB_PEGASUS=m -+CONFIG_USB_RTL8150=m -+# CONFIG_USB_USBNET is not set -+# CONFIG_WAN is not set -+CONFIG_PPP=m -+CONFIG_PPP_MULTILINK=y -+CONFIG_PPP_FILTER=y -+CONFIG_PPP_ASYNC=m -+CONFIG_PPP_SYNC_TTY=m -+CONFIG_PPP_DEFLATE=m -+CONFIG_PPP_BSDCOMP=m -+CONFIG_PPP_MPPE=m -+# CONFIG_PPPOE is not set -+# CONFIG_PPPOL2TP is not set -+# CONFIG_SLIP is not set -+CONFIG_SLHC=m -+# CONFIG_NETCONSOLE is not set -+# CONFIG_NETPOLL is not set -+# CONFIG_NET_POLL_CONTROLLER is not set -+# CONFIG_ISDN is not set -+# CONFIG_PHONE is not set -+ -+# -+# Input device support -+# -+CONFIG_INPUT=y -+# CONFIG_INPUT_FF_MEMLESS is not set -+# CONFIG_INPUT_POLLDEV is not set -+ -+# -+# Userland interfaces -+# -+CONFIG_INPUT_MOUSEDEV=y -+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -+CONFIG_INPUT_MOUSEDEV_SCREEN_X=480 -+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=640 -+CONFIG_INPUT_JOYDEV=m -+CONFIG_INPUT_EVDEV=y -+# CONFIG_INPUT_EVBUG is not set -+ -+# -+# Input Device Drivers -+# -+CONFIG_INPUT_KEYBOARD=y -+# CONFIG_KEYBOARD_ADP5588 is not set -+# CONFIG_KEYBOARD_ATKBD is not set -+# CONFIG_QT2160 is not set -+# CONFIG_KEYBOARD_LKKBD is not set -+CONFIG_KEYBOARD_GPIO=y -+# CONFIG_KEYBOARD_MATRIX is not set -+# CONFIG_KEYBOARD_LM8323 is not set -+# CONFIG_KEYBOARD_MAX7359 is not set -+# CONFIG_KEYBOARD_NEWTON is not set -+# CONFIG_KEYBOARD_OPENCORES is not set -+CONFIG_KEYBOARD_STOWAWAY=m -+# CONFIG_KEYBOARD_SUNKBD is not set -+# CONFIG_KEYBOARD_XTKBD is not set -+# CONFIG_INPUT_MOUSE is not set -+# CONFIG_INPUT_JOYSTICK is not set -+# CONFIG_INPUT_TABLET is not set -+CONFIG_INPUT_TOUCHSCREEN=y -+CONFIG_TOUCHSCREEN_FILTER=y -+CONFIG_TOUCHSCREEN_FILTER_GROUP=y -+CONFIG_TOUCHSCREEN_FILTER_MEDIAN=y -+CONFIG_TOUCHSCREEN_FILTER_MEAN=y -+CONFIG_TOUCHSCREEN_FILTER_LINEAR=y -+CONFIG_TOUCHSCREEN_S3C2410=y -+# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set -+# CONFIG_TOUCHSCREEN_ADS7846 is not set -+# CONFIG_TOUCHSCREEN_AD7877 is not set -+# CONFIG_TOUCHSCREEN_AD7879_I2C is not set -+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set -+# CONFIG_TOUCHSCREEN_AD7879 is not set -+# CONFIG_TOUCHSCREEN_EETI is not set -+# CONFIG_TOUCHSCREEN_FUJITSU is not set -+# CONFIG_TOUCHSCREEN_GUNZE is not set -+# CONFIG_TOUCHSCREEN_ELO is not set -+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set -+# CONFIG_TOUCHSCREEN_MCS5000 is not set -+# CONFIG_TOUCHSCREEN_MTOUCH is not set -+# CONFIG_TOUCHSCREEN_INEXIO is not set -+# CONFIG_TOUCHSCREEN_MK712 is not set -+# CONFIG_TOUCHSCREEN_PENMOUNT is not set -+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set -+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set -+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set -+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set -+# CONFIG_TOUCHSCREEN_TSC2007 is not set -+# CONFIG_TOUCHSCREEN_W90X900 is not set -+CONFIG_INPUT_MISC=y -+# CONFIG_INPUT_ATI_REMOTE is not set -+# CONFIG_INPUT_ATI_REMOTE2 is not set -+# CONFIG_INPUT_KEYSPAN_REMOTE is not set -+# CONFIG_INPUT_POWERMATE is not set -+# CONFIG_INPUT_YEALINK is not set -+# CONFIG_INPUT_CM109 is not set -+CONFIG_INPUT_UINPUT=m -+CONFIG_INPUT_PCF50633_PMU=y -+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set -+CONFIG_INPUT_LIS302DL=y -+ -+# -+# Hardware I/O ports -+# -+CONFIG_SERIO=y -+# CONFIG_SERIO_SERPORT is not set -+# CONFIG_SERIO_RAW is not set -+# CONFIG_GAMEPORT is not set -+ -+# -+# Character devices -+# -+CONFIG_VT=y -+CONFIG_CONSOLE_TRANSLATIONS=y -+CONFIG_VT_CONSOLE=y -+CONFIG_HW_CONSOLE=y -+CONFIG_VT_HW_CONSOLE_BINDING=y -+# CONFIG_DEVKMEM is not set -+# CONFIG_SERIAL_NONSTANDARD is not set -+ -+# -+# Serial drivers -+# -+# CONFIG_SERIAL_8250 is not set -+ -+# -+# Non-8250 serial port support -+# -+CONFIG_SERIAL_SAMSUNG=y -+CONFIG_SERIAL_SAMSUNG_UARTS=3 -+CONFIG_SERIAL_SAMSUNG_CONSOLE=y -+CONFIG_SERIAL_S3C2440=y -+# CONFIG_SERIAL_MAX3100 is not set -+CONFIG_SERIAL_CORE=y -+CONFIG_SERIAL_CORE_CONSOLE=y -+CONFIG_UNIX98_PTYS=y -+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -+# CONFIG_LEGACY_PTYS is not set -+# CONFIG_IPMI_HANDLER is not set -+# CONFIG_HW_RANDOM is not set -+# CONFIG_R3964 is not set -+# CONFIG_RAW_DRIVER is not set -+# CONFIG_TCG_TPM is not set -+CONFIG_I2C=y -+CONFIG_I2C_BOARDINFO=y -+# CONFIG_I2C_COMPAT is not set -+CONFIG_I2C_CHARDEV=y -+# CONFIG_I2C_HELPER_AUTO is not set -+ -+# -+# I2C Algorithms -+# -+# CONFIG_I2C_ALGOBIT is not set -+# CONFIG_I2C_ALGOPCF is not set -+# CONFIG_I2C_ALGOPCA is not set -+ -+# -+# I2C Hardware Bus support -+# -+ -+# -+# I2C system bus drivers (mostly embedded / system-on-chip) -+# -+# CONFIG_I2C_DESIGNWARE is not set -+# CONFIG_I2C_GPIO is not set -+# CONFIG_I2C_OCORES is not set -+CONFIG_I2C_S3C2410=y -+# CONFIG_I2C_SIMTEC is not set -+ -+# -+# External I2C/SMBus adapter drivers -+# -+# CONFIG_I2C_PARPORT_LIGHT is not set -+# CONFIG_I2C_TAOS_EVM is not set -+# CONFIG_I2C_TINY_USB is not set -+ -+# -+# Other I2C/SMBus bus drivers -+# -+# CONFIG_I2C_PCA_PLATFORM is not set -+# CONFIG_I2C_STUB is not set -+ -+# -+# Miscellaneous I2C Chip support -+# -+# CONFIG_DS1682 is not set -+# CONFIG_SENSORS_TSL2550 is not set -+# CONFIG_I2C_DEBUG_CORE is not set -+# CONFIG_I2C_DEBUG_ALGO is not set -+# CONFIG_I2C_DEBUG_BUS is not set -+# CONFIG_I2C_DEBUG_CHIP is not set -+CONFIG_SPI=y -+CONFIG_SPI_MASTER=y -+ -+# -+# SPI Master Controller Drivers -+# -+CONFIG_SPI_BITBANG=y -+CONFIG_SPI_GPIO=y -+CONFIG_SPI_S3C24XX=y -+CONFIG_SPI_S3C24XX_GPIO=y -+ -+# -+# SPI Protocol Masters -+# -+# CONFIG_SPI_SPIDEV is not set -+# CONFIG_SPI_TLE62X0 is not set -+ -+# -+# PPS support -+# -+# CONFIG_PPS is not set -+CONFIG_ARCH_REQUIRE_GPIOLIB=y -+CONFIG_GPIOLIB=y -+CONFIG_GPIO_SYSFS=y -+ -+# -+# Memory mapped GPIO expanders: -+# -+ -+# -+# I2C GPIO expanders: -+# -+# CONFIG_GPIO_MAX732X is not set -+# CONFIG_GPIO_PCA953X is not set -+# CONFIG_GPIO_PCF857X is not set -+CONFIG_GPIO_PCF50633=y -+ -+# -+# PCI GPIO expanders: -+# -+ -+# -+# SPI GPIO expanders: -+# -+# CONFIG_GPIO_MAX7301 is not set -+# CONFIG_GPIO_MCP23S08 is not set -+# CONFIG_GPIO_MC33880 is not set -+ -+# -+# AC97 GPIO expanders: -+# -+# CONFIG_W1 is not set -+CONFIG_POWER_SUPPLY=y -+# CONFIG_POWER_SUPPLY_DEBUG is not set -+# CONFIG_PDA_POWER is not set -+# CONFIG_BATTERY_DS2760 is not set -+# CONFIG_BATTERY_DS2782 is not set -+# CONFIG_BATTERY_BQ27x00 is not set -+# CONFIG_BATTERY_MAX17040 is not set -+CONFIG_CHARGER_PCF50633=y -+CONFIG_BATTERY_BQ27000_HDQ=y -+CONFIG_HDQ_GPIO_BITBANG=y -+CONFIG_BATTERY_PLATFORM=y -+# CONFIG_HWMON is not set -+# CONFIG_THERMAL is not set -+CONFIG_WATCHDOG=y -+# CONFIG_WATCHDOG_NOWAYOUT is not set -+ -+# -+# Watchdog Device Drivers -+# -+# CONFIG_SOFT_WATCHDOG is not set -+CONFIG_S3C2410_WATCHDOG=y -+ -+# -+# USB-based Watchdog Cards -+# -+# CONFIG_USBPCWATCHDOG is not set -+CONFIG_SSB_POSSIBLE=y -+ -+# -+# Sonics Silicon Backplane -+# -+# CONFIG_SSB is not set -+ -+# -+# Multifunction device drivers -+# -+CONFIG_MFD_CORE=y -+# CONFIG_MFD_SM501 is not set -+# CONFIG_MFD_ASIC3 is not set -+# CONFIG_HTC_EGPIO is not set -+# CONFIG_HTC_PASIC3 is not set -+# CONFIG_TPS65010 is not set -+# CONFIG_TWL4030_CORE is not set -+# CONFIG_MFD_TMIO is not set -+# CONFIG_MFD_T7L66XB is not set -+# CONFIG_MFD_TC6387XB is not set -+# CONFIG_MFD_TC6393XB is not set -+# CONFIG_PMIC_DA903X is not set -+# CONFIG_MFD_WM8400 is not set -+# CONFIG_MFD_WM831X is not set -+# CONFIG_MFD_WM8350_I2C is not set -+CONFIG_MFD_PCF50633=y -+# CONFIG_MFD_MC13783 is not set -+CONFIG_PCF50633_ADC=y -+# CONFIG_AB3100_CORE is not set -+# CONFIG_EZX_PCAP is not set -+CONFIG_MFD_GLAMO=y -+CONFIG_MFD_GLAMO_FB=y -+CONFIG_MFD_GLAMO_GPIO=y -+CONFIG_MFD_GLAMO_MCI=y -+CONFIG_REGULATOR=y -+# CONFIG_REGULATOR_DEBUG is not set -+CONFIG_REGULATOR_FIXED_VOLTAGE=y -+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -+CONFIG_REGULATOR_USERSPACE_CONSUMER=y -+# CONFIG_REGULATOR_BQ24022 is not set -+# CONFIG_REGULATOR_MAX1586 is not set -+CONFIG_REGULATOR_PCF50633=y -+# CONFIG_REGULATOR_LP3971 is not set -+# CONFIG_REGULATOR_TPS65023 is not set -+# CONFIG_REGULATOR_TPS6507X is not set -+# CONFIG_MEDIA_SUPPORT is not set -+ -+# -+# Graphics support -+# -+# CONFIG_VGASTATE is not set -+CONFIG_VIDEO_OUTPUT_CONTROL=y -+CONFIG_FB=y -+# CONFIG_FIRMWARE_EDID is not set -+# CONFIG_FB_DDC is not set -+# CONFIG_FB_BOOT_VESA_SUPPORT is not set -+CONFIG_FB_CFB_FILLRECT=y -+CONFIG_FB_CFB_COPYAREA=y -+CONFIG_FB_CFB_IMAGEBLIT=y -+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -+# CONFIG_FB_SYS_FILLRECT is not set -+# CONFIG_FB_SYS_COPYAREA is not set -+# CONFIG_FB_SYS_IMAGEBLIT is not set -+# CONFIG_FB_FOREIGN_ENDIAN is not set -+# CONFIG_FB_SYS_FOPS is not set -+# 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_TILEBLITTING is not set -+ -+# -+# Frame buffer hardware drivers -+# -+# CONFIG_FB_UVESA is not set -+# CONFIG_FB_S1D13XXX is not set -+# CONFIG_FB_TMIO is not set -+# CONFIG_FB_S3C2410 is not set -+# CONFIG_FB_VIRTUAL is not set -+# CONFIG_FB_METRONOME is not set -+# CONFIG_FB_MB862XX is not set -+# CONFIG_FB_BROADSHEET is not set -+CONFIG_BACKLIGHT_LCD_SUPPORT=y -+CONFIG_LCD_CLASS_DEVICE=y -+# CONFIG_LCD_LMS283GF05 is not set -+# CONFIG_LCD_LTV350QV is not set -+# CONFIG_LCD_ILI9320 is not set -+# CONFIG_LCD_TDO24M is not set -+# CONFIG_LCD_VGG2432A4 is not set -+# CONFIG_LCD_PLATFORM is not set -+CONFIG_LCD_JBT6K74=y -+CONFIG_BACKLIGHT_CLASS_DEVICE=y -+# CONFIG_BACKLIGHT_GENERIC is not set -+# CONFIG_BACKLIGHT_PWM is not set -+CONFIG_BACKLIGHT_PCF50633=y -+ -+# -+# Display device support -+# -+# CONFIG_DISPLAY_SUPPORT is not set -+ -+# -+# Console display driver support -+# -+# CONFIG_VGA_CONSOLE is not set -+CONFIG_DUMMY_CONSOLE=y -+CONFIG_FRAMEBUFFER_CONSOLE=y -+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -+CONFIG_FONTS=y -+# CONFIG_FONT_8x8 is not set -+# CONFIG_FONT_8x16 is not set -+CONFIG_FONT_6x11=y -+# CONFIG_FONT_7x14 is not set -+# CONFIG_FONT_PEARL_8x8 is not set -+# CONFIG_FONT_ACORN_8x8 is not set -+# CONFIG_FONT_MINI_4x6 is not set -+# CONFIG_FONT_SUN8x16 is not set -+# CONFIG_FONT_SUN12x22 is not set -+# CONFIG_FONT_10x18 is not set -+CONFIG_LOGO=y -+# CONFIG_LOGO_LINUX_MONO is not set -+# CONFIG_LOGO_LINUX_VGA16 is not set -+# CONFIG_LOGO_LINUX_CLUT224 is not set -+CONFIG_SOUND=y -+CONFIG_SOUND_OSS_CORE=y -+CONFIG_SOUND_OSS_CORE_PRECLAIM=y -+CONFIG_SND=y -+CONFIG_SND_TIMER=y -+CONFIG_SND_PCM=y -+CONFIG_SND_JACK=y -+CONFIG_SND_SEQUENCER=y -+CONFIG_SND_SEQ_DUMMY=y -+CONFIG_SND_OSSEMUL=y -+CONFIG_SND_MIXER_OSS=y -+CONFIG_SND_PCM_OSS=y -+CONFIG_SND_PCM_OSS_PLUGINS=y -+CONFIG_SND_SEQUENCER_OSS=y -+# CONFIG_SND_DYNAMIC_MINORS is not set -+# CONFIG_SND_SUPPORT_OLD_API is not set -+# CONFIG_SND_VERBOSE_PROCFS is not set -+# CONFIG_SND_VERBOSE_PRINTK is not set -+# CONFIG_SND_DEBUG is not set -+# CONFIG_SND_RAWMIDI_SEQ is not set -+# CONFIG_SND_OPL3_LIB_SEQ is not set -+# CONFIG_SND_OPL4_LIB_SEQ is not set -+# CONFIG_SND_SBAWE_SEQ is not set -+# CONFIG_SND_EMU10K1_SEQ is not set -+# CONFIG_SND_DRIVERS is not set -+# CONFIG_SND_ARM is not set -+# CONFIG_SND_SPI is not set -+# CONFIG_SND_USB is not set -+CONFIG_SND_SOC=y -+CONFIG_SND_S3C24XX_SOC=y -+CONFIG_SND_S3C24XX_SOC_I2S=y -+CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753=y -+# CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650 is not set -+# CONFIG_SND_S3C24XX_SOC_S3C24XX_UDA134X is not set -+# CONFIG_SND_S3C24XX_SOC_SIMTEC_TLV320AIC23 is not set -+# CONFIG_SND_S3C24XX_SOC_SIMTEC_HERMES is not set -+CONFIG_SND_SOC_I2C_AND_SPI=y -+# CONFIG_SND_SOC_ALL_CODECS is not set -+CONFIG_SND_SOC_WM8753=y -+# CONFIG_SOUND_PRIME is not set -+CONFIG_HID_SUPPORT=y -+CONFIG_HID=y -+# CONFIG_HIDRAW is not set -+ -+# -+# USB Input Devices -+# -+CONFIG_USB_HID=y -+# CONFIG_HID_PID is not set -+# CONFIG_USB_HIDDEV is not set -+ -+# -+# Special HID drivers -+# -+CONFIG_HID_A4TECH=y -+CONFIG_HID_APPLE=y -+CONFIG_HID_BELKIN=y -+CONFIG_HID_CHERRY=y -+CONFIG_HID_CHICONY=y -+CONFIG_HID_CYPRESS=y -+CONFIG_HID_DRAGONRISE=y -+# CONFIG_DRAGONRISE_FF is not set -+CONFIG_HID_EZKEY=y -+CONFIG_HID_KYE=y -+CONFIG_HID_GYRATION=y -+CONFIG_HID_TWINHAN=y -+CONFIG_HID_KENSINGTON=y -+CONFIG_HID_LOGITECH=y -+# CONFIG_LOGITECH_FF is not set -+# CONFIG_LOGIRUMBLEPAD2_FF is not set -+CONFIG_HID_MICROSOFT=y -+CONFIG_HID_MONTEREY=y -+CONFIG_HID_NTRIG=y -+CONFIG_HID_PANTHERLORD=y -+# CONFIG_PANTHERLORD_FF is not set -+CONFIG_HID_PETALYNX=y -+CONFIG_HID_SAMSUNG=y -+CONFIG_HID_SONY=y -+CONFIG_HID_SUNPLUS=y -+CONFIG_HID_GREENASIA=y -+# CONFIG_GREENASIA_FF is not set -+CONFIG_HID_SMARTJOYPLUS=y -+# CONFIG_SMARTJOYPLUS_FF is not set -+CONFIG_HID_TOPSEED=y -+CONFIG_HID_THRUSTMASTER=y -+# CONFIG_THRUSTMASTER_FF is not set -+CONFIG_HID_WACOM=y -+CONFIG_HID_ZEROPLUS=y -+# CONFIG_ZEROPLUS_FF is not set -+CONFIG_USB_SUPPORT=y -+CONFIG_USB_ARCH_HAS_HCD=y -+CONFIG_USB_ARCH_HAS_OHCI=y -+# CONFIG_USB_ARCH_HAS_EHCI is not set -+CONFIG_USB=y -+# CONFIG_USB_DEBUG is not set -+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y -+ -+# -+# Miscellaneous USB options -+# -+# CONFIG_USB_DEVICEFS is not set -+# CONFIG_USB_DEVICE_CLASS is not set -+# CONFIG_USB_DYNAMIC_MINORS is not set -+CONFIG_USB_SUSPEND=y -+# CONFIG_USB_OTG is not set -+# CONFIG_USB_MON is not set -+# CONFIG_USB_WUSB is not set -+# CONFIG_USB_WUSB_CBAF is not set -+ -+# -+# USB Host Controller Drivers -+# -+# CONFIG_USB_C67X00_HCD is not set -+# CONFIG_USB_OXU210HP_HCD is not set -+# CONFIG_USB_ISP116X_HCD is not set -+# CONFIG_USB_ISP1760_HCD is not set -+# CONFIG_USB_ISP1362_HCD is not set -+CONFIG_USB_OHCI_HCD=y -+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -+CONFIG_USB_OHCI_LITTLE_ENDIAN=y -+# CONFIG_USB_SL811_HCD is not set -+# CONFIG_USB_R8A66597_HCD is not set -+# CONFIG_USB_HWA_HCD is not set -+# CONFIG_USB_MUSB_HDRC is not set -+# CONFIG_USB_GADGET_MUSB_HDRC is not set -+ -+# -+# USB Device Class drivers -+# -+CONFIG_USB_ACM=m -+CONFIG_USB_PRINTER=m -+# CONFIG_USB_WDM is not set -+CONFIG_USB_TMC=m -+ -+# -+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -+# -+ -+# -+# also be needed; see USB_STORAGE Help for more info -+# -+CONFIG_USB_STORAGE=m -+# CONFIG_USB_STORAGE_DEBUG is not set -+CONFIG_USB_STORAGE_DATAFAB=m -+CONFIG_USB_STORAGE_FREECOM=m -+# CONFIG_USB_STORAGE_ISD200 is not set -+CONFIG_USB_STORAGE_USBAT=m -+CONFIG_USB_STORAGE_SDDR09=m -+CONFIG_USB_STORAGE_SDDR55=m -+CONFIG_USB_STORAGE_JUMPSHOT=m -+CONFIG_USB_STORAGE_ALAUDA=m -+# CONFIG_USB_STORAGE_ONETOUCH is not set -+CONFIG_USB_STORAGE_KARMA=m -+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set -+# CONFIG_USB_LIBUSUAL is not set -+ -+# -+# USB Imaging devices -+# -+# CONFIG_USB_MDC800 is not set -+# CONFIG_USB_MICROTEK is not set -+ -+# -+# USB port drivers -+# -+CONFIG_USB_SERIAL=m -+CONFIG_USB_EZUSB=y -+CONFIG_USB_SERIAL_GENERIC=y -+CONFIG_USB_SERIAL_AIRCABLE=m -+CONFIG_USB_SERIAL_ARK3116=m -+CONFIG_USB_SERIAL_BELKIN=m -+# CONFIG_USB_SERIAL_CH341 is not set -+CONFIG_USB_SERIAL_WHITEHEAT=m -+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -+# CONFIG_USB_SERIAL_CP210X is not set -+CONFIG_USB_SERIAL_CYPRESS_M8=m -+CONFIG_USB_SERIAL_EMPEG=m -+CONFIG_USB_SERIAL_FTDI_SIO=m -+CONFIG_USB_SERIAL_FUNSOFT=m -+CONFIG_USB_SERIAL_VISOR=m -+CONFIG_USB_SERIAL_IPAQ=m -+CONFIG_USB_SERIAL_IR=m -+CONFIG_USB_SERIAL_EDGEPORT=m -+CONFIG_USB_SERIAL_EDGEPORT_TI=m -+CONFIG_USB_SERIAL_GARMIN=m -+CONFIG_USB_SERIAL_IPW=m -+# CONFIG_USB_SERIAL_IUU is not set -+CONFIG_USB_SERIAL_KEYSPAN_PDA=m -+CONFIG_USB_SERIAL_KEYSPAN=m -+CONFIG_USB_SERIAL_KLSI=m -+CONFIG_USB_SERIAL_KOBIL_SCT=m -+CONFIG_USB_SERIAL_MCT_U232=m -+CONFIG_USB_SERIAL_MOS7720=m -+CONFIG_USB_SERIAL_MOS7840=m -+# CONFIG_USB_SERIAL_MOTOROLA is not set -+CONFIG_USB_SERIAL_NAVMAN=m -+CONFIG_USB_SERIAL_PL2303=m -+# CONFIG_USB_SERIAL_OTI6858 is not set -+# CONFIG_USB_SERIAL_QUALCOMM is not set -+# CONFIG_USB_SERIAL_SPCP8X5 is not set -+CONFIG_USB_SERIAL_HP4X=m -+CONFIG_USB_SERIAL_SAFE=m -+CONFIG_USB_SERIAL_SAFE_PADDED=y -+# CONFIG_USB_SERIAL_SIEMENS_MPI is not set -+CONFIG_USB_SERIAL_SIERRAWIRELESS=m -+# CONFIG_USB_SERIAL_SYMBOL is not set -+CONFIG_USB_SERIAL_TI=m -+CONFIG_USB_SERIAL_CYBERJACK=m -+CONFIG_USB_SERIAL_XIRCOM=m -+CONFIG_USB_SERIAL_OPTION=m -+CONFIG_USB_SERIAL_OMNINET=m -+# CONFIG_USB_SERIAL_OPTICON is not set -+# CONFIG_USB_SERIAL_DEBUG is not set -+ -+# -+# USB Miscellaneous drivers -+# -+# CONFIG_USB_EMI62 is not set -+# CONFIG_USB_EMI26 is not set -+# CONFIG_USB_ADUTUX is not set -+# CONFIG_USB_SEVSEG is not set -+# CONFIG_USB_RIO500 is not set -+# CONFIG_USB_LEGOTOWER is not set -+# CONFIG_USB_LCD is not set -+CONFIG_USB_BERRY_CHARGE=m -+# CONFIG_USB_LED is not set -+# CONFIG_USB_CYPRESS_CY7C63 is not set -+# CONFIG_USB_CYTHERM is not set -+# CONFIG_USB_IDMOUSE is not set -+# CONFIG_USB_FTDI_ELAN is not set -+# CONFIG_USB_APPLEDISPLAY is not set -+# CONFIG_USB_LD is not set -+CONFIG_USB_TRANCEVIBRATOR=m -+CONFIG_USB_IOWARRIOR=m -+# CONFIG_USB_TEST is not set -+# CONFIG_USB_ISIGHTFW is not set -+# CONFIG_USB_VST is not set -+CONFIG_USB_GADGET=y -+# CONFIG_USB_GADGET_DEBUG_FILES is not set -+CONFIG_USB_GADGET_VBUS_DRAW=500 -+CONFIG_USB_GADGET_SELECTED=y -+# CONFIG_USB_GADGET_AT91 is not set -+# CONFIG_USB_GADGET_ATMEL_USBA is not set -+# CONFIG_USB_GADGET_FSL_USB2 is not set -+# CONFIG_USB_GADGET_LH7A40X is not set -+# CONFIG_USB_GADGET_OMAP is not set -+# CONFIG_USB_GADGET_PXA25X is not set -+# CONFIG_USB_GADGET_R8A66597 is not set -+# CONFIG_USB_GADGET_PXA27X is not set -+# CONFIG_USB_GADGET_S3C_HSOTG is not set -+# CONFIG_USB_GADGET_IMX is not set -+CONFIG_USB_GADGET_S3C2410=y -+CONFIG_USB_S3C2410=y -+# CONFIG_USB_S3C2410_DEBUG is not set -+# CONFIG_USB_GADGET_M66592 is not set -+# CONFIG_USB_GADGET_AMD5536UDC is not set -+# CONFIG_USB_GADGET_FSL_QE is not set -+# CONFIG_USB_GADGET_CI13XXX is not set -+# CONFIG_USB_GADGET_NET2280 is not set -+# CONFIG_USB_GADGET_GOKU is not set -+# CONFIG_USB_GADGET_LANGWELL is not set -+# CONFIG_USB_GADGET_DUMMY_HCD is not set -+# CONFIG_USB_GADGET_DUALSPEED is not set -+# CONFIG_USB_ZERO is not set -+# CONFIG_USB_AUDIO is not set -+CONFIG_USB_ETH=y -+CONFIG_USB_ETH_RNDIS=y -+# CONFIG_USB_ETH_EEM is not set -+# CONFIG_USB_GADGETFS is not set -+# CONFIG_USB_FILE_STORAGE is not set -+# CONFIG_USB_G_SERIAL is not set -+# CONFIG_USB_MIDI_GADGET is not set -+# CONFIG_USB_G_PRINTER is not set -+# CONFIG_USB_CDC_COMPOSITE is not set -+ -+# -+# OTG and related infrastructure -+# -+# CONFIG_USB_GPIO_VBUS is not set -+# CONFIG_NOP_USB_XCEIV is not set -+CONFIG_MMC=y -+# CONFIG_MMC_DEBUG is not set -+CONFIG_MMC_UNSAFE_RESUME=y -+ -+# -+# MMC/SD/SDIO Card Drivers -+# -+CONFIG_MMC_BLOCK=y -+CONFIG_MMC_BLOCK_BOUNCE=y -+# CONFIG_SDIO_UART is not set -+# CONFIG_MMC_TEST is not set -+ -+# -+# MMC/SD/SDIO Host Controller Drivers -+# -+# CONFIG_MMC_SDHCI is not set -+# CONFIG_MMC_AT91 is not set -+# CONFIG_MMC_ATMELMCI is not set -+# CONFIG_MMC_SPI is not set -+CONFIG_MMC_S3C=y -+# CONFIG_MMC_S3C_HW_SDIO_IRQ is not set -+CONFIG_MMC_S3C_PIO=y -+# CONFIG_MMC_S3C_DMA is not set -+# CONFIG_MMC_S3C_PIODMA is not set -+# CONFIG_MEMSTICK is not set -+CONFIG_NEW_LEDS=y -+CONFIG_LEDS_CLASS=y -+ -+# -+# LED drivers -+# -+# CONFIG_LEDS_S3C24XX is not set -+# CONFIG_LEDS_PCA9532 is not set -+CONFIG_LEDS_GPIO=y -+CONFIG_LEDS_GPIO_PLATFORM=y -+# CONFIG_LEDS_LP3944 is not set -+# CONFIG_LEDS_PCA955X is not set -+# CONFIG_LEDS_DAC124S085 is not set -+# CONFIG_LEDS_PWM is not set -+# CONFIG_LEDS_BD2802 is not set -+ -+# -+# LED Triggers -+# -+CONFIG_LEDS_TRIGGERS=y -+CONFIG_LEDS_TRIGGER_TIMER=y -+CONFIG_LEDS_TRIGGER_HEARTBEAT=y -+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set -+# CONFIG_LEDS_TRIGGER_GPIO is not set -+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set -+ -+# -+# iptables trigger is under Netfilter config (LED target) -+# -+# CONFIG_ACCESSIBILITY is not set -+CONFIG_RTC_LIB=y -+CONFIG_RTC_CLASS=y -+CONFIG_RTC_HCTOSYS=y -+CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -+# CONFIG_RTC_DEBUG is not set -+ -+# -+# RTC interfaces -+# -+CONFIG_RTC_INTF_SYSFS=y -+CONFIG_RTC_INTF_PROC=y -+CONFIG_RTC_INTF_DEV=y -+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -+# CONFIG_RTC_DRV_TEST is not set -+ -+# -+# I2C RTC drivers -+# -+# CONFIG_RTC_DRV_DS1307 is not set -+# CONFIG_RTC_DRV_DS1374 is not set -+# CONFIG_RTC_DRV_DS1672 is not set -+# CONFIG_RTC_DRV_MAX6900 is not set -+# CONFIG_RTC_DRV_RS5C372 is not set -+# CONFIG_RTC_DRV_ISL1208 is not set -+# CONFIG_RTC_DRV_X1205 is not set -+# CONFIG_RTC_DRV_PCF8563 is not set -+# CONFIG_RTC_DRV_PCF8583 is not set -+# CONFIG_RTC_DRV_M41T80 is not set -+# CONFIG_RTC_DRV_S35390A is not set -+# CONFIG_RTC_DRV_FM3130 is not set -+# CONFIG_RTC_DRV_RX8581 is not set -+# CONFIG_RTC_DRV_RX8025 is not set -+ -+# -+# SPI RTC drivers -+# -+# CONFIG_RTC_DRV_M41T94 is not set -+# CONFIG_RTC_DRV_DS1305 is not set -+# CONFIG_RTC_DRV_DS1390 is not set -+# CONFIG_RTC_DRV_MAX6902 is not set -+# CONFIG_RTC_DRV_R9701 is not set -+# CONFIG_RTC_DRV_RS5C348 is not set -+# CONFIG_RTC_DRV_DS3234 is not set -+# CONFIG_RTC_DRV_PCF2123 is not set -+ -+# -+# Platform RTC drivers -+# -+# CONFIG_RTC_DRV_CMOS is not set -+# CONFIG_RTC_DRV_DS1286 is not set -+# CONFIG_RTC_DRV_DS1511 is not set -+# CONFIG_RTC_DRV_DS1553 is not set -+# CONFIG_RTC_DRV_DS1742 is not set -+# CONFIG_RTC_DRV_STK17TA8 is not set -+# CONFIG_RTC_DRV_M48T86 is not set -+# CONFIG_RTC_DRV_M48T35 is not set -+# CONFIG_RTC_DRV_M48T59 is not set -+# CONFIG_RTC_DRV_BQ4802 is not set -+# CONFIG_RTC_DRV_V3020 is not set -+CONFIG_RTC_DRV_PCF50633=y -+ -+# -+# on-CPU RTC drivers -+# -+CONFIG_RTC_DRV_S3C=y -+# CONFIG_DMADEVICES is not set -+# CONFIG_AUXDISPLAY is not set -+# CONFIG_UIO is not set -+ -+# -+# TI VLYNQ -+# -+CONFIG_STAGING=y -+# CONFIG_STAGING_EXCLUDE_BUILD is not set -+# CONFIG_USB_IP_COMMON is not set -+# CONFIG_PRISM2_USB is not set -+# CONFIG_ECHO is not set -+# CONFIG_COMEDI is not set -+# CONFIG_ASUS_OLED is not set -+# CONFIG_INPUT_MIMIO is not set -+# CONFIG_TRANZPORT is not set -+ -+# -+# Android -+# -+ -+# -+# Qualcomm MSM Camera And Video -+# -+ -+# -+# Camera Sensor Selection -+# -+# CONFIG_INPUT_GPIO is not set -+# CONFIG_DST is not set -+# CONFIG_POHMELFS is not set -+# CONFIG_PLAN9AUTH is not set -+# CONFIG_LINE6_USB is not set -+# CONFIG_USB_SERIAL_QUATECH2 is not set -+# CONFIG_USB_SERIAL_QUATECH_USB2 is not set -+# CONFIG_VT6656 is not set -+# CONFIG_FB_UDL is not set -+ -+# -+# RAR Register Driver -+# -+# CONFIG_RAR_REGISTER is not set -+# CONFIG_IIO is not set -+CONFIG_AR6000_WLAN=y -+# CONFIG_AR6000_WLAN_DEBUG is not set -+# CONFIG_AR6000_WLAN_RESET is not set -+ -+# -+# File systems -+# -+CONFIG_EXT2_FS=y -+# CONFIG_EXT2_FS_XATTR is not set -+# CONFIG_EXT2_FS_XIP is not set -+CONFIG_EXT3_FS=y -+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -+# CONFIG_EXT3_FS_XATTR is not set -+# CONFIG_EXT4_FS is not set -+CONFIG_JBD=y -+CONFIG_REISERFS_FS=m -+# CONFIG_REISERFS_CHECK is not set -+# CONFIG_REISERFS_PROC_INFO is not set -+# CONFIG_REISERFS_FS_XATTR is not set -+# CONFIG_JFS_FS is not set -+# CONFIG_FS_POSIX_ACL is not set -+# CONFIG_XFS_FS is not set -+# CONFIG_OCFS2_FS is not set -+# CONFIG_BTRFS_FS is not set -+# CONFIG_NILFS2_FS is not set -+CONFIG_FILE_LOCKING=y -+CONFIG_FSNOTIFY=y -+# CONFIG_DNOTIFY is not set -+CONFIG_INOTIFY=y -+CONFIG_INOTIFY_USER=y -+# CONFIG_QUOTA is not set -+# CONFIG_AUTOFS_FS is not set -+CONFIG_AUTOFS4_FS=m -+CONFIG_FUSE_FS=m -+CONFIG_CUSE=m -+ -+# -+# Caches -+# -+# CONFIG_FSCACHE is not set -+ -+# -+# CD-ROM/DVD Filesystems -+# -+CONFIG_ISO9660_FS=m -+CONFIG_JOLIET=y -+# CONFIG_ZISOFS is not set -+CONFIG_UDF_FS=m -+CONFIG_UDF_NLS=y -+ -+# -+# DOS/FAT/NT Filesystems -+# -+CONFIG_FAT_FS=y -+# CONFIG_MSDOS_FS is not set -+CONFIG_VFAT_FS=y -+CONFIG_FAT_DEFAULT_CODEPAGE=437 -+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -+# CONFIG_NTFS_FS is not set -+ -+# -+# Pseudo filesystems -+# -+CONFIG_PROC_FS=y -+CONFIG_PROC_SYSCTL=y -+CONFIG_PROC_PAGE_MONITOR=y -+CONFIG_SYSFS=y -+CONFIG_TMPFS=y -+# CONFIG_TMPFS_POSIX_ACL is not set -+# CONFIG_HUGETLB_PAGE is not set -+CONFIG_CONFIGFS_FS=m -+CONFIG_MISC_FILESYSTEMS=y -+# CONFIG_ADFS_FS is not set -+# CONFIG_AFFS_FS is not set -+# CONFIG_HFS_FS is not set -+# CONFIG_HFSPLUS_FS is not set -+# CONFIG_BEFS_FS is not set -+# CONFIG_BFS_FS is not set -+# CONFIG_EFS_FS is not set -+CONFIG_JFFS2_FS=y -+CONFIG_JFFS2_FS_DEBUG=0 -+CONFIG_JFFS2_FS_WRITEBUFFER=y -+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -+CONFIG_JFFS2_SUMMARY=y -+# CONFIG_JFFS2_FS_XATTR is not set -+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set -+CONFIG_JFFS2_ZLIB=y -+# CONFIG_JFFS2_LZO is not set -+CONFIG_JFFS2_RTIME=y -+# CONFIG_JFFS2_RUBIN is not set -+# CONFIG_CRAMFS is not set -+CONFIG_SQUASHFS=m -+# CONFIG_SQUASHFS_EMBEDDED is not set -+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 -+# CONFIG_VXFS_FS is not set -+# CONFIG_MINIX_FS is not set -+# CONFIG_OMFS_FS is not set -+# CONFIG_HPFS_FS is not set -+# CONFIG_QNX4FS_FS is not set -+# CONFIG_ROMFS_FS is not set -+# CONFIG_SYSV_FS is not set -+# CONFIG_UFS_FS is not set -+CONFIG_NETWORK_FILESYSTEMS=y -+CONFIG_NFS_FS=m -+CONFIG_NFS_V3=y -+# CONFIG_NFS_V3_ACL is not set -+# CONFIG_NFS_V4 is not set -+CONFIG_NFSD=m -+CONFIG_NFSD_V3=y -+# CONFIG_NFSD_V3_ACL is not set -+# CONFIG_NFSD_V4 is not set -+CONFIG_LOCKD=m -+CONFIG_LOCKD_V4=y -+CONFIG_EXPORTFS=m -+CONFIG_NFS_COMMON=y -+CONFIG_SUNRPC=m -+# CONFIG_RPCSEC_GSS_KRB5 is not set -+# CONFIG_RPCSEC_GSS_SPKM3 is not set -+# CONFIG_SMB_FS is not set -+CONFIG_CIFS=m -+# CONFIG_CIFS_STATS is not set -+# CONFIG_CIFS_WEAK_PW_HASH is not set -+# CONFIG_CIFS_XATTR is not set -+# CONFIG_CIFS_DEBUG2 is not set -+# CONFIG_CIFS_EXPERIMENTAL is not set -+# CONFIG_NCP_FS is not set -+# CONFIG_CODA_FS is not set -+# CONFIG_AFS_FS is not set -+ -+# -+# Partition Types -+# -+CONFIG_PARTITION_ADVANCED=y -+# CONFIG_ACORN_PARTITION is not set -+# CONFIG_OSF_PARTITION is not set -+# CONFIG_AMIGA_PARTITION is not set -+# CONFIG_ATARI_PARTITION is not set -+# CONFIG_MAC_PARTITION is not set -+CONFIG_MSDOS_PARTITION=y -+# CONFIG_BSD_DISKLABEL is not set -+# CONFIG_MINIX_SUBPARTITION is not set -+# CONFIG_SOLARIS_X86_PARTITION is not set -+# CONFIG_UNIXWARE_DISKLABEL is not set -+# CONFIG_LDM_PARTITION is not set -+# CONFIG_SGI_PARTITION is not set -+# CONFIG_ULTRIX_PARTITION is not set -+# CONFIG_SUN_PARTITION is not set -+# CONFIG_KARMA_PARTITION is not set -+# CONFIG_EFI_PARTITION is not set -+# CONFIG_SYSV68_PARTITION is not set -+CONFIG_NLS=y -+CONFIG_NLS_DEFAULT="iso8859-1" -+CONFIG_NLS_CODEPAGE_437=y -+# CONFIG_NLS_CODEPAGE_737 is not set -+# CONFIG_NLS_CODEPAGE_775 is not set -+CONFIG_NLS_CODEPAGE_850=m -+# CONFIG_NLS_CODEPAGE_852 is not set -+# CONFIG_NLS_CODEPAGE_855 is not set -+# CONFIG_NLS_CODEPAGE_857 is not set -+# CONFIG_NLS_CODEPAGE_860 is not set -+# CONFIG_NLS_CODEPAGE_861 is not set -+# CONFIG_NLS_CODEPAGE_862 is not set -+# CONFIG_NLS_CODEPAGE_863 is not set -+# CONFIG_NLS_CODEPAGE_864 is not set -+# CONFIG_NLS_CODEPAGE_865 is not set -+CONFIG_NLS_CODEPAGE_866=m -+# CONFIG_NLS_CODEPAGE_869 is not set -+CONFIG_NLS_CODEPAGE_936=m -+CONFIG_NLS_CODEPAGE_950=m -+# CONFIG_NLS_CODEPAGE_932 is not set -+# CONFIG_NLS_CODEPAGE_949 is not set -+# CONFIG_NLS_CODEPAGE_874 is not set -+# CONFIG_NLS_ISO8859_8 is not set -+# CONFIG_NLS_CODEPAGE_1250 is not set -+CONFIG_NLS_CODEPAGE_1251=m -+# CONFIG_NLS_ASCII is not set -+CONFIG_NLS_ISO8859_1=y -+# CONFIG_NLS_ISO8859_2 is not set -+# CONFIG_NLS_ISO8859_3 is not set -+# CONFIG_NLS_ISO8859_4 is not set -+# CONFIG_NLS_ISO8859_5 is not set -+# CONFIG_NLS_ISO8859_6 is not set -+# CONFIG_NLS_ISO8859_7 is not set -+# CONFIG_NLS_ISO8859_9 is not set -+# CONFIG_NLS_ISO8859_13 is not set -+# CONFIG_NLS_ISO8859_14 is not set -+# CONFIG_NLS_ISO8859_15 is not set -+# CONFIG_NLS_KOI8_R is not set -+# CONFIG_NLS_KOI8_U is not set -+CONFIG_NLS_UTF8=m -+# CONFIG_DLM is not set -+ -+# -+# Kernel hacking -+# -+CONFIG_PRINTK_TIME=y -+# CONFIG_ENABLE_WARN_DEPRECATED is not set -+# CONFIG_ENABLE_MUST_CHECK is not set -+CONFIG_FRAME_WARN=1024 -+# CONFIG_MAGIC_SYSRQ is not set -+CONFIG_STRIP_ASM_SYMS=y -+# CONFIG_UNUSED_SYMBOLS is not set -+# CONFIG_DEBUG_FS is not set -+# CONFIG_HEADERS_CHECK is not set -+# CONFIG_DEBUG_KERNEL is not set -+CONFIG_DEBUG_BUGVERBOSE=y -+CONFIG_DEBUG_MEMORY_INIT=y -+CONFIG_FRAME_POINTER=y -+# CONFIG_RCU_CPU_STALL_DETECTOR is not set -+# CONFIG_LATENCYTOP is not set -+# CONFIG_SYSCTL_SYSCALL_CHECK is not set -+CONFIG_HAVE_FUNCTION_TRACER=y -+CONFIG_TRACING_SUPPORT=y -+# CONFIG_FTRACE is not set -+# CONFIG_SAMPLES is not set -+CONFIG_HAVE_ARCH_KGDB=y -+# CONFIG_ARM_UNWIND is not set -+# CONFIG_DEBUG_USER is not set -+CONFIG_DEBUG_S3C_UART=2 -+ -+# -+# Security options -+# -+# CONFIG_KEYS is not set -+# CONFIG_SECURITY is not set -+# CONFIG_SECURITYFS is not set -+# CONFIG_SECURITY_FILE_CAPABILITIES is not set -+CONFIG_CRYPTO=y -+ -+# -+# Crypto core or helper -+# -+CONFIG_CRYPTO_ALGAPI=y -+CONFIG_CRYPTO_ALGAPI2=y -+CONFIG_CRYPTO_AEAD=m -+CONFIG_CRYPTO_AEAD2=y -+CONFIG_CRYPTO_BLKCIPHER=m -+CONFIG_CRYPTO_BLKCIPHER2=y -+CONFIG_CRYPTO_HASH=y -+CONFIG_CRYPTO_HASH2=y -+CONFIG_CRYPTO_RNG2=y -+CONFIG_CRYPTO_PCOMP=y -+CONFIG_CRYPTO_MANAGER=m -+CONFIG_CRYPTO_MANAGER2=y -+CONFIG_CRYPTO_GF128MUL=m -+CONFIG_CRYPTO_NULL=m -+CONFIG_CRYPTO_WORKQUEUE=y -+# CONFIG_CRYPTO_CRYPTD is not set -+CONFIG_CRYPTO_AUTHENC=m -+CONFIG_CRYPTO_TEST=m -+ -+# -+# Authenticated Encryption with Associated Data -+# -+# CONFIG_CRYPTO_CCM is not set -+# CONFIG_CRYPTO_GCM is not set -+# CONFIG_CRYPTO_SEQIV is not set -+ -+# -+# Block modes -+# -+CONFIG_CRYPTO_CBC=m -+# CONFIG_CRYPTO_CTR is not set -+# CONFIG_CRYPTO_CTS is not set -+CONFIG_CRYPTO_ECB=m -+CONFIG_CRYPTO_LRW=m -+CONFIG_CRYPTO_PCBC=m -+# CONFIG_CRYPTO_XTS is not set -+ -+# -+# Hash modes -+# -+CONFIG_CRYPTO_HMAC=m -+CONFIG_CRYPTO_XCBC=m -+# CONFIG_CRYPTO_VMAC is not set -+ -+# -+# Digest -+# -+CONFIG_CRYPTO_CRC32C=m -+# CONFIG_CRYPTO_GHASH is not set -+CONFIG_CRYPTO_MD4=m -+CONFIG_CRYPTO_MD5=y -+CONFIG_CRYPTO_MICHAEL_MIC=m -+# CONFIG_CRYPTO_RMD128 is not set -+# CONFIG_CRYPTO_RMD160 is not set -+# CONFIG_CRYPTO_RMD256 is not set -+# CONFIG_CRYPTO_RMD320 is not set -+CONFIG_CRYPTO_SHA1=m -+CONFIG_CRYPTO_SHA256=m -+CONFIG_CRYPTO_SHA512=m -+CONFIG_CRYPTO_TGR192=m -+CONFIG_CRYPTO_WP512=m -+ -+# -+# Ciphers -+# -+# CONFIG_CRYPTO_AES is not set -+CONFIG_CRYPTO_ANUBIS=m -+CONFIG_CRYPTO_ARC4=m -+CONFIG_CRYPTO_BLOWFISH=m -+CONFIG_CRYPTO_CAMELLIA=m -+CONFIG_CRYPTO_CAST5=m -+CONFIG_CRYPTO_CAST6=m -+CONFIG_CRYPTO_DES=m -+CONFIG_CRYPTO_FCRYPT=m -+CONFIG_CRYPTO_KHAZAD=m -+# CONFIG_CRYPTO_SALSA20 is not set -+# CONFIG_CRYPTO_SEED is not set -+CONFIG_CRYPTO_SERPENT=m -+CONFIG_CRYPTO_TEA=m -+CONFIG_CRYPTO_TWOFISH=m -+CONFIG_CRYPTO_TWOFISH_COMMON=m -+ -+# -+# Compression -+# -+CONFIG_CRYPTO_DEFLATE=m -+CONFIG_CRYPTO_ZLIB=y -+# CONFIG_CRYPTO_LZO is not set -+ -+# -+# Random Number Generation -+# -+# CONFIG_CRYPTO_ANSI_CPRNG is not set -+# CONFIG_CRYPTO_HW is not set -+# CONFIG_BINARY_PRINTF is not set -+ -+# -+# Library routines -+# -+CONFIG_BITREVERSE=y -+CONFIG_GENERIC_FIND_LAST_BIT=y -+CONFIG_CRC_CCITT=y -+CONFIG_CRC16=y -+CONFIG_CRC_T10DIF=y -+CONFIG_CRC_ITU_T=y -+CONFIG_CRC32=y -+CONFIG_CRC7=y -+CONFIG_LIBCRC32C=m -+CONFIG_ZLIB_INFLATE=y -+CONFIG_ZLIB_DEFLATE=y -+CONFIG_DECOMPRESS_GZIP=y -+CONFIG_DECOMPRESS_BZIP2=y -+CONFIG_DECOMPRESS_LZMA=y -+CONFIG_TEXTSEARCH=y -+CONFIG_TEXTSEARCH_KMP=m -+CONFIG_TEXTSEARCH_BM=m -+CONFIG_TEXTSEARCH_FSM=m -+CONFIG_HAS_IOMEM=y -+CONFIG_HAS_DMA=y -+CONFIG_NLATTR=y --- -1.7.0.4 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0022-gta02_drm_defconfig.patch b/recipes/linux/linux-openmoko-2.6.32/0022-gta02_drm_defconfig.patch deleted file mode 100644 index e722077f78..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0022-gta02_drm_defconfig.patch +++ /dev/null @@ -1,2169 +0,0 @@ -From 91e56b8866d0cced4f17251eb509bd212dbd00f4 Mon Sep 17 00:00:00 2001 -From: Martin Jansa <Martin.Jansa@gmail.com> -Date: Fri, 9 Apr 2010 09:25:52 +0200 -Subject: [PATCH] gta02_drm_defconfig - -config used in SHR-U, KMS enabled ---- - arch/arm/configs/gta02_drm_defconfig | 2149 ++++++++++++++++++++++++++++++++++ - 1 files changed, 2149 insertions(+), 0 deletions(-) - create mode 100644 arch/arm/configs/gta02_drm_defconfig - -diff --git a/arch/arm/configs/gta02_drm_defconfig b/arch/arm/configs/gta02_drm_defconfig -new file mode 100644 -index 0000000..05aa130 ---- /dev/null -+++ b/arch/arm/configs/gta02_drm_defconfig -@@ -0,0 +1,2149 @@ -+# -+# Automatically generated make config: don't edit -+# Linux kernel version: 2.6.32.11 -+# Sun Apr 11 14:20:07 2010 -+# -+CONFIG_ARM=y -+CONFIG_HAVE_PWM=y -+CONFIG_SYS_SUPPORTS_APM_EMULATION=y -+CONFIG_GENERIC_GPIO=y -+CONFIG_NO_IOPORT=y -+CONFIG_GENERIC_HARDIRQS=y -+CONFIG_STACKTRACE_SUPPORT=y -+CONFIG_HAVE_LATENCYTOP_SUPPORT=y -+CONFIG_LOCKDEP_SUPPORT=y -+CONFIG_TRACE_IRQFLAGS_SUPPORT=y -+CONFIG_HARDIRQS_SW_RESEND=y -+CONFIG_GENERIC_IRQ_PROBE=y -+CONFIG_RWSEM_GENERIC_SPINLOCK=y -+CONFIG_ARCH_HAS_CPUFREQ=y -+CONFIG_GENERIC_HWEIGHT=y -+CONFIG_GENERIC_CALIBRATE_DELAY=y -+CONFIG_FIQ=y -+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -+CONFIG_VECTORS_BASE=0xffff0000 -+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -+CONFIG_CONSTRUCTORS=y -+ -+# -+# General setup -+# -+CONFIG_EXPERIMENTAL=y -+CONFIG_BROKEN_ON_SMP=y -+CONFIG_LOCK_KERNEL=y -+CONFIG_INIT_ENV_ARG_LIMIT=32 -+CONFIG_LOCALVERSION="" -+# CONFIG_LOCALVERSION_AUTO is not set -+CONFIG_SWAP=y -+CONFIG_SYSVIPC=y -+CONFIG_SYSVIPC_SYSCTL=y -+# CONFIG_POSIX_MQUEUE is not set -+# CONFIG_BSD_PROCESS_ACCT is not set -+# CONFIG_TASKSTATS is not set -+# CONFIG_AUDIT is not set -+ -+# -+# RCU Subsystem -+# -+CONFIG_TREE_RCU=y -+# CONFIG_TREE_PREEMPT_RCU is not set -+# CONFIG_RCU_TRACE is not set -+CONFIG_RCU_FANOUT=32 -+# CONFIG_RCU_FANOUT_EXACT is not set -+# CONFIG_TREE_RCU_TRACE is not set -+CONFIG_IKCONFIG=m -+CONFIG_IKCONFIG_PROC=y -+CONFIG_LOG_BUF_SHIFT=18 -+# CONFIG_GROUP_SCHED is not set -+# CONFIG_CGROUPS is not set -+# CONFIG_SYSFS_DEPRECATED_V2 is not set -+# CONFIG_RELAY is not set -+CONFIG_NAMESPACES=y -+# CONFIG_UTS_NS is not set -+# CONFIG_IPC_NS is not set -+# CONFIG_USER_NS is not set -+# CONFIG_PID_NS is not set -+# CONFIG_NET_NS is not set -+CONFIG_BLK_DEV_INITRD=y -+CONFIG_INITRAMFS_SOURCE="" -+CONFIG_RD_GZIP=y -+CONFIG_RD_BZIP2=y -+CONFIG_RD_LZMA=y -+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -+CONFIG_SYSCTL=y -+CONFIG_ANON_INODES=y -+# CONFIG_EMBEDDED is not set -+CONFIG_UID16=y -+CONFIG_SYSCTL_SYSCALL=y -+CONFIG_KALLSYMS=y -+CONFIG_KALLSYMS_ALL=y -+# CONFIG_KALLSYMS_EXTRA_PASS is not set -+CONFIG_HOTPLUG=y -+CONFIG_PRINTK=y -+CONFIG_BUG=y -+CONFIG_ELF_CORE=y -+CONFIG_BASE_FULL=y -+CONFIG_FUTEX=y -+CONFIG_EPOLL=y -+CONFIG_SIGNALFD=y -+CONFIG_TIMERFD=y -+CONFIG_EVENTFD=y -+CONFIG_SHMEM=y -+CONFIG_AIO=y -+ -+# -+# Kernel Performance Events And Counters -+# -+CONFIG_VM_EVENT_COUNTERS=y -+CONFIG_COMPAT_BRK=y -+CONFIG_SLAB=y -+# CONFIG_SLUB is not set -+# CONFIG_SLOB is not set -+# CONFIG_PROFILING is not set -+CONFIG_HAVE_OPROFILE=y -+# CONFIG_KPROBES is not set -+CONFIG_HAVE_KPROBES=y -+CONFIG_HAVE_KRETPROBES=y -+CONFIG_HAVE_CLK=y -+ -+# -+# GCOV-based kernel profiling -+# -+# CONFIG_GCOV_KERNEL is not set -+CONFIG_SLOW_WORK=y -+# CONFIG_SLOW_WORK_DEBUG is not set -+CONFIG_HAVE_GENERIC_DMA_COHERENT=y -+CONFIG_SLABINFO=y -+CONFIG_RT_MUTEXES=y -+CONFIG_BASE_SMALL=0 -+CONFIG_MODULES=y -+# CONFIG_MODULE_FORCE_LOAD is not set -+CONFIG_MODULE_UNLOAD=y -+CONFIG_MODULE_FORCE_UNLOAD=y -+# CONFIG_MODVERSIONS is not set -+# CONFIG_MODULE_SRCVERSION_ALL is not set -+CONFIG_BLOCK=y -+# CONFIG_LBDAF is not set -+CONFIG_BLK_DEV_BSG=y -+# CONFIG_BLK_DEV_INTEGRITY is not set -+ -+# -+# IO Schedulers -+# -+CONFIG_IOSCHED_NOOP=y -+CONFIG_IOSCHED_AS=m -+CONFIG_IOSCHED_DEADLINE=y -+CONFIG_IOSCHED_CFQ=m -+# CONFIG_DEFAULT_AS is not set -+CONFIG_DEFAULT_DEADLINE=y -+# CONFIG_DEFAULT_CFQ is not set -+# CONFIG_DEFAULT_NOOP is not set -+CONFIG_DEFAULT_IOSCHED="deadline" -+CONFIG_FREEZER=y -+ -+# -+# System Type -+# -+CONFIG_MMU=y -+# CONFIG_ARCH_AAEC2000 is not set -+# CONFIG_ARCH_INTEGRATOR is not set -+# CONFIG_ARCH_REALVIEW is not set -+# CONFIG_ARCH_VERSATILE is not set -+# CONFIG_ARCH_AT91 is not set -+# CONFIG_ARCH_CLPS711X is not set -+# CONFIG_ARCH_GEMINI is not set -+# CONFIG_ARCH_EBSA110 is not set -+# CONFIG_ARCH_EP93XX is not set -+# CONFIG_ARCH_FOOTBRIDGE is not set -+# CONFIG_ARCH_MXC is not set -+# CONFIG_ARCH_STMP3XXX is not set -+# CONFIG_ARCH_NETX is not set -+# CONFIG_ARCH_H720X is not set -+# CONFIG_ARCH_NOMADIK is not set -+# CONFIG_ARCH_IOP13XX is not set -+# CONFIG_ARCH_IOP32X is not set -+# CONFIG_ARCH_IOP33X is not set -+# CONFIG_ARCH_IXP23XX is not set -+# CONFIG_ARCH_IXP2000 is not set -+# CONFIG_ARCH_IXP4XX is not set -+# CONFIG_ARCH_L7200 is not set -+# CONFIG_ARCH_KIRKWOOD is not set -+# CONFIG_ARCH_LOKI is not set -+# CONFIG_ARCH_MV78XX0 is not set -+# CONFIG_ARCH_ORION5X is not set -+# CONFIG_ARCH_MMP is not set -+# CONFIG_ARCH_KS8695 is not set -+# CONFIG_ARCH_NS9XXX is not set -+# CONFIG_ARCH_W90X900 is not set -+# CONFIG_ARCH_PNX4008 is not set -+# CONFIG_ARCH_PXA is not set -+# CONFIG_ARCH_MSM is not set -+# CONFIG_ARCH_RPC is not set -+# CONFIG_ARCH_SA1100 is not set -+CONFIG_ARCH_S3C2410=y -+# CONFIG_ARCH_S3C64XX is not set -+# CONFIG_ARCH_S5PC1XX is not set -+# CONFIG_ARCH_SHARK is not set -+# CONFIG_ARCH_LH7A40X is not set -+# CONFIG_ARCH_U300 is not set -+# CONFIG_ARCH_DAVINCI is not set -+# CONFIG_ARCH_OMAP is not set -+# CONFIG_ARCH_BCMRING is not set -+CONFIG_PLAT_S3C24XX=y -+CONFIG_S3C2410_CLOCK=y -+CONFIG_CPU_S3C244X=y -+CONFIG_S3C24XX_PWM=y -+CONFIG_S3C24XX_GPIO_EXTRA=64 -+CONFIG_S3C24XX_GPIO_EXTRA64=y -+CONFIG_S3C2410_DMA=y -+# CONFIG_S3C2410_DMA_DEBUG is not set -+CONFIG_S3C24XX_ADC=y -+CONFIG_PLAT_S3C=y -+CONFIG_CPU_LLSERIAL_S3C2440_ONLY=y -+CONFIG_CPU_LLSERIAL_S3C2440=y -+ -+# -+# Boot options -+# -+CONFIG_S3C_BOOT_WATCHDOG=y -+CONFIG_S3C_BOOT_ERROR_RESET=y -+CONFIG_S3C_BOOT_UART_FORCE_FIFO=y -+ -+# -+# Power management -+# -+# CONFIG_S3C2410_PM_DEBUG is not set -+# CONFIG_S3C2410_PM_CHECK is not set -+CONFIG_S3C_LOWLEVEL_UART_PORT=2 -+CONFIG_S3C_GPIO_SPACE=0 -+CONFIG_S3C_DMA=y -+CONFIG_S3C_DEV_USB_HOST=y -+CONFIG_S3C_DEV_NAND=y -+ -+# -+# S3C2400 Machines -+# -+CONFIG_CPU_S3C2410_DMA=y -+CONFIG_S3C2410_PM=y -+CONFIG_S3C2410_GPIO=y -+ -+# -+# S3C2410 Machines -+# -+# CONFIG_ARCH_SMDK2410 is not set -+# CONFIG_ARCH_H1940 is not set -+# CONFIG_MACH_N30 is not set -+# CONFIG_ARCH_BAST is not set -+# CONFIG_MACH_OTOM is not set -+# CONFIG_MACH_AML_M5900 is not set -+# CONFIG_MACH_TCT_HAMMER is not set -+# CONFIG_MACH_VR1000 is not set -+# CONFIG_MACH_QT2410 is not set -+ -+# -+# S3C2412 Machines -+# -+# CONFIG_MACH_JIVE is not set -+# CONFIG_MACH_SMDK2413 is not set -+# CONFIG_MACH_SMDK2412 is not set -+# CONFIG_MACH_VSTMS is not set -+ -+# -+# S3C2440 Machines -+# -+# CONFIG_MACH_ANUBIS is not set -+# CONFIG_MACH_OSIRIS is not set -+# CONFIG_MACH_RX3715 is not set -+# CONFIG_ARCH_S3C2440 is not set -+# CONFIG_MACH_NEXCODER_2440 is not set -+# CONFIG_MACH_AT2440EVB is not set -+# CONFIG_MACH_MINI2440 is not set -+CONFIG_CPU_S3C2442=y -+ -+# -+# S3C2442 Machines -+# -+CONFIG_MACH_NEO1973_GTA02=y -+ -+# -+# S3C2443 Machines -+# -+# CONFIG_MACH_SMDK2443 is not set -+ -+# -+# Processor Type -+# -+CONFIG_CPU_32=y -+CONFIG_CPU_ARM920T=y -+CONFIG_CPU_32v4T=y -+CONFIG_CPU_ABRT_EV4T=y -+CONFIG_CPU_PABRT_LEGACY=y -+CONFIG_CPU_CACHE_V4WT=y -+CONFIG_CPU_CACHE_VIVT=y -+CONFIG_CPU_COPY_V4WB=y -+CONFIG_CPU_TLB_V4WBI=y -+CONFIG_CPU_CP15=y -+CONFIG_CPU_CP15_MMU=y -+ -+# -+# Processor Features -+# -+CONFIG_ARM_THUMB=y -+# CONFIG_CPU_ICACHE_DISABLE is not set -+# CONFIG_CPU_DCACHE_DISABLE is not set -+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set -+CONFIG_ARM_L1_CACHE_SHIFT=5 -+ -+# -+# Bus support -+# -+# CONFIG_PCI_SYSCALL is not set -+# CONFIG_ARCH_SUPPORTS_MSI is not set -+# CONFIG_PCCARD is not set -+ -+# -+# Kernel Features -+# -+CONFIG_VMSPLIT_3G=y -+# CONFIG_VMSPLIT_2G is not set -+# CONFIG_VMSPLIT_1G is not set -+CONFIG_PAGE_OFFSET=0xC0000000 -+# CONFIG_PREEMPT_NONE is not set -+# CONFIG_PREEMPT_VOLUNTARY is not set -+CONFIG_PREEMPT=y -+CONFIG_HZ=200 -+CONFIG_AEABI=y -+# CONFIG_OABI_COMPAT is not set -+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set -+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set -+# CONFIG_HIGHMEM is not set -+CONFIG_SELECT_MEMORY_MODEL=y -+CONFIG_FLATMEM_MANUAL=y -+# CONFIG_DISCONTIGMEM_MANUAL is not set -+# CONFIG_SPARSEMEM_MANUAL is not set -+CONFIG_FLATMEM=y -+CONFIG_FLAT_NODE_MEM_MAP=y -+CONFIG_PAGEFLAGS_EXTENDED=y -+CONFIG_SPLIT_PTLOCK_CPUS=4096 -+# CONFIG_PHYS_ADDR_T_64BIT is not set -+CONFIG_ZONE_DMA_FLAG=0 -+CONFIG_VIRT_TO_BUS=y -+CONFIG_HAVE_MLOCK=y -+CONFIG_HAVE_MLOCKED_PAGE_BIT=y -+# CONFIG_KSM is not set -+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -+CONFIG_ALIGNMENT_TRAP=y -+# CONFIG_UACCESS_WITH_MEMCPY is not set -+ -+# -+# Boot options -+# -+CONFIG_ZBOOT_ROM_TEXT=0x0 -+CONFIG_ZBOOT_ROM_BSS=0x0 -+CONFIG_CMDLINE="unused -- bootloader passes ATAG list quiet " -+# CONFIG_XIP_KERNEL is not set -+# CONFIG_KEXEC is not set -+ -+# -+# CPU Power Management -+# -+# CONFIG_CPU_FREQ is not set -+CONFIG_CPU_IDLE=y -+CONFIG_CPU_IDLE_GOV_LADDER=y -+ -+# -+# Floating point emulation -+# -+ -+# -+# At least one emulation must be selected -+# -+ -+# -+# Userspace binary formats -+# -+CONFIG_BINFMT_ELF=y -+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -+CONFIG_HAVE_AOUT=y -+# CONFIG_BINFMT_AOUT is not set -+# CONFIG_BINFMT_MISC is not set -+ -+# -+# Power management options -+# -+CONFIG_PM=y -+# CONFIG_PM_DEBUG is not set -+CONFIG_PM_SLEEP=y -+CONFIG_SUSPEND=y -+CONFIG_SUSPEND_FREEZER=y -+# CONFIG_APM_EMULATION is not set -+# CONFIG_PM_RUNTIME is not set -+CONFIG_ARCH_SUSPEND_POSSIBLE=y -+CONFIG_NET=y -+ -+# -+# Networking options -+# -+CONFIG_PACKET=y -+CONFIG_PACKET_MMAP=y -+CONFIG_UNIX=y -+CONFIG_XFRM=y -+CONFIG_XFRM_USER=m -+# CONFIG_XFRM_SUB_POLICY is not set -+CONFIG_XFRM_MIGRATE=y -+# CONFIG_XFRM_STATISTICS is not set -+CONFIG_XFRM_IPCOMP=m -+CONFIG_NET_KEY=m -+CONFIG_NET_KEY_MIGRATE=y -+CONFIG_INET=y -+CONFIG_IP_MULTICAST=y -+CONFIG_IP_ADVANCED_ROUTER=y -+CONFIG_ASK_IP_FIB_HASH=y -+# CONFIG_IP_FIB_TRIE is not set -+CONFIG_IP_FIB_HASH=y -+CONFIG_IP_MULTIPLE_TABLES=y -+# CONFIG_IP_ROUTE_MULTIPATH is not set -+# CONFIG_IP_ROUTE_VERBOSE is not set -+CONFIG_IP_PNP=y -+# CONFIG_IP_PNP_DHCP is not set -+# CONFIG_IP_PNP_BOOTP is not set -+# CONFIG_IP_PNP_RARP is not set -+CONFIG_NET_IPIP=m -+CONFIG_NET_IPGRE=m -+# CONFIG_NET_IPGRE_BROADCAST is not set -+CONFIG_IP_MROUTE=y -+# CONFIG_IP_PIMSM_V1 is not set -+# CONFIG_IP_PIMSM_V2 is not set -+# CONFIG_ARPD is not set -+CONFIG_SYN_COOKIES=y -+CONFIG_INET_AH=m -+CONFIG_INET_ESP=m -+CONFIG_INET_IPCOMP=m -+CONFIG_INET_XFRM_TUNNEL=m -+CONFIG_INET_TUNNEL=m -+CONFIG_INET_XFRM_MODE_TRANSPORT=m -+CONFIG_INET_XFRM_MODE_TUNNEL=m -+CONFIG_INET_XFRM_MODE_BEET=m -+# CONFIG_INET_LRO is not set -+CONFIG_INET_DIAG=y -+CONFIG_INET_TCP_DIAG=y -+CONFIG_TCP_CONG_ADVANCED=y -+# CONFIG_TCP_CONG_BIC is not set -+# CONFIG_TCP_CONG_CUBIC is not set -+CONFIG_TCP_CONG_WESTWOOD=y -+# CONFIG_TCP_CONG_HTCP is not set -+# CONFIG_TCP_CONG_HSTCP is not set -+# CONFIG_TCP_CONG_HYBLA is not set -+# CONFIG_TCP_CONG_VEGAS is not set -+# CONFIG_TCP_CONG_SCALABLE is not set -+# CONFIG_TCP_CONG_LP is not set -+# CONFIG_TCP_CONG_VENO is not set -+# CONFIG_TCP_CONG_YEAH is not set -+# CONFIG_TCP_CONG_ILLINOIS is not set -+# CONFIG_DEFAULT_BIC is not set -+# CONFIG_DEFAULT_CUBIC is not set -+# CONFIG_DEFAULT_HTCP is not set -+# CONFIG_DEFAULT_VEGAS is not set -+CONFIG_DEFAULT_WESTWOOD=y -+# CONFIG_DEFAULT_RENO is not set -+CONFIG_DEFAULT_TCP_CONG="westwood" -+CONFIG_TCP_MD5SIG=y -+CONFIG_IPV6=m -+# CONFIG_IPV6_PRIVACY is not set -+# CONFIG_IPV6_ROUTER_PREF is not set -+# CONFIG_IPV6_OPTIMISTIC_DAD is not set -+CONFIG_INET6_AH=m -+CONFIG_INET6_ESP=m -+CONFIG_INET6_IPCOMP=m -+# CONFIG_IPV6_MIP6 is not set -+CONFIG_INET6_XFRM_TUNNEL=m -+CONFIG_INET6_TUNNEL=m -+CONFIG_INET6_XFRM_MODE_TRANSPORT=m -+CONFIG_INET6_XFRM_MODE_TUNNEL=m -+CONFIG_INET6_XFRM_MODE_BEET=m -+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set -+CONFIG_IPV6_SIT=m -+CONFIG_IPV6_NDISC_NODETYPE=y -+CONFIG_IPV6_TUNNEL=m -+# CONFIG_IPV6_MULTIPLE_TABLES is not set -+# CONFIG_IPV6_MROUTE is not set -+# CONFIG_NETWORK_SECMARK is not set -+CONFIG_NETFILTER=y -+# CONFIG_NETFILTER_DEBUG is not set -+CONFIG_NETFILTER_ADVANCED=y -+CONFIG_BRIDGE_NETFILTER=y -+ -+# -+# Core Netfilter Configuration -+# -+CONFIG_NETFILTER_NETLINK=m -+CONFIG_NETFILTER_NETLINK_QUEUE=m -+CONFIG_NETFILTER_NETLINK_LOG=m -+CONFIG_NF_CONNTRACK=m -+CONFIG_NF_CT_ACCT=y -+CONFIG_NF_CONNTRACK_MARK=y -+# CONFIG_NF_CONNTRACK_EVENTS is not set -+# CONFIG_NF_CT_PROTO_DCCP is not set -+CONFIG_NF_CT_PROTO_GRE=m -+CONFIG_NF_CT_PROTO_SCTP=m -+# CONFIG_NF_CT_PROTO_UDPLITE is not set -+# CONFIG_NF_CONNTRACK_AMANDA is not set -+CONFIG_NF_CONNTRACK_FTP=m -+CONFIG_NF_CONNTRACK_H323=m -+CONFIG_NF_CONNTRACK_IRC=m -+CONFIG_NF_CONNTRACK_NETBIOS_NS=m -+CONFIG_NF_CONNTRACK_PPTP=m -+CONFIG_NF_CONNTRACK_SANE=m -+CONFIG_NF_CONNTRACK_SIP=m -+CONFIG_NF_CONNTRACK_TFTP=m -+CONFIG_NF_CT_NETLINK=m -+# CONFIG_NETFILTER_TPROXY is not set -+CONFIG_NETFILTER_XTABLES=m -+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -+CONFIG_NETFILTER_XT_TARGET_DSCP=m -+CONFIG_NETFILTER_XT_TARGET_HL=m -+# CONFIG_NETFILTER_XT_TARGET_LED is not set -+CONFIG_NETFILTER_XT_TARGET_MARK=m -+CONFIG_NETFILTER_XT_TARGET_NFLOG=m -+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -+# CONFIG_NETFILTER_XT_TARGET_TRACE is not set -+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set -+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set -+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set -+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set -+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -+CONFIG_NETFILTER_XT_MATCH_DCCP=m -+CONFIG_NETFILTER_XT_MATCH_DSCP=m -+CONFIG_NETFILTER_XT_MATCH_ESP=m -+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m -+CONFIG_NETFILTER_XT_MATCH_HELPER=m -+CONFIG_NETFILTER_XT_MATCH_HL=m -+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -+CONFIG_NETFILTER_XT_MATCH_LENGTH=m -+CONFIG_NETFILTER_XT_MATCH_LIMIT=m -+CONFIG_NETFILTER_XT_MATCH_MAC=m -+CONFIG_NETFILTER_XT_MATCH_MARK=m -+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set -+CONFIG_NETFILTER_XT_MATCH_POLICY=m -+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m -+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -+CONFIG_NETFILTER_XT_MATCH_QUOTA=m -+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set -+CONFIG_NETFILTER_XT_MATCH_REALM=m -+CONFIG_NETFILTER_XT_MATCH_RECENT=m -+# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set -+CONFIG_NETFILTER_XT_MATCH_SCTP=m -+CONFIG_NETFILTER_XT_MATCH_STATE=m -+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -+CONFIG_NETFILTER_XT_MATCH_STRING=m -+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -+CONFIG_NETFILTER_XT_MATCH_TIME=m -+# CONFIG_NETFILTER_XT_MATCH_U32 is not set -+# CONFIG_NETFILTER_XT_MATCH_OSF is not set -+# CONFIG_IP_VS is not set -+ -+# -+# IP: Netfilter Configuration -+# -+CONFIG_NF_DEFRAG_IPV4=m -+CONFIG_NF_CONNTRACK_IPV4=m -+CONFIG_NF_CONNTRACK_PROC_COMPAT=y -+# CONFIG_IP_NF_QUEUE is not set -+CONFIG_IP_NF_IPTABLES=m -+CONFIG_IP_NF_MATCH_ADDRTYPE=m -+CONFIG_IP_NF_MATCH_AH=m -+CONFIG_IP_NF_MATCH_ECN=m -+CONFIG_IP_NF_MATCH_TTL=m -+CONFIG_IP_NF_FILTER=m -+CONFIG_IP_NF_TARGET_REJECT=m -+CONFIG_IP_NF_TARGET_LOG=m -+CONFIG_IP_NF_TARGET_ULOG=m -+CONFIG_NF_NAT=m -+CONFIG_NF_NAT_NEEDED=y -+CONFIG_IP_NF_TARGET_MASQUERADE=m -+CONFIG_IP_NF_TARGET_NETMAP=m -+CONFIG_IP_NF_TARGET_REDIRECT=m -+CONFIG_NF_NAT_SNMP_BASIC=m -+CONFIG_NF_NAT_PROTO_GRE=m -+CONFIG_NF_NAT_PROTO_SCTP=m -+CONFIG_NF_NAT_FTP=m -+CONFIG_NF_NAT_IRC=m -+CONFIG_NF_NAT_TFTP=m -+# CONFIG_NF_NAT_AMANDA is not set -+CONFIG_NF_NAT_PPTP=m -+CONFIG_NF_NAT_H323=m -+CONFIG_NF_NAT_SIP=m -+CONFIG_IP_NF_MANGLE=m -+CONFIG_IP_NF_TARGET_CLUSTERIP=m -+CONFIG_IP_NF_TARGET_ECN=m -+CONFIG_IP_NF_TARGET_TTL=m -+CONFIG_IP_NF_RAW=m -+# CONFIG_IP_NF_ARPTABLES is not set -+ -+# -+# IPv6: Netfilter Configuration -+# -+CONFIG_NF_CONNTRACK_IPV6=m -+# CONFIG_IP6_NF_QUEUE is not set -+CONFIG_IP6_NF_IPTABLES=m -+CONFIG_IP6_NF_MATCH_AH=m -+CONFIG_IP6_NF_MATCH_EUI64=m -+CONFIG_IP6_NF_MATCH_FRAG=m -+CONFIG_IP6_NF_MATCH_OPTS=m -+CONFIG_IP6_NF_MATCH_HL=m -+CONFIG_IP6_NF_MATCH_IPV6HEADER=m -+CONFIG_IP6_NF_MATCH_MH=m -+CONFIG_IP6_NF_MATCH_RT=m -+CONFIG_IP6_NF_TARGET_HL=m -+CONFIG_IP6_NF_TARGET_LOG=m -+CONFIG_IP6_NF_FILTER=m -+CONFIG_IP6_NF_TARGET_REJECT=m -+CONFIG_IP6_NF_MANGLE=m -+# CONFIG_IP6_NF_RAW is not set -+CONFIG_BRIDGE_NF_EBTABLES=m -+CONFIG_BRIDGE_EBT_BROUTE=m -+CONFIG_BRIDGE_EBT_T_FILTER=m -+CONFIG_BRIDGE_EBT_T_NAT=m -+CONFIG_BRIDGE_EBT_802_3=m -+CONFIG_BRIDGE_EBT_AMONG=m -+CONFIG_BRIDGE_EBT_ARP=m -+CONFIG_BRIDGE_EBT_IP=m -+# CONFIG_BRIDGE_EBT_IP6 is not set -+CONFIG_BRIDGE_EBT_LIMIT=m -+CONFIG_BRIDGE_EBT_MARK=m -+CONFIG_BRIDGE_EBT_PKTTYPE=m -+CONFIG_BRIDGE_EBT_STP=m -+CONFIG_BRIDGE_EBT_VLAN=m -+CONFIG_BRIDGE_EBT_ARPREPLY=m -+CONFIG_BRIDGE_EBT_DNAT=m -+CONFIG_BRIDGE_EBT_MARK_T=m -+CONFIG_BRIDGE_EBT_REDIRECT=m -+CONFIG_BRIDGE_EBT_SNAT=m -+CONFIG_BRIDGE_EBT_LOG=m -+CONFIG_BRIDGE_EBT_ULOG=m -+# CONFIG_BRIDGE_EBT_NFLOG is not set -+# CONFIG_IP_DCCP is not set -+# CONFIG_IP_SCTP is not set -+# CONFIG_RDS is not set -+# CONFIG_TIPC is not set -+# CONFIG_ATM is not set -+CONFIG_STP=y -+CONFIG_BRIDGE=y -+# CONFIG_NET_DSA is not set -+# CONFIG_VLAN_8021Q is not set -+# CONFIG_DECNET is not set -+CONFIG_LLC=y -+# CONFIG_LLC2 is not set -+# CONFIG_IPX is not set -+# CONFIG_ATALK is not set -+# CONFIG_X25 is not set -+# CONFIG_LAPB is not set -+# CONFIG_ECONET is not set -+# CONFIG_WAN_ROUTER is not set -+# CONFIG_PHONET is not set -+# CONFIG_IEEE802154 is not set -+CONFIG_NET_SCHED=y -+ -+# -+# Queueing/Scheduling -+# -+CONFIG_NET_SCH_CBQ=m -+CONFIG_NET_SCH_HTB=m -+CONFIG_NET_SCH_HFSC=m -+CONFIG_NET_SCH_PRIO=m -+# CONFIG_NET_SCH_MULTIQ is not set -+CONFIG_NET_SCH_RED=m -+CONFIG_NET_SCH_SFQ=m -+CONFIG_NET_SCH_TEQL=m -+CONFIG_NET_SCH_TBF=m -+CONFIG_NET_SCH_GRED=m -+CONFIG_NET_SCH_DSMARK=m -+CONFIG_NET_SCH_NETEM=m -+# CONFIG_NET_SCH_DRR is not set -+ -+# -+# Classification -+# -+CONFIG_NET_CLS=y -+CONFIG_NET_CLS_BASIC=m -+CONFIG_NET_CLS_TCINDEX=m -+CONFIG_NET_CLS_ROUTE4=m -+CONFIG_NET_CLS_ROUTE=y -+CONFIG_NET_CLS_FW=m -+CONFIG_NET_CLS_U32=m -+CONFIG_CLS_U32_PERF=y -+CONFIG_CLS_U32_MARK=y -+CONFIG_NET_CLS_RSVP=m -+CONFIG_NET_CLS_RSVP6=m -+# CONFIG_NET_CLS_FLOW is not set -+# CONFIG_NET_EMATCH is not set -+# CONFIG_NET_CLS_ACT is not set -+# CONFIG_NET_CLS_IND is not set -+CONFIG_NET_SCH_FIFO=y -+# CONFIG_DCB is not set -+ -+# -+# Network testing -+# -+# CONFIG_NET_PKTGEN is not set -+# CONFIG_HAMRADIO is not set -+# CONFIG_CAN is not set -+# CONFIG_IRDA is not set -+CONFIG_BT=y -+CONFIG_BT_L2CAP=y -+CONFIG_BT_SCO=y -+CONFIG_BT_RFCOMM=y -+CONFIG_BT_RFCOMM_TTY=y -+CONFIG_BT_BNEP=y -+CONFIG_BT_BNEP_MC_FILTER=y -+CONFIG_BT_BNEP_PROTO_FILTER=y -+CONFIG_BT_HIDP=y -+ -+# -+# Bluetooth device drivers -+# -+CONFIG_BT_HCIBTUSB=y -+# CONFIG_BT_HCIBTSDIO is not set -+# CONFIG_BT_HCIUART is not set -+# CONFIG_BT_HCIBCM203X is not set -+# CONFIG_BT_HCIBPA10X is not set -+# CONFIG_BT_HCIBFUSB is not set -+# CONFIG_BT_HCIVHCI is not set -+# CONFIG_BT_MRVL is not set -+# CONFIG_AF_RXRPC is not set -+CONFIG_FIB_RULES=y -+CONFIG_WIRELESS=y -+# CONFIG_CFG80211 is not set -+CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -+CONFIG_WIRELESS_OLD_REGULATORY=y -+CONFIG_WIRELESS_EXT=y -+CONFIG_WIRELESS_EXT_SYSFS=y -+# CONFIG_LIB80211 is not set -+ -+# -+# CFG80211 needs to be enabled for MAC80211 -+# -+# CONFIG_WIMAX is not set -+CONFIG_RFKILL=y -+CONFIG_RFKILL_LEDS=y -+CONFIG_RFKILL_INPUT=y -+# CONFIG_NET_9P is not set -+ -+# -+# Device Drivers -+# -+ -+# -+# Generic Driver Options -+# -+CONFIG_UEVENT_HELPER_PATH="" -+CONFIG_DEVTMPFS=y -+CONFIG_DEVTMPFS_MOUNT=y -+CONFIG_STANDALONE=y -+CONFIG_PREVENT_FIRMWARE_BUILD=y -+CONFIG_FW_LOADER=y -+# CONFIG_FIRMWARE_IN_KERNEL is not set -+CONFIG_EXTRA_FIRMWARE="" -+# CONFIG_SYS_HYPERVISOR is not set -+CONFIG_CONNECTOR=m -+CONFIG_MTD=y -+# CONFIG_MTD_DEBUG is not set -+# CONFIG_MTD_TESTS is not set -+CONFIG_MTD_CONCAT=y -+CONFIG_MTD_PARTITIONS=y -+# CONFIG_MTD_REDBOOT_PARTS is not set -+CONFIG_MTD_CMDLINE_PARTS=y -+# CONFIG_MTD_AFS_PARTS is not set -+# CONFIG_MTD_AR7_PARTS is not set -+ -+# -+# User Modules And Translation Layers -+# -+CONFIG_MTD_CHAR=y -+CONFIG_MTD_BLKDEVS=y -+CONFIG_MTD_BLOCK=y -+# CONFIG_FTL is not set -+# CONFIG_NFTL is not set -+# CONFIG_INFTL is not set -+# CONFIG_RFD_FTL is not set -+# CONFIG_SSFDC is not set -+# CONFIG_MTD_OOPS is not set -+ -+# -+# RAM/ROM/Flash chip drivers -+# -+CONFIG_MTD_CFI=y -+# CONFIG_MTD_JEDECPROBE is not set -+CONFIG_MTD_GEN_PROBE=y -+# CONFIG_MTD_CFI_ADV_OPTIONS is not set -+CONFIG_MTD_MAP_BANK_WIDTH_1=y -+CONFIG_MTD_MAP_BANK_WIDTH_2=y -+CONFIG_MTD_MAP_BANK_WIDTH_4=y -+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -+CONFIG_MTD_CFI_I1=y -+CONFIG_MTD_CFI_I2=y -+# CONFIG_MTD_CFI_I4 is not set -+# CONFIG_MTD_CFI_I8 is not set -+CONFIG_MTD_CFI_INTELEXT=y -+# CONFIG_MTD_CFI_AMDSTD is not set -+# CONFIG_MTD_CFI_STAA is not set -+CONFIG_MTD_CFI_UTIL=y -+# CONFIG_MTD_RAM is not set -+CONFIG_MTD_ROM=y -+CONFIG_MTD_ABSENT=y -+ -+# -+# Mapping drivers for chip access -+# -+# CONFIG_MTD_COMPLEX_MAPPINGS is not set -+CONFIG_MTD_PHYSMAP=y -+# CONFIG_MTD_PHYSMAP_COMPAT is not set -+# CONFIG_MTD_ARM_INTEGRATOR is not set -+# CONFIG_MTD_PLATRAM is not set -+ -+# -+# Self-contained MTD device drivers -+# -+# CONFIG_MTD_DATAFLASH is not set -+# CONFIG_MTD_M25P80 is not set -+# CONFIG_MTD_SST25L is not set -+# CONFIG_MTD_SLRAM is not set -+# CONFIG_MTD_PHRAM is not set -+# CONFIG_MTD_MTDRAM is not set -+# CONFIG_MTD_BLOCK2MTD is not set -+ -+# -+# Disk-On-Chip Device Drivers -+# -+# CONFIG_MTD_DOC2000 is not set -+# CONFIG_MTD_DOC2001 is not set -+# CONFIG_MTD_DOC2001PLUS is not set -+CONFIG_MTD_NAND=y -+CONFIG_MTD_NAND_VERIFY_WRITE=y -+# CONFIG_MTD_NAND_ECC_SMC is not set -+# CONFIG_MTD_NAND_MUSEUM_IDS is not set -+# CONFIG_MTD_NAND_GPIO is not set -+CONFIG_MTD_NAND_IDS=y -+CONFIG_MTD_NAND_S3C2410=y -+# CONFIG_MTD_NAND_S3C2410_DEBUG is not set -+CONFIG_MTD_NAND_S3C2410_HWECC=y -+# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set -+# CONFIG_MTD_NAND_DISKONCHIP is not set -+# CONFIG_MTD_NAND_NANDSIM is not set -+# CONFIG_MTD_NAND_PLATFORM is not set -+# CONFIG_MTD_ALAUDA is not set -+# CONFIG_MTD_ONENAND is not set -+ -+# -+# LPDDR flash memory drivers -+# -+# CONFIG_MTD_LPDDR is not set -+ -+# -+# UBI - Unsorted block images -+# -+CONFIG_MTD_UBI=y -+CONFIG_MTD_UBI_WL_THRESHOLD=4096 -+CONFIG_MTD_UBI_BEB_RESERVE=1 -+CONFIG_MTD_UBI_GLUEBI=y -+ -+# -+# UBI debugging options -+# -+CONFIG_MTD_UBI_DEBUG=y -+# CONFIG_MTD_UBI_DEBUG_MSG is not set -+# CONFIG_MTD_UBI_DEBUG_PARANOID is not set -+CONFIG_MTD_UBI_DEBUG_DISABLE_BGT=y -+# CONFIG_MTD_UBI_DEBUG_EMULATE_BITFLIPS is not set -+# CONFIG_MTD_UBI_DEBUG_EMULATE_WRITE_FAILURES is not set -+# CONFIG_MTD_UBI_DEBUG_EMULATE_ERASE_FAILURES is not set -+ -+# -+# Additional UBI debugging messages -+# -+# CONFIG_MTD_UBI_DEBUG_MSG_BLD is not set -+# CONFIG_MTD_UBI_DEBUG_MSG_EBA is not set -+# CONFIG_MTD_UBI_DEBUG_MSG_WL is not set -+# CONFIG_MTD_UBI_DEBUG_MSG_IO is not set -+# CONFIG_PARPORT is not set -+CONFIG_BLK_DEV=y -+# CONFIG_BLK_DEV_COW_COMMON is not set -+CONFIG_BLK_DEV_LOOP=m -+# CONFIG_BLK_DEV_CRYPTOLOOP is not set -+# CONFIG_BLK_DEV_NBD is not set -+CONFIG_BLK_DEV_UB=m -+CONFIG_BLK_DEV_RAM=y -+CONFIG_BLK_DEV_RAM_COUNT=16 -+CONFIG_BLK_DEV_RAM_SIZE=4096 -+# CONFIG_BLK_DEV_XIP is not set -+# CONFIG_CDROM_PKTCDVD is not set -+# CONFIG_ATA_OVER_ETH is not set -+# CONFIG_MG_DISK is not set -+# CONFIG_MISC_DEVICES is not set -+CONFIG_HAVE_IDE=y -+# CONFIG_IDE is not set -+ -+# -+# SCSI device support -+# -+# CONFIG_RAID_ATTRS is not set -+CONFIG_SCSI=m -+CONFIG_SCSI_DMA=y -+# CONFIG_SCSI_TGT is not set -+# CONFIG_SCSI_NETLINK is not set -+CONFIG_SCSI_PROC_FS=y -+ -+# -+# SCSI support type (disk, tape, CD-ROM) -+# -+CONFIG_BLK_DEV_SD=m -+# CONFIG_CHR_DEV_ST is not set -+# CONFIG_CHR_DEV_OSST is not set -+CONFIG_BLK_DEV_SR=m -+# CONFIG_BLK_DEV_SR_VENDOR is not set -+CONFIG_CHR_DEV_SG=m -+# CONFIG_CHR_DEV_SCH is not set -+CONFIG_SCSI_MULTI_LUN=y -+# CONFIG_SCSI_CONSTANTS is not set -+# CONFIG_SCSI_LOGGING is not set -+CONFIG_SCSI_SCAN_ASYNC=y -+CONFIG_SCSI_WAIT_SCAN=m -+ -+# -+# SCSI Transports -+# -+# CONFIG_SCSI_SPI_ATTRS is not set -+# CONFIG_SCSI_FC_ATTRS is not set -+# CONFIG_SCSI_ISCSI_ATTRS is not set -+# CONFIG_SCSI_SAS_ATTRS is not set -+# CONFIG_SCSI_SAS_LIBSAS is not set -+# CONFIG_SCSI_SRP_ATTRS is not set -+CONFIG_SCSI_LOWLEVEL=y -+# CONFIG_ISCSI_TCP is not set -+# CONFIG_LIBFC is not set -+# CONFIG_LIBFCOE is not set -+# CONFIG_SCSI_DEBUG is not set -+# CONFIG_SCSI_DH is not set -+# CONFIG_SCSI_OSD_INITIATOR is not set -+# CONFIG_ATA is not set -+# CONFIG_MD is not set -+CONFIG_NETDEVICES=y -+# CONFIG_DUMMY is not set -+# CONFIG_BONDING is not set -+# CONFIG_MACVLAN is not set -+# CONFIG_EQUALIZER is not set -+CONFIG_TUN=m -+# CONFIG_VETH is not set -+# CONFIG_NET_ETHERNET is not set -+CONFIG_MII=m -+# CONFIG_NETDEV_1000 is not set -+# CONFIG_NETDEV_10000 is not set -+CONFIG_WLAN=y -+# CONFIG_WLAN_PRE80211 is not set -+# CONFIG_WLAN_80211 is not set -+ -+# -+# Enable WiMAX (Networking options) to see the WiMAX drivers -+# -+ -+# -+# USB Network Adapters -+# -+CONFIG_USB_CATC=m -+CONFIG_USB_KAWETH=m -+CONFIG_USB_PEGASUS=m -+CONFIG_USB_RTL8150=m -+CONFIG_USB_USBNET=m -+# CONFIG_USB_NET_AX8817X is not set -+CONFIG_USB_NET_CDCETHER=m -+# CONFIG_USB_NET_CDC_EEM is not set -+# CONFIG_USB_NET_DM9601 is not set -+# CONFIG_USB_NET_SMSC95XX is not set -+# CONFIG_USB_NET_GL620A is not set -+CONFIG_USB_NET_NET1080=m -+# CONFIG_USB_NET_PLUSB is not set -+# CONFIG_USB_NET_MCS7830 is not set -+# CONFIG_USB_NET_RNDIS_HOST is not set -+CONFIG_USB_NET_CDC_SUBSET=m -+# CONFIG_USB_ALI_M5632 is not set -+# CONFIG_USB_AN2720 is not set -+CONFIG_USB_BELKIN=y -+CONFIG_USB_ARMLINUX=y -+# CONFIG_USB_EPSON2888 is not set -+# CONFIG_USB_KC2190 is not set -+CONFIG_USB_NET_ZAURUS=m -+# CONFIG_USB_HSO is not set -+# CONFIG_USB_NET_INT51X1 is not set -+# CONFIG_WAN is not set -+CONFIG_PPP=m -+CONFIG_PPP_MULTILINK=y -+CONFIG_PPP_FILTER=y -+CONFIG_PPP_ASYNC=m -+CONFIG_PPP_SYNC_TTY=m -+CONFIG_PPP_DEFLATE=m -+CONFIG_PPP_BSDCOMP=m -+CONFIG_PPP_MPPE=m -+# CONFIG_PPPOE is not set -+# CONFIG_PPPOL2TP is not set -+# CONFIG_SLIP is not set -+CONFIG_SLHC=m -+# CONFIG_NETCONSOLE is not set -+# CONFIG_NETPOLL is not set -+# CONFIG_NET_POLL_CONTROLLER is not set -+# CONFIG_ISDN is not set -+# CONFIG_PHONE is not set -+ -+# -+# Input device support -+# -+CONFIG_INPUT=y -+# CONFIG_INPUT_FF_MEMLESS is not set -+# CONFIG_INPUT_POLLDEV is not set -+ -+# -+# Userland interfaces -+# -+CONFIG_INPUT_MOUSEDEV=y -+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -+CONFIG_INPUT_MOUSEDEV_SCREEN_X=480 -+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=640 -+CONFIG_INPUT_JOYDEV=m -+CONFIG_INPUT_EVDEV=y -+# CONFIG_INPUT_EVBUG is not set -+ -+# -+# Input Device Drivers -+# -+CONFIG_INPUT_KEYBOARD=y -+# CONFIG_KEYBOARD_ADP5588 is not set -+# CONFIG_KEYBOARD_ATKBD is not set -+# CONFIG_QT2160 is not set -+# CONFIG_KEYBOARD_LKKBD is not set -+CONFIG_KEYBOARD_GPIO=y -+# CONFIG_KEYBOARD_MATRIX is not set -+# CONFIG_KEYBOARD_LM8323 is not set -+# CONFIG_KEYBOARD_MAX7359 is not set -+# CONFIG_KEYBOARD_NEWTON is not set -+# CONFIG_KEYBOARD_OPENCORES is not set -+CONFIG_KEYBOARD_STOWAWAY=m -+# CONFIG_KEYBOARD_SUNKBD is not set -+# CONFIG_KEYBOARD_XTKBD is not set -+# CONFIG_INPUT_MOUSE is not set -+# CONFIG_INPUT_JOYSTICK is not set -+# CONFIG_INPUT_TABLET is not set -+CONFIG_INPUT_TOUCHSCREEN=y -+CONFIG_TOUCHSCREEN_FILTER=y -+CONFIG_TOUCHSCREEN_FILTER_GROUP=y -+CONFIG_TOUCHSCREEN_FILTER_MEDIAN=y -+CONFIG_TOUCHSCREEN_FILTER_MEAN=y -+CONFIG_TOUCHSCREEN_FILTER_LINEAR=y -+CONFIG_TOUCHSCREEN_S3C2410=y -+# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set -+# CONFIG_TOUCHSCREEN_ADS7846 is not set -+# CONFIG_TOUCHSCREEN_AD7877 is not set -+# CONFIG_TOUCHSCREEN_AD7879_I2C is not set -+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set -+# CONFIG_TOUCHSCREEN_AD7879 is not set -+# CONFIG_TOUCHSCREEN_EETI is not set -+# CONFIG_TOUCHSCREEN_FUJITSU is not set -+# CONFIG_TOUCHSCREEN_GUNZE is not set -+# CONFIG_TOUCHSCREEN_ELO is not set -+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set -+# CONFIG_TOUCHSCREEN_MCS5000 is not set -+# CONFIG_TOUCHSCREEN_MTOUCH is not set -+# CONFIG_TOUCHSCREEN_INEXIO is not set -+# CONFIG_TOUCHSCREEN_MK712 is not set -+# CONFIG_TOUCHSCREEN_PENMOUNT is not set -+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set -+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set -+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set -+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set -+# CONFIG_TOUCHSCREEN_TSC2007 is not set -+# CONFIG_TOUCHSCREEN_W90X900 is not set -+CONFIG_INPUT_MISC=y -+# CONFIG_INPUT_ATI_REMOTE is not set -+# CONFIG_INPUT_ATI_REMOTE2 is not set -+# CONFIG_INPUT_KEYSPAN_REMOTE is not set -+# CONFIG_INPUT_POWERMATE is not set -+# CONFIG_INPUT_YEALINK is not set -+# CONFIG_INPUT_CM109 is not set -+CONFIG_INPUT_UINPUT=m -+CONFIG_INPUT_PCF50633_PMU=y -+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set -+CONFIG_INPUT_LIS302DL=y -+ -+# -+# Hardware I/O ports -+# -+CONFIG_SERIO=y -+# CONFIG_SERIO_SERPORT is not set -+# CONFIG_SERIO_RAW is not set -+# CONFIG_GAMEPORT is not set -+ -+# -+# Character devices -+# -+CONFIG_VT=y -+CONFIG_CONSOLE_TRANSLATIONS=y -+CONFIG_VT_CONSOLE=y -+CONFIG_HW_CONSOLE=y -+CONFIG_VT_HW_CONSOLE_BINDING=y -+# CONFIG_DEVKMEM is not set -+# CONFIG_SERIAL_NONSTANDARD is not set -+ -+# -+# Serial drivers -+# -+# CONFIG_SERIAL_8250 is not set -+ -+# -+# Non-8250 serial port support -+# -+CONFIG_SERIAL_SAMSUNG=y -+CONFIG_SERIAL_SAMSUNG_UARTS=3 -+CONFIG_SERIAL_SAMSUNG_CONSOLE=y -+CONFIG_SERIAL_S3C2440=y -+# CONFIG_SERIAL_MAX3100 is not set -+CONFIG_SERIAL_CORE=y -+CONFIG_SERIAL_CORE_CONSOLE=y -+CONFIG_UNIX98_PTYS=y -+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -+# CONFIG_LEGACY_PTYS is not set -+# CONFIG_IPMI_HANDLER is not set -+# CONFIG_HW_RANDOM is not set -+# CONFIG_R3964 is not set -+# CONFIG_RAW_DRIVER is not set -+# CONFIG_TCG_TPM is not set -+CONFIG_I2C=y -+CONFIG_I2C_BOARDINFO=y -+CONFIG_I2C_COMPAT=y -+CONFIG_I2C_CHARDEV=y -+# CONFIG_I2C_HELPER_AUTO is not set -+ -+# -+# I2C Algorithms -+# -+CONFIG_I2C_ALGOBIT=y -+# CONFIG_I2C_ALGOPCF is not set -+# CONFIG_I2C_ALGOPCA is not set -+ -+# -+# I2C Hardware Bus support -+# -+ -+# -+# I2C system bus drivers (mostly embedded / system-on-chip) -+# -+# CONFIG_I2C_DESIGNWARE is not set -+# CONFIG_I2C_GPIO is not set -+# CONFIG_I2C_OCORES is not set -+CONFIG_I2C_S3C2410=y -+# CONFIG_I2C_SIMTEC is not set -+ -+# -+# External I2C/SMBus adapter drivers -+# -+# CONFIG_I2C_PARPORT_LIGHT is not set -+# CONFIG_I2C_TAOS_EVM is not set -+# CONFIG_I2C_TINY_USB is not set -+ -+# -+# Other I2C/SMBus bus drivers -+# -+# CONFIG_I2C_PCA_PLATFORM is not set -+# CONFIG_I2C_STUB is not set -+ -+# -+# Miscellaneous I2C Chip support -+# -+# CONFIG_DS1682 is not set -+# CONFIG_SENSORS_TSL2550 is not set -+# CONFIG_I2C_DEBUG_CORE is not set -+# CONFIG_I2C_DEBUG_ALGO is not set -+# CONFIG_I2C_DEBUG_BUS is not set -+# CONFIG_I2C_DEBUG_CHIP is not set -+CONFIG_SPI=y -+CONFIG_SPI_MASTER=y -+ -+# -+# SPI Master Controller Drivers -+# -+CONFIG_SPI_BITBANG=y -+CONFIG_SPI_GPIO=y -+CONFIG_SPI_S3C24XX=y -+CONFIG_SPI_S3C24XX_GPIO=y -+ -+# -+# SPI Protocol Masters -+# -+# CONFIG_SPI_SPIDEV is not set -+# CONFIG_SPI_TLE62X0 is not set -+ -+# -+# PPS support -+# -+# CONFIG_PPS is not set -+CONFIG_ARCH_REQUIRE_GPIOLIB=y -+CONFIG_GPIOLIB=y -+CONFIG_GPIO_SYSFS=y -+ -+# -+# Memory mapped GPIO expanders: -+# -+ -+# -+# I2C GPIO expanders: -+# -+# CONFIG_GPIO_MAX732X is not set -+# CONFIG_GPIO_PCA953X is not set -+# CONFIG_GPIO_PCF857X is not set -+CONFIG_GPIO_PCF50633=y -+ -+# -+# PCI GPIO expanders: -+# -+ -+# -+# SPI GPIO expanders: -+# -+# CONFIG_GPIO_MAX7301 is not set -+# CONFIG_GPIO_MCP23S08 is not set -+# CONFIG_GPIO_MC33880 is not set -+ -+# -+# AC97 GPIO expanders: -+# -+# CONFIG_W1 is not set -+CONFIG_POWER_SUPPLY=y -+# CONFIG_POWER_SUPPLY_DEBUG is not set -+# CONFIG_PDA_POWER is not set -+# CONFIG_BATTERY_DS2760 is not set -+# CONFIG_BATTERY_DS2782 is not set -+# CONFIG_BATTERY_BQ27x00 is not set -+# CONFIG_BATTERY_MAX17040 is not set -+CONFIG_CHARGER_PCF50633=y -+CONFIG_BATTERY_BQ27000_HDQ=y -+CONFIG_HDQ_GPIO_BITBANG=y -+# CONFIG_BATTERY_PLATFORM is not set -+# CONFIG_HWMON is not set -+# CONFIG_THERMAL is not set -+CONFIG_WATCHDOG=y -+CONFIG_WATCHDOG_NOWAYOUT=y -+ -+# -+# Watchdog Device Drivers -+# -+CONFIG_SOFT_WATCHDOG=y -+CONFIG_S3C2410_WATCHDOG=y -+ -+# -+# USB-based Watchdog Cards -+# -+# CONFIG_USBPCWATCHDOG is not set -+CONFIG_SSB_POSSIBLE=y -+ -+# -+# Sonics Silicon Backplane -+# -+# CONFIG_SSB is not set -+ -+# -+# Multifunction device drivers -+# -+CONFIG_MFD_CORE=y -+# CONFIG_MFD_SM501 is not set -+# CONFIG_MFD_ASIC3 is not set -+# CONFIG_HTC_EGPIO is not set -+# CONFIG_HTC_PASIC3 is not set -+# CONFIG_TPS65010 is not set -+# CONFIG_TWL4030_CORE is not set -+# CONFIG_MFD_TMIO is not set -+# CONFIG_MFD_T7L66XB is not set -+# CONFIG_MFD_TC6387XB is not set -+# CONFIG_MFD_TC6393XB is not set -+# CONFIG_PMIC_DA903X is not set -+# CONFIG_MFD_WM8400 is not set -+# CONFIG_MFD_WM831X is not set -+# CONFIG_MFD_WM8350_I2C is not set -+CONFIG_MFD_PCF50633=y -+# CONFIG_MFD_MC13783 is not set -+CONFIG_PCF50633_ADC=y -+# CONFIG_AB3100_CORE is not set -+# CONFIG_EZX_PCAP is not set -+CONFIG_MFD_GLAMO=y -+# CONFIG_MFD_GLAMO_FB is not set -+CONFIG_MFD_GLAMO_GPIO=y -+CONFIG_MFD_GLAMO_MCI=y -+CONFIG_MFD_GLAMO_DRM=y -+CONFIG_REGULATOR=y -+# CONFIG_REGULATOR_DEBUG is not set -+CONFIG_REGULATOR_FIXED_VOLTAGE=y -+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -+# CONFIG_REGULATOR_BQ24022 is not set -+# CONFIG_REGULATOR_MAX1586 is not set -+CONFIG_REGULATOR_PCF50633=y -+# CONFIG_REGULATOR_LP3971 is not set -+# CONFIG_REGULATOR_TPS65023 is not set -+# CONFIG_REGULATOR_TPS6507X is not set -+# CONFIG_MEDIA_SUPPORT is not set -+ -+# -+# Graphics support -+# -+CONFIG_DRM=y -+CONFIG_DRM_KMS_HELPER=y -+# CONFIG_DRM_MGA is not set -+# CONFIG_DRM_VIA is not set -+# CONFIG_DRM_SAVAGE is not set -+# CONFIG_VGASTATE is not set -+CONFIG_VIDEO_OUTPUT_CONTROL=y -+CONFIG_FB=y -+# CONFIG_FIRMWARE_EDID is not set -+# CONFIG_FB_DDC is not set -+# CONFIG_FB_BOOT_VESA_SUPPORT is not set -+CONFIG_FB_CFB_FILLRECT=y -+CONFIG_FB_CFB_COPYAREA=y -+CONFIG_FB_CFB_IMAGEBLIT=y -+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -+# CONFIG_FB_SYS_FILLRECT is not set -+# CONFIG_FB_SYS_COPYAREA is not set -+# CONFIG_FB_SYS_IMAGEBLIT is not set -+# CONFIG_FB_FOREIGN_ENDIAN is not set -+# CONFIG_FB_SYS_FOPS is not set -+# 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_TILEBLITTING is not set -+ -+# -+# Frame buffer hardware drivers -+# -+# CONFIG_FB_UVESA is not set -+# CONFIG_FB_S1D13XXX is not set -+# CONFIG_FB_TMIO is not set -+# CONFIG_FB_S3C2410 is not set -+# CONFIG_FB_VIRTUAL is not set -+# CONFIG_FB_METRONOME is not set -+# CONFIG_FB_MB862XX is not set -+# CONFIG_FB_BROADSHEET is not set -+CONFIG_BACKLIGHT_LCD_SUPPORT=y -+CONFIG_LCD_CLASS_DEVICE=y -+# CONFIG_LCD_LMS283GF05 is not set -+# CONFIG_LCD_LTV350QV is not set -+# CONFIG_LCD_ILI9320 is not set -+# CONFIG_LCD_TDO24M is not set -+# CONFIG_LCD_VGG2432A4 is not set -+# CONFIG_LCD_PLATFORM is not set -+CONFIG_LCD_JBT6K74=y -+CONFIG_BACKLIGHT_CLASS_DEVICE=y -+# CONFIG_BACKLIGHT_GENERIC is not set -+CONFIG_BACKLIGHT_PWM=y -+CONFIG_BACKLIGHT_PCF50633=y -+ -+# -+# Display device support -+# -+# CONFIG_DISPLAY_SUPPORT is not set -+ -+# -+# Console display driver support -+# -+# CONFIG_VGA_CONSOLE is not set -+CONFIG_DUMMY_CONSOLE=y -+CONFIG_FRAMEBUFFER_CONSOLE=y -+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -+# CONFIG_FONTS is not set -+CONFIG_FONT_8x8=y -+CONFIG_FONT_8x16=y -+# CONFIG_LOGO is not set -+CONFIG_SOUND=y -+CONFIG_SOUND_OSS_CORE=y -+CONFIG_SOUND_OSS_CORE_PRECLAIM=y -+CONFIG_SND=y -+CONFIG_SND_TIMER=y -+CONFIG_SND_PCM=y -+CONFIG_SND_JACK=y -+CONFIG_SND_SEQUENCER=y -+CONFIG_SND_SEQ_DUMMY=y -+CONFIG_SND_OSSEMUL=y -+CONFIG_SND_MIXER_OSS=y -+CONFIG_SND_PCM_OSS=y -+CONFIG_SND_PCM_OSS_PLUGINS=y -+CONFIG_SND_SEQUENCER_OSS=y -+# CONFIG_SND_DYNAMIC_MINORS is not set -+# CONFIG_SND_SUPPORT_OLD_API is not set -+# CONFIG_SND_VERBOSE_PROCFS is not set -+# CONFIG_SND_VERBOSE_PRINTK is not set -+# CONFIG_SND_DEBUG is not set -+# CONFIG_SND_RAWMIDI_SEQ is not set -+# CONFIG_SND_OPL3_LIB_SEQ is not set -+# CONFIG_SND_OPL4_LIB_SEQ is not set -+# CONFIG_SND_SBAWE_SEQ is not set -+# CONFIG_SND_EMU10K1_SEQ is not set -+# CONFIG_SND_DRIVERS is not set -+# CONFIG_SND_ARM is not set -+# CONFIG_SND_SPI is not set -+# CONFIG_SND_USB is not set -+CONFIG_SND_SOC=y -+CONFIG_SND_S3C24XX_SOC=y -+CONFIG_SND_S3C24XX_SOC_I2S=y -+CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753=y -+# CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650 is not set -+# CONFIG_SND_S3C24XX_SOC_S3C24XX_UDA134X is not set -+# CONFIG_SND_S3C24XX_SOC_SIMTEC_TLV320AIC23 is not set -+# CONFIG_SND_S3C24XX_SOC_SIMTEC_HERMES is not set -+CONFIG_SND_SOC_I2C_AND_SPI=y -+# CONFIG_SND_SOC_ALL_CODECS is not set -+CONFIG_SND_SOC_WM8753=y -+# CONFIG_SOUND_PRIME is not set -+CONFIG_HID_SUPPORT=y -+CONFIG_HID=y -+# CONFIG_HIDRAW is not set -+ -+# -+# USB Input Devices -+# -+CONFIG_USB_HID=y -+# CONFIG_HID_PID is not set -+# CONFIG_USB_HIDDEV is not set -+ -+# -+# Special HID drivers -+# -+CONFIG_HID_A4TECH=y -+CONFIG_HID_APPLE=y -+CONFIG_HID_BELKIN=y -+CONFIG_HID_CHERRY=y -+CONFIG_HID_CHICONY=y -+CONFIG_HID_CYPRESS=y -+CONFIG_HID_DRAGONRISE=y -+# CONFIG_DRAGONRISE_FF is not set -+CONFIG_HID_EZKEY=y -+CONFIG_HID_KYE=y -+CONFIG_HID_GYRATION=y -+CONFIG_HID_TWINHAN=y -+CONFIG_HID_KENSINGTON=y -+CONFIG_HID_LOGITECH=y -+# CONFIG_LOGITECH_FF is not set -+# CONFIG_LOGIRUMBLEPAD2_FF is not set -+CONFIG_HID_MICROSOFT=y -+CONFIG_HID_MONTEREY=y -+CONFIG_HID_NTRIG=y -+CONFIG_HID_PANTHERLORD=y -+# CONFIG_PANTHERLORD_FF is not set -+CONFIG_HID_PETALYNX=y -+CONFIG_HID_SAMSUNG=y -+CONFIG_HID_SONY=y -+CONFIG_HID_SUNPLUS=y -+CONFIG_HID_GREENASIA=y -+# CONFIG_GREENASIA_FF is not set -+CONFIG_HID_SMARTJOYPLUS=y -+# CONFIG_SMARTJOYPLUS_FF is not set -+CONFIG_HID_TOPSEED=y -+CONFIG_HID_THRUSTMASTER=y -+# CONFIG_THRUSTMASTER_FF is not set -+CONFIG_HID_WACOM=y -+CONFIG_HID_ZEROPLUS=y -+# CONFIG_ZEROPLUS_FF is not set -+CONFIG_USB_SUPPORT=y -+CONFIG_USB_ARCH_HAS_HCD=y -+CONFIG_USB_ARCH_HAS_OHCI=y -+# CONFIG_USB_ARCH_HAS_EHCI is not set -+CONFIG_USB=y -+# CONFIG_USB_DEBUG is not set -+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y -+ -+# -+# Miscellaneous USB options -+# -+# CONFIG_USB_DEVICEFS is not set -+# CONFIG_USB_DEVICE_CLASS is not set -+# CONFIG_USB_DYNAMIC_MINORS is not set -+CONFIG_USB_SUSPEND=y -+# CONFIG_USB_OTG is not set -+# CONFIG_USB_MON is not set -+# CONFIG_USB_WUSB is not set -+# CONFIG_USB_WUSB_CBAF is not set -+ -+# -+# USB Host Controller Drivers -+# -+# CONFIG_USB_C67X00_HCD is not set -+# CONFIG_USB_OXU210HP_HCD is not set -+# CONFIG_USB_ISP116X_HCD is not set -+# CONFIG_USB_ISP1760_HCD is not set -+# CONFIG_USB_ISP1362_HCD is not set -+CONFIG_USB_OHCI_HCD=y -+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -+CONFIG_USB_OHCI_LITTLE_ENDIAN=y -+# CONFIG_USB_SL811_HCD is not set -+# CONFIG_USB_R8A66597_HCD is not set -+# CONFIG_USB_HWA_HCD is not set -+# CONFIG_USB_MUSB_HDRC is not set -+# CONFIG_USB_GADGET_MUSB_HDRC is not set -+ -+# -+# USB Device Class drivers -+# -+CONFIG_USB_ACM=m -+CONFIG_USB_PRINTER=m -+# CONFIG_USB_WDM is not set -+CONFIG_USB_TMC=m -+ -+# -+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -+# -+ -+# -+# also be needed; see USB_STORAGE Help for more info -+# -+CONFIG_USB_STORAGE=m -+# CONFIG_USB_STORAGE_DEBUG is not set -+CONFIG_USB_STORAGE_DATAFAB=m -+CONFIG_USB_STORAGE_FREECOM=m -+# CONFIG_USB_STORAGE_ISD200 is not set -+CONFIG_USB_STORAGE_USBAT=m -+CONFIG_USB_STORAGE_SDDR09=m -+CONFIG_USB_STORAGE_SDDR55=m -+CONFIG_USB_STORAGE_JUMPSHOT=m -+CONFIG_USB_STORAGE_ALAUDA=m -+# CONFIG_USB_STORAGE_ONETOUCH is not set -+CONFIG_USB_STORAGE_KARMA=m -+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set -+# CONFIG_USB_LIBUSUAL is not set -+ -+# -+# USB Imaging devices -+# -+# CONFIG_USB_MDC800 is not set -+# CONFIG_USB_MICROTEK is not set -+ -+# -+# USB port drivers -+# -+CONFIG_USB_SERIAL=m -+CONFIG_USB_EZUSB=y -+CONFIG_USB_SERIAL_GENERIC=y -+CONFIG_USB_SERIAL_AIRCABLE=m -+CONFIG_USB_SERIAL_ARK3116=m -+CONFIG_USB_SERIAL_BELKIN=m -+# CONFIG_USB_SERIAL_CH341 is not set -+CONFIG_USB_SERIAL_WHITEHEAT=m -+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -+# CONFIG_USB_SERIAL_CP210X is not set -+CONFIG_USB_SERIAL_CYPRESS_M8=m -+CONFIG_USB_SERIAL_EMPEG=m -+CONFIG_USB_SERIAL_FTDI_SIO=m -+CONFIG_USB_SERIAL_FUNSOFT=m -+CONFIG_USB_SERIAL_VISOR=m -+CONFIG_USB_SERIAL_IPAQ=m -+CONFIG_USB_SERIAL_IR=m -+CONFIG_USB_SERIAL_EDGEPORT=m -+CONFIG_USB_SERIAL_EDGEPORT_TI=m -+CONFIG_USB_SERIAL_GARMIN=m -+CONFIG_USB_SERIAL_IPW=m -+# CONFIG_USB_SERIAL_IUU is not set -+CONFIG_USB_SERIAL_KEYSPAN_PDA=m -+CONFIG_USB_SERIAL_KEYSPAN=m -+CONFIG_USB_SERIAL_KLSI=m -+CONFIG_USB_SERIAL_KOBIL_SCT=m -+CONFIG_USB_SERIAL_MCT_U232=m -+CONFIG_USB_SERIAL_MOS7720=m -+CONFIG_USB_SERIAL_MOS7840=m -+# CONFIG_USB_SERIAL_MOTOROLA is not set -+CONFIG_USB_SERIAL_NAVMAN=m -+CONFIG_USB_SERIAL_PL2303=m -+# CONFIG_USB_SERIAL_OTI6858 is not set -+# CONFIG_USB_SERIAL_QUALCOMM is not set -+# CONFIG_USB_SERIAL_SPCP8X5 is not set -+CONFIG_USB_SERIAL_HP4X=m -+CONFIG_USB_SERIAL_SAFE=m -+CONFIG_USB_SERIAL_SAFE_PADDED=y -+# CONFIG_USB_SERIAL_SIEMENS_MPI is not set -+CONFIG_USB_SERIAL_SIERRAWIRELESS=m -+# CONFIG_USB_SERIAL_SYMBOL is not set -+CONFIG_USB_SERIAL_TI=m -+CONFIG_USB_SERIAL_CYBERJACK=m -+CONFIG_USB_SERIAL_XIRCOM=m -+CONFIG_USB_SERIAL_OPTION=m -+CONFIG_USB_SERIAL_OMNINET=m -+# CONFIG_USB_SERIAL_OPTICON is not set -+# CONFIG_USB_SERIAL_DEBUG is not set -+ -+# -+# USB Miscellaneous drivers -+# -+# CONFIG_USB_EMI62 is not set -+# CONFIG_USB_EMI26 is not set -+# CONFIG_USB_ADUTUX is not set -+# CONFIG_USB_SEVSEG is not set -+# CONFIG_USB_RIO500 is not set -+# CONFIG_USB_LEGOTOWER is not set -+# CONFIG_USB_LCD is not set -+CONFIG_USB_BERRY_CHARGE=m -+# CONFIG_USB_LED is not set -+# CONFIG_USB_CYPRESS_CY7C63 is not set -+# CONFIG_USB_CYTHERM is not set -+# CONFIG_USB_IDMOUSE is not set -+# CONFIG_USB_FTDI_ELAN is not set -+# CONFIG_USB_APPLEDISPLAY is not set -+# CONFIG_USB_LD is not set -+CONFIG_USB_TRANCEVIBRATOR=m -+CONFIG_USB_IOWARRIOR=m -+# CONFIG_USB_TEST is not set -+# CONFIG_USB_ISIGHTFW is not set -+# CONFIG_USB_VST is not set -+CONFIG_USB_GADGET=y -+# CONFIG_USB_GADGET_DEBUG_FILES is not set -+# CONFIG_USB_GADGET_DEBUG_FS is not set -+CONFIG_USB_GADGET_VBUS_DRAW=500 -+CONFIG_USB_GADGET_SELECTED=y -+# CONFIG_USB_GADGET_AT91 is not set -+# CONFIG_USB_GADGET_ATMEL_USBA is not set -+# CONFIG_USB_GADGET_FSL_USB2 is not set -+# CONFIG_USB_GADGET_LH7A40X is not set -+# CONFIG_USB_GADGET_OMAP is not set -+# CONFIG_USB_GADGET_PXA25X is not set -+# CONFIG_USB_GADGET_R8A66597 is not set -+# CONFIG_USB_GADGET_PXA27X is not set -+# CONFIG_USB_GADGET_S3C_HSOTG is not set -+# CONFIG_USB_GADGET_IMX is not set -+CONFIG_USB_GADGET_S3C2410=y -+CONFIG_USB_S3C2410=y -+# CONFIG_USB_S3C2410_DEBUG is not set -+# CONFIG_USB_GADGET_M66592 is not set -+# CONFIG_USB_GADGET_AMD5536UDC is not set -+# CONFIG_USB_GADGET_FSL_QE is not set -+# CONFIG_USB_GADGET_CI13XXX is not set -+# CONFIG_USB_GADGET_NET2280 is not set -+# CONFIG_USB_GADGET_GOKU is not set -+# CONFIG_USB_GADGET_LANGWELL is not set -+# CONFIG_USB_GADGET_DUMMY_HCD is not set -+# CONFIG_USB_GADGET_DUALSPEED is not set -+# CONFIG_USB_ZERO is not set -+# CONFIG_USB_AUDIO is not set -+CONFIG_USB_ETH=y -+CONFIG_USB_ETH_RNDIS=y -+# CONFIG_USB_ETH_EEM is not set -+# CONFIG_USB_GADGETFS is not set -+# CONFIG_USB_FILE_STORAGE is not set -+# CONFIG_USB_G_SERIAL is not set -+# CONFIG_USB_MIDI_GADGET is not set -+# CONFIG_USB_G_PRINTER is not set -+# CONFIG_USB_CDC_COMPOSITE is not set -+ -+# -+# OTG and related infrastructure -+# -+# CONFIG_USB_GPIO_VBUS is not set -+# CONFIG_NOP_USB_XCEIV is not set -+CONFIG_MMC=y -+# CONFIG_MMC_DEBUG is not set -+CONFIG_MMC_UNSAFE_RESUME=y -+ -+# -+# MMC/SD/SDIO Card Drivers -+# -+CONFIG_MMC_BLOCK=y -+CONFIG_MMC_BLOCK_BOUNCE=y -+# CONFIG_SDIO_UART is not set -+# CONFIG_MMC_TEST is not set -+ -+# -+# MMC/SD/SDIO Host Controller Drivers -+# -+# CONFIG_MMC_SDHCI is not set -+# CONFIG_MMC_AT91 is not set -+# CONFIG_MMC_ATMELMCI is not set -+# CONFIG_MMC_SPI is not set -+CONFIG_MMC_S3C=y -+# CONFIG_MMC_S3C_HW_SDIO_IRQ is not set -+CONFIG_MMC_S3C_PIO=y -+# CONFIG_MMC_S3C_DMA is not set -+# CONFIG_MMC_S3C_PIODMA is not set -+# CONFIG_MEMSTICK is not set -+CONFIG_NEW_LEDS=y -+CONFIG_LEDS_CLASS=y -+ -+# -+# LED drivers -+# -+# CONFIG_LEDS_S3C24XX is not set -+# CONFIG_LEDS_PCA9532 is not set -+CONFIG_LEDS_GPIO=y -+CONFIG_LEDS_GPIO_PLATFORM=y -+# CONFIG_LEDS_LP3944 is not set -+# CONFIG_LEDS_PCA955X is not set -+# CONFIG_LEDS_DAC124S085 is not set -+# CONFIG_LEDS_PWM is not set -+# CONFIG_LEDS_BD2802 is not set -+ -+# -+# LED Triggers -+# -+CONFIG_LEDS_TRIGGERS=y -+CONFIG_LEDS_TRIGGER_TIMER=y -+CONFIG_LEDS_TRIGGER_HEARTBEAT=y -+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set -+# CONFIG_LEDS_TRIGGER_GPIO is not set -+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set -+ -+# -+# iptables trigger is under Netfilter config (LED target) -+# -+# CONFIG_ACCESSIBILITY is not set -+CONFIG_RTC_LIB=y -+CONFIG_RTC_CLASS=y -+CONFIG_RTC_HCTOSYS=y -+CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -+# CONFIG_RTC_DEBUG is not set -+ -+# -+# RTC interfaces -+# -+CONFIG_RTC_INTF_SYSFS=y -+CONFIG_RTC_INTF_PROC=y -+CONFIG_RTC_INTF_DEV=y -+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -+# CONFIG_RTC_DRV_TEST is not set -+ -+# -+# I2C RTC drivers -+# -+# CONFIG_RTC_DRV_DS1307 is not set -+# CONFIG_RTC_DRV_DS1374 is not set -+# CONFIG_RTC_DRV_DS1672 is not set -+# CONFIG_RTC_DRV_MAX6900 is not set -+# CONFIG_RTC_DRV_RS5C372 is not set -+# CONFIG_RTC_DRV_ISL1208 is not set -+# CONFIG_RTC_DRV_X1205 is not set -+# CONFIG_RTC_DRV_PCF8563 is not set -+# CONFIG_RTC_DRV_PCF8583 is not set -+# CONFIG_RTC_DRV_M41T80 is not set -+# CONFIG_RTC_DRV_S35390A is not set -+# CONFIG_RTC_DRV_FM3130 is not set -+# CONFIG_RTC_DRV_RX8581 is not set -+# CONFIG_RTC_DRV_RX8025 is not set -+ -+# -+# SPI RTC drivers -+# -+# CONFIG_RTC_DRV_M41T94 is not set -+# CONFIG_RTC_DRV_DS1305 is not set -+# CONFIG_RTC_DRV_DS1390 is not set -+# CONFIG_RTC_DRV_MAX6902 is not set -+# CONFIG_RTC_DRV_R9701 is not set -+# CONFIG_RTC_DRV_RS5C348 is not set -+# CONFIG_RTC_DRV_DS3234 is not set -+# CONFIG_RTC_DRV_PCF2123 is not set -+ -+# -+# Platform RTC drivers -+# -+# CONFIG_RTC_DRV_CMOS is not set -+# CONFIG_RTC_DRV_DS1286 is not set -+# CONFIG_RTC_DRV_DS1511 is not set -+# CONFIG_RTC_DRV_DS1553 is not set -+# CONFIG_RTC_DRV_DS1742 is not set -+# CONFIG_RTC_DRV_STK17TA8 is not set -+# CONFIG_RTC_DRV_M48T86 is not set -+# CONFIG_RTC_DRV_M48T35 is not set -+# CONFIG_RTC_DRV_M48T59 is not set -+# CONFIG_RTC_DRV_BQ4802 is not set -+# CONFIG_RTC_DRV_V3020 is not set -+CONFIG_RTC_DRV_PCF50633=y -+ -+# -+# on-CPU RTC drivers -+# -+CONFIG_RTC_DRV_S3C=y -+# CONFIG_DMADEVICES is not set -+# CONFIG_AUXDISPLAY is not set -+# CONFIG_UIO is not set -+ -+# -+# TI VLYNQ -+# -+# CONFIG_STAGING is not set -+CONFIG_AR6000_WLAN=y -+# CONFIG_AR6000_WLAN_DEBUG is not set -+# CONFIG_AR6000_WLAN_RESET is not set -+ -+# -+# File systems -+# -+CONFIG_EXT2_FS=y -+# CONFIG_EXT2_FS_XATTR is not set -+# CONFIG_EXT2_FS_XIP is not set -+CONFIG_EXT3_FS=y -+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -+# CONFIG_EXT3_FS_XATTR is not set -+# CONFIG_EXT4_FS is not set -+CONFIG_JBD=y -+# CONFIG_JBD_DEBUG is not set -+CONFIG_REISERFS_FS=m -+# CONFIG_REISERFS_CHECK is not set -+# CONFIG_REISERFS_PROC_INFO is not set -+# CONFIG_REISERFS_FS_XATTR is not set -+# CONFIG_JFS_FS is not set -+CONFIG_FS_POSIX_ACL=y -+# CONFIG_XFS_FS is not set -+# CONFIG_OCFS2_FS is not set -+# CONFIG_BTRFS_FS is not set -+# CONFIG_NILFS2_FS is not set -+CONFIG_FILE_LOCKING=y -+CONFIG_FSNOTIFY=y -+# CONFIG_DNOTIFY is not set -+CONFIG_INOTIFY=y -+CONFIG_INOTIFY_USER=y -+# CONFIG_QUOTA is not set -+# CONFIG_AUTOFS_FS is not set -+CONFIG_AUTOFS4_FS=m -+CONFIG_FUSE_FS=m -+CONFIG_CUSE=m -+CONFIG_GENERIC_ACL=y -+ -+# -+# Caches -+# -+# CONFIG_FSCACHE is not set -+ -+# -+# CD-ROM/DVD Filesystems -+# -+CONFIG_ISO9660_FS=m -+CONFIG_JOLIET=y -+# CONFIG_ZISOFS is not set -+CONFIG_UDF_FS=m -+CONFIG_UDF_NLS=y -+ -+# -+# DOS/FAT/NT Filesystems -+# -+CONFIG_FAT_FS=m -+# CONFIG_MSDOS_FS is not set -+CONFIG_VFAT_FS=m -+CONFIG_FAT_DEFAULT_CODEPAGE=437 -+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -+# CONFIG_NTFS_FS is not set -+ -+# -+# Pseudo filesystems -+# -+CONFIG_PROC_FS=y -+CONFIG_PROC_SYSCTL=y -+CONFIG_PROC_PAGE_MONITOR=y -+CONFIG_SYSFS=y -+CONFIG_TMPFS=y -+CONFIG_TMPFS_POSIX_ACL=y -+# CONFIG_HUGETLB_PAGE is not set -+CONFIG_CONFIGFS_FS=m -+CONFIG_MISC_FILESYSTEMS=y -+# CONFIG_ADFS_FS is not set -+# CONFIG_AFFS_FS is not set -+# CONFIG_HFS_FS is not set -+# CONFIG_HFSPLUS_FS is not set -+# CONFIG_BEFS_FS is not set -+# CONFIG_BFS_FS is not set -+# CONFIG_EFS_FS is not set -+CONFIG_JFFS2_FS=y -+CONFIG_JFFS2_FS_DEBUG=0 -+CONFIG_JFFS2_FS_WRITEBUFFER=y -+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -+CONFIG_JFFS2_SUMMARY=y -+# CONFIG_JFFS2_FS_XATTR is not set -+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set -+CONFIG_JFFS2_ZLIB=y -+# CONFIG_JFFS2_LZO is not set -+CONFIG_JFFS2_RTIME=y -+# CONFIG_JFFS2_RUBIN is not set -+CONFIG_UBIFS_FS=y -+CONFIG_UBIFS_FS_XATTR=y -+CONFIG_UBIFS_FS_ADVANCED_COMPR=y -+CONFIG_UBIFS_FS_LZO=y -+CONFIG_UBIFS_FS_ZLIB=y -+CONFIG_UBIFS_FS_DEBUG=y -+CONFIG_UBIFS_FS_DEBUG_MSG_LVL=0 -+CONFIG_UBIFS_FS_DEBUG_CHKS=y -+# CONFIG_CRAMFS is not set -+CONFIG_SQUASHFS=m -+# CONFIG_SQUASHFS_EMBEDDED is not set -+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 -+# CONFIG_VXFS_FS is not set -+# CONFIG_MINIX_FS is not set -+# CONFIG_OMFS_FS is not set -+# CONFIG_HPFS_FS is not set -+# CONFIG_QNX4FS_FS is not set -+# CONFIG_ROMFS_FS is not set -+# CONFIG_SYSV_FS is not set -+# CONFIG_UFS_FS is not set -+CONFIG_NETWORK_FILESYSTEMS=y -+CONFIG_NFS_FS=m -+CONFIG_NFS_V3=y -+CONFIG_NFS_V3_ACL=y -+CONFIG_NFS_V4=y -+# CONFIG_NFS_V4_1 is not set -+CONFIG_NFSD=m -+CONFIG_NFSD_V2_ACL=y -+CONFIG_NFSD_V3=y -+CONFIG_NFSD_V3_ACL=y -+CONFIG_NFSD_V4=y -+CONFIG_LOCKD=m -+CONFIG_LOCKD_V4=y -+CONFIG_EXPORTFS=m -+CONFIG_NFS_ACL_SUPPORT=m -+CONFIG_NFS_COMMON=y -+CONFIG_SUNRPC=m -+CONFIG_SUNRPC_GSS=m -+CONFIG_RPCSEC_GSS_KRB5=m -+# CONFIG_RPCSEC_GSS_SPKM3 is not set -+# CONFIG_SMB_FS is not set -+CONFIG_CIFS=m -+# CONFIG_CIFS_STATS is not set -+# CONFIG_CIFS_WEAK_PW_HASH is not set -+# CONFIG_CIFS_XATTR is not set -+# CONFIG_CIFS_DEBUG2 is not set -+# CONFIG_CIFS_EXPERIMENTAL is not set -+# CONFIG_NCP_FS is not set -+# CONFIG_CODA_FS is not set -+# CONFIG_AFS_FS is not set -+ -+# -+# Partition Types -+# -+CONFIG_PARTITION_ADVANCED=y -+# CONFIG_ACORN_PARTITION is not set -+# CONFIG_OSF_PARTITION is not set -+# CONFIG_AMIGA_PARTITION is not set -+# CONFIG_ATARI_PARTITION is not set -+# CONFIG_MAC_PARTITION is not set -+CONFIG_MSDOS_PARTITION=y -+# CONFIG_BSD_DISKLABEL is not set -+# CONFIG_MINIX_SUBPARTITION is not set -+# CONFIG_SOLARIS_X86_PARTITION is not set -+# CONFIG_UNIXWARE_DISKLABEL is not set -+# CONFIG_LDM_PARTITION is not set -+# CONFIG_SGI_PARTITION is not set -+# CONFIG_ULTRIX_PARTITION is not set -+# CONFIG_SUN_PARTITION is not set -+# CONFIG_KARMA_PARTITION is not set -+# CONFIG_EFI_PARTITION is not set -+# CONFIG_SYSV68_PARTITION is not set -+CONFIG_NLS=y -+CONFIG_NLS_DEFAULT="iso8859-1" -+CONFIG_NLS_CODEPAGE_437=y -+# CONFIG_NLS_CODEPAGE_737 is not set -+# CONFIG_NLS_CODEPAGE_775 is not set -+CONFIG_NLS_CODEPAGE_850=m -+# CONFIG_NLS_CODEPAGE_852 is not set -+# CONFIG_NLS_CODEPAGE_855 is not set -+# CONFIG_NLS_CODEPAGE_857 is not set -+# CONFIG_NLS_CODEPAGE_860 is not set -+# CONFIG_NLS_CODEPAGE_861 is not set -+# CONFIG_NLS_CODEPAGE_862 is not set -+# CONFIG_NLS_CODEPAGE_863 is not set -+# CONFIG_NLS_CODEPAGE_864 is not set -+# CONFIG_NLS_CODEPAGE_865 is not set -+CONFIG_NLS_CODEPAGE_866=m -+# CONFIG_NLS_CODEPAGE_869 is not set -+CONFIG_NLS_CODEPAGE_936=m -+CONFIG_NLS_CODEPAGE_950=m -+# CONFIG_NLS_CODEPAGE_932 is not set -+# CONFIG_NLS_CODEPAGE_949 is not set -+# CONFIG_NLS_CODEPAGE_874 is not set -+# CONFIG_NLS_ISO8859_8 is not set -+CONFIG_NLS_CODEPAGE_1250=m -+CONFIG_NLS_CODEPAGE_1251=m -+CONFIG_NLS_ASCII=m -+CONFIG_NLS_ISO8859_1=m -+CONFIG_NLS_ISO8859_2=m -+# CONFIG_NLS_ISO8859_3 is not set -+# CONFIG_NLS_ISO8859_4 is not set -+# CONFIG_NLS_ISO8859_5 is not set -+# CONFIG_NLS_ISO8859_6 is not set -+# CONFIG_NLS_ISO8859_7 is not set -+# CONFIG_NLS_ISO8859_9 is not set -+# CONFIG_NLS_ISO8859_13 is not set -+# CONFIG_NLS_ISO8859_14 is not set -+# CONFIG_NLS_ISO8859_15 is not set -+# CONFIG_NLS_KOI8_R is not set -+# CONFIG_NLS_KOI8_U is not set -+CONFIG_NLS_UTF8=m -+# CONFIG_DLM is not set -+ -+# -+# Kernel hacking -+# -+CONFIG_PRINTK_TIME=y -+# CONFIG_ENABLE_WARN_DEPRECATED is not set -+# CONFIG_ENABLE_MUST_CHECK is not set -+CONFIG_FRAME_WARN=1024 -+# CONFIG_MAGIC_SYSRQ is not set -+CONFIG_STRIP_ASM_SYMS=y -+# CONFIG_UNUSED_SYMBOLS is not set -+CONFIG_DEBUG_FS=y -+# CONFIG_HEADERS_CHECK is not set -+# CONFIG_DEBUG_KERNEL is not set -+CONFIG_DEBUG_BUGVERBOSE=y -+CONFIG_DEBUG_MEMORY_INIT=y -+CONFIG_FRAME_POINTER=y -+# CONFIG_RCU_CPU_STALL_DETECTOR is not set -+# CONFIG_LATENCYTOP is not set -+# CONFIG_SYSCTL_SYSCALL_CHECK is not set -+CONFIG_HAVE_FUNCTION_TRACER=y -+CONFIG_TRACING_SUPPORT=y -+# CONFIG_FTRACE is not set -+# CONFIG_DYNAMIC_DEBUG is not set -+# CONFIG_SAMPLES is not set -+CONFIG_HAVE_ARCH_KGDB=y -+# CONFIG_ARM_UNWIND is not set -+# CONFIG_DEBUG_USER is not set -+CONFIG_DEBUG_S3C_UART=2 -+ -+# -+# Security options -+# -+# CONFIG_KEYS is not set -+# CONFIG_SECURITY is not set -+# CONFIG_SECURITYFS is not set -+# CONFIG_SECURITY_FILE_CAPABILITIES is not set -+CONFIG_CRYPTO=y -+ -+# -+# Crypto core or helper -+# -+CONFIG_CRYPTO_ALGAPI=y -+CONFIG_CRYPTO_ALGAPI2=y -+CONFIG_CRYPTO_AEAD=m -+CONFIG_CRYPTO_AEAD2=y -+CONFIG_CRYPTO_BLKCIPHER=m -+CONFIG_CRYPTO_BLKCIPHER2=y -+CONFIG_CRYPTO_HASH=y -+CONFIG_CRYPTO_HASH2=y -+CONFIG_CRYPTO_RNG2=y -+CONFIG_CRYPTO_PCOMP=y -+CONFIG_CRYPTO_MANAGER=m -+CONFIG_CRYPTO_MANAGER2=y -+CONFIG_CRYPTO_GF128MUL=m -+CONFIG_CRYPTO_NULL=m -+CONFIG_CRYPTO_WORKQUEUE=y -+# CONFIG_CRYPTO_CRYPTD is not set -+CONFIG_CRYPTO_AUTHENC=m -+CONFIG_CRYPTO_TEST=m -+ -+# -+# Authenticated Encryption with Associated Data -+# -+# CONFIG_CRYPTO_CCM is not set -+# CONFIG_CRYPTO_GCM is not set -+# CONFIG_CRYPTO_SEQIV is not set -+ -+# -+# Block modes -+# -+CONFIG_CRYPTO_CBC=m -+# CONFIG_CRYPTO_CTR is not set -+# CONFIG_CRYPTO_CTS is not set -+CONFIG_CRYPTO_ECB=m -+CONFIG_CRYPTO_LRW=m -+CONFIG_CRYPTO_PCBC=m -+# CONFIG_CRYPTO_XTS is not set -+ -+# -+# Hash modes -+# -+CONFIG_CRYPTO_HMAC=m -+CONFIG_CRYPTO_XCBC=m -+# CONFIG_CRYPTO_VMAC is not set -+ -+# -+# Digest -+# -+CONFIG_CRYPTO_CRC32C=m -+# CONFIG_CRYPTO_GHASH is not set -+CONFIG_CRYPTO_MD4=m -+CONFIG_CRYPTO_MD5=y -+CONFIG_CRYPTO_MICHAEL_MIC=m -+# CONFIG_CRYPTO_RMD128 is not set -+# CONFIG_CRYPTO_RMD160 is not set -+# CONFIG_CRYPTO_RMD256 is not set -+# CONFIG_CRYPTO_RMD320 is not set -+CONFIG_CRYPTO_SHA1=m -+CONFIG_CRYPTO_SHA256=m -+CONFIG_CRYPTO_SHA512=m -+CONFIG_CRYPTO_TGR192=m -+CONFIG_CRYPTO_WP512=m -+ -+# -+# Ciphers -+# -+# CONFIG_CRYPTO_AES is not set -+CONFIG_CRYPTO_ANUBIS=m -+CONFIG_CRYPTO_ARC4=m -+CONFIG_CRYPTO_BLOWFISH=m -+CONFIG_CRYPTO_CAMELLIA=m -+CONFIG_CRYPTO_CAST5=m -+CONFIG_CRYPTO_CAST6=m -+CONFIG_CRYPTO_DES=m -+CONFIG_CRYPTO_FCRYPT=m -+CONFIG_CRYPTO_KHAZAD=m -+# CONFIG_CRYPTO_SALSA20 is not set -+# CONFIG_CRYPTO_SEED is not set -+CONFIG_CRYPTO_SERPENT=m -+CONFIG_CRYPTO_TEA=m -+CONFIG_CRYPTO_TWOFISH=m -+CONFIG_CRYPTO_TWOFISH_COMMON=m -+ -+# -+# Compression -+# -+CONFIG_CRYPTO_DEFLATE=y -+CONFIG_CRYPTO_ZLIB=y -+CONFIG_CRYPTO_LZO=y -+ -+# -+# Random Number Generation -+# -+# CONFIG_CRYPTO_ANSI_CPRNG is not set -+# CONFIG_CRYPTO_HW is not set -+# CONFIG_BINARY_PRINTF is not set -+ -+# -+# Library routines -+# -+CONFIG_BITREVERSE=y -+CONFIG_GENERIC_FIND_LAST_BIT=y -+CONFIG_CRC_CCITT=y -+CONFIG_CRC16=y -+CONFIG_CRC_T10DIF=y -+CONFIG_CRC_ITU_T=y -+CONFIG_CRC32=y -+CONFIG_CRC7=y -+CONFIG_LIBCRC32C=m -+CONFIG_ZLIB_INFLATE=y -+CONFIG_ZLIB_DEFLATE=y -+CONFIG_LZO_COMPRESS=y -+CONFIG_LZO_DECOMPRESS=y -+CONFIG_DECOMPRESS_GZIP=y -+CONFIG_DECOMPRESS_BZIP2=y -+CONFIG_DECOMPRESS_LZMA=y -+CONFIG_TEXTSEARCH=y -+CONFIG_TEXTSEARCH_KMP=m -+CONFIG_TEXTSEARCH_BM=m -+CONFIG_TEXTSEARCH_FSM=m -+CONFIG_HAS_IOMEM=y -+CONFIG_HAS_DMA=y -+CONFIG_NLATTR=y --- -1.7.0.4 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0023-Re-enable-Glamo-fence-IRQ-if-it-sticks.patch b/recipes/linux/linux-openmoko-2.6.32/0023-Re-enable-Glamo-fence-IRQ-if-it-sticks.patch deleted file mode 100644 index a24350f8c6..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0023-Re-enable-Glamo-fence-IRQ-if-it-sticks.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 348d0334015689a22c9dbd8dd0291360c960a764 Mon Sep 17 00:00:00 2001 -From: Thomas White <taw@bitwiz.org.uk> -Date: Tue, 13 Apr 2010 22:18:41 +0200 -Subject: [PATCH 23/24] Re-enable Glamo fence IRQ if it sticks - -Also fix a formatting typo. - -Signed-off-by: Thomas White <taw@bitwiz.org.uk> ---- - drivers/mfd/glamo/glamo-fence.c | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-fence.c b/drivers/mfd/glamo/glamo-fence.c -index 9119675..ba3ed88 100644 ---- a/drivers/mfd/glamo/glamo-fence.c -+++ b/drivers/mfd/glamo/glamo-fence.c -@@ -98,7 +98,7 @@ static void glamo_fence_emit(struct glamo_fence *fence) - - static void glamo_fence_enable(struct glamodrm_handle *gdrm) - { -- enable_irq( GLAMO_IRQ_2D); -+ enable_irq(GLAMO_IRQ_2D); - } - - -@@ -168,6 +168,7 @@ static void glamo_fence_debodge(struct glamodrm_handle *gdrm) - - glamo_cmdq_wait(gdrm, GLAMO_ENGINE_ALL); - glamo_engine_reset(gdrm->glamo_core, GLAMO_ENGINE_2D); -+ glamo_fence_enable(gdrm); - - read_lock(&gdrm->fence_list_lock); - list_for_each(tmp, &gdrm->fence_list) { --- -1.7.0.4 - diff --git a/recipes/linux/linux-openmoko-2.6.32/0024-Fix-KMS-framebuffer-physical-address.patch b/recipes/linux/linux-openmoko-2.6.32/0024-Fix-KMS-framebuffer-physical-address.patch deleted file mode 100644 index 3ce4d59042..0000000000 --- a/recipes/linux/linux-openmoko-2.6.32/0024-Fix-KMS-framebuffer-physical-address.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 1b83b6d7f2e1bf5473cd17a742737a1cfe450509 Mon Sep 17 00:00:00 2001 -From: Thomas White <taw@bitwiz.org.uk> -Date: Fri, 20 Nov 2009 22:06:30 +0100 -Subject: [PATCH 24/24] Fix KMS framebuffer physical address - -This allows "/dev/fb0" to work correctly with mmap(). - -Signed-off-by: Thomas White <taw@bitwiz.org.uk> ---- - drivers/mfd/glamo/glamo-kms-fb.c | 5 ++--- - 1 files changed, 2 insertions(+), 3 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-kms-fb.c b/drivers/mfd/glamo/glamo-kms-fb.c -index 6d4b9ea..04de83b 100644 ---- a/drivers/mfd/glamo/glamo-kms-fb.c -+++ b/drivers/mfd/glamo/glamo-kms-fb.c -@@ -387,9 +387,6 @@ int glamofb_create(struct drm_device *dev, uint32_t fb_width, - info->fbops = &glamofb_ops; - - info->fix.line_length = fb->pitch; -- info->fix.smem_start = dev->mode_config.fb_base -- + (unsigned long) gdrm->vram->start; -- info->fix.smem_len = size; - - info->flags = FBINFO_DEFAULT; - -@@ -401,6 +398,8 @@ int glamofb_create(struct drm_device *dev, uint32_t fb_width, - ret = -ENOSPC; - goto out_unref; - } -+ info->fix.smem_start = (unsigned long)gdrm->vram->start + offs; -+ info->fix.smem_len = size; - info->screen_size = size; - - info->pseudo_palette = fb->pseudo_palette; --- -1.7.0.4 - |