Commit 7b5d4122 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

Revert "misc: c2port: use dev_bin_attrs instead of hand-coding it"

This reverts commit 3ce20a71  It should
go in through the driver-core tree, not the char-misc tree, my mistake.
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3ce20a71
...@@ -867,17 +867,14 @@ static struct device_attribute c2port_attrs[] = { ...@@ -867,17 +867,14 @@ static struct device_attribute c2port_attrs[] = {
__ATTR_NULL, __ATTR_NULL,
}; };
static struct bin_attribute c2port_bin_attrs[] = { static struct bin_attribute c2port_bin_attrs = {
{ .attr = {
.attr = { .name = "flash_data",
.name = "flash_data", .mode = 0644
.mode = 0644
},
.read = c2port_read_flash_data,
.write = c2port_write_flash_data,
/* .size is computed at run-time */
}, },
__ATTR_NULL .read = c2port_read_flash_data,
.write = c2port_write_flash_data,
/* .size is computed at run-time */
}; };
/* /*
...@@ -910,8 +907,6 @@ struct c2port_device *c2port_device_register(char *name, ...@@ -910,8 +907,6 @@ struct c2port_device *c2port_device_register(char *name,
goto error_idr_alloc; goto error_idr_alloc;
c2dev->id = ret; c2dev->id = ret;
c2port_bin_attrs[0].size = ops->blocks_num * ops->block_size;
c2dev->dev = device_create(c2port_class, NULL, 0, c2dev, c2dev->dev = device_create(c2port_class, NULL, 0, c2dev,
"c2port%d", c2dev->id); "c2port%d", c2dev->id);
if (unlikely(IS_ERR(c2dev->dev))) { if (unlikely(IS_ERR(c2dev->dev))) {
...@@ -924,6 +919,12 @@ struct c2port_device *c2port_device_register(char *name, ...@@ -924,6 +919,12 @@ struct c2port_device *c2port_device_register(char *name,
c2dev->ops = ops; c2dev->ops = ops;
mutex_init(&c2dev->mutex); mutex_init(&c2dev->mutex);
/* Create binary file */
c2port_bin_attrs.size = ops->blocks_num * ops->block_size;
ret = device_create_bin_file(c2dev->dev, &c2port_bin_attrs);
if (unlikely(ret))
goto error_device_create_bin_file;
/* By default C2 port access is off */ /* By default C2 port access is off */
c2dev->access = c2dev->flash_access = 0; c2dev->access = c2dev->flash_access = 0;
ops->access(c2dev, 0); ops->access(c2dev, 0);
...@@ -936,6 +937,9 @@ struct c2port_device *c2port_device_register(char *name, ...@@ -936,6 +937,9 @@ struct c2port_device *c2port_device_register(char *name,
return c2dev; return c2dev;
error_device_create_bin_file:
device_destroy(c2port_class, 0);
error_device_create: error_device_create:
spin_lock_irq(&c2port_idr_lock); spin_lock_irq(&c2port_idr_lock);
idr_remove(&c2port_idr, c2dev->id); idr_remove(&c2port_idr, c2dev->id);
...@@ -955,6 +959,7 @@ void c2port_device_unregister(struct c2port_device *c2dev) ...@@ -955,6 +959,7 @@ void c2port_device_unregister(struct c2port_device *c2dev)
dev_info(c2dev->dev, "C2 port %s removed\n", c2dev->name); dev_info(c2dev->dev, "C2 port %s removed\n", c2dev->name);
device_remove_bin_file(c2dev->dev, &c2port_bin_attrs);
spin_lock_irq(&c2port_idr_lock); spin_lock_irq(&c2port_idr_lock);
idr_remove(&c2port_idr, c2dev->id); idr_remove(&c2port_idr, c2dev->id);
spin_unlock_irq(&c2port_idr_lock); spin_unlock_irq(&c2port_idr_lock);
...@@ -980,7 +985,6 @@ static int __init c2port_init(void) ...@@ -980,7 +985,6 @@ static int __init c2port_init(void)
return PTR_ERR(c2port_class); return PTR_ERR(c2port_class);
} }
c2port_class->dev_attrs = c2port_attrs; c2port_class->dev_attrs = c2port_attrs;
c2port_class->dev_bin_attrs = c2port_bin_attrs;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment