Skip to content

Commit

Permalink
[PATCH] w1: new family structure.
Browse files Browse the repository at this point in the history
Removed some fields which are not required.
First step for writing operations.
Now only read and read name remain.
Patch depends on w1 cleanups patch.

Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Evgeniy Polyakov authored and Greg Kroah-Hartman committed Jun 22, 2005
1 parent 7785925 commit ca775c6
Show file tree
Hide file tree
Showing 5 changed files with 2 additions and 33 deletions.
18 changes: 0 additions & 18 deletions drivers/w1/w1.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,6 @@ static ssize_t w1_default_read_bin(struct kobject *kobj, char *buf, loff_t off,
static struct device_attribute w1_slave_attribute =
__ATTR(name, S_IRUGO, w1_default_read_name, NULL);

static struct device_attribute w1_slave_attribute_val =
__ATTR(value, S_IRUGO, w1_default_read_name, NULL);

static struct bin_attribute w1_slave_bin_attribute = {
.attr = {
.name = "w1_slave",
Expand Down Expand Up @@ -310,12 +307,9 @@ static int __w1_attach_slave_device(struct w1_slave *sl)

memcpy(&sl->attr_bin, &w1_slave_bin_attribute, sizeof(sl->attr_bin));
memcpy(&sl->attr_name, &w1_slave_attribute, sizeof(sl->attr_name));
memcpy(&sl->attr_val, &w1_slave_attribute_val, sizeof(sl->attr_val));

sl->attr_bin.read = sl->family->fops->rbin;
sl->attr_name.show = sl->family->fops->rname;
sl->attr_val.show = sl->family->fops->rval;
sl->attr_val.attr.name = sl->family->fops->rvalname;

err = device_create_file(&sl->dev, &sl->attr_name);
if (err < 0) {
Expand All @@ -326,23 +320,12 @@ static int __w1_attach_slave_device(struct w1_slave *sl)
return err;
}

err = device_create_file(&sl->dev, &sl->attr_val);
if (err < 0) {
dev_err(&sl->dev,
"sysfs file creation for [%s] failed. err=%d\n",
sl->dev.bus_id, err);
device_remove_file(&sl->dev, &sl->attr_name);
device_unregister(&sl->dev);
return err;
}

err = sysfs_create_bin_file(&sl->dev.kobj, &sl->attr_bin);
if (err < 0) {
dev_err(&sl->dev,
"sysfs file creation for [%s] failed. err=%d\n",
sl->dev.bus_id, err);
device_remove_file(&sl->dev, &sl->attr_name);
device_remove_file(&sl->dev, &sl->attr_val);
device_unregister(&sl->dev);
return err;
}
Expand Down Expand Up @@ -428,7 +411,6 @@ static void w1_slave_detach(struct w1_slave *sl)

sysfs_remove_bin_file (&sl->dev.kobj, &sl->attr_bin);
device_remove_file(&sl->dev, &sl->attr_name);
device_remove_file(&sl->dev, &sl->attr_val);
device_unregister(&sl->dev);
w1_family_put(sl->family);

Expand Down
2 changes: 1 addition & 1 deletion drivers/w1/w1.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ struct w1_slave
struct completion dev_released;

struct bin_attribute attr_bin;
struct device_attribute attr_name, attr_val;
struct device_attribute attr_name;
};

typedef void (* w1_slave_found_callback)(unsigned long, u64);
Expand Down
2 changes: 1 addition & 1 deletion drivers/w1/w1_family.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ static LIST_HEAD(w1_families);

static int w1_check_family(struct w1_family *f)
{
if (!f->fops->rname || !f->fops->rbin || !f->fops->rval || !f->fops->rvalname)
if (!f->fops->rname || !f->fops->rbin)
return -EINVAL;

return 0;
Expand Down
3 changes: 0 additions & 3 deletions drivers/w1/w1_family.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,6 @@ struct w1_family_ops
{
ssize_t (* rname)(struct device *, struct device_attribute *, char *);
ssize_t (* rbin)(struct kobject *, char *, loff_t, size_t);

ssize_t (* rval)(struct device *, struct device_attribute *, char *);
unsigned char rvalname[MAXNAMELEN];
};

struct w1_family
Expand Down
10 changes: 0 additions & 10 deletions drivers/w1/w1_therm.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,11 @@ static u8 bad_roms[][9] = {
};

static ssize_t w1_therm_read_name(struct device *, struct device_attribute *attr, char *);
static ssize_t w1_therm_read_temp(struct device *, struct device_attribute *attr, char *);
static ssize_t w1_therm_read_bin(struct kobject *, char *, loff_t, size_t);

static struct w1_family_ops w1_therm_fops = {
.rname = &w1_therm_read_name,
.rbin = &w1_therm_read_bin,
.rval = &w1_therm_read_temp,
.rvalname = "temp1_input",
};

static struct w1_family w1_therm_family_DS18S20 = {
Expand Down Expand Up @@ -142,13 +139,6 @@ static inline int w1_convert_temp(u8 rom[9], u8 fid)
return 0;
}

static ssize_t w1_therm_read_temp(struct device *dev, struct device_attribute *attr, char *buf)
{
struct w1_slave *sl = container_of(dev, struct w1_slave, dev);

return sprintf(buf, "%d\n", w1_convert_temp(sl->rom, sl->family->fid));
}

static int w1_therm_check_rom(u8 rom[9])
{
int i;
Expand Down

0 comments on commit ca775c6

Please sign in to comment.