[ARM] 3045/2: S3C2410 - change init for lcd platform data
authorBen Dooks <ben-linux@fluff.org>
Fri, 28 Oct 2005 14:31:45 +0000 (15:31 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 28 Oct 2005 14:31:45 +0000 (15:31 +0100)
Patch from Ben Dooks

Change set_s3c2410fb_info to s3c2410_fb_set_platdata
and use kmalloc() for the copy of the information it
is passed.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-s3c2410/devs.c
arch/arm/mach-s3c2410/mach-h1940.c
include/asm-arm/arch-s3c2410/fb.h

index 8a37236b04ab1c8180a9eee7dcb2272dccf470f1..08bc7d95a45d78c0290b8d5c15eef4c934fd8105 100644 (file)
@@ -103,14 +103,18 @@ struct platform_device s3c_device_lcd = {
 
 EXPORT_SYMBOL(s3c_device_lcd);
 
-static struct s3c2410fb_mach_info s3c2410fb_info;
-
-void __init set_s3c2410fb_info(struct s3c2410fb_mach_info *hard_s3c2410fb_info)
+void __init s3c24xx_fb_set_platdata(struct s3c2410fb_mach_info *pd)
 {
-       memcpy(&s3c2410fb_info,hard_s3c2410fb_info,sizeof(struct s3c2410fb_mach_info));
-       s3c_device_lcd.dev.platform_data = &s3c2410fb_info;
+       struct s3c2410fb_mach_info *npd;
+
+       npd = kmalloc(sizeof(*npd), GFP_KERNEL);
+       if (npd) {
+               memcpy(npd, pd, sizeof(*npd));
+               s3c_device_lcd.dev.platform_data = npd;
+       } else {
+               printk(KERN_ERR "no memory for LCD platform data\n");
+       }
 }
-EXPORT_SYMBOL(set_s3c2410fb_info);
 
 /* NAND Controller */
 
index fb3cb01266e513e27c5871d008eec550656fad73..7efeaaad2361e71f2b75d4b2beb29ae493a329b1 100644 (file)
@@ -25,6 +25,7 @@
  *     14-Jan-2005 BJD  Added clock init
  *     10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
  *     20-Sep-2005 BJD  Added static to non-exported items
+ *     26-Oct-2005 BJD  Changed name of fb init call
 */
 
 #include <linux/kernel.h>
@@ -164,7 +165,7 @@ static void __init h1940_init_irq(void)
 
 static void __init h1940_init(void)
 {
-       set_s3c2410fb_info(&h1940_lcdcfg);
+       s3c24xx_fb_set_platdata(&h1940_lcdcfg);
 }
 
 MACHINE_START(H1940, "IPAQ-H1940")
index ac57bc887d82ff793a42b373fc931f39fab2d39d..4790491ba9d0b71de50e96635859181fed4e4b9a 100644 (file)
@@ -13,6 +13,7 @@
  *     07-Sep-2004     RTP     Created file
  *     03-Nov-2004     BJD     Updated and minor cleanups
  *     03-Aug-2005     RTP     Renamed to fb.h
+ *     26-Oct-2005     BJD     Changed name of platdata init
 */
 
 #ifndef __ASM_ARM_FB_H
@@ -64,6 +65,6 @@ struct s3c2410fb_mach_info {
        unsigned long   lpcsel;
 };
 
-void __init set_s3c2410fb_info(struct s3c2410fb_mach_info *hard_s3c2410fb_info);
+extern void __init s3c24xx_fb_set_platdata(struct s3c2410fb_mach_info *);
 
 #endif /* __ASM_ARM_FB_H */