mips: txx9_sram - convert sysdev_class to a regular subsystem
After all sysdev classes are ported to regular driver core entities, the sysdev implementation will be entirely removed from the kernel. Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Cc: Jamie Iles <jamie@jamieiles.com> Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
0e38eaf34e
commit
269a3eb1bf
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user