Index: kernel26/arch/arm/mach-pxa/h5400/Kconfig
===================================================================
RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/h5400/Kconfig,v
retrieving revision 1.20
diff -u -r1.20 Kconfig
--- kernel26/arch/arm/mach-pxa/h5400/Kconfig	18 Feb 2008 18:11:39 -0000	1.20
+++ kernel26/arch/arm/mach-pxa/h5400/Kconfig	22 Feb 2008 14:30:28 -0000
@@ -9,10 +9,6 @@
 	tristate "HP iPAQ h5400 LCD"
 	depends on ARCH_H5400 && LCD_CLASS_DEVICE && FB_MQ1100
 
-config IPAQ_H5400_BL
-	tristate "HP iPAQ h5400 Backlight"
-	depends on ARCH_H5400 && IPAQ_H5400_LCD && BACKLIGHT_CORGI
-
 config IPAQ_H5400_WIFI
 	tristate "HP iPAQ h5400 wifi"
 	depends on ARCH_H5400 && USB && USB_OHCI_HCD
Index: kernel26/arch/arm/mach-pxa/h5400/h5400.c
===================================================================
RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/h5400/h5400.c,v
retrieving revision 1.58
diff -u -r1.58 h5400.c
--- kernel26/arch/arm/mach-pxa/h5400/h5400.c	18 Feb 2008 18:11:39 -0000	1.58
+++ kernel26/arch/arm/mach-pxa/h5400/h5400.c	22 Feb 2008 14:30:28 -0000
@@ -20,6 +20,7 @@
  *
  * 2002-08-23   Jamey Hicks        GPIO and IRQ support for iPAQ H5400
  * 2008-02-14   Michal Panczyk        Merge back the BT functions
+ * 2008-02-22   Michal Panczyk	      Merge Backlight support from h5400_lcd.c
  *
  */
 
@@ -44,6 +45,8 @@
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/physmap.h>
 #include <linux/pda_power.h>
+#include <linux/corgi_bl.h>
+#include <linux/mfd/mq11xx.h>
 
 #include <asm/irq.h>
 #include <asm/mach-types.h>
@@ -234,6 +237,57 @@
 	},
 };
 
+/****************************************************************************
+ * Backlight
+ ****************************************************************************/
+
+extern struct mediaq11xx_base *mq_base;
+
+static void mq1100_set_pwm(struct mediaq11xx_base *base, unsigned char chan,
+                           unsigned char level)
+{
+	unsigned long d;
+	int shift = chan ? 24 : 8;
+
+	d = base->regs->FP.pulse_width_mod_control;
+	d &= ~(0xff << shift);
+	d |= level << shift;
+	base->regs->FP.pulse_width_mod_control = d;
+
+	return;
+}
+
+static void h5400_bl_set_intensity(int intensity)
+{
+	samcop_set_gpio_b(&h5400_samcop.dev,
+	                  SAMCOP_GPIO_GPB_BACKLIGHT_POWER_ON, intensity ?
+	                  SAMCOP_GPIO_GPB_BACKLIGHT_POWER_ON : 0);
+
+	mq1100_set_pwm(mq_base, 0, (0x3ff - intensity) >> 2);
+	return;
+}
+
+static void h5400_bl_null_release(struct device *dev)
+{
+	return;
+}
+
+static struct corgibl_machinfo h5400_bl_info = {
+	.max_intensity = 0x3ff,
+	.default_intensity = 0x3ff/16,
+	.limit_mask = 0x3ff/128,
+	.set_bl_intensity = h5400_bl_set_intensity,
+};
+
+static struct platform_device corgibl_pdev = {
+	.name = "corgi-bl",
+	.id = -1,
+	.dev = {
+		.platform_data = &h5400_bl_info,
+		.release = h5400_bl_null_release,
+	},
+};
+
 /****************************************************************************/
 
 static __inline__ void 
@@ -824,6 +878,7 @@
 	platform_device_register (&h5000_flash[0]);
 	platform_device_register (&h5000_flash[1]);
 	platform_device_register (&h5400_samcop);
+	platform_device_register (&corgibl_pdev);
 	platform_device_register (&h5000_gpiodev_keys2);
 	pxa_set_udc_info (&h5400_udc_mach_info);
 	pxa_set_dma_needs_bounce (h5400_dma_needs_bounce);
Index: kernel26/arch/arm/mach-pxa/h5400/h5400_bl.c
===================================================================
RCS file: kernel26/arch/arm/mach-pxa/h5400/h5400_bl.c
diff -N kernel26/arch/arm/mach-pxa/h5400/h5400_bl.c
--- kernel26/arch/arm/mach-pxa/h5400/h5400_bl.c	18 Jul 2007 19:09:05 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,84 +0,0 @@
-/*
- * Backlight support for iPAQ H5400
- *
- * Copyright (c) 2007 Anton Vorontsov <cbou@mail.ru>
- * Copyright (c) 2003 Keith Packard
- * Copyright (c) 2003, 2005 Phil Blundell
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file COPYING in the main directory of this archive for
- * more details.
- *
- * History:
- * 2007-02-18  Anton Vorontsov  Converted to corgi-bl, PDA generic driver.
- */
-
-#include <linux/module.h>
-#include <linux/platform_device.h>
-#include <linux/corgi_bl.h>
-#include <linux/mfd/mq11xx.h>
-
-#include <asm/arch/h5400-asic.h>
-#include <linux/mfd/samcop_base.h>
-
-extern struct mediaq11xx_base *mq_base;
-
-static void mq1100_set_pwm(struct mediaq11xx_base *base, unsigned char chan,
-                           unsigned char level)
-{
-	unsigned long d;
-	int shift = chan ? 24 : 8;
-
-	d = base->regs->FP.pulse_width_mod_control;
-	d &= ~(0xff << shift);
-	d |= level << shift;
-	base->regs->FP.pulse_width_mod_control = d;
-
-	return;
-}
-
-static void h5400_bl_set_intensity(int intensity)
-{
-	samcop_set_gpio_b(&h5400_samcop.dev,
-	                  SAMCOP_GPIO_GPB_BACKLIGHT_POWER_ON, intensity ?
-	                  SAMCOP_GPIO_GPB_BACKLIGHT_POWER_ON : 0);
-
-	mq1100_set_pwm(mq_base, 0, (0x3ff - intensity) >> 2);
-	return;
-}
-
-static void h5400_bl_null_release(struct device *dev)
-{
-	return;
-}
-
-static struct corgibl_machinfo h5400_bl_info = {
-	.max_intensity = 0x3ff,
-	.default_intensity = 0x3ff/16,
-	.limit_mask = 0x3ff/128,
-	.set_bl_intensity = h5400_bl_set_intensity,
-};
-
-static struct platform_device corgibl_pdev = {
-	.name = "corgi-bl",
-	.id = -1,
-	.dev = {
-		.platform_data = &h5400_bl_info,
-		.release = h5400_bl_null_release,
-	},
-};
-
-static int __init h5400_bl_init(void)
-{
-	return platform_device_register(&corgibl_pdev);
-}
-
-static void __exit h5400_bl_exit(void)
-{
-	platform_device_unregister(&corgibl_pdev);
-	return;
-}
-
-module_init(h5400_bl_init);
-module_exit(h5400_bl_exit);
-MODULE_LICENSE("GPL");
