diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2011-12-19 20:40:28 +0100 |
---|---|---|
committer | Kay Sievers <kay.sievers@vrfy.org> | 2011-12-19 20:40:28 +0100 |
commit | f9825889f25e7f987da9c2548fc54467e8b2b7b5 (patch) | |
tree | 9d479885e8231e98aa9bb1c76fe5928e82e35996 | |
parent | 35ca1766193d2a0c41e605b4e74a277c5ba4a709 (diff) | |
download | patches-f9825889f25e7f987da9c2548fc54467e8b2b7b5.tar.gz |
more ARM
.pc/
-rw-r--r-- | 20-arm.patch | 670 |
1 files changed, 669 insertions, 1 deletions
diff --git a/20-arm.patch b/20-arm.patch index 126a7f8..22f9686 100644 --- a/20-arm.patch +++ b/20-arm.patch @@ -23,12 +23,27 @@ arch/arm/mach-s3c2440/s3c2440-cpufreq.c | 18 ++++++++------ arch/arm/mach-s3c2440/s3c2440-pll-12000000.c | 16 ++++++++----- arch/arm/mach-s3c2440/s3c2440-pll-16934400.c | 20 ++++++++-------- + arch/arm/mach-s3c2440/s3c2440.c | 8 +++--- + arch/arm/mach-s3c2440/s3c2442.c | 16 +++++++------ + arch/arm/mach-s3c2440/s3c244x-clock.c | 16 ++++++++----- + arch/arm/mach-s3c2440/s3c244x-irq.c | 16 ++++++++----- + arch/arm/mach-s3c2440/s3c244x.c | 16 +++++++------ arch/arm/mach-s3c2443/dma.c | 10 ++++---- + arch/arm/mach-s3c2443/irq.c | 10 ++++---- + arch/arm/mach-s3c2443/s3c2443.c | 15 ++++++------ + arch/arm/mach-s3c64xx/cpu.c | 19 ++++++++------- arch/arm/mach-s3c64xx/dma.c | 23 +++++++++--------- + arch/arm/mach-s3c64xx/s3c6400.c | 15 ++++++------ + arch/arm/mach-s3c64xx/s3c6410.c | 15 ++++++------ + arch/arm/mach-s5p64x0/cpu.c | 15 ++++++------ + arch/arm/mach-s5p64x0/pm.c | 8 ++++-- + arch/arm/mach-s5pc100/cpu.c | 15 ++++++------ + arch/arm/mach-s5pv210/cpu.c | 15 ++++++------ + arch/arm/mach-s5pv210/pm.c | 8 ++++-- arch/arm/plat-samsung/include/plat/cpu.h | 26 ++++++++++----------- arch/arm/plat-samsung/include/plat/dma-s3c24xx.h | 2 - arch/arm/plat-samsung/include/plat/pm.h | 2 - - 29 files changed, 229 insertions(+), 175 deletions(-) + 44 files changed, 345 insertions(+), 266 deletions(-) --- a/arch/arm/include/asm/mach/time.h +++ b/arch/arm/include/asm/mach/time.h @@ -1155,6 +1170,252 @@ } arch_initcall(s3c2442_pll_16934400); +--- a/arch/arm/mach-s3c2440/s3c2440.c ++++ b/arch/arm/mach-s3c2440/s3c2440.c +@@ -18,7 +18,7 @@ + #include <linux/init.h> + #include <linux/platform_device.h> + #include <linux/serial_core.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/syscore_ops.h> + #include <linux/gpio.h> + #include <linux/clk.h> +@@ -40,8 +40,8 @@ + #include <plat/gpio-cfg.h> + #include <plat/gpio-cfg-helpers.h> + +-static struct sys_device s3c2440_sysdev = { +- .cls = &s3c2440_sysclass, ++static struct device s3c2440_dev = { ++ .bus = &s3c2440_subsys, + }; + + int __init s3c2440_init(void) +@@ -63,7 +63,7 @@ int __init s3c2440_init(void) + + /* register our system device for everything else */ + +- return sysdev_register(&s3c2440_sysdev); ++ return device_register(&s3c2440_dev); + } + + void __init s3c2440_map_io(void) +--- a/arch/arm/mach-s3c2440/s3c2442.c ++++ b/arch/arm/mach-s3c2440/s3c2442.c +@@ -28,7 +28,7 @@ + #include <linux/errno.h> + #include <linux/err.h> + #include <linux/device.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/syscore_ops.h> + #include <linux/interrupt.h> + #include <linux/ioport.h> +@@ -123,7 +123,7 @@ static struct clk s3c2442_clk_cam_upll = + }, + }; + +-static int s3c2442_clk_add(struct sys_device *sysdev) ++static int s3c2442_clk_add(struct device *dev) + { + struct clk *clock_upll; + struct clk *clock_h; +@@ -149,20 +149,22 @@ static int s3c2442_clk_add(struct sys_de + return 0; + } + +-static struct sysdev_driver s3c2442_clk_driver = { ++static struct subsys_interface s3c2442_clk_interface = { ++ .name = "s3c2442_clk", ++ .subsys = &s3c2442_subsys, + .add = s3c2442_clk_add, + }; + + static __init int s3c2442_clk_init(void) + { +- return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_clk_driver); ++ return subsys_interface_register(&s3c2442_clk_interface); + } + + arch_initcall(s3c2442_clk_init); + + +-static struct sys_device s3c2442_sysdev = { +- .cls = &s3c2442_sysclass, ++static struct device s3c2442_dev = { ++ .bus = &s3c2442_subsys, + }; + + int __init s3c2442_init(void) +@@ -175,7 +177,7 @@ int __init s3c2442_init(void) + register_syscore_ops(&s3c244x_pm_syscore_ops); + register_syscore_ops(&s3c24xx_irq_syscore_ops); + +- return sysdev_register(&s3c2442_sysdev); ++ return device_register(&s3c2442_dev); + } + + void __init s3c2442_map_io(void) +--- a/arch/arm/mach-s3c2440/s3c244x-clock.c ++++ b/arch/arm/mach-s3c2440/s3c244x-clock.c +@@ -28,7 +28,7 @@ + #include <linux/errno.h> + #include <linux/err.h> + #include <linux/device.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/interrupt.h> + #include <linux/ioport.h> + #include <linux/clk.h> +@@ -73,7 +73,7 @@ static struct clk clk_arm = { + }, + }; + +-static int s3c244x_clk_add(struct sys_device *sysdev) ++static int s3c244x_clk_add(struct device *dev) + { + unsigned long camdivn = __raw_readl(S3C2440_CAMDIVN); + unsigned long clkdivn; +@@ -115,24 +115,28 @@ static int s3c244x_clk_add(struct sys_de + return 0; + } + +-static struct sysdev_driver s3c2440_clk_driver = { ++static struct subsys_interface s3c2440_clk_interface = { ++ .name = "s3c2440_clk", ++ .subsys = &s3c2440_subsys, + .add = s3c244x_clk_add, + }; + + static int s3c2440_clk_init(void) + { +- return sysdev_driver_register(&s3c2440_sysclass, &s3c2440_clk_driver); ++ return subsys_interface_register(&s3c2440_clk_interface); + } + + arch_initcall(s3c2440_clk_init); + +-static struct sysdev_driver s3c2442_clk_driver = { ++static struct subsys_interface s3c2442_clk_interface = { ++ .name = "s3c2442_clk", ++ .subsys = &s3c2442_subsys, + .add = s3c244x_clk_add, + }; + + static int s3c2442_clk_init(void) + { +- return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_clk_driver); ++ return subsys_interface_register(&s3c2442_clk_interface); + } + + arch_initcall(s3c2442_clk_init); +--- a/arch/arm/mach-s3c2440/s3c244x-irq.c ++++ b/arch/arm/mach-s3c2440/s3c244x-irq.c +@@ -23,7 +23,7 @@ + #include <linux/module.h> + #include <linux/interrupt.h> + #include <linux/ioport.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/io.h> + + #include <mach/hardware.h> +@@ -91,7 +91,7 @@ static struct irq_chip s3c_irq_cam = { + .irq_ack = s3c_irq_cam_ack, + }; + +-static int s3c244x_irq_add(struct sys_device *sysdev) ++static int s3c244x_irq_add(struct device *dev) + { + unsigned int irqno; + +@@ -114,25 +114,29 @@ static int s3c244x_irq_add(struct sys_de + return 0; + } + +-static struct sysdev_driver s3c2440_irq_driver = { ++static struct subsys_interface s3c2440_irq_interface = { ++ .name = "s3c2440_irq", ++ .subsys = &s3c2440_subsys, + .add = s3c244x_irq_add, + }; + + static int s3c2440_irq_init(void) + { +- return sysdev_driver_register(&s3c2440_sysclass, &s3c2440_irq_driver); ++ return subsys_interface_register(&s3c2440_irq_interface); + } + + arch_initcall(s3c2440_irq_init); + +-static struct sysdev_driver s3c2442_irq_driver = { ++static struct subsys_interface s3c2442_irq_interface = { ++ .name = "s3c2442_irq", ++ .subsys = &s3c2442_subsys, + .add = s3c244x_irq_add, + }; + + + static int s3c2442_irq_init(void) + { +- return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_irq_driver); ++ return subsys_interface_register(&s3c2442_irq_interface); + } + + arch_initcall(s3c2442_irq_init); +--- a/arch/arm/mach-s3c2440/s3c244x.c ++++ b/arch/arm/mach-s3c2440/s3c244x.c +@@ -18,7 +18,7 @@ + #include <linux/init.h> + #include <linux/serial_core.h> + #include <linux/platform_device.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/syscore_ops.h> + #include <linux/clk.h> + #include <linux/io.h> +@@ -135,17 +135,19 @@ void __init s3c244x_init_clocks(int xtal + s3c2410_baseclk_add(); + } + +-/* Since the S3C2442 and S3C2440 share items, put both sysclasses here */ ++/* Since the S3C2442 and S3C2440 share items, put both subsystems here */ + +-struct sysdev_class s3c2440_sysclass = { ++struct bus_type s3c2440_subsys = { + .name = "s3c2440-core", ++ .dev_name = "s3c2440-core", + }; + +-struct sysdev_class s3c2442_sysclass = { ++struct bus_type s3c2442_subsys = { + .name = "s3c2442-core", ++ .dev_name = "s3c2442-core", + }; + +-/* need to register class before we actually register the device, and ++/* need to register the subsystem before we actually register the device, and + * we also need to ensure that it has been initialised before any of the + * drivers even try to use it (even if not on an s3c2440 based system) + * as a driver which may support both 2410 and 2440 may try and use it. +@@ -153,14 +155,14 @@ struct sysdev_class s3c2442_sysclass = { + + static int __init s3c2440_core_init(void) + { +- return sysdev_class_register(&s3c2440_sysclass); ++ return subsys_system_register(&s3c2440_subsys); + } + + core_initcall(s3c2440_core_init); + + static int __init s3c2442_core_init(void) + { +- return sysdev_class_register(&s3c2442_sysclass); ++ return subsys_system_register(&s3c2442_subsys); + } + + core_initcall(s3c2442_core_init); --- a/arch/arm/mach-s3c2443/dma.c +++ b/arch/arm/mach-s3c2443/dma.c @@ -14,7 +14,7 @@ @@ -1191,6 +1452,143 @@ } arch_initcall(s3c2443_dma_init); +--- a/arch/arm/mach-s3c2443/irq.c ++++ b/arch/arm/mach-s3c2443/irq.c +@@ -23,7 +23,7 @@ + #include <linux/module.h> + #include <linux/interrupt.h> + #include <linux/ioport.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/io.h> + + #include <mach/hardware.h> +@@ -241,7 +241,7 @@ static int __init s3c2443_add_sub(unsign + return 0; + } + +-static int __init s3c2443_irq_add(struct sys_device *sysdev) ++static int __init s3c2443_irq_add(struct device *dev) + { + printk("S3C2443: IRQ Support\n"); + +@@ -265,13 +265,15 @@ static int __init s3c2443_irq_add(struct + return 0; + } + +-static struct sysdev_driver s3c2443_irq_driver = { ++static struct subsys_interface s3c2443_irq_interface = { ++ .name = "s3c2443_irq", ++ .subsys = &s3c2443_subsys, + .add = s3c2443_irq_add, + }; + + static int __init s3c2443_irq_init(void) + { +- return sysdev_driver_register(&s3c2443_sysclass, &s3c2443_irq_driver); ++ return subsys_interface_register(&s3c2443_irq_interface); + } + + arch_initcall(s3c2443_irq_init); +--- a/arch/arm/mach-s3c2443/s3c2443.c ++++ b/arch/arm/mach-s3c2443/s3c2443.c +@@ -19,7 +19,7 @@ + #include <linux/gpio.h> + #include <linux/platform_device.h> + #include <linux/serial_core.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/clk.h> + #include <linux/io.h> + +@@ -49,12 +49,13 @@ static struct map_desc s3c2443_iodesc[] + IODESC_ENT(TIMER), + }; + +-struct sysdev_class s3c2443_sysclass = { ++struct bus_type s3c2443_subsys = { + .name = "s3c2443-core", ++ .dev_name = "s3c2443-core", + }; + +-static struct sys_device s3c2443_sysdev = { +- .cls = &s3c2443_sysclass, ++static struct device s3c2443_dev = { ++ .bus = &s3c2443_subsys, + }; + + static void s3c2443_hard_reset(void) +@@ -77,7 +78,7 @@ int __init s3c2443_init(void) + s3c_device_wdt.resource[1].start = IRQ_S3C2443_WDT; + s3c_device_wdt.resource[1].end = IRQ_S3C2443_WDT; + +- return sysdev_register(&s3c2443_sysdev); ++ return device_register(&s3c2443_dev); + } + + void __init s3c2443_init_uarts(struct s3c2410_uartcfg *cfg, int no) +@@ -99,7 +100,7 @@ void __init s3c2443_map_io(void) + iotable_init(s3c2443_iodesc, ARRAY_SIZE(s3c2443_iodesc)); + } + +-/* need to register class before we actually register the device, and ++/* need to register the subsystem before we actually register the device, and + * we also need to ensure that it has been initialised before any of the + * drivers even try to use it (even if not on an s3c2443 based system) + * as a driver which may support both 2443 and 2440 may try and use it. +@@ -107,7 +108,7 @@ void __init s3c2443_map_io(void) + + static int __init s3c2443_core_init(void) + { +- return sysdev_class_register(&s3c2443_sysclass); ++ return subsys_system_register(&s3c2443_subsys, NULL); + } + + core_initcall(s3c2443_core_init); +--- a/arch/arm/mach-s3c64xx/cpu.c ++++ b/arch/arm/mach-s3c64xx/cpu.c +@@ -16,7 +16,7 @@ + #include <linux/module.h> + #include <linux/interrupt.h> + #include <linux/ioport.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/serial_core.h> + #include <linux/platform_device.h> + #include <linux/io.h> +@@ -122,12 +122,13 @@ static struct map_desc s3c_iodesc[] __in + }; + + +-struct sysdev_class s3c64xx_sysclass = { +- .name = "s3c64xx-core", ++struct bus_type s3c64xx_subsys = { ++ .name = "s3c64xx-core", ++ .dev_name = "s3c64xx-core", + }; + +-static struct sys_device s3c64xx_sysdev = { +- .cls = &s3c64xx_sysclass, ++static struct device s3c64xx_dev = { ++ .bus = &s3c64xx_subsys, + }; + + /* uart registration process */ +@@ -152,10 +153,10 @@ void __init s3c64xx_init_io(struct map_d + s3c_init_cpu(samsung_cpu_id, cpu_ids, ARRAY_SIZE(cpu_ids)); + } + +-static __init int s3c64xx_sysdev_init(void) ++static __init int s3c64xx_dev_init(void) + { +- sysdev_class_register(&s3c64xx_sysclass); +- return sysdev_register(&s3c64xx_sysdev); ++ subsys_system_register(&s3c64xx_subsys); ++ return device_register(&s3c64xx_dev); + } + +-core_initcall(s3c64xx_sysdev_init); ++core_initcall(s3c64xx_dev_init); --- a/arch/arm/mach-s3c64xx/dma.c +++ b/arch/arm/mach-s3c64xx/dma.c @@ -16,7 +16,7 @@ @@ -1269,6 +1667,276 @@ return -ENOMEM; } +--- a/arch/arm/mach-s3c64xx/s3c6400.c ++++ b/arch/arm/mach-s3c64xx/s3c6400.c +@@ -17,7 +17,7 @@ + #include <linux/init.h> + #include <linux/clk.h> + #include <linux/io.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/serial_core.h> + #include <linux/platform_device.h> + +@@ -70,17 +70,18 @@ void __init s3c6400_init_irq(void) + s3c64xx_init_irq(~0 & ~(0xf << 5), ~0); + } + +-static struct sysdev_class s3c6400_sysclass = { +- .name = "s3c6400-core", ++static struct bus_type s3c6400_subsys = { ++ .name = "s3c6400-core", ++ .dev_name = "s3c6400-core", + }; + +-static struct sys_device s3c6400_sysdev = { +- .cls = &s3c6400_sysclass, ++static struct device s3c6400_dev = { ++ .bus = &s3c6400_subsys, + }; + + static int __init s3c6400_core_init(void) + { +- return sysdev_class_register(&s3c6400_sysclass); ++ return subsys_system_register(&s3c6400_subsys); + } + + core_initcall(s3c6400_core_init); +@@ -89,5 +90,5 @@ int __init s3c6400_init(void) + { + printk("S3C6400: Initialising architecture\n"); + +- return sysdev_register(&s3c6400_sysdev); ++ return device_register(&s3c6400_dev); + } +--- a/arch/arm/mach-s3c64xx/s3c6410.c ++++ b/arch/arm/mach-s3c64xx/s3c6410.c +@@ -18,7 +18,7 @@ + #include <linux/init.h> + #include <linux/clk.h> + #include <linux/io.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/serial_core.h> + #include <linux/platform_device.h> + +@@ -75,17 +75,18 @@ void __init s3c6410_init_irq(void) + s3c64xx_init_irq(~0 & ~(1 << 7), ~0); + } + +-struct sysdev_class s3c6410_sysclass = { +- .name = "s3c6410-core", ++struct bus_type s3c6410_subsys = { ++ .name = "s3c6410-core", ++ .dev_name = "s3c6410-core", + }; + +-static struct sys_device s3c6410_sysdev = { +- .cls = &s3c6410_sysclass, ++static struct device s3c6410_dev = { ++ .bus = &s3c6410_subsys, + }; + + static int __init s3c6410_core_init(void) + { +- return sysdev_class_register(&s3c6410_sysclass); ++ return subsys_system_register(&s3c6410_subsys); + } + + core_initcall(s3c6410_core_init); +@@ -94,5 +95,5 @@ int __init s3c6410_init(void) + { + printk("S3C6410: Initialising architecture\n"); + +- return sysdev_register(&s3c6410_sysdev); ++ return device_register(&s3c6410_dev); + } +--- a/arch/arm/mach-s5p64x0/cpu.c ++++ b/arch/arm/mach-s5p64x0/cpu.c +@@ -16,7 +16,7 @@ + #include <linux/init.h> + #include <linux/clk.h> + #include <linux/io.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/serial_core.h> + #include <linux/platform_device.h> + #include <linux/sched.h> +@@ -190,17 +190,18 @@ void __init s5p6450_init_irq(void) + s5p_init_irq(vic, ARRAY_SIZE(vic)); + } + +-struct sysdev_class s5p64x0_sysclass = { +- .name = "s5p64x0-core", ++struct bus_type s5p64x0_subsys = { ++ .name = "s5p64x0-core", ++ .dev_name = "s5p64x0-core", + }; + +-static struct sys_device s5p64x0_sysdev = { +- .cls = &s5p64x0_sysclass, ++static struct device s5p64x0_subsys = { ++ .bus = &s5p64x0_subsys, + }; + + static int __init s5p64x0_core_init(void) + { +- return sysdev_class_register(&s5p64x0_sysclass); ++ return subsys_system_register(&s5p64x0_subsys); + } + core_initcall(s5p64x0_core_init); + +@@ -211,5 +212,5 @@ int __init s5p64x0_init(void) + /* set idle function */ + pm_idle = s5p64x0_idle; + +- return sysdev_register(&s5p64x0_sysdev); ++ return device_register(&s5p64x0_dev); + } +--- a/arch/arm/mach-s5p64x0/pm.c ++++ b/arch/arm/mach-s5p64x0/pm.c +@@ -160,7 +160,7 @@ static void s5p64x0_pm_prepare(void) + + } + +-static int s5p64x0_pm_add(struct sys_device *sysdev) ++static int s5p64x0_pm_add(struct device *dev) + { + pm_cpu_prep = s5p64x0_pm_prepare; + pm_cpu_sleep = s5p64x0_cpu_suspend; +@@ -169,7 +169,9 @@ static int s5p64x0_pm_add(struct sys_dev + return 0; + } + +-static struct sysdev_driver s5p64x0_pm_driver = { ++static struct subsys_interface s5p64x0_pm_interface = { ++ .name = "s5p64x0_pm", ++ .subsys = &s5p64x0_subsys, + .add = s5p64x0_pm_add, + }; + +@@ -177,7 +179,7 @@ static __init int s5p64x0_pm_drvinit(voi + { + s3c_pm_init(); + +- return sysdev_driver_register(&s5p64x0_sysclass, &s5p64x0_pm_driver); ++ return subsys_interface_register(&s5p64x0_pm_interface); + } + arch_initcall(s5p64x0_pm_drvinit); + +--- a/arch/arm/mach-s5pc100/cpu.c ++++ b/arch/arm/mach-s5pc100/cpu.c +@@ -21,7 +21,7 @@ + #include <linux/init.h> + #include <linux/clk.h> + #include <linux/io.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/serial_core.h> + #include <linux/platform_device.h> + #include <linux/sched.h> +@@ -143,17 +143,18 @@ void __init s5pc100_init_irq(void) + s5p_init_irq(vic, ARRAY_SIZE(vic)); + } + +-static struct sysdev_class s5pc100_sysclass = { +- .name = "s5pc100-core", ++static struct bus_type s5pc100_subsys = { ++ .name = "s5pc100-core", ++ .dev_name = "s5pc100-core", + }; + +-static struct sys_device s5pc100_sysdev = { +- .cls = &s5pc100_sysclass, ++static struct device s5pc100_dev = { ++ .bus = &s5pc100_subsys, + }; + + static int __init s5pc100_core_init(void) + { +- return sysdev_class_register(&s5pc100_sysclass); ++ return subsys_system_register(&s5pc100_subsys); + } + + core_initcall(s5pc100_core_init); +@@ -165,5 +166,5 @@ int __init s5pc100_init(void) + /* set idle function */ + pm_idle = s5pc100_idle; + +- return sysdev_register(&s5pc100_sysdev); ++ return device_register(&s5pc100_sys); + } +--- a/arch/arm/mach-s5pv210/cpu.c ++++ b/arch/arm/mach-s5pv210/cpu.c +@@ -17,7 +17,7 @@ + #include <linux/module.h> + #include <linux/clk.h> + #include <linux/io.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/platform_device.h> + #include <linux/sched.h> + #include <linux/dma-mapping.h> +@@ -174,17 +174,18 @@ void __init s5pv210_init_irq(void) + s5p_init_irq(vic, ARRAY_SIZE(vic)); + } + +-struct sysdev_class s5pv210_sysclass = { +- .name = "s5pv210-core", ++struct bus_type s5pv210_subsys = { ++ .name = "s5pv210-core", ++ .dev_name = "s5pv210-core", + }; + +-static struct sys_device s5pv210_sysdev = { +- .cls = &s5pv210_sysclass, ++static struct device s5pv210_dev = { ++ .bus = &s5pv210_subsys, + }; + + static int __init s5pv210_core_init(void) + { +- return sysdev_class_register(&s5pv210_sysclass); ++ return subsys_system_register(&s5pv210_subsys); + } + + core_initcall(s5pv210_core_init); +@@ -199,5 +200,5 @@ int __init s5pv210_init(void) + /* set sw_reset function */ + s5p_reset_hook = s5pv210_sw_reset; + +- return sysdev_register(&s5pv210_sysdev); ++ return device_register(&s5pv210_dev); + } +--- a/arch/arm/mach-s5pv210/pm.c ++++ b/arch/arm/mach-s5pv210/pm.c +@@ -133,7 +133,7 @@ static void s5pv210_pm_prepare(void) + s3c_pm_do_save(s5pv210_core_save, ARRAY_SIZE(s5pv210_core_save)); + } + +-static int s5pv210_pm_add(struct sys_device *sysdev) ++static int s5pv210_pm_add(struct device *dev) + { + pm_cpu_prep = s5pv210_pm_prepare; + pm_cpu_sleep = s5pv210_cpu_suspend; +@@ -141,13 +141,15 @@ static int s5pv210_pm_add(struct sys_dev + return 0; + } + +-static struct sysdev_driver s5pv210_pm_driver = { ++static struct subsys_interface s5pv210_pm_interface = { ++ .name = "s5pv210_pm", ++ .subsys = &s5pv210_subsys, + .add = s5pv210_pm_add, + }; + + static __init int s5pv210_pm_drvinit(void) + { +- return sysdev_driver_register(&s5pv210_sysclass, &s5pv210_pm_driver); ++ return subsys_interface_register(&s5pv210_pm_interface); + } + arch_initcall(s5pv210_pm_drvinit); + --- a/arch/arm/plat-samsung/include/plat/cpu.h +++ b/arch/arm/plat-samsung/include/plat/cpu.h @@ -185,20 +185,20 @@ extern struct syscore_ops s3c2416_pm_sys |