Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core

* 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (73 commits)
  arm: fix up some samsung merge sysdev conversion problems
  firmware: Fix an oops on reading fw_priv->fw in sysfs loading file
  Drivers:hv: Fix a bug in vmbus_driver_unregister()
  driver core: remove __must_check from device_create_file
  debugfs: add missing #ifdef HAS_IOMEM
  arm: time.h: remove device.h #include
  driver-core: remove sysdev.h usage.
  clockevents: remove sysdev.h
  arm: convert sysdev_class to a regular subsystem
  arm: leds: convert sysdev_class to a regular subsystem
  kobject: remove kset_find_obj_hinted()
  m86k: gpio - convert sysdev_class to a regular subsystem
  mips: txx9_sram - convert sysdev_class to a regular subsystem
  mips: 7segled - convert sysdev_class to a regular subsystem
  sh: dma - convert sysdev_class to a regular subsystem
  sh: intc - convert sysdev_class to a regular subsystem
  power: suspend - convert sysdev_class to a regular subsystem
  power: qe_ic - convert sysdev_class to a regular subsystem
  power: cmm - convert sysdev_class to a regular subsystem
  s390: time - convert sysdev_class to a regular subsystem
  ...

Fix up conflicts with 'struct sysdev' removal from various platform
drivers that got changed:
 - arch/arm/mach-exynos/cpu.c
 - arch/arm/mach-exynos/irq-eint.c
 - arch/arm/mach-s3c64xx/common.c
 - arch/arm/mach-s3c64xx/cpu.c
 - arch/arm/mach-s5p64x0/cpu.c
 - arch/arm/mach-s5pv210/common.c
 - arch/arm/plat-samsung/include/plat/cpu.h
 - arch/powerpc/kernel/sysfs.c
and fix up cpu_is_hotpluggable() as per Greg in include/linux/cpu.h
This commit is contained in:
Linus Torvalds 2012-01-07 12:03:30 -08:00
commit 7affca3537
517 changed files with 3168 additions and 6890 deletions

View File

@ -275,8 +275,8 @@ versions.
If no 2.6.x.y kernel is available, then the highest numbered 2.6.x If no 2.6.x.y kernel is available, then the highest numbered 2.6.x
kernel is the current stable kernel. kernel is the current stable kernel.
2.6.x.y are maintained by the "stable" team <stable@kernel.org>, and are 2.6.x.y are maintained by the "stable" team <stable@vger.kernel.org>, and
released as needs dictate. The normal release period is approximately are released as needs dictate. The normal release period is approximately
two weeks, but it can be longer if there are no pressing problems. A two weeks, but it can be longer if there are no pressing problems. A
security-related problem, instead, can cause a release to happen almost security-related problem, instead, can cause a release to happen almost
instantly. instantly.

View File

@ -271,10 +271,10 @@ copies should go to:
the linux-kernel list. the linux-kernel list.
- If you are fixing a bug, think about whether the fix should go into the - If you are fixing a bug, think about whether the fix should go into the
next stable update. If so, stable@kernel.org should get a copy of the next stable update. If so, stable@vger.kernel.org should get a copy of
patch. Also add a "Cc: stable@kernel.org" to the tags within the patch the patch. Also add a "Cc: stable@vger.kernel.org" to the tags within
itself; that will cause the stable team to get a notification when your the patch itself; that will cause the stable team to get a notification
fix goes into the mainline. when your fix goes into the mainline.
When selecting recipients for a patch, it is good to have an idea of who When selecting recipients for a patch, it is good to have an idea of who
you think will eventually accept the patch and get it merged. While it you think will eventually accept the patch and get it merged. While it

View File

@ -262,6 +262,7 @@ IOMAP
devm_ioremap() devm_ioremap()
devm_ioremap_nocache() devm_ioremap_nocache()
devm_iounmap() devm_iounmap()
devm_request_and_ioremap() : checks resource, requests region, ioremaps
pcim_iomap() pcim_iomap()
pcim_iounmap() pcim_iounmap()
pcim_iomap_table() : array of mapped addresses indexed by BAR pcim_iomap_table() : array of mapped addresses indexed by BAR

View File

@ -97,7 +97,8 @@ A read on the resulting file will yield either Y (for non-zero values) or
N, followed by a newline. If written to, it will accept either upper- or N, followed by a newline. If written to, it will accept either upper- or
lower-case values, or 1 or 0. Any other input will be silently ignored. lower-case values, or 1 or 0. Any other input will be silently ignored.
Finally, a block of arbitrary binary data can be exported with: Another option is exporting a block of arbitrary binary data, with
this structure and function:
struct debugfs_blob_wrapper { struct debugfs_blob_wrapper {
void *data; void *data;
@ -115,6 +116,35 @@ can be used to export binary information, but there does not appear to be
any code which does so in the mainline. Note that all files created with any code which does so in the mainline. Note that all files created with
debugfs_create_blob() are read-only. debugfs_create_blob() are read-only.
If you want to dump a block of registers (something that happens quite
often during development, even if little such code reaches mainline.
Debugfs offers two functions: one to make a registers-only file, and
another to insert a register block in the middle of another sequential
file.
struct debugfs_reg32 {
char *name;
unsigned long offset;
};
struct debugfs_regset32 {
struct debugfs_reg32 *regs;
int nregs;
void __iomem *base;
};
struct dentry *debugfs_create_regset32(const char *name, mode_t mode,
struct dentry *parent,
struct debugfs_regset32 *regset);
int debugfs_print_regs32(struct seq_file *s, struct debugfs_reg32 *regs,
int nregs, void __iomem *base, char *prefix);
The "base" argument may be 0, but you may want to build the reg32 array
using __stringify, and a number of register names (macros) are actually
byte offsets over a base for the register block.
There are a couple of other directory-oriented helper functions: There are a couple of other directory-oriented helper functions:
struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *debugfs_rename(struct dentry *old_dir,

View File

@ -6259,7 +6259,7 @@ F: arch/alpha/kernel/srm_env.c
STABLE BRANCH STABLE BRANCH
M: Greg Kroah-Hartman <greg@kroah.com> M: Greg Kroah-Hartman <greg@kroah.com>
L: stable@kernel.org L: stable@vger.kernel.org
S: Maintained S: Maintained
STAGING SUBSYSTEM STAGING SUBSYSTEM

View File

@ -10,8 +10,6 @@
#ifndef __ASM_ARM_MACH_TIME_H #ifndef __ASM_ARM_MACH_TIME_H
#define __ASM_ARM_MACH_TIME_H #define __ASM_ARM_MACH_TIME_H
#include <linux/sysdev.h>
/* /*
* This is our kernel timer structure. * This is our kernel timer structure.
* *

View File

@ -9,7 +9,7 @@
*/ */
#include <linux/export.h> #include <linux/export.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <linux/string.h> #include <linux/string.h>
@ -34,8 +34,8 @@ static const struct leds_evt_name evt_names[] = {
{ "red", led_red_on, led_red_off }, { "red", led_red_on, led_red_off },
}; };
static ssize_t leds_store(struct sys_device *dev, static ssize_t leds_store(struct device *dev,
struct sysdev_attribute *attr, struct device_attribute *attr,
const char *buf, size_t size) const char *buf, size_t size)
{ {
int ret = -EINVAL, len = strcspn(buf, " "); int ret = -EINVAL, len = strcspn(buf, " ");
@ -69,15 +69,16 @@ static ssize_t leds_store(struct sys_device *dev,
return ret; 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", .name = "leds",
.dev_name = "leds",
}; };
static struct sys_device leds_device = { static struct device leds_device = {
.id = 0, .id = 0,
.cls = &leds_sysclass, .bus = &leds_subsys,
}; };
static int leds_suspend(void) static int leds_suspend(void)
@ -105,11 +106,11 @@ static struct syscore_ops leds_syscore_ops = {
static int __init leds_init(void) static int __init leds_init(void)
{ {
int ret; int ret;
ret = sysdev_class_register(&leds_sysclass); ret = subsys_system_register(&leds_subsys, NULL);
if (ret == 0) if (ret == 0)
ret = sysdev_register(&leds_device); ret = device_register(&leds_device);
if (ret == 0) if (ret == 0)
ret = sysdev_create_file(&leds_device, &attr_event); ret = device_create_file(&leds_device, &dev_attr_event);
if (ret == 0) if (ret == 0)
register_syscore_ops(&leds_syscore_ops); register_syscore_ops(&leds_syscore_ops);
return ret; return ret;

View File

@ -25,7 +25,6 @@
#include <linux/device.h> #include <linux/device.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sysdev.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/amba/bus.h> #include <linux/amba/bus.h>
#include <linux/clkdev.h> #include <linux/clkdev.h>

View File

@ -13,7 +13,7 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
@ -423,17 +423,18 @@ void __init exynos4_init_irq(void)
s5p_init_irq(NULL, 0); s5p_init_irq(NULL, 0);
} }
struct sysdev_class exynos4_sysclass = { struct bus_type exynos4_subsys = {
.name = "exynos4-core", .name = "exynos4-core",
.dev_name = "exynos4-core",
}; };
static struct sys_device exynos4_sysdev = { static struct device exynos4_dev = {
.cls = &exynos4_sysclass, .bus = &exynos4_subsys,
}; };
static int __init exynos4_core_init(void) 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); core_initcall(exynos4_core_init);
@ -470,7 +471,7 @@ int __init exynos_init(void)
/* set idle function */ /* set idle function */
pm_idle = exynos_idle; pm_idle = exynos_idle;
return sysdev_register(&exynos4_sysdev); return device_register(&exynos4_dev);
} }
static struct s3c24xx_uart_clksrc exynos4_serial_clocks[] = { static struct s3c24xx_uart_clksrc exynos4_serial_clocks[] = {

View File

@ -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_prep = exynos4_pm_prepare;
pm_cpu_sleep = exynos4_cpu_suspend; pm_cpu_sleep = exynos4_cpu_suspend;
@ -301,8 +301,10 @@ static void exynos4_restore_pll(void)
} while (epll_wait || vpll_wait); } while (epll_wait || vpll_wait);
} }
static struct sysdev_driver exynos4_pm_driver = { static struct subsys_interface exynos4_pm_interface = {
.add = exynos4_pm_add, .name = "exynos4_pm",
.subsys = &exynos4_subsys,
.add_dev = exynos4_pm_add,
}; };
static __init int exynos4_pm_drvinit(void) static __init int exynos4_pm_drvinit(void)
@ -325,7 +327,7 @@ static __init int exynos4_pm_drvinit(void)
clk_put(pll_base); 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); arch_initcall(exynos4_pm_drvinit);

View File

@ -14,7 +14,7 @@
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/amba/bus.h> #include <linux/amba/bus.h>
#include <linux/amba/kmi.h> #include <linux/amba/kmi.h>
#include <linux/amba/clcd.h> #include <linux/amba/clcd.h>

View File

@ -23,7 +23,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h> #include <mach/hardware.h>

View File

@ -18,7 +18,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>

View File

@ -18,7 +18,7 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/delay.h> #include <linux/delay.h>

View File

@ -21,7 +21,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/amba/bus.h> #include <linux/amba/bus.h>
#include <linux/amba/clcd.h> #include <linux/amba/clcd.h>

View File

@ -21,7 +21,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/amba/bus.h> #include <linux/amba/bus.h>
#include <linux/amba/pl061.h> #include <linux/amba/pl061.h>
#include <linux/amba/mmci.h> #include <linux/amba/mmci.h>

View File

@ -21,7 +21,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/amba/bus.h> #include <linux/amba/bus.h>
#include <linux/amba/pl061.h> #include <linux/amba/pl061.h>
#include <linux/amba/mmci.h> #include <linux/amba/mmci.h>

View File

@ -21,7 +21,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/amba/bus.h> #include <linux/amba/bus.h>
#include <linux/amba/pl061.h> #include <linux/amba/pl061.h>
#include <linux/amba/mmci.h> #include <linux/amba/mmci.h>

View File

@ -21,7 +21,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/amba/bus.h> #include <linux/amba/bus.h>
#include <linux/amba/pl061.h> #include <linux/amba/pl061.h>
#include <linux/amba/mmci.h> #include <linux/amba/mmci.h>

View File

@ -20,7 +20,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/amba/bus.h> #include <linux/amba/bus.h>
#include <linux/amba/pl061.h> #include <linux/amba/pl061.h>
#include <linux/amba/mmci.h> #include <linux/amba/mmci.h>

View File

@ -24,7 +24,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>

View File

@ -16,7 +16,7 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/cpufreq.h> #include <linux/cpufreq.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/io.h> #include <linux/io.h>
@ -115,24 +115,25 @@ static struct s3c_cpufreq_info s3c2410_cpufreq_info = {
.debug_io_show = s3c_cpufreq_debugfs_call(s3c2410_iotiming_debugfs), .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); return s3c_cpufreq_register(&s3c2410_cpufreq_info);
} }
static struct sysdev_driver s3c2410_cpufreq_driver = { static struct subsys_interface s3c2410_cpufreq_interface = {
.add = s3c2410_cpufreq_add, .name = "s3c2410_cpufreq",
.subsys = &s3c2410_subsys,
.add_dev = s3c2410_cpufreq_add,
}; };
static int __init s3c2410_cpufreq_init(void) static int __init s3c2410_cpufreq_init(void)
{ {
return sysdev_driver_register(&s3c2410_sysclass, return subsys_interface_register(&s3c2410_cpufreq_interface);
&s3c2410_cpufreq_driver);
} }
arch_initcall(s3c2410_cpufreq_init); 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 /* alter the maximum freq settings for S3C2410A. If a board knows
* it only has a maximum of 200, then it should register its own * it only has a maximum of 200, then it should register its own
@ -143,17 +144,18 @@ static int s3c2410a_cpufreq_add(struct sys_device *sysdev)
s3c2410_cpufreq_info.max.pclk = 66500000; s3c2410_cpufreq_info.max.pclk = 66500000;
s3c2410_cpufreq_info.name = "s3c2410a"; 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 = {
.add = s3c2410a_cpufreq_add, .name = "s3c2410a_cpufreq",
.subsys = &s3c2410a_subsys,
.add_dev = s3c2410a_cpufreq_add,
}; };
static int __init s3c2410a_cpufreq_init(void) static int __init s3c2410a_cpufreq_init(void)
{ {
return sysdev_driver_register(&s3c2410a_sysclass, return subsys_interface_register(&s3c2410a_cpufreq_interface);
&s3c2410a_cpufreq_driver);
} }
arch_initcall(s3c2410a_cpufreq_init); arch_initcall(s3c2410a_cpufreq_init);

View File

@ -14,7 +14,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <mach/map.h> #include <mach/map.h>
@ -132,7 +132,7 @@ static struct s3c24xx_dma_order __initdata s3c2410_dma_order = {
}, },
}; };
static int __init s3c2410_dma_add(struct sys_device *sysdev) static int __init s3c2410_dma_add(struct device *dev)
{ {
s3c2410_dma_init(); s3c2410_dma_init();
s3c24xx_dma_order_set(&s3c2410_dma_order); s3c24xx_dma_order_set(&s3c2410_dma_order);
@ -140,24 +140,28 @@ static int __init s3c2410_dma_add(struct sys_device *sysdev)
} }
#if defined(CONFIG_CPU_S3C2410) #if defined(CONFIG_CPU_S3C2410)
static struct sysdev_driver s3c2410_dma_driver = { static struct subsys_interface s3c2410_dma_interface = {
.add = s3c2410_dma_add, .name = "s3c2410_dma",
.subsys = &s3c2410_subsys,
.add_dev = s3c2410_dma_add,
}; };
static int __init s3c2410_dma_drvinit(void) 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); arch_initcall(s3c2410_dma_drvinit);
static struct sysdev_driver s3c2410a_dma_driver = { static struct subsys_interface s3c2410a_dma_interface = {
.add = s3c2410_dma_add, .name = "s3c2410a_dma",
.subsys = &s3c2410a_subsys,
.add_dev = s3c2410_dma_add,
}; };
static int __init s3c2410a_dma_drvinit(void) 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); arch_initcall(s3c2410a_dma_drvinit);
@ -165,13 +169,15 @@ arch_initcall(s3c2410a_dma_drvinit);
#if defined(CONFIG_CPU_S3C2442) #if defined(CONFIG_CPU_S3C2442)
/* S3C2442 DMA contains the same selection table as the S3C2410 */ /* S3C2442 DMA contains the same selection table as the S3C2410 */
static struct sysdev_driver s3c2442_dma_driver = { static struct subsys_interface s3c2442_dma_interface = {
.add = s3c2410_dma_add, .name = "s3c2442_dma",
.subsys = &s3c2442_subsys,
.add_dev = s3c2410_dma_add,
}; };
static int __init s3c2442_dma_drvinit(void) 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); arch_initcall(s3c2442_dma_drvinit);

View File

@ -13,7 +13,7 @@
#ifndef __ASM_ARCH_DMA_H #ifndef __ASM_ARCH_DMA_H
#define __ASM_ARCH_DMA_H __FILE__ #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 */ #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 */ struct s3c2410_dma_buf *end; /* end of queue */
/* system device */ /* system device */
struct sys_device dev; struct device dev;
}; };
typedef unsigned long dma_device_t; typedef unsigned long dma_device_t;

View File

@ -18,7 +18,7 @@
#include <linux/memblock.h> #include <linux/memblock.h>
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/io.h> #include <linux/io.h>

View File

@ -28,7 +28,7 @@
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/spi/spi.h> #include <linux/spi/spi.h>

View File

@ -25,7 +25,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/err.h> #include <linux/err.h>
@ -66,30 +66,34 @@ static struct cpufreq_frequency_table pll_vals_12MHz[] = {
{ .frequency = 270000000, .index = PLLVAL(127, 1, 1), }, { .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)); 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 = {
.add = s3c2410_plls_add, .name = "s3c2410_plls",
.subsys = &s3c2410_subsys,
.add_dev = s3c2410_plls_add,
}; };
static int __init s3c2410_pll_init(void) 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); arch_initcall(s3c2410_pll_init);
static struct sysdev_driver s3c2410a_plls_drv = { static struct subsys_interface s3c2410a_plls_interface = {
.add = s3c2410_plls_add, .name = "s3c2410a_plls",
.subsys = &s3c2410a_subsys,
.add_dev = s3c2410_plls_add,
}; };
static int __init s3c2410a_pll_init(void) 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); arch_initcall(s3c2410a_pll_init);

View File

@ -24,7 +24,7 @@
#include <linux/suspend.h> #include <linux/suspend.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/time.h> #include <linux/time.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/io.h> #include <linux/io.h>
@ -111,7 +111,7 @@ struct syscore_ops s3c2410_pm_syscore_ops = {
.resume = s3c2410_pm_resume, .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_prep = s3c2410_pm_prepare;
pm_cpu_sleep = s3c2410_cpu_suspend; pm_cpu_sleep = s3c2410_cpu_suspend;
@ -120,52 +120,60 @@ static int s3c2410_pm_add(struct sys_device *dev)
} }
#if defined(CONFIG_CPU_S3C2410) #if defined(CONFIG_CPU_S3C2410)
static struct sysdev_driver s3c2410_pm_driver = { static struct subsys_interface s3c2410_pm_interface = {
.add = s3c2410_pm_add, .name = "s3c2410_pm",
.subsys = &s3c2410_subsys,
.add_dev = s3c2410_pm_add,
}; };
/* register ourselves */ /* register ourselves */
static int __init s3c2410_pm_drvinit(void) 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); arch_initcall(s3c2410_pm_drvinit);
static struct sysdev_driver s3c2410a_pm_driver = { static struct subsys_interface s3c2410a_pm_interface = {
.add = s3c2410_pm_add, .name = "s3c2410a_pm",
.subsys = &s3c2410a_subsys,
.add_dev = s3c2410_pm_add,
}; };
static int __init s3c2410a_pm_drvinit(void) 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); arch_initcall(s3c2410a_pm_drvinit);
#endif #endif
#if defined(CONFIG_CPU_S3C2440) #if defined(CONFIG_CPU_S3C2440)
static struct sysdev_driver s3c2440_pm_driver = { static struct subsys_interface s3c2440_pm_interface = {
.add = s3c2410_pm_add, .name = "s3c2440_pm",
.subsys = &s3c2440_subsys,
.add_dev = s3c2410_pm_add,
}; };
static int __init s3c2440_pm_drvinit(void) 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); arch_initcall(s3c2440_pm_drvinit);
#endif #endif
#if defined(CONFIG_CPU_S3C2442) #if defined(CONFIG_CPU_S3C2442)
static struct sysdev_driver s3c2442_pm_driver = { static struct subsys_interface s3c2442_pm_interface = {
.add = s3c2410_pm_add, .name = "s3c2442_pm",
.subsys = &s3c2442_subsys,
.add_dev = s3c2410_pm_add,
}; };
static int __init s3c2442_pm_drvinit(void) 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); arch_initcall(s3c2442_pm_drvinit);

View File

@ -18,7 +18,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
@ -132,22 +132,24 @@ void __init s3c2410_init_clocks(int xtal)
s3c24xx_register_clock(&s3c2410_armclk); s3c24xx_register_clock(&s3c2410_armclk);
} }
struct sysdev_class s3c2410_sysclass = { struct bus_type s3c2410_subsys = {
.name = "s3c2410-core", .name = "s3c2410-core",
.dev_name = "s3c2410-core",
}; };
/* Note, we would have liked to name this s3c2410-core, but we cannot /* 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", .name = "s3c2410a-core",
.dev_name = "s3c2410a-core",
}; };
static struct sys_device s3c2410_sysdev = { static struct device s3c2410_dev = {
.cls = &s3c2410_sysclass, .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 * 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) * 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. * as a driver which may support both 2410 and 2440 may try and use it.
@ -155,14 +157,14 @@ static struct sys_device s3c2410_sysdev = {
static int __init s3c2410_core_init(void) 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); core_initcall(s3c2410_core_init);
static int __init s3c2410a_core_init(void) static int __init s3c2410a_core_init(void)
{ {
return sysdev_class_register(&s3c2410a_sysclass); return subsys_system_register(&s3c2410a_subsys, NULL);
} }
core_initcall(s3c2410a_core_init); core_initcall(s3c2410a_core_init);
@ -176,12 +178,12 @@ int __init s3c2410_init(void)
#endif #endif
register_syscore_ops(&s3c24xx_irq_syscore_ops); register_syscore_ops(&s3c24xx_irq_syscore_ops);
return sysdev_register(&s3c2410_sysdev); return device_register(&s3c2410_dev);
} }
int __init s3c2410a_init(void) int __init s3c2410a_init(void)
{ {
s3c2410_sysdev.cls = &s3c2410a_sysclass; s3c2410_dev.bus = &s3c2410a_subsys;
return s3c2410_init(); return s3c2410_init();
} }

View File

@ -26,7 +26,7 @@
#include <linux/list.h> #include <linux/list.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/mutex.h> #include <linux/mutex.h>
#include <linux/delay.h> #include <linux/delay.h>

View File

@ -16,7 +16,7 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/cpufreq.h> #include <linux/cpufreq.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/err.h> #include <linux/err.h>
@ -194,7 +194,7 @@ static struct s3c_cpufreq_info s3c2412_cpufreq_info = {
.debug_io_show = s3c_cpufreq_debugfs_call(s3c2412_iotiming_debugfs), .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; unsigned long fclk_rate;
@ -244,14 +244,15 @@ err_fclk:
return -ENOENT; return -ENOENT;
} }
static struct sysdev_driver s3c2412_cpufreq_driver = { static struct subsys_interface s3c2412_cpufreq_interface = {
.add = s3c2412_cpufreq_add, .name = "s3c2412_cpufreq",
.subsys = &s3c2412_subsys,
.add_dev = s3c2412_cpufreq_add,
}; };
static int s3c2412_cpufreq_init(void) static int s3c2412_cpufreq_init(void)
{ {
return sysdev_driver_register(&s3c2412_sysclass, return subsys_interface_register(&s3c2412_cpufreq_interface);
&s3c2412_cpufreq_driver);
} }
arch_initcall(s3c2412_cpufreq_init); arch_initcall(s3c2412_cpufreq_init);

View File

@ -14,7 +14,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/io.h> #include <linux/io.h>
@ -159,19 +159,21 @@ static struct s3c24xx_dma_selection __initdata s3c2412_dma_sel = {
.map_size = ARRAY_SIZE(s3c2412_dma_mappings), .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(); s3c2410_dma_init();
return s3c24xx_dma_init_map(&s3c2412_dma_sel); return s3c24xx_dma_init_map(&s3c2412_dma_sel);
} }
static struct sysdev_driver s3c2412_dma_driver = { static struct subsys_interface s3c2412_dma_interface = {
.add = s3c2412_dma_add, .name = "s3c2412_dma",
.subsys = &s3c2412_subsys,
.add_dev = s3c2412_dma_add,
}; };
static int __init s3c2412_dma_init(void) 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); arch_initcall(s3c2412_dma_init);

View File

@ -23,7 +23,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h> #include <mach/hardware.h>
@ -170,7 +170,7 @@ static int s3c2412_irq_rtc_wake(struct irq_data *data, unsigned int state)
static struct irq_chip s3c2412_irq_rtc_chip; 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; unsigned int irqno;
@ -200,13 +200,15 @@ static int s3c2412_irq_add(struct sys_device *sysdev)
return 0; return 0;
} }
static struct sysdev_driver s3c2412_irq_driver = { static struct subsys_interface s3c2412_irq_interface = {
.add = s3c2412_irq_add, .name = "s3c2412_irq",
.subsys = &s3c2412_subsys,
.add_dev = s3c2412_irq_add,
}; };
static int s3c2412_irq_init(void) 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); arch_initcall(s3c2412_irq_init);

View File

@ -16,7 +16,7 @@
#include <linux/list.h> #include <linux/list.h>
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/io.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_prep = s3c2412_pm_prepare;
pm_cpu_sleep = s3c2412_cpu_suspend; pm_cpu_sleep = s3c2412_cpu_suspend;
@ -87,13 +87,15 @@ static struct sleep_save s3c2412_sleep[] = {
SAVE_ITEM(S3C2413_GPJSLPCON), SAVE_ITEM(S3C2413_GPJSLPCON),
}; };
static struct sysdev_driver s3c2412_pm_driver = { static struct subsys_interface s3c2412_pm_interface = {
.add = s3c2412_pm_add, .name = "s3c2412_pm",
.subsys = &s3c2412_subsys,
.add_dev = s3c2412_pm_add,
}; };
static __init int s3c2412_pm_init(void) static __init int s3c2412_pm_init(void)
{ {
return sysdev_driver_register(&s3c2412_sysclass, &s3c2412_pm_driver); return subsys_interface_register(&s3c2412_pm_interface);
} }
arch_initcall(s3c2412_pm_init); arch_initcall(s3c2412_pm_init);

View File

@ -18,7 +18,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
@ -218,25 +218,26 @@ void __init s3c2412_init_clocks(int xtal)
s3c2412_baseclk_add(); s3c2412_baseclk_add();
} }
/* 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 * 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 s3c2412 based system) * drivers even try to use it (even if not on an s3c2412 based system)
* as a driver which may support both 2410 and 2440 may try and use it. * as a driver which may support both 2410 and 2440 may try and use it.
*/ */
struct sysdev_class s3c2412_sysclass = { struct bus_type s3c2412_subsys = {
.name = "s3c2412-core", .name = "s3c2412-core",
.dev_name = "s3c2412-core",
}; };
static int __init s3c2412_core_init(void) static int __init s3c2412_core_init(void)
{ {
return sysdev_class_register(&s3c2412_sysclass); return subsys_system_register(&s3c2412_subsys, NULL);
} }
core_initcall(s3c2412_core_init); core_initcall(s3c2412_core_init);
static struct sys_device s3c2412_sysdev = { static struct device s3c2412_dev = {
.cls = &s3c2412_sysclass, .bus = &s3c2412_subsys,
}; };
int __init s3c2412_init(void) int __init s3c2412_init(void)
@ -248,5 +249,5 @@ int __init s3c2412_init(void)
#endif #endif
register_syscore_ops(&s3c24xx_irq_syscore_ops); register_syscore_ops(&s3c24xx_irq_syscore_ops);
return sysdev_register(&s3c2412_sysdev); return device_register(&s3c2412_dev);
} }

View File

@ -25,7 +25,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h> #include <mach/hardware.h>
@ -213,7 +213,7 @@ static int __init s3c2416_add_sub(unsigned int base,
return 0; return 0;
} }
static int __init s3c2416_irq_add(struct sys_device *sysdev) static int __init s3c2416_irq_add(struct device *dev)
{ {
printk(KERN_INFO "S3C2416: IRQ Support\n"); printk(KERN_INFO "S3C2416: IRQ Support\n");
@ -234,13 +234,15 @@ static int __init s3c2416_irq_add(struct sys_device *sysdev)
return 0; return 0;
} }
static struct sysdev_driver s3c2416_irq_driver = { static struct subsys_interface s3c2416_irq_interface = {
.add = s3c2416_irq_add, .name = "s3c2416_irq",
.subsys = &s3c2416_subsys,
.add_dev = s3c2416_irq_add,
}; };
static int __init s3c2416_irq_init(void) static int __init s3c2416_irq_init(void)
{ {
return sysdev_driver_register(&s3c2416_sysclass, &s3c2416_irq_driver); return subsys_interface_register(&s3c2416_irq_interface);
} }
arch_initcall(s3c2416_irq_init); arch_initcall(s3c2416_irq_init);

View File

@ -10,7 +10,7 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <linux/io.h> #include <linux/io.h>
@ -48,7 +48,7 @@ static void s3c2416_pm_prepare(void)
__raw_writel(virt_to_phys(s3c_cpu_resume), S3C2412_INFORM1); __raw_writel(virt_to_phys(s3c_cpu_resume), S3C2412_INFORM1);
} }
static int s3c2416_pm_add(struct sys_device *sysdev) static int s3c2416_pm_add(struct device *dev)
{ {
pm_cpu_prep = s3c2416_pm_prepare; pm_cpu_prep = s3c2416_pm_prepare;
pm_cpu_sleep = s3c2416_cpu_suspend; pm_cpu_sleep = s3c2416_cpu_suspend;
@ -56,13 +56,15 @@ static int s3c2416_pm_add(struct sys_device *sysdev)
return 0; return 0;
} }
static struct sysdev_driver s3c2416_pm_driver = { static struct subsys_interface s3c2416_pm_interface = {
.add = s3c2416_pm_add, .name = "s3c2416_pm",
.subsys = &s3c2416_subsys,
.add_dev = s3c2416_pm_add,
}; };
static __init int s3c2416_pm_init(void) static __init int s3c2416_pm_init(void)
{ {
return sysdev_driver_register(&s3c2416_sysclass, &s3c2416_pm_driver); return subsys_interface_register(&s3c2416_pm_interface);
} }
arch_initcall(s3c2416_pm_init); arch_initcall(s3c2416_pm_init);

View File

@ -31,7 +31,7 @@
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/io.h> #include <linux/io.h>
@ -67,12 +67,13 @@ static struct map_desc s3c2416_iodesc[] __initdata = {
IODESC_ENT(TIMER), IODESC_ENT(TIMER),
}; };
struct sysdev_class s3c2416_sysclass = { struct bus_type s3c2416_subsys = {
.name = "s3c2416-core", .name = "s3c2416-core",
.dev_name = "s3c2416-core",
}; };
static struct sys_device s3c2416_sysdev = { static struct device s3c2416_dev = {
.cls = &s3c2416_sysclass, .bus = &s3c2416_subsys,
}; };
void s3c2416_restart(char mode, const char *cmd) void s3c2416_restart(char mode, const char *cmd)
@ -106,7 +107,7 @@ int __init s3c2416_init(void)
#endif #endif
register_syscore_ops(&s3c24xx_irq_syscore_ops); register_syscore_ops(&s3c24xx_irq_syscore_ops);
return sysdev_register(&s3c2416_sysdev); return device_register(&s3c2416_dev);
} }
void __init s3c2416_init_uarts(struct s3c2410_uartcfg *cfg, int no) void __init s3c2416_init_uarts(struct s3c2410_uartcfg *cfg, int no)
@ -134,7 +135,7 @@ void __init s3c2416_map_io(void)
iotable_init(s3c2416_iodesc, ARRAY_SIZE(s3c2416_iodesc)); iotable_init(s3c2416_iodesc, ARRAY_SIZE(s3c2416_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 * 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 s3c2416 based system) * drivers even try to use it (even if not on an s3c2416 based system)
* as a driver which may support both 2443 and 2440 may try and use it. * as a driver which may support both 2443 and 2440 may try and use it.
@ -142,7 +143,7 @@ void __init s3c2416_map_io(void)
static int __init s3c2416_core_init(void) static int __init s3c2416_core_init(void)
{ {
return sysdev_class_register(&s3c2416_sysclass); return subsys_system_register(&s3c2416_subsys, NULL);
} }
core_initcall(s3c2416_core_init); core_initcall(s3c2416_core_init);

View File

@ -28,7 +28,6 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/sysdev.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/mutex.h> #include <linux/mutex.h>
@ -108,7 +107,7 @@ static struct clk s3c2440_clk_ac97 = {
.ctrlbit = S3C2440_CLKCON_CAMERA, .ctrlbit = S3C2440_CLKCON_CAMERA,
}; };
static int s3c2440_clk_add(struct sys_device *sysdev) static int s3c2440_clk_add(struct device *dev)
{ {
struct clk *clock_upll; struct clk *clock_upll;
struct clk *clock_h; struct clk *clock_h;
@ -137,13 +136,15 @@ static int s3c2440_clk_add(struct sys_device *sysdev)
return 0; return 0;
} }
static struct sysdev_driver s3c2440_clk_driver = { static struct subsys_interface s3c2440_clk_interface = {
.add = s3c2440_clk_add, .name = "s3c2440_clk",
.subsys = &s3c2440_subsys,
.add_dev = s3c2440_clk_add,
}; };
static __init int s3c24xx_clk_driver(void) static __init int s3c24xx_clk_init(void)
{ {
return sysdev_driver_register(&s3c2440_sysclass, &s3c2440_clk_driver); return subsys_interface_register(&s3c2440_clk_interface);
} }
arch_initcall(s3c24xx_clk_driver); arch_initcall(s3c24xx_clk_init);

View File

@ -14,7 +14,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <mach/map.h> #include <mach/map.h>
@ -174,20 +174,22 @@ static struct s3c24xx_dma_order __initdata s3c2440_dma_order = {
}, },
}; };
static int __init s3c2440_dma_add(struct sys_device *sysdev) static int __init s3c2440_dma_add(struct device *dev)
{ {
s3c2410_dma_init(); s3c2410_dma_init();
s3c24xx_dma_order_set(&s3c2440_dma_order); s3c24xx_dma_order_set(&s3c2440_dma_order);
return s3c24xx_dma_init_map(&s3c2440_dma_sel); return s3c24xx_dma_init_map(&s3c2440_dma_sel);
} }
static struct sysdev_driver s3c2440_dma_driver = { static struct subsys_interface s3c2440_dma_interface = {
.add = s3c2440_dma_add, .name = "s3c2440_dma",
.subsys = &s3c2440_subsys,
.add_dev = s3c2440_dma_add,
}; };
static int __init s3c2440_dma_init(void) 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); arch_initcall(s3c2440_dma_init);

View File

@ -23,7 +23,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h> #include <mach/hardware.h>
@ -92,7 +92,7 @@ static struct irq_chip s3c_irq_wdtac97 = {
.irq_ack = s3c_irq_wdtac97_ack, .irq_ack = s3c_irq_wdtac97_ack,
}; };
static int s3c2440_irq_add(struct sys_device *sysdev) static int s3c2440_irq_add(struct device *dev)
{ {
unsigned int irqno; unsigned int irqno;
@ -113,13 +113,15 @@ static int s3c2440_irq_add(struct sys_device *sysdev)
return 0; return 0;
} }
static struct sysdev_driver s3c2440_irq_driver = { static struct subsys_interface s3c2440_irq_interface = {
.add = s3c2440_irq_add, .name = "s3c2440_irq",
.subsys = &s3c2440_subsys,
.add_dev = s3c2440_irq_add,
}; };
static int s3c2440_irq_init(void) 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); arch_initcall(s3c2440_irq_init);

View File

@ -24,7 +24,7 @@
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/pda_power.h> #include <linux/pda_power.h>
#include <linux/pwm_backlight.h> #include <linux/pwm_backlight.h>
#include <linux/pwm.h> #include <linux/pwm.h>

View File

@ -20,7 +20,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/tty.h> #include <linux/tty.h>
#include <linux/console.h> #include <linux/console.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/serial.h> #include <linux/serial.h>

View File

@ -17,7 +17,7 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/cpufreq.h> #include <linux/cpufreq.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/err.h> #include <linux/err.h>
@ -270,7 +270,7 @@ struct s3c_cpufreq_info s3c2440_cpufreq_info = {
.debug_io_show = s3c_cpufreq_debugfs_call(s3c2410_iotiming_debugfs), .debug_io_show = s3c_cpufreq_debugfs_call(s3c2410_iotiming_debugfs),
}; };
static int s3c2440_cpufreq_add(struct sys_device *sysdev) static int s3c2440_cpufreq_add(struct device *dev)
{ {
xtal = s3c_cpufreq_clk_get(NULL, "xtal"); xtal = s3c_cpufreq_clk_get(NULL, "xtal");
hclk = s3c_cpufreq_clk_get(NULL, "hclk"); hclk = s3c_cpufreq_clk_get(NULL, "hclk");
@ -285,27 +285,29 @@ static int s3c2440_cpufreq_add(struct sys_device *sysdev)
return s3c_cpufreq_register(&s3c2440_cpufreq_info); return s3c_cpufreq_register(&s3c2440_cpufreq_info);
} }
static struct sysdev_driver s3c2440_cpufreq_driver = { static struct subsys_interface s3c2440_cpufreq_interface = {
.add = s3c2440_cpufreq_add, .name = "s3c2440_cpufreq",
.subsys = &s3c2440_subsys,
.add_dev = s3c2440_cpufreq_add,
}; };
static int s3c2440_cpufreq_init(void) static int s3c2440_cpufreq_init(void)
{ {
return sysdev_driver_register(&s3c2440_sysclass, return subsys_interface_register(&s3c2440_cpufreq_interface);
&s3c2440_cpufreq_driver);
} }
/* arch_initcall adds the clocks we need, so use subsys_initcall. */ /* arch_initcall adds the clocks we need, so use subsys_initcall. */
subsys_initcall(s3c2440_cpufreq_init); subsys_initcall(s3c2440_cpufreq_init);
static struct sysdev_driver s3c2442_cpufreq_driver = { static struct subsys_interface s3c2442_cpufreq_interface = {
.add = s3c2440_cpufreq_add, .name = "s3c2442_cpufreq",
.subsys = &s3c2442_subsys,
.add_dev = s3c2440_cpufreq_add,
}; };
static int s3c2442_cpufreq_init(void) static int s3c2442_cpufreq_init(void)
{ {
return sysdev_driver_register(&s3c2442_sysclass, return subsys_interface_register(&s3c2442_cpufreq_interface);
&s3c2442_cpufreq_driver);
} }
subsys_initcall(s3c2442_cpufreq_init); subsys_initcall(s3c2442_cpufreq_init);

View File

@ -14,7 +14,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/err.h> #include <linux/err.h>
@ -51,7 +51,7 @@ static struct cpufreq_frequency_table s3c2440_plls_12[] __initdata = {
{ .frequency = 400000000, .index = PLLVAL(0x5c, 1, 1), }, /* FVco 800.000000 */ { .frequency = 400000000, .index = PLLVAL(0x5c, 1, 1), }, /* FVco 800.000000 */
}; };
static int s3c2440_plls12_add(struct sys_device *dev) static int s3c2440_plls12_add(struct device *dev)
{ {
struct clk *xtal_clk; struct clk *xtal_clk;
unsigned long xtal; unsigned long xtal;
@ -72,25 +72,29 @@ static int s3c2440_plls12_add(struct sys_device *dev)
return 0; return 0;
} }
static struct sysdev_driver s3c2440_plls12_drv = { static struct subsys_interface s3c2440_plls12_interface = {
.add = s3c2440_plls12_add, .name = "s3c2440_plls12",
.subsys = &s3c2440_subsys,
.add_dev = s3c2440_plls12_add,
}; };
static int __init s3c2440_pll_12mhz(void) static int __init s3c2440_pll_12mhz(void)
{ {
return sysdev_driver_register(&s3c2440_sysclass, &s3c2440_plls12_drv); return subsys_interface_register(&s3c2440_plls12_interface);
} }
arch_initcall(s3c2440_pll_12mhz); arch_initcall(s3c2440_pll_12mhz);
static struct sysdev_driver s3c2442_plls12_drv = { static struct subsys_interface s3c2442_plls12_interface = {
.add = s3c2440_plls12_add, .name = "s3c2442_plls12",
.subsys = &s3c2442_subsys,
.add_dev = s3c2440_plls12_add,
}; };
static int __init s3c2442_pll_12mhz(void) static int __init s3c2442_pll_12mhz(void)
{ {
return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_plls12_drv); return subsys_interface_register(&s3c2442_plls12_interface);
} }

View File

@ -14,7 +14,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/err.h> #include <linux/err.h>
@ -79,7 +79,7 @@ static struct cpufreq_frequency_table s3c2440_plls_169344[] __initdata = {
{ .frequency = 402192000, .index = PLLVAL(87, 2, 1), }, /* FVco 804.384000 */ { .frequency = 402192000, .index = PLLVAL(87, 2, 1), }, /* FVco 804.384000 */
}; };
static int s3c2440_plls169344_add(struct sys_device *dev) static int s3c2440_plls169344_add(struct device *dev)
{ {
struct clk *xtal_clk; struct clk *xtal_clk;
unsigned long xtal; unsigned long xtal;
@ -100,28 +100,28 @@ static int s3c2440_plls169344_add(struct sys_device *dev)
return 0; return 0;
} }
static struct sysdev_driver s3c2440_plls169344_drv = { static struct subsys_interface s3c2440_plls169344_interface = {
.add = s3c2440_plls169344_add, .name = "s3c2440_plls169344",
.subsys = &s3c2440_subsys,
.add_dev = s3c2440_plls169344_add,
}; };
static int __init s3c2440_pll_16934400(void) static int __init s3c2440_pll_16934400(void)
{ {
return sysdev_driver_register(&s3c2440_sysclass, return subsys_interface_register(&s3c2440_plls169344_interface);
&s3c2440_plls169344_drv);
} }
arch_initcall(s3c2440_pll_16934400); arch_initcall(s3c2440_pll_16934400);
static struct sysdev_driver s3c2442_plls169344_drv = { static struct subsys_interface s3c2442_plls169344_interface = {
.add = s3c2440_plls169344_add, .name = "s3c2442_plls169344",
.subsys = &s3c2442_subsys,
.add_dev = s3c2440_plls169344_add,
}; };
static int __init s3c2442_pll_16934400(void) static int __init s3c2442_pll_16934400(void)
{ {
return sysdev_driver_register(&s3c2442_sysclass, return subsys_interface_register(&s3c2442_plls169344_interface);
&s3c2442_plls169344_drv);
} }
arch_initcall(s3c2442_pll_16934400); arch_initcall(s3c2442_pll_16934400);

View File

@ -18,7 +18,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/clk.h> #include <linux/clk.h>
@ -41,8 +41,8 @@
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
#include <plat/gpio-cfg-helpers.h> #include <plat/gpio-cfg-helpers.h>
static struct sys_device s3c2440_sysdev = { static struct device s3c2440_dev = {
.cls = &s3c2440_sysclass, .bus = &s3c2440_subsys,
}; };
int __init s3c2440_init(void) int __init s3c2440_init(void)
@ -64,7 +64,7 @@ int __init s3c2440_init(void)
/* register our system device for everything else */ /* register our system device for everything else */
return sysdev_register(&s3c2440_sysdev); return device_register(&s3c2440_dev);
} }
void __init s3c2440_map_io(void) void __init s3c2440_map_io(void)

View File

@ -28,7 +28,6 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/sysdev.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
@ -123,7 +122,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_upll;
struct clk *clock_h; struct clk *clock_h;
@ -149,20 +148,22 @@ static int s3c2442_clk_add(struct sys_device *sysdev)
return 0; return 0;
} }
static struct sysdev_driver s3c2442_clk_driver = { static struct subsys_interface s3c2442_clk_interface = {
.add = s3c2442_clk_add, .name = "s3c2442_clk",
.subsys = &s3c2442_subsys,
.add_dev = s3c2442_clk_add,
}; };
static __init int s3c2442_clk_init(void) 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); arch_initcall(s3c2442_clk_init);
static struct sys_device s3c2442_sysdev = { static struct device s3c2442_dev = {
.cls = &s3c2442_sysclass, .bus = &s3c2442_subsys,
}; };
int __init s3c2442_init(void) int __init s3c2442_init(void)
@ -175,7 +176,7 @@ int __init s3c2442_init(void)
register_syscore_ops(&s3c244x_pm_syscore_ops); register_syscore_ops(&s3c244x_pm_syscore_ops);
register_syscore_ops(&s3c24xx_irq_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) void __init s3c2442_map_io(void)

View File

@ -28,7 +28,6 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/sysdev.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/clk.h> #include <linux/clk.h>
@ -73,7 +72,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 camdivn = __raw_readl(S3C2440_CAMDIVN);
unsigned long clkdivn; unsigned long clkdivn;
@ -115,24 +114,28 @@ static int s3c244x_clk_add(struct sys_device *sysdev)
return 0; return 0;
} }
static struct sysdev_driver s3c2440_clk_driver = { static struct subsys_interface s3c2440_clk_interface = {
.add = s3c244x_clk_add, .name = "s3c2440_clk",
.subsys = &s3c2440_subsys,
.add_dev = s3c244x_clk_add,
}; };
static int s3c2440_clk_init(void) 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); arch_initcall(s3c2440_clk_init);
static struct sysdev_driver s3c2442_clk_driver = { static struct subsys_interface s3c2442_clk_interface = {
.add = s3c244x_clk_add, .name = "s3c2442_clk",
.subsys = &s3c2442_subsys,
.add_dev = s3c244x_clk_add,
}; };
static int s3c2442_clk_init(void) 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); arch_initcall(s3c2442_clk_init);

View File

@ -23,7 +23,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h> #include <mach/hardware.h>
@ -91,7 +91,7 @@ static struct irq_chip s3c_irq_cam = {
.irq_ack = s3c_irq_cam_ack, .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; unsigned int irqno;
@ -114,25 +114,29 @@ static int s3c244x_irq_add(struct sys_device *sysdev)
return 0; return 0;
} }
static struct sysdev_driver s3c2440_irq_driver = { static struct subsys_interface s3c2440_irq_interface = {
.add = s3c244x_irq_add, .name = "s3c2440_irq",
.subsys = &s3c2440_subsys,
.add_dev = s3c244x_irq_add,
}; };
static int s3c2440_irq_init(void) 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); arch_initcall(s3c2440_irq_init);
static struct sysdev_driver s3c2442_irq_driver = { static struct subsys_interface s3c2442_irq_interface = {
.add = s3c244x_irq_add, .name = "s3c2442_irq",
.subsys = &s3c2442_subsys,
.add_dev = s3c244x_irq_add,
}; };
static int s3c2442_irq_init(void) 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); arch_initcall(s3c2442_irq_init);

View File

@ -18,7 +18,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/io.h> #include <linux/io.h>
@ -135,17 +135,19 @@ void __init s3c244x_init_clocks(int xtal)
s3c2410_baseclk_add(); 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", .name = "s3c2440-core",
.dev_name = "s3c2440-core",
}; };
struct sysdev_class s3c2442_sysclass = { struct bus_type s3c2442_subsys = {
.name = "s3c2442-core", .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 * 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) * 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. * 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) static int __init s3c2440_core_init(void)
{ {
return sysdev_class_register(&s3c2440_sysclass); return subsys_system_register(&s3c2440_subsys, NULL);
} }
core_initcall(s3c2440_core_init); core_initcall(s3c2440_core_init);
static int __init s3c2442_core_init(void) static int __init s3c2442_core_init(void)
{ {
return sysdev_class_register(&s3c2442_sysclass); return subsys_system_register(&s3c2442_subsys, NULL);
} }
core_initcall(s3c2442_core_init); core_initcall(s3c2442_core_init);

View File

@ -27,7 +27,7 @@
#include <linux/list.h> #include <linux/list.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/mutex.h> #include <linux/mutex.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>

View File

@ -14,7 +14,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/io.h> #include <linux/io.h>
@ -135,19 +135,21 @@ static struct s3c24xx_dma_selection __initdata s3c2443_dma_sel = {
.map_size = ARRAY_SIZE(s3c2443_dma_mappings), .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); s3c24xx_dma_init(6, IRQ_S3C2443_DMA0, 0x100);
return s3c24xx_dma_init_map(&s3c2443_dma_sel); return s3c24xx_dma_init_map(&s3c2443_dma_sel);
} }
static struct sysdev_driver s3c2443_dma_driver = { static struct subsys_interface s3c2443_dma_interface = {
.add = s3c2443_dma_add, .name = "s3c2443_dma",
.subsys = &s3c2443_subsys,
.add_dev = s3c2443_dma_add,
}; };
static int __init s3c2443_dma_init(void) 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); arch_initcall(s3c2443_dma_init);

View File

@ -23,7 +23,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h> #include <mach/hardware.h>
@ -241,7 +241,7 @@ static int __init s3c2443_add_sub(unsigned int base,
return 0; 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"); printk("S3C2443: IRQ Support\n");
@ -265,13 +265,15 @@ static int __init s3c2443_irq_add(struct sys_device *sysdev)
return 0; return 0;
} }
static struct sysdev_driver s3c2443_irq_driver = { static struct subsys_interface s3c2443_irq_interface = {
.add = s3c2443_irq_add, .name = "s3c2443_irq",
.subsys = &s3c2443_subsys,
.add_dev = s3c2443_irq_add,
}; };
static int __init s3c2443_irq_init(void) 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); arch_initcall(s3c2443_irq_init);

View File

@ -19,7 +19,7 @@
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/io.h> #include <linux/io.h>
@ -48,12 +48,13 @@ static struct map_desc s3c2443_iodesc[] __initdata = {
IODESC_ENT(TIMER), IODESC_ENT(TIMER),
}; };
struct sysdev_class s3c2443_sysclass = { struct bus_type s3c2443_subsys = {
.name = "s3c2443-core", .name = "s3c2443-core",
.dev_name = "s3c2443-core",
}; };
static struct sys_device s3c2443_sysdev = { static struct device s3c2443_dev = {
.cls = &s3c2443_sysclass, .bus = &s3c2443_subsys,
}; };
void s3c2443_restart(char mode, const char *cmd) void s3c2443_restart(char mode, const char *cmd)
@ -77,7 +78,7 @@ int __init s3c2443_init(void)
s3c_device_wdt.resource[1].start = IRQ_S3C2443_WDT; s3c_device_wdt.resource[1].start = IRQ_S3C2443_WDT;
s3c_device_wdt.resource[1].end = 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) 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)); 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 * 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) * 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. * 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) 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); core_initcall(s3c2443_core_init);

View File

@ -19,7 +19,6 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/sysdev.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/io.h> #include <linux/io.h>
@ -139,12 +138,13 @@ static struct map_desc s3c_iodesc[] __initdata = {
}, },
}; };
struct sysdev_class s3c64xx_sysclass = { static struct bus_type s3c64xx_subsys = {
.name = "s3c64xx-core", .name = "s3c64xx-core",
.dev_name = "s3c64xx-core",
}; };
static struct sys_device s3c64xx_sysdev = { static struct device s3c64xx_dev = {
.cls = &s3c64xx_sysclass, .bus = &s3c64xx_subsys,
}; };
/* read cpu identification code */ /* read cpu identification code */
@ -162,12 +162,12 @@ void __init s3c64xx_init_io(struct map_desc *mach_desc, int size)
s3c_init_cpu(samsung_cpu_id, cpu_ids, ARRAY_SIZE(cpu_ids)); 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); subsys_system_register(&s3c64xx_subsys, NULL);
return sysdev_register(&s3c64xx_sysdev); return device_register(&s3c64xx_dev);
} }
core_initcall(s3c64xx_sysdev_init); core_initcall(s3c64xx_dev_init);
/* /*
* setup the sources the vic should advertise resume * setup the sources the vic should advertise resume

View File

@ -26,7 +26,6 @@ void s3c64xx_setup_clocks(void);
void s3c64xx_restart(char mode, const char *cmd); void s3c64xx_restart(char mode, const char *cmd);
extern struct syscore_ops s3c64xx_irq_syscore_ops; extern struct syscore_ops s3c64xx_irq_syscore_ops;
extern struct sysdev_class s3c64xx_sysclass;
#ifdef CONFIG_CPU_S3C6400 #ifdef CONFIG_CPU_S3C6400

View File

@ -16,7 +16,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/dmapool.h> #include <linux/dmapool.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/delay.h> #include <linux/delay.h>
@ -35,7 +35,7 @@
/* dma channel state information */ /* dma channel state information */
struct s3c64xx_dmac { struct s3c64xx_dmac {
struct sys_device sysdev; struct device dev;
struct clk *clk; struct clk *clk;
void __iomem *regs; void __iomem *regs;
struct s3c2410_dma_chan *channels; struct s3c2410_dma_chan *channels;
@ -631,8 +631,9 @@ static irqreturn_t s3c64xx_dma_irq(int irq, void *pw)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static struct sysdev_class dma_sysclass = { static struct bus_type dma_subsys = {
.name = "s3c64xx-dma", .name = "s3c64xx-dma",
.dev_name = "s3c64xx-dma",
}; };
static int s3c64xx_dma_init1(int chno, enum dma_ch chbase, static int s3c64xx_dma_init1(int chno, enum dma_ch chbase,
@ -651,12 +652,12 @@ static int s3c64xx_dma_init1(int chno, enum dma_ch chbase,
return -ENOMEM; return -ENOMEM;
} }
dmac->sysdev.id = chno / 8; dmac->dev.id = chno / 8;
dmac->sysdev.cls = &dma_sysclass; dmac->dev.bus = &dma_subsys;
err = sysdev_register(&dmac->sysdev); err = device_register(&dmac->dev);
if (err) { 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; goto err_alloc;
} }
@ -667,7 +668,7 @@ static int s3c64xx_dma_init1(int chno, enum dma_ch chbase,
goto err_dev; 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); dmac->clk = clk_get(NULL, clkname);
if (IS_ERR(dmac->clk)) { if (IS_ERR(dmac->clk)) {
@ -715,7 +716,7 @@ err_clk:
err_map: err_map:
iounmap(regs); iounmap(regs);
err_dev: err_dev:
sysdev_unregister(&dmac->sysdev); device_unregister(&dmac->dev);
err_alloc: err_alloc:
kfree(dmac); kfree(dmac);
return err; return err;
@ -733,9 +734,9 @@ static int __init s3c64xx_dma_init(void)
return -ENOMEM; return -ENOMEM;
} }
ret = sysdev_class_register(&dma_sysclass); ret = subsys_system_register(&dma_subsys, NULL);
if (ret) { if (ret) {
printk(KERN_ERR "%s: failed to create sysclass\n", __func__); printk(KERN_ERR "%s: failed to create subsys\n", __func__);
return -ENOMEM; return -ENOMEM;
} }

View File

@ -17,7 +17,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
@ -71,17 +71,18 @@ void __init s3c6400_init_irq(void)
s3c64xx_init_irq(~0 & ~(0xf << 5), ~0); s3c64xx_init_irq(~0 & ~(0xf << 5), ~0);
} }
static struct sysdev_class s3c6400_sysclass = { static struct bus_type s3c6400_subsys = {
.name = "s3c6400-core", .name = "s3c6400-core",
.dev_name = "s3c6400-core",
}; };
static struct sys_device s3c6400_sysdev = { static struct device s3c6400_dev = {
.cls = &s3c6400_sysclass, .bus = &s3c6400_subsys,
}; };
static int __init s3c6400_core_init(void) static int __init s3c6400_core_init(void)
{ {
return sysdev_class_register(&s3c6400_sysclass); return subsys_system_register(&s3c6400_subsys, NULL);
} }
core_initcall(s3c6400_core_init); core_initcall(s3c6400_core_init);
@ -90,5 +91,5 @@ int __init s3c6400_init(void)
{ {
printk("S3C6400: Initialising architecture\n"); printk("S3C6400: Initialising architecture\n");
return sysdev_register(&s3c6400_sysdev); return device_register(&s3c6400_dev);
} }

View File

@ -18,7 +18,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
@ -75,17 +75,18 @@ void __init s3c6410_init_irq(void)
s3c64xx_init_irq(~0 & ~(1 << 7), ~0); s3c64xx_init_irq(~0 & ~(1 << 7), ~0);
} }
struct sysdev_class s3c6410_sysclass = { struct bus_type s3c6410_subsys = {
.name = "s3c6410-core", .name = "s3c6410-core",
.dev_name = "s3c6410-core",
}; };
static struct sys_device s3c6410_sysdev = { static struct device s3c6410_dev = {
.cls = &s3c6410_sysclass, .bus = &s3c6410_subsys,
}; };
static int __init s3c6410_core_init(void) static int __init s3c6410_core_init(void)
{ {
return sysdev_class_register(&s3c6410_sysclass); return subsys_system_register(&s3c6410_subsys, NULL);
} }
core_initcall(s3c6410_core_init); core_initcall(s3c6410_core_init);
@ -94,5 +95,5 @@ int __init s3c6410_init(void)
{ {
printk("S3C6410: Initialising architecture\n"); printk("S3C6410: Initialising architecture\n");
return sysdev_register(&s3c6410_sysdev); return device_register(&s3c6410_dev);
} }

View File

@ -17,7 +17,7 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h> #include <mach/hardware.h>

View File

@ -17,7 +17,7 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h> #include <mach/hardware.h>

View File

@ -17,7 +17,7 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h> #include <mach/hardware.h>

View File

@ -17,7 +17,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sched.h> #include <linux/sched.h>
@ -257,17 +257,18 @@ void __init s5p6450_init_irq(void)
s5p_init_irq(vic, ARRAY_SIZE(vic)); s5p_init_irq(vic, ARRAY_SIZE(vic));
} }
struct sysdev_class s5p64x0_sysclass = { struct bus_type s5p64x0_subsys = {
.name = "s5p64x0-core", .name = "s5p64x0-core",
.dev_name = "s5p64x0-core",
}; };
static struct sys_device s5p64x0_sysdev = { static struct device s5p64x0_dev = {
.cls = &s5p64x0_sysclass, .bus = &s5p64x0_subsys,
}; };
static int __init s5p64x0_core_init(void) static int __init s5p64x0_core_init(void)
{ {
return sysdev_class_register(&s5p64x0_sysclass); return subsys_system_register(&s5p64x0_subsys, NULL);
} }
core_initcall(s5p64x0_core_init); core_initcall(s5p64x0_core_init);
@ -278,7 +279,7 @@ int __init s5p64x0_init(void)
/* set idle function */ /* set idle function */
pm_idle = s5p64x0_idle; pm_idle = s5p64x0_idle;
return sysdev_register(&s5p64x0_sysdev); return device_register(&s5p64x0_dev);
} }
static struct s3c24xx_uart_clksrc s5p64x0_serial_clocks[] = { static struct s3c24xx_uart_clksrc s5p64x0_serial_clocks[] = {

View File

@ -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_prep = s5p64x0_pm_prepare;
pm_cpu_sleep = s5p64x0_cpu_suspend; pm_cpu_sleep = s5p64x0_cpu_suspend;
@ -169,15 +169,17 @@ static int s5p64x0_pm_add(struct sys_device *sysdev)
return 0; return 0;
} }
static struct sysdev_driver s5p64x0_pm_driver = { static struct subsys_interface s5p64x0_pm_interface = {
.add = s5p64x0_pm_add, .name = "s5p64x0_pm",
.subsys = &s5p64x0_subsys,
.add_dev = s5p64x0_pm_add,
}; };
static __init int s5p64x0_pm_drvinit(void) static __init int s5p64x0_pm_drvinit(void)
{ {
s3c_pm_init(); s3c_pm_init();
return sysdev_driver_register(&s5p64x0_sysclass, &s5p64x0_pm_driver); return subsys_interface_register(&s5p64x0_pm_interface);
} }
arch_initcall(s5p64x0_pm_drvinit); arch_initcall(s5p64x0_pm_drvinit);

View File

@ -20,7 +20,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sched.h> #include <linux/sched.h>
@ -192,17 +192,18 @@ void __init s5pc100_init_irq(void)
s5p_init_irq(vic, ARRAY_SIZE(vic)); s5p_init_irq(vic, ARRAY_SIZE(vic));
} }
static struct sysdev_class s5pc100_sysclass = { static struct bus_type s5pc100_subsys = {
.name = "s5pc100-core", .name = "s5pc100-core",
.dev_name = "s5pc100-core",
}; };
static struct sys_device s5pc100_sysdev = { static struct device s5pc100_dev = {
.cls = &s5pc100_sysclass, .bus = &s5pc100_subsys,
}; };
static int __init s5pc100_core_init(void) static int __init s5pc100_core_init(void)
{ {
return sysdev_class_register(&s5pc100_sysclass); return subsys_system_register(&s5pc100_subsys, NULL);
} }
core_initcall(s5pc100_core_init); core_initcall(s5pc100_core_init);
@ -213,7 +214,7 @@ int __init s5pc100_init(void)
/* set idle function */ /* set idle function */
pm_idle = s5pc100_idle; pm_idle = s5pc100_idle;
return sysdev_register(&s5pc100_sysdev); return device_register(&s5pc100_dev);
} }
/* uart registration process */ /* uart registration process */

View File

@ -17,7 +17,7 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/map.h> #include <mach/map.h>

View File

@ -18,7 +18,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
@ -229,17 +229,18 @@ void __init s5pv210_init_irq(void)
s5p_init_irq(vic, ARRAY_SIZE(vic)); s5p_init_irq(vic, ARRAY_SIZE(vic));
} }
struct sysdev_class s5pv210_sysclass = { struct bus_type s5pv210_subsys = {
.name = "s5pv210-core", .name = "s5pv210-core",
.dev_name = "s5pv210-core",
}; };
static struct sys_device s5pv210_sysdev = { static struct device s5pv210_dev = {
.cls = &s5pv210_sysclass, .bus = &s5pv210_subsys,
}; };
static int __init s5pv210_core_init(void) static int __init s5pv210_core_init(void)
{ {
return sysdev_class_register(&s5pv210_sysclass); return subsys_system_register(&s5pv210_subsys, NULL);
} }
core_initcall(s5pv210_core_init); core_initcall(s5pv210_core_init);
@ -250,7 +251,7 @@ int __init s5pv210_init(void)
/* set idle function */ /* set idle function */
pm_idle = s5pv210_idle; pm_idle = s5pv210_idle;
return sysdev_register(&s5pv210_sysdev); return device_register(&s5pv210_dev);
} }
static struct s3c24xx_uart_clksrc s5pv210_serial_clocks[] = { static struct s3c24xx_uart_clksrc s5pv210_serial_clocks[] = {

View File

@ -13,7 +13,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <asm/hardware/vic.h> #include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>

View File

@ -13,7 +13,7 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/dm9000.h> #include <linux/dm9000.h>
#include <linux/fb.h> #include <linux/fb.h>
#include <linux/gpio.h> #include <linux/gpio.h>

View File

@ -133,7 +133,7 @@ static void s5pv210_pm_prepare(void)
s3c_pm_do_save(s5pv210_core_save, ARRAY_SIZE(s5pv210_core_save)); 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_prep = s5pv210_pm_prepare;
pm_cpu_sleep = s5pv210_cpu_suspend; pm_cpu_sleep = s5pv210_cpu_suspend;
@ -141,13 +141,15 @@ static int s5pv210_pm_add(struct sys_device *sysdev)
return 0; return 0;
} }
static struct sysdev_driver s5pv210_pm_driver = { static struct subsys_interface s5pv210_pm_interface = {
.add = s5pv210_pm_add, .name = "s5pv210_pm",
.subsys = &s5pv210_subsys,
.add_dev = s5pv210_pm_add,
}; };
static __init int s5pv210_pm_drvinit(void) 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); arch_initcall(s5pv210_pm_drvinit);

View File

@ -22,7 +22,6 @@
#include <linux/device.h> #include <linux/device.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sysdev.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irqdomain.h> #include <linux/irqdomain.h>
#include <linux/of_address.h> #include <linux/of_address.h>

View File

@ -21,7 +21,6 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/sysdev.h>
#include <linux/amba/bus.h> #include <linux/amba/bus.h>
#include <linux/io.h> #include <linux/io.h>

View File

@ -21,7 +21,6 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/sysdev.h>
#include <linux/amba/bus.h> #include <linux/amba/bus.h>
#include <linux/amba/pl061.h> #include <linux/amba/pl061.h>
#include <linux/amba/mmci.h> #include <linux/amba/mmci.h>

View File

@ -10,7 +10,7 @@
#include <linux/ata_platform.h> #include <linux/ata_platform.h>
#include <linux/smsc911x.h> #include <linux/smsc911x.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/usb/isp1760.h> #include <linux/usb/isp1760.h>
#include <linux/clkdev.h> #include <linux/clkdev.h>
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>

View File

@ -19,7 +19,7 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/ptrace.h> #include <linux/ptrace.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <asm/irq.h> #include <asm/irq.h>

View File

@ -19,7 +19,7 @@
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/mtd/mtd.h> #include <linux/mtd/mtd.h>

View File

@ -20,7 +20,7 @@
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/sysfs.h> #include <linux/sysfs.h>
#include <linux/slab.h> #include <linux/slab.h>

View File

@ -22,7 +22,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <asm/irq.h> #include <asm/irq.h>

View File

@ -18,7 +18,6 @@
#include <linux/list.h> #include <linux/list.h>
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/sysdev.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>

View File

@ -26,7 +26,7 @@
#include <linux/list.h> #include <linux/list.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/mutex.h> #include <linux/mutex.h>
#include <linux/delay.h> #include <linux/delay.h>

View File

@ -17,7 +17,7 @@
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/cpufreq.h> #include <linux/cpufreq.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/err.h> #include <linux/err.h>

View File

@ -17,7 +17,7 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <asm/div64.h> #include <asm/div64.h>

View File

@ -14,7 +14,7 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <asm/hardware/vic.h> #include <asm/hardware/vic.h>

View File

@ -16,7 +16,7 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/io.h> #include <linux/io.h>
#include <plat/clock.h> #include <plat/clock.h>

View File

@ -33,7 +33,7 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/clk.h> #include <linux/clk.h>

View File

@ -180,19 +180,19 @@ extern struct syscore_ops s3c2412_pm_syscore_ops;
extern struct syscore_ops s3c2416_pm_syscore_ops; extern struct syscore_ops s3c2416_pm_syscore_ops;
extern struct syscore_ops s3c244x_pm_syscore_ops; extern struct syscore_ops s3c244x_pm_syscore_ops;
/* system device classes */ /* system device subsystems */
extern struct sysdev_class s3c2410_sysclass; extern struct bus_type s3c2410_subsys;
extern struct sysdev_class s3c2410a_sysclass; extern struct bus_type s3c2410a_subsys;
extern struct sysdev_class s3c2412_sysclass; extern struct bus_type s3c2412_subsys;
extern struct sysdev_class s3c2416_sysclass; extern struct bus_type s3c2416_subsys;
extern struct sysdev_class s3c2440_sysclass; extern struct bus_type s3c2440_subsys;
extern struct sysdev_class s3c2442_sysclass; extern struct bus_type s3c2442_subsys;
extern struct sysdev_class s3c2443_sysclass; extern struct bus_type s3c2443_subsys;
extern struct sysdev_class s3c6410_sysclass; extern struct bus_type s3c6410_subsys;
extern struct sysdev_class s5p64x0_sysclass; extern struct bus_type s5p64x0_subsys;
extern struct sysdev_class s5pv210_sysclass; extern struct bus_type s5pv210_subsys;
extern struct sysdev_class exynos4_sysclass; extern struct bus_type exynos4_subsys;
extern void (*s5pc1xx_idle)(void); extern void (*s5pc1xx_idle)(void);

View File

@ -12,7 +12,7 @@
#include <plat/dma-core.h> #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]; extern struct s3c2410_dma_chan s3c2410_chans[S3C_DMA_CHANNELS];
#define DMA_CH_VALID (1<<31) #define DMA_CH_VALID (1<<31)

View File

@ -17,7 +17,7 @@
#include <linux/irq.h> #include <linux/irq.h>
struct sys_device; struct device;
#ifdef CONFIG_PM #ifdef CONFIG_PM

View File

@ -14,7 +14,7 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/gpio.h> #include <linux/gpio.h>

View File

@ -11,7 +11,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/io.h> #include <linux/io.h>

View File

@ -13,7 +13,6 @@
#include <linux/list.h> #include <linux/list.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/sysdev.h>
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/ctype.h> #include <linux/ctype.h>

View File

@ -6,7 +6,7 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/cpu.h> #include <linux/cpu.h>
#include <linux/module.h> #include <linux/module.h>
@ -26,16 +26,16 @@ static DEFINE_PER_CPU(struct cpu, cpu_devices);
* XXX: If/when a SMP-capable implementation of AVR32 will ever be * XXX: If/when a SMP-capable implementation of AVR32 will ever be
* made, we must make sure that the code executes on the correct CPU. * made, we must make sure that the code executes on the correct CPU.
*/ */
static ssize_t show_pc0event(struct sys_device *dev, static ssize_t show_pc0event(struct device *dev,
struct sysdev_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
unsigned long pccr; unsigned long pccr;
pccr = sysreg_read(PCCR); pccr = sysreg_read(PCCR);
return sprintf(buf, "0x%lx\n", (pccr >> 12) & 0x3f); return sprintf(buf, "0x%lx\n", (pccr >> 12) & 0x3f);
} }
static ssize_t store_pc0event(struct sys_device *dev, static ssize_t store_pc0event(struct device *dev,
struct sysdev_attribute *attr, const char *buf, struct device_attribute *attr, const char *buf,
size_t count) size_t count)
{ {
unsigned long val; unsigned long val;
@ -48,16 +48,16 @@ static ssize_t store_pc0event(struct sys_device *dev,
sysreg_write(PCCR, val); sysreg_write(PCCR, val);
return count; return count;
} }
static ssize_t show_pc0count(struct sys_device *dev, static ssize_t show_pc0count(struct device *dev,
struct sysdev_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
unsigned long pcnt0; unsigned long pcnt0;
pcnt0 = sysreg_read(PCNT0); pcnt0 = sysreg_read(PCNT0);
return sprintf(buf, "%lu\n", pcnt0); return sprintf(buf, "%lu\n", pcnt0);
} }
static ssize_t store_pc0count(struct sys_device *dev, static ssize_t store_pc0count(struct device *dev,
struct sysdev_attribute *attr, struct device_attribute *attr,
const char *buf, size_t count) const char *buf, size_t count)
{ {
unsigned long val; unsigned long val;
@ -71,16 +71,16 @@ static ssize_t store_pc0count(struct sys_device *dev,
return count; return count;
} }
static ssize_t show_pc1event(struct sys_device *dev, static ssize_t show_pc1event(struct device *dev,
struct sysdev_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
unsigned long pccr; unsigned long pccr;
pccr = sysreg_read(PCCR); pccr = sysreg_read(PCCR);
return sprintf(buf, "0x%lx\n", (pccr >> 18) & 0x3f); return sprintf(buf, "0x%lx\n", (pccr >> 18) & 0x3f);
} }
static ssize_t store_pc1event(struct sys_device *dev, static ssize_t store_pc1event(struct device *dev,
struct sysdev_attribute *attr, const char *buf, struct device_attribute *attr, const char *buf,
size_t count) size_t count)
{ {
unsigned long val; unsigned long val;
@ -93,16 +93,16 @@ static ssize_t store_pc1event(struct sys_device *dev,
sysreg_write(PCCR, val); sysreg_write(PCCR, val);
return count; return count;
} }
static ssize_t show_pc1count(struct sys_device *dev, static ssize_t show_pc1count(struct device *dev,
struct sysdev_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
unsigned long pcnt1; unsigned long pcnt1;
pcnt1 = sysreg_read(PCNT1); pcnt1 = sysreg_read(PCNT1);
return sprintf(buf, "%lu\n", pcnt1); return sprintf(buf, "%lu\n", pcnt1);
} }
static ssize_t store_pc1count(struct sys_device *dev, static ssize_t store_pc1count(struct device *dev,
struct sysdev_attribute *attr, const char *buf, struct device_attribute *attr, const char *buf,
size_t count) size_t count)
{ {
unsigned long val; unsigned long val;
@ -116,16 +116,16 @@ static ssize_t store_pc1count(struct sys_device *dev,
return count; return count;
} }
static ssize_t show_pccycles(struct sys_device *dev, static ssize_t show_pccycles(struct device *dev,
struct sysdev_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
unsigned long pccnt; unsigned long pccnt;
pccnt = sysreg_read(PCCNT); pccnt = sysreg_read(PCCNT);
return sprintf(buf, "%lu\n", pccnt); return sprintf(buf, "%lu\n", pccnt);
} }
static ssize_t store_pccycles(struct sys_device *dev, static ssize_t store_pccycles(struct device *dev,
struct sysdev_attribute *attr, const char *buf, struct device_attribute *attr, const char *buf,
size_t count) size_t count)
{ {
unsigned long val; unsigned long val;
@ -139,16 +139,16 @@ static ssize_t store_pccycles(struct sys_device *dev,
return count; return count;
} }
static ssize_t show_pcenable(struct sys_device *dev, static ssize_t show_pcenable(struct device *dev,
struct sysdev_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
unsigned long pccr; unsigned long pccr;
pccr = sysreg_read(PCCR); pccr = sysreg_read(PCCR);
return sprintf(buf, "%c\n", (pccr & 1)?'1':'0'); return sprintf(buf, "%c\n", (pccr & 1)?'1':'0');
} }
static ssize_t store_pcenable(struct sys_device *dev, static ssize_t store_pcenable(struct device *dev,
struct sysdev_attribute *attr, const char *buf, struct device_attribute *attr, const char *buf,
size_t count) size_t count)
{ {
unsigned long pccr, val; unsigned long pccr, val;
@ -167,12 +167,12 @@ static ssize_t store_pcenable(struct sys_device *dev,
return count; return count;
} }
static SYSDEV_ATTR(pc0event, 0600, show_pc0event, store_pc0event); static DEVICE_ATTR(pc0event, 0600, show_pc0event, store_pc0event);
static SYSDEV_ATTR(pc0count, 0600, show_pc0count, store_pc0count); static DEVICE_ATTR(pc0count, 0600, show_pc0count, store_pc0count);
static SYSDEV_ATTR(pc1event, 0600, show_pc1event, store_pc1event); static DEVICE_ATTR(pc1event, 0600, show_pc1event, store_pc1event);
static SYSDEV_ATTR(pc1count, 0600, show_pc1count, store_pc1count); static DEVICE_ATTR(pc1count, 0600, show_pc1count, store_pc1count);
static SYSDEV_ATTR(pccycles, 0600, show_pccycles, store_pccycles); static DEVICE_ATTR(pccycles, 0600, show_pccycles, store_pccycles);
static SYSDEV_ATTR(pcenable, 0600, show_pcenable, store_pcenable); static DEVICE_ATTR(pcenable, 0600, show_pcenable, store_pcenable);
#endif /* CONFIG_PERFORMANCE_COUNTERS */ #endif /* CONFIG_PERFORMANCE_COUNTERS */
@ -186,12 +186,12 @@ static int __init topology_init(void)
register_cpu(c, cpu); register_cpu(c, cpu);
#ifdef CONFIG_PERFORMANCE_COUNTERS #ifdef CONFIG_PERFORMANCE_COUNTERS
sysdev_create_file(&c->sysdev, &attr_pc0event); device_create_file(&c->dev, &dev_attr_pc0event);
sysdev_create_file(&c->sysdev, &attr_pc0count); device_create_file(&c->dev, &dev_attr_pc0count);
sysdev_create_file(&c->sysdev, &attr_pc1event); device_create_file(&c->dev, &dev_attr_pc1event);
sysdev_create_file(&c->sysdev, &attr_pc1count); device_create_file(&c->dev, &dev_attr_pc1count);
sysdev_create_file(&c->sysdev, &attr_pccycles); device_create_file(&c->dev, &dev_attr_pccycles);
sysdev_create_file(&c->sysdev, &attr_pcenable); device_create_file(&c->dev, &dev_attr_pcenable);
#endif #endif
} }

View File

@ -14,7 +14,7 @@
#include <linux/kernel_stat.h> #include <linux/kernel_stat.h>
#include <linux/proc_fs.h> #include <linux/proc_fs.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/sysdev.h> #include <linux/device.h>
/* May be overridden by platform code */ /* May be overridden by platform code */
int __weak nmi_enable(void) int __weak nmi_enable(void)

View File

@ -24,7 +24,7 @@
* Copyright (C) 2006, Intel Corp. All rights reserved. * Copyright (C) 2006, Intel Corp. All rights reserved.
* *
*/ */
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/cpu.h> #include <linux/cpu.h>
@ -35,10 +35,10 @@
#define ERR_DATA_BUFFER_SIZE 3 // Three 8-byte; #define ERR_DATA_BUFFER_SIZE 3 // Three 8-byte;
#define define_one_ro(name) \ #define define_one_ro(name) \
static SYSDEV_ATTR(name, 0444, show_##name, NULL) static DEVICE_ATTR(name, 0444, show_##name, NULL)
#define define_one_rw(name) \ #define define_one_rw(name) \
static SYSDEV_ATTR(name, 0644, show_##name, store_##name) static DEVICE_ATTR(name, 0644, show_##name, store_##name)
static u64 call_start[NR_CPUS]; static u64 call_start[NR_CPUS];
static u64 phys_addr[NR_CPUS]; static u64 phys_addr[NR_CPUS];
@ -55,7 +55,7 @@ static u64 resources[NR_CPUS];
#define show(name) \ #define show(name) \
static ssize_t \ static ssize_t \
show_##name(struct sys_device *dev, struct sysdev_attribute *attr, \ show_##name(struct device *dev, struct device_attribute *attr, \
char *buf) \ char *buf) \
{ \ { \
u32 cpu=dev->id; \ u32 cpu=dev->id; \
@ -64,7 +64,7 @@ show_##name(struct sys_device *dev, struct sysdev_attribute *attr, \
#define store(name) \ #define store(name) \
static ssize_t \ static ssize_t \
store_##name(struct sys_device *dev, struct sysdev_attribute *attr, \ store_##name(struct device *dev, struct device_attribute *attr, \
const char *buf, size_t size) \ const char *buf, size_t size) \
{ \ { \
unsigned int cpu=dev->id; \ unsigned int cpu=dev->id; \
@ -78,7 +78,7 @@ show(call_start)
* processor. The cpu number in driver is only used for storing data. * processor. The cpu number in driver is only used for storing data.
*/ */
static ssize_t static ssize_t
store_call_start(struct sys_device *dev, struct sysdev_attribute *attr, store_call_start(struct device *dev, struct device_attribute *attr,
const char *buf, size_t size) const char *buf, size_t size)
{ {
unsigned int cpu=dev->id; unsigned int cpu=dev->id;
@ -127,7 +127,7 @@ show(err_type_info)
store(err_type_info) store(err_type_info)
static ssize_t static ssize_t
show_virtual_to_phys(struct sys_device *dev, struct sysdev_attribute *attr, show_virtual_to_phys(struct device *dev, struct device_attribute *attr,
char *buf) char *buf)
{ {
unsigned int cpu=dev->id; unsigned int cpu=dev->id;
@ -135,7 +135,7 @@ show_virtual_to_phys(struct sys_device *dev, struct sysdev_attribute *attr,
} }
static ssize_t static ssize_t
store_virtual_to_phys(struct sys_device *dev, struct sysdev_attribute *attr, store_virtual_to_phys(struct device *dev, struct device_attribute *attr,
const char *buf, size_t size) const char *buf, size_t size)
{ {
unsigned int cpu=dev->id; unsigned int cpu=dev->id;
@ -159,8 +159,8 @@ show(err_struct_info)
store(err_struct_info) store(err_struct_info)
static ssize_t static ssize_t
show_err_data_buffer(struct sys_device *dev, show_err_data_buffer(struct device *dev,
struct sysdev_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
unsigned int cpu=dev->id; unsigned int cpu=dev->id;
@ -171,8 +171,8 @@ show_err_data_buffer(struct sys_device *dev,
} }
static ssize_t static ssize_t
store_err_data_buffer(struct sys_device *dev, store_err_data_buffer(struct device *dev,
struct sysdev_attribute *attr, struct device_attribute *attr,
const char *buf, size_t size) const char *buf, size_t size)
{ {
unsigned int cpu=dev->id; unsigned int cpu=dev->id;
@ -209,14 +209,14 @@ define_one_ro(capabilities);
define_one_ro(resources); define_one_ro(resources);
static struct attribute *default_attrs[] = { static struct attribute *default_attrs[] = {
&attr_call_start.attr, &dev_attr_call_start.attr,
&attr_virtual_to_phys.attr, &dev_attr_virtual_to_phys.attr,
&attr_err_type_info.attr, &dev_attr_err_type_info.attr,
&attr_err_struct_info.attr, &dev_attr_err_struct_info.attr,
&attr_err_data_buffer.attr, &dev_attr_err_data_buffer.attr,
&attr_status.attr, &dev_attr_status.attr,
&attr_capabilities.attr, &dev_attr_capabilities.attr,
&attr_resources.attr, &dev_attr_resources.attr,
NULL NULL
}; };
@ -225,12 +225,12 @@ static struct attribute_group err_inject_attr_group = {
.name = "err_inject" .name = "err_inject"
}; };
/* Add/Remove err_inject interface for CPU device */ /* Add/Remove err_inject interface for CPU device */
static int __cpuinit err_inject_add_dev(struct sys_device * sys_dev) static int __cpuinit err_inject_add_dev(struct device * sys_dev)
{ {
return sysfs_create_group(&sys_dev->kobj, &err_inject_attr_group); return sysfs_create_group(&sys_dev->kobj, &err_inject_attr_group);
} }
static int __cpuinit err_inject_remove_dev(struct sys_device * sys_dev) static int __cpuinit err_inject_remove_dev(struct device * sys_dev)
{ {
sysfs_remove_group(&sys_dev->kobj, &err_inject_attr_group); sysfs_remove_group(&sys_dev->kobj, &err_inject_attr_group);
return 0; return 0;
@ -239,9 +239,9 @@ static int __cpuinit err_inject_cpu_callback(struct notifier_block *nfb,
unsigned long action, void *hcpu) unsigned long action, void *hcpu)
{ {
unsigned int cpu = (unsigned long)hcpu; unsigned int cpu = (unsigned long)hcpu;
struct sys_device *sys_dev; struct device *sys_dev;
sys_dev = get_cpu_sysdev(cpu); sys_dev = get_cpu_device(cpu);
switch (action) { switch (action) {
case CPU_ONLINE: case CPU_ONLINE:
case CPU_ONLINE_FROZEN: case CPU_ONLINE_FROZEN:
@ -283,13 +283,13 @@ static void __exit
err_inject_exit(void) err_inject_exit(void)
{ {
int i; int i;
struct sys_device *sys_dev; struct device *sys_dev;
#ifdef ERR_INJ_DEBUG #ifdef ERR_INJ_DEBUG
printk(KERN_INFO "Exit error injection driver.\n"); printk(KERN_INFO "Exit error injection driver.\n");
#endif #endif
for_each_online_cpu(i) { for_each_online_cpu(i) {
sys_dev = get_cpu_sysdev(i); sys_dev = get_cpu_device(i);
sysfs_remove_group(&sys_dev->kobj, &err_inject_attr_group); sysfs_remove_group(&sys_dev->kobj, &err_inject_attr_group);
} }
unregister_hotcpu_notifier(&err_inject_cpu_notifier); unregister_hotcpu_notifier(&err_inject_cpu_notifier);

View File

@ -350,7 +350,7 @@ static int __cpuinit cpu_cache_sysfs_init(unsigned int cpu)
} }
/* Add cache interface for CPU device */ /* Add cache interface for CPU device */
static int __cpuinit cache_add_dev(struct sys_device * sys_dev) static int __cpuinit cache_add_dev(struct device * sys_dev)
{ {
unsigned int cpu = sys_dev->id; unsigned int cpu = sys_dev->id;
unsigned long i, j; unsigned long i, j;
@ -400,7 +400,7 @@ static int __cpuinit cache_add_dev(struct sys_device * sys_dev)
} }
/* Remove cache interface for CPU device */ /* Remove cache interface for CPU device */
static int __cpuinit cache_remove_dev(struct sys_device * sys_dev) static int __cpuinit cache_remove_dev(struct device * sys_dev)
{ {
unsigned int cpu = sys_dev->id; unsigned int cpu = sys_dev->id;
unsigned long i; unsigned long i;
@ -428,9 +428,9 @@ static int __cpuinit cache_cpu_callback(struct notifier_block *nfb,
unsigned long action, void *hcpu) unsigned long action, void *hcpu)
{ {
unsigned int cpu = (unsigned long)hcpu; unsigned int cpu = (unsigned long)hcpu;
struct sys_device *sys_dev; struct device *sys_dev;
sys_dev = get_cpu_sysdev(cpu); sys_dev = get_cpu_device(cpu);
switch (action) { switch (action) {
case CPU_ONLINE: case CPU_ONLINE:
case CPU_ONLINE_FROZEN: case CPU_ONLINE_FROZEN:
@ -454,7 +454,7 @@ static int __init cache_sysfs_init(void)
int i; int i;
for_each_online_cpu(i) { for_each_online_cpu(i) {
struct sys_device *sys_dev = get_cpu_sysdev((unsigned int)i); struct device *sys_dev = get_cpu_device((unsigned int)i);
cache_add_dev(sys_dev); cache_add_dev(sys_dev);
} }

View File

@ -15,7 +15,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <asm/gpio.h> #include <asm/gpio.h>
#include <asm/pinmux.h> #include <asm/pinmux.h>
@ -115,13 +115,14 @@ void mcf_gpio_free(struct gpio_chip *chip, unsigned offset)
mcf_pinmux_release(mcf_chip->gpio_to_pinmux[offset], 0); mcf_pinmux_release(mcf_chip->gpio_to_pinmux[offset], 0);
} }
struct sysdev_class mcf_gpio_sysclass = { struct bus_type mcf_gpio_subsys = {
.name = "gpio", .name = "gpio",
.dev_name = "gpio",
}; };
static int __init mcf_gpio_sysinit(void) static int __init mcf_gpio_sysinit(void)
{ {
return sysdev_class_register(&mcf_gpio_sysclass); return subsys_system_register(&mcf_gpio_subsys, NULL);
} }
core_initcall(mcf_gpio_sysinit); core_initcall(mcf_gpio_sysinit);

View File

@ -9,7 +9,7 @@
* (C) Copyright TOSHIBA CORPORATION 2005-2007 * (C) Copyright TOSHIBA CORPORATION 2005-2007
* All Rights Reserved. * All Rights Reserved.
*/ */
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/map_to_7segment.h> #include <linux/map_to_7segment.h>
#include <asm/txx9/generic.h> #include <asm/txx9/generic.h>
@ -37,8 +37,8 @@ int txx9_7segled_putc(unsigned int pos, char c)
return 0; return 0;
} }
static ssize_t ascii_store(struct sys_device *dev, static ssize_t ascii_store(struct device *dev,
struct sysdev_attribute *attr, struct device_attribute *attr,
const char *buf, size_t size) const char *buf, size_t size)
{ {
unsigned int ch = dev->id; unsigned int ch = dev->id;
@ -46,8 +46,8 @@ static ssize_t ascii_store(struct sys_device *dev,
return size; return size;
} }
static ssize_t raw_store(struct sys_device *dev, static ssize_t raw_store(struct device *dev,
struct sysdev_attribute *attr, struct device_attribute *attr,
const char *buf, size_t size) const char *buf, size_t size)
{ {
unsigned int ch = dev->id; unsigned int ch = dev->id;
@ -55,19 +55,19 @@ static ssize_t raw_store(struct sys_device *dev,
return size; return size;
} }
static SYSDEV_ATTR(ascii, 0200, NULL, ascii_store); static DEVICE_ATTR(ascii, 0200, NULL, ascii_store);
static SYSDEV_ATTR(raw, 0200, NULL, raw_store); static DEVICE_ATTR(raw, 0200, NULL, raw_store);
static ssize_t map_seg7_show(struct sysdev_class *class, static ssize_t map_seg7_show(struct device *dev,
struct sysdev_class_attribute *attr, struct device_attribute *attr,
char *buf) char *buf)
{ {
memcpy(buf, &txx9_seg7map, sizeof(txx9_seg7map)); memcpy(buf, &txx9_seg7map, sizeof(txx9_seg7map));
return sizeof(txx9_seg7map); return sizeof(txx9_seg7map);
} }
static ssize_t map_seg7_store(struct sysdev_class *class, static ssize_t map_seg7_store(struct device *dev,
struct sysdev_class_attribute *attr, struct device_attribute *attr,
const char *buf, size_t size) const char *buf, size_t size)
{ {
if (size != sizeof(txx9_seg7map)) if (size != sizeof(txx9_seg7map))
@ -76,10 +76,11 @@ static ssize_t map_seg7_store(struct sysdev_class *class,
return size; return size;
} }
static SYSDEV_CLASS_ATTR(map_seg7, 0600, map_seg7_show, map_seg7_store); static DEVICE_ATTR(map_seg7, 0600, map_seg7_show, map_seg7_store);
static struct sysdev_class tx_7segled_sysdev_class = { static struct bus_type tx_7segled_subsys = {
.name = "7segled", .name = "7segled",
.dev_name = "7segled",
}; };
static int __init tx_7segled_init_sysfs(void) static int __init tx_7segled_init_sysfs(void)
@ -87,26 +88,25 @@ static int __init tx_7segled_init_sysfs(void)
int error, i; int error, i;
if (!tx_7segled_num) if (!tx_7segled_num)
return -ENODEV; return -ENODEV;
error = sysdev_class_register(&tx_7segled_sysdev_class); error = subsys_system_register(&tx_7segled_subsys, NULL);
if (error) if (error)
return error; return error;
error = sysdev_class_create_file(&tx_7segled_sysdev_class, error = device_create_file(tx_7segled_subsys.dev_root, &dev_attr_map_seg7);
&attr_map_seg7);
if (error) if (error)
return error; return error;
for (i = 0; i < tx_7segled_num; i++) { for (i = 0; i < tx_7segled_num; i++) {
struct sys_device *dev; struct device *dev;
dev = kzalloc(sizeof(*dev), GFP_KERNEL); dev = kzalloc(sizeof(*dev), GFP_KERNEL);
if (!dev) { if (!dev) {
error = -ENODEV; error = -ENODEV;
break; break;
} }
dev->id = i; dev->id = i;
dev->cls = &tx_7segled_sysdev_class; dev->dev = &tx_7segled_subsys;
error = sysdev_register(dev); error = device_register(dev);
if (!error) { if (!error) {
sysdev_create_file(dev, &attr_ascii); device_create_file(dev, &dev_attr_ascii);
sysdev_create_file(dev, &attr_raw); device_create_file(dev, &dev_attr_raw);
} }
} }
return error; return error;

View File

@ -22,7 +22,7 @@
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
#include <linux/leds.h> #include <linux/leds.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <asm/bootinfo.h> #include <asm/bootinfo.h>
@ -897,10 +897,13 @@ void __init txx9_aclc_init(unsigned long baseaddr, int irq,
#endif #endif
} }
static struct sysdev_class txx9_sramc_sysdev_class; static struct bus_type txx9_sramc_subsys = {
.name = "txx9_sram",
.dev_name = "txx9_sram",
};
struct txx9_sramc_sysdev { struct txx9_sramc_dev {
struct sys_device dev; struct device dev;
struct bin_attribute bindata_attr; struct bin_attribute bindata_attr;
void __iomem *base; void __iomem *base;
}; };
@ -909,7 +912,7 @@ static ssize_t txx9_sram_read(struct file *filp, struct kobject *kobj,
struct bin_attribute *bin_attr, struct bin_attribute *bin_attr,
char *buf, loff_t pos, size_t size) char *buf, loff_t pos, size_t size)
{ {
struct txx9_sramc_sysdev *dev = bin_attr->private; struct txx9_sramc_dev *dev = bin_attr->private;
size_t ramsize = bin_attr->size; size_t ramsize = bin_attr->size;
if (pos >= ramsize) if (pos >= ramsize)
@ -924,7 +927,7 @@ static ssize_t txx9_sram_write(struct file *filp, struct kobject *kobj,
struct bin_attribute *bin_attr, struct bin_attribute *bin_attr,
char *buf, loff_t pos, size_t size) char *buf, loff_t pos, size_t size)
{ {
struct txx9_sramc_sysdev *dev = bin_attr->private; struct txx9_sramc_dev *dev = bin_attr->private;
size_t ramsize = bin_attr->size; size_t ramsize = bin_attr->size;
if (pos >= ramsize) if (pos >= ramsize)
@ -937,18 +940,13 @@ static ssize_t txx9_sram_write(struct file *filp, struct kobject *kobj,
void __init txx9_sramc_init(struct resource *r) void __init txx9_sramc_init(struct resource *r)
{ {
struct txx9_sramc_sysdev *dev; struct txx9_sramc_dev *dev;
size_t size; size_t size;
int err; int err;
if (!txx9_sramc_sysdev_class.name) { err = subsys_system_register(&txx9_sramc_subsys, NULL);
txx9_sramc_sysdev_class.name = "txx9_sram"; if (err)
err = sysdev_class_register(&txx9_sramc_sysdev_class); return;
if (err) {
txx9_sramc_sysdev_class.name = NULL;
return;
}
}
dev = kzalloc(sizeof(*dev), GFP_KERNEL); dev = kzalloc(sizeof(*dev), GFP_KERNEL);
if (!dev) if (!dev)
return; return;
@ -956,7 +954,7 @@ void __init txx9_sramc_init(struct resource *r)
dev->base = ioremap(r->start, size); dev->base = ioremap(r->start, size);
if (!dev->base) if (!dev->base)
goto exit; goto exit;
dev->dev.cls = &txx9_sramc_sysdev_class; dev->dev.bus = &txx9_sramc_subsys;
sysfs_bin_attr_init(&dev->bindata_attr); sysfs_bin_attr_init(&dev->bindata_attr);
dev->bindata_attr.attr.name = "bindata"; dev->bindata_attr.attr.name = "bindata";
dev->bindata_attr.attr.mode = S_IRUSR | S_IWUSR; dev->bindata_attr.attr.mode = S_IRUSR | S_IWUSR;
@ -964,12 +962,12 @@ void __init txx9_sramc_init(struct resource *r)
dev->bindata_attr.write = txx9_sram_write; dev->bindata_attr.write = txx9_sram_write;
dev->bindata_attr.size = size; dev->bindata_attr.size = size;
dev->bindata_attr.private = dev; dev->bindata_attr.private = dev;
err = sysdev_register(&dev->dev); err = device_register(&dev->dev);
if (err) if (err)
goto exit; goto exit;
err = sysfs_create_bin_file(&dev->dev.kobj, &dev->bindata_attr); err = sysfs_create_bin_file(&dev->dev.kobj, &dev->bindata_attr);
if (err) { if (err) {
sysdev_unregister(&dev->dev); device_unregister(&dev->dev);
goto exit; goto exit;
} }
return; return;

View File

@ -15,7 +15,7 @@
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/notifier.h> #include <linux/notifier.h>
#include <linux/sysdev.h> #include <linux/device.h>
#include <linux/ethtool.h> #include <linux/ethtool.h>
#include <linux/param.h> #include <linux/param.h>
#include <linux/ptrace.h> #include <linux/ptrace.h>

Some files were not shown because too many files have changed in this diff Show More