[Armadeus-commitlog] SF.net SVN: armadeus:[966] trunk
Brought to you by:
sszy
|
From: <ar...@us...> - 2008-12-19 10:00:45
|
Revision: 966
http://armadeus.svn.sourceforge.net/armadeus/?rev=966&view=rev
Author: artemys
Date: 2008-12-19 10:00:43 +0000 (Fri, 19 Dec 2008)
Log Message:
-----------
[LINUX] Cleanup backlight driver to prepare i.MX27 compatibility
Modified Paths:
--------------
trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.2/linux-2.6.27.2-021-armadeus-apf9328.patch
trunk/target/linux/modules/backlight/imx_bl_2.6.23.c
trunk/target/linux/modules/backlight/test/test_backlight.sh
Modified: trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.2/linux-2.6.27.2-021-armadeus-apf9328.patch
===================================================================
--- trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.2/linux-2.6.27.2-021-armadeus-apf9328.patch 2008-12-18 16:15:30 UTC (rev 965)
+++ trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.2/linux-2.6.27.2-021-armadeus-apf9328.patch 2008-12-19 10:00:43 UTC (rev 966)
@@ -497,7 +497,7 @@
+};
+//extern struct platform_device imxfb_device; // filled in generic.c
+static struct platform_device imxbl_device = {
-+ .name = "imxl-bl",
++ .name = "imx-bl",
+ .dev = {
+// .parent = &imxfb_device.dev, crash kernel even if EXPORT_SYMBOL() is done in generic.c
+ .platform_data = &imx_bl_machinfo,
@@ -611,6 +611,9 @@
+ .timer = &imx_timer,
+ .init_machine = apf9328_init,
+MACHINE_END
+PATCH AUTOMATICALLY GENERATED
+DON'T EDIT IT OR YOUR MODIFICATIONS WILL BE LOST
+(Take a look at armadeus/target/linux/ directory to know how to generate it)
--- linux-2.6.27.2.original/arch/arm/mach-imx/apf9328_lcd_config.h
+++ linux-2.6.27.2.mod/arch/arm/mach-imx/apf9328_lcd_config.h
@@ -0,0 +1,200 @@
@@ -818,7 +821,7 @@
DON'T EDIT IT OR YOUR MODIFICATIONS WILL BE LOST
(Take a look at armadeus/target/linux/ directory to know how to generate it)
--- linux-2.6.27.2.original/arch/arm/mach-imx/include/mach/apf9328.h
-+++ linux-2.6.27.2.mod/arch/arm/mach-imx/include/mach/apf9328.h
++++ linux-2.6.27.2.mod/arch/arm/mach-imx/include/mach/apf9328.h
@@ -0,0 +1,58 @@
+/*
+ * linux/include/asm-arm/arch-imx/apf9328.h
Modified: trunk/target/linux/modules/backlight/imx_bl_2.6.23.c
===================================================================
--- trunk/target/linux/modules/backlight/imx_bl_2.6.23.c 2008-12-18 16:15:30 UTC (rev 965)
+++ trunk/target/linux/modules/backlight/imx_bl_2.6.23.c 2008-12-19 10:00:43 UTC (rev 966)
@@ -1,5 +1,5 @@
/*
- * Backlight Driver for i.MXL based platforms
+ * Backlight Driver for i.MX based platforms
*
* Copyright (c) 2007 Julien Boibessot - Armadeus Project
*
@@ -21,12 +21,17 @@
#include <linux/version.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
#include <asm/arch/imxfb.h> /* Backlight machinfo struct is defined here */
-#include <asm/arch/imx-regs.h>
+#include <asm/arch/hardware.h>
#else
#include <mach/imxfb.h> /* Backlight machinfo struct is defined here */
-#include <mach/imx-regs.h>
+#include <mach/hardware.h>
#endif
+#ifdef CONFIG_ARCH_IMX
+#define LCDC_BASE_ADDR IMX_LCDC_BASE
+#endif
+#define DRIVER_NAME "imx-bl"
+#define DRIVER_VERSION "0.2"
static int imxbl_intensity;
static DEFINE_MUTEX(bl_mutex);
@@ -52,14 +57,14 @@
if (imxbl_flags & IMXBL_BATTLOW)
intensity &= bl_machinfo->limit_mask;
- // If a function was given in machine info then use it
+ /* If a method was given in machine info then use it */
if( bl_machinfo->set_bl_intensity ) {
bl_machinfo->set_bl_intensity(intensity);
- } else { // Otherwise use this default one:
- shadow = LCDC_PWMR;
- shadow &= 0xffffff00;
+ } else { /* Otherwise use this default one: */
+ shadow = readl(IO_ADDRESS(LCDC_BASE_ADDR) + 0x2c); /* PWMR / LPCCR */
+ shadow &= ~PWMR_PW(0xff);
shadow |= PWMR_PW(intensity);
- LCDC_PWMR = shadow;
+ writel(shadow, IO_ADDRESS(LCDC_BASE_ADDR) + 0x2c);
pr_debug("Setting backlight intensity to %d\n", intensity);
}
@@ -125,12 +130,12 @@
if (!machinfo->limit_mask)
machinfo->limit_mask = -1;
- imx_backlight_device = backlight_device_register ("imxl-bl", &pdev->dev, NULL, &imxbl_ops);
- if (IS_ERR (imx_backlight_device))
- {
- printk("Error imxBL\n");
+ imx_backlight_device = backlight_device_register(DRIVER_NAME,
+ &pdev->dev, NULL, &imxbl_ops);
+ if (IS_ERR (imx_backlight_device)) {
+ printk("can't register backlight device\n");
return PTR_ERR (imx_backlight_device);
- }
+ }
platform_set_drvdata(pdev, imx_backlight_device);
@@ -139,7 +144,7 @@
imx_backlight_device->props.brightness = machinfo->default_intensity;
backlight_update_status(imx_backlight_device);
- printk("i.MX Backlight driver initialized.\n");
+ printk("i.MX Backlight driver v" DRIVER_VERSION " initialized.\n");
return 0;
}
@@ -163,23 +168,23 @@
.suspend = imxbl_suspend,
.resume = imxbl_resume,
.driver = {
- .name = "imxl-bl",
+ .name = DRIVER_NAME,
},
};
static int __init imxbl_init(void)
{
- return platform_driver_register(&imxbl_driver);
+ return platform_driver_register(&imxbl_driver);
}
static void __exit imxbl_exit(void)
{
- platform_driver_unregister(&imxbl_driver);
+ platform_driver_unregister(&imxbl_driver);
}
module_init(imxbl_init);
module_exit(imxbl_exit);
MODULE_AUTHOR("Julien Boibessot <jul...@ar...>");
-MODULE_DESCRIPTION("i.MXL Backlight Driver");
+MODULE_DESCRIPTION("i.MX Backlight Driver");
MODULE_LICENSE("GPL");
Modified: trunk/target/linux/modules/backlight/test/test_backlight.sh
===================================================================
--- trunk/target/linux/modules/backlight/test/test_backlight.sh 2008-12-18 16:15:30 UTC (rev 965)
+++ trunk/target/linux/modules/backlight/test/test_backlight.sh 2008-12-19 10:00:43 UTC (rev 966)
@@ -6,7 +6,12 @@
exit 1
}
-BL_SYS_DIR="/sys/class/backlight/imxl-bl/"
+BL_SYS_DIR="/sys/class/backlight/imx-bl/"
+if [ ! -d "$BL_SYS_DIR" ]; then
+ echo "/sys interface not found:"
+ echo " driver not loaded or wrong version !"
+ failed
+fi
# Save actual brightness
ACTUAL=`cat "$BL_SYS_DIR/actual_brightness"`
@@ -25,4 +30,4 @@
# Restore brightness
echo "$ACTUAL" > "$BL_SYS_DIR/brightness"
-exit 0
\ No newline at end of file
+exit 0
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|