diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2011-12-19 18:38:51 +0100 |
---|---|---|
committer | Kay Sievers <kay.sievers@vrfy.org> | 2011-12-19 18:38:51 +0100 |
commit | 13bb0455e991f4931a17dda081c18f567095acf8 (patch) | |
tree | 38e0b72b0ea4ca48fecbfdabd23c397e426c10c0 | |
parent | 94d3f33796781d7470a86a8cce2b8bd4d792261d (diff) | |
download | patches-13bb0455e991f4931a17dda081c18f567095acf8.tar.gz |
half of ARM
-rw-r--r-- | 20-arm.patch | 894 | ||||
-rw-r--r-- | series | 1 |
2 files changed, 895 insertions, 0 deletions
diff --git a/20-arm.patch b/20-arm.patch new file mode 100644 index 0000000..d91cd95 --- /dev/null +++ b/20-arm.patch @@ -0,0 +1,894 @@ +--- + arch/arm/include/asm/mach/time.h | 2 - + arch/arm/kernel/leds.c | 21 +++++++++-------- + arch/arm/mach-exynos/cpu.c | 15 ++++++------ + arch/arm/mach-exynos/pm.c | 8 ++++-- + arch/arm/mach-s3c2410/cpu-freq.c | 22 +++++++++--------- + arch/arm/mach-s3c2410/dma.c | 22 +++++++++++------- + arch/arm/mach-s3c2410/include/mach/dma.h | 4 +-- + arch/arm/mach-s3c2410/pll.c | 16 ++++++++----- + arch/arm/mach-s3c2410/pm.c | 28 ++++++++++++++--------- + arch/arm/mach-s3c2410/s3c2410.c | 24 ++++++++++--------- + arch/arm/mach-s3c2412/cpu-freq.c | 11 ++++----- + arch/arm/mach-s3c2412/dma.c | 10 ++++---- + arch/arm/mach-s3c2412/irq.c | 10 ++++---- + arch/arm/mach-s3c2412/pm.c | 10 ++++---- + arch/arm/mach-s3c2440/dma.c | 10 ++++---- + arch/arm/mach-s3c2443/dma.c | 10 ++++---- + arch/arm/mach-s3c64xx/dma.c | 23 +++++++++--------- + 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 - + 20 files changed, 157 insertions(+), 119 deletions(-) + +--- a/arch/arm/include/asm/mach/time.h ++++ b/arch/arm/include/asm/mach/time.h +@@ -10,7 +10,7 @@ + #ifndef __ASM_ARM_MACH_TIME_H + #define __ASM_ARM_MACH_TIME_H + +-#include <linux/sysdev.h> ++#include <linux/device.h> + + /* + * This is our kernel timer structure. +--- a/arch/arm/kernel/leds.c ++++ b/arch/arm/kernel/leds.c +@@ -9,7 +9,7 @@ + */ + #include <linux/export.h> + #include <linux/init.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/syscore_ops.h> + #include <linux/string.h> + +@@ -34,8 +34,8 @@ static const struct leds_evt_name evt_na + { "red", led_red_on, led_red_off }, + }; + +-static ssize_t leds_store(struct sys_device *dev, +- struct sysdev_attribute *attr, ++static ssize_t leds_store(struct device *dev, ++ struct device_attribute *attr, + const char *buf, size_t size) + { + int ret = -EINVAL, len = strcspn(buf, " "); +@@ -69,15 +69,16 @@ static ssize_t leds_store(struct sys_dev + return ret; + } + +-static SYSDEV_ATTR(event, 0200, NULL, leds_store); ++static DEVICE_ATTR(event, 0200, NULL, leds_store); + +-static struct sysdev_class leds_sysclass = { ++static struct bus_type leds_subsys = { + .name = "leds", ++ .dev_name = "leds", + }; + +-static struct sys_device leds_device = { ++static struct device leds_device = { + .id = 0, +- .cls = &leds_sysclass, ++ .bus = &leds_subsys, + }; + + static int leds_suspend(void) +@@ -105,11 +106,11 @@ static struct syscore_ops leds_syscore_o + static int __init leds_init(void) + { + int ret; +- ret = sysdev_class_register(&leds_sysclass); ++ ret = subsys_system_register(&leds_subsys); + if (ret == 0) +- ret = sysdev_register(&leds_device); ++ ret = device_register(&leds_device); + if (ret == 0) +- ret = sysdev_create_file(&leds_device, &attr_event); ++ ret = device_create_file(&leds_device, &dev_attr_event); + if (ret == 0) + register_syscore_ops(&leds_syscore_ops); + return ret; +--- a/arch/arm/mach-exynos/cpu.c ++++ b/arch/arm/mach-exynos/cpu.c +@@ -9,7 +9,7 @@ + */ + + #include <linux/sched.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + + #include <asm/mach/map.h> + #include <asm/mach/irq.h> +@@ -243,17 +243,18 @@ void __init exynos4_init_irq(void) + s5p_init_irq(NULL, 0); + } + +-struct sysdev_class exynos4_sysclass = { +- .name = "exynos4-core", ++struct bus_type exynos4_subsys = { ++ .name = "exynos4-core", ++ .dev_name = "exynos4-core", + }; + +-static struct sys_device exynos4_sysdev = { +- .cls = &exynos4_sysclass, ++static struct device exynos4_dev = { ++ .bus = &exynos4_subsys, + }; + + static int __init exynos4_core_init(void) + { +- return sysdev_class_register(&exynos4_sysclass); ++ return subsys_system_register(&exynos4_subsys, NULL); + } + core_initcall(exynos4_core_init); + +@@ -294,5 +295,5 @@ int __init exynos_init(void) + if (soc_is_exynos4210() || soc_is_exynos4212() || soc_is_exynos4412()) + s5p_reset_hook = exynos4_sw_reset; + +- return sysdev_register(&exynos4_sysdev); ++ return device_register(&exynos4_dev); + } +--- a/arch/arm/mach-exynos/pm.c ++++ b/arch/arm/mach-exynos/pm.c +@@ -205,7 +205,7 @@ static void exynos4_pm_prepare(void) + + } + +-static int exynos4_pm_add(struct sys_device *sysdev) ++static int exynos4_pm_add(struct device *dev) + { + pm_cpu_prep = exynos4_pm_prepare; + pm_cpu_sleep = exynos4_cpu_suspend; +@@ -301,7 +301,9 @@ static void exynos4_restore_pll(void) + } while (epll_wait || vpll_wait); + } + +-static struct sysdev_driver exynos4_pm_driver = { ++static struct subsys_interface exynos4_pm_interface = { ++ .name = "exynos4_pm", ++ .subsys = &exynos4_subsys, + .add = exynos4_pm_add, + }; + +@@ -325,7 +327,7 @@ static __init int exynos4_pm_drvinit(voi + clk_put(pll_base); + } + +- return sysdev_driver_register(&exynos4_sysclass, &exynos4_pm_driver); ++ return subsys_interface_register(&exynos4_pm_interface); + } + arch_initcall(exynos4_pm_drvinit); + +--- a/arch/arm/mach-s3c2410/cpu-freq.c ++++ b/arch/arm/mach-s3c2410/cpu-freq.c +@@ -16,7 +16,7 @@ + #include <linux/interrupt.h> + #include <linux/ioport.h> + #include <linux/cpufreq.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/clk.h> + #include <linux/err.h> + #include <linux/io.h> +@@ -115,24 +115,25 @@ static struct s3c_cpufreq_info s3c2410_c + .debug_io_show = s3c_cpufreq_debugfs_call(s3c2410_iotiming_debugfs), + }; + +-static int s3c2410_cpufreq_add(struct sys_device *sysdev) ++static int s3c2410_cpufreq_add(struct device *dev) + { + return s3c_cpufreq_register(&s3c2410_cpufreq_info); + } + +-static struct sysdev_driver s3c2410_cpufreq_driver = { ++static struct subsys_interface s3c2410_cpufreq_interface = { ++ .name = "s3c2410_cpufreq", ++ .subsys = &s3c2410_subsys, + .add = s3c2410_cpufreq_add, + }; + + static int __init s3c2410_cpufreq_init(void) + { +- return sysdev_driver_register(&s3c2410_sysclass, +- &s3c2410_cpufreq_driver); ++ return subsys_interface_register(&s3c2410_cpufreq_interface); + } + + arch_initcall(s3c2410_cpufreq_init); + +-static int s3c2410a_cpufreq_add(struct sys_device *sysdev) ++static int s3c2410a_cpufreq_add(struct device *dev) + { + /* alter the maximum freq settings for S3C2410A. If a board knows + * it only has a maximum of 200, then it should register its own +@@ -143,17 +144,18 @@ static int s3c2410a_cpufreq_add(struct s + s3c2410_cpufreq_info.max.pclk = 66500000; + s3c2410_cpufreq_info.name = "s3c2410a"; + +- return s3c2410_cpufreq_add(sysdev); ++ return s3c2410_cpufreq_add(dev); + } + +-static struct sysdev_driver s3c2410a_cpufreq_driver = { ++static struct subsys_interface s3c2410a_cpufreq_interface = { ++ .name = "s3c2410a_cpufreq", ++ .subsys = &s3c2410a_subsys, + .add = s3c2410a_cpufreq_add, + }; + + static int __init s3c2410a_cpufreq_init(void) + { +- return sysdev_driver_register(&s3c2410a_sysclass, +- &s3c2410a_cpufreq_driver); ++ return subsys_interface_register(&s3c2410a_cpufreq_interface); + } + + arch_initcall(s3c2410a_cpufreq_init); +--- a/arch/arm/mach-s3c2410/dma.c ++++ b/arch/arm/mach-s3c2410/dma.c +@@ -14,7 +14,7 @@ + + #include <linux/kernel.h> + #include <linux/init.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/serial_core.h> + + #include <mach/map.h> +@@ -132,7 +132,7 @@ static struct s3c24xx_dma_order __initda + }, + }; + +-static int __init s3c2410_dma_add(struct sys_device *sysdev) ++static int __init s3c2410_dma_add(struct device *dev) + { + s3c2410_dma_init(); + s3c24xx_dma_order_set(&s3c2410_dma_order); +@@ -140,24 +140,28 @@ static int __init s3c2410_dma_add(struct + } + + #if defined(CONFIG_CPU_S3C2410) +-static struct sysdev_driver s3c2410_dma_driver = { ++static struct subsys_interface s3c2410_dma_interface = { ++ .name = "s3c2410_dma", ++ .subsys = &s3c2410_subsys, + .add = s3c2410_dma_add, + }; + + static int __init s3c2410_dma_drvinit(void) + { +- return sysdev_driver_register(&s3c2410_sysclass, &s3c2410_dma_driver); ++ return subsys_interface_register(&s3c2410_interface); + } + + arch_initcall(s3c2410_dma_drvinit); + +-static struct sysdev_driver s3c2410a_dma_driver = { ++static struct subsys_interface s3c2410a_dma_interface = { ++ .name = "s3c2410a_dma", ++ .subsys = &s3c2410a_subsys, + .add = s3c2410_dma_add, + }; + + static int __init s3c2410a_dma_drvinit(void) + { +- return sysdev_driver_register(&s3c2410a_sysclass, &s3c2410a_dma_driver); ++ return subsys_interface_register(&s3c2410a_dma_interface); + } + + arch_initcall(s3c2410a_dma_drvinit); +@@ -165,13 +169,15 @@ arch_initcall(s3c2410a_dma_drvinit); + + #if defined(CONFIG_CPU_S3C2442) + /* S3C2442 DMA contains the same selection table as the S3C2410 */ +-static struct sysdev_driver s3c2442_dma_driver = { ++static struct subsys_interface s3c2442_dma_interface = { ++ .name = "s3c2442_dma", ++ .subsys = &s3c2442_subsys, + .add = s3c2410_dma_add, + }; + + static int __init s3c2442_dma_drvinit(void) + { +- return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_dma_driver); ++ return subsys_interface_register(&s3c2442_dma_interface); + } + + arch_initcall(s3c2442_dma_drvinit); +--- a/arch/arm/mach-s3c2410/include/mach/dma.h ++++ b/arch/arm/mach-s3c2410/include/mach/dma.h +@@ -13,7 +13,7 @@ + #ifndef __ASM_ARCH_DMA_H + #define __ASM_ARCH_DMA_H __FILE__ + +-#include <linux/sysdev.h> ++#include <linux/device.h> + + #define MAX_DMA_TRANSFER_SIZE 0x100000 /* Data Unit is half word */ + +@@ -202,7 +202,7 @@ struct s3c2410_dma_chan { + struct s3c2410_dma_buf *end; /* end of queue */ + + /* system device */ +- struct sys_device dev; ++ struct device dev; + }; + + typedef unsigned long dma_device_t; +--- a/arch/arm/mach-s3c2410/pll.c ++++ b/arch/arm/mach-s3c2410/pll.c +@@ -25,7 +25,7 @@ + #include <linux/types.h> + #include <linux/kernel.h> + #include <linux/module.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/list.h> + #include <linux/clk.h> + #include <linux/err.h> +@@ -66,30 +66,34 @@ static struct cpufreq_frequency_table pl + { .frequency = 270000000, .index = PLLVAL(127, 1, 1), }, + }; + +-static int s3c2410_plls_add(struct sys_device *dev) ++static int s3c2410_plls_add(struct device *dev) + { + return s3c_plltab_register(pll_vals_12MHz, ARRAY_SIZE(pll_vals_12MHz)); + } + +-static struct sysdev_driver s3c2410_plls_drv = { ++static struct subsys_interface s3c2410_plls_interface = { ++ .name = "s3c2410_plls", ++ .susbys = &s3c2410_subsys, + .add = s3c2410_plls_add, + }; + + static int __init s3c2410_pll_init(void) + { +- return sysdev_driver_register(&s3c2410_sysclass, &s3c2410_plls_drv); ++ return subsys_interface_register(&s3c2410_plls_interface); + + } + + arch_initcall(s3c2410_pll_init); + +-static struct sysdev_driver s3c2410a_plls_drv = { ++static struct subsys_interface s3c2410a_plls_interface = { ++ .name = "s3c2410a_plls", ++ .subsys = &s3c2410a_subsys, + .add = s3c2410_plls_add, + }; + + static int __init s3c2410a_pll_init(void) + { +- return sysdev_driver_register(&s3c2410a_sysclass, &s3c2410a_plls_drv); ++ return subsys_interface_register(&s3c2410a_plls_interface); + } + + arch_initcall(s3c2410a_pll_init); +--- a/arch/arm/mach-s3c2410/pm.c ++++ b/arch/arm/mach-s3c2410/pm.c +@@ -24,7 +24,7 @@ + #include <linux/suspend.h> + #include <linux/errno.h> + #include <linux/time.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/syscore_ops.h> + #include <linux/gpio.h> + #include <linux/io.h> +@@ -111,7 +111,7 @@ struct syscore_ops s3c2410_pm_syscore_op + .resume = s3c2410_pm_resume, + }; + +-static int s3c2410_pm_add(struct sys_device *dev) ++static int s3c2410_pm_add(struct device *dev) + { + pm_cpu_prep = s3c2410_pm_prepare; + pm_cpu_sleep = s3c2410_cpu_suspend; +@@ -120,7 +120,9 @@ static int s3c2410_pm_add(struct sys_dev + } + + #if defined(CONFIG_CPU_S3C2410) +-static struct sysdev_driver s3c2410_pm_driver = { ++static struct subsys_interface s3c2410_pm_interface = { ++ .name = "s3c2410_pm", ++ .subsys = &s3c2410_subsys, + .add = s3c2410_pm_add, + }; + +@@ -128,44 +130,50 @@ static struct sysdev_driver s3c2410_pm_d + + static int __init s3c2410_pm_drvinit(void) + { +- return sysdev_driver_register(&s3c2410_sysclass, &s3c2410_pm_driver); ++ return subsys_interface_register(&s3c2410_pm_interface); + } + + arch_initcall(s3c2410_pm_drvinit); + +-static struct sysdev_driver s3c2410a_pm_driver = { ++static struct subsys_interface s3c2410a_pm_interface = { ++ .name = "s3c2410a_pm", ++ subsys = &s3c2410a_subsys, + .add = s3c2410_pm_add, + }; + + static int __init s3c2410a_pm_drvinit(void) + { +- return sysdev_driver_register(&s3c2410a_sysclass, &s3c2410a_pm_driver); ++ return subsys_interface_register(&s3c2410a_pm_interface); + } + + arch_initcall(s3c2410a_pm_drvinit); + #endif + + #if defined(CONFIG_CPU_S3C2440) +-static struct sysdev_driver s3c2440_pm_driver = { ++static struct subsys_interface s3c2440_pm_interface = { ++ .name = "s3c2440_pm", ++ .subsys = &s3c2440_subsys, + .add = s3c2410_pm_add, + }; + + static int __init s3c2440_pm_drvinit(void) + { +- return sysdev_driver_register(&s3c2440_sysclass, &s3c2440_pm_driver); ++ return subsys_interface_register(&s3c2440_pm_interface); + } + + arch_initcall(s3c2440_pm_drvinit); + #endif + + #if defined(CONFIG_CPU_S3C2442) +-static struct sysdev_driver s3c2442_pm_driver = { ++static struct subsys_interface s3c2442_pm_interface = { ++ .name = "s3c2442_pm", ++ .subsys = &s3c2442_subsys, + .add = s3c2410_pm_add, + }; + + static int __init s3c2442_pm_drvinit(void) + { +- return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_pm_driver); ++ return subsys_interface_register(&s3c2442_pm_interface); + } + + arch_initcall(s3c2442_pm_drvinit); +--- a/arch/arm/mach-s3c2410/s3c2410.c ++++ b/arch/arm/mach-s3c2410/s3c2410.c +@@ -18,7 +18,7 @@ + #include <linux/init.h> + #include <linux/gpio.h> + #include <linux/clk.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/syscore_ops.h> + #include <linux/serial_core.h> + #include <linux/platform_device.h> +@@ -131,22 +131,24 @@ void __init s3c2410_init_clocks(int xtal + s3c24xx_register_clock(&s3c2410_armclk); + } + +-struct sysdev_class s3c2410_sysclass = { ++struct bus_type s3c2410_subsys = { + .name = "s3c2410-core", ++ .dev_name = "s3c2410-core", + }; + + /* Note, we would have liked to name this s3c2410-core, but we cannot +- * register two sysdev_class with the same name. ++ * register two subsystems with the same name. + */ +-struct sysdev_class s3c2410a_sysclass = { ++struct bus_type s3c2410a_subsys = { + .name = "s3c2410a-core", ++ .dev_name = "s3c2410a-core", + }; + +-static struct sys_device s3c2410_sysdev = { +- .cls = &s3c2410_sysclass, ++static struct device s3c2410_dev = { ++ .bus = &s3c2410_subsys, + }; + +-/* 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 s3c2410 based system) + * as a driver which may support both 2410 and 2440 may try and use it. +@@ -154,14 +156,14 @@ static struct sys_device s3c2410_sysdev + + static int __init s3c2410_core_init(void) + { +- return sysdev_class_register(&s3c2410_sysclass); ++ return subsys_system_register(&s3c2410_subsys, NULL); + } + + core_initcall(s3c2410_core_init); + + static int __init s3c2410a_core_init(void) + { +- return sysdev_class_register(&s3c2410a_sysclass); ++ return subsys_system_register(&s3c2410a_subsys); + } + + core_initcall(s3c2410a_core_init); +@@ -175,11 +177,11 @@ int __init s3c2410_init(void) + #endif + register_syscore_ops(&s3c24xx_irq_syscore_ops); + +- return sysdev_register(&s3c2410_sysdev); ++ return device_register(&s3c2410_dev); + } + + int __init s3c2410a_init(void) + { +- s3c2410_sysdev.cls = &s3c2410a_sysclass; ++ s3c2410_dev.bus = &s3c2410a_subsys; + return s3c2410_init(); + } +--- a/arch/arm/mach-s3c2412/cpu-freq.c ++++ b/arch/arm/mach-s3c2412/cpu-freq.c +@@ -16,7 +16,7 @@ + #include <linux/interrupt.h> + #include <linux/ioport.h> + #include <linux/cpufreq.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/delay.h> + #include <linux/clk.h> + #include <linux/err.h> +@@ -194,7 +194,7 @@ static struct s3c_cpufreq_info s3c2412_c + .debug_io_show = s3c_cpufreq_debugfs_call(s3c2412_iotiming_debugfs), + }; + +-static int s3c2412_cpufreq_add(struct sys_device *sysdev) ++static int s3c2412_cpufreq_add(struct device *dev) + { + unsigned long fclk_rate; + +@@ -244,14 +244,15 @@ err_fclk: + return -ENOENT; + } + +-static struct sysdev_driver s3c2412_cpufreq_driver = { ++static struct subsys_interface s3c2412_cpufreq_interface = { ++ .name = "s3c2412_cpufreq", ++ .subsys = &s3c2412_subsys, + .add = s3c2412_cpufreq_add, + }; + + static int s3c2412_cpufreq_init(void) + { +- return sysdev_driver_register(&s3c2412_sysclass, +- &s3c2412_cpufreq_driver); ++ return subsys_interface_register(&s3c2412_cpufreq_interface); + } + + arch_initcall(s3c2412_cpufreq_init); +--- a/arch/arm/mach-s3c2412/dma.c ++++ b/arch/arm/mach-s3c2412/dma.c +@@ -14,7 +14,7 @@ + + #include <linux/kernel.h> + #include <linux/init.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/serial_core.h> + #include <linux/io.h> + +@@ -159,19 +159,21 @@ static struct s3c24xx_dma_selection __in + .map_size = ARRAY_SIZE(s3c2412_dma_mappings), + }; + +-static int __init s3c2412_dma_add(struct sys_device *sysdev) ++static int __init s3c2412_dma_add(struct device *dev) + { + s3c2410_dma_init(); + return s3c24xx_dma_init_map(&s3c2412_dma_sel); + } + +-static struct sysdev_driver s3c2412_dma_driver = { ++static struct subsys_interface s3c2412_dma_interface = { ++ .name = "s3c2412_dma", ++ .subsys = &s3c2412_subsys, + .add = s3c2412_dma_add, + }; + + static int __init s3c2412_dma_init(void) + { +- return sysdev_driver_register(&s3c2412_sysclass, &s3c2412_dma_driver); ++ return subsys_interface_register(&s3c2412_dma_interface); + } + + arch_initcall(s3c2412_dma_init); +--- a/arch/arm/mach-s3c2412/irq.c ++++ b/arch/arm/mach-s3c2412/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> +@@ -170,7 +170,7 @@ static int s3c2412_irq_rtc_wake(struct i + + static struct irq_chip s3c2412_irq_rtc_chip; + +-static int s3c2412_irq_add(struct sys_device *sysdev) ++static int s3c2412_irq_add(struct device *dev) + { + unsigned int irqno; + +@@ -200,13 +200,15 @@ static int s3c2412_irq_add(struct sys_de + return 0; + } + +-static struct sysdev_driver s3c2412_irq_driver = { ++static struct subsys_interface s3c2412_irq_interface = { ++ .name = "s3c2412_irq", ++ .subsys = &s3c2412_subsys, + .add = s3c2412_irq_add, + }; + + static int s3c2412_irq_init(void) + { +- return sysdev_driver_register(&s3c2412_sysclass, &s3c2412_irq_driver); ++ return subsys_interface_register(&s3c2412_irq_interface); + } + + arch_initcall(s3c2412_irq_init); +--- a/arch/arm/mach-s3c2412/pm.c ++++ b/arch/arm/mach-s3c2412/pm.c +@@ -16,7 +16,7 @@ + #include <linux/list.h> + #include <linux/timer.h> + #include <linux/init.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/syscore_ops.h> + #include <linux/platform_device.h> + #include <linux/io.h> +@@ -56,7 +56,7 @@ static void s3c2412_pm_prepare(void) + { + } + +-static int s3c2412_pm_add(struct sys_device *sysdev) ++static int s3c2412_pm_add(struct device *dev) + { + pm_cpu_prep = s3c2412_pm_prepare; + pm_cpu_sleep = s3c2412_cpu_suspend; +@@ -87,13 +87,15 @@ static struct sleep_save s3c2412_sleep[] + SAVE_ITEM(S3C2413_GPJSLPCON), + }; + +-static struct sysdev_driver s3c2412_pm_driver = { ++static struct subsys_interface s3c2412_pm_interface = { ++ .name = "s3c2412_pm", ++ .subsys = &s3c2412_subsys, + .add = s3c2412_pm_add, + }; + + static __init int s3c2412_pm_init(void) + { +- return sysdev_driver_register(&s3c2412_sysclass, &s3c2412_pm_driver); ++ return subsys_interface_register_register(&s3c2412_pm_interface); + } + + arch_initcall(s3c2412_pm_init); +--- a/arch/arm/mach-s3c2440/dma.c ++++ b/arch/arm/mach-s3c2440/dma.c +@@ -14,7 +14,7 @@ + + #include <linux/kernel.h> + #include <linux/init.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/serial_core.h> + + #include <mach/map.h> +@@ -174,20 +174,22 @@ static struct s3c24xx_dma_order __initda + }, + }; + +-static int __init s3c2440_dma_add(struct sys_device *sysdev) ++static int __init s3c2440_dma_add(struct device *dev) + { + s3c2410_dma_init(); + s3c24xx_dma_order_set(&s3c2440_dma_order); + return s3c24xx_dma_init_map(&s3c2440_dma_sel); + } + +-static struct sysdev_driver s3c2440_dma_driver = { ++static struct subsys_interface s3c2440_dma_interface = { ++ .name = "s3c2440_dma", ++ .subsys = &s3c2440_subsys, + .add = s3c2440_dma_add, + }; + + static int __init s3c2440_dma_init(void) + { +- return sysdev_driver_register(&s3c2440_sysclass, &s3c2440_dma_driver); ++ return subsys_interface_register(&s3c2440_dma_interface); + } + + arch_initcall(s3c2440_dma_init); +--- a/arch/arm/mach-s3c2443/dma.c ++++ b/arch/arm/mach-s3c2443/dma.c +@@ -14,7 +14,7 @@ + + #include <linux/kernel.h> + #include <linux/init.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/serial_core.h> + #include <linux/io.h> + +@@ -135,19 +135,21 @@ static struct s3c24xx_dma_selection __in + .map_size = ARRAY_SIZE(s3c2443_dma_mappings), + }; + +-static int __init s3c2443_dma_add(struct sys_device *sysdev) ++static int __init s3c2443_dma_add(struct device *dev) + { + s3c24xx_dma_init(6, IRQ_S3C2443_DMA0, 0x100); + return s3c24xx_dma_init_map(&s3c2443_dma_sel); + } + +-static struct sysdev_driver s3c2443_dma_driver = { ++static struct subsys_interface s3c2443_dma_interface = { ++ .name = "s3c2443_dma", ++ .subsys = &s3c2443_subsys, + .add = s3c2443_dma_add, + }; + + static int __init s3c2443_dma_init(void) + { +- return sysdev_driver_register(&s3c2443_sysclass, &s3c2443_dma_driver); ++ return subsys_interface_register(&s3c2443_dma_interface); + } + + arch_initcall(s3c2443_dma_init); +--- a/arch/arm/mach-s3c64xx/dma.c ++++ b/arch/arm/mach-s3c64xx/dma.c +@@ -16,7 +16,7 @@ + #include <linux/module.h> + #include <linux/interrupt.h> + #include <linux/dmapool.h> +-#include <linux/sysdev.h> ++#include <linux/device.h> + #include <linux/errno.h> + #include <linux/slab.h> + #include <linux/delay.h> +@@ -35,7 +35,7 @@ + /* dma channel state information */ + + struct s3c64xx_dmac { +- struct sys_device sysdev; ++ struct device dev; + struct clk *clk; + void __iomem *regs; + struct s3c2410_dma_chan *channels; +@@ -631,8 +631,9 @@ static irqreturn_t s3c64xx_dma_irq(int i + return IRQ_HANDLED; + } + +-static struct sysdev_class dma_sysclass = { ++static struct bus_type dma_subsys = { + .name = "s3c64xx-dma", ++ .dev_name = "s3c64xx-dma", + }; + + static int s3c64xx_dma_init1(int chno, enum dma_ch chbase, +@@ -651,12 +652,12 @@ static int s3c64xx_dma_init1(int chno, e + return -ENOMEM; + } + +- dmac->sysdev.id = chno / 8; +- dmac->sysdev.cls = &dma_sysclass; ++ dmac->dev.id = chno / 8; ++ dmac->dev.bus = &dma_subsys; + +- err = sysdev_register(&dmac->sysdev); ++ err = device_register(&dmac->dev); + if (err) { +- printk(KERN_ERR "%s: failed to register sysdevice\n", __func__); ++ printk(KERN_ERR "%s: failed to register device\n", __func__); + goto err_alloc; + } + +@@ -667,7 +668,7 @@ static int s3c64xx_dma_init1(int chno, e + goto err_dev; + } + +- snprintf(clkname, sizeof(clkname), "dma%d", dmac->sysdev.id); ++ snprintf(clkname, sizeof(clkname), "dma%d", dmac->dev.id); + + dmac->clk = clk_get(NULL, clkname); + if (IS_ERR(dmac->clk)) { +@@ -715,7 +716,7 @@ err_clk: + err_map: + iounmap(regs); + err_dev: +- sysdev_unregister(&dmac->sysdev); ++ device_unregister(&dmac->dev); + err_alloc: + kfree(dmac); + return err; +@@ -733,9 +734,9 @@ static int __init s3c64xx_dma_init(void) + return -ENOMEM; + } + +- ret = sysdev_class_register(&dma_sysclass); ++ ret = subsys_system_register(&dma_subsys, NULL); + if (ret) { +- printk(KERN_ERR "%s: failed to create sysclass\n", __func__); ++ printk(KERN_ERR "%s: failed to create subsys\n", __func__); + return -ENOMEM; + } + +--- 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 + extern struct syscore_ops s3c244x_pm_syscore_ops; + extern struct syscore_ops s3c64xx_irq_syscore_ops; + +-/* system device classes */ ++/* system device subsystems */ + +-extern struct sysdev_class s3c2410_sysclass; +-extern struct sysdev_class s3c2410a_sysclass; +-extern struct sysdev_class s3c2412_sysclass; +-extern struct sysdev_class s3c2416_sysclass; +-extern struct sysdev_class s3c2440_sysclass; +-extern struct sysdev_class s3c2442_sysclass; +-extern struct sysdev_class s3c2443_sysclass; +-extern struct sysdev_class s3c6410_sysclass; +-extern struct sysdev_class s3c64xx_sysclass; +-extern struct sysdev_class s5p64x0_sysclass; +-extern struct sysdev_class s5pv210_sysclass; +-extern struct sysdev_class exynos4_sysclass; ++extern struct bus_type s3c2410_subsys; ++extern struct bus_type s3c2410a_subsys; ++extern struct bus_type s3c2412_subsys; ++extern struct bus_type s3c2416_subsys; ++extern struct bus_type s3c2440_subsys; ++extern struct bus_type s3c2442_subsys; ++extern struct bus_type s3c2443_subsys; ++extern struct bus_type s3c6410_subsys; ++extern struct bus_type s3c64xx_subsys; ++extern struct bus_type s5p64x0_subsys; ++extern struct bus_type s5pv210_subsys; ++extern struct bus_type exynos4_subsys; + + extern void (*s5pc1xx_idle)(void); + +--- a/arch/arm/plat-samsung/include/plat/dma-s3c24xx.h ++++ b/arch/arm/plat-samsung/include/plat/dma-s3c24xx.h +@@ -12,7 +12,7 @@ + + #include <plat/dma-core.h> + +-extern struct sysdev_class dma_sysclass; ++extern struct bus_type dma_subsys; + extern struct s3c2410_dma_chan s3c2410_chans[S3C_DMA_CHANNELS]; + + #define DMA_CH_VALID (1<<31) +--- a/arch/arm/plat-samsung/include/plat/pm.h ++++ b/arch/arm/plat-samsung/include/plat/pm.h +@@ -17,7 +17,7 @@ + + #include <linux/irq.h> + +-struct sys_device; ++struct device; + + #ifdef CONFIG_PM + @@ -15,4 +15,5 @@ 17-mips-txx9-7segled.patch 18-mips-txx9_sram.patch 19-m68k-gpio.patch +20-arm.patch 99-core-remove.patch |